1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-3-11">
5 <title>Release 9.3.11</title>
8 <title>Release Date</title>
9 <simpara>2016-02-11</simpara>
13 This release contains a variety of fixes from 9.3.10.
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.11</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 Perform an immediate shutdown if the <filename>postmaster.pid</> file
44 The postmaster now checks every minute or so
45 that <filename>postmaster.pid</> is still there and still contains its
46 own PID. If not, it performs an immediate shutdown, as though it had
47 received <systemitem>SIGQUIT</>. The main motivation for this change
48 is to ensure that failed buildfarm runs will get cleaned up without
49 manual intervention; but it also serves to limit the bad effects if a
50 DBA forcibly removes <filename>postmaster.pid</> and then starts a new
57 In <literal>SERIALIZABLE</> transaction isolation mode, serialization
58 anomalies could be missed due to race conditions during insertions
59 (Kevin Grittner, Thomas Munro)
65 Fix failure to emit appropriate WAL records when doing <literal>ALTER
66 TABLE ... SET TABLESPACE</> for unlogged relations (Michael Paquier,
71 Even though the relation's data is unlogged, the move must be logged or
72 the relation will be inaccessible after a standby is promoted to master.
78 Fix possible misinitialization of unlogged relations at the end of
79 crash recovery (Andres Freund, Michael Paquier)
85 Ensure walsender slots are fully re-initialized when being re-used
92 Fix <command>ALTER COLUMN TYPE</> to reconstruct inherited check
93 constraints properly (Tom Lane)
99 Fix <command>REASSIGN OWNED</> to change ownership of composite types
100 properly (Álvaro Herrera)
106 Fix <command>REASSIGN OWNED</> and <command>ALTER OWNER</> to correctly
107 update granted-permissions lists when changing owners of data types,
108 foreign data wrappers, or foreign servers (Bruce Momjian,
109 Álvaro Herrera)
115 Fix <command>REASSIGN OWNED</> to ignore foreign user mappings,
116 rather than fail (Álvaro Herrera)
122 Fix possible crash after doing query rewrite for an updatable view
129 Fix planner's handling of <literal>LATERAL</> references (Tom
134 This fixes some corner cases that led to <quote>failed to build any
135 N-way joins</> or <quote>could not devise a query plan</> planner
142 Add more defenses against bad planner cost estimates for GIN index
143 scans when the index's internal statistics are very out-of-date
150 Make planner cope with hypothetical GIN indexes suggested by an index
151 advisor plug-in (Julien Rouhaud)
157 Speed up generation of unique table aliases in <command>EXPLAIN</> and
158 rule dumping, and ensure that generated aliases do not
159 exceed <literal>NAMEDATALEN</> (Tom Lane)
165 Fix dumping of whole-row Vars in <literal>ROW()</>
166 and <literal>VALUES()</> lists (Tom Lane)
172 Fix possible internal overflow in <type>numeric</> division
179 Fix enforcement of restrictions inside parentheses within regular
180 expression lookahead constraints (Tom Lane)
184 Lookahead constraints aren't allowed to contain backrefs, and
185 parentheses within them are always considered non-capturing, according
186 to the manual. However, the code failed to handle these cases properly
187 inside a parenthesized subexpression, and would give unexpected
194 Conversion of regular expressions to indexscan bounds could produce
195 incorrect bounds from regexps containing lookahead constraints
202 Fix regular-expression compiler to handle loops of constraint arcs
207 The code added for CVE-2007-4772 was both incomplete, in that it didn't
208 handle loops involving more than one state, and incorrect, in that it
209 could cause assertion failures (though there seem to be no bad
210 consequences of that in a non-assert build). Multi-state loops would
211 cause the compiler to run until the query was canceled or it reached
212 the too-many-states error condition.
218 Improve memory-usage accounting in regular-expression compiler
223 This causes the code to emit <quote>regular expression is too
224 complex</> errors in some cases that previously used unreasonable
225 amounts of time and memory.
231 Improve performance of regular-expression compiler (Tom Lane)
237 Make <literal>%h</> and <literal>%r</> escapes
238 in <varname>log_line_prefix</> work for messages emitted due
239 to <varname>log_connections</> (Tom Lane)
243 Previously, <literal>%h</>/<literal>%r</> started to work just after a
244 new session had emitted the <quote>connection received</> log message;
245 now they work for that message too.
251 On Windows, ensure the shared-memory mapping handle gets closed in
252 child processes that don't need it (Tom Lane, Amit Kapila)
256 This oversight resulted in failure to recover from crashes
257 whenever <varname>logging_collector</> is turned on.
263 Fix possible failure to detect socket EOF in non-blocking mode on
268 It's not entirely clear whether this problem can happen in pre-9.5
269 branches, but if it did, the symptom would be that a walsender process
270 would wait indefinitely rather than noticing a loss of connection.
276 Avoid leaking a token handle during SSPI authentication
283 In <application>psql</>, ensure that <application>libreadline</>'s idea
284 of the screen size is updated when the terminal window size changes
289 Previously, <application>libreadline</> did not notice if the window
290 was resized during query output, leading to strange behavior during
291 later input of multiline queries.
297 Fix <application>psql</>'s <literal>\det</> command to interpret its
298 pattern argument the same way as other <literal>\d</> commands with
299 potentially schema-qualified patterns do (Reece Hart)
305 Avoid possible crash in <application>psql</>'s <literal>\c</> command
306 when previous connection was via Unix socket and command specifies a
307 new hostname and same username (Tom Lane)
313 In <literal>pg_ctl start -w</>, test child process status directly
314 rather than relying on heuristics (Tom Lane, Michael Paquier)
318 Previously, <application>pg_ctl</> relied on an assumption that the new
319 postmaster would always create <filename>postmaster.pid</> within five
320 seconds. But that can fail on heavily-loaded systems,
321 causing <application>pg_ctl</> to report incorrectly that the
322 postmaster failed to start.
326 Except on Windows, this change also means that a <literal>pg_ctl start
327 -w</> done immediately after another such command will now reliably
328 fail, whereas previously it would report success if done within two
329 seconds of the first command.
335 In <literal>pg_ctl start -w</>, don't attempt to use a wildcard listen
336 address to connect to the postmaster (Kondo Yuta)
340 On Windows, <application>pg_ctl</> would fail to detect postmaster
341 startup if <varname>listen_addresses</> is set to <literal>0.0.0.0</>
342 or <literal>::</>, because it would try to use that value verbatim as
343 the address to connect to, which doesn't work. Instead assume
344 that <literal>127.0.0.1</> or <literal>::1</>, respectively, is the
351 In <application>pg_ctl</> on Windows, check service status to decide
352 where to send output, rather than checking if standard output is a
353 terminal (Michael Paquier)
359 In <application>pg_dump</> and <application>pg_basebackup</>, adopt
360 the GNU convention for handling tar-archive members exceeding 8GB
365 The POSIX standard for <literal>tar</> file format does not allow
366 archive member files to exceed 8GB, but most modern implementations
367 of <application>tar</> support an extension that fixes that. Adopt
368 this extension so that <application>pg_dump</> with <option>-Ft</> no
369 longer fails on tables with more than 8GB of data, and so
370 that <application>pg_basebackup</> can handle files larger than 8GB.
371 In addition, fix some portability issues that could cause failures for
372 members between 4GB and 8GB on some platforms. Potentially these
373 problems could cause unrecoverable data loss due to unreadable backup
380 Fix assorted corner-case bugs in <application>pg_dump</>'s processing
381 of extension member objects (Tom Lane)
387 Make <application>pg_dump</> mark a view's triggers as needing to be
388 processed after its rule, to prevent possible failure during
389 parallel <application>pg_restore</> (Tom Lane)
395 Ensure that relation option values are properly quoted
396 in <application>pg_dump</> (Kouhei Sutou, Tom Lane)
400 A reloption value that isn't a simple identifier or number could lead
401 to dump/reload failures due to syntax errors in CREATE statements
402 issued by <application>pg_dump</>. This is not an issue with any
403 reloption currently supported by core <productname>PostgreSQL</>, but
404 extensions could allow reloptions that cause the problem.
410 Avoid repeated password prompts during parallel <application>pg_dump</>
417 Fix <application>pg_upgrade</>'s file-copying code to handle errors
418 properly on Windows (Bruce Momjian)
424 Install guards in <application>pgbench</> against corner-case overflow
425 conditions during evaluation of script-specified division or modulo
426 operators (Fabien Coelho, Michael Paquier)
432 Fix failure to localize messages emitted
433 by <application>pg_receivexlog</> and <application>pg_recvlogical</>
440 Avoid dump/reload problems when using both <application>plpython2</>
441 and <application>plpython3</> (Tom Lane)
445 In principle, both versions of <application>PL/Python</> can be used in
446 the same database, though not in the same session (because the two
447 versions of <application>libpython</> cannot safely be used concurrently).
448 However, <application>pg_restore</> and <application>pg_upgrade</> both
449 do things that can fall foul of the same-session restriction. Work
450 around that by changing the timing of the check.
456 Fix <application>PL/Python</> regression tests to pass with Python 3.5
463 Fix premature clearing of <application>libpq</>'s input buffer when
464 socket EOF is seen (Tom Lane)
468 This mistake caused <application>libpq</> to sometimes not report the
469 backend's final error message before reporting <quote>server closed the
470 connection unexpectedly</>.
476 Prevent certain <application>PL/Java</> parameters from being set by
477 non-superusers (Noah Misch)
481 This change mitigates a <application>PL/Java</> security bug
482 (CVE-2016-0766), which was fixed in <application>PL/Java</> by marking
483 these parameters as superuser-only. To fix the security hazard for
484 sites that update <productname>PostgreSQL</> more frequently
485 than <application>PL/Java</>, make the core code aware of them also.
491 Improve <application>libpq</>'s handling of out-of-memory situations
492 (Michael Paquier, Amit Kapila, Heikki Linnakangas)
498 Fix order of arguments
499 in <application>ecpg</>-generated <literal>typedef</> statements
506 Use <literal>%g</> not <literal>%f</> format
507 in <application>ecpg</>'s <function>PGTYPESnumeric_from_double()</>
514 Fix <application>ecpg</>-supplied header files to not contain comments
515 continued from a preprocessor directive line onto the next line
520 Such a comment is rejected by <application>ecpg</>. It's not yet clear
521 whether <application>ecpg</> itself should be changed.
527 Fix <function>hstore_to_json_loose()</>'s test for whether
528 an <type>hstore</> value can be converted to a JSON number (Tom Lane)
532 Previously this function could be fooled by non-alphanumeric trailing
533 characters, leading to emitting syntactically-invalid JSON.
539 Ensure that <filename>contrib/pgcrypto</>'s <function>crypt()</>
540 function can be interrupted by query cancel (Andreas Karlsson)
546 Accept <application>flex</> versions later than 2.5.x
547 (Tom Lane, Michael Paquier)
551 Now that flex 2.6.0 has been released, the version checks in our build
552 scripts needed to be adjusted.
558 Improve reproducibility of build output by ensuring filenames are given
559 to the linker in a fixed order (Christoph Berg)
563 This avoids possible bitwise differences in the produced executable
564 files from one build to the next.
570 Install our <filename>missing</> script where PGXS builds can find it
575 This allows sane behavior in a PGXS build done on a machine where build
576 tools such as <application>bison</> are missing.
582 Ensure that <filename>dynloader.h</> is included in the installed
583 header files in MSVC builds (Bruce Momjian, Michael Paquier)
589 Add variant regression test expected-output file to match behavior of
590 current <application>libxml2</> (Tom Lane)
594 The fix for <application>libxml2</>'s CVE-2015-7499 causes it not to
595 output error context reports in some cases where it used to do so.
596 This seems to be a bug, but we'll probably have to live with it for
597 some time, so work around it.
603 Update time zone data files to <application>tzdata</> release 2016a for
604 DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal
605 Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.
614 <sect1 id="release-9-3-10">
615 <title>Release 9.3.10</title>
618 <title>Release Date</title>
619 <simpara>2015-10-08</simpara>
623 This release contains a variety of fixes from 9.3.9.
624 For information about new features in the 9.3 major release, see
625 <xref linkend="release-9-3">.
629 <title>Migration to Version 9.3.10</title>
632 A dump/restore is not required for those running 9.3.X.
636 However, if you are upgrading from a version earlier than 9.3.9,
637 see <xref linkend="release-9-3-9">.
643 <title>Changes</title>
649 Guard against stack overflows in <type>json</> parsing
654 If an application constructs PostgreSQL <type>json</>
655 or <type>jsonb</> values from arbitrary user input, the application's
656 users can reliably crash the PostgreSQL server, causing momentary
657 denial of service. (CVE-2015-5289)
663 Fix <filename>contrib/pgcrypto</> to detect and report
664 too-short <function>crypt()</> salts (Josh Kupershmidt)
668 Certain invalid salt arguments crashed the server or disclosed a few
669 bytes of server memory. We have not ruled out the viability of
670 attacks that arrange for presence of confidential information in the
671 disclosed bytes, but they seem unlikely. (CVE-2015-5288)
677 Fix subtransaction cleanup after a portal (cursor) belonging to an
678 outer subtransaction fails (Tom Lane, Michael Paquier)
682 A function executed in an outer-subtransaction cursor could cause an
683 assertion failure or crash by referencing a relation created within an
684 inner subtransaction.
690 Ensure all relations referred to by an updatable view are properly
691 locked during an update statement (Dean Rasheed)
697 Fix insertion of relations into the relation cache <quote>init file</>
702 An oversight in a patch in the most recent minor releases
703 caused <structname>pg_trigger_tgrelid_tgname_index</> to be omitted
704 from the init file. Subsequent sessions detected this, then deemed the
705 init file to be broken and silently ignored it, resulting in a
706 significant degradation in session startup time. In addition to fixing
707 the bug, install some guards so that any similar future mistake will be
714 Avoid O(N^2) behavior when inserting many tuples into a SPI query
721 Improve <command>LISTEN</> startup time when there are many unread
722 notifications (Matt Newell)
728 Fix performance problem when a session alters large numbers of foreign
729 key constraints (Jan Wieck, Tom Lane)
733 This was seen primarily when restoring <application>pg_dump</> output
734 for databases with many thousands of tables.
740 Disable SSL renegotiation by default (Michael Paquier, Andres Freund)
744 While use of SSL renegotiation is a good idea in theory, we have seen
745 too many bugs in practice, both in the underlying OpenSSL library and
746 in our usage of it. Renegotiation will be removed entirely in 9.5 and
747 later. In the older branches, just change the default value
748 of <varname>ssl_renegotiation_limit</> to zero (disabled).
754 Lower the minimum values of the <literal>*_freeze_max_age</> parameters
759 This is mainly to make tests of related behavior less time-consuming,
760 but it may also be of value for installations with limited disk space.
766 Limit the maximum value of <varname>wal_buffers</> to 2GB to avoid
767 server crashes (Josh Berkus)
773 Avoid logging complaints when a parameter that can only be set at
774 server start appears multiple times in <filename>postgresql.conf</>,
775 and fix counting of line numbers after an <literal>include_dir</>
782 Fix rare internal overflow in multiplication of <type>numeric</> values
789 Guard against hard-to-reach stack overflows involving record types,
790 range types, <type>json</>, <type>jsonb</>, <type>tsquery</>,
791 <type>ltxtquery</> and <type>query_int</> (Noah Misch)
797 Fix handling of <literal>DOW</> and <literal>DOY</> in datetime input
802 These tokens aren't meant to be used in datetime values, but previously
803 they resulted in opaque internal error messages rather
804 than <quote>invalid input syntax</>.
810 Add more query-cancel checks to regular expression matching (Tom Lane)
816 Add recursion depth protections to regular expression, <literal>SIMILAR
817 TO</>, and <literal>LIKE</> matching (Tom Lane)
821 Suitable search patterns and a low stack depth limit could lead to
822 stack-overrun crashes.
828 Fix potential infinite loop in regular expression execution (Tom Lane)
832 A search pattern that can apparently match a zero-length string, but
833 actually doesn't match because of a back reference, could lead to an
840 In regular expression execution, correctly record match data for
841 capturing parentheses within a quantifier even when the match is
842 zero-length (Tom Lane)
848 Fix low-memory failures in regular expression compilation
849 (Andreas Seltenreich)
855 Fix low-probability memory leak during regular expression execution
862 Fix rare low-memory failure in lock cleanup during transaction abort
869 Fix <quote>unexpected out-of-memory situation during sort</> errors
870 when using tuplestores with small <varname>work_mem</> settings (Tom
877 Fix very-low-probability stack overrun in <function>qsort</> (Tom Lane)
883 Fix <quote>invalid memory alloc request size</> failure in hash joins
884 with large <varname>work_mem</> settings (Tomas Vondra, Tom Lane)
890 Fix assorted planner bugs (Tom Lane)
894 These mistakes could lead to incorrect query plans that would give wrong
895 answers, or to assertion failures in assert-enabled builds, or to odd
896 planner errors such as <quote>could not devise a query plan for the
897 given query</>, <quote>could not find pathkey item to
898 sort</>, <quote>plan should not reference subplan's variable</>,
899 or <quote>failed to assign all NestLoopParams to plan nodes</>.
900 Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz
901 testing that exposed these problems.
907 Improve planner's performance for <command>UPDATE</>/<command>DELETE</>
908 on large inheritance sets (Tom Lane, Dean Rasheed)
914 Ensure standby promotion trigger files are removed at postmaster
915 startup (Michael Paquier, Fujii Masao)
919 This prevents unwanted promotion from occurring if these files appear
920 in a database backup that is used to initialize a new standby server.
926 During postmaster shutdown, ensure that per-socket lock files are
927 removed and listen sockets are closed before we remove
928 the <filename>postmaster.pid</> file (Tom Lane)
932 This avoids race-condition failures if an external script attempts to
933 start a new postmaster as soon as <literal>pg_ctl stop</> returns.
939 Fix postmaster's handling of a startup-process crash during crash
944 If, during a crash recovery cycle, the startup process crashes without
945 having restored database consistency, we'd try to launch a new startup
946 process, which typically would just crash again, leading to an infinite
953 Make emergency autovacuuming for multixact wraparound more robust
960 Do not print a <literal>WARNING</> when an autovacuum worker is already
961 gone when we attempt to signal it, and reduce log verbosity for such
968 Prevent autovacuum launcher from sleeping unduly long if the server
969 clock is moved backwards a large amount (Álvaro Herrera)
975 Ensure that cleanup of a GIN index's pending-insertions list is
976 interruptable by cancel requests (Jeff Janes)
982 Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas)
986 Such a page might be left behind after a crash.
992 Fix handling of all-zeroes pages in SP-GiST indexes (Heikki
997 <command>VACUUM</> attempted to recycle such pages, but did so in a
998 way that wasn't crash-safe.
1004 Fix off-by-one error that led to otherwise-harmless warnings
1005 about <quote>apparent wraparound</> in subtrans/multixact truncation
1012 Fix misreporting of <command>CONTINUE</> and <command>MOVE</> statement
1013 types in <application>PL/pgSQL</>'s error context messages
1014 (Pavel Stehule, Tom Lane)
1020 Fix <application>PL/Perl</> to handle non-<acronym>ASCII</> error
1021 message texts correctly (Alex Hunsaker)
1027 Fix <application>PL/Python</> crash when returning the string
1028 representation of a <type>record</> result (Tom Lane)
1034 Fix some places in <application>PL/Tcl</> that neglected to check for
1035 failure of <function>malloc()</> calls (Michael Paquier, Álvaro
1042 In <filename>contrib/isn</>, fix output of ISBN-13 numbers that begin
1043 with 979 (Fabien Coelho)
1047 EANs beginning with 979 (but not 9790) are considered ISBNs, but they
1048 must be printed in the new 13-digit format, not the 10-digit format.
1054 Improve <filename>contrib/postgres_fdw</>'s handling of
1055 collation-related decisions (Tom Lane)
1059 The main user-visible effect is expected to be that comparisons
1060 involving <type>varchar</> columns will be sent to the remote server
1061 for execution in more cases than before.
1067 Improve <application>libpq</>'s handling of out-of-memory conditions
1068 (Michael Paquier, Heikki Linnakangas)
1074 Fix memory leaks and missing out-of-memory checks
1075 in <application>ecpg</> (Michael Paquier)
1081 Fix <application>psql</>'s code for locale-aware formatting of numeric
1086 The formatting code invoked by <literal>\pset numericlocale on</>
1087 did the wrong thing for some uncommon cases such as numbers with an
1088 exponent but no decimal point. It could also mangle already-localized
1089 output from the <type>money</> data type.
1095 Prevent crash in <application>psql</>'s <command>\c</> command when
1096 there is no current connection (Noah Misch)
1102 Make <application>pg_dump</> handle inherited <literal>NOT VALID</>
1103 check constraints correctly (Tom Lane)
1109 Fix selection of default <application>zlib</> compression level
1110 in <application>pg_dump</>'s directory output format (Andrew Dunstan)
1116 Ensure that temporary files created during a <application>pg_dump</>
1117 run with <acronym>tar</>-format output are not world-readable (Michael
1124 Fix <application>pg_dump</> and <application>pg_upgrade</> to support
1125 cases where the <literal>postgres</> or <literal>template1</> database
1126 is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)
1132 Fix <application>pg_dump</> to handle object privileges sanely when
1133 dumping from a server too old to have a particular privilege type
1138 When dumping data types from pre-9.2 servers, and when dumping
1139 functions or procedural languages from pre-7.3
1140 servers, <application>pg_dump</> would
1141 produce <command>GRANT</>/<command>REVOKE</> commands that revoked the
1142 owner's grantable privileges and instead granted all privileges
1143 to <literal>PUBLIC</>. Since the privileges involved are
1144 just <literal>USAGE</> and <literal>EXECUTE</>, this isn't a security
1145 problem, but it's certainly a surprising representation of the older
1146 systems' behavior. Fix it to leave the default privilege state alone
1153 Fix <application>pg_dump</> to dump shell types (Tom Lane)
1157 Shell types (that is, not-yet-fully-defined types) aren't useful for
1158 much, but nonetheless <application>pg_dump</> should dump them.
1164 Fix assorted minor memory leaks in <application>pg_dump</> and other
1165 client-side programs (Michael Paquier)
1171 Fix spinlock assembly code for PPC hardware to be compatible
1172 with <acronym>AIX</>'s native assembler (Tom Lane)
1176 Building with <application>gcc</> didn't work if <application>gcc</>
1177 had been configured to use the native assembler, which is becoming more
1184 On <acronym>AIX</>, test the <literal>-qlonglong</> compiler option
1185 rather than just assuming it's safe to use (Noah Misch)
1191 On <acronym>AIX</>, use <literal>-Wl,-brtllib</> link option to allow
1192 symbols to be resolved at runtime (Noah Misch)
1196 Perl relies on this ability in 5.8.0 and later.
1202 Avoid use of inline functions when compiling with
1203 32-bit <application>xlc</>, due to compiler bugs (Noah Misch)
1209 Use <filename>librt</> for <function>sched_yield()</> when necessary,
1210 which it is on some Solaris versions (Oskari Saarenmaa)
1216 Fix Windows <filename>install.bat</> script to handle target directory
1217 names that contain spaces (Heikki Linnakangas)
1223 Make the numeric form of the <productname>PostgreSQL</> version number
1224 (e.g., <literal>90405</>) readily available to extension Makefiles,
1225 as a variable named <varname>VERSION_NUM</> (Michael Paquier)
1231 Update time zone data files to <application>tzdata</> release 2015g for
1232 DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk
1233 Island, North Korea, Turkey, and Uruguay. There is a new zone name
1234 <literal>America/Fort_Nelson</> for the Canadian Northern Rockies.
1243 <sect1 id="release-9-3-9">
1244 <title>Release 9.3.9</title>
1247 <title>Release Date</title>
1248 <simpara>2015-06-12</simpara>
1252 This release contains a small number of fixes from 9.3.8.
1253 For information about new features in the 9.3 major release, see
1254 <xref linkend="release-9-3">.
1258 <title>Migration to Version 9.3.9</title>
1261 A dump/restore is not required for those running 9.3.X.
1265 However, if you are upgrading an installation that was previously
1266 upgraded using a <application>pg_upgrade</> version between 9.3.0 and
1267 9.3.4 inclusive, see the first changelog entry below.
1271 Also, if you are upgrading from a version earlier than 9.3.7,
1272 see <xref linkend="release-9-3-7">.
1278 <title>Changes</title>
1284 Fix possible failure to recover from an inconsistent database state
1289 Recent <productname>PostgreSQL</> releases introduced mechanisms to
1290 protect against multixact wraparound, but some of that code did not
1291 account for the possibility that it would need to run during crash
1292 recovery, when the database may not be in a consistent state. This
1293 could result in failure to restart after a crash, or failure to start
1294 up a secondary server. The lingering effects of a previously-fixed
1295 bug in <application>pg_upgrade</> could also cause such a failure, in
1296 installations that had used <application>pg_upgrade</> versions
1297 between 9.3.0 and 9.3.4.
1301 The <application>pg_upgrade</> bug in question was that it would
1302 set <literal>oldestMultiXid</> to 1 in <filename>pg_control</> even
1303 if the true value should be higher. With the fixes introduced in
1304 this release, such a situation will result in immediate emergency
1305 autovacuuming until a correct <literal>oldestMultiXid</> value can be
1306 determined. If that would pose a hardship, users can avoid it by
1307 doing manual vacuuming <emphasis>before</> upgrading to this release.
1313 Check whether <application>pg_controldata</> reports <quote>Latest
1314 checkpoint's oldestMultiXid</> to be 1. If not, there's nothing
1320 Look in <filename>PGDATA/pg_multixact/offsets</> to see if there's a
1321 file named <filename>0000</>. If there is, there's nothing to do.
1326 Otherwise, for each table that has
1327 <structname>pg_class</>.<structfield>relminmxid</> equal to 1,
1328 <command>VACUUM</> that table with
1329 both <xref linkend="guc-vacuum-multixact-freeze-min-age">
1330 and <xref linkend="guc-vacuum-multixact-freeze-table-age"> set to
1331 zero. (You can use the vacuum cost delay parameters described
1332 in <xref linkend="runtime-config-resource-vacuum-cost"> to reduce
1333 the performance consequences for concurrent sessions.) You must
1334 use <productname>PostgreSQL</> 9.3.5 or later to perform this step.
1343 Fix rare failure to invalidate relation cache init file (Tom Lane)
1347 With just the wrong timing of concurrent activity, a <command>VACUUM
1348 FULL</> on a system catalog might fail to update the <quote>init file</>
1349 that's used to avoid cache-loading work for new sessions. This would
1350 result in later sessions being unable to access that catalog at all.
1351 This is a very ancient bug, but it's so hard to trigger that no
1352 reproducible case had been seen until recently.
1358 Avoid deadlock between incoming sessions and <literal>CREATE/DROP
1359 DATABASE</> (Tom Lane)
1363 A new session starting in a database that is the target of
1364 a <command>DROP DATABASE</> command, or is the template for
1365 a <command>CREATE DATABASE</> command, could cause the command to wait
1366 for five seconds and then fail, even if the new session would have
1373 Improve planner's cost estimates for semi-joins and anti-joins with
1374 inner indexscans (Tom Lane, Tomas Vondra)
1378 This type of plan is quite cheap when all the join clauses are used
1379 as index scan conditions, even if the inner scan would nominally
1380 fetch many rows, because the executor will stop after obtaining one
1381 row. The planner only partially accounted for that effect, and would
1382 therefore overestimate the cost, leading it to possibly choose some
1383 other much less efficient plan type.
1392 <sect1 id="release-9-3-8">
1393 <title>Release 9.3.8</title>
1396 <title>Release Date</title>
1397 <simpara>2015-06-04</simpara>
1401 This release contains a small number of fixes from 9.3.7.
1402 For information about new features in the 9.3 major release, see
1403 <xref linkend="release-9-3">.
1407 <title>Migration to Version 9.3.8</title>
1410 A dump/restore is not required for those running 9.3.X.
1414 However, if you are upgrading from a version earlier than 9.3.7,
1415 see <xref linkend="release-9-3-7">.
1421 <title>Changes</title>
1427 Avoid failures while <function>fsync</>'ing data directory during
1428 crash restart (Abhijit Menon-Sen, Tom Lane)
1432 In the previous minor releases we added a patch to <function>fsync</>
1433 everything in the data directory after a crash. Unfortunately its
1434 response to any error condition was to fail, thereby preventing the
1435 server from starting up, even when the problem was quite harmless.
1436 An example is that an unwritable file in the data directory would
1437 prevent restart on some platforms; but it is common to make SSL
1438 certificate files unwritable by the server. Revise this behavior so
1439 that permissions failures are ignored altogether, and other types of
1440 failures are logged but do not prevent continuing.
1444 Also apply the same rules in <literal>initdb --sync-only</>.
1445 This case is less critical but it should act similarly.
1451 Fix <function>pg_get_functiondef()</> to show
1452 functions' <literal>LEAKPROOF</> property, if set (Jeevan Chalke)
1458 Remove <application>configure</>'s check prohibiting linking to a
1459 threaded <application>libpython</>
1460 on <systemitem class="osname">OpenBSD</> (Tom Lane)
1464 The failure this restriction was meant to prevent seems to not be a
1465 problem anymore on current <systemitem class="osname">OpenBSD</>
1471 Author: Tom Lane <tgl@sss.pgh.pa.us>
1472 Branch: REL9_3_STABLE [c6b7b9a9c] 2015-05-21 20:41:55 -0400
1473 Branch: REL9_2_STABLE [b78fbfe65] 2015-05-21 20:41:55 -0400
1474 Branch: REL9_1_STABLE [2c2c5f0e0] 2015-05-21 20:41:55 -0400
1475 Branch: REL9_0_STABLE [4dddf8552] 2015-05-21 20:41:55 -0400
1480 Allow <application>libpq</> to use TLS protocol versions beyond v1
1485 For a long time, <application>libpq</> was coded so that the only SSL
1486 protocol it would allow was TLS v1. Now that newer TLS versions are
1487 becoming popular, allow it to negotiate the highest commonly-supported
1488 TLS version with the server. (<productname>PostgreSQL</> servers were
1489 already capable of such negotiation, so no change is needed on the
1490 server side.) This is a back-patch of a change already released in
1500 <sect1 id="release-9-3-7">
1501 <title>Release 9.3.7</title>
1504 <title>Release Date</title>
1505 <simpara>2015-05-22</simpara>
1509 This release contains a variety of fixes from 9.3.6.
1510 For information about new features in the 9.3 major release, see
1511 <xref linkend="release-9-3">.
1515 <title>Migration to Version 9.3.7</title>
1518 A dump/restore is not required for those running 9.3.X.
1522 However, if you use <filename>contrib/citext</>'s
1523 <function>regexp_matches()</> functions, see the changelog entry below
1528 Also, if you are upgrading from a version earlier than 9.3.6,
1529 see <xref linkend="release-9-3-6">.
1535 <title>Changes</title>
1541 Avoid possible crash when client disconnects just before the
1542 authentication timeout expires (Benkocs Norbert Attila)
1546 If the timeout interrupt fired partway through the session shutdown
1547 sequence, SSL-related state would be freed twice, typically causing a
1548 crash and hence denial of service to other sessions. Experimentation
1549 shows that an unauthenticated remote attacker could trigger the bug
1550 somewhat consistently, hence treat as security issue.
1557 Improve detection of system-call failures (Noah Misch)
1561 Our replacement implementation of <function>snprintf()</> failed to
1562 check for errors reported by the underlying system library calls;
1563 the main case that might be missed is out-of-memory situations.
1564 In the worst case this might lead to information exposure, due to our
1565 code assuming that a buffer had been overwritten when it hadn't been.
1566 Also, there were a few places in which security-relevant calls of other
1567 system library functions did not check for failure.
1571 It remains possible that some calls of the <function>*printf()</>
1572 family of functions are vulnerable to information disclosure if an
1573 out-of-memory error occurs at just the wrong time. We judge the risk
1574 to not be large, but will continue analysis in this area.
1581 In <filename>contrib/pgcrypto</>, uniformly report decryption failures
1582 as <quote>Wrong key or corrupt data</> (Noah Misch)
1586 Previously, some cases of decryption with an incorrect key could report
1587 other error message texts. It has been shown that such variance in
1588 error reports can aid attackers in recovering keys from other systems.
1589 While it's unknown whether <filename>pgcrypto</>'s specific behaviors
1590 are likewise exploitable, it seems better to avoid the risk by using a
1591 one-size-fits-all message.
1598 Protect against wraparound of multixact member IDs
1599 (Álvaro Herrera, Robert Haas, Thomas Munro)
1603 Under certain usage patterns, the existing defenses against this might
1604 be insufficient, allowing <filename>pg_multixact/members</> files to be
1605 removed too early, resulting in data loss.
1606 The fix for this includes modifying the server to fail transactions
1607 that would result in overwriting old multixact member ID data, and
1608 improving autovacuum to ensure it will act proactively to prevent
1609 multixact member ID wraparound, as it does for transaction ID
1616 Fix incorrect declaration of <filename>contrib/citext</>'s
1617 <function>regexp_matches()</> functions (Tom Lane)
1621 These functions should return <type>setof text[]</>, like the core
1622 functions they are wrappers for; but they were incorrectly declared as
1623 returning just <type>text[]</>. This mistake had two results: first,
1624 if there was no match you got a scalar null result, whereas what you
1625 should get is an empty set (zero rows). Second, the <literal>g</> flag
1626 was effectively ignored, since you would get only one result array even
1627 if there were multiple matches.
1631 While the latter behavior is clearly a bug, there might be applications
1632 depending on the former behavior; therefore the function declarations
1633 will not be changed by default until <productname>PostgreSQL</> 9.5.
1634 In pre-9.5 branches, the old behavior exists in version 1.0 of
1635 the <literal>citext</> extension, while we have provided corrected
1636 declarations in version 1.1 (which is <emphasis>not</> installed by
1637 default). To adopt the fix in pre-9.5 branches, execute
1638 <literal>ALTER EXTENSION citext UPDATE TO '1.1'</> in each database in
1639 which <literal>citext</> is installed. (You can also <quote>update</>
1640 back to 1.0 if you need to undo that.) Be aware that either update
1641 direction will require dropping and recreating any views or rules that
1642 use <filename>citext</>'s <function>regexp_matches()</> functions.
1648 Fix incorrect checking of deferred exclusion constraints after a HOT
1653 If a new row that potentially violates a deferred exclusion constraint
1654 is HOT-updated (that is, no indexed columns change and the row can be
1655 stored back onto the same table page) later in the same transaction,
1656 the exclusion constraint would be reported as violated when the check
1657 finally occurred, even if the row(s) the new row originally conflicted
1658 with had been deleted.
1664 Fix planning of star-schema-style queries (Tom Lane)
1668 Sometimes, efficient scanning of a large table requires that index
1669 parameters be provided from more than one other table (commonly,
1670 dimension tables whose keys are needed to index a large fact table).
1671 The planner should be able to find such plans, but an overly
1672 restrictive search heuristic prevented it.
1678 Prevent improper reordering of antijoins (NOT EXISTS joins) versus
1679 other outer joins (Tom Lane)
1683 This oversight in the planner has been observed to cause <quote>could
1684 not find RelOptInfo for given relids</> errors, but it seems possible
1685 that sometimes an incorrect query plan might get past that consistency
1686 check and result in silently-wrong query output.
1692 Fix incorrect matching of subexpressions in outer-join plan nodes
1697 Previously, if textually identical non-strict subexpressions were used
1698 both above and below an outer join, the planner might try to re-use
1699 the value computed below the join, which would be incorrect because the
1700 executor would force the value to NULL in case of an unmatched outer row.
1706 Fix GEQO planner to cope with failure of its join order heuristic
1711 This oversight has been seen to lead to <quote>failed to join all
1712 relations together</> errors in queries involving <literal>LATERAL</>,
1713 and that might happen in other cases as well.
1719 Fix possible deadlock at startup
1720 when <literal>max_prepared_transactions</> is too small
1721 (Heikki Linnakangas)
1727 Don't archive useless preallocated WAL files after a timeline switch
1728 (Heikki Linnakangas)
1734 Recursively <function>fsync()</> the data directory after a crash
1735 (Abhijit Menon-Sen, Robert Haas)
1739 This ensures consistency if another crash occurs shortly later. (The
1740 second crash would have to be a system-level crash, not just a database
1741 crash, for there to be a problem.)
1747 Fix autovacuum launcher's possible failure to shut down, if an error
1748 occurs after it receives SIGTERM (Álvaro Herrera)
1754 Cope with unexpected signals in <function>LockBufferForCleanup()</>
1759 This oversight could result in spurious errors about <quote>multiple
1760 backends attempting to wait for pincount 1</>.
1766 Fix crash when doing <literal>COPY IN</> to a table with check
1767 constraints that contain whole-row references (Tom Lane)
1771 The known failure case only crashes in 9.4 and up, but there is very
1772 similar code in 9.3 and 9.2, so back-patch those branches as well.
1778 Avoid waiting for WAL flush or synchronous replication during commit of
1779 a transaction that was read-only so far as the user is concerned
1784 Previously, a delay could occur at commit in transactions that had
1785 written WAL due to HOT page pruning, leading to undesirable effects
1786 such as sessions getting stuck at startup if all synchronous replicas
1787 are down. Sessions have also been observed to get stuck in catchup
1788 interrupt processing when using synchronous replication; this will fix
1789 that problem as well.
1795 Fix crash when manipulating hash indexes on temporary tables
1796 (Heikki Linnakangas)
1802 Fix possible failure during hash index bucket split, if other processes
1803 are modifying the index concurrently (Tom Lane)
1809 Check for interrupts while analyzing index expressions (Jeff Janes)
1813 <command>ANALYZE</> executes index expressions many times; if there are
1814 slow functions in such an expression, it's desirable to be able to
1815 cancel the <command>ANALYZE</> before that loop finishes.
1821 Ensure <structfield>tableoid</> of a foreign table is reported
1822 correctly when a <literal>READ COMMITTED</> recheck occurs after
1823 locking rows in <command>SELECT FOR UPDATE</>, <command>UPDATE</>,
1824 or <command>DELETE</> (Etsuro Fujita)
1830 Add the name of the target server to object description strings for
1831 foreign-server user mappings (Álvaro Herrera)
1837 Include the schema name in object identity strings for conversions
1838 (Álvaro Herrera)
1844 Recommend setting <literal>include_realm</> to 1 when using
1845 Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
1849 Without this, identically-named users from different realms cannot be
1850 distinguished. For the moment this is only a documentation change, but
1851 it will become the default setting in <productname>PostgreSQL</> 9.5.
1857 Remove code for matching IPv4 <filename>pg_hba.conf</> entries to
1858 IPv4-in-IPv6 addresses (Tom Lane)
1862 This hack was added in 2003 in response to a report that some Linux
1863 kernels of the time would report IPv4 connections as having
1864 IPv4-in-IPv6 addresses. However, the logic was accidentally broken in
1865 9.0. The lack of any field complaints since then shows that it's not
1866 needed anymore. Now we have reports that the broken code causes
1867 crashes on some systems, so let's just remove it rather than fix it.
1868 (Had we chosen to fix it, that would make for a subtle and potentially
1869 security-sensitive change in the effective meaning of
1870 IPv4 <filename>pg_hba.conf</> entries, which does not seem like a good
1871 thing to do in minor releases.)
1877 Report WAL flush, not insert, position in <literal>IDENTIFY_SYSTEM</>
1878 replication command (Heikki Linnakangas)
1882 This avoids a possible startup failure
1883 in <application>pg_receivexlog</>.
1889 While shutting down service on Windows, periodically send status
1890 updates to the Service Control Manager to prevent it from killing the
1891 service too soon; and ensure that <application>pg_ctl</> will wait for
1892 shutdown (Krystian Bigaj)
1898 Reduce risk of network deadlock when using <application>libpq</>'s
1899 non-blocking mode (Heikki Linnakangas)
1903 When sending large volumes of data, it's important to drain the input
1904 buffer every so often, in case the server has sent enough response data
1905 to cause it to block on output. (A typical scenario is that the server
1906 is sending a stream of NOTICE messages during <literal>COPY FROM
1907 STDIN</>.) This worked properly in the normal blocking mode, but not
1908 so much in non-blocking mode. We've modified <application>libpq</>
1909 to opportunistically drain input when it can, but a full defense
1910 against this problem requires application cooperation: the application
1911 should watch for socket read-ready as well as write-ready conditions,
1912 and be sure to call <function>PQconsumeInput()</> upon read-ready.
1918 In <application>libpq</>, fix misparsing of empty values in URI
1919 connection strings (Thomas Fanghaenel)
1925 Fix array handling in <application>ecpg</> (Michael Meskes)
1931 Fix <application>psql</> to sanely handle URIs and conninfo strings as
1932 the first parameter to <command>\connect</>
1933 (David Fetter, Andrew Dunstan, Álvaro Herrera)
1937 This syntax has been accepted (but undocumented) for a long time, but
1938 previously some parameters might be taken from the old connection
1939 instead of the given string, which was agreed to be undesirable.
1945 Suppress incorrect complaints from <application>psql</> on some
1946 platforms that it failed to write <filename>~/.psql_history</> at exit
1951 This misbehavior was caused by a workaround for a bug in very old
1952 (pre-2006) versions of <application>libedit</>. We fixed it by
1953 removing the workaround, which will cause a similar failure to appear
1954 for anyone still using such versions of <application>libedit</>.
1955 Recommendation: upgrade that library, or use <application>libreadline</>.
1961 Fix <application>pg_dump</>'s rule for deciding which casts are
1962 system-provided casts that should not be dumped (Tom Lane)
1968 In <application>pg_dump</>, fix failure to honor <literal>-Z</>
1969 compression level option together with <literal>-Fd</>
1976 Make <application>pg_dump</> consider foreign key relationships
1977 between extension configuration tables while choosing dump order
1978 (Gilles Darold, Michael Paquier, Stephen Frost)
1982 This oversight could result in producing dumps that fail to reload
1983 because foreign key constraints are transiently violated.
1989 Avoid possible <application>pg_dump</> failure when concurrent sessions
1990 are creating and dropping temporary functions (Tom Lane)
1996 Fix dumping of views that are just <literal>VALUES(...)</> but have
1997 column aliases (Tom Lane)
2003 In <application>pg_upgrade</>, force timeline 1 in the new cluster
2008 This change prevents upgrade failures caused by bogus complaints about
2009 missing WAL history files.
2015 In <application>pg_upgrade</>, check for improperly non-connectable
2016 databases before proceeding
2023 In <application>pg_upgrade</>, quote directory paths
2024 properly in the generated <literal>delete_old_cluster</> script
2031 In <application>pg_upgrade</>, preserve database-level freezing info
2037 This oversight could cause missing-clog-file errors for tables within
2038 the <literal>postgres</> and <literal>template1</> databases.
2044 Run <application>pg_upgrade</> and <application>pg_resetxlog</> with
2045 restricted privileges on Windows, so that they don't fail when run by
2046 an administrator (Muhammad Asif Naeem)
2052 Improve handling of <function>readdir()</> failures when scanning
2053 directories in <application>initdb</> and <application>pg_basebackup</>
2060 Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane)
2066 Fix compile failure on Sparc V8 machines (Rob Rowan)
2072 Silence some build warnings on OS X (Tom Lane)
2078 Update time zone data files to <application>tzdata</> release 2015d
2079 for DST law changes in Egypt, Mongolia, and Palestine, plus historical
2080 changes in Canada and Chile. Also adopt revised zone abbreviations for
2081 the America/Adak zone (HST/HDT not HAST/HADT).
2090 <sect1 id="release-9-3-6">
2091 <title>Release 9.3.6</title>
2094 <title>Release Date</title>
2095 <simpara>2015-02-05</simpara>
2099 This release contains a variety of fixes from 9.3.5.
2100 For information about new features in the 9.3 major release, see
2101 <xref linkend="release-9-3">.
2105 <title>Migration to Version 9.3.6</title>
2108 A dump/restore is not required for those running 9.3.X.
2112 However, if you are a Windows user and are using the <quote>Norwegian
2113 (Bokmål)</> locale, manual action is needed after the upgrade to
2114 replace any <quote>Norwegian (Bokmål)_Norway</> locale names stored
2115 in <productname>PostgreSQL</> system catalogs with the plain-ASCII
2116 alias <quote>Norwegian_Norway</>. For details see
2117 <ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></>
2121 Also, if you are upgrading from a version earlier than 9.3.5,
2122 see <xref linkend="release-9-3-5">.
2128 <title>Changes</title>
2133 Author: Bruce Momjian <bruce@momjian.us>
2134 Branch: master [0150ab567] 2015-02-02 10:00:44 -0500
2135 Branch: REL9_4_STABLE [1628a0bbf] 2015-02-02 10:00:49 -0500
2136 Branch: REL9_3_STABLE [b8b580147] 2015-02-02 10:00:50 -0500
2137 Branch: REL9_2_STABLE [5ae3bf1af] 2015-02-02 10:00:50 -0500
2138 Branch: REL9_1_STABLE [037529a11] 2015-02-02 10:00:51 -0500
2139 Branch: REL9_0_STABLE [611e110aa] 2015-02-02 10:00:52 -0500
2140 Author: Bruce Momjian <bruce@momjian.us>
2141 Branch: master [9241c84cb] 2015-02-02 10:00:45 -0500
2142 Branch: REL9_4_STABLE [56d2bee9d] 2015-02-02 10:00:49 -0500
2143 Branch: REL9_3_STABLE [fe2526990] 2015-02-02 10:00:50 -0500
2144 Branch: REL9_2_STABLE [e09651e9d] 2015-02-02 10:00:50 -0500
2145 Branch: REL9_1_STABLE [2ceb63deb] 2015-02-02 10:00:51 -0500
2146 Branch: REL9_0_STABLE [56b970f2e] 2015-02-02 10:00:52 -0500
2151 Fix buffer overruns in <function>to_char()</>
2156 When <function>to_char()</> processes a numeric formatting template
2157 calling for a large number of digits, <productname>PostgreSQL</>
2158 would read past the end of a buffer. When processing a crafted
2159 timestamp formatting template, <productname>PostgreSQL</> would write
2160 past the end of a buffer. Either case could crash the server.
2161 We have not ruled out the possibility of attacks that lead to
2162 privilege escalation, though they seem unlikely.
2168 Author: Bruce Momjian <bruce@momjian.us>
2169 Branch: master [29725b3db] 2015-02-02 10:00:45 -0500
2170 Branch: REL9_4_STABLE [2ac95c83c] 2015-02-02 10:00:49 -0500
2171 Branch: REL9_3_STABLE [bc4d5f2e5] 2015-02-02 10:00:50 -0500
2172 Branch: REL9_2_STABLE [c6c6aa288] 2015-02-02 10:00:51 -0500
2173 Branch: REL9_1_STABLE [98f2479d8] 2015-02-02 10:00:51 -0500
2174 Branch: REL9_0_STABLE [9e05c5063] 2015-02-02 10:00:52 -0500
2179 Fix buffer overrun in replacement <function>*printf()</> functions
2184 <productname>PostgreSQL</> includes a replacement implementation
2185 of <function>printf</> and related functions. This code will overrun
2186 a stack buffer when formatting a floating point number (conversion
2187 specifiers <literal>e</>, <literal>E</>, <literal>f</>, <literal>F</>,
2188 <literal>g</> or <literal>G</>) with requested precision greater than
2189 about 500. This will crash the server, and we have not ruled out the
2190 possibility of attacks that lead to privilege escalation.
2191 A database user can trigger such a buffer overrun through
2192 the <function>to_char()</> SQL function. While that is the only
2193 affected core <productname>PostgreSQL</> functionality, extension
2194 modules that use printf-family functions may be at risk as well.
2198 This issue primarily affects <productname>PostgreSQL</> on Windows.
2199 <productname>PostgreSQL</> uses the system implementation of these
2200 functions where adequate, which it is on other modern platforms.
2206 Author: Noah Misch <noah@leadboat.com>
2207 Branch: master [1dc755158] 2015-02-02 10:00:45 -0500
2208 Branch: REL9_4_STABLE [82806cf4e] 2015-02-02 10:00:49 -0500
2209 Branch: REL9_3_STABLE [6994f0790] 2015-02-02 10:00:50 -0500
2210 Branch: REL9_2_STABLE [d95ebe0ac] 2015-02-02 10:00:51 -0500
2211 Branch: REL9_1_STABLE [11f738a8a] 2015-02-02 10:00:51 -0500
2212 Branch: REL9_0_STABLE [ce6f261cd] 2015-02-02 10:00:52 -0500
2213 Author: Noah Misch <noah@leadboat.com>
2214 Branch: master [8b59672d8] 2015-02-02 10:00:45 -0500
2215 Branch: REL9_4_STABLE [258e294db] 2015-02-02 10:00:49 -0500
2216 Branch: REL9_3_STABLE [a558ad3a7] 2015-02-02 10:00:50 -0500
2217 Branch: REL9_2_STABLE [d1972da8c] 2015-02-02 10:00:51 -0500
2218 Branch: REL9_1_STABLE [8d412e02e] 2015-02-02 10:00:52 -0500
2219 Branch: REL9_0_STABLE [0a3ee8a5f] 2015-02-02 10:00:52 -0500
2224 Fix buffer overruns in <filename>contrib/pgcrypto</>
2225 (Marko Tiikkaja, Noah Misch)
2229 Errors in memory size tracking within the <filename>pgcrypto</>
2230 module permitted stack buffer overruns and improper dependence on the
2231 contents of uninitialized memory. The buffer overrun cases can
2232 crash the server, and we have not ruled out the possibility of
2233 attacks that lead to privilege escalation.
2239 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2240 Branch: master [2b3a8b20c] 2015-02-02 17:09:53 +0200
2241 Branch: REL9_4_STABLE [57ec87c6b] 2015-02-02 17:09:46 +0200
2242 Branch: REL9_3_STABLE [cd19848bd] 2015-02-02 17:09:40 +0200
2243 Branch: REL9_2_STABLE [289592b23] 2015-02-02 17:09:35 +0200
2244 Branch: REL9_1_STABLE [af9c5c074] 2015-02-02 17:09:31 +0200
2245 Branch: REL9_0_STABLE [47ba0fbd7] 2015-02-02 17:09:25 +0200
2250 Fix possible loss of frontend/backend protocol synchronization after
2252 (Heikki Linnakangas)
2256 If any error occurred while the server was in the middle of reading a
2257 protocol message from the client, it could lose synchronization and
2258 incorrectly try to interpret part of the message's data as a new
2259 protocol message. An attacker able to submit crafted binary data
2260 within a command parameter might succeed in injecting his own SQL
2261 commands this way. Statement timeout and query cancellation are the
2262 most likely sources of errors triggering this scenario. Particularly
2263 vulnerable are applications that use a timeout and also submit
2264 arbitrary user-crafted data as binary query parameters. Disabling
2265 statement timeout will reduce, but not eliminate, the risk of
2266 exploit. Our thanks to Emil Lenngren for reporting this issue.
2272 Author: Stephen Frost <sfrost@snowman.net>
2273 Branch: master [804b6b6db] 2015-01-28 12:31:30 -0500
2274 Branch: REL9_4_STABLE [3cc74a3d6] 2015-01-28 12:32:06 -0500
2275 Branch: REL9_3_STABLE [4b9874216] 2015-01-28 12:32:39 -0500
2276 Branch: REL9_2_STABLE [d49f84b08] 2015-01-28 12:32:56 -0500
2277 Branch: REL9_1_STABLE [9406884af] 2015-01-28 12:33:15 -0500
2278 Branch: REL9_0_STABLE [3a2063369] 2015-01-28 12:33:29 -0500
2283 Fix information leak via constraint-violation error messages
2288 Some server error messages show the values of columns that violate
2289 a constraint, such as a unique constraint. If the user does not have
2290 <literal>SELECT</> privilege on all columns of the table, this could
2291 mean exposing values that the user should not be able to see. Adjust
2292 the code so that values are displayed only when they came from the SQL
2293 command or could be selected by the user.
2299 Author: Noah Misch <noah@leadboat.com>
2300 Branch: master [f6dc6dd5b] 2014-12-17 22:48:40 -0500
2301 Branch: REL9_4_STABLE [6b87d423d] 2014-12-17 22:48:45 -0500
2302 Branch: REL9_3_STABLE [442dc2c35] 2014-12-17 22:48:46 -0500
2303 Branch: REL9_2_STABLE [0046f651d] 2014-12-17 22:48:47 -0500
2304 Branch: REL9_1_STABLE [6aa98e957] 2014-12-17 22:48:47 -0500
2305 Branch: REL9_0_STABLE [6d45ee572] 2014-12-17 22:48:48 -0500
2310 Lock down regression testing's temporary installations on Windows
2315 Use SSPI authentication to allow connections only from the OS user
2316 who launched the test suite. This closes on Windows the same
2317 vulnerability previously closed on other platforms, namely that other
2318 users might be able to connect to the test postmaster.
2324 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2325 Branch: REL9_3_STABLE [8f80dcf3c] 2014-10-24 19:59:49 +0300
2326 Branch: REL9_2_STABLE [d440c4b55] 2014-10-24 19:59:52 +0300
2327 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2328 Branch: REL9_3_STABLE [2a1b34959] 2014-10-24 19:36:28 +0300
2329 Branch: REL9_2_STABLE [737ae3fc7] 2014-10-24 19:53:27 +0300
2330 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2331 Branch: master [aa1d2fc5e] 2015-01-16 13:28:19 +0200
2332 Branch: REL9_4_STABLE [2049a7d82] 2015-01-16 13:10:06 +0200
2333 Branch: REL9_3_STABLE [1619442a1] 2015-01-16 13:10:15 +0200
2334 Branch: REL9_2_STABLE [6bf343c6e] 2015-01-16 13:10:23 +0200
2339 Cope with the Windows locale named <quote>Norwegian (Bokmål)</>
2340 (Heikki Linnakangas)
2344 Non-ASCII locale names are problematic since it's not clear what
2345 encoding they should be represented in. Map the troublesome locale
2346 name to a plain-ASCII alias, <quote>Norwegian_Norway</>.
2351 Author: Tom Lane <tgl@sss.pgh.pa.us>
2352 Branch: REL9_3_STABLE [f88300168] 2014-11-04 13:24:14 -0500
2353 Branch: REL9_2_STABLE [db72ad02e] 2014-11-04 13:24:17 -0500
2354 Branch: REL9_1_STABLE [7c6f55e9e] 2014-11-04 13:24:22 -0500
2355 Branch: REL9_0_STABLE [45a607d5c] 2014-11-04 13:24:26 -0500
2360 Avoid possible data corruption if <command>ALTER DATABASE SET
2361 TABLESPACE</> is used to move a database to a new tablespace and then
2362 shortly later move it back to its original tablespace (Tom Lane)
2367 Author: Tom Lane <tgl@sss.pgh.pa.us>
2368 Branch: REL9_3_STABLE [81f0a5e38] 2014-10-29 18:12:08 -0400
2369 Branch: REL9_2_STABLE [40058fbce] 2014-10-29 18:12:11 -0400
2370 Branch: REL9_1_STABLE [6ec1c3ef8] 2014-10-29 18:12:17 -0400
2371 Branch: REL9_0_STABLE [9d06da58e] 2014-10-29 18:12:20 -0400
2372 Author: Tom Lane <tgl@sss.pgh.pa.us>
2373 Branch: REL9_3_STABLE [e65b550b3] 2014-10-30 13:03:28 -0400
2374 Branch: REL9_2_STABLE [38cb8687a] 2014-10-30 13:03:31 -0400
2375 Branch: REL9_1_STABLE [fcf0246b2] 2014-10-30 13:03:34 -0400
2376 Branch: REL9_0_STABLE [73f950fc8] 2014-10-30 13:03:39 -0400
2381 Avoid corrupting tables when <command>ANALYZE</> inside a transaction
2382 is rolled back (Andres Freund, Tom Lane, Michael Paquier)
2386 If the failing transaction had earlier removed the last index, rule, or
2387 trigger from the table, the table would be left in a corrupted state
2388 with the relevant <structname>pg_class</> flags not set though they
2394 Author: Andres Freund <andres@anarazel.de>
2395 Branch: REL9_3_STABLE [d7624e562] 2014-10-20 23:45:31 +0200
2396 Branch: REL9_2_STABLE [fd29810d1] 2014-10-20 23:47:00 +0200
2397 Branch: REL9_1_STABLE [d5fef87e9] 2014-10-20 23:47:45 +0200
2402 Ensure that unlogged tables are copied correctly
2403 during <command>CREATE DATABASE</> or <command>ALTER DATABASE SET
2404 TABLESPACE</> (Pavan Deolasee, Andres Freund)
2409 Author: Robert Haas <rhaas@postgresql.org>
2410 Branch: REL9_3_STABLE [e35db342a] 2014-09-22 16:19:59 -0400
2415 Fix incorrect processing
2416 of <structname>CreateEventTrigStmt</>.<structfield>eventname</> (Petr
2421 This could result in misbehavior if <command>CREATE EVENT TRIGGER</>
2422 were executed as a prepared query, or via extended query protocol.
2427 Author: Tom Lane <tgl@sss.pgh.pa.us>
2428 Branch: REL9_3_STABLE [2a83e0349] 2014-11-11 17:00:21 -0500
2429 Branch: REL9_2_STABLE [1c2f9a4f6] 2014-11-11 17:00:25 -0500
2430 Branch: REL9_1_STABLE [94d5d57d5] 2014-11-11 17:00:28 -0500
2435 Fix <command>DROP</>'s dependency searching to correctly handle the
2436 case where a table column is recursively visited before its table
2437 (Petr Jelinek, Tom Lane)
2441 This case is only known to arise when an extension creates both a
2442 datatype and a table using that datatype. The faulty code might
2443 refuse a <command>DROP EXTENSION</> unless <literal>CASCADE</> is
2444 specified, which should not be required.
2449 Author: Tom Lane <tgl@sss.pgh.pa.us>
2450 Branch: master [c480cb9d2] 2015-01-15 18:52:58 -0500
2451 Branch: REL9_4_STABLE [b75d18bd4] 2015-01-15 18:53:05 -0500
2452 Branch: REL9_3_STABLE [34668c8ec] 2015-01-15 18:52:28 -0500
2453 Branch: REL9_2_STABLE [0acb32efb] 2015-01-15 18:52:31 -0500
2454 Branch: REL9_1_STABLE [450530fce] 2015-01-15 18:52:34 -0500
2455 Branch: REL9_0_STABLE [5308e085b] 2015-01-15 18:52:38 -0500
2460 Fix use-of-already-freed-memory problem in EvalPlanQual processing
2465 In <literal>READ COMMITTED</> mode, queries that lock or update
2466 recently-updated rows could crash as a result of this bug.
2471 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2472 Branch: master [0e5680f47] 2014-12-26 13:52:27 -0300
2473 Branch: REL9_4_STABLE [0e3a1f71d] 2014-12-26 13:52:27 -0300
2474 Branch: REL9_3_STABLE [048912386] 2014-12-26 13:52:27 -0300
2479 Avoid possible deadlock while trying to acquire tuple locks
2480 in EvalPlanQual processing (Álvaro Herrera, Mark Kirkwood)
2485 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2486 Branch: master [d5e3d1e96] 2015-01-04 15:48:29 -0300
2487 Branch: REL9_4_STABLE [51742063b] 2015-01-04 15:48:29 -0300
2488 Branch: REL9_3_STABLE [54a8abc2b] 2015-01-04 15:48:29 -0300
2493 Fix failure to wait when a transaction tries to acquire a <literal>FOR
2494 NO KEY EXCLUSIVE</> tuple lock, while multiple other transactions
2495 currently hold <literal>FOR SHARE</> locks (Álvaro Herrera)
2500 Author: Tom Lane <tgl@sss.pgh.pa.us>
2501 Branch: REL9_3_STABLE [2ae8a01ca] 2014-12-11 21:02:31 -0500
2502 Branch: REL9_2_STABLE [cd63c57e5] 2014-12-11 21:02:34 -0500
2503 Branch: REL9_1_STABLE [bca39b578] 2014-12-11 21:02:38 -0500
2504 Branch: REL9_0_STABLE [662eebdc6] 2014-12-11 21:02:41 -0500
2509 Fix planning of <command>SELECT FOR UPDATE</> when using a partial
2510 index on a child table (Kyotaro Horiguchi)
2514 In <literal>READ COMMITTED</> mode, <command>SELECT FOR UPDATE</> must
2515 also recheck the partial index's <literal>WHERE</> condition when
2516 rechecking a recently-updated row to see if it still satisfies the
2517 query's <literal>WHERE</> condition. This requirement was missed if the
2518 index belonged to an inheritance child table, so that it was possible
2519 to incorrectly return rows that no longer satisfy the query condition.
2524 Author: Tom Lane <tgl@sss.pgh.pa.us>
2525 Branch: REL9_3_STABLE [f14196c35] 2014-12-11 19:37:07 -0500
2526 Branch: REL9_2_STABLE [deadbf4f3] 2014-12-11 19:37:10 -0500
2527 Branch: REL9_1_STABLE [21946ac9b] 2014-12-11 19:37:14 -0500
2528 Branch: REL9_0_STABLE [f5e4e92fb] 2014-12-11 19:37:17 -0500
2533 Fix corner case wherein <command>SELECT FOR UPDATE</> could return a row
2534 twice, and possibly miss returning other rows (Tom Lane)
2538 In <literal>READ COMMITTED</> mode, a <command>SELECT FOR UPDATE</>
2539 that is scanning an inheritance tree could incorrectly return a row
2540 from a prior child table instead of the one it should return from a
2546 Author: Tom Lane <tgl@sss.pgh.pa.us>
2547 Branch: master [a5cd70dcb] 2015-01-15 13:18:12 -0500
2548 Branch: REL9_4_STABLE [d25192892] 2015-01-15 13:18:16 -0500
2549 Branch: REL9_3_STABLE [939f0fb67] 2015-01-15 13:18:19 -0500
2554 Improve performance of <command>EXPLAIN</> with large range tables
2560 Author: Tom Lane <tgl@sss.pgh.pa.us>
2561 Branch: REL9_3_STABLE [7a9c8cefb] 2014-08-09 13:46:42 -0400
2562 Branch: REL9_2_STABLE [b4dacab12] 2014-08-09 13:46:45 -0400
2563 Branch: REL9_1_STABLE [bbe826f21] 2014-08-09 13:46:48 -0400
2564 Branch: REL9_0_STABLE [4ff49746e] 2014-08-09 13:46:52 -0400
2569 Reject duplicate column names in the referenced-columns list of
2570 a <literal>FOREIGN KEY</> declaration (David Rowley)
2574 This restriction is per SQL standard. Previously we did not reject
2575 the case explicitly, but later on the code would fail with
2576 bizarre-looking errors.
2581 Author: Tom Lane <tgl@sss.pgh.pa.us>
2582 Branch: REL9_3_STABLE [6306d0712] 2014-07-22 13:30:14 -0400
2587 Re-enable error for <literal>SELECT ... OFFSET -1</> (Tom Lane)
2591 A negative offset value has been an error since 8.4, but an
2592 optimization added in 9.3 accidentally turned the case into a no-op.
2593 Restore the expected behavior.
2598 Author: Tom Lane <tgl@sss.pgh.pa.us>
2599 Branch: REL9_3_STABLE [8b65e0a33] 2014-08-09 18:40:34 -0400
2600 Branch: REL9_2_STABLE [15026ab97] 2014-08-09 18:40:38 -0400
2605 Restore previous behavior of conversion of domains to JSON
2610 This change causes domains over numeric and boolean to be treated
2611 like their base types for purposes of conversion to JSON. It worked
2612 like that before 9.3.5 and 9.2.9, but was unintentionally changed
2613 while fixing a related problem.
2618 Author: Tom Lane <tgl@sss.pgh.pa.us>
2619 Branch: REL9_3_STABLE [8571ecb24] 2014-12-02 15:02:43 -0500
2624 Fix <function>json_agg()</> to not return extra trailing right
2625 brackets in its result (Tom Lane)
2630 Author: Tom Lane <tgl@sss.pgh.pa.us>
2631 Branch: REL9_3_STABLE [25bf13fe1] 2014-09-11 23:30:57 -0400
2632 Branch: REL9_2_STABLE [228ed4370] 2014-09-11 23:31:00 -0400
2633 Branch: REL9_1_STABLE [cf5c20b06] 2014-09-11 23:31:03 -0400
2634 Branch: REL9_0_STABLE [26f8a4691] 2014-09-11 23:31:06 -0400
2639 Fix bugs in raising a <type>numeric</> value to a large integral power
2644 The previous code could get a wrong answer, or consume excessive
2645 amounts of time and memory before realizing that the answer must
2651 Author: Tom Lane <tgl@sss.pgh.pa.us>
2652 Branch: REL9_3_STABLE [10b81fbdc] 2014-12-01 15:25:08 -0500
2653 Branch: REL9_2_STABLE [e640042e9] 2014-12-01 15:25:12 -0500
2654 Branch: REL9_1_STABLE [2e3cc3955] 2014-12-01 15:25:15 -0500
2655 Branch: REL9_0_STABLE [e6550626c] 2014-12-01 15:25:18 -0500
2660 In <function>numeric_recv()</>, truncate away any fractional digits
2661 that would be hidden according to the value's <literal>dscale</> field
2666 A <type>numeric</> value's display scale (<literal>dscale</>) should
2667 never be less than the number of nonzero fractional digits; but
2668 apparently there's at least one broken client application that
2669 transmits binary <type>numeric</> values in which that's true.
2670 This leads to strange behavior since the extra digits are taken into
2671 account by arithmetic operations even though they aren't printed.
2672 The least risky fix seems to be to truncate away such <quote>hidden</>
2673 digits on receipt, so that the value is indeed what it prints as.
2678 Author: Tom Lane <tgl@sss.pgh.pa.us>
2679 Branch: REL9_3_STABLE [bbfdf5d75] 2014-09-23 20:25:36 -0400
2680 Branch: REL9_2_STABLE [3359a818c] 2014-09-23 20:25:39 -0400
2685 Fix incorrect search for shortest-first regular expression matches
2690 Matching would often fail when the number of allowed iterations is
2691 limited by a <literal>?</> quantifier or a bound expression.
2696 Author: Tom Lane <tgl@sss.pgh.pa.us>
2697 Branch: REL9_3_STABLE [7672bbca0] 2014-07-21 22:41:27 -0400
2698 Branch: REL9_2_STABLE [f54d97c5e] 2014-07-21 22:41:30 -0400
2699 Branch: REL9_1_STABLE [124331b61] 2014-07-21 22:41:33 -0400
2700 Branch: REL9_0_STABLE [6e5a39c9e] 2014-07-21 22:41:36 -0400
2705 Reject out-of-range numeric timezone specifications (Tom Lane)
2709 Simple numeric timezone specifications exceeding +/- 168 hours (one
2710 week) would be accepted, but could then cause null-pointer dereference
2711 crashes in certain operations. There's no use-case for such large UTC
2712 offsets, so reject them.
2717 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2718 Branch: REL9_3_STABLE [1aa526f3f] 2014-10-27 10:51:29 +0200
2719 Branch: REL9_2_STABLE [604d94d4c] 2014-10-27 10:51:33 +0200
2720 Branch: REL9_1_STABLE [4d1c738d1] 2014-10-27 10:51:36 +0200
2721 Branch: REL9_0_STABLE [10059c2da] 2014-10-27 10:51:38 +0200
2726 Fix bugs in <type>tsquery</> <literal>@></> <type>tsquery</>
2727 operator (Heikki Linnakangas)
2731 Two different terms would be considered to match if they had the same
2732 CRC. Also, if the second operand had more terms than the first, it
2733 would be assumed not to be contained in the first; which is wrong
2734 since it might contain duplicate terms.
2739 Author: Tom Lane <tgl@sss.pgh.pa.us>
2740 Branch: REL9_3_STABLE [385f0d98a] 2014-10-23 13:11:34 -0400
2741 Branch: REL9_2_STABLE [f09369da8] 2014-10-23 13:11:37 -0400
2742 Branch: REL9_1_STABLE [94de3a679] 2014-10-23 13:11:41 -0400
2743 Branch: REL9_0_STABLE [21fa26b65] 2014-10-23 13:11:45 -0400
2748 Improve ispell dictionary's defenses against bad affix files (Tom Lane)
2753 Author: Tom Lane <tgl@sss.pgh.pa.us>
2754 Branch: REL9_3_STABLE [5a74ff373] 2014-11-06 20:52:52 -0500
2755 Branch: REL9_2_STABLE [0bb318595] 2014-11-06 20:52:57 -0500
2756 Branch: REL9_1_STABLE [076688084] 2014-11-06 20:53:02 -0500
2757 Branch: REL9_0_STABLE [39493e4d9] 2014-11-06 20:53:07 -0500
2762 Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
2766 The previous coding could crash on an oversize dictionary, so this was
2767 deemed a back-patchable bug fix rather than a feature addition.
2772 Author: Peter Eisentraut <peter_e@gmx.net>
2773 Branch: master [79af9a1d2] 2015-01-06 23:06:13 -0500
2774 Branch: REL9_4_STABLE [6bbf75192] 2015-01-17 22:11:20 -0500
2775 Branch: REL9_3_STABLE [e32cb8d0e] 2015-01-17 22:13:27 -0500
2776 Branch: REL9_2_STABLE [c8ef5b1ac] 2015-01-17 22:14:21 -0500
2777 Branch: REL9_1_STABLE [c975fa471] 2015-01-17 22:37:07 -0500
2778 Branch: REL9_0_STABLE [cebb3f032] 2015-01-17 22:37:32 -0500
2783 Fix namespace handling in <function>xpath()</> (Ali Akbar)
2787 Previously, the <type>xml</> value resulting from
2788 an <function>xpath()</> call would not have namespace declarations if
2789 the namespace declarations were attached to an ancestor element in the
2790 input <type>xml</> value, rather than to the specific element being
2791 returned. Propagate the ancestral declaration so that the result is
2792 correct when considered in isolation.
2797 Author: Tom Lane <tgl@sss.pgh.pa.us>
2798 Branch: REL9_3_STABLE [07ab4ec4c] 2014-11-10 15:21:20 -0500
2799 Branch: REL9_2_STABLE [19ccaf9d4] 2014-11-10 15:21:26 -0500
2804 Ensure that whole-row variables expose nonempty column names
2805 to functions that pay attention to column names within composite
2806 arguments (Tom Lane)
2810 In some contexts, constructs like <literal>row_to_json(tab.*)</> may
2811 not produce the expected column names. This is fixed properly as of
2812 9.4; in older branches, just ensure that we produce some nonempty
2813 name. (In some cases this will be the underlying table's column name
2814 rather than the query-assigned alias that should theoretically be
2820 Author: Tom Lane <tgl@sss.pgh.pa.us>
2821 Branch: REL9_3_STABLE [c57cdc9c1] 2014-11-22 16:01:12 -0500
2822 Branch: REL9_2_STABLE [906599f65] 2014-11-22 16:01:15 -0500
2827 Fix mishandling of system columns,
2828 particularly <structfield>tableoid</>, in FDW queries (Etsuro Fujita)
2833 Author: Tom Lane <tgl@sss.pgh.pa.us>
2834 Branch: master [3d660d33a] 2015-01-30 12:30:59 -0500
2835 Branch: REL9_4_STABLE [b6a164e5c] 2015-01-30 12:31:08 -0500
2836 Branch: REL9_3_STABLE [527ff8baf] 2015-01-30 12:30:43 -0500
2841 Fix assorted oversights in range-operator selectivity estimation
2846 This patch fixes corner-case <quote>unexpected operator NNNN</> planner
2847 errors, and improves the selectivity estimates for some other cases.
2852 Author: Tom Lane <tgl@sss.pgh.pa.us>
2853 Branch: REL9_3_STABLE [f6abf8f08] 2014-10-26 16:12:29 -0400
2854 Branch: REL9_2_STABLE [4586572d7] 2014-10-26 16:12:32 -0400
2859 Avoid doing <literal><replaceable>indexed_column</> = ANY
2860 (<replaceable>array</>)</literal> as an index qualifier if that leads
2861 to an inferior plan (Andrew Gierth)
2865 In some cases, <literal>= ANY</> conditions applied to non-first index
2866 columns would be done as index conditions even though it would be
2867 better to use them as simple filter conditions.
2872 Author: Tom Lane <tgl@sss.pgh.pa.us>
2873 Branch: REL9_3_STABLE [4e54685d0] 2014-10-20 12:23:48 -0400
2878 Fix <quote>variable not found in subplan target list</> planner
2879 failure when an inline-able SQL function taking a composite argument
2880 is used in a <literal>LATERAL</> subselect and the composite argument
2881 is a lateral reference (Tom Lane)
2886 Author: Tom Lane <tgl@sss.pgh.pa.us>
2887 Branch: REL9_3_STABLE [b2b95de61] 2014-10-01 19:30:30 -0400
2888 Branch: REL9_2_STABLE [71b88cf52] 2014-10-01 19:30:34 -0400
2889 Branch: REL9_1_STABLE [477023e94] 2014-10-01 19:30:38 -0400
2890 Branch: REL9_0_STABLE [288f15b7c] 2014-10-01 19:30:41 -0400
2895 Fix planner problems with nested append relations, such as inherited
2896 tables within <literal>UNION ALL</> subqueries (Tom Lane)
2901 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2902 Branch: REL9_3_STABLE [ef8ac584e] 2014-10-03 14:50:29 +0300
2903 Branch: REL9_2_STABLE [8e137b075] 2014-10-03 14:50:40 +0300
2904 Branch: REL9_1_STABLE [f270a1611] 2014-10-03 14:50:46 +0300
2905 Branch: REL9_0_STABLE [f04b112d5] 2014-10-03 14:50:58 +0300
2910 Fail cleanly when a GiST index tuple doesn't fit on a page, rather
2911 than going into infinite recursion (Andrew Gierth)
2916 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2917 Branch: REL9_3_STABLE [67ed9d531] 2014-10-03 13:01:27 -0300
2918 Branch: REL9_2_STABLE [769d6815e] 2014-10-03 13:01:27 -0300
2919 Branch: REL9_1_STABLE [06646f52e] 2014-10-03 13:01:27 -0300
2920 Branch: REL9_0_STABLE [50a757698] 2014-10-03 13:01:27 -0300
2925 Exempt tables that have per-table <varname>cost_limit</>
2926 and/or <varname>cost_delay</> settings from autovacuum's global cost
2927 balancing rules (Álvaro Herrera)
2931 The previous behavior resulted in basically ignoring these per-table
2932 settings, which was unintended. Now, a table having such settings
2933 will be vacuumed using those settings, independently of what is going
2934 on in other autovacuum workers. This may result in heavier total I/O
2935 load than before, so such settings should be re-examined for sanity.
2940 Author: Tom Lane <tgl@sss.pgh.pa.us>
2941 Branch: REL9_3_STABLE [4cbecdaaa] 2014-07-30 14:41:49 -0400
2942 Branch: REL9_2_STABLE [c83aed34b] 2014-07-30 14:41:53 -0400
2943 Branch: REL9_1_STABLE [f21afe421] 2014-07-30 14:41:58 -0400
2944 Branch: REL9_0_STABLE [91b4a881c] 2014-07-30 14:42:12 -0400
2949 Avoid wholesale autovacuuming when autovacuum is nominally off
2954 Even when autovacuum is nominally off, we will still launch autovacuum
2955 worker processes to vacuum tables that are at risk of XID wraparound.
2956 However, such a worker process then proceeded to vacuum all tables in
2957 the target database, if they met the usual thresholds for
2958 autovacuuming. This is at best pretty unexpected; at worst it delays
2959 response to the wraparound threat. Fix it so that if autovacuum is
2960 turned off, workers <emphasis>only</> do anti-wraparound vacuums and
2966 Author: Andres Freund <andres@anarazel.de>
2967 Branch: REL9_3_STABLE [2c3ebfd1a] 2014-11-15 01:21:07 +0100
2968 Branch: REL9_2_STABLE [ea8b3833e] 2014-11-15 01:21:45 +0100
2969 Branch: REL9_1_STABLE [d85b646d0] 2014-11-15 01:22:32 +0100
2970 Author: Andres Freund <andres@anarazel.de>
2971 Branch: REL9_3_STABLE [672b43e68] 2014-11-15 01:21:02 +0100
2972 Branch: REL9_2_STABLE [c5baa708f] 2014-11-15 01:21:40 +0100
2973 Branch: REL9_1_STABLE [fde9994bc] 2014-11-15 01:22:32 +0100
2974 Author: Andres Freund <andres@anarazel.de>
2975 Branch: REL9_3_STABLE [c7299d32f] 2014-11-15 01:20:29 +0100
2976 Branch: REL9_2_STABLE [86673a44a] 2014-11-15 01:21:30 +0100
2977 Branch: REL9_1_STABLE [b0a48e996] 2014-11-15 01:22:32 +0100
2982 During crash recovery, ensure that unlogged relations are rewritten as
2983 empty and are synced to disk before recovery is considered complete
2984 (Abhijit Menon-Sen, Andres Freund)
2988 This prevents scenarios in which unlogged relations might contain
2989 garbage data following database crash recovery.
2994 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2995 Branch: REL9_3_STABLE [861d3aa43] 2014-11-13 20:01:55 +0200
2996 Branch: REL9_2_STABLE [7eab804c2] 2014-11-13 20:01:18 +0200
2997 Branch: REL9_1_STABLE [5f1d931cf] 2014-11-13 20:01:09 +0200
2998 Branch: REL9_0_STABLE [681dbe7d4] 2014-11-13 20:00:51 +0200
3003 Fix race condition between hot standby queries and replaying a
3004 full-page image (Heikki Linnakangas)
3008 This mistake could result in transient errors in queries being
3009 executed in hot standby.
3014 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3015 Branch: REL9_3_STABLE [a2a718b22] 2014-07-29 11:57:52 +0300
3016 Branch: REL9_2_STABLE [1578d13dc] 2014-07-29 11:58:01 +0300
3017 Branch: REL9_1_STABLE [de88ec6bf] 2014-07-29 11:58:09 +0300
3018 Branch: REL9_0_STABLE [804983961] 2014-07-29 11:58:17 +0300
3023 Fix several cases where recovery logic improperly ignored WAL records
3024 for <literal>COMMIT/ABORT PREPARED</> (Heikki Linnakangas)
3028 The most notable oversight was
3029 that <varname>recovery_target_xid</> could not be used to stop at
3035 Author: Fujii Masao <fujii@postgresql.org>
3036 Branch: REL9_3_STABLE [d45cd9e19] 2014-10-23 16:22:46 +0900
3037 Branch: REL9_2_STABLE [f904e9afd] 2014-10-23 16:31:44 +0900
3042 Prevent latest WAL file from being archived a second time at completion
3043 of crash recovery (Fujii Masao)
3048 Author: Fujii Masao <fujii@postgresql.org>
3049 Branch: REL9_3_STABLE [3a3b7e316] 2014-11-06 21:25:18 +0900
3050 Branch: REL9_2_STABLE [38eb5d9e8] 2014-11-06 21:25:45 +0900
3051 Branch: REL9_1_STABLE [4e7468074] 2014-11-06 21:26:15 +0900
3052 Branch: REL9_0_STABLE [83c7bfb9a] 2014-11-06 21:26:21 +0900
3057 Avoid creating unnecessary <filename>.ready</> marker files for
3058 timeline history files (Fujii Masao)
3063 Author: Fujii Masao <fujii@postgresql.org>
3064 Branch: REL9_3_STABLE [52eed3d42] 2014-09-05 02:19:29 +0900
3065 Branch: REL9_2_STABLE [78b1228ef] 2014-09-05 02:19:45 +0900
3066 Branch: REL9_1_STABLE [81bffe63c] 2014-09-05 02:19:50 +0900
3067 Branch: REL9_0_STABLE [857a5d6b5] 2014-09-05 02:19:57 +0900
3072 Fix possible null pointer dereference when an empty prepared statement
3073 is used and the <varname>log_statement</> setting is <literal>mod</>
3074 or <literal>ddl</> (Fujii Masao)
3079 Author: Tom Lane <tgl@sss.pgh.pa.us>
3080 Branch: master [75b48e1ff] 2015-01-19 23:01:33 -0500
3081 Branch: REL9_4_STABLE [3387cbbcb] 2015-01-19 23:01:36 -0500
3082 Branch: REL9_3_STABLE [19794e997] 2015-01-19 23:01:39 -0500
3083 Branch: REL9_2_STABLE [33b723538] 2015-01-19 23:01:41 -0500
3084 Branch: REL9_1_STABLE [b87c1dcef] 2015-01-19 23:01:44 -0500
3085 Branch: REL9_0_STABLE [a1a8d0249] 2015-01-19 23:01:46 -0500
3090 Change <quote>pgstat wait timeout</> warning message to be LOG level,
3091 and rephrase it to be more understandable (Tom Lane)
3095 This message was originally thought to be essentially a can't-happen
3096 case, but it occurs often enough on our slower buildfarm members to be
3097 a nuisance. Reduce it to LOG level, and expend a bit more effort on
3098 the wording: it now reads <quote>using stale statistics instead of
3099 current ones because stats collector is not responding</>.
3104 Author: Andres Freund <andres@anarazel.de>
3105 Branch: REL9_3_STABLE [cbd9619ac] 2014-10-01 14:34:06 +0200
3110 Fix possible corruption of postmaster's list of dynamic background
3111 workers (Andres Freund)
3116 Author: Andres Freund <andres@anarazel.de>
3117 Branch: REL9_3_STABLE [27ef6b653] 2014-09-09 23:37:33 +0200
3118 Branch: REL9_2_STABLE [d0b7ffc0f] 2014-09-09 23:37:50 +0200
3119 Branch: REL9_1_STABLE [5af508f66] 2014-09-09 23:45:07 +0200
3120 Branch: REL9_0_STABLE [f25e89601] 2014-09-09 23:48:03 +0200
3125 Fix SPARC spinlock implementation to ensure correctness if the CPU is
3126 being run in a non-TSO coherency mode, as some non-Solaris kernels do
3132 Author: Noah Misch <noah@leadboat.com>
3133 Branch: master [894459e59] 2015-01-07 22:35:44 -0500
3134 Branch: REL9_4_STABLE [83fb1ca5c] 2015-01-07 22:36:35 -0500
3135 Branch: REL9_3_STABLE [1a366d51e] 2015-01-07 22:40:40 -0500
3136 Branch: REL9_2_STABLE [5ca4e444c] 2015-01-07 22:41:49 -0500
3137 Branch: REL9_1_STABLE [8dc83104e] 2015-01-07 22:42:42 -0500
3138 Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
3143 Warn if OS X's <function>setlocale()</> starts an unwanted extra
3144 thread inside the postmaster (Noah Misch)
3149 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3150 Branch: REL9_3_STABLE [08cd4d9a6] 2014-11-25 17:39:00 +0200
3151 Branch: REL9_2_STABLE [9b468bcec] 2014-11-25 17:39:04 +0200
3152 Branch: REL9_1_STABLE [95be34362] 2014-11-25 17:39:07 +0200
3153 Branch: REL9_0_STABLE [9880fea4f] 2014-11-25 17:39:09 +0200
3158 Fix processing of repeated <literal>dbname</> parameters
3159 in <function>PQconnectdbParams()</> (Alex Shulgin)
3163 Unexpected behavior ensued if the first occurrence
3164 of <literal>dbname</> contained a connection string or URI to be
3170 Author: Tom Lane <tgl@sss.pgh.pa.us>
3171 Branch: REL9_3_STABLE [52ef33f72] 2014-10-22 18:41:51 -0400
3172 Branch: REL9_2_STABLE [6fa31d8d1] 2014-10-22 18:41:54 -0400
3173 Branch: REL9_1_STABLE [98144378c] 2014-10-22 18:41:57 -0400
3174 Branch: REL9_0_STABLE [ac6e87537] 2014-10-22 18:42:01 -0400
3179 Ensure that <application>libpq</> reports a suitable error message on
3180 unexpected socket EOF (Marko Tiikkaja, Tom Lane)
3184 Depending on kernel behavior, <application>libpq</> might return an
3185 empty error string rather than something useful when the server
3186 unexpectedly closed the socket.
3191 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3192 Branch: REL9_3_STABLE [1325b239b] 2014-10-29 14:40:47 +0200
3193 Branch: REL9_2_STABLE [1a27fbd07] 2014-10-29 14:39:10 +0200
3194 Branch: REL9_1_STABLE [8f7bd8e91] 2014-10-29 14:36:19 +0200
3195 Branch: REL9_0_STABLE [49ef4eba2] 2014-10-29 14:35:39 +0200
3200 Clear any old error message during <function>PQreset()</>
3201 (Heikki Linnakangas)
3205 If <function>PQreset()</> is called repeatedly, and the connection
3206 cannot be re-established, error messages from the failed connection
3207 attempts kept accumulating in the <structname>PGconn</>'s error
3213 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3214 Branch: REL9_3_STABLE [d3b162a3d] 2014-11-25 14:10:29 +0200
3215 Branch: REL9_2_STABLE [abcab2a64] 2014-11-25 14:10:43 +0200
3216 Branch: REL9_1_STABLE [5053ad206] 2014-11-25 14:10:48 +0200
3217 Branch: REL9_0_STABLE [1f3517039] 2014-11-25 14:10:54 +0200
3222 Properly handle out-of-memory conditions while parsing connection
3223 options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
3228 Author: Tom Lane <tgl@sss.pgh.pa.us>
3229 Branch: REL9_3_STABLE [d3cfe20c6] 2014-10-06 21:23:35 -0400
3230 Branch: REL9_2_STABLE [b513205bc] 2014-10-06 21:23:39 -0400
3231 Branch: REL9_1_STABLE [037b912ec] 2014-10-06 21:23:45 -0400
3232 Branch: REL9_0_STABLE [d9a1e9de5] 2014-10-06 21:23:50 -0400
3237 Fix array overrun in <application>ecpg</>'s version
3238 of <function>ParseDateTime()</> (Michael Paquier)
3243 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3244 Branch: REL9_3_STABLE [2df66f01a] 2014-12-05 14:31:51 +0200
3245 Branch: REL9_2_STABLE [2b53d583d] 2014-12-05 14:31:45 +0200
3246 Branch: REL9_1_STABLE [729202754] 2014-12-05 14:31:37 +0200
3247 Branch: REL9_0_STABLE [d67be559e] 2014-12-05 14:30:55 +0200
3252 In <application>initdb</>, give a clearer error message if a password
3253 file is specified but is empty (Mats Erik Andersson)
3258 Author: Tom Lane <tgl@sss.pgh.pa.us>
3259 Branch: REL9_3_STABLE [b0fd5c552] 2014-09-08 16:09:52 -0400
3260 Branch: REL9_2_STABLE [886b58b47] 2014-09-08 16:09:56 -0400
3261 Branch: REL9_1_STABLE [440fcc568] 2014-09-08 16:10:01 -0400
3262 Branch: REL9_0_STABLE [44c518328] 2014-09-08 16:10:05 -0400
3267 Fix <application>psql</>'s <command>\s</> command to work nicely with
3268 libedit, and add pager support (Stepan Rutz, Tom Lane)
3272 When using libedit rather than readline, <command>\s</> printed the
3273 command history in a fairly unreadable encoded format, and on recent
3274 libedit versions might fail altogether. Fix that by printing the
3275 history ourselves rather than having the library do it. A pleasant
3276 side-effect is that the pager is used if appropriate.
3280 This patch also fixes a bug that caused newline encoding to be applied
3281 inconsistently when saving the command history with libedit.
3282 Multiline history entries written by older <application>psql</>
3283 versions will be read cleanly with this patch, but perhaps not
3284 vice versa, depending on the exact libedit versions involved.
3289 Author: Tom Lane <tgl@sss.pgh.pa.us>
3290 Branch: master [28551797a] 2014-12-31 12:18:50 -0500
3291 Branch: REL9_4_STABLE [c35249939] 2014-12-31 12:16:57 -0500
3292 Branch: REL9_3_STABLE [7582cce56] 2014-12-31 12:17:00 -0500
3293 Branch: REL9_2_STABLE [64c506535] 2014-12-31 12:17:04 -0500
3294 Branch: REL9_1_STABLE [1773e0702] 2014-12-31 12:17:08 -0500
3295 Branch: REL9_0_STABLE [2600e4436] 2014-12-31 12:17:12 -0500
3300 Improve consistency of parsing of <application>psql</>'s special
3301 variables (Tom Lane)
3305 Allow variant spellings of <literal>on</> and <literal>off</> (such
3306 as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
3307 and <literal>ON_ERROR_ROLLBACK</>. Report a warning for unrecognized
3308 values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
3309 <literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
3310 <literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>. Recognize
3311 all values for all these variables case-insensitively; previously
3312 there was a mishmash of case-sensitive and case-insensitive behaviors.
3317 Author: Fujii Masao <fujii@postgresql.org>
3318 Branch: REL9_3_STABLE [4b1953079] 2014-11-28 02:44:40 +0900
3323 Make <application>psql</>'s <command>\watch</> command display
3324 nulls as specified by <command>\pset null</> (Fujii Masao)
3329 Author: Stephen Frost <sfrost@snowman.net>
3330 Branch: REL9_3_STABLE [7ec399094] 2014-09-12 11:24:28 -0400
3331 Branch: REL9_2_STABLE [5d63f2159] 2014-09-12 11:24:32 -0400
3332 Branch: REL9_1_STABLE [4d96e93cb] 2014-09-12 11:24:36 -0400
3333 Branch: REL9_0_STABLE [1f89fc218] 2014-09-12 11:24:39 -0400
3338 Fix <application>psql</>'s expanded-mode display to work
3339 consistently when using <literal>border</> = 3
3340 and <literal>linestyle</> = <literal>ascii</> or <literal>unicode</>
3346 Author: Tom Lane <tgl@sss.pgh.pa.us>
3347 Branch: master [adfc157dd] 2015-01-05 19:27:04 -0500
3348 Branch: REL9_4_STABLE [c99e41f68] 2015-01-05 19:27:06 -0500
3349 Branch: REL9_3_STABLE [bb1e2426b] 2015-01-05 19:27:09 -0500
3354 Fix <application>pg_dump</> to handle comments on event triggers
3355 without failing (Tom Lane)
3360 Author: Kevin Grittner <kgrittn@postgresql.org>
3361 Branch: master [cff1bd2a3] 2015-01-30 08:57:24 -0600
3362 Branch: REL9_4_STABLE [cb0168528] 2015-01-30 08:57:53 -0600
3363 Branch: REL9_3_STABLE [cc609c46f] 2015-01-30 09:01:36 -0600
3368 Allow parallel <application>pg_dump</> to
3369 use <option>--serializable-deferrable</> (Kevin Grittner)
3374 Author: Tom Lane <tgl@sss.pgh.pa.us>
3375 Branch: REL9_3_STABLE [51fc61334] 2014-07-25 19:48:48 -0400
3376 Branch: REL9_2_STABLE [a6c567437] 2014-07-25 19:48:51 -0400
3377 Branch: REL9_1_STABLE [40c333c39] 2014-07-25 19:48:54 -0400
3382 Improve performance of <application>pg_dump</> when the database
3383 contains many instances of multiple dependency paths between the same
3384 two objects (Tom Lane)
3389 Author: Tom Lane <tgl@sss.pgh.pa.us>
3390 Branch: REL9_3_STABLE [9fc887121] 2014-11-13 18:19:32 -0500
3391 Branch: REL9_2_STABLE [3c5ce5102] 2014-11-13 18:19:35 -0500
3396 Fix <application>pg_dumpall</> to restore its ability to dump from
3397 pre-8.1 servers (Gilles Darold)
3402 Author: Robert Haas <rhaas@postgresql.org>
3403 Branch: REL9_3_STABLE [d72ecc91c] 2014-09-26 11:23:43 -0400
3404 Branch: REL9_2_STABLE [a97c8c393] 2014-09-26 11:25:57 -0400
3405 Branch: REL9_1_STABLE [d1844c21b] 2014-09-26 11:36:25 -0400
3406 Branch: REL9_0_STABLE [bbe3c069a] 2014-09-26 11:43:56 -0400
3411 Fix possible deadlock during parallel restore of a schema-only dump
3412 (Robert Haas, Tom Lane)
3417 Author: Tom Lane <tgl@sss.pgh.pa.us>
3418 Branch: REL9_3_STABLE [9a540c1ef] 2014-10-17 12:49:06 -0400
3419 Branch: REL9_2_STABLE [787e20bd4] 2014-10-17 12:49:09 -0400
3420 Branch: REL9_1_STABLE [0c9391e52] 2014-10-17 12:49:11 -0400
3421 Branch: REL9_0_STABLE [31021e7ba] 2014-10-17 12:49:15 -0400
3426 Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
3427 composite type (Rushabh Lathia)
3432 Author: Andres Freund <andres@anarazel.de>
3433 Branch: REL9_3_STABLE [26a4e0ed7] 2014-11-15 01:21:11 +0100
3438 Fix failure to fsync tables in nondefault tablespaces
3439 during <application>pg_upgrade</> (Abhijit Menon-Sen, Andres Freund)
3443 With an operating system crash and some bad luck, this could result in
3444 data loss during an upgrade.
3449 Author: Bruce Momjian <bruce@momjian.us>
3450 Branch: REL9_3_STABLE [fca9f349b] 2014-08-07 14:56:13 -0400
3455 In <application>pg_upgrade</>, cope with cases where the new cluster
3456 creates a TOAST table for a table that didn't previously have one
3461 Previously this could result in failures due to OID conflicts.
3466 Author: Bruce Momjian <bruce@momjian.us>
3467 Branch: REL9_3_STABLE [24ae44914] 2014-08-04 11:45:45 -0400
3472 In <application>pg_upgrade</>, don't try to
3473 set <literal>autovacuum_multixact_freeze_max_age</> for the old cluster
3478 This could result in failure because not all 9.3.X versions have that
3479 parameter. Fortunately, we don't actually need to set it at all.
3484 Author: Bruce Momjian <bruce@momjian.us>
3485 Branch: REL9_3_STABLE [5724f491d] 2014-09-11 18:39:46 -0400
3490 In <application>pg_upgrade</>, preserve the transaction ID epoch
3495 This oversight did not bother <productname>PostgreSQL</> proper,
3496 but could confuse some external replication tools.
3501 Author: Andres Freund <andres@anarazel.de>
3502 Branch: master [2c0a48589] 2015-01-03 20:54:12 +0100
3503 Branch: REL9_4_STABLE [90e4a2bf9] 2015-01-03 20:54:13 +0100
3504 Branch: REL9_3_STABLE [f6cea4502] 2015-01-03 20:54:13 +0100
3505 Branch: REL9_2_STABLE [f961ad479] 2015-01-03 20:54:13 +0100
3506 Branch: REL9_1_STABLE [2a0bfa4d6] 2015-01-03 20:54:13 +0100
3511 Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
3512 being archived again when the standby is promoted (Andres Freund)
3517 Author: Fujii Masao <fujii@postgresql.org>
3518 Branch: REL9_3_STABLE [9747a9898] 2014-08-02 15:19:45 +0900
3523 Fix memory leak in <application>pg_receivexlog</> (Fujii Masao)
3528 Author: Fujii Masao <fujii@postgresql.org>
3529 Branch: REL9_3_STABLE [39217ce41] 2014-08-02 14:59:10 +0900
3534 Fix unintended suppression of <application>pg_receivexlog</> verbose
3535 messages (Fujii Masao)
3540 Author: Tom Lane <tgl@sss.pgh.pa.us>
3541 Branch: REL9_3_STABLE [9474c9d81] 2014-09-19 13:19:02 -0400
3542 Branch: REL9_2_STABLE [5ff8c2d7d] 2014-09-19 13:19:05 -0400
3547 Fix failure of <filename>contrib/auto_explain</> to print per-node
3548 timing information when doing <command>EXPLAIN ANALYZE</> (Tom Lane)
3553 Author: Tom Lane <tgl@sss.pgh.pa.us>
3554 Branch: REL9_3_STABLE [0ad403c98] 2014-08-28 18:21:14 -0400
3555 Branch: REL9_2_STABLE [f3998521f] 2014-08-28 18:21:17 -0400
3556 Branch: REL9_1_STABLE [9807c8220] 2014-08-28 18:21:20 -0400
3561 Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
3567 Author: Tom Lane <tgl@sss.pgh.pa.us>
3568 Branch: REL9_3_STABLE [f44290b7b] 2014-11-04 16:54:59 -0500
3573 Avoid integer overflow and buffer overrun
3574 in <filename>contrib/hstore</>'s <function>hstore_to_json()</>
3575 (Heikki Linnakangas)
3580 Author: Andrew Dunstan <andrew@dunslane.net>
3581 Branch: REL9_3_STABLE [55c880797] 2014-12-01 11:44:48 -0500
3586 Fix recognition of numbers in <function>hstore_to_json_loose()</>,
3587 so that JSON numbers and strings are correctly distinguished
3593 Author: Tom Lane <tgl@sss.pgh.pa.us>
3594 Branch: REL9_3_STABLE [f59c8eff7] 2014-07-22 11:45:53 -0400
3595 Branch: REL9_2_STABLE [810f0d2a2] 2014-07-22 11:45:57 -0400
3596 Branch: REL9_1_STABLE [3c5232ae8] 2014-07-22 11:46:00 -0400
3597 Branch: REL9_0_STABLE [9dc2a3fd0] 2014-07-22 11:46:04 -0400
3602 Fix block number checking
3603 in <filename>contrib/pageinspect</>'s <function>get_raw_page()</>
3608 The incorrect checking logic could prevent access to some pages in
3609 non-main relation forks.
3614 Author: Tom Lane <tgl@sss.pgh.pa.us>
3615 Branch: REL9_3_STABLE [419de696a] 2014-11-11 17:22:38 -0500
3616 Branch: REL9_2_STABLE [4a9710e6e] 2014-11-11 17:22:44 -0500
3617 Branch: REL9_1_STABLE [4ddd9e72f] 2014-11-11 17:22:51 -0500
3618 Branch: REL9_0_STABLE [ef5a3b957] 2014-11-11 17:22:58 -0500
3623 Fix <filename>contrib/pgcrypto</>'s <function>pgp_sym_decrypt()</>
3624 to not fail on messages whose length is 6 less than a power of 2
3630 Author: Robert Haas <rhaas@postgresql.org>
3631 Branch: REL9_3_STABLE [8cf825974] 2014-11-19 12:14:22 -0500
3632 Branch: REL9_2_STABLE [57ce74661] 2014-11-19 12:20:47 -0500
3633 Branch: REL9_1_STABLE [a855c90a7] 2014-11-19 12:26:06 -0500
3638 Fix file descriptor leak in <filename>contrib/pg_test_fsync</>
3643 This could cause failure to remove temporary files on Windows.
3648 Author: Tom Lane <tgl@sss.pgh.pa.us>
3649 Branch: master [37507962c] 2015-01-29 20:18:33 -0500
3650 Branch: REL9_4_STABLE [202621d04] 2015-01-29 20:18:37 -0500
3651 Branch: REL9_3_STABLE [53ae24692] 2015-01-29 20:18:40 -0500
3652 Branch: REL9_2_STABLE [66cc74680] 2015-01-29 20:18:42 -0500
3653 Branch: REL9_1_STABLE [290c2daad] 2015-01-29 20:18:44 -0500
3654 Branch: REL9_0_STABLE [dc9a506e6] 2015-01-29 20:18:46 -0500
3659 Handle unexpected query results, especially NULLs, safely in
3660 <filename>contrib/tablefunc</>'s <function>connectby()</>
3665 <function>connectby()</> previously crashed if it encountered a NULL
3666 key value. It now prints that row but doesn't recurse further.
3671 Author: Tom Lane <tgl@sss.pgh.pa.us>
3672 Branch: REL9_3_STABLE [c393847a1] 2014-11-27 11:12:51 -0500
3673 Branch: REL9_2_STABLE [a1cd04cd0] 2014-11-27 11:12:55 -0500
3674 Branch: REL9_1_STABLE [168636a99] 2014-11-27 11:12:59 -0500
3675 Branch: REL9_0_STABLE [6a694bbab] 2014-11-27 11:13:03 -0500
3680 Avoid a possible crash in <filename>contrib/xml2</>'s
3681 <function>xslt_process()</> (Mark Simonetti)
3685 <application>libxslt</> seems to have an undocumented dependency on
3686 the order in which resources are freed; reorder our calls to avoid a
3692 Author: Tom Lane <tgl@sss.pgh.pa.us>
3693 Branch: REL9_3_STABLE [0247935c7] 2014-11-05 11:34:19 -0500
3694 Branch: REL9_2_STABLE [0ef754cad] 2014-11-05 11:34:22 -0500
3695 Branch: REL9_1_STABLE [7225abf00] 2014-11-05 11:34:25 -0500
3700 Mark some <filename>contrib</> I/O functions with correct volatility
3701 properties (Tom Lane)
3705 The previous over-conservative marking was immaterial in normal use,
3706 but could cause optimization problems or rejection of valid index
3707 expression definitions. Since the consequences are not large, we've
3708 just adjusted the function definitions in the extension modules'
3709 scripts, without changing version numbers.
3714 Author: Tom Lane <tgl@sss.pgh.pa.us>
3715 Branch: master [a59ee8819] 2015-01-30 13:05:30 -0500
3716 Branch: REL9_4_STABLE [70da7aeba] 2015-01-30 13:04:59 -0500
3717 Branch: REL9_3_STABLE [f08cf8ad9] 2015-01-30 13:05:01 -0500
3718 Branch: REL9_2_STABLE [a97dfdfd9] 2015-01-30 13:05:04 -0500
3719 Branch: REL9_1_STABLE [8f51c432c] 2015-01-30 13:05:07 -0500
3720 Branch: REL9_0_STABLE [7c41a32b3] 2015-01-30 13:05:09 -0500
3721 Author: Tom Lane <tgl@sss.pgh.pa.us>
3722 Branch: REL9_3_STABLE [8824bae87] 2014-11-18 13:28:13 -0500
3723 Author: Robert Haas <rhaas@postgresql.org>
3724 Branch: master [0b49642b9] 2015-01-15 09:26:03 -0500
3725 Branch: REL9_4_STABLE [7b65f194e] 2015-01-15 09:29:41 -0500
3726 Branch: REL9_3_STABLE [ebbef4f39] 2015-01-15 09:29:55 -0500
3727 Branch: REL9_2_STABLE [d452bfd1b] 2015-01-15 09:42:21 -0500
3728 Branch: REL9_1_STABLE [151fb75b0] 2015-01-15 09:42:33 -0500
3729 Branch: REL9_0_STABLE [0a67c0018] 2015-01-15 09:42:47 -0500
3730 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3731 Branch: master [e37d474f9] 2015-01-13 14:33:05 +0200
3732 Branch: REL9_4_STABLE [4ebb3494e] 2015-01-13 16:01:04 +0200
3733 Author: Andres Freund <andres@anarazel.de>
3734 Branch: master [8cadeb792] 2015-01-04 15:44:49 +0100
3735 Branch: REL9_4_STABLE [7ced1b6c5] 2015-01-04 15:52:52 +0100
3736 Branch: REL9_3_STABLE [a68b8aec7] 2015-01-04 15:53:08 +0100
3737 Branch: REL9_2_STABLE [6f9b84a40] 2015-01-04 15:55:00 +0100
3738 Author: Andres Freund <andres@anarazel.de>
3739 Branch: master [58bc4747b] 2015-01-04 15:35:46 +0100
3740 Branch: REL9_4_STABLE [2d8411a0a] 2015-01-04 15:35:46 +0100
3741 Branch: REL9_3_STABLE [d33f36f16] 2015-01-04 15:35:47 +0100
3742 Branch: REL9_2_STABLE [029e41afd] 2015-01-04 15:35:47 +0100
3743 Branch: REL9_1_STABLE [39cdf365a] 2015-01-04 15:35:47 +0100
3744 Branch: REL9_0_STABLE [17797e18d] 2015-01-04 15:35:48 +0100
3745 Author: Andres Freund <andres@anarazel.de>
3746 Branch: master [0398ece4c] 2015-01-04 14:36:21 +0100
3747 Branch: REL9_4_STABLE [ff7d46b85] 2015-01-04 14:36:21 +0100
3748 Branch: REL9_3_STABLE [ec14f1601] 2015-01-04 14:36:22 +0100
3749 Branch: REL9_2_STABLE [f4060db11] 2015-01-04 14:36:22 +0100
3750 Author: Tatsuo Ishii <ishii@postgresql.org>
3751 Branch: master [3b5a89c48] 2014-12-30 20:33:01 +0900
3752 Branch: REL9_4_STABLE [458e8bc65] 2014-12-30 20:27:26 +0900
3753 Branch: REL9_3_STABLE [ed0e03283] 2014-12-30 20:20:56 +0900
3754 Branch: REL9_2_STABLE [4db7eaae0] 2014-12-30 19:59:26 +0900
3755 Branch: REL9_1_STABLE [4c136b0b6] 2014-12-30 19:48:53 +0900
3756 Branch: REL9_0_STABLE [9b74f3574] 2014-12-30 19:37:55 +0900
3757 Author: Tom Lane <tgl@sss.pgh.pa.us>
3758 Branch: master [66709133c] 2014-12-16 15:35:33 -0500
3759 Branch: REL9_4_STABLE [383d224a0] 2014-12-16 15:35:36 -0500
3760 Branch: REL9_3_STABLE [53960e7eb] 2014-12-16 15:35:40 -0500
3761 Branch: REL9_2_STABLE [e92c67ddc] 2014-12-16 15:35:43 -0500
3762 Branch: REL9_1_STABLE [5c784d96a] 2014-12-16 15:35:46 -0500
3763 Branch: REL9_0_STABLE [a2969bd72] 2014-12-16 15:35:49 -0500
3764 Author: Tom Lane <tgl@sss.pgh.pa.us>
3765 Branch: master [d38e8d30c] 2014-12-16 13:31:42 -0500
3766 Branch: REL9_4_STABLE [6c75384ee] 2014-12-16 13:31:57 -0500
3767 Branch: REL9_3_STABLE [3b750ec15] 2014-12-16 13:32:02 -0500
3768 Branch: REL9_2_STABLE [5b2c8f04a] 2014-12-16 13:32:15 -0500
3769 Branch: REL9_1_STABLE [926da211a] 2014-12-16 13:32:25 -0500
3770 Branch: REL9_0_STABLE [961df1853] 2014-12-16 13:32:38 -0500
3771 Author: Tom Lane <tgl@sss.pgh.pa.us>
3772 Branch: master [586dd5d6a] 2015-01-24 13:05:42 -0500
3773 Branch: REL9_4_STABLE [d51d4ff31] 2015-01-24 13:05:45 -0500
3774 Branch: REL9_3_STABLE [7240f9200] 2015-01-24 13:05:49 -0500
3775 Branch: REL9_2_STABLE [502e5f9c3] 2015-01-24 13:05:53 -0500
3776 Branch: REL9_1_STABLE [b00a08859] 2015-01-24 13:05:56 -0500
3777 Branch: REL9_0_STABLE [3a3ee655c] 2015-01-24 13:05:58 -0500
3782 Numerous cleanups of warnings from Coverity static code analyzer
3783 (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
3787 These changes are mostly cosmetic but in some cases fix corner-case
3788 bugs, for example a crash rather than a proper error report after an
3789 out-of-memory failure. None are believed to represent security
3795 Author: Robert Haas <rhaas@postgresql.org>
3796 Branch: REL9_3_STABLE [05c0059b3] 2014-07-30 12:10:20 -0400
3801 Fix setup of background workers in EXEC_BACKEND builds, eg Windows
3807 Author: Noah Misch <noah@leadboat.com>
3808 Branch: REL9_3_STABLE [07115248f] 2014-07-22 11:01:41 -0400
3809 Branch: REL9_2_STABLE [cec0c2182] 2014-07-22 11:01:51 -0400
3810 Branch: REL9_1_STABLE [81af4185a] 2014-07-22 11:02:00 -0400
3811 Branch: REL9_0_STABLE [4c6d0abde] 2014-07-22 11:02:25 -0400
3816 Detect incompatible OpenLDAP versions during build (Noah Misch)
3820 With OpenLDAP versions 2.4.24 through 2.4.31,
3821 inclusive, <productname>PostgreSQL</> backends can crash at exit.
3822 Raise a warning during <application>configure</> based on the
3823 compile-time OpenLDAP version number, and test the crashing scenario
3824 in the <filename>contrib/dblink</> regression test.
3829 Author: Noah Misch <noah@leadboat.com>
3830 Branch: REL9_3_STABLE [318fe2321] 2014-08-18 23:01:04 -0400
3831 Branch: REL9_2_STABLE [ebd4d9cdd] 2014-08-18 23:01:09 -0400
3832 Branch: REL9_1_STABLE [ba72fc054] 2014-08-18 23:01:13 -0400
3833 Branch: REL9_0_STABLE [e6841c4d6] 2014-08-18 23:01:23 -0400
3838 In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
3839 with execute permissions (Noah Misch)
3844 Author: Tom Lane <tgl@sss.pgh.pa.us>
3845 Branch: master [aa719391d] 2015-01-19 23:44:19 -0500
3846 Branch: REL9_4_STABLE [3de9f22ac] 2015-01-19 23:44:22 -0500
3847 Branch: REL9_3_STABLE [1681e2f74] 2015-01-19 23:44:24 -0500
3848 Branch: REL9_2_STABLE [89b6a19e1] 2015-01-19 23:44:28 -0500
3849 Branch: REL9_1_STABLE [f4f522deb] 2015-01-19 23:44:30 -0500
3850 Branch: REL9_0_STABLE [338ff75fc] 2015-01-19 23:44:33 -0500
3855 Make <application>pg_regress</> remove any temporary installation it
3856 created upon successful exit (Tom Lane)
3860 This results in a very substantial reduction in disk space usage
3861 during <literal>make check-world</>, since that sequence involves
3862 creation of numerous temporary installations.
3867 Author: Tom Lane <tgl@sss.pgh.pa.us>
3868 Branch: REL9_3_STABLE [137e7c164] 2014-10-16 15:22:17 -0400
3869 Branch: REL9_2_STABLE [7c67b9365] 2014-10-16 15:22:20 -0400
3870 Branch: REL9_1_STABLE [2784b68b3] 2014-10-16 15:22:23 -0400
3871 Branch: REL9_0_STABLE [870a980aa] 2014-10-16 15:22:26 -0400
3876 Support time zone abbreviations that change UTC offset from time to
3881 Previously, <productname>PostgreSQL</> assumed that the UTC offset
3882 associated with a time zone abbreviation (such as <literal>EST</>)
3883 never changes in the usage of any particular locale. However this
3884 assumption fails in the real world, so introduce the ability for a
3885 zone abbreviation to represent a UTC offset that sometimes changes.
3886 Update the zone abbreviation definition files to make use of this
3887 feature in timezone locales that have changed the UTC offset of their
3888 abbreviations since 1970 (according to the IANA timezone database).
3889 In such timezones, <productname>PostgreSQL</> will now associate the
3890 correct UTC offset with the abbreviation depending on the given date.
3895 Author: Tom Lane <tgl@sss.pgh.pa.us>
3896 Branch: REL9_3_STABLE [9701f238b] 2014-10-03 17:44:56 -0400
3897 Branch: REL9_2_STABLE [d7d546bbc] 2014-10-03 17:44:59 -0400
3898 Branch: REL9_1_STABLE [252af79d9] 2014-10-03 17:45:03 -0400
3899 Branch: REL9_0_STABLE [cc7bad30c] 2014-10-03 17:45:07 -0400
3900 Author: Tom Lane <tgl@sss.pgh.pa.us>
3901 Branch: REL9_3_STABLE [0190f0a76] 2014-12-24 16:35:40 -0500
3902 Branch: REL9_2_STABLE [5c8665892] 2014-12-24 16:35:44 -0500
3903 Branch: REL9_1_STABLE [310597e31] 2014-12-24 16:35:48 -0500
3904 Branch: REL9_0_STABLE [8b70023af] 2014-12-24 16:35:54 -0500
3909 Update time zone abbreviations lists (Tom Lane)
3913 Add CST (China Standard Time) to our lists.
3914 Remove references to ADT as <quote>Arabia Daylight Time</>, an
3915 abbreviation that's been out of use since 2007; therefore, claiming
3916 there is a conflict with <quote>Atlantic Daylight Time</> doesn't seem
3918 Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
3919 (Fiji); we didn't even have them on the proper side of the date line.
3924 Author: Tom Lane <tgl@sss.pgh.pa.us>
3925 Branch: REL9_3_STABLE [8470cd473] 2015-01-30 22:46:05 -0500
3926 Branch: REL9_2_STABLE [c9048d353] 2015-01-30 22:46:12 -0500
3927 Branch: REL9_1_STABLE [cb24cd3f4] 2015-01-30 22:46:17 -0500
3928 Branch: REL9_0_STABLE [3553d9c6e] 2015-01-30 22:46:22 -0500
3929 Author: Tom Lane <tgl@sss.pgh.pa.us>
3930 Branch: REL9_3_STABLE [ab45d907b] 2014-11-17 12:08:25 -0500
3931 Branch: REL9_2_STABLE [b1e996035] 2014-11-17 12:08:32 -0500
3932 Branch: REL9_1_STABLE [b96c47a3d] 2014-11-17 12:08:39 -0500
3933 Branch: REL9_0_STABLE [92979576e] 2014-11-17 12:08:46 -0500
3934 Author: Tom Lane <tgl@sss.pgh.pa.us>
3935 Branch: REL9_3_STABLE [c66199151] 2014-10-04 14:18:33 -0400
3936 Branch: REL9_2_STABLE [8f75d7a25] 2014-10-04 14:18:36 -0400
3937 Branch: REL9_1_STABLE [745723c9e] 2014-10-04 14:18:39 -0400
3938 Branch: REL9_0_STABLE [b6391f587] 2014-10-04 14:18:43 -0400
3943 Update time zone data files to <application>tzdata</> release 2015a.
3947 The IANA timezone database has adopted abbreviations of the form
3948 <literal>A<replaceable>x</>ST</literal>/<literal>A<replaceable>x</>DT</literal>
3949 for all Australian time zones, reflecting what they believe to be
3950 current majority practice Down Under. These names do not conflict
3951 with usage elsewhere (other than ACST for Acre Summer Time, which has
3952 been in disuse since 1994). Accordingly, adopt these names into
3953 our <quote>Default</> timezone abbreviation set.
3954 The <quote>Australia</> abbreviation set now contains only CST, EAST,
3955 EST, SAST, SAT, and WST, all of which are thought to be mostly
3956 historical usage. Note that SAST has also been changed to be South
3957 Africa Standard Time in the <quote>Default</> abbreviation set.
3961 Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
3962 (Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were
3963 DST law changes in Chile, Mexico, the Turks & Caicos Islands
3964 (America/Grand_Turk), and Fiji. There is a new zone
3965 Pacific/Bougainville for portions of Papua New Guinea. Also, numerous
3966 corrections for historical (pre-1970) time zone data.
3975 <sect1 id="release-9-3-5">
3976 <title>Release 9.3.5</title>
3979 <title>Release Date</title>
3980 <simpara>2014-07-24</simpara>
3984 This release contains a variety of fixes from 9.3.4.
3985 For information about new features in the 9.3 major release, see
3986 <xref linkend="release-9-3">.
3990 <title>Migration to Version 9.3.5</title>
3993 A dump/restore is not required for those running 9.3.X.
3997 However, this release corrects a logic error
3998 in <application>pg_upgrade</>, as well as an index corruption problem in
3999 some GiST indexes. See the first two changelog entries below to find out
4000 whether your installation has been affected and what steps you should take
4005 Also, if you are upgrading from a version earlier than 9.3.4,
4006 see <xref linkend="release-9-3-4">.
4012 <title>Changes</title>
4017 Author: Bruce Momjian <bruce@momjian.us>
4018 Branch: master [0f7482733] 2014-06-24 16:11:06 -0400
4019 Branch: REL9_4_STABLE [dd5369047] 2014-06-24 16:11:06 -0400
4020 Branch: REL9_3_STABLE [cc5841809] 2014-06-24 16:11:06 -0400
4025 In <application>pg_upgrade</>, remove <filename>pg_multixact</> files
4026 left behind by <application>initdb</> (Bruce Momjian)
4030 If you used a pre-9.3.5 version of <application>pg_upgrade</> to
4031 upgrade a database cluster to 9.3, it might have left behind a file
4032 <filename>$PGDATA/pg_multixact/offsets/0000</> that should not be
4033 there and will eventually cause problems in <command>VACUUM</>.
4034 <emphasis>However, in common cases this file is actually valid and
4035 must not be removed.</emphasis>
4036 To determine whether your installation has this problem, run this
4037 query as superuser, in any database of the cluster:
4039 WITH list(file) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets'))
4040 SELECT EXISTS (SELECT * FROM list WHERE file = '0000') AND
4041 NOT EXISTS (SELECT * FROM list WHERE file = '0001') AND
4042 NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF') AND
4043 EXISTS (SELECT * FROM list WHERE file != '0000')
4044 AS file_0000_removal_required;
4046 If this query returns <literal>t</>, manually remove the file
4047 <filename>$PGDATA/pg_multixact/offsets/0000</>.
4048 Do nothing if the query returns <literal>f</>.
4053 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4054 Branch: master Release: REL9_4_BR [540ac7cea] 2014-05-13 15:15:13 +0300
4055 Branch: REL9_3_STABLE [d5b912c90] 2014-05-13 15:27:14 +0300
4056 Branch: REL9_2_STABLE [0d8d0d027] 2014-05-13 15:27:21 +0300
4057 Branch: REL9_1_STABLE [1913d0f28] 2014-05-13 15:27:28 +0300
4058 Branch: REL9_0_STABLE [c87c43f08] 2014-05-13 15:27:36 +0300
4059 Branch: REL8_4_STABLE [e31d77c96] 2014-05-13 15:27:43 +0300
4064 Correctly initialize padding bytes in <filename>contrib/btree_gist</>
4065 indexes on <type>bit</> columns (Heikki Linnakangas)
4069 This error could result in incorrect query results due to values that
4070 should compare equal not being seen as equal.
4071 Users with GiST indexes on <type>bit</> or <type>bit varying</>
4072 columns should <command>REINDEX</> those indexes after installing this
4078 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4079 Branch: master Release: REL9_4_BR [4f7bb4b2a] 2014-05-08 14:50:22 +0300
4080 Branch: REL9_3_STABLE [34572920c] 2014-05-08 14:43:04 +0300
4081 Branch: REL9_2_STABLE [31633f992] 2014-05-08 14:43:39 +0300
4082 Branch: REL9_1_STABLE [686a7194e] 2014-05-08 14:43:58 +0300
4083 Branch: REL9_0_STABLE [8b4efe1f3] 2014-05-08 14:44:06 +0300
4084 Branch: REL8_4_STABLE [be7830596] 2014-05-08 14:46:43 +0300
4089 Protect against torn pages when deleting GIN list pages (Heikki
4094 This fix prevents possible index corruption if a system crash occurs
4095 while the page update is being written to disk.
4100 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4101 Branch: master Release: REL9_4_BR [7ca32e255] 2014-04-08 14:51:40 +0300
4102 Branch: REL9_3_STABLE [601c01e08] 2014-04-08 14:51:49 +0300
4103 Branch: REL9_2_STABLE [02b9fd73e] 2014-04-08 14:51:56 +0300
4104 Branch: REL9_1_STABLE [ac0078c1d] 2014-04-08 14:52:01 +0300
4105 Branch: REL9_0_STABLE [d034e9b3b] 2014-04-08 14:52:07 +0300
4110 Don't clear the right-link of a GiST index page while replaying
4111 updates from WAL (Heikki Linnakangas)
4115 This error could lead to transiently wrong answers from GiST index
4116 scans performed in Hot Standby.
4121 Author: Tom Lane <tgl@sss.pgh.pa.us>
4122 Branch: master Release: REL9_4_BR [c170655cc] 2014-06-09 16:31:11 -0400
4123 Branch: REL9_3_STABLE [717c116f1] 2014-06-09 16:31:16 -0400
4124 Branch: REL9_2_STABLE [93328b2df] 2014-06-09 16:30:46 -0400
4129 Fix corner-case infinite loop during insertion into an SP-GiST text
4135 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4136 Branch: master [1264ef31a] 2014-07-16 09:19:06 +0300
4137 Branch: REL9_4_STABLE [9b3ef66af] 2014-07-16 09:20:20 +0300
4138 Branch: REL9_3_STABLE [a4867d041] 2014-07-16 09:20:31 +0300
4143 Fix incorrect answers from SP-GiST index searches
4144 with <literal>-|-</literal> (range adjacency) operator
4145 (Heikki Linnakangas)
4150 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4151 Branch: master Release: REL9_4_BR [b0b263baa] 2014-06-09 15:17:23 -0400
4152 Branch: REL9_3_STABLE [167a2535f] 2014-06-09 15:17:23 -0400
4157 Fix wraparound handling for <filename>pg_multixact/members</>
4158 (Álvaro Herrera)
4163 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4164 Branch: master [f741300c9] 2014-06-27 14:43:53 -0400
4165 Branch: REL9_4_STABLE [56f86bb76] 2014-06-27 14:43:52 -0400
4166 Branch: REL9_3_STABLE [9a28c3752] 2014-06-27 14:43:52 -0400
4171 Truncate <structname>pg_multixact</> during checkpoints, not
4172 during <command>VACUUM</> (Álvaro Herrera)
4176 This change ensures that <structname>pg_multixact</> segments can't be
4177 removed if they'd still be needed during WAL replay after a crash.
4182 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4183 Branch: master Release: REL9_4_BR [2a8e1ac59] 2014-04-17 17:47:50 +0300
4184 Branch: REL9_3_STABLE [95aa823eb] 2014-04-17 17:47:58 +0300
4189 Fix possible inconsistency of all-visible flags after WAL recovery
4190 (Heikki Linnakangas)
4195 Author: Tom Lane <tgl@sss.pgh.pa.us>
4196 Branch: master Release: REL9_4_BR [0f928a85e] 2014-05-05 14:43:39 -0400
4197 Branch: REL9_3_STABLE [4f4ef042f] 2014-05-05 14:43:42 -0400
4198 Branch: REL9_2_STABLE [c8fbeeb45] 2014-05-05 14:43:46 -0400
4199 Branch: REL9_1_STABLE [2f4ee3a2f] 2014-05-05 14:43:49 -0400
4200 Branch: REL9_0_STABLE [7d5b68621] 2014-05-05 14:43:52 -0400
4201 Branch: REL8_4_STABLE [3ada1fab8] 2014-05-05 14:43:55 -0400
4206 Fix possibly-incorrect cache invalidation during nested calls
4207 to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
4212 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4213 Branch: master Release: REL9_4_BR [1a917ae86] 2014-04-24 15:41:55 -0300
4214 Branch: REL9_3_STABLE [c0bd128c8] 2014-04-24 15:41:55 -0300
4219 Fix race condition when updating a tuple concurrently locked by
4220 another process (Andres Freund, Álvaro Herrera)
4225 Author: Tom Lane <tgl@sss.pgh.pa.us>
4226 Branch: REL9_3_STABLE [a2db7b7d0] 2014-06-26 10:41:59 -0700
4227 Branch: REL9_2_STABLE [0cf16686b] 2014-06-26 10:42:03 -0700
4228 Branch: REL9_1_STABLE [555d0b200] 2014-06-26 10:42:08 -0700
4233 Fix <quote>could not find pathkey item to sort</> planner failures
4234 with <literal>UNION ALL</> over subqueries reading from tables with
4235 inheritance children (Tom Lane)
4240 Author: Tom Lane <tgl@sss.pgh.pa.us>
4241 Branch: master [9e2f2d7a0] 2014-07-08 14:03:56 -0400
4242 Branch: REL9_4_STABLE [ac45aa1dd] 2014-07-08 14:03:45 -0400
4243 Branch: REL9_3_STABLE [6d36aee5b] 2014-07-08 14:03:19 -0400
4244 Branch: REL9_2_STABLE [189bd09cb] 2014-07-08 14:03:23 -0400
4245 Branch: REL9_1_STABLE [fa21a760b] 2014-07-08 14:03:26 -0400
4246 Branch: REL9_0_STABLE [2865d5952] 2014-07-08 14:03:30 -0400
4247 Branch: REL8_4_STABLE [2e7469dc8] 2014-07-08 14:03:32 -0400
4252 Don't assume a subquery's output is unique if there's a set-returning
4253 function in its targetlist (David Rowley)
4257 This oversight could lead to misoptimization of constructs
4258 like <literal>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
4264 Author: Tom Lane <tgl@sss.pgh.pa.us>
4265 Branch: master Release: REL9_4_BR [95811032d] 2014-04-29 13:12:46 -0400
4266 Branch: REL9_3_STABLE [150a44e83] 2014-04-29 13:12:29 -0400
4267 Branch: REL9_2_STABLE [0901dbab3] 2014-04-29 13:12:33 -0400
4272 Improve planner to drop constant-NULL inputs
4273 of <literal>AND</>/<literal>OR</> when possible (Tom Lane)
4277 This change fixes some cases where the more aggressive parameter
4278 substitution done by 9.2 and later can lead to a worse plan than
4279 older versions produced.
4284 Author: Tom Lane <tgl@sss.pgh.pa.us>
4285 Branch: master Release: REL9_4_BR [c7b353959] 2014-04-03 22:02:24 -0400
4286 Branch: REL9_3_STABLE [d359f71ac] 2014-04-03 22:02:27 -0400
4291 Ensure that the planner sees equivalent <literal>VARIADIC</> and
4292 non-<literal>VARIADIC</> function calls as equivalent (Tom Lane)
4296 This bug could for example result in failure to use expression indexes
4297 involving variadic functions. It might be necessary to re-create such
4298 indexes, and/or re-create views including variadic function calls that
4299 should match the indexes, for the fix to be effective for existing 9.3
4305 Author: Tom Lane <tgl@sss.pgh.pa.us>
4306 Branch: master [57d8c1270] 2014-06-24 21:22:40 -0700
4307 Branch: REL9_4_STABLE [a331512de] 2014-06-24 21:22:43 -0700
4308 Branch: REL9_3_STABLE [a1fc36495] 2014-06-24 21:22:47 -0700
4313 Fix handling of nested <type>JSON</> objects
4314 in <function>json_populate_recordset()</> and friends
4315 (Michael Paquier, Tom Lane)
4319 A nested <type>JSON</> object could result in previous fields of the
4320 parent object not being shown in the output.
4325 Author: Tom Lane <tgl@sss.pgh.pa.us>
4326 Branch: master Release: REL9_4_BR [0ca6bda8e] 2014-05-09 12:55:31 -0400
4327 Branch: REL9_3_STABLE [13c679995] 2014-05-09 12:55:03 -0400
4328 Branch: REL9_2_STABLE [25c933c5c] 2014-05-09 12:55:06 -0400
4333 Fix identification of input type category in <function>to_json()</>
4334 and friends (Tom Lane)
4338 This is known to have led to inadequate quoting of <type>money</>
4339 fields in the <type>JSON</> result, and there may have been wrong
4340 results for other data types as well.
4345 Author: Tom Lane <tgl@sss.pgh.pa.us>
4346 Branch: master Release: REL9_4_BR [3f8c8e3c6] 2014-05-01 15:19:06 -0400
4347 Branch: REL9_3_STABLE [b72e90bc3] 2014-05-01 15:19:10 -0400
4348 Branch: REL9_2_STABLE [8c43980a1] 2014-05-01 15:19:14 -0400
4349 Branch: REL9_1_STABLE [db1fdc945] 2014-05-01 15:19:17 -0400
4350 Branch: REL9_0_STABLE [7a4f114f3] 2014-05-01 15:19:20 -0400
4351 Branch: REL8_4_STABLE [70debcf09] 2014-05-01 15:19:23 -0400
4356 Fix failure to detoast fields in composite elements of structured
4361 This corrects cases where TOAST pointers could be copied into other
4362 tables without being dereferenced. If the original data is later
4363 deleted, it would lead to errors like <quote>missing chunk number 0
4364 for toast value ...</> when the now-dangling pointer is used.
4369 Author: Tom Lane <tgl@sss.pgh.pa.us>
4370 Branch: master [d68581483] 2014-07-11 19:12:35 -0400
4371 Branch: REL9_4_STABLE [f280eff94] 2014-07-11 19:12:38 -0400
4372 Branch: REL9_3_STABLE [b77e6b959] 2014-07-11 19:12:42 -0400
4373 Branch: REL9_2_STABLE [261f954e7] 2014-07-11 19:12:45 -0400
4374 Branch: REL9_1_STABLE [c45841f9e] 2014-07-11 19:12:48 -0400
4375 Branch: REL9_0_STABLE [cd8ba91a0] 2014-07-11 19:12:51 -0400
4376 Branch: REL8_4_STABLE [a81fbcfb3] 2014-07-11 19:12:56 -0400
4381 Fix <quote>record type has not been registered</> failures with
4382 whole-row references to the output of Append plan nodes (Tom Lane)
4387 Author: Tom Lane <tgl@sss.pgh.pa.us>
4388 Branch: master Release: REL9_4_BR [04e5025be] 2014-05-07 14:25:11 -0400
4389 Branch: REL9_3_STABLE [fc58c39d4] 2014-05-07 14:25:13 -0400
4390 Branch: REL9_2_STABLE [022b5f2b2] 2014-05-07 14:25:17 -0400
4391 Branch: REL9_1_STABLE [229101db4] 2014-05-07 14:25:22 -0400
4392 Branch: REL9_0_STABLE [7f66ade71] 2014-05-07 14:25:25 -0400
4393 Branch: REL8_4_STABLE [2a527baa3] 2014-05-07 14:25:28 -0400
4398 Fix possible crash when invoking a user-defined function while
4399 rewinding a cursor (Tom Lane)
4404 Author: Tom Lane <tgl@sss.pgh.pa.us>
4405 Branch: master [45b0f3572] 2014-06-19 22:14:26 -0400
4406 Branch: REL9_4_STABLE [1044e79a0] 2014-06-19 22:13:44 -0400
4407 Branch: REL9_3_STABLE [c1f8fb9bf] 2014-06-19 22:13:47 -0400
4408 Branch: REL9_2_STABLE [b568d3836] 2014-06-19 22:13:51 -0400
4409 Branch: REL9_1_STABLE [06d5eacbc] 2014-06-19 22:13:54 -0400
4410 Branch: REL9_0_STABLE [83131e634] 2014-06-19 22:13:58 -0400
4411 Branch: REL8_4_STABLE [d297c91d4] 2014-06-19 22:14:00 -0400
4416 Fix query-lifespan memory leak while evaluating the arguments for a
4417 function in <literal>FROM</> (Tom Lane)
4422 Author: Tom Lane <tgl@sss.pgh.pa.us>
4423 Branch: master [1567e659a] 2014-07-18 13:00:27 -0400
4424 Branch: REL9_4_STABLE [4a66f0f2d] 2014-07-18 13:00:39 -0400
4425 Branch: REL9_3_STABLE [5ef588b22] 2014-07-18 13:00:43 -0400
4426 Branch: REL9_2_STABLE [a223b9e36] 2014-07-18 13:00:48 -0400
4427 Branch: REL9_1_STABLE [8a817785a] 2014-07-18 13:00:52 -0400
4428 Branch: REL9_0_STABLE [b8c24f7ab] 2014-07-18 13:00:57 -0400
4429 Branch: REL8_4_STABLE [e0a233744] 2014-07-18 13:01:04 -0400
4434 Fix session-lifespan memory leaks in regular-expression processing
4435 (Tom Lane, Arthur O'Dwyer, Greg Stark)
4440 Author: Tom Lane <tgl@sss.pgh.pa.us>
4441 Branch: master [fd90b5d57] 2014-06-10 22:48:16 -0400
4442 Branch: REL9_4_STABLE [7f9fbb842] 2014-06-10 22:48:31 -0400
4443 Branch: REL9_3_STABLE [87db9534a] 2014-06-10 22:48:39 -0400
4444 Branch: REL9_2_STABLE [802323535] 2014-06-10 22:48:45 -0400
4445 Branch: REL9_1_STABLE [62f134954] 2014-06-10 22:48:52 -0400
4446 Branch: REL9_0_STABLE [4d5ea4290] 2014-06-10 22:48:59 -0400
4447 Branch: REL8_4_STABLE [f3f40434b] 2014-06-10 22:49:08 -0400
4452 Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
4457 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4458 Branch: master [a87a7dc8b] 2014-06-24 13:27:18 +0300
4459 Branch: REL9_4_STABLE [1818ae0a7] 2014-06-24 13:31:06 +0300
4460 Branch: REL9_3_STABLE [2a7512bc7] 2014-06-24 13:31:00 +0300
4461 Branch: REL9_2_STABLE [1c9f9e888] 2014-06-24 13:30:54 +0300
4462 Branch: REL9_1_STABLE [dd1a5b09b] 2014-06-24 13:30:41 +0300
4467 Prevent foreign tables from being created with OIDS
4468 when <xref linkend="guc-default-with-oids"> is true
4474 Author: Andres Freund <andres@anarazel.de>
4475 Branch: master Release: REL9_4_BR [621a99a66] 2014-06-04 21:36:19 +0200
4476 Branch: REL9_3_STABLE [edde59db1] 2014-06-04 23:26:08 +0200
4477 Branch: REL9_2_STABLE [315442c01] 2014-06-04 23:25:52 +0200
4478 Branch: REL9_1_STABLE [6bf6e528a] 2014-06-04 23:26:30 +0200
4479 Branch: REL9_0_STABLE [037c6fb9f] 2014-06-04 23:27:10 +0200
4480 Branch: REL8_4_STABLE [80d45ae4e] 2014-06-04 23:27:38 +0200
4485 Fix liveness checks for rows that were inserted in the current
4486 transaction and then deleted by a now-rolled-back subtransaction
4491 This could cause problems (at least spurious warnings, and at worst an
4492 infinite loop) if <command>CREATE INDEX</> or <command>CLUSTER</> were
4493 done later in the same transaction.
4498 Author: Tom Lane <tgl@sss.pgh.pa.us>
4499 Branch: master Release: REL9_4_BR [d19bd29f0] 2014-04-24 13:29:48 -0400
4500 Branch: REL9_3_STABLE [12e41a5d7] 2014-04-24 13:29:56 -0400
4501 Branch: REL9_2_STABLE [ea9ac7741] 2014-04-24 13:30:00 -0400
4502 Branch: REL9_1_STABLE [70e7be264] 2014-04-24 13:30:04 -0400
4503 Branch: REL9_0_STABLE [b7a3e1173] 2014-04-24 13:30:08 -0400
4504 Branch: REL8_4_STABLE [82fbd88a7] 2014-04-24 13:30:14 -0400
4509 Clear <structname>pg_stat_activity</>.<structfield>xact_start</>
4510 during <command>PREPARE TRANSACTION</> (Andres Freund)
4514 After the <command>PREPARE</>, the originating session is no longer in
4515 a transaction, so it should not continue to display a transaction
4521 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4522 Branch: master [6bdf4b9c7] 2014-07-15 13:24:07 -0400
4523 Branch: REL9_4_STABLE [e45229bb6] 2014-07-15 13:24:07 -0400
4524 Branch: REL9_3_STABLE [12c5bbdcb] 2014-07-15 13:24:07 -0400
4525 Branch: REL9_2_STABLE [b42f09fc8] 2014-07-15 13:24:07 -0400
4526 Branch: REL9_1_STABLE [a41dc7321] 2014-07-15 13:24:07 -0400
4527 Branch: REL9_0_STABLE [bf08864b8] 2014-07-15 13:24:07 -0400
4528 Branch: REL8_4_STABLE [4b767789d] 2014-07-15 13:24:07 -0400
4533 Fix <command>REASSIGN OWNED</> to not fail for text search objects
4534 (Álvaro Herrera)
4539 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4540 Branch: master [b7e51d9c0] 2014-06-27 14:43:46 -0400
4541 Branch: REL9_4_STABLE [9eecc8a7c] 2014-06-27 14:43:46 -0400
4542 Branch: REL9_3_STABLE [e86cfc4bb] 2014-06-27 14:43:45 -0400
4547 Prevent <structname>pg_class</>.<structfield>relminmxid</> values from
4548 going backwards during <command>VACUUM FULL</> (Álvaro Herrera)
4553 Author: Tom Lane <tgl@sss.pgh.pa.us>
4554 Branch: master Release: REL9_4_BR [41de93c53] 2014-04-30 13:26:26 -0400
4555 Branch: REL9_3_STABLE [0652d77fb] 2014-04-30 13:26:29 -0400
4560 Reduce indentation in rule/view dumps to improve readability and avoid
4561 excessive whitespace (Greg Stark, Tom Lane)
4565 This change reduces the amount of indentation applied to nested
4566 constructs, including some cases that the user probably doesn't think
4567 of as nested, such as UNION lists. Previously, deeply nested
4568 constructs were printed with an amount of whitespace growing as
4569 O(N^2), which created a performance problem and even risk of
4570 out-of-memory failures. Now the indentation is reduced modulo 40,
4571 which is initially odd to look at but seems to preserve readability
4572 better than simply limiting the indentation would do.
4573 Redundant parenthesization of UNION lists has been reduced as well.
4578 Author: Tom Lane <tgl@sss.pgh.pa.us>
4579 Branch: master Release: REL9_4_BR [91e16b980] 2014-05-01 20:22:37 -0400
4580 Branch: REL9_3_STABLE [e31193d49] 2014-05-01 20:22:39 -0400
4585 Fix dumping of rules/views when subsequent addition of a column has
4586 resulted in multiple input columns matching a <literal>USING</>
4587 specification (Tom Lane)
4592 Author: Tom Lane <tgl@sss.pgh.pa.us>
4593 Branch: master [9b35ddce9] 2014-07-19 14:28:52 -0400
4594 Branch: REL9_4_STABLE [f0a497e4c] 2014-07-19 14:29:00 -0400
4595 Branch: REL9_3_STABLE [b978ab5f6] 2014-07-19 14:29:05 -0400
4600 Repair view printing for some cases involving functions
4601 in <literal>FROM</> that return a composite type containing dropped
4607 Author: Tom Lane <tgl@sss.pgh.pa.us>
4608 Branch: master Release: REL9_4_BR [5d8117e1f] 2014-04-05 18:16:08 -0400
4609 Branch: REL9_3_STABLE [21aa47d01] 2014-04-05 18:16:11 -0400
4610 Branch: REL9_2_STABLE [53463e247] 2014-04-05 18:16:14 -0400
4611 Branch: REL9_1_STABLE [093d3da1d] 2014-04-05 18:16:17 -0400
4612 Branch: REL9_0_STABLE [5c26ab659] 2014-04-05 18:16:20 -0400
4613 Branch: REL8_4_STABLE [969735cf1] 2014-04-05 18:16:24 -0400
4618 Block signals during postmaster startup (Tom Lane)
4622 This ensures that the postmaster will properly clean up after itself
4623 if, for example, it receives <systemitem>SIGINT</> while still
4629 Author: Tom Lane <tgl@sss.pgh.pa.us>
4630 Branch: master Release: REL9_4_BR [fc752505a] 2014-04-02 17:11:24 -0400
4631 Branch: REL9_3_STABLE [65183fb78] 2014-04-02 17:11:27 -0400
4632 Branch: REL9_2_STABLE [029decfec] 2014-04-02 17:11:31 -0400
4633 Branch: REL9_1_STABLE [b7a424371] 2014-04-02 17:11:34 -0400
4638 Fix client host name lookup when processing <filename>pg_hba.conf</>
4639 entries that specify host names instead of IP addresses (Tom Lane)
4643 Ensure that reverse-DNS lookup failures are reported, instead of just
4644 silently not matching such entries. Also ensure that we make only
4645 one reverse-DNS lookup attempt per connection, not one per host name
4646 entry, which is what previously happened if the lookup attempts failed.
4651 Author: Tom Lane <tgl@sss.pgh.pa.us>
4652 Branch: master Release: REL9_4_BR [b203c57bb] 2014-04-04 22:03:35 -0400
4653 Branch: REL9_3_STABLE [7d1a0f585] 2014-04-04 22:03:38 -0400
4654 Branch: REL9_2_STABLE [6d25eb314] 2014-04-04 22:03:42 -0400
4659 Allow the root user to use <literal>postgres -C variable</> and
4660 <literal>postgres --describe-config</> (MauMau)
4664 The prohibition on starting the server as root does not need to extend
4665 to these operations, and relaxing it prevents failure
4666 of <application>pg_ctl</> in some scenarios.
4671 Author: Noah Misch <noah@leadboat.com>
4672 Branch: master [be76a6d39] 2014-06-14 09:41:13 -0400
4673 Branch: REL9_4_STABLE [6583a75b2] 2014-06-14 09:41:16 -0400
4674 Branch: REL9_3_STABLE [1442b426e] 2014-06-14 09:41:17 -0400
4675 Branch: REL9_2_STABLE [453a5d91d] 2014-06-14 09:41:17 -0400
4676 Branch: REL9_1_STABLE [481831b43] 2014-06-14 09:41:18 -0400
4677 Branch: REL9_0_STABLE [5f09c583c] 2014-06-14 09:41:18 -0400
4678 Branch: REL8_4_STABLE [95cefd30e] 2014-06-14 09:41:18 -0400
4683 Secure Unix-domain sockets of temporary postmasters started during
4684 <literal>make check</> (Noah Misch)
4688 Any local user able to access the socket file could connect as the
4689 server's bootstrap superuser, then proceed to execute arbitrary code as
4690 the operating-system user running the test, as we previously noted in
4691 CVE-2014-0067. This change defends against that risk by placing the
4692 server's socket in a temporary, mode 0700 subdirectory
4693 of <filename>/tmp</>. The hazard remains however on platforms where
4694 Unix sockets are not supported, notably Windows, because then the
4695 temporary postmaster must accept local TCP connections.
4699 A useful side effect of this change is to simplify
4700 <literal>make check</> testing in builds that
4701 override <literal>DEFAULT_PGSOCKET_DIR</>. Popular non-default values
4702 like <filename>/var/run/postgresql</> are often not writable by the
4703 build user, requiring workarounds that will no longer be necessary.
4708 Author: Tom Lane <tgl@sss.pgh.pa.us>
4709 Branch: master Release: REL9_4_BR [abe075dff] 2014-04-04 23:09:35 -0400
4710 Branch: REL9_3_STABLE [84520f91c] 2014-04-04 23:09:38 -0400
4711 Branch: REL9_2_STABLE [1a496a12b] 2014-04-04 23:09:41 -0400
4712 Branch: REL9_1_STABLE [af7738fe6] 2014-04-04 23:09:45 -0400
4713 Branch: REL9_0_STABLE [634056567] 2014-04-04 23:09:49 -0400
4718 Fix tablespace creation WAL replay to work on Windows (MauMau)
4723 Author: Bruce Momjian <bruce@momjian.us>
4724 Branch: master Release: REL9_4_BR [418093465] 2014-04-16 10:45:48 -0400
4725 Branch: REL9_3_STABLE [f716c3250] 2014-04-16 10:45:48 -0400
4726 Branch: REL9_2_STABLE [966f015b6] 2014-04-16 10:45:48 -0400
4727 Branch: REL9_1_STABLE [bed499ed1] 2014-04-16 10:45:48 -0400
4728 Branch: REL9_0_STABLE [a86b2daff] 2014-04-16 10:45:48 -0400
4733 Fix detection of socket creation failures on Windows (Bruce Momjian)
4738 Author: Tom Lane <tgl@sss.pgh.pa.us>
4739 Branch: master Release: REL9_4_BR [6862ca697] 2014-04-05 12:41:25 -0400
4740 Branch: REL9_3_STABLE [18db2150c] 2014-04-05 12:41:28 -0400
4741 Branch: REL9_2_STABLE [bdc3e95c2] 2014-04-05 12:41:31 -0400
4742 Branch: REL9_1_STABLE [cb11f4d8d] 2014-04-05 12:41:34 -0400
4743 Branch: REL9_0_STABLE [9500d8f89] 2014-04-05 12:41:38 -0400
4744 Branch: REL8_4_STABLE [30e434bdf] 2014-04-05 12:41:40 -0400
4749 On Windows, allow new sessions to absorb values of PGC_BACKEND
4750 parameters (such as <xref linkend="guc-log-connections">) from the
4751 configuration file (Amit Kapila)
4755 Previously, if such a parameter were changed in the file post-startup,
4756 the change would have no effect.
4761 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4762 Branch: master Release: REL9_4_BR [503de5462] 2014-04-30 10:35:52 +0300
4763 Branch: REL9_3_STABLE [8a90a39b4] 2014-04-30 10:35:46 +0300
4764 Branch: REL9_2_STABLE [e2558e016] 2014-04-30 10:36:31 +0300
4765 Branch: REL9_1_STABLE [94095e341] 2014-04-30 10:36:41 +0300
4766 Branch: REL9_0_STABLE [c06b7219a] 2014-04-30 10:38:32 +0300
4767 Branch: REL8_4_STABLE [e3f273ff6] 2014-04-30 10:39:03 +0300
4772 Properly quote executable path names on Windows (Nikhil Deshpande)
4776 This oversight could cause <application>initdb</>
4777 and <application>pg_upgrade</> to fail on Windows, if the installation
4778 path contained both spaces and <literal>@</> signs.
4783 Author: Tom Lane <tgl@sss.pgh.pa.us>
4784 Branch: master Release: REL9_4_BR [20561acf9] 2014-05-30 18:19:06 -0400
4785 Branch: REL9_3_STABLE [4f5f4da79] 2014-05-30 18:19:14 -0400
4786 Branch: REL9_2_STABLE [83ed4598b] 2014-05-30 18:18:20 -0400
4787 Branch: REL9_1_STABLE [a784a39c4] 2014-05-30 18:18:24 -0400
4788 Branch: REL9_0_STABLE [4f725bbc4] 2014-05-30 18:18:28 -0400
4789 Branch: REL8_4_STABLE [ae41bb4be] 2014-05-30 18:18:32 -0400
4794 Fix linking of <application>libpython</> on OS X (Tom Lane)
4798 The method we previously used can fail with the Python library
4799 supplied by Xcode 5.0 and later.
4804 Author: Tom Lane <tgl@sss.pgh.pa.us>
4805 Branch: master Release: REL9_4_BR [2f557167b] 2014-05-07 21:39:13 -0400
4806 Branch: REL9_3_STABLE [b4f9c93ce] 2014-05-07 21:38:38 -0400
4807 Branch: REL9_2_STABLE [f7672c8ce] 2014-05-07 21:38:41 -0400
4808 Branch: REL9_1_STABLE [86888054a] 2014-05-07 21:38:44 -0400
4809 Branch: REL9_0_STABLE [77e662827] 2014-05-07 21:38:47 -0400
4810 Branch: REL8_4_STABLE [664ac3de7] 2014-05-07 21:38:50 -0400
4815 Avoid buffer bloat in <application>libpq</> when the server
4816 consistently sends data faster than the client can absorb it
4817 (Shin-ichi Morita, Tom Lane)
4821 <application>libpq</> could be coerced into enlarging its input buffer
4822 until it runs out of memory (which would be reported misleadingly
4823 as <quote>lost synchronization with server</>). Under ordinary
4824 circumstances it's quite far-fetched that data could be continuously
4825 transmitted more quickly than the <function>recv()</> loop can
4826 absorb it, but this has been observed when the client is artificially
4827 slowed by scheduler constraints.
4832 Author: Magnus Hagander <magnus@hagander.net>
4833 Branch: master Release: REL9_4_BR [585bca393] 2014-04-16 18:58:10 +0200
4834 Branch: REL9_3_STABLE [cc269272c] 2014-04-16 18:58:55 +0200
4835 Branch: REL9_2_STABLE [b764080ee] 2014-04-16 18:59:11 +0200
4836 Branch: REL9_1_STABLE [c4bf15b9c] 2014-04-16 18:59:28 +0200
4837 Branch: REL9_0_STABLE [96752b02d] 2014-04-16 18:59:37 +0200
4838 Branch: REL8_4_STABLE [b4ae2e37d] 2014-04-16 18:59:48 +0200
4843 Ensure that LDAP lookup attempts in <application>libpq</> time out as
4844 intended (Laurenz Albe)
4849 Author: Michael Meskes <meskes@postgresql.org>
4850 Branch: master Release: REL9_4_BR [8d6a07fa0] 2014-05-06 13:09:51 +0200
4851 Branch: REL9_3_STABLE [b4eeb9d58] 2014-05-06 13:04:30 +0200
4852 Branch: REL9_2_STABLE [3a024c110] 2014-05-06 13:14:01 +0200
4853 Branch: REL9_1_STABLE [fb66e88cf] 2014-05-06 13:20:22 +0200
4854 Branch: REL9_0_STABLE [91c8c106f] 2014-05-06 13:24:13 +0200
4856 Author: Michael Meskes <meskes@postgresql.org>
4857 Branch: master Release: REL9_4_BR [f91796853] 2014-04-09 11:23:38 +0200
4858 Branch: REL9_3_STABLE [3b8fda676] 2014-04-09 11:38:40 +0200
4859 Branch: REL9_2_STABLE [2b3136de9] 2014-04-09 11:43:13 +0200
4860 Branch: REL9_1_STABLE [0de106836] 2014-04-09 12:04:33 +0200
4861 Branch: REL9_0_STABLE [0c2eb989e] 2014-04-09 12:12:32 +0200
4866 Fix <application>ecpg</> to do the right thing when an array
4867 of <type>char *</> is the target for a FETCH statement returning more
4868 than one row, as well as some other array-handling fixes
4874 Author: Tom Lane <tgl@sss.pgh.pa.us>
4875 Branch: master Release: REL9_4_BR [62215de29] 2014-03-29 17:34:00 -0400
4876 Branch: REL9_3_STABLE [3080bbaa9] 2014-03-29 17:34:03 -0400
4881 Fix <application>pg_dump</> to cope with a materialized view that
4882 depends on a table's primary key (Tom Lane)
4886 This occurs if the view's query relies on functional dependency to
4887 abbreviate a <literal>GROUP BY</> list. <application>pg_dump</> got
4888 sufficiently confused that it dumped the materialized view as a
4894 Author: Tom Lane <tgl@sss.pgh.pa.us>
4895 Branch: master Release: REL9_4_BR [19f2d6cda] 2014-03-18 10:38:25 -0400
4896 Branch: REL9_3_STABLE [63817f86b] 2014-03-18 10:38:38 -0400
4901 Fix parsing of <application>pg_dumpall</>'s <option>-i</> switch
4907 Author: Tom Lane <tgl@sss.pgh.pa.us>
4908 Branch: master [c81e63d85] 2014-06-12 20:14:32 -0400
4909 Branch: REL9_4_STABLE [c3c1401ca] 2014-06-12 20:14:36 -0400
4910 Branch: REL9_3_STABLE [a11577f47] 2014-06-12 20:14:39 -0400
4911 Branch: REL9_2_STABLE [ce7fc4fbb] 2014-06-12 20:14:46 -0400
4912 Branch: REL9_1_STABLE [294a48985] 2014-06-12 20:14:49 -0400
4913 Branch: REL9_0_STABLE [3fec825f9] 2014-06-12 20:14:52 -0400
4914 Branch: REL8_4_STABLE [6adddac8a] 2014-06-12 20:14:55 -0400
4919 Fix <application>pg_restore</>'s processing of old-style large object
4924 A direct-to-database restore from an archive file generated by a
4925 pre-9.0 version of <application>pg_dump</> would usually fail if the
4926 archive contained more than a few comments for large objects.
4931 Author: Bruce Momjian <bruce@momjian.us>
4932 Branch: master [3088cc370] 2014-07-07 13:24:08 -0400
4933 Branch: REL9_4_STABLE [f64fe2cbe] 2014-07-07 13:24:08 -0400
4934 Branch: REL9_3_STABLE [f1d7ff5bb] 2014-07-07 13:24:08 -0400
4935 Branch: REL9_2_STABLE [759c9fb63] 2014-07-07 13:24:08 -0400
4940 Fix <application>pg_upgrade</> for cases where the new server creates
4941 a TOAST table but the old version did not (Bruce Momjian)
4945 This rare situation would manifest as <quote>relation OID mismatch</>
4951 Author: Bruce Momjian <bruce@momjian.us>
4952 Branch: master [a61daa14d] 2014-07-02 15:29:38 -0400
4953 Branch: REL9_4_STABLE [b446a384b] 2014-07-02 15:29:38 -0400
4954 Branch: REL9_3_STABLE [3d2e18510] 2014-07-02 15:29:38 -0400
4956 Author: Tom Lane <tgl@sss.pgh.pa.us>
4957 Branch: master [78db307bb] 2014-07-21 11:41:53 -0400
4958 Branch: REL9_4_STABLE [d122387d7] 2014-07-21 11:42:00 -0400
4959 Branch: REL9_3_STABLE [e7984cca0] 2014-07-21 11:42:05 -0400
4964 In <application>pg_upgrade</>,
4965 preserve <structname>pg_database</>.<structfield>datminmxid</>
4966 and <structname>pg_class</>.<structfield>relminmxid</> values from the
4967 old cluster, or insert reasonable values when upgrading from pre-9.3;
4968 also defend against unreasonable values in the core server
4969 (Bruce Momjian, Álvaro Herrera, Tom Lane)
4973 These changes prevent scenarios in which autovacuum might insist on
4974 scanning the entire cluster's contents immediately upon starting the
4975 new cluster, or in which tracking of unfrozen MXID values might be
4976 disabled completely.
4981 Author: Tom Lane <tgl@sss.pgh.pa.us>
4982 Branch: master Release: REL9_4_BR [e416830a2] 2014-05-20 12:20:47 -0400
4983 Branch: REL9_3_STABLE [0266a9c78] 2014-05-20 12:20:52 -0400
4984 Branch: REL9_2_STABLE [31f579f09] 2014-05-20 12:20:57 -0400
4989 Prevent <filename>contrib/auto_explain</> from changing the output of
4990 a user's <command>EXPLAIN</> (Tom Lane)
4994 If <filename>auto_explain</> is active, it could cause
4995 an <literal>EXPLAIN (ANALYZE, TIMING OFF)</> command to nonetheless
4996 print timing information.
5001 Author: Joe Conway <mail@joeconway.com>
5002 Branch: master [1dde5782e] 2014-06-20 12:24:59 -0700
5003 Branch: REL9_4_STABLE [9d884a34c] 2014-06-20 12:26:26 -0700
5004 Branch: REL9_3_STABLE [b3a3f3d2f] 2014-06-20 12:26:43 -0700
5005 Branch: REL9_2_STABLE [3e2cfa42f] 2014-06-20 12:27:04 -0700
5010 Fix query-lifespan memory leak in <filename>contrib/dblink</>
5011 (MauMau, Joe Conway)
5016 Author: Bruce Momjian <bruce@momjian.us>
5017 Branch: master Release: REL9_4_BR [9fe55259f] 2014-04-17 12:37:53 -0400
5018 Branch: REL9_3_STABLE [fc72e94a1] 2014-04-17 12:37:53 -0400
5019 Branch: REL9_2_STABLE [ea8725a8b] 2014-04-17 12:37:53 -0400
5020 Branch: REL9_1_STABLE [fc02b87e2] 2014-04-17 12:37:53 -0400
5021 Branch: REL9_0_STABLE [a1b9c4630] 2014-04-17 12:37:53 -0400
5022 Branch: REL8_4_STABLE [df2e62603] 2014-04-17 12:37:53 -0400
5027 In <filename>contrib/pgcrypto</> functions, ensure sensitive
5028 information is cleared from stack variables before returning
5034 Author: Noah Misch <noah@leadboat.com>
5035 Branch: master [9d0826c59] 2014-06-30 16:59:19 -0400
5036 Branch: REL9_4_STABLE [37a4d3d70] 2014-06-30 16:59:44 -0400
5037 Branch: REL9_3_STABLE [f14e40852] 2014-06-30 17:00:22 -0400
5038 Branch: REL9_2_STABLE [f6d6b7b1e] 2014-06-30 17:00:40 -0400
5043 Prevent use of already-freed memory in
5044 <filename>contrib/pgstattuple</>'s <function>pgstat_heap()</>
5050 Author: Tom Lane <tgl@sss.pgh.pa.us>
5051 Branch: master Release: REL9_4_BR [c941aed96] 2014-05-29 13:51:02 -0400
5052 Branch: REL9_3_STABLE [961dd203a] 2014-05-29 13:51:05 -0400
5053 Branch: REL9_2_STABLE [2fb9fb661] 2014-05-29 13:51:09 -0400
5054 Branch: REL9_1_STABLE [3606754da] 2014-05-29 13:51:12 -0400
5055 Branch: REL9_0_STABLE [b2f6754d2] 2014-05-29 13:51:15 -0400
5056 Branch: REL8_4_STABLE [fd785441f] 2014-05-29 13:51:18 -0400
5061 In <filename>contrib/uuid-ossp</>, cache the state of the OSSP UUID
5062 library across calls (Tom Lane)
5066 This improves the efficiency of UUID generation and reduces the amount
5067 of entropy drawn from <filename>/dev/urandom</>, on platforms that
5073 Author: Tom Lane <tgl@sss.pgh.pa.us>
5074 Branch: master [b1864fabf] 2014-07-19 15:00:50 -0400
5075 Branch: REL9_4_STABLE [e5ea60e80] 2014-07-19 15:01:05 -0400
5076 Branch: REL9_3_STABLE [bd5458f52] 2014-07-19 15:01:12 -0400
5077 Branch: REL9_2_STABLE [7d09e4854] 2014-07-19 15:01:18 -0400
5078 Branch: REL9_1_STABLE [40ccb6530] 2014-07-19 15:01:28 -0400
5079 Branch: REL9_0_STABLE [7659b6913] 2014-07-19 15:01:38 -0400
5080 Branch: REL8_4_STABLE [c51da696b] 2014-07-19 15:01:45 -0400
5085 Update time zone data files to <application>tzdata</> release 2014e
5086 for DST law changes in Crimea, Egypt, and Morocco.
5095 <sect1 id="release-9-3-4">
5096 <title>Release 9.3.4</title>
5099 <title>Release Date</title>
5100 <simpara>2014-03-20</simpara>
5104 This release contains a variety of fixes from 9.3.3.
5105 For information about new features in the 9.3 major release, see
5106 <xref linkend="release-9-3">.
5110 <title>Migration to Version 9.3.4</title>
5113 A dump/restore is not required for those running 9.3.X.
5117 However, the error fixed in the first changelog entry below could have
5118 resulted in corrupt data on standby servers. It may be prudent to
5119 reinitialize standby servers from fresh base backups after installing
5124 Also, if you are upgrading from a version earlier than 9.3.3,
5125 see <xref linkend="release-9-3-3">.
5131 <title>Changes</title>
5136 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5137 Branch: master [6bfa88acd] 2014-02-27 11:13:39 -0300
5138 Branch: REL9_3_STABLE [9a57858f1] 2014-02-27 11:23:24 -0300
5143 Fix WAL replay of locking an already-updated tuple (Andres Freund,
5144 Álvaro Herrera)
5148 This error caused updated rows to not be found by index scans, resulting
5149 in inconsistent query results depending on whether an index scan was
5150 used. Subsequent processing could result in constraint violations,
5151 since the previously updated row would not be found by later index
5152 searches, thus possibly allowing conflicting rows to be inserted.
5153 Since this error is in WAL replay, it would only manifest during crash
5154 recovery or on standby servers. The improperly-replayed case most
5155 commonly arises when a table row that is referenced by a foreign-key
5156 constraint is updated concurrently with creation of a referencing row.
5161 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5162 Branch: master [fecfc2b91] 2014-03-12 10:04:57 +0200
5163 Branch: REL9_3_STABLE [4738cc356] 2014-03-12 10:05:46 +0200
5164 Branch: REL9_2_STABLE [91f932cf4] 2014-03-12 10:07:22 +0200
5165 Branch: REL9_1_STABLE [63e59c259] 2014-03-12 10:09:22 +0200
5166 Branch: REL9_0_STABLE [9954e1f03] 2014-03-12 10:09:43 +0200
5167 Branch: REL8_4_STABLE [e2bccdfcc] 2014-03-12 10:10:04 +0200
5172 Restore GIN metapages unconditionally to avoid torn-page risk
5173 (Heikki Linnakangas)
5177 Although this oversight could theoretically result in a corrupted
5178 index, it is unlikely to have caused any problems in practice, since
5179 the active part of a GIN metapage is smaller than a standard 512-byte
5185 Author: Tom Lane <tgl@sss.pgh.pa.us>
5186 Branch: master [7bae0284e] 2014-03-13 12:02:54 -0400
5187 Branch: REL9_3_STABLE [0d11fed8e] 2014-03-13 12:02:56 -0400
5188 Branch: REL9_2_STABLE [bbe9621a9] 2014-03-13 12:03:00 -0400
5189 Branch: REL9_1_STABLE [7bfdf10f5] 2014-03-13 12:03:03 -0400
5190 Branch: REL9_0_STABLE [7aea1050e] 2014-03-13 12:03:07 -0400
5195 Avoid race condition in checking transaction commit status during
5196 receipt of a <command>NOTIFY</> message (Marko Tiikkaja)
5200 This prevents a scenario wherein a sufficiently fast client might
5201 respond to a notification before database updates made by the
5202 notifier have become visible to the recipient.
5207 Author: Tom Lane <tgl@sss.pgh.pa.us>
5208 Branch: master [bf4052faa] 2014-03-06 11:37:02 -0500
5209 Branch: REL9_3_STABLE [3973034e6] 2014-03-06 11:37:04 -0500
5214 Allow materialized views to be referenced in <command>UPDATE</>
5215 and <command>DELETE</> commands (Michael Paquier)
5219 Previously such queries failed with a complaint about not being able
5220 to lock rows in the materialized view.
5225 Author: Tom Lane <tgl@sss.pgh.pa.us>
5226 Branch: master [9662143f0] 2014-03-01 15:20:56 -0500
5227 Branch: REL9_3_STABLE [f5f21315d] 2014-03-01 15:21:00 -0500
5228 Branch: REL9_2_STABLE [03e6423fc] 2014-03-01 15:21:04 -0500
5229 Branch: REL9_1_STABLE [a9eb4924a] 2014-03-01 15:21:07 -0500
5230 Branch: REL9_0_STABLE [43af0e8c6] 2014-03-01 15:21:11 -0500
5231 Branch: REL8_4_STABLE [b6e143458] 2014-03-01 15:21:13 -0500
5236 Allow regular-expression operators to be terminated early by query
5237 cancel requests (Tom Lane)
5241 This prevents scenarios wherein a pathological regular expression
5242 could lock up a server process uninterruptably for a long time.
5247 Author: Tom Lane <tgl@sss.pgh.pa.us>
5248 Branch: master [a222f7fda] 2014-02-18 12:44:20 -0500
5249 Branch: REL9_3_STABLE [0aaa42241] 2014-02-18 12:44:24 -0500
5250 Branch: REL9_2_STABLE [d7cd6a9d5] 2014-02-18 12:44:27 -0500
5251 Branch: REL9_1_STABLE [e6f7fe983] 2014-02-18 12:44:30 -0500
5252 Branch: REL9_0_STABLE [19d66ab05] 2014-02-18 12:44:33 -0500
5253 Branch: REL8_4_STABLE [dd378dd1e] 2014-02-18 12:44:36 -0500
5258 Remove incorrect code that tried to allow <literal>OVERLAPS</> with
5259 single-element row arguments (Joshua Yanovski)
5263 This code never worked correctly, and since the case is neither
5264 specified by the SQL standard nor documented, it seemed better to
5265 remove it than fix it.
5270 Author: Tom Lane <tgl@sss.pgh.pa.us>
5271 Branch: master [7c3187494] 2014-03-06 19:31:05 -0500
5272 Branch: REL9_3_STABLE [f557826f8] 2014-03-06 19:31:09 -0500
5273 Branch: REL9_2_STABLE [5ec41e345] 2014-03-06 19:31:12 -0500
5274 Branch: REL9_1_STABLE [f3e3f6c5b] 2014-03-06 19:31:16 -0500
5275 Branch: REL9_0_STABLE [bed1259e5] 2014-03-06 19:31:19 -0500
5276 Branch: REL8_4_STABLE [f043bddfe] 2014-03-06 19:31:22 -0500
5281 Avoid getting more than <literal>AccessShareLock</> when de-parsing a
5282 rule or view (Dean Rasheed)
5286 This oversight resulted in <application>pg_dump</> unexpectedly
5287 acquiring <literal>RowExclusiveLock</> locks on tables mentioned as
5288 the targets of <literal>INSERT</>/<literal>UPDATE</>/<literal>DELETE</>
5289 commands in rules. While usually harmless, that could interfere with
5290 concurrent transactions that tried to acquire, for example,
5291 <literal>ShareLock</> on those tables.
5296 Author: Tom Lane <tgl@sss.pgh.pa.us>
5297 Branch: master [fccebe421] 2014-02-25 16:04:06 -0500
5298 Branch: REL9_3_STABLE [4162a55c7] 2014-02-25 16:04:09 -0500
5299 Branch: REL9_2_STABLE [00283cae1] 2014-02-25 16:04:12 -0500
5300 Branch: REL9_1_STABLE [3e2db4c80] 2014-02-25 16:04:16 -0500
5301 Branch: REL9_0_STABLE [1e0fb6a2c] 2014-02-25 16:04:20 -0500
5306 Improve performance of index endpoint probes during planning (Tom Lane)
5310 This change fixes a significant performance problem that occurred
5311 when there were many not-yet-committed rows at the end of the index,
5312 which is a common situation for indexes on sequentially-assigned
5313 values such as timestamps or sequence-generated identifiers.
5318 Author: Tom Lane <tgl@sss.pgh.pa.us>
5319 Branch: master [77585bce0] 2014-02-21 17:10:46 -0500
5320 Branch: REL9_3_STABLE [e8655a77f] 2014-02-21 17:10:49 -0500
5325 Use non-default selectivity estimates for
5326 <literal><replaceable>value</> IN (<replaceable>list</>)</literal> and
5327 <literal><replaceable>value</> <replaceable>operator</> ANY
5328 (<replaceable>array</>)</literal>
5329 expressions when the righthand side is a stable expression (Tom Lane)
5334 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5335 Branch: master [2b4f2ab33] 2014-03-05 13:03:29 -0300
5336 Branch: REL9_3_STABLE [13ea43ab8] 2014-03-05 13:03:29 -0300
5341 Remove the correct per-database statistics file during <command>DROP
5342 DATABASE</> (Tomas Vondra)
5346 This fix prevents a permanent leak of statistics file space.
5347 Users who have done many <command>DROP DATABASE</> commands since
5348 upgrading to <productname>PostgreSQL</> 9.3 may wish to check their
5349 statistics directory and delete statistics files that do not
5350 correspond to any existing database. Please note
5351 that <filename>db_0.stat</> should not be removed.
5356 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5357 Branch: master [94ae6ba74] 2014-03-06 21:38:51 +0200
5358 Branch: REL9_3_STABLE [dcd1131c8] 2014-03-06 21:40:50 +0200
5363 Fix <application>walsender</> ping logic to avoid inappropriate
5364 disconnects under continuous load (Andres Freund, Heikki Linnakangas)
5368 <application>walsender</> failed to send ping messages to the client
5369 if it was constantly busy sending WAL data; but it expected to see
5370 ping responses despite that, and would therefore disconnect
5371 once <xref linkend="guc-wal-sender-timeout"> elapsed.
5376 Author: Fujii Masao <fujii@postgresql.org>
5377 Branch: master [5c6d9fc4b] 2014-03-17 20:37:50 +0900
5378 Branch: REL9_3_STABLE [385723405] 2014-03-17 20:41:12 +0900
5379 Branch: REL9_2_STABLE [7899aa356] 2014-03-17 20:41:52 +0900
5380 Branch: REL9_1_STABLE [65e8dbb18] 2014-03-17 20:42:35 +0900
5385 Fix <application>walsender</>'s failure to shut down cleanly when client
5386 is <application>pg_receivexlog</> (Fujii Masao)
5391 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5392 Branch: master [956685f82] 2014-03-05 14:48:14 +0200
5393 Branch: REL9_3_STABLE [a5363a696] 2014-03-05 14:46:56 +0200
5394 Branch: REL9_2_STABLE [e7ec05562] 2014-03-05 14:45:55 +0200
5399 Check WAL level and hot standby parameters correctly when doing crash
5400 recovery that will be followed by archive recovery (Heikki Linnakangas)
5405 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5406 Branch: master [af246c37c] 2014-03-05 13:51:19 +0200
5407 Branch: REL9_3_STABLE [2cd72ba42] 2014-03-05 13:52:21 +0200
5408 Branch: REL9_2_STABLE [931dc26b0] 2014-03-05 13:57:32 +0200
5409 Branch: REL9_1_STABLE [7552d3d1a] 2014-03-05 13:58:14 +0200
5410 Branch: REL9_0_STABLE [4521cc850] 2014-03-05 13:58:22 +0200
5415 Fix test to see if hot standby connections can be allowed immediately
5416 after a crash (Heikki Linnakangas)
5421 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5422 Branch: REL9_3_STABLE [5a7e75849] 2014-02-20 10:46:54 +0200
5427 Add read-only <xref linkend="guc-data-checksums"> parameter to
5428 display whether page checksums are enabled (Heikki Linnakangas)
5432 Without this parameter, determining the state of checksum
5433 processing was difficult.
5438 Author: Tom Lane <tgl@sss.pgh.pa.us>
5439 Branch: master [6c461cb92] 2014-03-13 20:59:42 -0400
5440 Branch: REL9_3_STABLE [41bd2cf55] 2014-03-13 20:59:45 -0400
5441 Branch: REL9_2_STABLE [7a289bb6d] 2014-03-13 20:59:48 -0400
5442 Branch: REL9_1_STABLE [f16ca9755] 2014-03-13 20:59:51 -0400
5443 Branch: REL9_0_STABLE [dad55e1e9] 2014-03-13 20:59:55 -0400
5444 Branch: REL8_4_STABLE [172c53e92] 2014-03-13 20:59:57 -0400
5449 Prevent interrupts while reporting non-<literal>ERROR</> messages
5454 This guards against rare server-process freezeups due to recursive
5455 entry to <function>syslog()</>, and perhaps other related problems.
5460 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5461 Branch: master [bd1154ede] 2014-03-16 23:22:21 -0300
5462 Branch: REL9_3_STABLE [60829079d] 2014-03-16 23:22:22 -0300
5463 Branch: REL9_2_STABLE [ba5946e86] 2014-03-16 23:22:22 -0300
5464 Branch: REL9_1_STABLE [f84997c7e] 2014-03-16 23:22:22 -0300
5469 Fix memory leak in PL/Perl when returning a composite result, including
5470 multiple-OUT-parameter cases (Alex Hunsaker)
5475 Author: Tom Lane <tgl@sss.pgh.pa.us>
5476 Branch: master [e85a5ffba] 2014-03-10 15:47:40 -0400
5477 Branch: REL9_3_STABLE [f64f4c370] 2014-03-10 15:47:09 -0400
5478 Branch: REL9_2_STABLE [b315b767f] 2014-03-10 15:47:13 -0400
5483 Fix tracking of <application>psql</> script line numbers
5484 during <literal>\copy</> from out-of-line data
5485 (Kumar Rajeev Rastogi, Amit Khandekar)
5489 <literal>\copy ... from</> incremented the script file line number
5490 for each data line, even if the data was not coming from the script
5491 file. This mistake resulted in wrong line numbers being reported for
5492 any errors occurring later in the same script file.
5497 Author: Tom Lane <tgl@sss.pgh.pa.us>
5498 Branch: master [83204e100] 2014-03-07 16:36:40 -0500
5499 Branch: REL9_3_STABLE [73f0483fd] 2014-03-07 16:36:50 -0500
5504 Fix <application>contrib/postgres_fdw</> to handle multiple join
5505 conditions properly (Tom Lane)
5509 This oversight could result in sending <literal>WHERE</> clauses to
5510 the remote server for execution even though the clauses are not known
5511 to have the same semantics on the remote server (for example, clauses
5512 that use non-built-in operators). The query might succeed anyway,
5513 but it could also fail with errors from the remote server, or worse
5514 give silently wrong answers.
5519 Author: Magnus Hagander <magnus@hagander.net>
5520 Branch: master [7f3e17b48] 2014-02-18 14:45:58 +0100
5521 Branch: REL9_3_STABLE [b88ecb002] 2014-02-18 14:49:41 +0100
5522 Branch: REL9_2_STABLE [062deb313] 2014-02-18 14:50:19 +0100
5523 Branch: REL9_1_STABLE [fae12f331] 2014-03-16 11:46:20 +0100
5524 Branch: REL9_0_STABLE [665515539] 2014-03-16 11:47:37 +0100
5529 Prevent intermittent <quote>could not reserve shared memory region</>
5530 failures on recent Windows versions (MauMau)
5535 Author: Tom Lane <tgl@sss.pgh.pa.us>
5536 Branch: master [aba7f5677] 2014-03-15 13:36:07 -0400
5537 Branch: REL9_3_STABLE [b5de16997] 2014-03-15 13:36:24 -0400
5538 Branch: REL9_2_STABLE [f2063b379] 2014-03-15 13:36:32 -0400
5539 Branch: REL9_1_STABLE [2df1bf21c] 2014-03-15 13:36:41 -0400
5540 Branch: REL9_0_STABLE [0033f5324] 2014-03-15 13:36:49 -0400
5541 Branch: REL8_4_STABLE [6e6c2c2e1] 2014-03-15 13:36:57 -0400
5546 Update time zone data files to <application>tzdata</> release 2014a
5547 for DST law changes in Fiji and Turkey, plus historical changes in
5557 <sect1 id="release-9-3-3">
5558 <title>Release 9.3.3</title>
5561 <title>Release Date</title>
5562 <simpara>2014-02-20</simpara>
5566 This release contains a variety of fixes from 9.3.2.
5567 For information about new features in the 9.3 major release, see
5568 <xref linkend="release-9-3">.
5572 <title>Migration to Version 9.3.3</title>
5575 A dump/restore is not required for those running 9.3.X.
5579 However, several of the issues corrected in this release could have
5580 resulted in corruption of foreign-key constraints; that is, there
5581 might now be referencing rows for which there is no matching row in
5582 the referenced table. It may be worthwhile to recheck such
5583 constraints after installing this update. The simplest way to do that
5584 is to drop and recreate each suspect constraint; however, that will
5585 require taking an exclusive lock on both tables, so it is unlikely to
5586 be acceptable in production databases. Alternatively, you can do a
5587 manual join query between the two tables to look for unmatched rows.
5591 Note also the requirement for replication standby servers to be
5592 upgraded before their master server is upgraded.
5596 Also, if you are upgrading from a version earlier than 9.3.2,
5597 see <xref linkend="release-9-3-2">.
5603 <title>Changes</title>
5608 Author: Noah Misch <noah@leadboat.com>
5609 Branch: master [fea164a72] 2014-02-17 09:33:31 -0500
5610 Branch: REL9_3_STABLE [475a1fbc4] 2014-02-17 09:33:32 -0500
5611 Branch: REL9_2_STABLE [15a8f97b9] 2014-02-17 09:33:33 -0500
5612 Branch: REL9_1_STABLE [5d320a16c] 2014-02-17 09:33:33 -0500
5613 Branch: REL9_0_STABLE [789063697] 2014-02-17 09:33:37 -0500
5614 Branch: REL8_4_STABLE [ff35425c8] 2014-02-17 09:33:38 -0500
5619 Shore up <literal>GRANT ... WITH ADMIN OPTION</> restrictions
5624 Granting a role without <literal>ADMIN OPTION</> is supposed to
5625 prevent the grantee from adding or removing members from the granted
5626 role, but this restriction was easily bypassed by doing <literal>SET
5627 ROLE</> first. The security impact is mostly that a role member can
5628 revoke the access of others, contrary to the wishes of his grantor.
5629 Unapproved role member additions are a lesser concern, since an
5630 uncooperative role member could provide most of his rights to others
5631 anyway by creating views or <literal>SECURITY DEFINER</> functions.
5637 Author: Noah Misch <noah@leadboat.com>
5638 Branch: master [537cbd35c] 2014-02-17 09:33:31 -0500
5639 Branch: REL9_3_STABLE [fc4a04a3c] 2014-02-17 09:33:32 -0500
5640 Branch: REL9_2_STABLE [1d701d28a] 2014-02-17 09:33:33 -0500
5641 Branch: REL9_1_STABLE [23b5a85e6] 2014-02-17 09:33:36 -0500
5642 Branch: REL9_0_STABLE [c0ac4c75f] 2014-02-17 09:33:37 -0500
5643 Branch: REL8_4_STABLE [823b9dc25] 2014-02-17 09:33:38 -0500
5648 Prevent privilege escalation via manual calls to PL validator
5649 functions (Andres Freund)
5653 The primary role of PL validator functions is to be called implicitly
5654 during <command>CREATE FUNCTION</>, but they are also normal SQL
5655 functions that a user can call explicitly. Calling a validator on
5656 a function actually written in some other language was not checked
5657 for and could be exploited for privilege-escalation purposes.
5658 The fix involves adding a call to a privilege-checking function in
5659 each validator function. Non-core procedural languages will also
5660 need to make this change to their own validator functions, if any.
5666 Author: Robert Haas <rhaas@postgresql.org>
5667 Branch: master [5f173040e] 2014-02-17 09:33:31 -0500
5668 Branch: REL9_3_STABLE [e1e0a4d79] 2014-02-17 09:33:32 -0500
5669 Branch: REL9_2_STABLE [820ab11fb] 2014-02-17 09:33:33 -0500
5670 Branch: REL9_1_STABLE [b5c574399] 2014-02-17 09:33:36 -0500
5671 Branch: REL9_0_STABLE [43d4e965e] 2014-02-17 09:33:37 -0500
5672 Branch: REL8_4_STABLE [e46476133] 2014-02-17 09:33:38 -0500
5677 Avoid multiple name lookups during table and index DDL
5678 (Robert Haas, Andres Freund)
5682 If the name lookups come to different conclusions due to concurrent
5683 activity, we might perform some parts of the DDL on a different table
5684 than other parts. At least in the case of <command>CREATE INDEX</>,
5685 this can be used to cause the permissions checks to be performed
5686 against a different table than the index creation, allowing for a
5687 privilege escalation attack.
5693 Author: Noah Misch <noah@leadboat.com>
5694 Branch: master [4318daecc] 2014-02-17 09:33:31 -0500
5695 Branch: REL9_3_STABLE [e4a4fa223] 2014-02-17 09:33:32 -0500
5696 Branch: REL9_2_STABLE [f416622be] 2014-02-17 09:33:33 -0500
5697 Branch: REL9_1_STABLE [6a10e57b0] 2014-02-17 09:33:37 -0500
5698 Branch: REL9_0_STABLE [b9c3bb1b3] 2014-02-17 09:33:38 -0500
5699 Branch: REL8_4_STABLE [d0ed1a6c0] 2014-02-17 09:33:39 -0500
5704 Prevent buffer overrun with long datetime strings (Noah Misch)
5708 The <literal>MAXDATELEN</> constant was too small for the longest
5709 possible value of type <type>interval</>, allowing a buffer overrun
5710 in <function>interval_out()</>. Although the datetime input
5711 functions were more careful about avoiding buffer overrun, the limit
5712 was short enough to cause them to reject some valid inputs, such as
5713 input containing a very long timezone name. The <application>ecpg</>
5714 library contained these vulnerabilities along with some of its own.
5720 Author: Noah Misch <noah@leadboat.com>
5721 Branch: master [31400a673] 2014-02-17 09:33:31 -0500
5722 Branch: REL9_3_STABLE [7a362a176] 2014-02-17 09:33:32 -0500
5723 Branch: REL9_2_STABLE [12bbce15d] 2014-02-17 09:33:33 -0500
5724 Branch: REL9_1_STABLE [0b7026d96] 2014-02-17 09:33:37 -0500
5725 Branch: REL9_0_STABLE [2c3203e18] 2014-02-17 09:33:38 -0500
5726 Branch: REL8_4_STABLE [98be8a6ea] 2014-02-17 09:33:39 -0500
5731 Prevent buffer overrun due to integer overflow in size calculations
5732 (Noah Misch, Heikki Linnakangas)
5736 Several functions, mostly type input functions, calculated an
5737 allocation size without checking for overflow. If overflow did
5738 occur, a too-small buffer would be allocated and then written past.
5744 Author: Tom Lane <tgl@sss.pgh.pa.us>
5745 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
5746 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
5747 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
5748 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
5749 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
5750 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
5755 Prevent overruns of fixed-size buffers
5756 (Peter Eisentraut, Jozef Mlich)
5760 Use <function>strlcpy()</> and related functions to provide a clear
5761 guarantee that fixed-size buffers are not overrun. Unlike the
5762 preceding items, it is unclear whether these cases really represent
5763 live issues, since in most cases there appear to be previous
5764 constraints on the size of the input string. Nonetheless it seems
5765 prudent to silence all Coverity warnings of this type.
5771 Author: Tom Lane <tgl@sss.pgh.pa.us>
5772 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
5773 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
5774 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
5775 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
5776 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
5777 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
5782 Avoid crashing if <function>crypt()</> returns NULL (Honza Horak,
5787 There are relatively few scenarios in which <function>crypt()</>
5788 could return NULL, but <filename>contrib/chkpass</> would crash
5789 if it did. One practical case in which this could be an issue is
5790 if <application>libc</> is configured to refuse to execute unapproved
5791 hashing algorithms (e.g., <quote>FIPS mode</>).
5797 Author: Tom Lane <tgl@sss.pgh.pa.us>
5798 Branch: master [6ef325429] 2014-02-17 11:24:32 -0500
5799 Branch: REL9_3_STABLE [1ec5988f3] 2014-02-17 11:24:38 -0500
5800 Branch: REL9_2_STABLE [ff3d533e5] 2014-02-17 11:24:42 -0500
5801 Branch: REL9_1_STABLE [800a3744b] 2014-02-17 11:24:45 -0500
5802 Branch: REL9_0_STABLE [369c229d2] 2014-02-17 11:24:48 -0500
5803 Branch: REL8_4_STABLE [f58663ab1] 2014-02-17 11:24:51 -0500
5808 Document risks of <literal>make check</> in the regression testing
5809 instructions (Noah Misch, Tom Lane)
5813 Since the temporary server started by <literal>make check</>
5814 uses <quote>trust</> authentication, another user on the same machine
5815 could connect to it as database superuser, and then potentially
5816 exploit the privileges of the operating-system user who started the
5817 tests. A future release will probably incorporate changes in the
5818 testing procedure to prevent this risk, but some public discussion is
5819 needed first. So for the moment, just warn people against using
5820 <literal>make check</> when there are untrusted users on the
5827 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5828 Branch: master [3b97e6823] 2013-12-16 11:29:50 -0300
5829 Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
5834 Rework tuple freezing protocol
5835 (Álvaro Herrera, Andres Freund)
5839 The logic for tuple freezing was unable to handle some cases involving
5841 <link linkend="vacuum-for-multixact-wraparound"><firstterm>multixact</>
5842 IDs</link>, with the practical effect that shared row-level locks
5843 might be forgotten once old enough.
5847 Fixing this required changing the WAL record format for tuple
5848 freezing. While this is no issue for standalone servers, when using
5849 replication it means that <emphasis>standby servers must be upgraded
5850 to 9.3.3 or later before their masters are</>. An older standby will
5851 be unable to interpret freeze records generated by a newer master, and
5852 will fail with a PANIC message. (In such a case, upgrading the
5853 standby should be sufficient to let it resume execution.)
5858 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5859 Branch: master [801c2dc72] 2014-02-13 19:36:31 -0300
5860 Branch: REL9_3_STABLE [fb47de2be] 2014-02-13 19:30:30 -0300
5865 Create separate GUC parameters to control multixact freezing
5866 (Álvaro Herrera)
5870 9.3 requires multixact tuple labels to be frozen before
5871 they grow too old, in the same fashion as plain transaction ID labels
5872 have been frozen for some time. Previously, the transaction ID
5873 freezing parameters were used for multixact IDs too; but since
5874 the consumption rates of transaction IDs and multixact IDs can be
5875 quite different, this did not work very well. Introduce new settings
5876 <xref linkend="guc-vacuum-multixact-freeze-min-age">,
5877 <xref linkend="guc-vacuum-multixact-freeze-table-age">, and
5878 <xref linkend="guc-autovacuum-multixact-freeze-max-age">
5879 to control when to freeze multixacts.
5884 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5885 Branch: master [11ac4c73c] 2013-12-18 13:45:51 -0300
5886 Branch: REL9_3_STABLE [db1014bc4] 2013-12-18 13:31:27 -0300
5891 Account for remote row locks propagated by local updates
5892 (Álvaro Herrera)
5896 If a row was locked by transaction A, and transaction B updated it,
5897 the new version of the row created by B would be locked by A, yet
5898 visible only to B. If transaction B then again updated the row, A's
5899 lock wouldn't get checked, thus possibly allowing B to complete when
5900 it shouldn't. This case is new in 9.3 since prior versions did not
5901 have any types of row locking that would permit another transaction
5902 to update the row at all.
5906 This oversight could allow referential integrity checks to give false
5907 positives (for instance, allow deletes that should have been rejected).
5908 Applications using the new commands <literal>SELECT FOR KEY SHARE</>
5909 and <literal>SELECT FOR NO KEY UPDATE</> might also have suffered
5910 locking failures of this kind.
5915 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5916 Branch: master [07aeb1fec] 2013-12-05 12:21:55 -0300
5917 Branch: REL9_3_STABLE [c6cd27e36] 2013-12-05 12:21:55 -0300
5922 Prevent <quote>forgetting</> valid row locks when one of several
5923 holders of a row lock aborts (Álvaro Herrera)
5927 This was yet another mechanism by which a shared row lock could be
5928 lost, thus possibly allowing updates that should have been prevented
5929 by foreign-key constraints.
5934 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5935 Branch: master [312bde3d4] 2013-12-05 17:47:51 -0300
5936 Branch: REL9_3_STABLE [2dcc48c35] 2013-12-05 17:47:51 -0300
5941 Fix incorrect logic during update chain locking
5942 (Álvaro Herrera)
5946 This mistake could result in spurious <quote>could not serialize access
5947 due to concurrent update</> errors in <literal>REPEATABLE READ</>
5948 and <literal>SERIALIZABLE</> transaction isolation modes.
5953 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5954 Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
5955 Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
5960 Handle wraparound correctly during extension or truncation
5961 of <filename>pg_multixact/members</>
5962 (Andres Freund, Álvaro Herrera)
5967 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5968 Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
5969 Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
5974 Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
5975 (Álvaro Herrera)
5979 As of 9.3, these names can be more than 4 digits, but the directory
5980 cleanup code ignored such files.
5985 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5986 Branch: master [d881dd623] 2013-12-13 17:16:25 -0300
5987 Branch: REL9_3_STABLE [0bc00363b] 2013-12-13 17:16:25 -0300
5992 Improve performance of multixact cache code
5993 (Álvaro Herrera)
5998 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5999 Branch: master [13aa62443] 2013-12-19 16:53:49 -0300
6000 Branch: REL9_3_STABLE [85d3b3c3a] 2013-12-19 16:39:59 -0300
6005 Optimize updating a row that's already locked by the same transaction
6006 (Andres Freund, Álvaro Herrera)
6010 This fixes a performance regression from pre-9.3 versions when doing
6011 <literal>SELECT FOR UPDATE</> followed by <literal>UPDATE/DELETE</>.
6016 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6017 Branch: master [4d894b41c] 2014-02-14 15:15:09 +0200
6018 Branch: REL9_3_STABLE [762bd379a] 2014-02-14 15:18:34 +0200
6023 During archive recovery, prefer highest timeline number when WAL
6024 segments with the same ID are present in both the archive
6025 and <filename>pg_xlog/</> (Kyotaro Horiguchi)
6029 Previously, not-yet-archived segments could get ignored during
6030 recovery. This reverts an undesirable behavioral change in 9.3.0
6031 back to the way things worked pre-9.3.
6036 Author: Tom Lane <tgl@sss.pgh.pa.us>
6037 Branch: master [6f2aead1f] 2014-02-12 14:52:16 -0500
6038 Branch: REL9_3_STABLE [7190f7a34] 2014-02-12 14:52:20 -0500
6039 Branch: REL9_2_STABLE [bc7ab301a] 2014-02-12 14:52:23 -0500
6040 Branch: REL9_1_STABLE [a69cc9b2c] 2014-02-12 14:52:26 -0500
6041 Branch: REL9_0_STABLE [7fedd79b7] 2014-02-12 14:52:29 -0500
6042 Branch: REL8_4_STABLE [9620fede9] 2014-02-12 14:52:32 -0500
6047 Fix possible mis-replay of WAL records when some segments of a
6048 relation aren't full size (Greg Stark, Tom Lane)
6052 The WAL update could be applied to the wrong page, potentially many
6053 pages past where it should have been. Aside from corrupting data,
6054 this error has been observed to result in significant <quote>bloat</>
6055 of standby servers compared to their masters, due to updates being
6056 applied far beyond where the end-of-file should have been. This
6057 failure mode does not appear to be a significant risk during crash
6058 recovery, only when initially synchronizing a standby created from a
6059 base backup taken from a quickly-changing master.
6064 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6065 Branch: master [d59ff6c11] 2014-01-08 15:03:09 +0200
6066 Branch: REL9_3_STABLE [425bef6ee] 2014-01-08 14:32:22 +0200
6067 Branch: REL9_2_STABLE [82c75f9dd] 2014-01-08 14:28:55 +0200
6068 Branch: REL9_1_STABLE [e56430c62] 2014-01-08 14:33:58 +0200
6069 Branch: REL9_0_STABLE [5301c8395] 2014-01-08 14:34:21 +0200
6074 Fix bug in determining when recovery has reached consistency
6075 (Tomonari Katsumata, Heikki Linnakangas)
6079 In some cases WAL replay would mistakenly conclude that the database
6080 was already consistent at the start of replay, thus possibly allowing
6081 hot-standby queries before the database was really consistent. Other
6082 symptoms such as <quote>PANIC: WAL contains references to invalid
6083 pages</> were also possible.
6088 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6089 Branch: master [a49633d8d] 2013-12-13 14:15:04 +0200
6090 Branch: REL9_3_STABLE [615299cf6] 2013-12-13 14:23:02 +0200
6095 Fix WAL logging of visibility map changes (Heikki Linnakangas)
6100 Author: Tom Lane <tgl@sss.pgh.pa.us>
6101 Branch: master [061b079f8] 2014-01-14 17:35:21 -0500
6102 Branch: REL9_3_STABLE [ebde6c401] 2014-01-14 17:34:51 -0500
6103 Branch: REL9_2_STABLE [ad2e041a3] 2014-01-14 17:34:54 -0500
6104 Branch: REL9_1_STABLE [ab4bb5c47] 2014-01-14 17:34:57 -0500
6105 Branch: REL9_0_STABLE [5d742b9ce] 2014-01-14 17:35:00 -0500
6110 Fix improper locking of btree index pages while replaying
6111 a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
6112 Heikki Linnakangas, Tom Lane)
6116 This error could result in <quote>PANIC: WAL contains references to
6117 invalid pages</> failures.
6122 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6123 Branch: master [22122c83f] 2013-12-03 23:16:01 +0200
6124 Branch: REL9_3_STABLE [8fd04cb32] 2013-12-03 22:13:16 +0200
6125 Branch: REL9_2_STABLE [06df57ac6] 2013-12-03 22:34:31 +0200
6126 Branch: REL9_1_STABLE [e6acb956a] 2013-12-03 22:34:43 +0200
6127 Branch: REL9_0_STABLE [760606dc5] 2013-12-03 23:01:31 +0200
6128 Branch: REL8_4_STABLE [67fc33d3a] 2013-12-03 22:53:26 +0200
6133 Ensure that insertions into non-leaf GIN index pages write a full-page
6134 WAL record when appropriate (Heikki Linnakangas)
6138 The previous coding risked index corruption in the event of a
6139 partial-page write during a system crash.
6144 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6145 Branch: master [3739e5ab9] 2014-01-08 23:28:52 +0200
6146 Branch: REL9_3_STABLE [3aefff422] 2014-01-08 23:30:46 +0200
6147 Branch: REL9_2_STABLE [3bd8987ef] 2014-01-08 23:30:55 +0200
6148 Branch: REL9_1_STABLE [0402f2441] 2014-01-08 23:31:01 +0200
6153 When <literal>pause_at_recovery_target</>
6154 and <literal>recovery_target_inclusive</> are both set, ensure the
6155 target record is applied before pausing, not after (Heikki
6161 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6162 Branch: master [a472ae1e4] 2014-01-16 23:15:41 +0200
6163 Branch: REL9_3_STABLE [e34acac62] 2014-01-16 23:14:57 +0200
6168 Ensure walreceiver sends hot-standby feedback messages on time even
6169 when there is a continuous stream of data (Andres Freund, Amit
6175 Author: Tom Lane <tgl@sss.pgh.pa.us>
6176 Branch: master [e8312b4f0] 2013-12-13 11:50:15 -0500
6177 Branch: REL9_3_STABLE [478af9b79] 2013-12-13 11:50:25 -0500
6182 Prevent timeout interrupts from taking control away from mainline
6183 code unless <varname>ImmediateInterruptOK</> is set
6184 (Andres Freund, Tom Lane)
6188 This is a serious issue for any application making use of statement
6189 timeouts, as it could cause all manner of strange failures after a
6190 timeout occurred. We have seen reports of <quote>stuck</> spinlocks,
6191 ERRORs being unexpectedly promoted to PANICs, unkillable backends,
6192 and other misbehaviors.
6197 Author: Robert Haas <rhaas@postgresql.org>
6198 Branch: master [d1981719a] 2014-01-31 21:31:08 -0500
6199 Branch: REL9_3_STABLE [5d807a74b] 2014-01-31 21:34:44 -0500
6200 Branch: REL9_2_STABLE [ebe334463] 2014-01-31 21:35:32 -0500
6201 Branch: REL9_1_STABLE [8e6bfc9eb] 2014-01-31 21:36:23 -0500
6202 Branch: REL9_0_STABLE [798243a81] 2014-01-31 21:40:20 -0500
6203 Branch: REL8_4_STABLE [458b20f2d] 2014-01-31 21:41:09 -0500
6208 Fix race conditions during server process exit (Robert Haas)
6212 Ensure that signal handlers don't attempt to use the
6213 process's <varname>MyProc</> pointer after it's no longer valid.
6218 Author: Tom Lane <tgl@sss.pgh.pa.us>
6219 Branch: master [214c7a4f0] 2014-02-01 16:21:23 -0500
6220 Branch: REL9_3_STABLE [6f1a40773] 2014-02-01 16:21:30 -0500
6221 Branch: REL9_2_STABLE [81b116d98] 2014-02-01 16:21:33 -0500
6222 Branch: REL9_1_STABLE [03f06ff38] 2014-02-01 16:21:38 -0500
6227 Fix race conditions in walsender shutdown logic and walreceiver
6228 SIGHUP signal handler (Tom Lane)
6233 Author: Tom Lane <tgl@sss.pgh.pa.us>
6234 Branch: master [571addd72] 2014-01-29 20:04:43 -0500
6235 Branch: REL9_3_STABLE [bf8ee6f15] 2014-01-29 20:04:01 -0500
6236 Branch: REL9_2_STABLE [3e71ce1e9] 2014-01-29 20:04:05 -0500
6237 Branch: REL9_1_STABLE [af259c691] 2014-01-29 20:04:08 -0500
6238 Branch: REL9_0_STABLE [d17a667e8] 2014-01-29 20:04:11 -0500
6239 Branch: REL8_4_STABLE [01b882fd8] 2014-01-29 20:04:14 -0500
6244 Fix unsafe references to <varname>errno</> within error reporting
6245 logic (Christian Kruse)
6249 This would typically lead to odd behaviors such as missing or
6250 inappropriate <literal>HINT</> fields.
6255 Author: Tom Lane <tgl@sss.pgh.pa.us>
6256 Branch: master [910bac595] 2014-01-11 16:36:07 -0500
6257 Branch: REL9_3_STABLE [5bfcc9ec5] 2014-01-11 16:35:30 -0500
6258 Branch: REL9_2_STABLE [2de905186] 2014-01-11 16:35:34 -0500
6259 Branch: REL9_1_STABLE [3f721588a] 2014-01-11 16:35:37 -0500
6260 Branch: REL9_0_STABLE [d9c4442b8] 2014-01-11 16:35:41 -0500
6261 Branch: REL8_4_STABLE [d0070ac81] 2014-01-11 16:35:44 -0500
6266 Fix possible crashes from using <function>ereport()</> too early
6267 during server startup (Tom Lane)
6271 The principal case we've seen in the field is a crash if the server
6272 is started in a directory it doesn't have permission to read.
6277 Author: Tom Lane <tgl@sss.pgh.pa.us>
6278 Branch: master [74242c23c] 2013-12-05 12:48:28 -0500
6279 Branch: REL9_3_STABLE [2a6e1a554] 2013-12-05 12:48:31 -0500
6280 Branch: REL9_2_STABLE [41042970b] 2013-12-05 12:48:35 -0500
6281 Branch: REL9_1_STABLE [ad910ccdc] 2013-12-05 12:48:37 -0500
6282 Branch: REL9_0_STABLE [36352ceb4] 2013-12-05 12:48:41 -0500
6283 Branch: REL8_4_STABLE [7635dae55] 2013-12-05 12:48:44 -0500
6288 Clear retry flags properly in OpenSSL socket write
6289 function (Alexander Kukushkin)
6293 This omission could result in a server lockup after unexpected loss
6294 of an SSL-encrypted connection.
6299 Author: Tom Lane <tgl@sss.pgh.pa.us>
6300 Branch: master [44c216330] 2014-02-13 14:24:42 -0500
6301 Branch: REL9_3_STABLE [ca1c17181] 2014-02-13 14:24:45 -0500
6302 Branch: REL9_2_STABLE [8439ee415] 2014-02-13 14:24:49 -0500
6303 Branch: REL9_1_STABLE [170590261] 2014-02-13 14:24:52 -0500
6304 Branch: REL9_0_STABLE [148052d25] 2014-02-13 14:24:55 -0500
6305 Branch: REL8_4_STABLE [a8a46d846] 2014-02-13 14:24:58 -0500
6310 Fix length checking for Unicode identifiers (<literal>U&"..."</>
6311 syntax) containing escapes (Tom Lane)
6315 A spurious truncation warning would be printed for such identifiers
6316 if the escaped form of the identifier was too long, but the
6317 identifier actually didn't need truncation after de-escaping.
6322 Author: Tom Lane <tgl@sss.pgh.pa.us>
6323 Branch: master [0c2338abb] 2014-02-03 19:47:57 -0500
6324 Branch: REL9_3_STABLE [4c70cb1d3] 2014-02-03 19:48:00 -0500
6329 Fix parsing of Unicode literals and identifiers just before the end
6330 of a command string or function body (Tom Lane)
6335 Author: Stephen Frost <sfrost@snowman.net>
6336 Branch: master [6c36f383d] 2014-01-21 22:49:22 -0500
6337 Branch: REL9_3_STABLE [d1e3070f0] 2014-01-21 22:56:30 -0500
6338 Branch: REL9_2_STABLE [c0e6169e1] 2014-01-21 22:56:34 -0500
6339 Branch: REL9_1_STABLE [cbd850bf6] 2014-01-21 23:00:58 -0500
6340 Branch: REL9_0_STABLE [f2eede9b5] 2014-01-21 23:01:40 -0500
6345 Allow keywords that are type names to be used in lists of roles
6350 A previous patch allowed such keywords to be used without quoting
6351 in places such as role identifiers; but it missed cases where a
6352 list of role identifiers was permitted, such as <literal>DROP ROLE</>.
6357 Author: Tom Lane <tgl@sss.pgh.pa.us>
6358 Branch: master [7ab321404] 2013-12-02 20:28:45 -0500
6359 Branch: REL9_3_STABLE [b44ae4893] 2013-12-02 20:28:49 -0500
6360 Branch: REL9_2_STABLE [6698782f1] 2013-12-02 20:28:53 -0500
6361 Branch: REL9_1_STABLE [f67b8aeab] 2013-12-02 20:28:56 -0500
6366 Fix parser crash for <literal>EXISTS(SELECT * FROM
6367 zero_column_table)</literal> (Tom Lane)
6372 Author: Tom Lane <tgl@sss.pgh.pa.us>
6373 Branch: master [9ec6199d1] 2013-12-10 16:10:17 -0500
6374 Branch: REL9_3_STABLE [9d2e07fec] 2013-12-10 16:10:20 -0500
6375 Branch: REL9_2_STABLE [f5d9fdcc7] 2013-12-10 16:10:24 -0500
6376 Branch: REL9_1_STABLE [48e5cfde8] 2013-12-10 16:10:28 -0500
6377 Branch: REL9_0_STABLE [41e9990cd] 2013-12-10 16:10:31 -0500
6378 Branch: REL8_4_STABLE [884c6384a] 2013-12-10 16:10:36 -0500
6383 Fix possible crash due to invalid plan for nested sub-selects, such
6384 as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
6390 Author: Tom Lane <tgl@sss.pgh.pa.us>
6391 Branch: master [043f6ff05] 2014-01-30 14:51:16 -0500
6392 Branch: REL9_3_STABLE [a4aa854ca] 2014-01-30 14:51:19 -0500
6397 Fix mishandling of <literal>WHERE</> conditions pulled up from
6398 a <literal>LATERAL</> subquery (Tom Lane)
6402 The typical symptom of this bug was a <quote>JOIN qualification
6403 cannot refer to other relations</> error, though subtle logic
6404 errors in created plans seem possible as well.
6409 Author: Tom Lane <tgl@sss.pgh.pa.us>
6410 Branch: master [158b7fa6a] 2014-01-11 19:03:12 -0500
6411 Branch: REL9_3_STABLE [27ff4cfe7] 2014-01-11 19:03:15 -0500
6416 Disallow <literal>LATERAL</> references to the target table of
6417 an <literal>UPDATE/DELETE</> (Tom Lane)
6421 While this might be allowed in some future release, it was
6422 unintentional in 9.3, and didn't work quite right anyway.
6427 Author: Tom Lane <tgl@sss.pgh.pa.us>
6428 Branch: master [c03ad5602] 2013-12-14 17:33:53 -0500
6429 Branch: REL9_3_STABLE [324577f39] 2013-12-14 17:33:56 -0500
6430 Branch: REL9_2_STABLE [5d545b7ed] 2013-12-14 17:34:00 -0500
6435 Fix <literal>UPDATE/DELETE</> of an inherited target table
6436 that has <literal>UNION ALL</> subqueries (Tom Lane)
6440 Without this fix, <literal>UNION ALL</> subqueries aren't correctly
6441 inserted into the update plans for inheritance child tables after the
6442 first one, typically resulting in no update happening for those child
6448 Author: Tom Lane <tgl@sss.pgh.pa.us>
6449 Branch: master [4eeda92d8] 2013-12-23 22:18:48 -0500
6450 Branch: REL9_3_STABLE [663f8419b] 2013-12-23 22:18:23 -0500
6455 Fix <command>ANALYZE</> to not fail on a column that's a domain over
6456 a range type (Tom Lane)
6461 Author: Tom Lane <tgl@sss.pgh.pa.us>
6462 Branch: master [628652620] 2014-01-11 13:42:42 -0500
6463 Branch: REL9_3_STABLE [36785a21b] 2014-01-11 13:41:51 -0500
6464 Branch: REL9_2_STABLE [f0381680f] 2014-01-11 13:41:56 -0500
6465 Branch: REL9_1_STABLE [9387f4e1b] 2014-01-11 13:42:00 -0500
6466 Branch: REL9_0_STABLE [2d76d75d9] 2014-01-11 13:42:05 -0500
6467 Branch: REL8_4_STABLE [00b77771a] 2014-01-11 13:42:11 -0500
6472 Ensure that <command>ANALYZE</> creates statistics for a table column
6473 even when all the values in it are <quote>too wide</> (Tom Lane)
6477 <command>ANALYZE</> intentionally omits very wide values from its
6478 histogram and most-common-values calculations, but it neglected to do
6479 something sane in the case that all the sampled entries are too wide.
6484 Author: Stephen Frost <sfrost@snowman.net>
6485 Branch: master [6f25c62d7] 2014-01-18 18:41:52 -0500
6486 Branch: REL9_3_STABLE [86e58ae02] 2014-01-18 18:49:08 -0500
6487 Branch: REL9_2_STABLE [1fe06595a] 2014-01-18 18:49:41 -0500
6488 Branch: REL9_1_STABLE [d2636486b] 2014-01-18 18:50:09 -0500
6489 Branch: REL9_0_STABLE [e70c42821] 2014-01-18 18:50:29 -0500
6490 Branch: REL8_4_STABLE [0fb4e3ceb] 2014-01-18 18:50:47 -0500
6495 In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
6496 default tablespace to be used without a permissions check
6501 <literal>CREATE TABLE</> has always allowed such usage,
6502 but <literal>ALTER TABLE</> didn't get the memo.
6507 Author: Tom Lane <tgl@sss.pgh.pa.us>
6508 Branch: master [c01bc51f8] 2013-12-30 14:00:02 -0500
6509 Branch: REL9_3_STABLE [9a6e2b150] 2013-12-30 14:00:05 -0500
6514 Fix support for extensions containing event triggers (Tom Lane)
6519 Author: Tom Lane <tgl@sss.pgh.pa.us>
6520 Branch: master [080b7db72] 2014-01-08 20:18:58 -0500
6521 Branch: REL9_3_STABLE [47ac4473a] 2014-01-08 20:18:10 -0500
6522 Branch: REL9_2_STABLE [97a39f295] 2014-01-08 20:18:13 -0500
6523 Branch: REL9_1_STABLE [6c6c53d0b] 2014-01-08 20:18:17 -0500
6524 Branch: REL9_0_STABLE [6ca712fb9] 2014-01-08 20:18:20 -0500
6525 Branch: REL8_4_STABLE [57ac7d8a7] 2014-01-08 20:18:24 -0500
6530 Fix <quote>cannot accept a set</> error when some arms of
6531 a <literal>CASE</> return a set and others don't (Tom Lane)
6536 Author: Andrew Dunstan <andrew@dunslane.net>
6537 Branch: master [d3ee45152] 2014-02-03 10:40:12 -0500
6538 Branch: REL9_3_STABLE [cdfbb78f0] 2014-02-03 10:39:13 -0500
6543 Fix memory leakage in JSON functions (Craig Ringer)
6548 Author: Andrew Dunstan <andrew@dunslane.net>
6549 Branch: master [29dcf7ded] 2013-12-27 17:04:00 -0500
6550 Branch: REL9_3_STABLE [7dfd9f6f5] 2013-12-27 17:21:04 -0500
6551 Branch: REL9_2_STABLE [4825a9e95] 2013-12-27 17:21:27 -0500
6556 Properly distinguish numbers from non-numbers when generating JSON
6557 output (Andrew Dunstan)
6562 Author: Kevin Grittner <kgrittn@postgresql.org>
6563 Branch: master [a133bf703] 2013-12-27 15:26:24 -0600
6564 Branch: REL9_3_STABLE [28b60aa23] 2013-12-27 15:40:51 -0600
6565 Branch: REL9_2_STABLE [150a30e19] 2013-12-27 15:41:02 -0600
6566 Branch: REL9_1_STABLE [1f069d21d] 2013-12-27 15:41:18 -0600
6567 Branch: REL9_0_STABLE [918d74a07] 2013-12-27 15:41:32 -0600
6568 Branch: REL8_4_STABLE [b2d80147d] 2013-12-27 15:41:46 -0600
6573 Fix checks for all-zero client addresses in pgstat functions (Kevin
6579 Author: Tom Lane <tgl@sss.pgh.pa.us>
6580 Branch: master [082c0dfa1] 2014-02-01 18:27:34 -0500
6581 Branch: REL9_3_STABLE [9beffdcc3] 2014-02-01 18:27:40 -0500
6582 Branch: REL9_2_STABLE [8be095cea] 2014-02-01 18:27:44 -0500
6583 Branch: REL9_1_STABLE [399d23e19] 2014-02-01 18:27:48 -0500
6584 Branch: REL9_0_STABLE [3c7b4ef70] 2014-02-01 18:27:54 -0500
6585 Branch: REL8_4_STABLE [56f5d3424] 2014-02-01 18:27:12 -0500
6590 Fix possible misclassification of multibyte characters by the text
6591 search parser (Tom Lane)
6595 Non-ASCII characters could be misclassified when using C locale with
6596 a multibyte encoding. On Cygwin, non-C locales could fail as well.
6601 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6602 Branch: master [6c2744f1d] 2014-02-10 09:57:59 +0200
6603 Branch: REL9_3_STABLE [928aec71c] 2014-02-10 09:59:49 +0200
6604 Branch: REL9_2_STABLE [f3807106b] 2014-02-10 10:00:04 +0200
6605 Branch: REL9_1_STABLE [5f778e644] 2014-02-10 10:00:23 +0200
6606 Branch: REL9_0_STABLE [fe8a6f53e] 2014-02-10 10:00:36 +0200
6607 Branch: REL8_4_STABLE [6141983fb] 2014-02-10 10:00:50 +0200
6612 Fix possible misbehavior in <function>plainto_tsquery()</>
6613 (Heikki Linnakangas)
6617 Use <function>memmove()</> not <function>memcpy()</> for copying
6618 overlapping memory regions. There have been no field reports of
6619 this actually causing trouble, but it's certainly risky.
6624 Author: Magnus Hagander <magnus@hagander.net>
6625 Branch: master [9544cc0d6] 2014-01-07 17:50:56 +0100
6626 Branch: REL9_3_STABLE [91c2755fc] 2014-01-07 17:51:02 +0100
6627 Branch: REL9_2_STABLE [61d4d14ee] 2014-01-07 17:53:00 +0100
6628 Branch: REL9_1_STABLE [026a91f86] 2014-01-07 18:00:36 +0100
6633 Fix placement of permissions checks in <function>pg_start_backup()</>
6634 and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
6638 The previous coding might attempt to do catalog access when it
6644 Author: Tatsuo Ishii <ishii@postgresql.org>
6645 Branch: master [1f0626ee4] 2013-12-15 11:09:05 +0900
6646 Branch: REL9_3_STABLE [8122e6f85] 2013-12-15 11:10:41 +0900
6647 Branch: REL9_2_STABLE [0c07ef1ad] 2013-12-15 11:10:49 +0900
6648 Branch: REL9_1_STABLE [035226c61] 2013-12-15 11:10:56 +0900
6649 Branch: REL9_0_STABLE [7016d970d] 2013-12-15 11:11:02 +0900
6650 Branch: REL8_4_STABLE [69f77d756] 2013-12-15 11:11:11 +0900
6655 Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
6656 purposes (Tatsuo Ishii)
6661 Author: Tom Lane <tgl@sss.pgh.pa.us>
6662 Branch: master [0def2573c] 2014-02-03 14:47:17 -0500
6663 Branch: REL9_3_STABLE [641c08041] 2014-02-03 14:46:54 -0500
6664 Branch: REL9_2_STABLE [888b56570] 2014-02-03 14:46:57 -0500
6669 Fix <literal>*</>-qualification of named parameters in SQL-language
6670 functions (Tom Lane)
6674 Given a composite-type parameter
6675 named <literal>foo</>, <literal>$1.*</> worked fine,
6676 but <literal>foo.*</> not so much.
6681 Author: Fujii Masao <fujii@postgresql.org>
6682 Branch: master [77035fa8a] 2014-01-23 22:58:58 +0900
6683 Branch: REL9_3_STABLE [be5d49974] 2014-01-23 23:00:30 +0900
6684 Branch: REL9_2_STABLE [ea311bfdf] 2014-01-23 23:01:06 +0900
6685 Branch: REL9_1_STABLE [1b384aff1] 2014-01-23 23:01:34 +0900
6686 Branch: REL9_0_STABLE [996b21cbf] 2014-01-23 23:02:03 +0900
6687 Branch: REL8_4_STABLE [5525529db] 2014-01-23 23:02:30 +0900
6692 Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
6696 It should return <literal>localhost</> if no host has been specified.
6701 Author: Tom Lane <tgl@sss.pgh.pa.us>
6702 Branch: master [b8f00a46b] 2014-02-13 18:45:58 -0500
6703 Branch: REL9_3_STABLE [f208fb436] 2014-02-13 18:46:03 -0500
6704 Branch: REL9_2_STABLE [2573f08a1] 2014-02-13 18:45:20 -0500
6705 Branch: REL9_1_STABLE [7182bd239] 2014-02-13 18:45:23 -0500
6706 Branch: REL9_0_STABLE [218dd205b] 2014-02-13 18:45:27 -0500
6707 Branch: REL8_4_STABLE [7644a7bd8] 2014-02-13 18:45:32 -0500
6712 Improve error handling in <application>libpq</> and <application>psql</>
6713 for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
6717 In particular this fixes an infinite loop that could occur in 9.2 and
6718 up if the server connection was lost during <literal>COPY FROM
6719 STDIN</>. Variants of that scenario might be possible in older
6720 versions, or with other client applications.
6725 Author: Tom Lane <tgl@sss.pgh.pa.us>
6726 Branch: master [92459e7a7] 2014-01-04 16:05:16 -0500
6727 Branch: REL9_3_STABLE [341f0bc49] 2014-01-04 16:05:20 -0500
6728 Branch: REL9_2_STABLE [fa28f9cba] 2014-01-04 16:05:23 -0500
6733 Fix incorrect translation handling in
6734 some <application>psql</> <literal>\d</> commands
6735 (Peter Eisentraut, Tom Lane)
6740 Author: Magnus Hagander <magnus@hagander.net>
6741 Branch: master [63ab2befe] 2014-02-12 18:45:18 +0100
6742 Branch: REL9_3_STABLE [c90204c60] 2014-02-12 18:46:04 +0100
6743 Branch: REL9_2_STABLE [0ae288d2d] 2014-02-12 14:51:00 +0100
6748 Ensure <application>pg_basebackup</>'s background process is killed
6749 when exiting its foreground process (Magnus Hagander)
6754 Author: Magnus Hagander <magnus@hagander.net>
6755 Branch: master [01025d80a] 2014-02-09 12:05:14 +0100
6756 Branch: REL9_3_STABLE [680baa8d2] 2014-02-09 12:09:18 +0100
6757 Branch: REL9_2_STABLE [165aa1da5] 2014-02-09 12:09:39 +0100
6758 Branch: REL9_1_STABLE [c6e5c4dd1] 2014-02-09 12:09:55 +0100
6763 Fix possible incorrect printing of filenames
6764 in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
6769 Author: Magnus Hagander <magnus@hagander.net>
6770 Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
6771 Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
6772 Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
6773 Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
6778 Avoid including tablespaces inside PGDATA twice in base backups
6779 (Dimitri Fontaine, Magnus Hagander)
6784 Author: Michael Meskes <meskes@postgresql.org>
6785 Branch: master [d685e2424] 2014-01-09 16:20:19 +0100
6786 Branch: REL9_3_STABLE [28fff0ef8] 2014-01-09 15:41:51 +0100
6787 Branch: REL9_2_STABLE [799728b0b] 2014-01-09 15:50:51 +0100
6788 Branch: REL9_1_STABLE [9f5b3a1a1] 2014-01-09 15:51:11 +0100
6789 Branch: REL9_0_STABLE [a29b6c342] 2014-01-09 15:51:23 +0100
6790 Branch: REL8_4_STABLE [d68a65b01] 2014-01-09 15:58:37 +0100
6795 Fix misaligned descriptors in <application>ecpg</> (MauMau)
6800 Author: Michael Meskes <meskes@postgresql.org>
6801 Branch: master [7c957ec83] 2014-01-01 12:39:31 +0100
6802 Branch: REL9_3_STABLE [8404037d8] 2014-01-01 12:40:28 +0100
6803 Branch: REL9_2_STABLE [119a59879] 2014-01-01 12:40:42 +0100
6804 Branch: REL9_1_STABLE [948498274] 2014-01-01 12:44:15 +0100
6805 Branch: REL9_0_STABLE [17bcdd01f] 2014-01-01 12:44:44 +0100
6806 Branch: REL8_4_STABLE [96de4939c] 2014-01-01 12:44:58 +0100
6811 In <application>ecpg</>, handle lack of a hostname in the connection
6812 parameters properly (Michael Meskes)
6817 Author: Joe Conway <mail@joeconway.com>
6818 Branch: master [d6ca510d9] 2013-12-07 17:00:26 -0800
6819 Branch: REL9_3_STABLE [0ec530625] 2013-12-07 17:00:10 -0800
6820 Branch: REL9_2_STABLE [7f4ef622f] 2013-12-07 16:59:35 -0800
6821 Branch: REL9_1_STABLE [70165f25b] 2013-12-07 16:59:16 -0800
6822 Branch: REL9_0_STABLE [9057adc23] 2013-12-07 16:58:41 -0800
6823 Branch: REL8_4_STABLE [6c8b16e30] 2013-12-07 16:56:34 -0800
6828 Fix performance regression in <filename>contrib/dblink</> connection
6829 startup (Joe Conway)
6833 Avoid an unnecessary round trip when client and server encodings match.
6838 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6839 Branch: master [866a1f092] 2014-01-13 15:43:29 +0200
6840 Branch: REL9_3_STABLE [50c5770ec] 2014-01-13 15:43:59 +0200
6841 Branch: REL9_2_STABLE [f6d6b42f2] 2014-01-13 15:44:02 +0200
6842 Branch: REL9_1_STABLE [5143dfd57] 2014-01-13 15:44:04 +0200
6843 Branch: REL9_0_STABLE [6c3f040be] 2014-01-13 15:44:12 +0200
6844 Branch: REL8_4_STABLE [492b68541] 2014-01-13 15:44:14 +0200
6849 In <filename>contrib/isn</>, fix incorrect calculation of the check
6850 digit for ISMN values (Fabien Coelho)
6855 Author: Tatsuo Ishii <ishii@postgresql.org>
6856 Branch: master [841a65482] 2013-12-12 19:10:35 +0900
6857 Branch: REL9_3_STABLE [27902bc91] 2013-12-12 19:07:53 +0900
6862 Fix <filename>contrib/pgbench</>'s progress logging to avoid overflow
6863 when the scale factor is large (Tatsuo Ishii)
6868 Author: Tom Lane <tgl@sss.pgh.pa.us>
6869 Branch: master [69c7a9838] 2014-01-21 16:34:28 -0500
6870 Branch: REL9_3_STABLE [0950d67ee] 2014-01-21 16:34:31 -0500
6871 Branch: REL9_2_STABLE [27ab1eb7e] 2014-01-21 16:34:35 -0500
6876 Fix <filename>contrib/pg_stat_statement</>'s handling
6877 of <literal>CURRENT_DATE</> and related constructs (Kyotaro
6883 Author: Tom Lane <tgl@sss.pgh.pa.us>
6884 Branch: master [00d4f2af8] 2014-02-03 21:30:20 -0500
6885 Branch: REL9_3_STABLE [eb3d350db] 2014-02-03 21:30:28 -0500
6890 Improve lost-connection error handling
6891 in <filename>contrib/postgres_fdw</> (Tom Lane)
6896 Author: Peter Eisentraut <peter_e@gmx.net>
6897 Branch: master [ad6bf0291] 2014-01-17 23:08:22 -0500
6898 Branch: REL9_3_STABLE [586bea612] 2014-01-17 23:11:02 -0500
6899 Branch: REL9_2_STABLE [526e38751] 2014-01-17 23:12:50 -0500
6900 Branch: REL9_1_STABLE [6d969b000] 2014-01-17 23:14:21 -0500
6901 Branch: REL9_0_STABLE [2346c383a] 2014-01-17 23:15:00 -0500
6902 Branch: REL8_4_STABLE [15699d9bf] 2014-01-17 23:17:59 -0500
6907 Ensure client-code-only installation procedure works as documented
6913 Author: Andrew Dunstan <andrew@dunslane.net>
6914 Branch: master [d587298b8] 2014-02-01 15:11:13 -0500
6915 Branch: REL9_3_STABLE [1e9876c3b] 2014-02-01 15:16:06 -0500
6916 Branch: REL9_2_STABLE [6e96d4db8] 2014-02-01 15:16:18 -0500
6917 Branch: REL9_1_STABLE [dfb4a1a21] 2014-02-01 15:16:29 -0500
6918 Branch: REL9_0_STABLE [59d64e7f3] 2014-02-01 15:16:40 -0500
6919 Branch: REL8_4_STABLE [ae3c98b9b] 2014-02-01 15:16:52 -0500
6924 In Mingw and Cygwin builds, install the <application>libpq</> DLL
6925 in the <filename>bin</> directory (Andrew Dunstan)
6929 This duplicates what the MSVC build has long done. It should fix
6930 problems with programs like <application>psql</> failing to start
6931 because they can't find the DLL.
6936 Author: Andrew Dunstan <andrew@dunslane.net>
6937 Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
6938 Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
6939 Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
6940 Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
6941 Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
6946 Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
6952 Author: Andrew Dunstan <andrew@dunslane.net>
6953 Branch: master [cec8394b5] 2014-01-26 09:49:10 -0500
6954 Branch: REL9_3_STABLE [56c08df55] 2014-01-26 09:45:43 -0500
6959 Enable building with Visual Studio 2013 (Brar Piening)
6964 Author: Tom Lane <tgl@sss.pgh.pa.us>
6965 Branch: master [289541520] 2014-02-10 20:48:04 -0500
6966 Branch: REL9_3_STABLE [f1e522696] 2014-02-10 20:48:12 -0500
6967 Branch: REL9_2_STABLE [dd5605104] 2014-02-10 20:48:20 -0500
6968 Branch: REL9_1_STABLE [3bf5c16f1] 2014-02-10 20:48:23 -0500
6969 Branch: REL9_0_STABLE [e1e7642bd] 2014-02-10 20:48:27 -0500
6970 Branch: REL8_4_STABLE [432735cbf] 2014-02-10 20:48:30 -0500
6975 Don't generate plain-text <filename>HISTORY</>
6976 and <filename>src/test/regress/README</> files anymore (Tom Lane)
6980 These text files duplicated the main HTML and PDF documentation
6981 formats. The trouble involved in maintaining them greatly outweighs
6982 the likely audience for plain-text format. Distribution tarballs
6983 will still contain files by these names, but they'll just be stubs
6984 directing the reader to consult the main documentation.
6985 The plain-text <filename>INSTALL</> file will still be maintained, as
6986 there is arguably a use-case for that.
6991 Author: Tom Lane <tgl@sss.pgh.pa.us>
6992 Branch: master [e04641f4b] 2014-02-14 21:59:13 -0500
6993 Branch: REL9_3_STABLE [46cbcd50e] 2014-02-14 21:59:37 -0500
6994 Branch: REL9_2_STABLE [4f975b68b] 2014-02-14 21:59:42 -0500
6995 Branch: REL9_1_STABLE [3212ba534] 2014-02-14 21:59:46 -0500
6996 Branch: REL9_0_STABLE [cb84fddd9] 2014-02-14 21:59:50 -0500
6997 Branch: REL8_4_STABLE [c0c2d62ac] 2014-02-14 21:59:56 -0500
7002 Update time zone data files to <application>tzdata</> release 2013i
7003 for DST law changes in Jordan and historical changes in Cuba.
7007 In addition, the zones <literal>Asia/Riyadh87</>,
7008 <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
7009 removed, as they are no longer maintained by IANA, and never
7010 represented actual civil timekeeping practice.
7019 <sect1 id="release-9-3-2">
7020 <title>Release 9.3.2</title>
7023 <title>Release Date</title>
7024 <simpara>2013-12-05</simpara>
7028 This release contains a variety of fixes from 9.3.1.
7029 For information about new features in the 9.3 major release, see
7030 <xref linkend="release-9-3">.
7034 <title>Migration to Version 9.3.2</title>
7037 A dump/restore is not required for those running 9.3.X.
7041 However, this release corrects a number of potential data corruption
7042 issues. See the first three changelog entries below to find out whether
7043 your installation has been affected and what steps you can take if so.
7047 Also, if you are upgrading from a version earlier than 9.3.1,
7048 see <xref linkend="release-9-3-1">.
7054 <title>Changes</title>
7060 Fix <command>VACUUM</>'s tests to see whether it can
7061 update <structfield>relfrozenxid</> (Andres Freund)
7065 In some cases <command>VACUUM</> (either manual or autovacuum) could
7066 incorrectly advance a table's <structfield>relfrozenxid</> value,
7067 allowing tuples to escape freezing, causing those rows to become
7068 invisible once 2^31 transactions have elapsed. The probability of
7069 data loss is fairly low since multiple incorrect advancements would
7070 need to happen before actual loss occurs, but it's not zero. In 9.2.0
7071 and later, the probability of loss is higher, and it's also possible
7072 to get <quote>could not access status of transaction</> errors as a
7073 consequence of this bug. Users upgrading from releases 9.0.4 or 8.4.8
7074 or earlier are not affected, but all later versions contain the bug.
7078 The issue can be ameliorated by, after upgrading, vacuuming all tables
7079 in all databases while having <link
7080 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
7081 set to zero. This will fix any latent corruption but will not be able
7082 to fix all pre-existing data errors. However, an installation can be
7083 presumed safe after performing this vacuuming if it has executed fewer
7084 than 2^31 update transactions in its lifetime (check this with
7085 <literal>SELECT txid_current() < 2^31</>).
7091 Fix multiple bugs in MultiXactId freezing (Andres Freund,
7092 Álvaro Herrera)
7096 These bugs could lead to <quote>could not access status of
7097 transaction</> errors, or to duplicate or vanishing rows.
7098 Users upgrading from releases prior to 9.3.0 are not affected.
7102 The issue can be ameliorated by, after upgrading, vacuuming all tables
7103 in all databases while having <link
7104 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
7105 set to zero. This will fix latent corruption but will not be able to
7106 fix all pre-existing data errors.
7110 As a separate issue, these bugs can also cause standby servers to get
7111 out of sync with the primary, thus exhibiting data errors that are not
7112 in the primary. Therefore, it's recommended that 9.3.0 and 9.3.1
7113 standby servers be re-cloned from the primary (e.g., with a new base
7114 backup) after upgrading.
7120 Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
7121 during hot standby startup (Andres Freund, Heikki Linnakangas)
7125 This bug can cause data loss on standby servers at the moment they
7126 start to accept hot-standby queries, by marking committed transactions
7127 as uncommitted. The likelihood of such corruption is small unless, at
7128 the time of standby startup, the primary server has executed many
7129 updating transactions since its last checkpoint. Symptoms include
7130 missing rows, rows that should have been deleted being still visible,
7131 and obsolete versions of updated rows being still visible alongside
7132 their newer versions.
7136 This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
7137 Standby servers that have only been running earlier releases are not
7138 at risk. It's recommended that standby servers that have ever run any
7139 of the buggy releases be re-cloned from the primary (e.g., with a new
7140 base backup) after upgrading.
7146 Fix multiple bugs in update chain traversal (Andres Freund,
7147 Álvaro Herrera)
7151 These bugs could result in incorrect behavior, such as locking or even
7152 updating the wrong row, in the presence of concurrent updates.
7153 Spurious <quote>unable to fetch updated version of tuple</> errors
7160 Fix dangling-pointer problem in fast-path locking (Tom Lane)
7164 This could lead to corruption of the lock data structures in shared
7165 memory, causing <quote>lock already held</> and other odd errors.
7171 Fix assorted race conditions in timeout management (Tom Lane)
7175 These errors could result in a server process becoming unresponsive
7176 because it had blocked SIGALRM and/or SIGINT.
7182 Truncate <filename>pg_multixact</> contents during WAL replay
7187 This avoids ever-increasing disk space consumption in standby servers.
7193 Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
7194 when it's only verified that no tuples need freezing (Sergey
7195 Burladyan, Jeff Janes)
7199 This bug could result in failing to
7200 advance <structfield>relfrozenxid</>, so that the table would still be
7201 thought to need another anti-wraparound vacuum. In the worst case the
7202 database might even shut down to prevent wraparound.
7208 Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
7212 This bug could result in large amounts of useless autovacuum activity.
7218 Fix race condition in GIN index posting tree page deletion (Heikki
7223 This could lead to transient wrong answers or query failures.
7229 Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
7230 index creation (Teodor Sigaev)
7236 Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
7242 Re-allow duplicate table aliases if they're within aliased JOINs
7247 Historically <productname>PostgreSQL</> has accepted queries like
7249 SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
7251 although a strict reading of the SQL standard would forbid the
7252 duplicate usage of table alias <literal>x</>. A misguided change in
7253 9.3.0 caused it to reject some such cases that were formerly accepted.
7254 Restore the previous behavior.
7260 Avoid flattening a subquery whose <literal>SELECT</> list contains a
7261 volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
7265 This avoids unexpected results due to extra evaluations of the
7272 Fix planner's processing of non-simple-variable subquery outputs
7273 nested within outer joins (Tom Lane)
7277 This error could lead to incorrect plans for queries involving
7278 multiple levels of subqueries within <literal>JOIN</> syntax.
7284 Fix incorrect planning in cases where the same non-strict expression
7285 appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
7286 equality clauses (Tom Lane)
7292 Fix planner crash with whole-row reference to a subquery (Tom Lane)
7298 Fix incorrect generation of optimized MIN()/MAX() plans for
7299 inheritance trees (Tom Lane)
7303 The planner could fail in cases where the MIN()/MAX() argument was an
7304 expression rather than a simple variable.
7310 Fix premature deletion of temporary files (Andres Freund)
7316 Prevent intra-transaction memory leak when printing range values
7321 This fix actually cures transient memory leaks in any datatype output
7322 function, but range types are the only ones known to have had a
7323 significant problem.
7329 Fix memory leaks when reloading configuration files (Heikki
7330 Linnakangas, Hari Babu)
7336 Prevent incorrect display of dropped columns in NOT NULL and CHECK
7337 constraint violation messages (Michael Paquier and Tom Lane)
7343 Allow default arguments and named-argument notation for window
7344 functions (Tom Lane)
7348 Previously, these cases were likely to crash.
7354 Suppress trailing whitespace on each line when pretty-printing rules
7355 and views (Tom Lane)
7359 9.3.0 generated such whitespace in many more cases than previous
7360 versions did. To reduce unexpected behavioral changes, suppress
7361 unnecessary whitespace in all cases.
7367 Fix possible read past end of memory in rule printing (Peter Eisentraut)
7373 Fix array slicing of <type>int2vector</> and <type>oidvector</> values
7378 Expressions of this kind are now implicitly promoted to
7379 regular <type>int2</> or <type>oid</> arrays.
7385 Return a valid JSON value when converting an empty <type>hstore</> value
7393 Fix incorrect behaviors when using a SQL-standard, simple GMT offset
7398 In some cases, the system would use the simple GMT offset value when
7399 it should have used the regular timezone setting that had prevailed
7400 before the simple offset was selected. This change also causes
7401 the <function>timeofday</> function to honor the simple GMT offset
7408 Prevent possible misbehavior when logging translations of Windows
7409 error codes (Tom Lane)
7415 Properly quote generated command lines in <application>pg_ctl</>
7416 (Naoya Anzai and Tom Lane)
7420 This fix applies only to Windows.
7426 Fix <application>pg_dumpall</> to work when a source database
7428 linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
7429 via <command>ALTER DATABASE SET</> (Kevin Grittner)
7433 Previously, the generated script would fail during restore.
7439 Fix <application>pg_isready</> to handle its <option>-d</> option
7440 properly (Fabrízio de Royes Mello and Fujii Masao)
7446 Fix parsing of WAL file names in <application>pg_receivexlog</>
7447 (Heikki Linnakangas)
7451 This error made <application>pg_receivexlog</> unable to restart
7452 streaming after stopping, once at least 4 GB of WAL had been written.
7458 Report out-of-disk-space failures properly
7459 in <application>pg_upgrade</> (Peter Eisentraut)
7465 Make <application>ecpg</> search for quoted cursor names
7466 case-sensitively (Zoltán Böszörményi)
7472 Fix <application>ecpg</>'s processing of lists of variables
7473 declared <type>varchar</> (Zoltán Böszörményi)
7479 Make <filename>contrib/lo</> defend against incorrect trigger definitions
7486 Update time zone data files to <application>tzdata</> release 2013h
7487 for DST law changes in Argentina, Brazil, Jordan, Libya,
7488 Liechtenstein, Morocco, and Palestine. Also, new timezone
7489 abbreviations WIB, WIT, WITA for Indonesia.
7498 <sect1 id="release-9-3-1">
7499 <title>Release 9.3.1</title>
7502 <title>Release Date</title>
7503 <simpara>2013-10-10</simpara>
7507 This release contains a variety of fixes from 9.3.0.
7508 For information about new features in the 9.3 major release, see
7509 <xref linkend="release-9-3">.
7513 <title>Migration to Version 9.3.1</title>
7516 A dump/restore is not required for those running 9.3.X.
7520 However, if you use the <literal>hstore</> extension, see the
7521 first changelog entry.
7527 <title>Changes</title>
7533 Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
7534 extension during an update (Andrew Dunstan)
7538 Users who upgraded a pre-9.3 database containing <literal>hstore</>
7541 ALTER EXTENSION hstore UPDATE;
7543 after installing 9.3.1, to add two new JSON functions and a cast.
7544 (If <literal>hstore</> is already up to date, this command does
7551 Fix memory leak when creating B-tree indexes on range columns
7552 (Heikki Linnakangas)
7558 Fix memory leak caused by <function>lo_open()</function> failure
7559 (Heikki Linnakangas)
7565 Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
7571 Fix deadlock bug in libpq when using SSL (Stephen Frost)
7577 Fix timeline handling bugs in <application>pg_receivexlog</>
7578 (Heikki Linnakangas, Andrew Gierth)
7584 Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
7585 variables unless function body checking is enabled (Tom Lane)
7591 Remove rare inaccurate warning during vacuum of index-less tables
7592 (Heikki Linnakangas)
7601 <sect1 id="release-9-3">
7602 <title>Release 9.3</title>
7605 <title>Release Date</title>
7606 <simpara>2013-09-09</simpara>
7610 <title>Overview</title>
7613 Major enhancements in <productname>PostgreSQL</> 9.3 include:
7616 <!-- This list duplicates items below, but without authors or details-->
7622 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
7629 Make simple views <link
7630 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
7636 Add many features for the <type>JSON</> data type,
7637 including <link linkend="functions-json">operators and functions</link>
7638 to extract elements from <type>JSON</> values
7644 Implement <acronym>SQL</>-standard <link
7645 linkend="queries-lateral"><literal>LATERAL</></link> option for
7646 <literal>FROM</>-clause subqueries and function calls
7652 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
7653 wrappers</link> to support writes (inserts/updates/deletes) on foreign
7660 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
7661 data wrapper</link> to allow access to
7662 other <productname>Postgres</> servers
7668 Add support for <link linkend="event-triggers">event triggers</link>
7674 Add optional ability to <link
7675 linkend="app-initdb-data-checksums">checksum</link> data pages and
7682 Prevent non-key-field row updates from blocking foreign key checks
7688 Greatly reduce System V <link linkend="sysvipc">shared
7689 memory</link> requirements
7696 The above items are explained in more detail in the sections below.
7703 <title>Migration to Version 9.3</title>
7706 A dump/restore using <link
7707 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
7708 of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
7709 required for those wishing to migrate data from any previous release.
7713 Version 9.3 contains a number of changes that may affect compatibility
7714 with previous releases. Observe the following incompatibilities:
7718 <title>Server Settings</title>
7724 Rename <varname>replication_timeout</> to <link
7725 linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
7730 This setting controls the <link
7731 linkend="wal"><acronym>WAL</></link> sender timeout.
7737 Require superuser privileges to set <link
7738 linkend="guc-commit-delay"><varname>commit_delay</></link>
7739 because it can now potentially delay other sessions (Simon Riggs)
7745 Allow in-memory sorts to use their full memory allocation (Jeff Janes)
7749 Users who have set <link
7750 linkend="guc-work-mem"><varname>work_mem</></link> based on the
7751 previous behavior may need to revisit that setting.
7760 <title>Other</title>
7766 Throw an error if a tuple to be updated or deleted has already been
7767 updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
7771 Formerly, the originally-intended update was silently skipped,
7772 resulting in logical inconsistency since the trigger might have
7773 propagated data to other places based on the intended update.
7774 Now an error is thrown to prevent the inconsistent results from being
7775 committed. If this change affects your application, the best solution
7776 is usually to move the data-propagation actions to
7777 an <literal>AFTER</> trigger.
7781 This error will also be thrown if a query invokes a volatile function
7782 that modifies rows that are later modified by the query itself.
7783 Such cases likewise previously resulted in silently skipping updates.
7789 Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
7790 SET NULL/SET DEFAULT</></link> foreign key actions to affect
7791 all columns of the constraint, not just those changed in the
7792 <command>UPDATE</> (Tom Lane)
7796 Previously, we would set only those referencing columns that
7797 correspond to referenced columns that were changed by
7798 the <command>UPDATE</>. This was what was required by SQL-92,
7799 but more recent editions of the SQL standard specify the new behavior.
7805 Force cached plans to be replanned if the <link
7806 linkend="guc-search-path"><varname>search_path</></link> changes
7811 Previously, cached plans already generated in the current session were
7812 not redone if the query was re-executed with a
7813 new <varname>search_path</> setting, resulting in surprising behavior.
7820 linkend="functions-formatting-table"><function>to_number()</></link>
7821 to properly handle a period used as a thousands separator (Tom Lane)
7825 Previously, a period was considered to be a decimal point even when
7826 the locale says it isn't and the <literal>D</> format code is used to
7827 specify use of the locale-specific decimal point. This resulted in
7828 wrong answers if <literal>FM</> format was also used.
7834 Fix <literal>STRICT</> non-set-returning functions that have
7835 set-returning functions in their arguments to properly return null
7840 A null value passed to the strict function should result in a null
7841 output, but instead, that output row was suppressed entirely.
7847 Store <link linkend="wal"><acronym>WAL</></link> in a continuous
7848 stream, rather than skipping the last 16MB segment every 4GB
7849 (Heikki Linnakangas)
7853 Previously, <acronym>WAL</> files with names ending in <literal>FF</>
7854 were not used because of this skipping. If you have <acronym>WAL</>
7855 backup or restore scripts that took this behavior into account, they
7856 will need to be adjusted.
7863 linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
7864 store the default foreign key match type (non-<literal>FULL</>,
7865 non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
7870 Previously this case was represented by <literal>u</>
7871 for <quote>unspecified</>.
7882 <title>Changes</title>
7885 Below you will find a detailed account of the changes between
7886 <productname>PostgreSQL</productname> 9.3 and the previous major
7891 <title>Server</title>
7894 <title>Locking</title>
7900 Prevent non-key-field row updates from blocking foreign key checks
7901 (Álvaro Herrera, Noah Misch, Andres Freund, Alexander
7902 Shulgin, Marti Raudsepp, Alexander Shulgin)
7906 This change improves concurrency and reduces the probability of
7907 deadlocks when updating tables involved in a foreign-key constraint.
7908 <command>UPDATE</>s that do not change any columns referenced in a
7909 foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
7910 the row, while foreign key checks use the new <literal>KEY SHARE</>
7911 lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
7912 So there is no blocking unless a foreign-key column is changed.
7918 Add configuration variable <link
7919 linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
7920 allow limiting how long a session will wait to acquire any one lock
7921 (Zoltán Böszörményi)
7930 <title>Indexes</title>
7936 Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
7937 support for range data types (Alexander Korotkov)
7943 Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
7944 unlogged (Jeevan Chalke)
7950 Improve performance of <acronym>GiST</> index insertion by randomizing
7951 the choice of which page to descend to when there are multiple equally
7952 good alternatives (Heikki Linnakangas)
7958 Improve concurrency of hash index operations (Robert Haas)
7967 <title>Optimizer</title>
7973 Collect and use histograms of upper and lower bounds, as well as range
7974 lengths, for <link linkend="rangetypes">range types</link>
7975 (Alexander Korotkov)
7981 Improve optimizer's cost estimation for index access (Tom Lane)
7987 Improve optimizer's hash table size estimate for
7988 doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
7994 Suppress no-op Result and Limit plan nodes
7995 (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
8001 Reduce optimizer overhead by not keeping plans on the basis of cheap
8002 startup cost when the optimizer only cares about total cost overall
8012 <title>General Performance</title>
8018 Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
8019 option to avoid the overhead of marking tuples as frozen later
8020 (Simon Riggs, Jeff Davis)
8026 Improve performance of <link
8027 linkend="datatype-numeric"><type>NUMERIC</></link> calculations
8034 Improve synchronization of sessions waiting for <link
8035 linkend="guc-commit-delay"><varname>commit_delay</></link>
8040 This greatly improves the usefulness of <varname>commit_delay</>.
8046 Improve performance of the <link
8047 linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
8048 COMMIT DELETE ROWS</></link> option by not truncating such temporary
8049 tables in transactions that haven't touched any temporary tables
8050 (Heikki Linnakangas)
8056 Make vacuum recheck visibility after it has removed expired tuples
8061 This increases the chance of a page being marked as all-visible.
8067 Add per-resource-owner lock caches (Jeff Janes)
8071 This speeds up lock bookkeeping at statement completion in
8072 multi-statement transactions that hold many locks; it is particularly
8073 useful for <application>pg_dump</>.
8079 Avoid scanning the entire relation cache at commit of a transaction
8080 that creates a new relation (Jeff Janes)
8084 This speeds up sessions that create many tables in successive
8085 small transactions, such as a <application>pg_restore</> run.
8091 Improve performance of transactions that drop many relations
8101 <title>Monitoring</title>
8107 Add optional ability to <link
8108 linkend="app-initdb-data-checksums">checksum</link> data pages and
8109 report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
8113 The checksum option can be set during <link
8114 linkend="APP-INITDB">initdb</link>.
8120 Split the <link linkend="monitoring-stats">statistics collector's</link>
8121 data file into separate global and per-database files (Tomas Vondra)
8125 This reduces the I/O required for statistics tracking.
8131 Fix the statistics collector to operate properly in cases where the
8132 system clock goes backwards (Tom Lane)
8136 Previously, statistics collection would stop until the time again
8137 reached the latest time previously recorded.
8143 Emit an informative message to postmaster standard error when we
8144 are about to stop logging there
8149 This should help reduce user confusion about where to look for log
8150 output in common configurations that log to standard error only during
8160 <title>Authentication</title>
8166 When an authentication failure occurs, log the relevant
8167 <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
8168 line, to ease debugging of unintended failures
8175 Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
8176 reporting and documentation (Peter Eisentraut)
8182 Add support for specifying <acronym>LDAP</> authentication parameters
8183 in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
8190 linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
8191 to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
8192 then remove insecure ciphers (Magnus Hagander)
8196 This should yield a more appropriate SSL cipher set.
8202 Parse and load <link
8203 linkend="auth-username-maps"><filename>pg_ident.conf</></link>
8204 once, not during each connection (Amit Kapila)
8208 This is similar to how <filename>pg_hba.conf</> is processed.
8217 <title>Server Settings</title>
8223 Greatly reduce System V <link linkend="sysvipc">shared
8224 memory</link> requirements (Robert Haas)
8228 On Unix-like systems, <function>mmap()</> is now used for most
8229 of <productname>PostgreSQL</>'s shared memory. For most users, this
8230 will eliminate any need to adjust kernel parameters for shared memory.
8236 Allow the postmaster to listen on multiple Unix-domain sockets
8237 (Honza Horák)
8241 The configuration parameter
8242 <varname>unix_socket_directory</> is replaced by <link
8243 linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
8244 which accepts a list of directories.
8250 Allow a directory of configuration files to be processed (Magnus
8251 Hagander, Greg Smith, Selena Deckelmann)
8255 Such a directory is specified with <link
8256 linkend="config-includes"><varname>include_dir</></link> in the server
8263 Increase the maximum <link
8264 linkend="APP-INITDB">initdb</link>-configured value for <link
8265 linkend="guc-shared-buffers"><varname>shared_buffers</></link>
8266 to 128MB (Robert Haas)
8270 This is the maximum value that initdb will attempt to set in <link
8271 linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
8272 the previous maximum was 32MB.
8278 Remove the <link linkend="guc-external-pid-file">external
8279 <acronym>PID</> file</link>, if any, on postmaster exit
8291 <title>Replication and Recovery</title>
8297 Allow a streaming replication standby to <link
8298 linkend="protocol-replication">follow a timeline switch</link>
8299 (Heikki Linnakangas)
8303 This allows streaming standby servers to receive WAL data from a slave
8304 newly promoted to master status. Previously, other standbys would
8305 require a resync to begin following the new master.
8311 Add <acronym>SQL</> functions <link
8312 linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
8314 linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
8319 These functions report the status of base backups.
8325 Improve performance of streaming log shipping with <link
8326 linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
8327 disabled (Andres Freund)
8333 Allow much faster promotion of a streaming standby to primary (Simon
8334 Riggs, Kyotaro Horiguchi)
8340 Add the last checkpoint's redo location to <link
8341 linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
8342 output (Fujii Masao)
8346 This information is useful for determining which <acronym>WAL</>
8347 files are needed for restore.
8353 Allow tools like <link
8354 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
8355 to run on computers with different architectures (Heikki
8360 WAL files can still only be replayed on servers with the same
8361 architecture as the primary; but they can now be transmitted to and
8362 stored on machines of any architecture, since the
8363 streaming replication protocol is now machine-independent.
8370 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
8371 <option>--write-recovery-conf</> output a
8372 minimal <filename>recovery.conf</> file (Zoltán
8373 Böszörményi, Magnus Hagander)
8377 This simplifies setting up a standby server.
8384 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
8386 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
8387 <option>--xlog-method</> to handle streaming timeline switches
8388 (Heikki Linnakangas)
8395 linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
8396 parameter to control the <acronym>WAL</> receiver's timeout
8401 This allows more rapid detection of connection failure.
8407 Change the <link linkend="wal"><acronym>WAL</></link> record format to
8408 allow splitting the record header across pages (Heikki Linnakangas)
8412 The new format is slightly more compact, and is more efficient to
8422 <title>Queries</title>
8428 Implement <acronym>SQL</>-standard <link
8429 linkend="queries-lateral"><literal>LATERAL</></link> option for
8430 <literal>FROM</>-clause subqueries and function calls (Tom Lane)
8434 This feature allows subqueries and functions in <literal>FROM</> to
8435 reference columns from other tables in the <literal>FROM</>
8436 clause. The <literal>LATERAL</> keyword is optional for functions.
8442 Add support for piping <link
8443 linkend="SQL-COPY"><command>COPY</></link> and <link
8444 linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
8445 data to/from an external program (Etsuro Fujita)
8451 Allow a multirow <link
8452 linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
8453 to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
8462 <title>Object Manipulation</title>
8468 Add support for <link linkend="event-triggers">event triggers</link>
8469 (Dimitri Fontaine, Robert Haas, Álvaro Herrera)
8473 This allows server-side functions written in event-enabled
8474 languages to be called when DDL commands are run.
8480 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
8481 wrappers</link> to support writes (inserts/updates/deletes) on foreign
8482 tables (KaiGai Kohei)
8488 Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
8489 NOT EXISTS</></link> clause (Fabrízio de Royes Mello)
8495 Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
8496 OWNED</></link> also change ownership of shared objects
8497 (Álvaro Herrera)
8503 Make <link linkend="sql-createaggregate"><command>CREATE
8504 AGGREGATE</></link> complain if the given initial value string is not
8505 valid input for the transition datatype (Tom Lane)
8511 Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
8512 TABLE</></link>'s messages about implicit index and sequence creation
8517 These messages now appear at <literal>DEBUG1</> verbosity, so that
8518 they will not be shown by default.
8524 Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
8525 EXISTS</></link> to succeed when a non-existent schema is specified
8526 in the table name (Bruce Momjian)
8530 Previously, it threw an error if the schema did not exist.
8536 Provide clients with <link
8537 linkend="libpq-pqresulterrorfield">constraint violation details</link>
8538 as separate fields (Pavel Stehule)
8542 This allows clients to retrieve table, column, data type, or
8543 constraint name error details. Previously such information had to be
8544 extracted from error strings. Client library support is required to
8545 access these fields.
8552 <title><command>ALTER</></title>
8558 Support <literal>IF NOT EXISTS</> option in <link
8559 linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
8564 This is useful for conditionally adding values to enumerated types.
8570 Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
8571 SET</></link> to establish settings for all users (Peter Eisentraut)
8575 This allows settings to apply to all users in all databases. <link
8576 linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
8577 already allowed addition of settings for all users in a single
8578 database. <filename>postgresql.conf</> has a similar effect.
8584 Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
8585 ... RENAME</></link> (Ali Dar)
8594 <title><link linkend="rules-views"><command>VIEWs</></link></title>
8600 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
8601 views</link> (Kevin Grittner)
8605 Unlike ordinary views, where the base tables are read on every access,
8606 materialized views create physical tables at creation or refresh time.
8607 Access to the materialized view then reads from its physical
8608 table. There is not yet any facility for incrementally refreshing
8609 materialized views or auto-accessing them via base table access.
8615 Make simple views <link
8616 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
8621 Simple views that reference some or all columns from a
8622 single base table are now updatable by default. More
8623 complex views can be made updatable using <link
8624 linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
8625 or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
8631 Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
8632 VIEW</></link> syntax (Peter Eisentraut)
8636 Internally this is translated into <command>CREATE VIEW ... WITH
8643 Improve view/rule printing code to handle cases where referenced
8644 tables are renamed, or columns are renamed, added, or dropped
8649 Table and column renamings can produce cases where, if we merely
8650 substitute the new name into the original text of a rule or view, the
8651 result is ambiguous. This change fixes the rule-dumping code to insert
8652 manufactured table and column aliases when needed to preserve the
8664 <title>Data Types</title>
8670 Increase the maximum size of <link linkend="largeObjects">large
8671 objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
8675 This change includes adding 64-bit-capable large object access
8676 functions, both in the server and in libpq.
8682 Allow text <link linkend="datatype-timezones">timezone
8683 designations</link>, e.g. <quote>America/Chicago</>, in the
8684 <quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
8685 input (Bruce Momjian)
8692 <title><link linkend="datatype-json"><type>JSON</></link></title>
8698 Add <link linkend="functions-json">operators and functions</link>
8699 to extract elements from <type>JSON</> values (Andrew Dunstan)
8705 Allow <type>JSON</> values to be <link
8706 linkend="functions-json">converted into records</link>
8713 Add <link linkend="functions-json">functions</link> to convert
8714 scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
8727 <title>Functions</title>
8734 linkend="array-functions-table"><function>array_remove()</></link>
8736 linkend="array-functions-table"><function>array_replace()</></link>
8737 functions (Marco Nenciarini, Gabriele Bartolini)
8744 linkend="functions-string-other"><function>concat()</></link>
8746 linkend="functions-string-format"><function>format()</></link>
8747 to properly expand <literal>VARIADIC</>-labeled arguments
8755 linkend="functions-string-format"><function>format()</></link>
8756 to provide field width and left/right alignment options (Pavel Stehule)
8763 linkend="functions-formatting-table"><function>to_char()</></link>,
8765 linkend="functions-formatting-table"><function>to_date()</></link>,
8767 linkend="functions-formatting-table"><function>to_timestamp()</></link>
8768 handle negative (BC) century values properly
8773 Previously the behavior was either wrong or inconsistent
8774 with positive/<acronym>AD</> handling, e.g. with the format mask
8775 <quote>IYYY-IW-DY</>.
8782 linkend="functions-formatting-table"><function>to_date()</></link>
8784 linkend="functions-formatting-table"><function>to_timestamp()</></link>
8785 return proper results when mixing <acronym>ISO</> and Gregorian
8786 week/day designations (Bruce Momjian)
8793 linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
8794 to start a new line by default after each <literal>SELECT</> target
8795 list entry and <literal>FROM</> entry (Marko Tiikkaja)
8799 This reduces line length in view printing, for instance in <link
8800 linkend="APP-PGDUMP"><application>pg_dump</></link> output.
8806 Fix <function>map_sql_value_to_xml_value()</> to print values of
8807 domain types the same way their base type would be printed
8812 There are special formatting rules for certain built-in types such as
8813 <type>boolean</>; these rules now also apply to domains over these
8823 <title>Server-Side Languages</title>
8826 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
8832 Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
8833 expression (Asif Rehman)
8837 Previously, in a function returning a composite type,
8838 <literal>RETURN</> could only reference a variable of that type.
8844 Allow PL/pgSQL to access <link
8845 linkend="plpgsql-exception-diagnostics">constraint violation
8846 details</link> as separate fields (Pavel Stehule)
8852 Allow PL/pgSQL to access the number of rows processed by
8853 <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
8857 A <command>COPY</> executed in a PL/pgSQL function now updates the
8858 value retrieved by <link
8859 linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
8860 x = ROW_COUNT</></link>.
8866 Allow unreserved keywords to be used as identifiers everywhere in
8871 In certain places in the PL/pgSQL grammar, keywords had to be quoted
8872 to be used as identifiers, even if they were nominally unreserved.
8881 <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
8887 Add PL/Python result object string handler (Peter Eisentraut)
8891 This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
8897 Make PL/Python convert OID values to a proper Python numeric type
8904 Handle <link linkend="spi"><acronym>SPI</></link> errors raised
8905 explicitly (with PL/Python's <literal>RAISE</>) the same as
8906 internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
8917 <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
8923 Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
8928 At the end of any failed subtransaction, the core SPI code now
8929 releases any SPI tuple tables that were created during that
8930 subtransaction. This avoids the need for SPI-using code to keep track
8931 of such tuple tables and release them manually in error-recovery code.
8932 Failure to do so caused a number of transaction-lifespan memory leakage
8933 issues in PL/pgSQL and perhaps other SPI clients. <link
8934 linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
8935 now protects itself against multiple freeing requests, so any existing
8936 code that did take care to clean up shouldn't be broken by this change.
8942 Allow <acronym>SPI</> functions to access the number of rows processed
8943 by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
8952 <title>Client Applications</title>
8958 Add command-line utility <link
8959 linkend="app-pg-isready"><application>pg_isready</></link> to
8960 check if the server is ready to accept connections (Phil Sorber)
8966 Support multiple <option>--table</> arguments for <link
8967 linkend="APP-PGRESTORE"><application>pg_restore</></link>,
8968 <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
8969 <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
8970 and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
8975 This is similar to the way <link
8976 linkend="APP-PGDUMP"><application>pg_dump</></link>'s
8977 <option>--table</> option works.
8983 Add <option>--dbname</> option to <link
8984 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
8985 linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
8987 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
8988 to allow specifying a connection string (Amit Kapila)
8994 Add libpq function <link
8995 linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
8996 to return connection information (Zoltán
8997 Böszörményi, Magnus Hagander)
9004 <title><link linkend="APP-PSQL"><application>psql</></link></title>
9010 Adjust function cost settings so <application>psql</> tab
9011 completion and pattern searching are more efficient (Tom Lane)
9017 Improve <application>psql</>'s tab completion coverage (Jeff Janes,
9018 Dean Rasheed, Peter Eisentraut, Magnus Hagander)
9024 Allow the <application>psql</> <option>--single-transaction</>
9025 mode to work when reading from standard input (Fabien Coelho,
9030 Previously this option only worked when reading from a file.
9036 Remove <application>psql</> warning when connecting to an older
9037 server (Peter Eisentraut)
9041 A warning is still issued when connecting to a server of a newer major
9042 version than <application>psql</>'s.
9049 <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
9055 Add <application>psql</> command <command>\watch</> to repeatedly
9056 execute a SQL command (Will Leinweber)
9062 Add <application>psql</> command <command>\gset</> to store query
9063 results in <application>psql</> variables (Pavel Stehule)
9069 Add <acronym>SSL</> information to <application>psql</>'s
9070 <command>\conninfo</> command (Alastair Turner)
9076 Add <quote>Security</> column to <application>psql</>'s
9077 <command>\df+</> output (Jon Erdman)
9083 Allow <application>psql</> command <command>\l</> to accept a database
9084 name pattern (Peter Eisentraut)
9090 In <application>psql</>, do not allow <command>\connect</> to
9091 use defaults if there is no active connection (Bruce Momjian)
9095 This might be the case if the server had crashed.
9101 Properly reset state after failure of a SQL command executed with
9102 <application>psql</>'s <literal>\g</> <replaceable>file</>
9107 Previously, the output from subsequent SQL commands would unexpectedly
9108 continue to go to the same file.
9117 <title>Output</title>
9123 Add a <literal>latex-longtable</> output format to
9124 <application>psql</> (Bruce Momjian)
9128 This format allows tables to span multiple pages.
9134 Add a <literal>border=3</> output mode to the <application>psql</>
9135 <literal>latex</> format (Bruce Momjian)
9141 In <application>psql</>'s tuples-only and expanded output modes, no
9142 longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
9148 In <application>psql</>'s unaligned, expanded output mode, no longer
9149 print an empty line for zero rows (Peter Eisentraut)
9160 <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
9166 Add <application>pg_dump</> <option>--jobs</> option to dump tables in
9167 parallel (Joachim Wieland)
9173 Make <application>pg_dump</> output functions in a more predictable
9174 order (Joel Jacobson)
9180 Fix tar files emitted by <application>pg_dump</>
9181 to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
9187 Add <option>--dbname</> option to <application>pg_dump</>, for
9188 consistency with other client commands (Heikki Linnakangas)
9192 The database name could already be supplied last without a flag.
9201 <title><link linkend="APP-INITDB"><application>initdb</></link></title>
9207 Make initdb fsync the newly created data directory (Jeff Davis)
9211 This insures data integrity in event of a system crash shortly after
9212 initdb. This can be disabled by using <option>--nosync</>.
9218 Add initdb <option>--sync-only</> option to sync the data directory to durable
9219 storage (Bruce Momjian)
9223 This is used by <link
9224 linkend="pgupgrade"><application>pg_upgrade</></link>.
9230 Make initdb issue a warning about placing the data directory at the
9231 top of a file system mount point (Bruce Momjian)
9242 <title>Source Code</title>
9248 Add infrastructure to allow plug-in <link
9249 linkend="bgworker">background worker processes</link>
9250 (Álvaro Herrera)
9256 Create a centralized timeout <acronym>API</> (Zoltán
9257 Böszörményi)
9263 Create libpgcommon and move <function>pg_malloc()</> and other
9264 functions there (Álvaro Herrera, Andres Freund)
9268 This allows libpgport to be used solely for portability-related code.
9274 Add support for list links embedded in larger structs (Andres Freund)
9280 Use <literal>SA_RESTART</> for all signals,
9281 including <literal>SIGALRM</> (Tom Lane)
9287 Ensure that the correct text domain is used when
9288 translating <function>errcontext()</> messages
9289 (Heikki Linnakangas)
9295 Standardize naming of client-side memory allocation functions (Tom Lane)
9301 Provide support for <quote>static assertions</> that will fail at
9302 compile time if some compile-time-constant condition is not met
9303 (Andres Freund, Tom Lane)
9309 Support <function>Assert()</> in client-side code (Andrew Dunstan)
9315 Add decoration to inform the C compiler that some <function>ereport()</>
9316 and <function>elog()</> calls do not return (Peter Eisentraut,
9317 Andres Freund, Tom Lane, Heikki Linnakangas)
9323 Allow options to be passed to the regression
9324 test output comparison utility via <link
9325 linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
9332 Add isolation tests for <link
9333 linkend="SQL-CREATEINDEX"><command>CREATE INDEX
9334 CONCURRENTLY</></link> (Abhijit Menon-Sen)
9340 Remove typedefs for <type>int2</>/<type>int4</> as they are better
9341 represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
9347 Fix <link linkend="install">install-strip</link> on Mac <productname>OS
9348 X</> (Peter Eisentraut)
9354 Remove <link linkend="configure">configure</link> flag
9355 <option>--disable-shared</>, as it is no longer supported
9362 Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
9368 Provide Emacs macro to set Perl formatting to
9369 match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
9375 Run tool to check the keyword list whenever the backend grammar is
9382 Change the way <literal>UESCAPE</> is lexed, to significantly reduce
9383 the size of the lexer tables (Heikki Linnakangas)
9389 Centralize <application>flex</> and <application>bison</>
9390 <application>make</> rules (Peter Eisentraut)
9394 This is useful for <application>pgxs</> authors.
9400 Change many internal backend functions to return object <type>OID</>s
9401 rather than void (Dimitri Fontaine)
9405 This is useful for event triggers.
9411 Invent pre-commit/pre-prepare/pre-subcommit events for transaction
9412 callbacks (Tom Lane)
9416 Loadable modules that use transaction callbacks might need modification
9417 to handle these new event types.
9424 linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
9425 to produce a machine-readable description of a database object
9426 (Álvaro Herrera)
9432 Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
9438 Implement a generic binary heap and use it for Merge-Append
9439 operations (Abhijit Menon-Sen)
9445 Provide a tool to help detect timezone abbreviation changes when
9446 updating the <filename>src/timezone/data</> files
9453 Add <application>pkg-config</> support for <application>libpq</>
9454 and <application>ecpg</> libraries (Peter Eisentraut)
9460 Remove <filename>src/tool/backend</>, now that the content is on
9461 the <productname>PostgreSQL</> wiki (Bruce Momjian)
9467 Split out <link linkend="wal"><acronym>WAL</></link> reading as
9468 an independent facility (Heikki Linnakangas, Andres Freund)
9474 Use a 64-bit integer to represent <link
9475 linkend="wal"><acronym>WAL</></link> positions
9476 (<structname>XLogRecPtr</>) instead of two 32-bit integers
9477 (Heikki Linnakangas)
9481 Generally, tools that need to read the <acronym>WAL</> format
9482 will need to be adjusted.
9488 Allow <link linkend="plpython">PL/Python</link> to support
9489 platform-specific include directories (Peter Eisentraut)
9495 Allow <link linkend="plpython">PL/Python</link> on <productname>OS
9496 X</> to build against custom versions of <application>Python</>
9506 <title>Additional Modules</title>
9512 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
9513 data wrapper</link> contrib module to allow access to
9514 other <productname>Postgres</> servers (Shigeru Hanada)
9518 This foreign data wrapper supports writes.
9524 Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
9525 contrib program (Andres Freund)
9531 Add support for indexing of regular-expression searches in
9532 <link linkend="pgtrgm"><productname>pg_trgm</></link>
9533 (Alexander Korotkov)
9539 Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
9540 handling of multibyte characters (Tom Lane)
9544 On a platform that does not have the wcstombs() or towlower() library
9545 functions, this could result in an incompatible change in the contents
9546 of <productname>pg_trgm</> indexes for non-ASCII data. In such cases,
9547 <command>REINDEX</> those indexes to ensure correct search results.
9553 Add a <link linkend="pgstattuple">pgstattuple</link> function to report
9554 the size of the pending-insertions list of a <acronym>GIN</> index
9561 Make <link linkend="oid2name"><application>oid2name</></link>,
9562 <link linkend="pgbench"><application>pgbench</></link>, and
9563 <link linkend="vacuumlo"><application>vacuumlo</></link> set
9564 <varname>fallback_application_name</> (Amit Kapila)
9570 Improve output of <link
9571 linkend="pgtesttiming"><application>pg_test_timing</></link>
9578 Improve output of <link
9579 linkend="pgtestfsync"><application>pg_test_fsync</></link>
9586 Create a dedicated foreign data wrapper, with its own option validator
9587 function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
9591 When using this FDW to define the target of a <application>dblink</>
9592 connection, instead of using a hard-wired list of connection options,
9593 the underlying <application>libpq</> library is consulted to see what
9594 connection options it supports.
9601 <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
9607 Allow <application>pg_upgrade</> to do dumps and restores in
9608 parallel (Bruce Momjian, Andrew Dunstan)
9612 This allows parallel schema dump/restore of databases, as well as
9613 parallel copy/link of data files per tablespace. Use the
9614 <option>--jobs</> option to specify the level of parallelism.
9620 Make <application>pg_upgrade</> create Unix-domain sockets in
9621 the current directory (Bruce Momjian, Tom Lane)
9625 This reduces the possibility that someone will accidentally connect
9632 Make <application>pg_upgrade</> <option>--check</> mode properly
9633 detect the location of non-default socket directories (Bruce
9640 Improve performance of <application>pg_upgrade</> for databases
9641 with many tables (Bruce Momjian)
9647 Improve <application>pg_upgrade</>'s logs by showing
9648 executed commands (Álvaro Herrera)
9654 Improve <application>pg_upgrade</>'s status display during
9655 copy/link (Bruce Momjian)
9664 <title><link linkend="pgbench"><application>pgbench</></link></title>
9670 Add <option>--foreign-keys</> option to <application>pgbench</>
9675 This adds foreign key constraints to the standard tables created by
9676 <application>pgbench</>, for use in foreign key performance testing.
9682 Allow <application>pgbench</> to aggregate performance statistics
9683 and produce output every <option>--aggregate-interval</>
9684 seconds (Tomas Vondra)
9690 Add <application>pgbench</> <option>--sampling-rate</> option
9691 to control the percentage of transactions logged (Tomas Vondra)
9697 Reduce and improve the status message output of
9698 <application>pgbench</>'s initialization mode (Robert Haas,
9705 Add <application>pgbench</> <option>-q</> mode to print one output
9706 line every five seconds (Tomas Vondra)
9712 Output <application>pgbench</> elapsed and estimated remaining
9713 time during initialization (Tomas Vondra)
9719 Allow <application>pgbench</> to use much larger scale factors,
9720 by changing relevant columns from <type>integer</> to <type>bigint</>
9721 when the requested scale factor exceeds 20000
9733 <title>Documentation</title>
9739 Allow <productname>EPUB</>-format documentation to be created
9746 Update <productname>FreeBSD</> kernel configuration documentation
9753 Improve <link linkend="tutorial-window"><literal>WINDOW</>
9754 function</link> documentation (Bruce Momjian, Florian Pflug)
9760 Add <link linkend="docguide-toolsets">instructions</link> for setting
9761 up the documentation tool chain on Mac <productname>OS X</>
9769 linkend="guc-commit-delay"><varname>commit_delay</></link>
9770 documentation (Peter Geoghegan)