1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-3-10">
5 <title>Release 9.3.10</title>
8 <title>Release Date</title>
9 <simpara>2015-10-08</simpara>
13 This release contains a variety of fixes from 9.3.9.
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.10</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 Guard against stack overflows in <type>json</> parsing
44 If an application constructs PostgreSQL <type>json</>
45 or <type>jsonb</> values from arbitrary user input, the application's
46 users can reliably crash the PostgreSQL server, causing momentary
47 denial of service. (CVE-2015-5289)
53 Fix <filename>contrib/pgcrypto</> to detect and report
54 too-short <function>crypt()</> salts (Josh Kupershmidt)
58 Certain invalid salt arguments crashed the server or disclosed a few
59 bytes of server memory. We have not ruled out the viability of
60 attacks that arrange for presence of confidential information in the
61 disclosed bytes, but they seem unlikely. (CVE-2015-5288)
67 Fix subtransaction cleanup after a portal (cursor) belonging to an
68 outer subtransaction fails (Tom Lane, Michael Paquier)
72 A function executed in an outer-subtransaction cursor could cause an
73 assertion failure or crash by referencing a relation created within an
80 Ensure all relations referred to by an updatable view are properly
81 locked during an update statement (Dean Rasheed)
87 Fix insertion of relations into the relation cache <quote>init file</>
92 An oversight in a patch in the most recent minor releases
93 caused <structname>pg_trigger_tgrelid_tgname_index</> to be omitted
94 from the init file. Subsequent sessions detected this, then deemed the
95 init file to be broken and silently ignored it, resulting in a
96 significant degradation in session startup time. In addition to fixing
97 the bug, install some guards so that any similar future mistake will be
104 Avoid O(N^2) behavior when inserting many tuples into a SPI query
111 Improve <command>LISTEN</> startup time when there are many unread
112 notifications (Matt Newell)
118 Fix performance problem when a session alters large numbers of foreign
119 key constraints (Jan Wieck, Tom Lane)
123 This was seen primarily when restoring <application>pg_dump</> output
124 for databases with many thousands of tables.
130 Disable SSL renegotiation by default (Michael Paquier, Andres Freund)
134 While use of SSL renegotiation is a good idea in theory, we have seen
135 too many bugs in practice, both in the underlying OpenSSL library and
136 in our usage of it. Renegotiation will be removed entirely in 9.5 and
137 later. In the older branches, just change the default value
138 of <varname>ssl_renegotiation_limit</> to zero (disabled).
144 Lower the minimum values of the <literal>*_freeze_max_age</> parameters
149 This is mainly to make tests of related behavior less time-consuming,
150 but it may also be of value for installations with limited disk space.
156 Limit the maximum value of <varname>wal_buffers</> to 2GB to avoid
157 server crashes (Josh Berkus)
163 Avoid logging complaints when a parameter that can only be set at
164 server start appears multiple times in <filename>postgresql.conf</>,
165 and fix counting of line numbers after an <literal>include_dir</>
172 Fix rare internal overflow in multiplication of <type>numeric</> values
179 Guard against hard-to-reach stack overflows involving record types,
180 range types, <type>json</>, <type>jsonb</>, <type>tsquery</>,
181 <type>ltxtquery</> and <type>query_int</> (Noah Misch)
187 Fix handling of <literal>DOW</> and <literal>DOY</> in datetime input
192 These tokens aren't meant to be used in datetime values, but previously
193 they resulted in opaque internal error messages rather
194 than <quote>invalid input syntax</>.
200 Add more query-cancel checks to regular expression matching (Tom Lane)
206 Add recursion depth protections to regular expression, <literal>SIMILAR
207 TO</>, and <literal>LIKE</> matching (Tom Lane)
211 Suitable search patterns and a low stack depth limit could lead to
212 stack-overrun crashes.
218 Fix potential infinite loop in regular expression execution (Tom Lane)
222 A search pattern that can apparently match a zero-length string, but
223 actually doesn't match because of a back reference, could lead to an
230 In regular expression execution, correctly record match data for
231 capturing parentheses within a quantifier even when the match is
232 zero-length (Tom Lane)
238 Fix low-memory failures in regular expression compilation
239 (Andreas Seltenreich)
245 Fix low-probability memory leak during regular expression execution
252 Fix rare low-memory failure in lock cleanup during transaction abort
259 Fix <quote>unexpected out-of-memory situation during sort</> errors
260 when using tuplestores with small <varname>work_mem</> settings (Tom
267 Fix very-low-probability stack overrun in <function>qsort</> (Tom Lane)
273 Fix <quote>invalid memory alloc request size</> failure in hash joins
274 with large <varname>work_mem</> settings (Tomas Vondra, Tom Lane)
280 Fix assorted planner bugs (Tom Lane)
284 These mistakes could lead to incorrect query plans that would give wrong
285 answers, or to assertion failures in assert-enabled builds, or to odd
286 planner errors such as <quote>could not devise a query plan for the
287 given query</>, <quote>could not find pathkey item to
288 sort</>, <quote>plan should not reference subplan's variable</>,
289 or <quote>failed to assign all NestLoopParams to plan nodes</>.
290 Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz
291 testing that exposed these problems.
297 Improve planner's performance for <command>UPDATE</>/<command>DELETE</>
298 on large inheritance sets (Tom Lane, Dean Rasheed)
304 Ensure standby promotion trigger files are removed at postmaster
305 startup (Michael Paquier, Fujii Masao)
309 This prevents unwanted promotion from occurring if these files appear
310 in a database backup that is used to initialize a new standby server.
316 During postmaster shutdown, ensure that per-socket lock files are
317 removed and listen sockets are closed before we remove
318 the <filename>postmaster.pid</> file (Tom Lane)
322 This avoids race-condition failures if an external script attempts to
323 start a new postmaster as soon as <literal>pg_ctl stop</> returns.
329 Fix postmaster's handling of a startup-process crash during crash
334 If, during a crash recovery cycle, the startup process crashes without
335 having restored database consistency, we'd try to launch a new startup
336 process, which typically would just crash again, leading to an infinite
343 Make emergency autovacuuming for multixact wraparound more robust
350 Do not print a <literal>WARNING</> when an autovacuum worker is already
351 gone when we attempt to signal it, and reduce log verbosity for such
358 Prevent autovacuum launcher from sleeping unduly long if the server
359 clock is moved backwards a large amount (Álvaro Herrera)
365 Ensure that cleanup of a GIN index's pending-insertions list is
366 interruptable by cancel requests (Jeff Janes)
372 Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas)
376 Such a page might be left behind after a crash.
382 Fix handling of all-zeroes pages in SP-GiST indexes (Heikki
387 <command>VACUUM</> attempted to recycle such pages, but did so in a
388 way that wasn't crash-safe.
394 Fix off-by-one error that led to otherwise-harmless warnings
395 about <quote>apparent wraparound</> in subtrans/multixact truncation
402 Fix misreporting of <command>CONTINUE</> and <command>MOVE</> statement
403 types in <application>PL/pgSQL</>'s error context messages
404 (Pavel Stehule, Tom Lane)
410 Fix <application>PL/Perl</> to handle non-<acronym>ASCII</> error
411 message texts correctly (Alex Hunsaker)
417 Fix <application>PL/Python</> crash when returning the string
418 representation of a <type>record</> result (Tom Lane)
424 Fix some places in <application>PL/Tcl</> that neglected to check for
425 failure of <function>malloc()</> calls (Michael Paquier, Álvaro
432 In <filename>contrib/isn</>, fix output of ISBN-13 numbers that begin
433 with 979 (Fabien Coelho)
437 EANs beginning with 979 (but not 9790) are considered ISBNs, but they
438 must be printed in the new 13-digit format, not the 10-digit format.
444 Improve <filename>contrib/postgres_fdw</>'s handling of
445 collation-related decisions (Tom Lane)
449 The main user-visible effect is expected to be that comparisons
450 involving <type>varchar</> columns will be sent to the remote server
451 for execution in more cases than before.
457 Improve <application>libpq</>'s handling of out-of-memory conditions
458 (Michael Paquier, Heikki Linnakangas)
464 Fix memory leaks and missing out-of-memory checks
465 in <application>ecpg</> (Michael Paquier)
471 Fix <application>psql</>'s code for locale-aware formatting of numeric
476 The formatting code invoked by <literal>\pset numericlocale on</>
477 did the wrong thing for some uncommon cases such as numbers with an
478 exponent but no decimal point. It could also mangle already-localized
479 output from the <type>money</> data type.
485 Prevent crash in <application>psql</>'s <command>\c</> command when
486 there is no current connection (Noah Misch)
492 Make <application>pg_dump</> handle inherited <literal>NOT VALID</>
493 check constraints correctly (Tom Lane)
499 Fix selection of default <application>zlib</> compression level
500 in <application>pg_dump</>'s directory output format (Andrew Dunstan)
506 Ensure that temporary files created during a <application>pg_dump</>
507 run with <acronym>tar</>-format output are not world-readable (Michael
514 Fix <application>pg_dump</> and <application>pg_upgrade</> to support
515 cases where the <literal>postgres</> or <literal>template1</> database
516 is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)
522 Fix <application>pg_dump</> to handle object privileges sanely when
523 dumping from a server too old to have a particular privilege type
528 When dumping data types from pre-9.2 servers, and when dumping
529 functions or procedural languages from pre-7.3
530 servers, <application>pg_dump</> would
531 produce <command>GRANT</>/<command>REVOKE</> commands that revoked the
532 owner's grantable privileges and instead granted all privileges
533 to <literal>PUBLIC</>. Since the privileges involved are
534 just <literal>USAGE</> and <literal>EXECUTE</>, this isn't a security
535 problem, but it's certainly a surprising representation of the older
536 systems' behavior. Fix it to leave the default privilege state alone
543 Fix <application>pg_dump</> to dump shell types (Tom Lane)
547 Shell types (that is, not-yet-fully-defined types) aren't useful for
548 much, but nonetheless <application>pg_dump</> should dump them.
554 Fix assorted minor memory leaks in <application>pg_dump</> and other
555 client-side programs (Michael Paquier)
561 Fix spinlock assembly code for PPC hardware to be compatible
562 with <acronym>AIX</>'s native assembler (Tom Lane)
566 Building with <application>gcc</> didn't work if <application>gcc</>
567 had been configured to use the native assembler, which is becoming more
574 On <acronym>AIX</>, test the <literal>-qlonglong</> compiler option
575 rather than just assuming it's safe to use (Noah Misch)
581 On <acronym>AIX</>, use <literal>-Wl,-brtllib</> link option to allow
582 symbols to be resolved at runtime (Noah Misch)
586 Perl relies on this ability in 5.8.0 and later.
592 Avoid use of inline functions when compiling with
593 32-bit <application>xlc</>, due to compiler bugs (Noah Misch)
599 Use <filename>librt</> for <function>sched_yield()</> when necessary,
600 which it is on some Solaris versions (Oskari Saarenmaa)
606 Fix Windows <filename>install.bat</> script to handle target directory
607 names that contain spaces (Heikki Linnakangas)
613 Make the numeric form of the <productname>PostgreSQL</> version number
614 (e.g., <literal>90405</>) readily available to extension Makefiles,
615 as a variable named <varname>VERSION_NUM</> (Michael Paquier)
621 Update time zone data files to <application>tzdata</> release 2015g for
622 DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk
623 Island, North Korea, Turkey, and Uruguay. There is a new zone name
624 <literal>America/Fort_Nelson</> for the Canadian Northern Rockies.
633 <sect1 id="release-9-3-9">
634 <title>Release 9.3.9</title>
637 <title>Release Date</title>
638 <simpara>2015-06-12</simpara>
642 This release contains a small number of fixes from 9.3.8.
643 For information about new features in the 9.3 major release, see
644 <xref linkend="release-9-3">.
648 <title>Migration to Version 9.3.9</title>
651 A dump/restore is not required for those running 9.3.X.
655 However, if you are upgrading an installation that was previously
656 upgraded using a <application>pg_upgrade</> version between 9.3.0 and
657 9.3.4 inclusive, see the first changelog entry below.
661 Also, if you are upgrading from a version earlier than 9.3.7,
662 see <xref linkend="release-9-3-7">.
668 <title>Changes</title>
674 Fix possible failure to recover from an inconsistent database state
679 Recent <productname>PostgreSQL</> releases introduced mechanisms to
680 protect against multixact wraparound, but some of that code did not
681 account for the possibility that it would need to run during crash
682 recovery, when the database may not be in a consistent state. This
683 could result in failure to restart after a crash, or failure to start
684 up a secondary server. The lingering effects of a previously-fixed
685 bug in <application>pg_upgrade</> could also cause such a failure, in
686 installations that had used <application>pg_upgrade</> versions
687 between 9.3.0 and 9.3.4.
691 The <application>pg_upgrade</> bug in question was that it would
692 set <literal>oldestMultiXid</> to 1 in <filename>pg_control</> even
693 if the true value should be higher. With the fixes introduced in
694 this release, such a situation will result in immediate emergency
695 autovacuuming until a correct <literal>oldestMultiXid</> value can be
696 determined. If that would pose a hardship, users can avoid it by
697 doing manual vacuuming <emphasis>before</> upgrading to this release.
703 Check whether <application>pg_controldata</> reports <quote>Latest
704 checkpoint's oldestMultiXid</> to be 1. If not, there's nothing
710 Look in <filename>PGDATA/pg_multixact/offsets</> to see if there's a
711 file named <filename>0000</>. If there is, there's nothing to do.
716 Otherwise, for each table that has
717 <structname>pg_class</>.<structfield>relminmxid</> equal to 1,
718 <command>VACUUM</> that table with
719 both <xref linkend="guc-vacuum-multixact-freeze-min-age">
720 and <xref linkend="guc-vacuum-multixact-freeze-table-age"> set to
721 zero. (You can use the vacuum cost delay parameters described
722 in <xref linkend="runtime-config-resource-vacuum-cost"> to reduce
723 the performance consequences for concurrent sessions.) You must
724 use <productname>PostgreSQL</> 9.3.5 or later to perform this step.
733 Fix rare failure to invalidate relation cache init file (Tom Lane)
737 With just the wrong timing of concurrent activity, a <command>VACUUM
738 FULL</> on a system catalog might fail to update the <quote>init file</>
739 that's used to avoid cache-loading work for new sessions. This would
740 result in later sessions being unable to access that catalog at all.
741 This is a very ancient bug, but it's so hard to trigger that no
742 reproducible case had been seen until recently.
748 Avoid deadlock between incoming sessions and <literal>CREATE/DROP
749 DATABASE</> (Tom Lane)
753 A new session starting in a database that is the target of
754 a <command>DROP DATABASE</> command, or is the template for
755 a <command>CREATE DATABASE</> command, could cause the command to wait
756 for five seconds and then fail, even if the new session would have
763 Improve planner's cost estimates for semi-joins and anti-joins with
764 inner indexscans (Tom Lane, Tomas Vondra)
768 This type of plan is quite cheap when all the join clauses are used
769 as index scan conditions, even if the inner scan would nominally
770 fetch many rows, because the executor will stop after obtaining one
771 row. The planner only partially accounted for that effect, and would
772 therefore overestimate the cost, leading it to possibly choose some
773 other much less efficient plan type.
782 <sect1 id="release-9-3-8">
783 <title>Release 9.3.8</title>
786 <title>Release Date</title>
787 <simpara>2015-06-04</simpara>
791 This release contains a small number of fixes from 9.3.7.
792 For information about new features in the 9.3 major release, see
793 <xref linkend="release-9-3">.
797 <title>Migration to Version 9.3.8</title>
800 A dump/restore is not required for those running 9.3.X.
804 However, if you are upgrading from a version earlier than 9.3.7,
805 see <xref linkend="release-9-3-7">.
811 <title>Changes</title>
817 Avoid failures while <function>fsync</>'ing data directory during
818 crash restart (Abhijit Menon-Sen, Tom Lane)
822 In the previous minor releases we added a patch to <function>fsync</>
823 everything in the data directory after a crash. Unfortunately its
824 response to any error condition was to fail, thereby preventing the
825 server from starting up, even when the problem was quite harmless.
826 An example is that an unwritable file in the data directory would
827 prevent restart on some platforms; but it is common to make SSL
828 certificate files unwritable by the server. Revise this behavior so
829 that permissions failures are ignored altogether, and other types of
830 failures are logged but do not prevent continuing.
834 Also apply the same rules in <literal>initdb --sync-only</>.
835 This case is less critical but it should act similarly.
841 Fix <function>pg_get_functiondef()</> to show
842 functions' <literal>LEAKPROOF</> property, if set (Jeevan Chalke)
848 Remove <application>configure</>'s check prohibiting linking to a
849 threaded <application>libpython</>
850 on <systemitem class="osname">OpenBSD</> (Tom Lane)
854 The failure this restriction was meant to prevent seems to not be a
855 problem anymore on current <systemitem class="osname">OpenBSD</>
861 Author: Tom Lane <tgl@sss.pgh.pa.us>
862 Branch: REL9_3_STABLE [c6b7b9a9c] 2015-05-21 20:41:55 -0400
863 Branch: REL9_2_STABLE [b78fbfe65] 2015-05-21 20:41:55 -0400
864 Branch: REL9_1_STABLE [2c2c5f0e0] 2015-05-21 20:41:55 -0400
865 Branch: REL9_0_STABLE [4dddf8552] 2015-05-21 20:41:55 -0400
870 Allow <application>libpq</> to use TLS protocol versions beyond v1
875 For a long time, <application>libpq</> was coded so that the only SSL
876 protocol it would allow was TLS v1. Now that newer TLS versions are
877 becoming popular, allow it to negotiate the highest commonly-supported
878 TLS version with the server. (<productname>PostgreSQL</> servers were
879 already capable of such negotiation, so no change is needed on the
880 server side.) This is a back-patch of a change already released in
890 <sect1 id="release-9-3-7">
891 <title>Release 9.3.7</title>
894 <title>Release Date</title>
895 <simpara>2015-05-22</simpara>
899 This release contains a variety of fixes from 9.3.6.
900 For information about new features in the 9.3 major release, see
901 <xref linkend="release-9-3">.
905 <title>Migration to Version 9.3.7</title>
908 A dump/restore is not required for those running 9.3.X.
912 However, if you use <filename>contrib/citext</>'s
913 <function>regexp_matches()</> functions, see the changelog entry below
918 Also, if you are upgrading from a version earlier than 9.3.6,
919 see <xref linkend="release-9-3-6">.
925 <title>Changes</title>
931 Avoid possible crash when client disconnects just before the
932 authentication timeout expires (Benkocs Norbert Attila)
936 If the timeout interrupt fired partway through the session shutdown
937 sequence, SSL-related state would be freed twice, typically causing a
938 crash and hence denial of service to other sessions. Experimentation
939 shows that an unauthenticated remote attacker could trigger the bug
940 somewhat consistently, hence treat as security issue.
947 Improve detection of system-call failures (Noah Misch)
951 Our replacement implementation of <function>snprintf()</> failed to
952 check for errors reported by the underlying system library calls;
953 the main case that might be missed is out-of-memory situations.
954 In the worst case this might lead to information exposure, due to our
955 code assuming that a buffer had been overwritten when it hadn't been.
956 Also, there were a few places in which security-relevant calls of other
957 system library functions did not check for failure.
961 It remains possible that some calls of the <function>*printf()</>
962 family of functions are vulnerable to information disclosure if an
963 out-of-memory error occurs at just the wrong time. We judge the risk
964 to not be large, but will continue analysis in this area.
971 In <filename>contrib/pgcrypto</>, uniformly report decryption failures
972 as <quote>Wrong key or corrupt data</> (Noah Misch)
976 Previously, some cases of decryption with an incorrect key could report
977 other error message texts. It has been shown that such variance in
978 error reports can aid attackers in recovering keys from other systems.
979 While it's unknown whether <filename>pgcrypto</>'s specific behaviors
980 are likewise exploitable, it seems better to avoid the risk by using a
981 one-size-fits-all message.
988 Protect against wraparound of multixact member IDs
989 (Álvaro Herrera, Robert Haas, Thomas Munro)
993 Under certain usage patterns, the existing defenses against this might
994 be insufficient, allowing <filename>pg_multixact/members</> files to be
995 removed too early, resulting in data loss.
996 The fix for this includes modifying the server to fail transactions
997 that would result in overwriting old multixact member ID data, and
998 improving autovacuum to ensure it will act proactively to prevent
999 multixact member ID wraparound, as it does for transaction ID
1006 Fix incorrect declaration of <filename>contrib/citext</>'s
1007 <function>regexp_matches()</> functions (Tom Lane)
1011 These functions should return <type>setof text[]</>, like the core
1012 functions they are wrappers for; but they were incorrectly declared as
1013 returning just <type>text[]</>. This mistake had two results: first,
1014 if there was no match you got a scalar null result, whereas what you
1015 should get is an empty set (zero rows). Second, the <literal>g</> flag
1016 was effectively ignored, since you would get only one result array even
1017 if there were multiple matches.
1021 While the latter behavior is clearly a bug, there might be applications
1022 depending on the former behavior; therefore the function declarations
1023 will not be changed by default until <productname>PostgreSQL</> 9.5.
1024 In pre-9.5 branches, the old behavior exists in version 1.0 of
1025 the <literal>citext</> extension, while we have provided corrected
1026 declarations in version 1.1 (which is <emphasis>not</> installed by
1027 default). To adopt the fix in pre-9.5 branches, execute
1028 <literal>ALTER EXTENSION citext UPDATE TO '1.1'</> in each database in
1029 which <literal>citext</> is installed. (You can also <quote>update</>
1030 back to 1.0 if you need to undo that.) Be aware that either update
1031 direction will require dropping and recreating any views or rules that
1032 use <filename>citext</>'s <function>regexp_matches()</> functions.
1038 Fix incorrect checking of deferred exclusion constraints after a HOT
1043 If a new row that potentially violates a deferred exclusion constraint
1044 is HOT-updated (that is, no indexed columns change and the row can be
1045 stored back onto the same table page) later in the same transaction,
1046 the exclusion constraint would be reported as violated when the check
1047 finally occurred, even if the row(s) the new row originally conflicted
1048 with had been deleted.
1054 Fix planning of star-schema-style queries (Tom Lane)
1058 Sometimes, efficient scanning of a large table requires that index
1059 parameters be provided from more than one other table (commonly,
1060 dimension tables whose keys are needed to index a large fact table).
1061 The planner should be able to find such plans, but an overly
1062 restrictive search heuristic prevented it.
1068 Prevent improper reordering of antijoins (NOT EXISTS joins) versus
1069 other outer joins (Tom Lane)
1073 This oversight in the planner has been observed to cause <quote>could
1074 not find RelOptInfo for given relids</> errors, but it seems possible
1075 that sometimes an incorrect query plan might get past that consistency
1076 check and result in silently-wrong query output.
1082 Fix incorrect matching of subexpressions in outer-join plan nodes
1087 Previously, if textually identical non-strict subexpressions were used
1088 both above and below an outer join, the planner might try to re-use
1089 the value computed below the join, which would be incorrect because the
1090 executor would force the value to NULL in case of an unmatched outer row.
1096 Fix GEQO planner to cope with failure of its join order heuristic
1101 This oversight has been seen to lead to <quote>failed to join all
1102 relations together</> errors in queries involving <literal>LATERAL</>,
1103 and that might happen in other cases as well.
1109 Fix possible deadlock at startup
1110 when <literal>max_prepared_transactions</> is too small
1111 (Heikki Linnakangas)
1117 Don't archive useless preallocated WAL files after a timeline switch
1118 (Heikki Linnakangas)
1124 Recursively <function>fsync()</> the data directory after a crash
1125 (Abhijit Menon-Sen, Robert Haas)
1129 This ensures consistency if another crash occurs shortly later. (The
1130 second crash would have to be a system-level crash, not just a database
1131 crash, for there to be a problem.)
1137 Fix autovacuum launcher's possible failure to shut down, if an error
1138 occurs after it receives SIGTERM (Álvaro Herrera)
1144 Cope with unexpected signals in <function>LockBufferForCleanup()</>
1149 This oversight could result in spurious errors about <quote>multiple
1150 backends attempting to wait for pincount 1</>.
1156 Fix crash when doing <literal>COPY IN</> to a table with check
1157 constraints that contain whole-row references (Tom Lane)
1161 The known failure case only crashes in 9.4 and up, but there is very
1162 similar code in 9.3 and 9.2, so back-patch those branches as well.
1168 Avoid waiting for WAL flush or synchronous replication during commit of
1169 a transaction that was read-only so far as the user is concerned
1174 Previously, a delay could occur at commit in transactions that had
1175 written WAL due to HOT page pruning, leading to undesirable effects
1176 such as sessions getting stuck at startup if all synchronous replicas
1177 are down. Sessions have also been observed to get stuck in catchup
1178 interrupt processing when using synchronous replication; this will fix
1179 that problem as well.
1185 Fix crash when manipulating hash indexes on temporary tables
1186 (Heikki Linnakangas)
1192 Fix possible failure during hash index bucket split, if other processes
1193 are modifying the index concurrently (Tom Lane)
1199 Check for interrupts while analyzing index expressions (Jeff Janes)
1203 <command>ANALYZE</> executes index expressions many times; if there are
1204 slow functions in such an expression, it's desirable to be able to
1205 cancel the <command>ANALYZE</> before that loop finishes.
1211 Ensure <structfield>tableoid</> of a foreign table is reported
1212 correctly when a <literal>READ COMMITTED</> recheck occurs after
1213 locking rows in <command>SELECT FOR UPDATE</>, <command>UPDATE</>,
1214 or <command>DELETE</> (Etsuro Fujita)
1220 Add the name of the target server to object description strings for
1221 foreign-server user mappings (Álvaro Herrera)
1227 Include the schema name in object identity strings for conversions
1228 (Álvaro Herrera)
1234 Recommend setting <literal>include_realm</> to 1 when using
1235 Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
1239 Without this, identically-named users from different realms cannot be
1240 distinguished. For the moment this is only a documentation change, but
1241 it will become the default setting in <productname>PostgreSQL</> 9.5.
1247 Remove code for matching IPv4 <filename>pg_hba.conf</> entries to
1248 IPv4-in-IPv6 addresses (Tom Lane)
1252 This hack was added in 2003 in response to a report that some Linux
1253 kernels of the time would report IPv4 connections as having
1254 IPv4-in-IPv6 addresses. However, the logic was accidentally broken in
1255 9.0. The lack of any field complaints since then shows that it's not
1256 needed anymore. Now we have reports that the broken code causes
1257 crashes on some systems, so let's just remove it rather than fix it.
1258 (Had we chosen to fix it, that would make for a subtle and potentially
1259 security-sensitive change in the effective meaning of
1260 IPv4 <filename>pg_hba.conf</> entries, which does not seem like a good
1261 thing to do in minor releases.)
1267 Report WAL flush, not insert, position in <literal>IDENTIFY_SYSTEM</>
1268 replication command (Heikki Linnakangas)
1272 This avoids a possible startup failure
1273 in <application>pg_receivexlog</>.
1279 While shutting down service on Windows, periodically send status
1280 updates to the Service Control Manager to prevent it from killing the
1281 service too soon; and ensure that <application>pg_ctl</> will wait for
1282 shutdown (Krystian Bigaj)
1288 Reduce risk of network deadlock when using <application>libpq</>'s
1289 non-blocking mode (Heikki Linnakangas)
1293 When sending large volumes of data, it's important to drain the input
1294 buffer every so often, in case the server has sent enough response data
1295 to cause it to block on output. (A typical scenario is that the server
1296 is sending a stream of NOTICE messages during <literal>COPY FROM
1297 STDIN</>.) This worked properly in the normal blocking mode, but not
1298 so much in non-blocking mode. We've modified <application>libpq</>
1299 to opportunistically drain input when it can, but a full defense
1300 against this problem requires application cooperation: the application
1301 should watch for socket read-ready as well as write-ready conditions,
1302 and be sure to call <function>PQconsumeInput()</> upon read-ready.
1308 In <application>libpq</>, fix misparsing of empty values in URI
1309 connection strings (Thomas Fanghaenel)
1315 Fix array handling in <application>ecpg</> (Michael Meskes)
1321 Fix <application>psql</> to sanely handle URIs and conninfo strings as
1322 the first parameter to <command>\connect</>
1323 (David Fetter, Andrew Dunstan, Álvaro Herrera)
1327 This syntax has been accepted (but undocumented) for a long time, but
1328 previously some parameters might be taken from the old connection
1329 instead of the given string, which was agreed to be undesirable.
1335 Suppress incorrect complaints from <application>psql</> on some
1336 platforms that it failed to write <filename>~/.psql_history</> at exit
1341 This misbehavior was caused by a workaround for a bug in very old
1342 (pre-2006) versions of <application>libedit</>. We fixed it by
1343 removing the workaround, which will cause a similar failure to appear
1344 for anyone still using such versions of <application>libedit</>.
1345 Recommendation: upgrade that library, or use <application>libreadline</>.
1351 Fix <application>pg_dump</>'s rule for deciding which casts are
1352 system-provided casts that should not be dumped (Tom Lane)
1358 In <application>pg_dump</>, fix failure to honor <literal>-Z</>
1359 compression level option together with <literal>-Fd</>
1366 Make <application>pg_dump</> consider foreign key relationships
1367 between extension configuration tables while choosing dump order
1368 (Gilles Darold, Michael Paquier, Stephen Frost)
1372 This oversight could result in producing dumps that fail to reload
1373 because foreign key constraints are transiently violated.
1379 Avoid possible <application>pg_dump</> failure when concurrent sessions
1380 are creating and dropping temporary functions (Tom Lane)
1386 Fix dumping of views that are just <literal>VALUES(...)</> but have
1387 column aliases (Tom Lane)
1393 In <application>pg_upgrade</>, force timeline 1 in the new cluster
1398 This change prevents upgrade failures caused by bogus complaints about
1399 missing WAL history files.
1405 In <application>pg_upgrade</>, check for improperly non-connectable
1406 databases before proceeding
1413 In <application>pg_upgrade</>, quote directory paths
1414 properly in the generated <literal>delete_old_cluster</> script
1421 In <application>pg_upgrade</>, preserve database-level freezing info
1427 This oversight could cause missing-clog-file errors for tables within
1428 the <literal>postgres</> and <literal>template1</> databases.
1434 Run <application>pg_upgrade</> and <application>pg_resetxlog</> with
1435 restricted privileges on Windows, so that they don't fail when run by
1436 an administrator (Muhammad Asif Naeem)
1442 Improve handling of <function>readdir()</> failures when scanning
1443 directories in <application>initdb</> and <application>pg_basebackup</>
1450 Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane)
1456 Fix compile failure on Sparc V8 machines (Rob Rowan)
1462 Silence some build warnings on OS X (Tom Lane)
1468 Update time zone data files to <application>tzdata</> release 2015d
1469 for DST law changes in Egypt, Mongolia, and Palestine, plus historical
1470 changes in Canada and Chile. Also adopt revised zone abbreviations for
1471 the America/Adak zone (HST/HDT not HAST/HADT).
1480 <sect1 id="release-9-3-6">
1481 <title>Release 9.3.6</title>
1484 <title>Release Date</title>
1485 <simpara>2015-02-05</simpara>
1489 This release contains a variety of fixes from 9.3.5.
1490 For information about new features in the 9.3 major release, see
1491 <xref linkend="release-9-3">.
1495 <title>Migration to Version 9.3.6</title>
1498 A dump/restore is not required for those running 9.3.X.
1502 However, if you are a Windows user and are using the <quote>Norwegian
1503 (Bokmål)</> locale, manual action is needed after the upgrade to
1504 replace any <quote>Norwegian (Bokmål)_Norway</> locale names stored
1505 in <productname>PostgreSQL</> system catalogs with the plain-ASCII
1506 alias <quote>Norwegian_Norway</>. For details see
1507 <ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></>
1511 Also, if you are upgrading from a version earlier than 9.3.5,
1512 see <xref linkend="release-9-3-5">.
1518 <title>Changes</title>
1523 Author: Bruce Momjian <bruce@momjian.us>
1524 Branch: master [0150ab567] 2015-02-02 10:00:44 -0500
1525 Branch: REL9_4_STABLE [1628a0bbf] 2015-02-02 10:00:49 -0500
1526 Branch: REL9_3_STABLE [b8b580147] 2015-02-02 10:00:50 -0500
1527 Branch: REL9_2_STABLE [5ae3bf1af] 2015-02-02 10:00:50 -0500
1528 Branch: REL9_1_STABLE [037529a11] 2015-02-02 10:00:51 -0500
1529 Branch: REL9_0_STABLE [611e110aa] 2015-02-02 10:00:52 -0500
1530 Author: Bruce Momjian <bruce@momjian.us>
1531 Branch: master [9241c84cb] 2015-02-02 10:00:45 -0500
1532 Branch: REL9_4_STABLE [56d2bee9d] 2015-02-02 10:00:49 -0500
1533 Branch: REL9_3_STABLE [fe2526990] 2015-02-02 10:00:50 -0500
1534 Branch: REL9_2_STABLE [e09651e9d] 2015-02-02 10:00:50 -0500
1535 Branch: REL9_1_STABLE [2ceb63deb] 2015-02-02 10:00:51 -0500
1536 Branch: REL9_0_STABLE [56b970f2e] 2015-02-02 10:00:52 -0500
1541 Fix buffer overruns in <function>to_char()</>
1546 When <function>to_char()</> processes a numeric formatting template
1547 calling for a large number of digits, <productname>PostgreSQL</>
1548 would read past the end of a buffer. When processing a crafted
1549 timestamp formatting template, <productname>PostgreSQL</> would write
1550 past the end of a buffer. Either case could crash the server.
1551 We have not ruled out the possibility of attacks that lead to
1552 privilege escalation, though they seem unlikely.
1558 Author: Bruce Momjian <bruce@momjian.us>
1559 Branch: master [29725b3db] 2015-02-02 10:00:45 -0500
1560 Branch: REL9_4_STABLE [2ac95c83c] 2015-02-02 10:00:49 -0500
1561 Branch: REL9_3_STABLE [bc4d5f2e5] 2015-02-02 10:00:50 -0500
1562 Branch: REL9_2_STABLE [c6c6aa288] 2015-02-02 10:00:51 -0500
1563 Branch: REL9_1_STABLE [98f2479d8] 2015-02-02 10:00:51 -0500
1564 Branch: REL9_0_STABLE [9e05c5063] 2015-02-02 10:00:52 -0500
1569 Fix buffer overrun in replacement <function>*printf()</> functions
1574 <productname>PostgreSQL</> includes a replacement implementation
1575 of <function>printf</> and related functions. This code will overrun
1576 a stack buffer when formatting a floating point number (conversion
1577 specifiers <literal>e</>, <literal>E</>, <literal>f</>, <literal>F</>,
1578 <literal>g</> or <literal>G</>) with requested precision greater than
1579 about 500. This will crash the server, and we have not ruled out the
1580 possibility of attacks that lead to privilege escalation.
1581 A database user can trigger such a buffer overrun through
1582 the <function>to_char()</> SQL function. While that is the only
1583 affected core <productname>PostgreSQL</> functionality, extension
1584 modules that use printf-family functions may be at risk as well.
1588 This issue primarily affects <productname>PostgreSQL</> on Windows.
1589 <productname>PostgreSQL</> uses the system implementation of these
1590 functions where adequate, which it is on other modern platforms.
1596 Author: Noah Misch <noah@leadboat.com>
1597 Branch: master [1dc755158] 2015-02-02 10:00:45 -0500
1598 Branch: REL9_4_STABLE [82806cf4e] 2015-02-02 10:00:49 -0500
1599 Branch: REL9_3_STABLE [6994f0790] 2015-02-02 10:00:50 -0500
1600 Branch: REL9_2_STABLE [d95ebe0ac] 2015-02-02 10:00:51 -0500
1601 Branch: REL9_1_STABLE [11f738a8a] 2015-02-02 10:00:51 -0500
1602 Branch: REL9_0_STABLE [ce6f261cd] 2015-02-02 10:00:52 -0500
1603 Author: Noah Misch <noah@leadboat.com>
1604 Branch: master [8b59672d8] 2015-02-02 10:00:45 -0500
1605 Branch: REL9_4_STABLE [258e294db] 2015-02-02 10:00:49 -0500
1606 Branch: REL9_3_STABLE [a558ad3a7] 2015-02-02 10:00:50 -0500
1607 Branch: REL9_2_STABLE [d1972da8c] 2015-02-02 10:00:51 -0500
1608 Branch: REL9_1_STABLE [8d412e02e] 2015-02-02 10:00:52 -0500
1609 Branch: REL9_0_STABLE [0a3ee8a5f] 2015-02-02 10:00:52 -0500
1614 Fix buffer overruns in <filename>contrib/pgcrypto</>
1615 (Marko Tiikkaja, Noah Misch)
1619 Errors in memory size tracking within the <filename>pgcrypto</>
1620 module permitted stack buffer overruns and improper dependence on the
1621 contents of uninitialized memory. The buffer overrun cases can
1622 crash the server, and we have not ruled out the possibility of
1623 attacks that lead to privilege escalation.
1629 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1630 Branch: master [2b3a8b20c] 2015-02-02 17:09:53 +0200
1631 Branch: REL9_4_STABLE [57ec87c6b] 2015-02-02 17:09:46 +0200
1632 Branch: REL9_3_STABLE [cd19848bd] 2015-02-02 17:09:40 +0200
1633 Branch: REL9_2_STABLE [289592b23] 2015-02-02 17:09:35 +0200
1634 Branch: REL9_1_STABLE [af9c5c074] 2015-02-02 17:09:31 +0200
1635 Branch: REL9_0_STABLE [47ba0fbd7] 2015-02-02 17:09:25 +0200
1640 Fix possible loss of frontend/backend protocol synchronization after
1642 (Heikki Linnakangas)
1646 If any error occurred while the server was in the middle of reading a
1647 protocol message from the client, it could lose synchronization and
1648 incorrectly try to interpret part of the message's data as a new
1649 protocol message. An attacker able to submit crafted binary data
1650 within a command parameter might succeed in injecting his own SQL
1651 commands this way. Statement timeout and query cancellation are the
1652 most likely sources of errors triggering this scenario. Particularly
1653 vulnerable are applications that use a timeout and also submit
1654 arbitrary user-crafted data as binary query parameters. Disabling
1655 statement timeout will reduce, but not eliminate, the risk of
1656 exploit. Our thanks to Emil Lenngren for reporting this issue.
1662 Author: Stephen Frost <sfrost@snowman.net>
1663 Branch: master [804b6b6db] 2015-01-28 12:31:30 -0500
1664 Branch: REL9_4_STABLE [3cc74a3d6] 2015-01-28 12:32:06 -0500
1665 Branch: REL9_3_STABLE [4b9874216] 2015-01-28 12:32:39 -0500
1666 Branch: REL9_2_STABLE [d49f84b08] 2015-01-28 12:32:56 -0500
1667 Branch: REL9_1_STABLE [9406884af] 2015-01-28 12:33:15 -0500
1668 Branch: REL9_0_STABLE [3a2063369] 2015-01-28 12:33:29 -0500
1673 Fix information leak via constraint-violation error messages
1678 Some server error messages show the values of columns that violate
1679 a constraint, such as a unique constraint. If the user does not have
1680 <literal>SELECT</> privilege on all columns of the table, this could
1681 mean exposing values that the user should not be able to see. Adjust
1682 the code so that values are displayed only when they came from the SQL
1683 command or could be selected by the user.
1689 Author: Noah Misch <noah@leadboat.com>
1690 Branch: master [f6dc6dd5b] 2014-12-17 22:48:40 -0500
1691 Branch: REL9_4_STABLE [6b87d423d] 2014-12-17 22:48:45 -0500
1692 Branch: REL9_3_STABLE [442dc2c35] 2014-12-17 22:48:46 -0500
1693 Branch: REL9_2_STABLE [0046f651d] 2014-12-17 22:48:47 -0500
1694 Branch: REL9_1_STABLE [6aa98e957] 2014-12-17 22:48:47 -0500
1695 Branch: REL9_0_STABLE [6d45ee572] 2014-12-17 22:48:48 -0500
1700 Lock down regression testing's temporary installations on Windows
1705 Use SSPI authentication to allow connections only from the OS user
1706 who launched the test suite. This closes on Windows the same
1707 vulnerability previously closed on other platforms, namely that other
1708 users might be able to connect to the test postmaster.
1714 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1715 Branch: REL9_3_STABLE [8f80dcf3c] 2014-10-24 19:59:49 +0300
1716 Branch: REL9_2_STABLE [d440c4b55] 2014-10-24 19:59:52 +0300
1717 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1718 Branch: REL9_3_STABLE [2a1b34959] 2014-10-24 19:36:28 +0300
1719 Branch: REL9_2_STABLE [737ae3fc7] 2014-10-24 19:53:27 +0300
1720 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
1721 Branch: master [aa1d2fc5e] 2015-01-16 13:28:19 +0200
1722 Branch: REL9_4_STABLE [2049a7d82] 2015-01-16 13:10:06 +0200
1723 Branch: REL9_3_STABLE [1619442a1] 2015-01-16 13:10:15 +0200
1724 Branch: REL9_2_STABLE [6bf343c6e] 2015-01-16 13:10:23 +0200
1729 Cope with the Windows locale named <quote>Norwegian (Bokmål)</>
1730 (Heikki Linnakangas)
1734 Non-ASCII locale names are problematic since it's not clear what
1735 encoding they should be represented in. Map the troublesome locale
1736 name to a plain-ASCII alias, <quote>Norwegian_Norway</>.
1741 Author: Tom Lane <tgl@sss.pgh.pa.us>
1742 Branch: REL9_3_STABLE [f88300168] 2014-11-04 13:24:14 -0500
1743 Branch: REL9_2_STABLE [db72ad02e] 2014-11-04 13:24:17 -0500
1744 Branch: REL9_1_STABLE [7c6f55e9e] 2014-11-04 13:24:22 -0500
1745 Branch: REL9_0_STABLE [45a607d5c] 2014-11-04 13:24:26 -0500
1750 Avoid possible data corruption if <command>ALTER DATABASE SET
1751 TABLESPACE</> is used to move a database to a new tablespace and then
1752 shortly later move it back to its original tablespace (Tom Lane)
1757 Author: Tom Lane <tgl@sss.pgh.pa.us>
1758 Branch: REL9_3_STABLE [81f0a5e38] 2014-10-29 18:12:08 -0400
1759 Branch: REL9_2_STABLE [40058fbce] 2014-10-29 18:12:11 -0400
1760 Branch: REL9_1_STABLE [6ec1c3ef8] 2014-10-29 18:12:17 -0400
1761 Branch: REL9_0_STABLE [9d06da58e] 2014-10-29 18:12:20 -0400
1762 Author: Tom Lane <tgl@sss.pgh.pa.us>
1763 Branch: REL9_3_STABLE [e65b550b3] 2014-10-30 13:03:28 -0400
1764 Branch: REL9_2_STABLE [38cb8687a] 2014-10-30 13:03:31 -0400
1765 Branch: REL9_1_STABLE [fcf0246b2] 2014-10-30 13:03:34 -0400
1766 Branch: REL9_0_STABLE [73f950fc8] 2014-10-30 13:03:39 -0400
1771 Avoid corrupting tables when <command>ANALYZE</> inside a transaction
1772 is rolled back (Andres Freund, Tom Lane, Michael Paquier)
1776 If the failing transaction had earlier removed the last index, rule, or
1777 trigger from the table, the table would be left in a corrupted state
1778 with the relevant <structname>pg_class</> flags not set though they
1784 Author: Andres Freund <andres@anarazel.de>
1785 Branch: REL9_3_STABLE [d7624e562] 2014-10-20 23:45:31 +0200
1786 Branch: REL9_2_STABLE [fd29810d1] 2014-10-20 23:47:00 +0200
1787 Branch: REL9_1_STABLE [d5fef87e9] 2014-10-20 23:47:45 +0200
1792 Ensure that unlogged tables are copied correctly
1793 during <command>CREATE DATABASE</> or <command>ALTER DATABASE SET
1794 TABLESPACE</> (Pavan Deolasee, Andres Freund)
1799 Author: Robert Haas <rhaas@postgresql.org>
1800 Branch: REL9_3_STABLE [e35db342a] 2014-09-22 16:19:59 -0400
1805 Fix incorrect processing
1806 of <structname>CreateEventTrigStmt</>.<structfield>eventname</> (Petr
1811 This could result in misbehavior if <command>CREATE EVENT TRIGGER</>
1812 were executed as a prepared query, or via extended query protocol.
1817 Author: Tom Lane <tgl@sss.pgh.pa.us>
1818 Branch: REL9_3_STABLE [2a83e0349] 2014-11-11 17:00:21 -0500
1819 Branch: REL9_2_STABLE [1c2f9a4f6] 2014-11-11 17:00:25 -0500
1820 Branch: REL9_1_STABLE [94d5d57d5] 2014-11-11 17:00:28 -0500
1825 Fix <command>DROP</>'s dependency searching to correctly handle the
1826 case where a table column is recursively visited before its table
1827 (Petr Jelinek, Tom Lane)
1831 This case is only known to arise when an extension creates both a
1832 datatype and a table using that datatype. The faulty code might
1833 refuse a <command>DROP EXTENSION</> unless <literal>CASCADE</> is
1834 specified, which should not be required.
1839 Author: Tom Lane <tgl@sss.pgh.pa.us>
1840 Branch: master [c480cb9d2] 2015-01-15 18:52:58 -0500
1841 Branch: REL9_4_STABLE [b75d18bd4] 2015-01-15 18:53:05 -0500
1842 Branch: REL9_3_STABLE [34668c8ec] 2015-01-15 18:52:28 -0500
1843 Branch: REL9_2_STABLE [0acb32efb] 2015-01-15 18:52:31 -0500
1844 Branch: REL9_1_STABLE [450530fce] 2015-01-15 18:52:34 -0500
1845 Branch: REL9_0_STABLE [5308e085b] 2015-01-15 18:52:38 -0500
1850 Fix use-of-already-freed-memory problem in EvalPlanQual processing
1855 In <literal>READ COMMITTED</> mode, queries that lock or update
1856 recently-updated rows could crash as a result of this bug.
1861 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1862 Branch: master [0e5680f47] 2014-12-26 13:52:27 -0300
1863 Branch: REL9_4_STABLE [0e3a1f71d] 2014-12-26 13:52:27 -0300
1864 Branch: REL9_3_STABLE [048912386] 2014-12-26 13:52:27 -0300
1869 Avoid possible deadlock while trying to acquire tuple locks
1870 in EvalPlanQual processing (Álvaro Herrera, Mark Kirkwood)
1875 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
1876 Branch: master [d5e3d1e96] 2015-01-04 15:48:29 -0300
1877 Branch: REL9_4_STABLE [51742063b] 2015-01-04 15:48:29 -0300
1878 Branch: REL9_3_STABLE [54a8abc2b] 2015-01-04 15:48:29 -0300
1883 Fix failure to wait when a transaction tries to acquire a <literal>FOR
1884 NO KEY EXCLUSIVE</> tuple lock, while multiple other transactions
1885 currently hold <literal>FOR SHARE</> locks (Álvaro Herrera)
1890 Author: Tom Lane <tgl@sss.pgh.pa.us>
1891 Branch: REL9_3_STABLE [2ae8a01ca] 2014-12-11 21:02:31 -0500
1892 Branch: REL9_2_STABLE [cd63c57e5] 2014-12-11 21:02:34 -0500
1893 Branch: REL9_1_STABLE [bca39b578] 2014-12-11 21:02:38 -0500
1894 Branch: REL9_0_STABLE [662eebdc6] 2014-12-11 21:02:41 -0500
1899 Fix planning of <command>SELECT FOR UPDATE</> when using a partial
1900 index on a child table (Kyotaro Horiguchi)
1904 In <literal>READ COMMITTED</> mode, <command>SELECT FOR UPDATE</> must
1905 also recheck the partial index's <literal>WHERE</> condition when
1906 rechecking a recently-updated row to see if it still satisfies the
1907 query's <literal>WHERE</> condition. This requirement was missed if the
1908 index belonged to an inheritance child table, so that it was possible
1909 to incorrectly return rows that no longer satisfy the query condition.
1914 Author: Tom Lane <tgl@sss.pgh.pa.us>
1915 Branch: REL9_3_STABLE [f14196c35] 2014-12-11 19:37:07 -0500
1916 Branch: REL9_2_STABLE [deadbf4f3] 2014-12-11 19:37:10 -0500
1917 Branch: REL9_1_STABLE [21946ac9b] 2014-12-11 19:37:14 -0500
1918 Branch: REL9_0_STABLE [f5e4e92fb] 2014-12-11 19:37:17 -0500
1923 Fix corner case wherein <command>SELECT FOR UPDATE</> could return a row
1924 twice, and possibly miss returning other rows (Tom Lane)
1928 In <literal>READ COMMITTED</> mode, a <command>SELECT FOR UPDATE</>
1929 that is scanning an inheritance tree could incorrectly return a row
1930 from a prior child table instead of the one it should return from a
1936 Author: Tom Lane <tgl@sss.pgh.pa.us>
1937 Branch: master [a5cd70dcb] 2015-01-15 13:18:12 -0500
1938 Branch: REL9_4_STABLE [d25192892] 2015-01-15 13:18:16 -0500
1939 Branch: REL9_3_STABLE [939f0fb67] 2015-01-15 13:18:19 -0500
1944 Improve performance of <command>EXPLAIN</> with large range tables
1950 Author: Tom Lane <tgl@sss.pgh.pa.us>
1951 Branch: REL9_3_STABLE [7a9c8cefb] 2014-08-09 13:46:42 -0400
1952 Branch: REL9_2_STABLE [b4dacab12] 2014-08-09 13:46:45 -0400
1953 Branch: REL9_1_STABLE [bbe826f21] 2014-08-09 13:46:48 -0400
1954 Branch: REL9_0_STABLE [4ff49746e] 2014-08-09 13:46:52 -0400
1959 Reject duplicate column names in the referenced-columns list of
1960 a <literal>FOREIGN KEY</> declaration (David Rowley)
1964 This restriction is per SQL standard. Previously we did not reject
1965 the case explicitly, but later on the code would fail with
1966 bizarre-looking errors.
1971 Author: Tom Lane <tgl@sss.pgh.pa.us>
1972 Branch: REL9_3_STABLE [6306d0712] 2014-07-22 13:30:14 -0400
1977 Re-enable error for <literal>SELECT ... OFFSET -1</> (Tom Lane)
1981 A negative offset value has been an error since 8.4, but an
1982 optimization added in 9.3 accidentally turned the case into a no-op.
1983 Restore the expected behavior.
1988 Author: Tom Lane <tgl@sss.pgh.pa.us>
1989 Branch: REL9_3_STABLE [8b65e0a33] 2014-08-09 18:40:34 -0400
1990 Branch: REL9_2_STABLE [15026ab97] 2014-08-09 18:40:38 -0400
1995 Restore previous behavior of conversion of domains to JSON
2000 This change causes domains over numeric and boolean to be treated
2001 like their base types for purposes of conversion to JSON. It worked
2002 like that before 9.3.5 and 9.2.9, but was unintentionally changed
2003 while fixing a related problem.
2008 Author: Tom Lane <tgl@sss.pgh.pa.us>
2009 Branch: REL9_3_STABLE [8571ecb24] 2014-12-02 15:02:43 -0500
2014 Fix <function>json_agg()</> to not return extra trailing right
2015 brackets in its result (Tom Lane)
2020 Author: Tom Lane <tgl@sss.pgh.pa.us>
2021 Branch: REL9_3_STABLE [25bf13fe1] 2014-09-11 23:30:57 -0400
2022 Branch: REL9_2_STABLE [228ed4370] 2014-09-11 23:31:00 -0400
2023 Branch: REL9_1_STABLE [cf5c20b06] 2014-09-11 23:31:03 -0400
2024 Branch: REL9_0_STABLE [26f8a4691] 2014-09-11 23:31:06 -0400
2029 Fix bugs in raising a <type>numeric</> value to a large integral power
2034 The previous code could get a wrong answer, or consume excessive
2035 amounts of time and memory before realizing that the answer must
2041 Author: Tom Lane <tgl@sss.pgh.pa.us>
2042 Branch: REL9_3_STABLE [10b81fbdc] 2014-12-01 15:25:08 -0500
2043 Branch: REL9_2_STABLE [e640042e9] 2014-12-01 15:25:12 -0500
2044 Branch: REL9_1_STABLE [2e3cc3955] 2014-12-01 15:25:15 -0500
2045 Branch: REL9_0_STABLE [e6550626c] 2014-12-01 15:25:18 -0500
2050 In <function>numeric_recv()</>, truncate away any fractional digits
2051 that would be hidden according to the value's <literal>dscale</> field
2056 A <type>numeric</> value's display scale (<literal>dscale</>) should
2057 never be less than the number of nonzero fractional digits; but
2058 apparently there's at least one broken client application that
2059 transmits binary <type>numeric</> values in which that's true.
2060 This leads to strange behavior since the extra digits are taken into
2061 account by arithmetic operations even though they aren't printed.
2062 The least risky fix seems to be to truncate away such <quote>hidden</>
2063 digits on receipt, so that the value is indeed what it prints as.
2068 Author: Tom Lane <tgl@sss.pgh.pa.us>
2069 Branch: REL9_3_STABLE [bbfdf5d75] 2014-09-23 20:25:36 -0400
2070 Branch: REL9_2_STABLE [3359a818c] 2014-09-23 20:25:39 -0400
2075 Fix incorrect search for shortest-first regular expression matches
2080 Matching would often fail when the number of allowed iterations is
2081 limited by a <literal>?</> quantifier or a bound expression.
2086 Author: Tom Lane <tgl@sss.pgh.pa.us>
2087 Branch: REL9_3_STABLE [7672bbca0] 2014-07-21 22:41:27 -0400
2088 Branch: REL9_2_STABLE [f54d97c5e] 2014-07-21 22:41:30 -0400
2089 Branch: REL9_1_STABLE [124331b61] 2014-07-21 22:41:33 -0400
2090 Branch: REL9_0_STABLE [6e5a39c9e] 2014-07-21 22:41:36 -0400
2095 Reject out-of-range numeric timezone specifications (Tom Lane)
2099 Simple numeric timezone specifications exceeding +/- 168 hours (one
2100 week) would be accepted, but could then cause null-pointer dereference
2101 crashes in certain operations. There's no use-case for such large UTC
2102 offsets, so reject them.
2107 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2108 Branch: REL9_3_STABLE [1aa526f3f] 2014-10-27 10:51:29 +0200
2109 Branch: REL9_2_STABLE [604d94d4c] 2014-10-27 10:51:33 +0200
2110 Branch: REL9_1_STABLE [4d1c738d1] 2014-10-27 10:51:36 +0200
2111 Branch: REL9_0_STABLE [10059c2da] 2014-10-27 10:51:38 +0200
2116 Fix bugs in <type>tsquery</> <literal>@></> <type>tsquery</>
2117 operator (Heikki Linnakangas)
2121 Two different terms would be considered to match if they had the same
2122 CRC. Also, if the second operand had more terms than the first, it
2123 would be assumed not to be contained in the first; which is wrong
2124 since it might contain duplicate terms.
2129 Author: Tom Lane <tgl@sss.pgh.pa.us>
2130 Branch: REL9_3_STABLE [385f0d98a] 2014-10-23 13:11:34 -0400
2131 Branch: REL9_2_STABLE [f09369da8] 2014-10-23 13:11:37 -0400
2132 Branch: REL9_1_STABLE [94de3a679] 2014-10-23 13:11:41 -0400
2133 Branch: REL9_0_STABLE [21fa26b65] 2014-10-23 13:11:45 -0400
2138 Improve ispell dictionary's defenses against bad affix files (Tom Lane)
2143 Author: Tom Lane <tgl@sss.pgh.pa.us>
2144 Branch: REL9_3_STABLE [5a74ff373] 2014-11-06 20:52:52 -0500
2145 Branch: REL9_2_STABLE [0bb318595] 2014-11-06 20:52:57 -0500
2146 Branch: REL9_1_STABLE [076688084] 2014-11-06 20:53:02 -0500
2147 Branch: REL9_0_STABLE [39493e4d9] 2014-11-06 20:53:07 -0500
2152 Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
2156 The previous coding could crash on an oversize dictionary, so this was
2157 deemed a back-patchable bug fix rather than a feature addition.
2162 Author: Peter Eisentraut <peter_e@gmx.net>
2163 Branch: master [79af9a1d2] 2015-01-06 23:06:13 -0500
2164 Branch: REL9_4_STABLE [6bbf75192] 2015-01-17 22:11:20 -0500
2165 Branch: REL9_3_STABLE [e32cb8d0e] 2015-01-17 22:13:27 -0500
2166 Branch: REL9_2_STABLE [c8ef5b1ac] 2015-01-17 22:14:21 -0500
2167 Branch: REL9_1_STABLE [c975fa471] 2015-01-17 22:37:07 -0500
2168 Branch: REL9_0_STABLE [cebb3f032] 2015-01-17 22:37:32 -0500
2173 Fix namespace handling in <function>xpath()</> (Ali Akbar)
2177 Previously, the <type>xml</> value resulting from
2178 an <function>xpath()</> call would not have namespace declarations if
2179 the namespace declarations were attached to an ancestor element in the
2180 input <type>xml</> value, rather than to the specific element being
2181 returned. Propagate the ancestral declaration so that the result is
2182 correct when considered in isolation.
2187 Author: Tom Lane <tgl@sss.pgh.pa.us>
2188 Branch: REL9_3_STABLE [07ab4ec4c] 2014-11-10 15:21:20 -0500
2189 Branch: REL9_2_STABLE [19ccaf9d4] 2014-11-10 15:21:26 -0500
2194 Ensure that whole-row variables expose nonempty column names
2195 to functions that pay attention to column names within composite
2196 arguments (Tom Lane)
2200 In some contexts, constructs like <literal>row_to_json(tab.*)</> may
2201 not produce the expected column names. This is fixed properly as of
2202 9.4; in older branches, just ensure that we produce some nonempty
2203 name. (In some cases this will be the underlying table's column name
2204 rather than the query-assigned alias that should theoretically be
2210 Author: Tom Lane <tgl@sss.pgh.pa.us>
2211 Branch: REL9_3_STABLE [c57cdc9c1] 2014-11-22 16:01:12 -0500
2212 Branch: REL9_2_STABLE [906599f65] 2014-11-22 16:01:15 -0500
2217 Fix mishandling of system columns,
2218 particularly <structfield>tableoid</>, in FDW queries (Etsuro Fujita)
2223 Author: Tom Lane <tgl@sss.pgh.pa.us>
2224 Branch: master [3d660d33a] 2015-01-30 12:30:59 -0500
2225 Branch: REL9_4_STABLE [b6a164e5c] 2015-01-30 12:31:08 -0500
2226 Branch: REL9_3_STABLE [527ff8baf] 2015-01-30 12:30:43 -0500
2231 Fix assorted oversights in range-operator selectivity estimation
2236 This patch fixes corner-case <quote>unexpected operator NNNN</> planner
2237 errors, and improves the selectivity estimates for some other cases.
2242 Author: Tom Lane <tgl@sss.pgh.pa.us>
2243 Branch: REL9_3_STABLE [f6abf8f08] 2014-10-26 16:12:29 -0400
2244 Branch: REL9_2_STABLE [4586572d7] 2014-10-26 16:12:32 -0400
2249 Avoid doing <literal><replaceable>indexed_column</> = ANY
2250 (<replaceable>array</>)</literal> as an index qualifier if that leads
2251 to an inferior plan (Andrew Gierth)
2255 In some cases, <literal>= ANY</> conditions applied to non-first index
2256 columns would be done as index conditions even though it would be
2257 better to use them as simple filter conditions.
2262 Author: Tom Lane <tgl@sss.pgh.pa.us>
2263 Branch: REL9_3_STABLE [4e54685d0] 2014-10-20 12:23:48 -0400
2268 Fix <quote>variable not found in subplan target list</> planner
2269 failure when an inline-able SQL function taking a composite argument
2270 is used in a <literal>LATERAL</> subselect and the composite argument
2271 is a lateral reference (Tom Lane)
2276 Author: Tom Lane <tgl@sss.pgh.pa.us>
2277 Branch: REL9_3_STABLE [b2b95de61] 2014-10-01 19:30:30 -0400
2278 Branch: REL9_2_STABLE [71b88cf52] 2014-10-01 19:30:34 -0400
2279 Branch: REL9_1_STABLE [477023e94] 2014-10-01 19:30:38 -0400
2280 Branch: REL9_0_STABLE [288f15b7c] 2014-10-01 19:30:41 -0400
2285 Fix planner problems with nested append relations, such as inherited
2286 tables within <literal>UNION ALL</> subqueries (Tom Lane)
2291 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2292 Branch: REL9_3_STABLE [ef8ac584e] 2014-10-03 14:50:29 +0300
2293 Branch: REL9_2_STABLE [8e137b075] 2014-10-03 14:50:40 +0300
2294 Branch: REL9_1_STABLE [f270a1611] 2014-10-03 14:50:46 +0300
2295 Branch: REL9_0_STABLE [f04b112d5] 2014-10-03 14:50:58 +0300
2300 Fail cleanly when a GiST index tuple doesn't fit on a page, rather
2301 than going into infinite recursion (Andrew Gierth)
2306 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2307 Branch: REL9_3_STABLE [67ed9d531] 2014-10-03 13:01:27 -0300
2308 Branch: REL9_2_STABLE [769d6815e] 2014-10-03 13:01:27 -0300
2309 Branch: REL9_1_STABLE [06646f52e] 2014-10-03 13:01:27 -0300
2310 Branch: REL9_0_STABLE [50a757698] 2014-10-03 13:01:27 -0300
2315 Exempt tables that have per-table <varname>cost_limit</>
2316 and/or <varname>cost_delay</> settings from autovacuum's global cost
2317 balancing rules (Álvaro Herrera)
2321 The previous behavior resulted in basically ignoring these per-table
2322 settings, which was unintended. Now, a table having such settings
2323 will be vacuumed using those settings, independently of what is going
2324 on in other autovacuum workers. This may result in heavier total I/O
2325 load than before, so such settings should be re-examined for sanity.
2330 Author: Tom Lane <tgl@sss.pgh.pa.us>
2331 Branch: REL9_3_STABLE [4cbecdaaa] 2014-07-30 14:41:49 -0400
2332 Branch: REL9_2_STABLE [c83aed34b] 2014-07-30 14:41:53 -0400
2333 Branch: REL9_1_STABLE [f21afe421] 2014-07-30 14:41:58 -0400
2334 Branch: REL9_0_STABLE [91b4a881c] 2014-07-30 14:42:12 -0400
2339 Avoid wholesale autovacuuming when autovacuum is nominally off
2344 Even when autovacuum is nominally off, we will still launch autovacuum
2345 worker processes to vacuum tables that are at risk of XID wraparound.
2346 However, such a worker process then proceeded to vacuum all tables in
2347 the target database, if they met the usual thresholds for
2348 autovacuuming. This is at best pretty unexpected; at worst it delays
2349 response to the wraparound threat. Fix it so that if autovacuum is
2350 turned off, workers <emphasis>only</> do anti-wraparound vacuums and
2356 Author: Andres Freund <andres@anarazel.de>
2357 Branch: REL9_3_STABLE [2c3ebfd1a] 2014-11-15 01:21:07 +0100
2358 Branch: REL9_2_STABLE [ea8b3833e] 2014-11-15 01:21:45 +0100
2359 Branch: REL9_1_STABLE [d85b646d0] 2014-11-15 01:22:32 +0100
2360 Author: Andres Freund <andres@anarazel.de>
2361 Branch: REL9_3_STABLE [672b43e68] 2014-11-15 01:21:02 +0100
2362 Branch: REL9_2_STABLE [c5baa708f] 2014-11-15 01:21:40 +0100
2363 Branch: REL9_1_STABLE [fde9994bc] 2014-11-15 01:22:32 +0100
2364 Author: Andres Freund <andres@anarazel.de>
2365 Branch: REL9_3_STABLE [c7299d32f] 2014-11-15 01:20:29 +0100
2366 Branch: REL9_2_STABLE [86673a44a] 2014-11-15 01:21:30 +0100
2367 Branch: REL9_1_STABLE [b0a48e996] 2014-11-15 01:22:32 +0100
2372 During crash recovery, ensure that unlogged relations are rewritten as
2373 empty and are synced to disk before recovery is considered complete
2374 (Abhijit Menon-Sen, Andres Freund)
2378 This prevents scenarios in which unlogged relations might contain
2379 garbage data following database crash recovery.
2384 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2385 Branch: REL9_3_STABLE [861d3aa43] 2014-11-13 20:01:55 +0200
2386 Branch: REL9_2_STABLE [7eab804c2] 2014-11-13 20:01:18 +0200
2387 Branch: REL9_1_STABLE [5f1d931cf] 2014-11-13 20:01:09 +0200
2388 Branch: REL9_0_STABLE [681dbe7d4] 2014-11-13 20:00:51 +0200
2393 Fix race condition between hot standby queries and replaying a
2394 full-page image (Heikki Linnakangas)
2398 This mistake could result in transient errors in queries being
2399 executed in hot standby.
2404 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2405 Branch: REL9_3_STABLE [a2a718b22] 2014-07-29 11:57:52 +0300
2406 Branch: REL9_2_STABLE [1578d13dc] 2014-07-29 11:58:01 +0300
2407 Branch: REL9_1_STABLE [de88ec6bf] 2014-07-29 11:58:09 +0300
2408 Branch: REL9_0_STABLE [804983961] 2014-07-29 11:58:17 +0300
2413 Fix several cases where recovery logic improperly ignored WAL records
2414 for <literal>COMMIT/ABORT PREPARED</> (Heikki Linnakangas)
2418 The most notable oversight was
2419 that <varname>recovery_target_xid</> could not be used to stop at
2425 Author: Fujii Masao <fujii@postgresql.org>
2426 Branch: REL9_3_STABLE [d45cd9e19] 2014-10-23 16:22:46 +0900
2427 Branch: REL9_2_STABLE [f904e9afd] 2014-10-23 16:31:44 +0900
2432 Prevent latest WAL file from being archived a second time at completion
2433 of crash recovery (Fujii Masao)
2438 Author: Fujii Masao <fujii@postgresql.org>
2439 Branch: REL9_3_STABLE [3a3b7e316] 2014-11-06 21:25:18 +0900
2440 Branch: REL9_2_STABLE [38eb5d9e8] 2014-11-06 21:25:45 +0900
2441 Branch: REL9_1_STABLE [4e7468074] 2014-11-06 21:26:15 +0900
2442 Branch: REL9_0_STABLE [83c7bfb9a] 2014-11-06 21:26:21 +0900
2447 Avoid creating unnecessary <filename>.ready</> marker files for
2448 timeline history files (Fujii Masao)
2453 Author: Fujii Masao <fujii@postgresql.org>
2454 Branch: REL9_3_STABLE [52eed3d42] 2014-09-05 02:19:29 +0900
2455 Branch: REL9_2_STABLE [78b1228ef] 2014-09-05 02:19:45 +0900
2456 Branch: REL9_1_STABLE [81bffe63c] 2014-09-05 02:19:50 +0900
2457 Branch: REL9_0_STABLE [857a5d6b5] 2014-09-05 02:19:57 +0900
2462 Fix possible null pointer dereference when an empty prepared statement
2463 is used and the <varname>log_statement</> setting is <literal>mod</>
2464 or <literal>ddl</> (Fujii Masao)
2469 Author: Tom Lane <tgl@sss.pgh.pa.us>
2470 Branch: master [75b48e1ff] 2015-01-19 23:01:33 -0500
2471 Branch: REL9_4_STABLE [3387cbbcb] 2015-01-19 23:01:36 -0500
2472 Branch: REL9_3_STABLE [19794e997] 2015-01-19 23:01:39 -0500
2473 Branch: REL9_2_STABLE [33b723538] 2015-01-19 23:01:41 -0500
2474 Branch: REL9_1_STABLE [b87c1dcef] 2015-01-19 23:01:44 -0500
2475 Branch: REL9_0_STABLE [a1a8d0249] 2015-01-19 23:01:46 -0500
2480 Change <quote>pgstat wait timeout</> warning message to be LOG level,
2481 and rephrase it to be more understandable (Tom Lane)
2485 This message was originally thought to be essentially a can't-happen
2486 case, but it occurs often enough on our slower buildfarm members to be
2487 a nuisance. Reduce it to LOG level, and expend a bit more effort on
2488 the wording: it now reads <quote>using stale statistics instead of
2489 current ones because stats collector is not responding</>.
2494 Author: Andres Freund <andres@anarazel.de>
2495 Branch: REL9_3_STABLE [cbd9619ac] 2014-10-01 14:34:06 +0200
2500 Fix possible corruption of postmaster's list of dynamic background
2501 workers (Andres Freund)
2506 Author: Andres Freund <andres@anarazel.de>
2507 Branch: REL9_3_STABLE [27ef6b653] 2014-09-09 23:37:33 +0200
2508 Branch: REL9_2_STABLE [d0b7ffc0f] 2014-09-09 23:37:50 +0200
2509 Branch: REL9_1_STABLE [5af508f66] 2014-09-09 23:45:07 +0200
2510 Branch: REL9_0_STABLE [f25e89601] 2014-09-09 23:48:03 +0200
2515 Fix SPARC spinlock implementation to ensure correctness if the CPU is
2516 being run in a non-TSO coherency mode, as some non-Solaris kernels do
2522 Author: Noah Misch <noah@leadboat.com>
2523 Branch: master [894459e59] 2015-01-07 22:35:44 -0500
2524 Branch: REL9_4_STABLE [83fb1ca5c] 2015-01-07 22:36:35 -0500
2525 Branch: REL9_3_STABLE [1a366d51e] 2015-01-07 22:40:40 -0500
2526 Branch: REL9_2_STABLE [5ca4e444c] 2015-01-07 22:41:49 -0500
2527 Branch: REL9_1_STABLE [8dc83104e] 2015-01-07 22:42:42 -0500
2528 Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
2533 Warn if OS X's <function>setlocale()</> starts an unwanted extra
2534 thread inside the postmaster (Noah Misch)
2539 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2540 Branch: REL9_3_STABLE [08cd4d9a6] 2014-11-25 17:39:00 +0200
2541 Branch: REL9_2_STABLE [9b468bcec] 2014-11-25 17:39:04 +0200
2542 Branch: REL9_1_STABLE [95be34362] 2014-11-25 17:39:07 +0200
2543 Branch: REL9_0_STABLE [9880fea4f] 2014-11-25 17:39:09 +0200
2548 Fix processing of repeated <literal>dbname</> parameters
2549 in <function>PQconnectdbParams()</> (Alex Shulgin)
2553 Unexpected behavior ensued if the first occurrence
2554 of <literal>dbname</> contained a connection string or URI to be
2560 Author: Tom Lane <tgl@sss.pgh.pa.us>
2561 Branch: REL9_3_STABLE [52ef33f72] 2014-10-22 18:41:51 -0400
2562 Branch: REL9_2_STABLE [6fa31d8d1] 2014-10-22 18:41:54 -0400
2563 Branch: REL9_1_STABLE [98144378c] 2014-10-22 18:41:57 -0400
2564 Branch: REL9_0_STABLE [ac6e87537] 2014-10-22 18:42:01 -0400
2569 Ensure that <application>libpq</> reports a suitable error message on
2570 unexpected socket EOF (Marko Tiikkaja, Tom Lane)
2574 Depending on kernel behavior, <application>libpq</> might return an
2575 empty error string rather than something useful when the server
2576 unexpectedly closed the socket.
2581 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2582 Branch: REL9_3_STABLE [1325b239b] 2014-10-29 14:40:47 +0200
2583 Branch: REL9_2_STABLE [1a27fbd07] 2014-10-29 14:39:10 +0200
2584 Branch: REL9_1_STABLE [8f7bd8e91] 2014-10-29 14:36:19 +0200
2585 Branch: REL9_0_STABLE [49ef4eba2] 2014-10-29 14:35:39 +0200
2590 Clear any old error message during <function>PQreset()</>
2591 (Heikki Linnakangas)
2595 If <function>PQreset()</> is called repeatedly, and the connection
2596 cannot be re-established, error messages from the failed connection
2597 attempts kept accumulating in the <structname>PGconn</>'s error
2603 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2604 Branch: REL9_3_STABLE [d3b162a3d] 2014-11-25 14:10:29 +0200
2605 Branch: REL9_2_STABLE [abcab2a64] 2014-11-25 14:10:43 +0200
2606 Branch: REL9_1_STABLE [5053ad206] 2014-11-25 14:10:48 +0200
2607 Branch: REL9_0_STABLE [1f3517039] 2014-11-25 14:10:54 +0200
2612 Properly handle out-of-memory conditions while parsing connection
2613 options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
2618 Author: Tom Lane <tgl@sss.pgh.pa.us>
2619 Branch: REL9_3_STABLE [d3cfe20c6] 2014-10-06 21:23:35 -0400
2620 Branch: REL9_2_STABLE [b513205bc] 2014-10-06 21:23:39 -0400
2621 Branch: REL9_1_STABLE [037b912ec] 2014-10-06 21:23:45 -0400
2622 Branch: REL9_0_STABLE [d9a1e9de5] 2014-10-06 21:23:50 -0400
2627 Fix array overrun in <application>ecpg</>'s version
2628 of <function>ParseDateTime()</> (Michael Paquier)
2633 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2634 Branch: REL9_3_STABLE [2df66f01a] 2014-12-05 14:31:51 +0200
2635 Branch: REL9_2_STABLE [2b53d583d] 2014-12-05 14:31:45 +0200
2636 Branch: REL9_1_STABLE [729202754] 2014-12-05 14:31:37 +0200
2637 Branch: REL9_0_STABLE [d67be559e] 2014-12-05 14:30:55 +0200
2642 In <application>initdb</>, give a clearer error message if a password
2643 file is specified but is empty (Mats Erik Andersson)
2648 Author: Tom Lane <tgl@sss.pgh.pa.us>
2649 Branch: REL9_3_STABLE [b0fd5c552] 2014-09-08 16:09:52 -0400
2650 Branch: REL9_2_STABLE [886b58b47] 2014-09-08 16:09:56 -0400
2651 Branch: REL9_1_STABLE [440fcc568] 2014-09-08 16:10:01 -0400
2652 Branch: REL9_0_STABLE [44c518328] 2014-09-08 16:10:05 -0400
2657 Fix <application>psql</>'s <command>\s</> command to work nicely with
2658 libedit, and add pager support (Stepan Rutz, Tom Lane)
2662 When using libedit rather than readline, <command>\s</> printed the
2663 command history in a fairly unreadable encoded format, and on recent
2664 libedit versions might fail altogether. Fix that by printing the
2665 history ourselves rather than having the library do it. A pleasant
2666 side-effect is that the pager is used if appropriate.
2670 This patch also fixes a bug that caused newline encoding to be applied
2671 inconsistently when saving the command history with libedit.
2672 Multiline history entries written by older <application>psql</>
2673 versions will be read cleanly with this patch, but perhaps not
2674 vice versa, depending on the exact libedit versions involved.
2679 Author: Tom Lane <tgl@sss.pgh.pa.us>
2680 Branch: master [28551797a] 2014-12-31 12:18:50 -0500
2681 Branch: REL9_4_STABLE [c35249939] 2014-12-31 12:16:57 -0500
2682 Branch: REL9_3_STABLE [7582cce56] 2014-12-31 12:17:00 -0500
2683 Branch: REL9_2_STABLE [64c506535] 2014-12-31 12:17:04 -0500
2684 Branch: REL9_1_STABLE [1773e0702] 2014-12-31 12:17:08 -0500
2685 Branch: REL9_0_STABLE [2600e4436] 2014-12-31 12:17:12 -0500
2690 Improve consistency of parsing of <application>psql</>'s special
2691 variables (Tom Lane)
2695 Allow variant spellings of <literal>on</> and <literal>off</> (such
2696 as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
2697 and <literal>ON_ERROR_ROLLBACK</>. Report a warning for unrecognized
2698 values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
2699 <literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
2700 <literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>. Recognize
2701 all values for all these variables case-insensitively; previously
2702 there was a mishmash of case-sensitive and case-insensitive behaviors.
2707 Author: Fujii Masao <fujii@postgresql.org>
2708 Branch: REL9_3_STABLE [4b1953079] 2014-11-28 02:44:40 +0900
2713 Make <application>psql</>'s <command>\watch</> command display
2714 nulls as specified by <command>\pset null</> (Fujii Masao)
2719 Author: Stephen Frost <sfrost@snowman.net>
2720 Branch: REL9_3_STABLE [7ec399094] 2014-09-12 11:24:28 -0400
2721 Branch: REL9_2_STABLE [5d63f2159] 2014-09-12 11:24:32 -0400
2722 Branch: REL9_1_STABLE [4d96e93cb] 2014-09-12 11:24:36 -0400
2723 Branch: REL9_0_STABLE [1f89fc218] 2014-09-12 11:24:39 -0400
2728 Fix <application>psql</>'s expanded-mode display to work
2729 consistently when using <literal>border</> = 3
2730 and <literal>linestyle</> = <literal>ascii</> or <literal>unicode</>
2736 Author: Tom Lane <tgl@sss.pgh.pa.us>
2737 Branch: master [adfc157dd] 2015-01-05 19:27:04 -0500
2738 Branch: REL9_4_STABLE [c99e41f68] 2015-01-05 19:27:06 -0500
2739 Branch: REL9_3_STABLE [bb1e2426b] 2015-01-05 19:27:09 -0500
2744 Fix <application>pg_dump</> to handle comments on event triggers
2745 without failing (Tom Lane)
2750 Author: Kevin Grittner <kgrittn@postgresql.org>
2751 Branch: master [cff1bd2a3] 2015-01-30 08:57:24 -0600
2752 Branch: REL9_4_STABLE [cb0168528] 2015-01-30 08:57:53 -0600
2753 Branch: REL9_3_STABLE [cc609c46f] 2015-01-30 09:01:36 -0600
2758 Allow parallel <application>pg_dump</> to
2759 use <option>--serializable-deferrable</> (Kevin Grittner)
2764 Author: Tom Lane <tgl@sss.pgh.pa.us>
2765 Branch: REL9_3_STABLE [51fc61334] 2014-07-25 19:48:48 -0400
2766 Branch: REL9_2_STABLE [a6c567437] 2014-07-25 19:48:51 -0400
2767 Branch: REL9_1_STABLE [40c333c39] 2014-07-25 19:48:54 -0400
2772 Improve performance of <application>pg_dump</> when the database
2773 contains many instances of multiple dependency paths between the same
2774 two objects (Tom Lane)
2779 Author: Tom Lane <tgl@sss.pgh.pa.us>
2780 Branch: REL9_3_STABLE [9fc887121] 2014-11-13 18:19:32 -0500
2781 Branch: REL9_2_STABLE [3c5ce5102] 2014-11-13 18:19:35 -0500
2786 Fix <application>pg_dumpall</> to restore its ability to dump from
2787 pre-8.1 servers (Gilles Darold)
2792 Author: Robert Haas <rhaas@postgresql.org>
2793 Branch: REL9_3_STABLE [d72ecc91c] 2014-09-26 11:23:43 -0400
2794 Branch: REL9_2_STABLE [a97c8c393] 2014-09-26 11:25:57 -0400
2795 Branch: REL9_1_STABLE [d1844c21b] 2014-09-26 11:36:25 -0400
2796 Branch: REL9_0_STABLE [bbe3c069a] 2014-09-26 11:43:56 -0400
2801 Fix possible deadlock during parallel restore of a schema-only dump
2802 (Robert Haas, Tom Lane)
2807 Author: Tom Lane <tgl@sss.pgh.pa.us>
2808 Branch: REL9_3_STABLE [9a540c1ef] 2014-10-17 12:49:06 -0400
2809 Branch: REL9_2_STABLE [787e20bd4] 2014-10-17 12:49:09 -0400
2810 Branch: REL9_1_STABLE [0c9391e52] 2014-10-17 12:49:11 -0400
2811 Branch: REL9_0_STABLE [31021e7ba] 2014-10-17 12:49:15 -0400
2816 Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
2817 composite type (Rushabh Lathia)
2822 Author: Andres Freund <andres@anarazel.de>
2823 Branch: REL9_3_STABLE [26a4e0ed7] 2014-11-15 01:21:11 +0100
2828 Fix failure to fsync tables in nondefault tablespaces
2829 during <application>pg_upgrade</> (Abhijit Menon-Sen, Andres Freund)
2833 With an operating system crash and some bad luck, this could result in
2834 data loss during an upgrade.
2839 Author: Bruce Momjian <bruce@momjian.us>
2840 Branch: REL9_3_STABLE [fca9f349b] 2014-08-07 14:56:13 -0400
2845 In <application>pg_upgrade</>, cope with cases where the new cluster
2846 creates a TOAST table for a table that didn't previously have one
2851 Previously this could result in failures due to OID conflicts.
2856 Author: Bruce Momjian <bruce@momjian.us>
2857 Branch: REL9_3_STABLE [24ae44914] 2014-08-04 11:45:45 -0400
2862 In <application>pg_upgrade</>, don't try to
2863 set <literal>autovacuum_multixact_freeze_max_age</> for the old cluster
2868 This could result in failure because not all 9.3.X versions have that
2869 parameter. Fortunately, we don't actually need to set it at all.
2874 Author: Bruce Momjian <bruce@momjian.us>
2875 Branch: REL9_3_STABLE [5724f491d] 2014-09-11 18:39:46 -0400
2880 In <application>pg_upgrade</>, preserve the transaction ID epoch
2885 This oversight did not bother <productname>PostgreSQL</> proper,
2886 but could confuse some external replication tools.
2891 Author: Andres Freund <andres@anarazel.de>
2892 Branch: master [2c0a48589] 2015-01-03 20:54:12 +0100
2893 Branch: REL9_4_STABLE [90e4a2bf9] 2015-01-03 20:54:13 +0100
2894 Branch: REL9_3_STABLE [f6cea4502] 2015-01-03 20:54:13 +0100
2895 Branch: REL9_2_STABLE [f961ad479] 2015-01-03 20:54:13 +0100
2896 Branch: REL9_1_STABLE [2a0bfa4d6] 2015-01-03 20:54:13 +0100
2901 Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
2902 being archived again when the standby is promoted (Andres Freund)
2907 Author: Fujii Masao <fujii@postgresql.org>
2908 Branch: REL9_3_STABLE [9747a9898] 2014-08-02 15:19:45 +0900
2913 Fix memory leak in <application>pg_receivexlog</> (Fujii Masao)
2918 Author: Fujii Masao <fujii@postgresql.org>
2919 Branch: REL9_3_STABLE [39217ce41] 2014-08-02 14:59:10 +0900
2924 Fix unintended suppression of <application>pg_receivexlog</> verbose
2925 messages (Fujii Masao)
2930 Author: Tom Lane <tgl@sss.pgh.pa.us>
2931 Branch: REL9_3_STABLE [9474c9d81] 2014-09-19 13:19:02 -0400
2932 Branch: REL9_2_STABLE [5ff8c2d7d] 2014-09-19 13:19:05 -0400
2937 Fix failure of <filename>contrib/auto_explain</> to print per-node
2938 timing information when doing <command>EXPLAIN ANALYZE</> (Tom Lane)
2943 Author: Tom Lane <tgl@sss.pgh.pa.us>
2944 Branch: REL9_3_STABLE [0ad403c98] 2014-08-28 18:21:14 -0400
2945 Branch: REL9_2_STABLE [f3998521f] 2014-08-28 18:21:17 -0400
2946 Branch: REL9_1_STABLE [9807c8220] 2014-08-28 18:21:20 -0400
2951 Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
2957 Author: Tom Lane <tgl@sss.pgh.pa.us>
2958 Branch: REL9_3_STABLE [f44290b7b] 2014-11-04 16:54:59 -0500
2963 Avoid integer overflow and buffer overrun
2964 in <filename>contrib/hstore</>'s <function>hstore_to_json()</>
2965 (Heikki Linnakangas)
2970 Author: Andrew Dunstan <andrew@dunslane.net>
2971 Branch: REL9_3_STABLE [55c880797] 2014-12-01 11:44:48 -0500
2976 Fix recognition of numbers in <function>hstore_to_json_loose()</>,
2977 so that JSON numbers and strings are correctly distinguished
2983 Author: Tom Lane <tgl@sss.pgh.pa.us>
2984 Branch: REL9_3_STABLE [f59c8eff7] 2014-07-22 11:45:53 -0400
2985 Branch: REL9_2_STABLE [810f0d2a2] 2014-07-22 11:45:57 -0400
2986 Branch: REL9_1_STABLE [3c5232ae8] 2014-07-22 11:46:00 -0400
2987 Branch: REL9_0_STABLE [9dc2a3fd0] 2014-07-22 11:46:04 -0400
2992 Fix block number checking
2993 in <filename>contrib/pageinspect</>'s <function>get_raw_page()</>
2998 The incorrect checking logic could prevent access to some pages in
2999 non-main relation forks.
3004 Author: Tom Lane <tgl@sss.pgh.pa.us>
3005 Branch: REL9_3_STABLE [419de696a] 2014-11-11 17:22:38 -0500
3006 Branch: REL9_2_STABLE [4a9710e6e] 2014-11-11 17:22:44 -0500
3007 Branch: REL9_1_STABLE [4ddd9e72f] 2014-11-11 17:22:51 -0500
3008 Branch: REL9_0_STABLE [ef5a3b957] 2014-11-11 17:22:58 -0500
3013 Fix <filename>contrib/pgcrypto</>'s <function>pgp_sym_decrypt()</>
3014 to not fail on messages whose length is 6 less than a power of 2
3020 Author: Robert Haas <rhaas@postgresql.org>
3021 Branch: REL9_3_STABLE [8cf825974] 2014-11-19 12:14:22 -0500
3022 Branch: REL9_2_STABLE [57ce74661] 2014-11-19 12:20:47 -0500
3023 Branch: REL9_1_STABLE [a855c90a7] 2014-11-19 12:26:06 -0500
3028 Fix file descriptor leak in <filename>contrib/pg_test_fsync</>
3033 This could cause failure to remove temporary files on Windows.
3038 Author: Tom Lane <tgl@sss.pgh.pa.us>
3039 Branch: master [37507962c] 2015-01-29 20:18:33 -0500
3040 Branch: REL9_4_STABLE [202621d04] 2015-01-29 20:18:37 -0500
3041 Branch: REL9_3_STABLE [53ae24692] 2015-01-29 20:18:40 -0500
3042 Branch: REL9_2_STABLE [66cc74680] 2015-01-29 20:18:42 -0500
3043 Branch: REL9_1_STABLE [290c2daad] 2015-01-29 20:18:44 -0500
3044 Branch: REL9_0_STABLE [dc9a506e6] 2015-01-29 20:18:46 -0500
3049 Handle unexpected query results, especially NULLs, safely in
3050 <filename>contrib/tablefunc</>'s <function>connectby()</>
3055 <function>connectby()</> previously crashed if it encountered a NULL
3056 key value. It now prints that row but doesn't recurse further.
3061 Author: Tom Lane <tgl@sss.pgh.pa.us>
3062 Branch: REL9_3_STABLE [c393847a1] 2014-11-27 11:12:51 -0500
3063 Branch: REL9_2_STABLE [a1cd04cd0] 2014-11-27 11:12:55 -0500
3064 Branch: REL9_1_STABLE [168636a99] 2014-11-27 11:12:59 -0500
3065 Branch: REL9_0_STABLE [6a694bbab] 2014-11-27 11:13:03 -0500
3070 Avoid a possible crash in <filename>contrib/xml2</>'s
3071 <function>xslt_process()</> (Mark Simonetti)
3075 <application>libxslt</> seems to have an undocumented dependency on
3076 the order in which resources are freed; reorder our calls to avoid a
3082 Author: Tom Lane <tgl@sss.pgh.pa.us>
3083 Branch: REL9_3_STABLE [0247935c7] 2014-11-05 11:34:19 -0500
3084 Branch: REL9_2_STABLE [0ef754cad] 2014-11-05 11:34:22 -0500
3085 Branch: REL9_1_STABLE [7225abf00] 2014-11-05 11:34:25 -0500
3090 Mark some <filename>contrib</> I/O functions with correct volatility
3091 properties (Tom Lane)
3095 The previous over-conservative marking was immaterial in normal use,
3096 but could cause optimization problems or rejection of valid index
3097 expression definitions. Since the consequences are not large, we've
3098 just adjusted the function definitions in the extension modules'
3099 scripts, without changing version numbers.
3104 Author: Tom Lane <tgl@sss.pgh.pa.us>
3105 Branch: master [a59ee8819] 2015-01-30 13:05:30 -0500
3106 Branch: REL9_4_STABLE [70da7aeba] 2015-01-30 13:04:59 -0500
3107 Branch: REL9_3_STABLE [f08cf8ad9] 2015-01-30 13:05:01 -0500
3108 Branch: REL9_2_STABLE [a97dfdfd9] 2015-01-30 13:05:04 -0500
3109 Branch: REL9_1_STABLE [8f51c432c] 2015-01-30 13:05:07 -0500
3110 Branch: REL9_0_STABLE [7c41a32b3] 2015-01-30 13:05:09 -0500
3111 Author: Tom Lane <tgl@sss.pgh.pa.us>
3112 Branch: REL9_3_STABLE [8824bae87] 2014-11-18 13:28:13 -0500
3113 Author: Robert Haas <rhaas@postgresql.org>
3114 Branch: master [0b49642b9] 2015-01-15 09:26:03 -0500
3115 Branch: REL9_4_STABLE [7b65f194e] 2015-01-15 09:29:41 -0500
3116 Branch: REL9_3_STABLE [ebbef4f39] 2015-01-15 09:29:55 -0500
3117 Branch: REL9_2_STABLE [d452bfd1b] 2015-01-15 09:42:21 -0500
3118 Branch: REL9_1_STABLE [151fb75b0] 2015-01-15 09:42:33 -0500
3119 Branch: REL9_0_STABLE [0a67c0018] 2015-01-15 09:42:47 -0500
3120 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3121 Branch: master [e37d474f9] 2015-01-13 14:33:05 +0200
3122 Branch: REL9_4_STABLE [4ebb3494e] 2015-01-13 16:01:04 +0200
3123 Author: Andres Freund <andres@anarazel.de>
3124 Branch: master [8cadeb792] 2015-01-04 15:44:49 +0100
3125 Branch: REL9_4_STABLE [7ced1b6c5] 2015-01-04 15:52:52 +0100
3126 Branch: REL9_3_STABLE [a68b8aec7] 2015-01-04 15:53:08 +0100
3127 Branch: REL9_2_STABLE [6f9b84a40] 2015-01-04 15:55:00 +0100
3128 Author: Andres Freund <andres@anarazel.de>
3129 Branch: master [58bc4747b] 2015-01-04 15:35:46 +0100
3130 Branch: REL9_4_STABLE [2d8411a0a] 2015-01-04 15:35:46 +0100
3131 Branch: REL9_3_STABLE [d33f36f16] 2015-01-04 15:35:47 +0100
3132 Branch: REL9_2_STABLE [029e41afd] 2015-01-04 15:35:47 +0100
3133 Branch: REL9_1_STABLE [39cdf365a] 2015-01-04 15:35:47 +0100
3134 Branch: REL9_0_STABLE [17797e18d] 2015-01-04 15:35:48 +0100
3135 Author: Andres Freund <andres@anarazel.de>
3136 Branch: master [0398ece4c] 2015-01-04 14:36:21 +0100
3137 Branch: REL9_4_STABLE [ff7d46b85] 2015-01-04 14:36:21 +0100
3138 Branch: REL9_3_STABLE [ec14f1601] 2015-01-04 14:36:22 +0100
3139 Branch: REL9_2_STABLE [f4060db11] 2015-01-04 14:36:22 +0100
3140 Author: Tatsuo Ishii <ishii@postgresql.org>
3141 Branch: master [3b5a89c48] 2014-12-30 20:33:01 +0900
3142 Branch: REL9_4_STABLE [458e8bc65] 2014-12-30 20:27:26 +0900
3143 Branch: REL9_3_STABLE [ed0e03283] 2014-12-30 20:20:56 +0900
3144 Branch: REL9_2_STABLE [4db7eaae0] 2014-12-30 19:59:26 +0900
3145 Branch: REL9_1_STABLE [4c136b0b6] 2014-12-30 19:48:53 +0900
3146 Branch: REL9_0_STABLE [9b74f3574] 2014-12-30 19:37:55 +0900
3147 Author: Tom Lane <tgl@sss.pgh.pa.us>
3148 Branch: master [66709133c] 2014-12-16 15:35:33 -0500
3149 Branch: REL9_4_STABLE [383d224a0] 2014-12-16 15:35:36 -0500
3150 Branch: REL9_3_STABLE [53960e7eb] 2014-12-16 15:35:40 -0500
3151 Branch: REL9_2_STABLE [e92c67ddc] 2014-12-16 15:35:43 -0500
3152 Branch: REL9_1_STABLE [5c784d96a] 2014-12-16 15:35:46 -0500
3153 Branch: REL9_0_STABLE [a2969bd72] 2014-12-16 15:35:49 -0500
3154 Author: Tom Lane <tgl@sss.pgh.pa.us>
3155 Branch: master [d38e8d30c] 2014-12-16 13:31:42 -0500
3156 Branch: REL9_4_STABLE [6c75384ee] 2014-12-16 13:31:57 -0500
3157 Branch: REL9_3_STABLE [3b750ec15] 2014-12-16 13:32:02 -0500
3158 Branch: REL9_2_STABLE [5b2c8f04a] 2014-12-16 13:32:15 -0500
3159 Branch: REL9_1_STABLE [926da211a] 2014-12-16 13:32:25 -0500
3160 Branch: REL9_0_STABLE [961df1853] 2014-12-16 13:32:38 -0500
3161 Author: Tom Lane <tgl@sss.pgh.pa.us>
3162 Branch: master [586dd5d6a] 2015-01-24 13:05:42 -0500
3163 Branch: REL9_4_STABLE [d51d4ff31] 2015-01-24 13:05:45 -0500
3164 Branch: REL9_3_STABLE [7240f9200] 2015-01-24 13:05:49 -0500
3165 Branch: REL9_2_STABLE [502e5f9c3] 2015-01-24 13:05:53 -0500
3166 Branch: REL9_1_STABLE [b00a08859] 2015-01-24 13:05:56 -0500
3167 Branch: REL9_0_STABLE [3a3ee655c] 2015-01-24 13:05:58 -0500
3172 Numerous cleanups of warnings from Coverity static code analyzer
3173 (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
3177 These changes are mostly cosmetic but in some cases fix corner-case
3178 bugs, for example a crash rather than a proper error report after an
3179 out-of-memory failure. None are believed to represent security
3185 Author: Robert Haas <rhaas@postgresql.org>
3186 Branch: REL9_3_STABLE [05c0059b3] 2014-07-30 12:10:20 -0400
3191 Fix setup of background workers in EXEC_BACKEND builds, eg Windows
3197 Author: Noah Misch <noah@leadboat.com>
3198 Branch: REL9_3_STABLE [07115248f] 2014-07-22 11:01:41 -0400
3199 Branch: REL9_2_STABLE [cec0c2182] 2014-07-22 11:01:51 -0400
3200 Branch: REL9_1_STABLE [81af4185a] 2014-07-22 11:02:00 -0400
3201 Branch: REL9_0_STABLE [4c6d0abde] 2014-07-22 11:02:25 -0400
3206 Detect incompatible OpenLDAP versions during build (Noah Misch)
3210 With OpenLDAP versions 2.4.24 through 2.4.31,
3211 inclusive, <productname>PostgreSQL</> backends can crash at exit.
3212 Raise a warning during <application>configure</> based on the
3213 compile-time OpenLDAP version number, and test the crashing scenario
3214 in the <filename>contrib/dblink</> regression test.
3219 Author: Noah Misch <noah@leadboat.com>
3220 Branch: REL9_3_STABLE [318fe2321] 2014-08-18 23:01:04 -0400
3221 Branch: REL9_2_STABLE [ebd4d9cdd] 2014-08-18 23:01:09 -0400
3222 Branch: REL9_1_STABLE [ba72fc054] 2014-08-18 23:01:13 -0400
3223 Branch: REL9_0_STABLE [e6841c4d6] 2014-08-18 23:01:23 -0400
3228 In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
3229 with execute permissions (Noah Misch)
3234 Author: Tom Lane <tgl@sss.pgh.pa.us>
3235 Branch: master [aa719391d] 2015-01-19 23:44:19 -0500
3236 Branch: REL9_4_STABLE [3de9f22ac] 2015-01-19 23:44:22 -0500
3237 Branch: REL9_3_STABLE [1681e2f74] 2015-01-19 23:44:24 -0500
3238 Branch: REL9_2_STABLE [89b6a19e1] 2015-01-19 23:44:28 -0500
3239 Branch: REL9_1_STABLE [f4f522deb] 2015-01-19 23:44:30 -0500
3240 Branch: REL9_0_STABLE [338ff75fc] 2015-01-19 23:44:33 -0500
3245 Make <application>pg_regress</> remove any temporary installation it
3246 created upon successful exit (Tom Lane)
3250 This results in a very substantial reduction in disk space usage
3251 during <literal>make check-world</>, since that sequence involves
3252 creation of numerous temporary installations.
3257 Author: Tom Lane <tgl@sss.pgh.pa.us>
3258 Branch: REL9_3_STABLE [137e7c164] 2014-10-16 15:22:17 -0400
3259 Branch: REL9_2_STABLE [7c67b9365] 2014-10-16 15:22:20 -0400
3260 Branch: REL9_1_STABLE [2784b68b3] 2014-10-16 15:22:23 -0400
3261 Branch: REL9_0_STABLE [870a980aa] 2014-10-16 15:22:26 -0400
3266 Support time zone abbreviations that change UTC offset from time to
3271 Previously, <productname>PostgreSQL</> assumed that the UTC offset
3272 associated with a time zone abbreviation (such as <literal>EST</>)
3273 never changes in the usage of any particular locale. However this
3274 assumption fails in the real world, so introduce the ability for a
3275 zone abbreviation to represent a UTC offset that sometimes changes.
3276 Update the zone abbreviation definition files to make use of this
3277 feature in timezone locales that have changed the UTC offset of their
3278 abbreviations since 1970 (according to the IANA timezone database).
3279 In such timezones, <productname>PostgreSQL</> will now associate the
3280 correct UTC offset with the abbreviation depending on the given date.
3285 Author: Tom Lane <tgl@sss.pgh.pa.us>
3286 Branch: REL9_3_STABLE [9701f238b] 2014-10-03 17:44:56 -0400
3287 Branch: REL9_2_STABLE [d7d546bbc] 2014-10-03 17:44:59 -0400
3288 Branch: REL9_1_STABLE [252af79d9] 2014-10-03 17:45:03 -0400
3289 Branch: REL9_0_STABLE [cc7bad30c] 2014-10-03 17:45:07 -0400
3290 Author: Tom Lane <tgl@sss.pgh.pa.us>
3291 Branch: REL9_3_STABLE [0190f0a76] 2014-12-24 16:35:40 -0500
3292 Branch: REL9_2_STABLE [5c8665892] 2014-12-24 16:35:44 -0500
3293 Branch: REL9_1_STABLE [310597e31] 2014-12-24 16:35:48 -0500
3294 Branch: REL9_0_STABLE [8b70023af] 2014-12-24 16:35:54 -0500
3299 Update time zone abbreviations lists (Tom Lane)
3303 Add CST (China Standard Time) to our lists.
3304 Remove references to ADT as <quote>Arabia Daylight Time</>, an
3305 abbreviation that's been out of use since 2007; therefore, claiming
3306 there is a conflict with <quote>Atlantic Daylight Time</> doesn't seem
3308 Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
3309 (Fiji); we didn't even have them on the proper side of the date line.
3314 Author: Tom Lane <tgl@sss.pgh.pa.us>
3315 Branch: REL9_3_STABLE [8470cd473] 2015-01-30 22:46:05 -0500
3316 Branch: REL9_2_STABLE [c9048d353] 2015-01-30 22:46:12 -0500
3317 Branch: REL9_1_STABLE [cb24cd3f4] 2015-01-30 22:46:17 -0500
3318 Branch: REL9_0_STABLE [3553d9c6e] 2015-01-30 22:46:22 -0500
3319 Author: Tom Lane <tgl@sss.pgh.pa.us>
3320 Branch: REL9_3_STABLE [ab45d907b] 2014-11-17 12:08:25 -0500
3321 Branch: REL9_2_STABLE [b1e996035] 2014-11-17 12:08:32 -0500
3322 Branch: REL9_1_STABLE [b96c47a3d] 2014-11-17 12:08:39 -0500
3323 Branch: REL9_0_STABLE [92979576e] 2014-11-17 12:08:46 -0500
3324 Author: Tom Lane <tgl@sss.pgh.pa.us>
3325 Branch: REL9_3_STABLE [c66199151] 2014-10-04 14:18:33 -0400
3326 Branch: REL9_2_STABLE [8f75d7a25] 2014-10-04 14:18:36 -0400
3327 Branch: REL9_1_STABLE [745723c9e] 2014-10-04 14:18:39 -0400
3328 Branch: REL9_0_STABLE [b6391f587] 2014-10-04 14:18:43 -0400
3333 Update time zone data files to <application>tzdata</> release 2015a.
3337 The IANA timezone database has adopted abbreviations of the form
3338 <literal>A<replaceable>x</>ST</literal>/<literal>A<replaceable>x</>DT</literal>
3339 for all Australian time zones, reflecting what they believe to be
3340 current majority practice Down Under. These names do not conflict
3341 with usage elsewhere (other than ACST for Acre Summer Time, which has
3342 been in disuse since 1994). Accordingly, adopt these names into
3343 our <quote>Default</> timezone abbreviation set.
3344 The <quote>Australia</> abbreviation set now contains only CST, EAST,
3345 EST, SAST, SAT, and WST, all of which are thought to be mostly
3346 historical usage. Note that SAST has also been changed to be South
3347 Africa Standard Time in the <quote>Default</> abbreviation set.
3351 Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
3352 (Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were
3353 DST law changes in Chile, Mexico, the Turks & Caicos Islands
3354 (America/Grand_Turk), and Fiji. There is a new zone
3355 Pacific/Bougainville for portions of Papua New Guinea. Also, numerous
3356 corrections for historical (pre-1970) time zone data.
3365 <sect1 id="release-9-3-5">
3366 <title>Release 9.3.5</title>
3369 <title>Release Date</title>
3370 <simpara>2014-07-24</simpara>
3374 This release contains a variety of fixes from 9.3.4.
3375 For information about new features in the 9.3 major release, see
3376 <xref linkend="release-9-3">.
3380 <title>Migration to Version 9.3.5</title>
3383 A dump/restore is not required for those running 9.3.X.
3387 However, this release corrects a logic error
3388 in <application>pg_upgrade</>, as well as an index corruption problem in
3389 some GiST indexes. See the first two changelog entries below to find out
3390 whether your installation has been affected and what steps you should take
3395 Also, if you are upgrading from a version earlier than 9.3.4,
3396 see <xref linkend="release-9-3-4">.
3402 <title>Changes</title>
3407 Author: Bruce Momjian <bruce@momjian.us>
3408 Branch: master [0f7482733] 2014-06-24 16:11:06 -0400
3409 Branch: REL9_4_STABLE [dd5369047] 2014-06-24 16:11:06 -0400
3410 Branch: REL9_3_STABLE [cc5841809] 2014-06-24 16:11:06 -0400
3415 In <application>pg_upgrade</>, remove <filename>pg_multixact</> files
3416 left behind by <application>initdb</> (Bruce Momjian)
3420 If you used a pre-9.3.5 version of <application>pg_upgrade</> to
3421 upgrade a database cluster to 9.3, it might have left behind a file
3422 <filename>$PGDATA/pg_multixact/offsets/0000</> that should not be
3423 there and will eventually cause problems in <command>VACUUM</>.
3424 <emphasis>However, in common cases this file is actually valid and
3425 must not be removed.</emphasis>
3426 To determine whether your installation has this problem, run this
3427 query as superuser, in any database of the cluster:
3429 WITH list(file) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets'))
3430 SELECT EXISTS (SELECT * FROM list WHERE file = '0000') AND
3431 NOT EXISTS (SELECT * FROM list WHERE file = '0001') AND
3432 NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF') AND
3433 EXISTS (SELECT * FROM list WHERE file != '0000')
3434 AS file_0000_removal_required;
3436 If this query returns <literal>t</>, manually remove the file
3437 <filename>$PGDATA/pg_multixact/offsets/0000</>.
3438 Do nothing if the query returns <literal>f</>.
3443 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3444 Branch: master Release: REL9_4_BR [540ac7cea] 2014-05-13 15:15:13 +0300
3445 Branch: REL9_3_STABLE [d5b912c90] 2014-05-13 15:27:14 +0300
3446 Branch: REL9_2_STABLE [0d8d0d027] 2014-05-13 15:27:21 +0300
3447 Branch: REL9_1_STABLE [1913d0f28] 2014-05-13 15:27:28 +0300
3448 Branch: REL9_0_STABLE [c87c43f08] 2014-05-13 15:27:36 +0300
3449 Branch: REL8_4_STABLE [e31d77c96] 2014-05-13 15:27:43 +0300
3454 Correctly initialize padding bytes in <filename>contrib/btree_gist</>
3455 indexes on <type>bit</> columns (Heikki Linnakangas)
3459 This error could result in incorrect query results due to values that
3460 should compare equal not being seen as equal.
3461 Users with GiST indexes on <type>bit</> or <type>bit varying</>
3462 columns should <command>REINDEX</> those indexes after installing this
3468 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3469 Branch: master Release: REL9_4_BR [4f7bb4b2a] 2014-05-08 14:50:22 +0300
3470 Branch: REL9_3_STABLE [34572920c] 2014-05-08 14:43:04 +0300
3471 Branch: REL9_2_STABLE [31633f992] 2014-05-08 14:43:39 +0300
3472 Branch: REL9_1_STABLE [686a7194e] 2014-05-08 14:43:58 +0300
3473 Branch: REL9_0_STABLE [8b4efe1f3] 2014-05-08 14:44:06 +0300
3474 Branch: REL8_4_STABLE [be7830596] 2014-05-08 14:46:43 +0300
3479 Protect against torn pages when deleting GIN list pages (Heikki
3484 This fix prevents possible index corruption if a system crash occurs
3485 while the page update is being written to disk.
3490 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3491 Branch: master Release: REL9_4_BR [7ca32e255] 2014-04-08 14:51:40 +0300
3492 Branch: REL9_3_STABLE [601c01e08] 2014-04-08 14:51:49 +0300
3493 Branch: REL9_2_STABLE [02b9fd73e] 2014-04-08 14:51:56 +0300
3494 Branch: REL9_1_STABLE [ac0078c1d] 2014-04-08 14:52:01 +0300
3495 Branch: REL9_0_STABLE [d034e9b3b] 2014-04-08 14:52:07 +0300
3500 Don't clear the right-link of a GiST index page while replaying
3501 updates from WAL (Heikki Linnakangas)
3505 This error could lead to transiently wrong answers from GiST index
3506 scans performed in Hot Standby.
3511 Author: Tom Lane <tgl@sss.pgh.pa.us>
3512 Branch: master Release: REL9_4_BR [c170655cc] 2014-06-09 16:31:11 -0400
3513 Branch: REL9_3_STABLE [717c116f1] 2014-06-09 16:31:16 -0400
3514 Branch: REL9_2_STABLE [93328b2df] 2014-06-09 16:30:46 -0400
3519 Fix corner-case infinite loop during insertion into an SP-GiST text
3525 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3526 Branch: master [1264ef31a] 2014-07-16 09:19:06 +0300
3527 Branch: REL9_4_STABLE [9b3ef66af] 2014-07-16 09:20:20 +0300
3528 Branch: REL9_3_STABLE [a4867d041] 2014-07-16 09:20:31 +0300
3533 Fix incorrect answers from SP-GiST index searches
3534 with <literal>-|-</literal> (range adjacency) operator
3535 (Heikki Linnakangas)
3540 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3541 Branch: master Release: REL9_4_BR [b0b263baa] 2014-06-09 15:17:23 -0400
3542 Branch: REL9_3_STABLE [167a2535f] 2014-06-09 15:17:23 -0400
3547 Fix wraparound handling for <filename>pg_multixact/members</>
3548 (Álvaro Herrera)
3553 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3554 Branch: master [f741300c9] 2014-06-27 14:43:53 -0400
3555 Branch: REL9_4_STABLE [56f86bb76] 2014-06-27 14:43:52 -0400
3556 Branch: REL9_3_STABLE [9a28c3752] 2014-06-27 14:43:52 -0400
3561 Truncate <structname>pg_multixact</> during checkpoints, not
3562 during <command>VACUUM</> (Álvaro Herrera)
3566 This change ensures that <structname>pg_multixact</> segments can't be
3567 removed if they'd still be needed during WAL replay after a crash.
3572 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3573 Branch: master Release: REL9_4_BR [2a8e1ac59] 2014-04-17 17:47:50 +0300
3574 Branch: REL9_3_STABLE [95aa823eb] 2014-04-17 17:47:58 +0300
3579 Fix possible inconsistency of all-visible flags after WAL recovery
3580 (Heikki Linnakangas)
3585 Author: Tom Lane <tgl@sss.pgh.pa.us>
3586 Branch: master Release: REL9_4_BR [0f928a85e] 2014-05-05 14:43:39 -0400
3587 Branch: REL9_3_STABLE [4f4ef042f] 2014-05-05 14:43:42 -0400
3588 Branch: REL9_2_STABLE [c8fbeeb45] 2014-05-05 14:43:46 -0400
3589 Branch: REL9_1_STABLE [2f4ee3a2f] 2014-05-05 14:43:49 -0400
3590 Branch: REL9_0_STABLE [7d5b68621] 2014-05-05 14:43:52 -0400
3591 Branch: REL8_4_STABLE [3ada1fab8] 2014-05-05 14:43:55 -0400
3596 Fix possibly-incorrect cache invalidation during nested calls
3597 to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
3602 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3603 Branch: master Release: REL9_4_BR [1a917ae86] 2014-04-24 15:41:55 -0300
3604 Branch: REL9_3_STABLE [c0bd128c8] 2014-04-24 15:41:55 -0300
3609 Fix race condition when updating a tuple concurrently locked by
3610 another process (Andres Freund, Álvaro Herrera)
3615 Author: Tom Lane <tgl@sss.pgh.pa.us>
3616 Branch: REL9_3_STABLE [a2db7b7d0] 2014-06-26 10:41:59 -0700
3617 Branch: REL9_2_STABLE [0cf16686b] 2014-06-26 10:42:03 -0700
3618 Branch: REL9_1_STABLE [555d0b200] 2014-06-26 10:42:08 -0700
3623 Fix <quote>could not find pathkey item to sort</> planner failures
3624 with <literal>UNION ALL</> over subqueries reading from tables with
3625 inheritance children (Tom Lane)
3630 Author: Tom Lane <tgl@sss.pgh.pa.us>
3631 Branch: master [9e2f2d7a0] 2014-07-08 14:03:56 -0400
3632 Branch: REL9_4_STABLE [ac45aa1dd] 2014-07-08 14:03:45 -0400
3633 Branch: REL9_3_STABLE [6d36aee5b] 2014-07-08 14:03:19 -0400
3634 Branch: REL9_2_STABLE [189bd09cb] 2014-07-08 14:03:23 -0400
3635 Branch: REL9_1_STABLE [fa21a760b] 2014-07-08 14:03:26 -0400
3636 Branch: REL9_0_STABLE [2865d5952] 2014-07-08 14:03:30 -0400
3637 Branch: REL8_4_STABLE [2e7469dc8] 2014-07-08 14:03:32 -0400
3642 Don't assume a subquery's output is unique if there's a set-returning
3643 function in its targetlist (David Rowley)
3647 This oversight could lead to misoptimization of constructs
3648 like <literal>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
3654 Author: Tom Lane <tgl@sss.pgh.pa.us>
3655 Branch: master Release: REL9_4_BR [95811032d] 2014-04-29 13:12:46 -0400
3656 Branch: REL9_3_STABLE [150a44e83] 2014-04-29 13:12:29 -0400
3657 Branch: REL9_2_STABLE [0901dbab3] 2014-04-29 13:12:33 -0400
3662 Improve planner to drop constant-NULL inputs
3663 of <literal>AND</>/<literal>OR</> when possible (Tom Lane)
3667 This change fixes some cases where the more aggressive parameter
3668 substitution done by 9.2 and later can lead to a worse plan than
3669 older versions produced.
3674 Author: Tom Lane <tgl@sss.pgh.pa.us>
3675 Branch: master Release: REL9_4_BR [c7b353959] 2014-04-03 22:02:24 -0400
3676 Branch: REL9_3_STABLE [d359f71ac] 2014-04-03 22:02:27 -0400
3681 Ensure that the planner sees equivalent <literal>VARIADIC</> and
3682 non-<literal>VARIADIC</> function calls as equivalent (Tom Lane)
3686 This bug could for example result in failure to use expression indexes
3687 involving variadic functions. It might be necessary to re-create such
3688 indexes, and/or re-create views including variadic function calls that
3689 should match the indexes, for the fix to be effective for existing 9.3
3695 Author: Tom Lane <tgl@sss.pgh.pa.us>
3696 Branch: master [57d8c1270] 2014-06-24 21:22:40 -0700
3697 Branch: REL9_4_STABLE [a331512de] 2014-06-24 21:22:43 -0700
3698 Branch: REL9_3_STABLE [a1fc36495] 2014-06-24 21:22:47 -0700
3703 Fix handling of nested <type>JSON</> objects
3704 in <function>json_populate_recordset()</> and friends
3705 (Michael Paquier, Tom Lane)
3709 A nested <type>JSON</> object could result in previous fields of the
3710 parent object not being shown in the output.
3715 Author: Tom Lane <tgl@sss.pgh.pa.us>
3716 Branch: master Release: REL9_4_BR [0ca6bda8e] 2014-05-09 12:55:31 -0400
3717 Branch: REL9_3_STABLE [13c679995] 2014-05-09 12:55:03 -0400
3718 Branch: REL9_2_STABLE [25c933c5c] 2014-05-09 12:55:06 -0400
3723 Fix identification of input type category in <function>to_json()</>
3724 and friends (Tom Lane)
3728 This is known to have led to inadequate quoting of <type>money</>
3729 fields in the <type>JSON</> result, and there may have been wrong
3730 results for other data types as well.
3735 Author: Tom Lane <tgl@sss.pgh.pa.us>
3736 Branch: master Release: REL9_4_BR [3f8c8e3c6] 2014-05-01 15:19:06 -0400
3737 Branch: REL9_3_STABLE [b72e90bc3] 2014-05-01 15:19:10 -0400
3738 Branch: REL9_2_STABLE [8c43980a1] 2014-05-01 15:19:14 -0400
3739 Branch: REL9_1_STABLE [db1fdc945] 2014-05-01 15:19:17 -0400
3740 Branch: REL9_0_STABLE [7a4f114f3] 2014-05-01 15:19:20 -0400
3741 Branch: REL8_4_STABLE [70debcf09] 2014-05-01 15:19:23 -0400
3746 Fix failure to detoast fields in composite elements of structured
3751 This corrects cases where TOAST pointers could be copied into other
3752 tables without being dereferenced. If the original data is later
3753 deleted, it would lead to errors like <quote>missing chunk number 0
3754 for toast value ...</> when the now-dangling pointer is used.
3759 Author: Tom Lane <tgl@sss.pgh.pa.us>
3760 Branch: master [d68581483] 2014-07-11 19:12:35 -0400
3761 Branch: REL9_4_STABLE [f280eff94] 2014-07-11 19:12:38 -0400
3762 Branch: REL9_3_STABLE [b77e6b959] 2014-07-11 19:12:42 -0400
3763 Branch: REL9_2_STABLE [261f954e7] 2014-07-11 19:12:45 -0400
3764 Branch: REL9_1_STABLE [c45841f9e] 2014-07-11 19:12:48 -0400
3765 Branch: REL9_0_STABLE [cd8ba91a0] 2014-07-11 19:12:51 -0400
3766 Branch: REL8_4_STABLE [a81fbcfb3] 2014-07-11 19:12:56 -0400
3771 Fix <quote>record type has not been registered</> failures with
3772 whole-row references to the output of Append plan nodes (Tom Lane)
3777 Author: Tom Lane <tgl@sss.pgh.pa.us>
3778 Branch: master Release: REL9_4_BR [04e5025be] 2014-05-07 14:25:11 -0400
3779 Branch: REL9_3_STABLE [fc58c39d4] 2014-05-07 14:25:13 -0400
3780 Branch: REL9_2_STABLE [022b5f2b2] 2014-05-07 14:25:17 -0400
3781 Branch: REL9_1_STABLE [229101db4] 2014-05-07 14:25:22 -0400
3782 Branch: REL9_0_STABLE [7f66ade71] 2014-05-07 14:25:25 -0400
3783 Branch: REL8_4_STABLE [2a527baa3] 2014-05-07 14:25:28 -0400
3788 Fix possible crash when invoking a user-defined function while
3789 rewinding a cursor (Tom Lane)
3794 Author: Tom Lane <tgl@sss.pgh.pa.us>
3795 Branch: master [45b0f3572] 2014-06-19 22:14:26 -0400
3796 Branch: REL9_4_STABLE [1044e79a0] 2014-06-19 22:13:44 -0400
3797 Branch: REL9_3_STABLE [c1f8fb9bf] 2014-06-19 22:13:47 -0400
3798 Branch: REL9_2_STABLE [b568d3836] 2014-06-19 22:13:51 -0400
3799 Branch: REL9_1_STABLE [06d5eacbc] 2014-06-19 22:13:54 -0400
3800 Branch: REL9_0_STABLE [83131e634] 2014-06-19 22:13:58 -0400
3801 Branch: REL8_4_STABLE [d297c91d4] 2014-06-19 22:14:00 -0400
3806 Fix query-lifespan memory leak while evaluating the arguments for a
3807 function in <literal>FROM</> (Tom Lane)
3812 Author: Tom Lane <tgl@sss.pgh.pa.us>
3813 Branch: master [1567e659a] 2014-07-18 13:00:27 -0400
3814 Branch: REL9_4_STABLE [4a66f0f2d] 2014-07-18 13:00:39 -0400
3815 Branch: REL9_3_STABLE [5ef588b22] 2014-07-18 13:00:43 -0400
3816 Branch: REL9_2_STABLE [a223b9e36] 2014-07-18 13:00:48 -0400
3817 Branch: REL9_1_STABLE [8a817785a] 2014-07-18 13:00:52 -0400
3818 Branch: REL9_0_STABLE [b8c24f7ab] 2014-07-18 13:00:57 -0400
3819 Branch: REL8_4_STABLE [e0a233744] 2014-07-18 13:01:04 -0400
3824 Fix session-lifespan memory leaks in regular-expression processing
3825 (Tom Lane, Arthur O'Dwyer, Greg Stark)
3830 Author: Tom Lane <tgl@sss.pgh.pa.us>
3831 Branch: master [fd90b5d57] 2014-06-10 22:48:16 -0400
3832 Branch: REL9_4_STABLE [7f9fbb842] 2014-06-10 22:48:31 -0400
3833 Branch: REL9_3_STABLE [87db9534a] 2014-06-10 22:48:39 -0400
3834 Branch: REL9_2_STABLE [802323535] 2014-06-10 22:48:45 -0400
3835 Branch: REL9_1_STABLE [62f134954] 2014-06-10 22:48:52 -0400
3836 Branch: REL9_0_STABLE [4d5ea4290] 2014-06-10 22:48:59 -0400
3837 Branch: REL8_4_STABLE [f3f40434b] 2014-06-10 22:49:08 -0400
3842 Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
3847 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3848 Branch: master [a87a7dc8b] 2014-06-24 13:27:18 +0300
3849 Branch: REL9_4_STABLE [1818ae0a7] 2014-06-24 13:31:06 +0300
3850 Branch: REL9_3_STABLE [2a7512bc7] 2014-06-24 13:31:00 +0300
3851 Branch: REL9_2_STABLE [1c9f9e888] 2014-06-24 13:30:54 +0300
3852 Branch: REL9_1_STABLE [dd1a5b09b] 2014-06-24 13:30:41 +0300
3857 Prevent foreign tables from being created with OIDS
3858 when <xref linkend="guc-default-with-oids"> is true
3864 Author: Andres Freund <andres@anarazel.de>
3865 Branch: master Release: REL9_4_BR [621a99a66] 2014-06-04 21:36:19 +0200
3866 Branch: REL9_3_STABLE [edde59db1] 2014-06-04 23:26:08 +0200
3867 Branch: REL9_2_STABLE [315442c01] 2014-06-04 23:25:52 +0200
3868 Branch: REL9_1_STABLE [6bf6e528a] 2014-06-04 23:26:30 +0200
3869 Branch: REL9_0_STABLE [037c6fb9f] 2014-06-04 23:27:10 +0200
3870 Branch: REL8_4_STABLE [80d45ae4e] 2014-06-04 23:27:38 +0200
3875 Fix liveness checks for rows that were inserted in the current
3876 transaction and then deleted by a now-rolled-back subtransaction
3881 This could cause problems (at least spurious warnings, and at worst an
3882 infinite loop) if <command>CREATE INDEX</> or <command>CLUSTER</> were
3883 done later in the same transaction.
3888 Author: Tom Lane <tgl@sss.pgh.pa.us>
3889 Branch: master Release: REL9_4_BR [d19bd29f0] 2014-04-24 13:29:48 -0400
3890 Branch: REL9_3_STABLE [12e41a5d7] 2014-04-24 13:29:56 -0400
3891 Branch: REL9_2_STABLE [ea9ac7741] 2014-04-24 13:30:00 -0400
3892 Branch: REL9_1_STABLE [70e7be264] 2014-04-24 13:30:04 -0400
3893 Branch: REL9_0_STABLE [b7a3e1173] 2014-04-24 13:30:08 -0400
3894 Branch: REL8_4_STABLE [82fbd88a7] 2014-04-24 13:30:14 -0400
3899 Clear <structname>pg_stat_activity</>.<structfield>xact_start</>
3900 during <command>PREPARE TRANSACTION</> (Andres Freund)
3904 After the <command>PREPARE</>, the originating session is no longer in
3905 a transaction, so it should not continue to display a transaction
3911 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3912 Branch: master [6bdf4b9c7] 2014-07-15 13:24:07 -0400
3913 Branch: REL9_4_STABLE [e45229bb6] 2014-07-15 13:24:07 -0400
3914 Branch: REL9_3_STABLE [12c5bbdcb] 2014-07-15 13:24:07 -0400
3915 Branch: REL9_2_STABLE [b42f09fc8] 2014-07-15 13:24:07 -0400
3916 Branch: REL9_1_STABLE [a41dc7321] 2014-07-15 13:24:07 -0400
3917 Branch: REL9_0_STABLE [bf08864b8] 2014-07-15 13:24:07 -0400
3918 Branch: REL8_4_STABLE [4b767789d] 2014-07-15 13:24:07 -0400
3923 Fix <command>REASSIGN OWNED</> to not fail for text search objects
3924 (Álvaro Herrera)
3929 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3930 Branch: master [b7e51d9c0] 2014-06-27 14:43:46 -0400
3931 Branch: REL9_4_STABLE [9eecc8a7c] 2014-06-27 14:43:46 -0400
3932 Branch: REL9_3_STABLE [e86cfc4bb] 2014-06-27 14:43:45 -0400
3937 Prevent <structname>pg_class</>.<structfield>relminmxid</> values from
3938 going backwards during <command>VACUUM FULL</> (Álvaro Herrera)
3943 Author: Tom Lane <tgl@sss.pgh.pa.us>
3944 Branch: master Release: REL9_4_BR [41de93c53] 2014-04-30 13:26:26 -0400
3945 Branch: REL9_3_STABLE [0652d77fb] 2014-04-30 13:26:29 -0400
3950 Reduce indentation in rule/view dumps to improve readability and avoid
3951 excessive whitespace (Greg Stark, Tom Lane)
3955 This change reduces the amount of indentation applied to nested
3956 constructs, including some cases that the user probably doesn't think
3957 of as nested, such as UNION lists. Previously, deeply nested
3958 constructs were printed with an amount of whitespace growing as
3959 O(N^2), which created a performance problem and even risk of
3960 out-of-memory failures. Now the indentation is reduced modulo 40,
3961 which is initially odd to look at but seems to preserve readability
3962 better than simply limiting the indentation would do.
3963 Redundant parenthesization of UNION lists has been reduced as well.
3968 Author: Tom Lane <tgl@sss.pgh.pa.us>
3969 Branch: master Release: REL9_4_BR [91e16b980] 2014-05-01 20:22:37 -0400
3970 Branch: REL9_3_STABLE [e31193d49] 2014-05-01 20:22:39 -0400
3975 Fix dumping of rules/views when subsequent addition of a column has
3976 resulted in multiple input columns matching a <literal>USING</>
3977 specification (Tom Lane)
3982 Author: Tom Lane <tgl@sss.pgh.pa.us>
3983 Branch: master [9b35ddce9] 2014-07-19 14:28:52 -0400
3984 Branch: REL9_4_STABLE [f0a497e4c] 2014-07-19 14:29:00 -0400
3985 Branch: REL9_3_STABLE [b978ab5f6] 2014-07-19 14:29:05 -0400
3990 Repair view printing for some cases involving functions
3991 in <literal>FROM</> that return a composite type containing dropped
3997 Author: Tom Lane <tgl@sss.pgh.pa.us>
3998 Branch: master Release: REL9_4_BR [5d8117e1f] 2014-04-05 18:16:08 -0400
3999 Branch: REL9_3_STABLE [21aa47d01] 2014-04-05 18:16:11 -0400
4000 Branch: REL9_2_STABLE [53463e247] 2014-04-05 18:16:14 -0400
4001 Branch: REL9_1_STABLE [093d3da1d] 2014-04-05 18:16:17 -0400
4002 Branch: REL9_0_STABLE [5c26ab659] 2014-04-05 18:16:20 -0400
4003 Branch: REL8_4_STABLE [969735cf1] 2014-04-05 18:16:24 -0400
4008 Block signals during postmaster startup (Tom Lane)
4012 This ensures that the postmaster will properly clean up after itself
4013 if, for example, it receives <systemitem>SIGINT</> while still
4019 Author: Tom Lane <tgl@sss.pgh.pa.us>
4020 Branch: master Release: REL9_4_BR [fc752505a] 2014-04-02 17:11:24 -0400
4021 Branch: REL9_3_STABLE [65183fb78] 2014-04-02 17:11:27 -0400
4022 Branch: REL9_2_STABLE [029decfec] 2014-04-02 17:11:31 -0400
4023 Branch: REL9_1_STABLE [b7a424371] 2014-04-02 17:11:34 -0400
4028 Fix client host name lookup when processing <filename>pg_hba.conf</>
4029 entries that specify host names instead of IP addresses (Tom Lane)
4033 Ensure that reverse-DNS lookup failures are reported, instead of just
4034 silently not matching such entries. Also ensure that we make only
4035 one reverse-DNS lookup attempt per connection, not one per host name
4036 entry, which is what previously happened if the lookup attempts failed.
4041 Author: Tom Lane <tgl@sss.pgh.pa.us>
4042 Branch: master Release: REL9_4_BR [b203c57bb] 2014-04-04 22:03:35 -0400
4043 Branch: REL9_3_STABLE [7d1a0f585] 2014-04-04 22:03:38 -0400
4044 Branch: REL9_2_STABLE [6d25eb314] 2014-04-04 22:03:42 -0400
4049 Allow the root user to use <literal>postgres -C variable</> and
4050 <literal>postgres --describe-config</> (MauMau)
4054 The prohibition on starting the server as root does not need to extend
4055 to these operations, and relaxing it prevents failure
4056 of <application>pg_ctl</> in some scenarios.
4061 Author: Noah Misch <noah@leadboat.com>
4062 Branch: master [be76a6d39] 2014-06-14 09:41:13 -0400
4063 Branch: REL9_4_STABLE [6583a75b2] 2014-06-14 09:41:16 -0400
4064 Branch: REL9_3_STABLE [1442b426e] 2014-06-14 09:41:17 -0400
4065 Branch: REL9_2_STABLE [453a5d91d] 2014-06-14 09:41:17 -0400
4066 Branch: REL9_1_STABLE [481831b43] 2014-06-14 09:41:18 -0400
4067 Branch: REL9_0_STABLE [5f09c583c] 2014-06-14 09:41:18 -0400
4068 Branch: REL8_4_STABLE [95cefd30e] 2014-06-14 09:41:18 -0400
4073 Secure Unix-domain sockets of temporary postmasters started during
4074 <literal>make check</> (Noah Misch)
4078 Any local user able to access the socket file could connect as the
4079 server's bootstrap superuser, then proceed to execute arbitrary code as
4080 the operating-system user running the test, as we previously noted in
4081 CVE-2014-0067. This change defends against that risk by placing the
4082 server's socket in a temporary, mode 0700 subdirectory
4083 of <filename>/tmp</>. The hazard remains however on platforms where
4084 Unix sockets are not supported, notably Windows, because then the
4085 temporary postmaster must accept local TCP connections.
4089 A useful side effect of this change is to simplify
4090 <literal>make check</> testing in builds that
4091 override <literal>DEFAULT_PGSOCKET_DIR</>. Popular non-default values
4092 like <filename>/var/run/postgresql</> are often not writable by the
4093 build user, requiring workarounds that will no longer be necessary.
4098 Author: Tom Lane <tgl@sss.pgh.pa.us>
4099 Branch: master Release: REL9_4_BR [abe075dff] 2014-04-04 23:09:35 -0400
4100 Branch: REL9_3_STABLE [84520f91c] 2014-04-04 23:09:38 -0400
4101 Branch: REL9_2_STABLE [1a496a12b] 2014-04-04 23:09:41 -0400
4102 Branch: REL9_1_STABLE [af7738fe6] 2014-04-04 23:09:45 -0400
4103 Branch: REL9_0_STABLE [634056567] 2014-04-04 23:09:49 -0400
4108 Fix tablespace creation WAL replay to work on Windows (MauMau)
4113 Author: Bruce Momjian <bruce@momjian.us>
4114 Branch: master Release: REL9_4_BR [418093465] 2014-04-16 10:45:48 -0400
4115 Branch: REL9_3_STABLE [f716c3250] 2014-04-16 10:45:48 -0400
4116 Branch: REL9_2_STABLE [966f015b6] 2014-04-16 10:45:48 -0400
4117 Branch: REL9_1_STABLE [bed499ed1] 2014-04-16 10:45:48 -0400
4118 Branch: REL9_0_STABLE [a86b2daff] 2014-04-16 10:45:48 -0400
4123 Fix detection of socket creation failures on Windows (Bruce Momjian)
4128 Author: Tom Lane <tgl@sss.pgh.pa.us>
4129 Branch: master Release: REL9_4_BR [6862ca697] 2014-04-05 12:41:25 -0400
4130 Branch: REL9_3_STABLE [18db2150c] 2014-04-05 12:41:28 -0400
4131 Branch: REL9_2_STABLE [bdc3e95c2] 2014-04-05 12:41:31 -0400
4132 Branch: REL9_1_STABLE [cb11f4d8d] 2014-04-05 12:41:34 -0400
4133 Branch: REL9_0_STABLE [9500d8f89] 2014-04-05 12:41:38 -0400
4134 Branch: REL8_4_STABLE [30e434bdf] 2014-04-05 12:41:40 -0400
4139 On Windows, allow new sessions to absorb values of PGC_BACKEND
4140 parameters (such as <xref linkend="guc-log-connections">) from the
4141 configuration file (Amit Kapila)
4145 Previously, if such a parameter were changed in the file post-startup,
4146 the change would have no effect.
4151 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4152 Branch: master Release: REL9_4_BR [503de5462] 2014-04-30 10:35:52 +0300
4153 Branch: REL9_3_STABLE [8a90a39b4] 2014-04-30 10:35:46 +0300
4154 Branch: REL9_2_STABLE [e2558e016] 2014-04-30 10:36:31 +0300
4155 Branch: REL9_1_STABLE [94095e341] 2014-04-30 10:36:41 +0300
4156 Branch: REL9_0_STABLE [c06b7219a] 2014-04-30 10:38:32 +0300
4157 Branch: REL8_4_STABLE [e3f273ff6] 2014-04-30 10:39:03 +0300
4162 Properly quote executable path names on Windows (Nikhil Deshpande)
4166 This oversight could cause <application>initdb</>
4167 and <application>pg_upgrade</> to fail on Windows, if the installation
4168 path contained both spaces and <literal>@</> signs.
4173 Author: Tom Lane <tgl@sss.pgh.pa.us>
4174 Branch: master Release: REL9_4_BR [20561acf9] 2014-05-30 18:19:06 -0400
4175 Branch: REL9_3_STABLE [4f5f4da79] 2014-05-30 18:19:14 -0400
4176 Branch: REL9_2_STABLE [83ed4598b] 2014-05-30 18:18:20 -0400
4177 Branch: REL9_1_STABLE [a784a39c4] 2014-05-30 18:18:24 -0400
4178 Branch: REL9_0_STABLE [4f725bbc4] 2014-05-30 18:18:28 -0400
4179 Branch: REL8_4_STABLE [ae41bb4be] 2014-05-30 18:18:32 -0400
4184 Fix linking of <application>libpython</> on OS X (Tom Lane)
4188 The method we previously used can fail with the Python library
4189 supplied by Xcode 5.0 and later.
4194 Author: Tom Lane <tgl@sss.pgh.pa.us>
4195 Branch: master Release: REL9_4_BR [2f557167b] 2014-05-07 21:39:13 -0400
4196 Branch: REL9_3_STABLE [b4f9c93ce] 2014-05-07 21:38:38 -0400
4197 Branch: REL9_2_STABLE [f7672c8ce] 2014-05-07 21:38:41 -0400
4198 Branch: REL9_1_STABLE [86888054a] 2014-05-07 21:38:44 -0400
4199 Branch: REL9_0_STABLE [77e662827] 2014-05-07 21:38:47 -0400
4200 Branch: REL8_4_STABLE [664ac3de7] 2014-05-07 21:38:50 -0400
4205 Avoid buffer bloat in <application>libpq</> when the server
4206 consistently sends data faster than the client can absorb it
4207 (Shin-ichi Morita, Tom Lane)
4211 <application>libpq</> could be coerced into enlarging its input buffer
4212 until it runs out of memory (which would be reported misleadingly
4213 as <quote>lost synchronization with server</>). Under ordinary
4214 circumstances it's quite far-fetched that data could be continuously
4215 transmitted more quickly than the <function>recv()</> loop can
4216 absorb it, but this has been observed when the client is artificially
4217 slowed by scheduler constraints.
4222 Author: Magnus Hagander <magnus@hagander.net>
4223 Branch: master Release: REL9_4_BR [585bca393] 2014-04-16 18:58:10 +0200
4224 Branch: REL9_3_STABLE [cc269272c] 2014-04-16 18:58:55 +0200
4225 Branch: REL9_2_STABLE [b764080ee] 2014-04-16 18:59:11 +0200
4226 Branch: REL9_1_STABLE [c4bf15b9c] 2014-04-16 18:59:28 +0200
4227 Branch: REL9_0_STABLE [96752b02d] 2014-04-16 18:59:37 +0200
4228 Branch: REL8_4_STABLE [b4ae2e37d] 2014-04-16 18:59:48 +0200
4233 Ensure that LDAP lookup attempts in <application>libpq</> time out as
4234 intended (Laurenz Albe)
4239 Author: Michael Meskes <meskes@postgresql.org>
4240 Branch: master Release: REL9_4_BR [8d6a07fa0] 2014-05-06 13:09:51 +0200
4241 Branch: REL9_3_STABLE [b4eeb9d58] 2014-05-06 13:04:30 +0200
4242 Branch: REL9_2_STABLE [3a024c110] 2014-05-06 13:14:01 +0200
4243 Branch: REL9_1_STABLE [fb66e88cf] 2014-05-06 13:20:22 +0200
4244 Branch: REL9_0_STABLE [91c8c106f] 2014-05-06 13:24:13 +0200
4246 Author: Michael Meskes <meskes@postgresql.org>
4247 Branch: master Release: REL9_4_BR [f91796853] 2014-04-09 11:23:38 +0200
4248 Branch: REL9_3_STABLE [3b8fda676] 2014-04-09 11:38:40 +0200
4249 Branch: REL9_2_STABLE [2b3136de9] 2014-04-09 11:43:13 +0200
4250 Branch: REL9_1_STABLE [0de106836] 2014-04-09 12:04:33 +0200
4251 Branch: REL9_0_STABLE [0c2eb989e] 2014-04-09 12:12:32 +0200
4256 Fix <application>ecpg</> to do the right thing when an array
4257 of <type>char *</> is the target for a FETCH statement returning more
4258 than one row, as well as some other array-handling fixes
4264 Author: Tom Lane <tgl@sss.pgh.pa.us>
4265 Branch: master Release: REL9_4_BR [62215de29] 2014-03-29 17:34:00 -0400
4266 Branch: REL9_3_STABLE [3080bbaa9] 2014-03-29 17:34:03 -0400
4271 Fix <application>pg_dump</> to cope with a materialized view that
4272 depends on a table's primary key (Tom Lane)
4276 This occurs if the view's query relies on functional dependency to
4277 abbreviate a <literal>GROUP BY</> list. <application>pg_dump</> got
4278 sufficiently confused that it dumped the materialized view as a
4284 Author: Tom Lane <tgl@sss.pgh.pa.us>
4285 Branch: master Release: REL9_4_BR [19f2d6cda] 2014-03-18 10:38:25 -0400
4286 Branch: REL9_3_STABLE [63817f86b] 2014-03-18 10:38:38 -0400
4291 Fix parsing of <application>pg_dumpall</>'s <option>-i</> switch
4297 Author: Tom Lane <tgl@sss.pgh.pa.us>
4298 Branch: master [c81e63d85] 2014-06-12 20:14:32 -0400
4299 Branch: REL9_4_STABLE [c3c1401ca] 2014-06-12 20:14:36 -0400
4300 Branch: REL9_3_STABLE [a11577f47] 2014-06-12 20:14:39 -0400
4301 Branch: REL9_2_STABLE [ce7fc4fbb] 2014-06-12 20:14:46 -0400
4302 Branch: REL9_1_STABLE [294a48985] 2014-06-12 20:14:49 -0400
4303 Branch: REL9_0_STABLE [3fec825f9] 2014-06-12 20:14:52 -0400
4304 Branch: REL8_4_STABLE [6adddac8a] 2014-06-12 20:14:55 -0400
4309 Fix <application>pg_restore</>'s processing of old-style large object
4314 A direct-to-database restore from an archive file generated by a
4315 pre-9.0 version of <application>pg_dump</> would usually fail if the
4316 archive contained more than a few comments for large objects.
4321 Author: Bruce Momjian <bruce@momjian.us>
4322 Branch: master [3088cc370] 2014-07-07 13:24:08 -0400
4323 Branch: REL9_4_STABLE [f64fe2cbe] 2014-07-07 13:24:08 -0400
4324 Branch: REL9_3_STABLE [f1d7ff5bb] 2014-07-07 13:24:08 -0400
4325 Branch: REL9_2_STABLE [759c9fb63] 2014-07-07 13:24:08 -0400
4330 Fix <application>pg_upgrade</> for cases where the new server creates
4331 a TOAST table but the old version did not (Bruce Momjian)
4335 This rare situation would manifest as <quote>relation OID mismatch</>
4341 Author: Bruce Momjian <bruce@momjian.us>
4342 Branch: master [a61daa14d] 2014-07-02 15:29:38 -0400
4343 Branch: REL9_4_STABLE [b446a384b] 2014-07-02 15:29:38 -0400
4344 Branch: REL9_3_STABLE [3d2e18510] 2014-07-02 15:29:38 -0400
4346 Author: Tom Lane <tgl@sss.pgh.pa.us>
4347 Branch: master [78db307bb] 2014-07-21 11:41:53 -0400
4348 Branch: REL9_4_STABLE [d122387d7] 2014-07-21 11:42:00 -0400
4349 Branch: REL9_3_STABLE [e7984cca0] 2014-07-21 11:42:05 -0400
4354 In <application>pg_upgrade</>,
4355 preserve <structname>pg_database</>.<structfield>datminmxid</>
4356 and <structname>pg_class</>.<structfield>relminmxid</> values from the
4357 old cluster, or insert reasonable values when upgrading from pre-9.3;
4358 also defend against unreasonable values in the core server
4359 (Bruce Momjian, Álvaro Herrera, Tom Lane)
4363 These changes prevent scenarios in which autovacuum might insist on
4364 scanning the entire cluster's contents immediately upon starting the
4365 new cluster, or in which tracking of unfrozen MXID values might be
4366 disabled completely.
4371 Author: Tom Lane <tgl@sss.pgh.pa.us>
4372 Branch: master Release: REL9_4_BR [e416830a2] 2014-05-20 12:20:47 -0400
4373 Branch: REL9_3_STABLE [0266a9c78] 2014-05-20 12:20:52 -0400
4374 Branch: REL9_2_STABLE [31f579f09] 2014-05-20 12:20:57 -0400
4379 Prevent <filename>contrib/auto_explain</> from changing the output of
4380 a user's <command>EXPLAIN</> (Tom Lane)
4384 If <filename>auto_explain</> is active, it could cause
4385 an <literal>EXPLAIN (ANALYZE, TIMING OFF)</> command to nonetheless
4386 print timing information.
4391 Author: Joe Conway <mail@joeconway.com>
4392 Branch: master [1dde5782e] 2014-06-20 12:24:59 -0700
4393 Branch: REL9_4_STABLE [9d884a34c] 2014-06-20 12:26:26 -0700
4394 Branch: REL9_3_STABLE [b3a3f3d2f] 2014-06-20 12:26:43 -0700
4395 Branch: REL9_2_STABLE [3e2cfa42f] 2014-06-20 12:27:04 -0700
4400 Fix query-lifespan memory leak in <filename>contrib/dblink</>
4401 (MauMau, Joe Conway)
4406 Author: Bruce Momjian <bruce@momjian.us>
4407 Branch: master Release: REL9_4_BR [9fe55259f] 2014-04-17 12:37:53 -0400
4408 Branch: REL9_3_STABLE [fc72e94a1] 2014-04-17 12:37:53 -0400
4409 Branch: REL9_2_STABLE [ea8725a8b] 2014-04-17 12:37:53 -0400
4410 Branch: REL9_1_STABLE [fc02b87e2] 2014-04-17 12:37:53 -0400
4411 Branch: REL9_0_STABLE [a1b9c4630] 2014-04-17 12:37:53 -0400
4412 Branch: REL8_4_STABLE [df2e62603] 2014-04-17 12:37:53 -0400
4417 In <filename>contrib/pgcrypto</> functions, ensure sensitive
4418 information is cleared from stack variables before returning
4424 Author: Noah Misch <noah@leadboat.com>
4425 Branch: master [9d0826c59] 2014-06-30 16:59:19 -0400
4426 Branch: REL9_4_STABLE [37a4d3d70] 2014-06-30 16:59:44 -0400
4427 Branch: REL9_3_STABLE [f14e40852] 2014-06-30 17:00:22 -0400
4428 Branch: REL9_2_STABLE [f6d6b7b1e] 2014-06-30 17:00:40 -0400
4433 Prevent use of already-freed memory in
4434 <filename>contrib/pgstattuple</>'s <function>pgstat_heap()</>
4440 Author: Tom Lane <tgl@sss.pgh.pa.us>
4441 Branch: master Release: REL9_4_BR [c941aed96] 2014-05-29 13:51:02 -0400
4442 Branch: REL9_3_STABLE [961dd203a] 2014-05-29 13:51:05 -0400
4443 Branch: REL9_2_STABLE [2fb9fb661] 2014-05-29 13:51:09 -0400
4444 Branch: REL9_1_STABLE [3606754da] 2014-05-29 13:51:12 -0400
4445 Branch: REL9_0_STABLE [b2f6754d2] 2014-05-29 13:51:15 -0400
4446 Branch: REL8_4_STABLE [fd785441f] 2014-05-29 13:51:18 -0400
4451 In <filename>contrib/uuid-ossp</>, cache the state of the OSSP UUID
4452 library across calls (Tom Lane)
4456 This improves the efficiency of UUID generation and reduces the amount
4457 of entropy drawn from <filename>/dev/urandom</>, on platforms that
4463 Author: Tom Lane <tgl@sss.pgh.pa.us>
4464 Branch: master [b1864fabf] 2014-07-19 15:00:50 -0400
4465 Branch: REL9_4_STABLE [e5ea60e80] 2014-07-19 15:01:05 -0400
4466 Branch: REL9_3_STABLE [bd5458f52] 2014-07-19 15:01:12 -0400
4467 Branch: REL9_2_STABLE [7d09e4854] 2014-07-19 15:01:18 -0400
4468 Branch: REL9_1_STABLE [40ccb6530] 2014-07-19 15:01:28 -0400
4469 Branch: REL9_0_STABLE [7659b6913] 2014-07-19 15:01:38 -0400
4470 Branch: REL8_4_STABLE [c51da696b] 2014-07-19 15:01:45 -0400
4475 Update time zone data files to <application>tzdata</> release 2014e
4476 for DST law changes in Crimea, Egypt, and Morocco.
4485 <sect1 id="release-9-3-4">
4486 <title>Release 9.3.4</title>
4489 <title>Release Date</title>
4490 <simpara>2014-03-20</simpara>
4494 This release contains a variety of fixes from 9.3.3.
4495 For information about new features in the 9.3 major release, see
4496 <xref linkend="release-9-3">.
4500 <title>Migration to Version 9.3.4</title>
4503 A dump/restore is not required for those running 9.3.X.
4507 However, the error fixed in the first changelog entry below could have
4508 resulted in corrupt data on standby servers. It may be prudent to
4509 reinitialize standby servers from fresh base backups after installing
4514 Also, if you are upgrading from a version earlier than 9.3.3,
4515 see <xref linkend="release-9-3-3">.
4521 <title>Changes</title>
4526 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4527 Branch: master [6bfa88acd] 2014-02-27 11:13:39 -0300
4528 Branch: REL9_3_STABLE [9a57858f1] 2014-02-27 11:23:24 -0300
4533 Fix WAL replay of locking an already-updated tuple (Andres Freund,
4534 Álvaro Herrera)
4538 This error caused updated rows to not be found by index scans, resulting
4539 in inconsistent query results depending on whether an index scan was
4540 used. Subsequent processing could result in constraint violations,
4541 since the previously updated row would not be found by later index
4542 searches, thus possibly allowing conflicting rows to be inserted.
4543 Since this error is in WAL replay, it would only manifest during crash
4544 recovery or on standby servers. The improperly-replayed case most
4545 commonly arises when a table row that is referenced by a foreign-key
4546 constraint is updated concurrently with creation of a referencing row.
4551 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4552 Branch: master [fecfc2b91] 2014-03-12 10:04:57 +0200
4553 Branch: REL9_3_STABLE [4738cc356] 2014-03-12 10:05:46 +0200
4554 Branch: REL9_2_STABLE [91f932cf4] 2014-03-12 10:07:22 +0200
4555 Branch: REL9_1_STABLE [63e59c259] 2014-03-12 10:09:22 +0200
4556 Branch: REL9_0_STABLE [9954e1f03] 2014-03-12 10:09:43 +0200
4557 Branch: REL8_4_STABLE [e2bccdfcc] 2014-03-12 10:10:04 +0200
4562 Restore GIN metapages unconditionally to avoid torn-page risk
4563 (Heikki Linnakangas)
4567 Although this oversight could theoretically result in a corrupted
4568 index, it is unlikely to have caused any problems in practice, since
4569 the active part of a GIN metapage is smaller than a standard 512-byte
4575 Author: Tom Lane <tgl@sss.pgh.pa.us>
4576 Branch: master [7bae0284e] 2014-03-13 12:02:54 -0400
4577 Branch: REL9_3_STABLE [0d11fed8e] 2014-03-13 12:02:56 -0400
4578 Branch: REL9_2_STABLE [bbe9621a9] 2014-03-13 12:03:00 -0400
4579 Branch: REL9_1_STABLE [7bfdf10f5] 2014-03-13 12:03:03 -0400
4580 Branch: REL9_0_STABLE [7aea1050e] 2014-03-13 12:03:07 -0400
4585 Avoid race condition in checking transaction commit status during
4586 receipt of a <command>NOTIFY</> message (Marko Tiikkaja)
4590 This prevents a scenario wherein a sufficiently fast client might
4591 respond to a notification before database updates made by the
4592 notifier have become visible to the recipient.
4597 Author: Tom Lane <tgl@sss.pgh.pa.us>
4598 Branch: master [bf4052faa] 2014-03-06 11:37:02 -0500
4599 Branch: REL9_3_STABLE [3973034e6] 2014-03-06 11:37:04 -0500
4604 Allow materialized views to be referenced in <command>UPDATE</>
4605 and <command>DELETE</> commands (Michael Paquier)
4609 Previously such queries failed with a complaint about not being able
4610 to lock rows in the materialized view.
4615 Author: Tom Lane <tgl@sss.pgh.pa.us>
4616 Branch: master [9662143f0] 2014-03-01 15:20:56 -0500
4617 Branch: REL9_3_STABLE [f5f21315d] 2014-03-01 15:21:00 -0500
4618 Branch: REL9_2_STABLE [03e6423fc] 2014-03-01 15:21:04 -0500
4619 Branch: REL9_1_STABLE [a9eb4924a] 2014-03-01 15:21:07 -0500
4620 Branch: REL9_0_STABLE [43af0e8c6] 2014-03-01 15:21:11 -0500
4621 Branch: REL8_4_STABLE [b6e143458] 2014-03-01 15:21:13 -0500
4626 Allow regular-expression operators to be terminated early by query
4627 cancel requests (Tom Lane)
4631 This prevents scenarios wherein a pathological regular expression
4632 could lock up a server process uninterruptably for a long time.
4637 Author: Tom Lane <tgl@sss.pgh.pa.us>
4638 Branch: master [a222f7fda] 2014-02-18 12:44:20 -0500
4639 Branch: REL9_3_STABLE [0aaa42241] 2014-02-18 12:44:24 -0500
4640 Branch: REL9_2_STABLE [d7cd6a9d5] 2014-02-18 12:44:27 -0500
4641 Branch: REL9_1_STABLE [e6f7fe983] 2014-02-18 12:44:30 -0500
4642 Branch: REL9_0_STABLE [19d66ab05] 2014-02-18 12:44:33 -0500
4643 Branch: REL8_4_STABLE [dd378dd1e] 2014-02-18 12:44:36 -0500
4648 Remove incorrect code that tried to allow <literal>OVERLAPS</> with
4649 single-element row arguments (Joshua Yanovski)
4653 This code never worked correctly, and since the case is neither
4654 specified by the SQL standard nor documented, it seemed better to
4655 remove it than fix it.
4660 Author: Tom Lane <tgl@sss.pgh.pa.us>
4661 Branch: master [7c3187494] 2014-03-06 19:31:05 -0500
4662 Branch: REL9_3_STABLE [f557826f8] 2014-03-06 19:31:09 -0500
4663 Branch: REL9_2_STABLE [5ec41e345] 2014-03-06 19:31:12 -0500
4664 Branch: REL9_1_STABLE [f3e3f6c5b] 2014-03-06 19:31:16 -0500
4665 Branch: REL9_0_STABLE [bed1259e5] 2014-03-06 19:31:19 -0500
4666 Branch: REL8_4_STABLE [f043bddfe] 2014-03-06 19:31:22 -0500
4671 Avoid getting more than <literal>AccessShareLock</> when de-parsing a
4672 rule or view (Dean Rasheed)
4676 This oversight resulted in <application>pg_dump</> unexpectedly
4677 acquiring <literal>RowExclusiveLock</> locks on tables mentioned as
4678 the targets of <literal>INSERT</>/<literal>UPDATE</>/<literal>DELETE</>
4679 commands in rules. While usually harmless, that could interfere with
4680 concurrent transactions that tried to acquire, for example,
4681 <literal>ShareLock</> on those tables.
4686 Author: Tom Lane <tgl@sss.pgh.pa.us>
4687 Branch: master [fccebe421] 2014-02-25 16:04:06 -0500
4688 Branch: REL9_3_STABLE [4162a55c7] 2014-02-25 16:04:09 -0500
4689 Branch: REL9_2_STABLE [00283cae1] 2014-02-25 16:04:12 -0500
4690 Branch: REL9_1_STABLE [3e2db4c80] 2014-02-25 16:04:16 -0500
4691 Branch: REL9_0_STABLE [1e0fb6a2c] 2014-02-25 16:04:20 -0500
4696 Improve performance of index endpoint probes during planning (Tom Lane)
4700 This change fixes a significant performance problem that occurred
4701 when there were many not-yet-committed rows at the end of the index,
4702 which is a common situation for indexes on sequentially-assigned
4703 values such as timestamps or sequence-generated identifiers.
4708 Author: Tom Lane <tgl@sss.pgh.pa.us>
4709 Branch: master [77585bce0] 2014-02-21 17:10:46 -0500
4710 Branch: REL9_3_STABLE [e8655a77f] 2014-02-21 17:10:49 -0500
4715 Use non-default selectivity estimates for
4716 <literal><replaceable>value</> IN (<replaceable>list</>)</literal> and
4717 <literal><replaceable>value</> <replaceable>operator</> ANY
4718 (<replaceable>array</>)</literal>
4719 expressions when the righthand side is a stable expression (Tom Lane)
4724 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4725 Branch: master [2b4f2ab33] 2014-03-05 13:03:29 -0300
4726 Branch: REL9_3_STABLE [13ea43ab8] 2014-03-05 13:03:29 -0300
4731 Remove the correct per-database statistics file during <command>DROP
4732 DATABASE</> (Tomas Vondra)
4736 This fix prevents a permanent leak of statistics file space.
4737 Users who have done many <command>DROP DATABASE</> commands since
4738 upgrading to <productname>PostgreSQL</> 9.3 may wish to check their
4739 statistics directory and delete statistics files that do not
4740 correspond to any existing database. Please note
4741 that <filename>db_0.stat</> should not be removed.
4746 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4747 Branch: master [94ae6ba74] 2014-03-06 21:38:51 +0200
4748 Branch: REL9_3_STABLE [dcd1131c8] 2014-03-06 21:40:50 +0200
4753 Fix <application>walsender</> ping logic to avoid inappropriate
4754 disconnects under continuous load (Andres Freund, Heikki Linnakangas)
4758 <application>walsender</> failed to send ping messages to the client
4759 if it was constantly busy sending WAL data; but it expected to see
4760 ping responses despite that, and would therefore disconnect
4761 once <xref linkend="guc-wal-sender-timeout"> elapsed.
4766 Author: Fujii Masao <fujii@postgresql.org>
4767 Branch: master [5c6d9fc4b] 2014-03-17 20:37:50 +0900
4768 Branch: REL9_3_STABLE [385723405] 2014-03-17 20:41:12 +0900
4769 Branch: REL9_2_STABLE [7899aa356] 2014-03-17 20:41:52 +0900
4770 Branch: REL9_1_STABLE [65e8dbb18] 2014-03-17 20:42:35 +0900
4775 Fix <application>walsender</>'s failure to shut down cleanly when client
4776 is <application>pg_receivexlog</> (Fujii Masao)
4781 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4782 Branch: master [956685f82] 2014-03-05 14:48:14 +0200
4783 Branch: REL9_3_STABLE [a5363a696] 2014-03-05 14:46:56 +0200
4784 Branch: REL9_2_STABLE [e7ec05562] 2014-03-05 14:45:55 +0200
4789 Check WAL level and hot standby parameters correctly when doing crash
4790 recovery that will be followed by archive recovery (Heikki Linnakangas)
4795 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4796 Branch: master [af246c37c] 2014-03-05 13:51:19 +0200
4797 Branch: REL9_3_STABLE [2cd72ba42] 2014-03-05 13:52:21 +0200
4798 Branch: REL9_2_STABLE [931dc26b0] 2014-03-05 13:57:32 +0200
4799 Branch: REL9_1_STABLE [7552d3d1a] 2014-03-05 13:58:14 +0200
4800 Branch: REL9_0_STABLE [4521cc850] 2014-03-05 13:58:22 +0200
4805 Fix test to see if hot standby connections can be allowed immediately
4806 after a crash (Heikki Linnakangas)
4811 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4812 Branch: REL9_3_STABLE [5a7e75849] 2014-02-20 10:46:54 +0200
4817 Add read-only <xref linkend="guc-data-checksums"> parameter to
4818 display whether page checksums are enabled (Heikki Linnakangas)
4822 Without this parameter, determining the state of checksum
4823 processing was difficult.
4828 Author: Tom Lane <tgl@sss.pgh.pa.us>
4829 Branch: master [6c461cb92] 2014-03-13 20:59:42 -0400
4830 Branch: REL9_3_STABLE [41bd2cf55] 2014-03-13 20:59:45 -0400
4831 Branch: REL9_2_STABLE [7a289bb6d] 2014-03-13 20:59:48 -0400
4832 Branch: REL9_1_STABLE [f16ca9755] 2014-03-13 20:59:51 -0400
4833 Branch: REL9_0_STABLE [dad55e1e9] 2014-03-13 20:59:55 -0400
4834 Branch: REL8_4_STABLE [172c53e92] 2014-03-13 20:59:57 -0400
4839 Prevent interrupts while reporting non-<literal>ERROR</> messages
4844 This guards against rare server-process freezeups due to recursive
4845 entry to <function>syslog()</>, and perhaps other related problems.
4850 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4851 Branch: master [bd1154ede] 2014-03-16 23:22:21 -0300
4852 Branch: REL9_3_STABLE [60829079d] 2014-03-16 23:22:22 -0300
4853 Branch: REL9_2_STABLE [ba5946e86] 2014-03-16 23:22:22 -0300
4854 Branch: REL9_1_STABLE [f84997c7e] 2014-03-16 23:22:22 -0300
4859 Fix memory leak in PL/Perl when returning a composite result, including
4860 multiple-OUT-parameter cases (Alex Hunsaker)
4865 Author: Tom Lane <tgl@sss.pgh.pa.us>
4866 Branch: master [e85a5ffba] 2014-03-10 15:47:40 -0400
4867 Branch: REL9_3_STABLE [f64f4c370] 2014-03-10 15:47:09 -0400
4868 Branch: REL9_2_STABLE [b315b767f] 2014-03-10 15:47:13 -0400
4873 Fix tracking of <application>psql</> script line numbers
4874 during <literal>\copy</> from out-of-line data
4875 (Kumar Rajeev Rastogi, Amit Khandekar)
4879 <literal>\copy ... from</> incremented the script file line number
4880 for each data line, even if the data was not coming from the script
4881 file. This mistake resulted in wrong line numbers being reported for
4882 any errors occurring later in the same script file.
4887 Author: Tom Lane <tgl@sss.pgh.pa.us>
4888 Branch: master [83204e100] 2014-03-07 16:36:40 -0500
4889 Branch: REL9_3_STABLE [73f0483fd] 2014-03-07 16:36:50 -0500
4894 Fix <application>contrib/postgres_fdw</> to handle multiple join
4895 conditions properly (Tom Lane)
4899 This oversight could result in sending <literal>WHERE</> clauses to
4900 the remote server for execution even though the clauses are not known
4901 to have the same semantics on the remote server (for example, clauses
4902 that use non-built-in operators). The query might succeed anyway,
4903 but it could also fail with errors from the remote server, or worse
4904 give silently wrong answers.
4909 Author: Magnus Hagander <magnus@hagander.net>
4910 Branch: master [7f3e17b48] 2014-02-18 14:45:58 +0100
4911 Branch: REL9_3_STABLE [b88ecb002] 2014-02-18 14:49:41 +0100
4912 Branch: REL9_2_STABLE [062deb313] 2014-02-18 14:50:19 +0100
4913 Branch: REL9_1_STABLE [fae12f331] 2014-03-16 11:46:20 +0100
4914 Branch: REL9_0_STABLE [665515539] 2014-03-16 11:47:37 +0100
4919 Prevent intermittent <quote>could not reserve shared memory region</>
4920 failures on recent Windows versions (MauMau)
4925 Author: Tom Lane <tgl@sss.pgh.pa.us>
4926 Branch: master [aba7f5677] 2014-03-15 13:36:07 -0400
4927 Branch: REL9_3_STABLE [b5de16997] 2014-03-15 13:36:24 -0400
4928 Branch: REL9_2_STABLE [f2063b379] 2014-03-15 13:36:32 -0400
4929 Branch: REL9_1_STABLE [2df1bf21c] 2014-03-15 13:36:41 -0400
4930 Branch: REL9_0_STABLE [0033f5324] 2014-03-15 13:36:49 -0400
4931 Branch: REL8_4_STABLE [6e6c2c2e1] 2014-03-15 13:36:57 -0400
4936 Update time zone data files to <application>tzdata</> release 2014a
4937 for DST law changes in Fiji and Turkey, plus historical changes in
4947 <sect1 id="release-9-3-3">
4948 <title>Release 9.3.3</title>
4951 <title>Release Date</title>
4952 <simpara>2014-02-20</simpara>
4956 This release contains a variety of fixes from 9.3.2.
4957 For information about new features in the 9.3 major release, see
4958 <xref linkend="release-9-3">.
4962 <title>Migration to Version 9.3.3</title>
4965 A dump/restore is not required for those running 9.3.X.
4969 However, several of the issues corrected in this release could have
4970 resulted in corruption of foreign-key constraints; that is, there
4971 might now be referencing rows for which there is no matching row in
4972 the referenced table. It may be worthwhile to recheck such
4973 constraints after installing this update. The simplest way to do that
4974 is to drop and recreate each suspect constraint; however, that will
4975 require taking an exclusive lock on both tables, so it is unlikely to
4976 be acceptable in production databases. Alternatively, you can do a
4977 manual join query between the two tables to look for unmatched rows.
4981 Note also the requirement for replication standby servers to be
4982 upgraded before their master server is upgraded.
4986 Also, if you are upgrading from a version earlier than 9.3.2,
4987 see <xref linkend="release-9-3-2">.
4993 <title>Changes</title>
4998 Author: Noah Misch <noah@leadboat.com>
4999 Branch: master [fea164a72] 2014-02-17 09:33:31 -0500
5000 Branch: REL9_3_STABLE [475a1fbc4] 2014-02-17 09:33:32 -0500
5001 Branch: REL9_2_STABLE [15a8f97b9] 2014-02-17 09:33:33 -0500
5002 Branch: REL9_1_STABLE [5d320a16c] 2014-02-17 09:33:33 -0500
5003 Branch: REL9_0_STABLE [789063697] 2014-02-17 09:33:37 -0500
5004 Branch: REL8_4_STABLE [ff35425c8] 2014-02-17 09:33:38 -0500
5009 Shore up <literal>GRANT ... WITH ADMIN OPTION</> restrictions
5014 Granting a role without <literal>ADMIN OPTION</> is supposed to
5015 prevent the grantee from adding or removing members from the granted
5016 role, but this restriction was easily bypassed by doing <literal>SET
5017 ROLE</> first. The security impact is mostly that a role member can
5018 revoke the access of others, contrary to the wishes of his grantor.
5019 Unapproved role member additions are a lesser concern, since an
5020 uncooperative role member could provide most of his rights to others
5021 anyway by creating views or <literal>SECURITY DEFINER</> functions.
5027 Author: Noah Misch <noah@leadboat.com>
5028 Branch: master [537cbd35c] 2014-02-17 09:33:31 -0500
5029 Branch: REL9_3_STABLE [fc4a04a3c] 2014-02-17 09:33:32 -0500
5030 Branch: REL9_2_STABLE [1d701d28a] 2014-02-17 09:33:33 -0500
5031 Branch: REL9_1_STABLE [23b5a85e6] 2014-02-17 09:33:36 -0500
5032 Branch: REL9_0_STABLE [c0ac4c75f] 2014-02-17 09:33:37 -0500
5033 Branch: REL8_4_STABLE [823b9dc25] 2014-02-17 09:33:38 -0500
5038 Prevent privilege escalation via manual calls to PL validator
5039 functions (Andres Freund)
5043 The primary role of PL validator functions is to be called implicitly
5044 during <command>CREATE FUNCTION</>, but they are also normal SQL
5045 functions that a user can call explicitly. Calling a validator on
5046 a function actually written in some other language was not checked
5047 for and could be exploited for privilege-escalation purposes.
5048 The fix involves adding a call to a privilege-checking function in
5049 each validator function. Non-core procedural languages will also
5050 need to make this change to their own validator functions, if any.
5056 Author: Robert Haas <rhaas@postgresql.org>
5057 Branch: master [5f173040e] 2014-02-17 09:33:31 -0500
5058 Branch: REL9_3_STABLE [e1e0a4d79] 2014-02-17 09:33:32 -0500
5059 Branch: REL9_2_STABLE [820ab11fb] 2014-02-17 09:33:33 -0500
5060 Branch: REL9_1_STABLE [b5c574399] 2014-02-17 09:33:36 -0500
5061 Branch: REL9_0_STABLE [43d4e965e] 2014-02-17 09:33:37 -0500
5062 Branch: REL8_4_STABLE [e46476133] 2014-02-17 09:33:38 -0500
5067 Avoid multiple name lookups during table and index DDL
5068 (Robert Haas, Andres Freund)
5072 If the name lookups come to different conclusions due to concurrent
5073 activity, we might perform some parts of the DDL on a different table
5074 than other parts. At least in the case of <command>CREATE INDEX</>,
5075 this can be used to cause the permissions checks to be performed
5076 against a different table than the index creation, allowing for a
5077 privilege escalation attack.
5083 Author: Noah Misch <noah@leadboat.com>
5084 Branch: master [4318daecc] 2014-02-17 09:33:31 -0500
5085 Branch: REL9_3_STABLE [e4a4fa223] 2014-02-17 09:33:32 -0500
5086 Branch: REL9_2_STABLE [f416622be] 2014-02-17 09:33:33 -0500
5087 Branch: REL9_1_STABLE [6a10e57b0] 2014-02-17 09:33:37 -0500
5088 Branch: REL9_0_STABLE [b9c3bb1b3] 2014-02-17 09:33:38 -0500
5089 Branch: REL8_4_STABLE [d0ed1a6c0] 2014-02-17 09:33:39 -0500
5094 Prevent buffer overrun with long datetime strings (Noah Misch)
5098 The <literal>MAXDATELEN</> constant was too small for the longest
5099 possible value of type <type>interval</>, allowing a buffer overrun
5100 in <function>interval_out()</>. Although the datetime input
5101 functions were more careful about avoiding buffer overrun, the limit
5102 was short enough to cause them to reject some valid inputs, such as
5103 input containing a very long timezone name. The <application>ecpg</>
5104 library contained these vulnerabilities along with some of its own.
5110 Author: Noah Misch <noah@leadboat.com>
5111 Branch: master [31400a673] 2014-02-17 09:33:31 -0500
5112 Branch: REL9_3_STABLE [7a362a176] 2014-02-17 09:33:32 -0500
5113 Branch: REL9_2_STABLE [12bbce15d] 2014-02-17 09:33:33 -0500
5114 Branch: REL9_1_STABLE [0b7026d96] 2014-02-17 09:33:37 -0500
5115 Branch: REL9_0_STABLE [2c3203e18] 2014-02-17 09:33:38 -0500
5116 Branch: REL8_4_STABLE [98be8a6ea] 2014-02-17 09:33:39 -0500
5121 Prevent buffer overrun due to integer overflow in size calculations
5122 (Noah Misch, Heikki Linnakangas)
5126 Several functions, mostly type input functions, calculated an
5127 allocation size without checking for overflow. If overflow did
5128 occur, a too-small buffer would be allocated and then written past.
5134 Author: Tom Lane <tgl@sss.pgh.pa.us>
5135 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
5136 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
5137 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
5138 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
5139 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
5140 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
5145 Prevent overruns of fixed-size buffers
5146 (Peter Eisentraut, Jozef Mlich)
5150 Use <function>strlcpy()</> and related functions to provide a clear
5151 guarantee that fixed-size buffers are not overrun. Unlike the
5152 preceding items, it is unclear whether these cases really represent
5153 live issues, since in most cases there appear to be previous
5154 constraints on the size of the input string. Nonetheless it seems
5155 prudent to silence all Coverity warnings of this type.
5161 Author: Tom Lane <tgl@sss.pgh.pa.us>
5162 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
5163 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
5164 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
5165 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
5166 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
5167 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
5172 Avoid crashing if <function>crypt()</> returns NULL (Honza Horak,
5177 There are relatively few scenarios in which <function>crypt()</>
5178 could return NULL, but <filename>contrib/chkpass</> would crash
5179 if it did. One practical case in which this could be an issue is
5180 if <application>libc</> is configured to refuse to execute unapproved
5181 hashing algorithms (e.g., <quote>FIPS mode</>).
5187 Author: Tom Lane <tgl@sss.pgh.pa.us>
5188 Branch: master [6ef325429] 2014-02-17 11:24:32 -0500
5189 Branch: REL9_3_STABLE [1ec5988f3] 2014-02-17 11:24:38 -0500
5190 Branch: REL9_2_STABLE [ff3d533e5] 2014-02-17 11:24:42 -0500
5191 Branch: REL9_1_STABLE [800a3744b] 2014-02-17 11:24:45 -0500
5192 Branch: REL9_0_STABLE [369c229d2] 2014-02-17 11:24:48 -0500
5193 Branch: REL8_4_STABLE [f58663ab1] 2014-02-17 11:24:51 -0500
5198 Document risks of <literal>make check</> in the regression testing
5199 instructions (Noah Misch, Tom Lane)
5203 Since the temporary server started by <literal>make check</>
5204 uses <quote>trust</> authentication, another user on the same machine
5205 could connect to it as database superuser, and then potentially
5206 exploit the privileges of the operating-system user who started the
5207 tests. A future release will probably incorporate changes in the
5208 testing procedure to prevent this risk, but some public discussion is
5209 needed first. So for the moment, just warn people against using
5210 <literal>make check</> when there are untrusted users on the
5217 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5218 Branch: master [3b97e6823] 2013-12-16 11:29:50 -0300
5219 Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
5224 Rework tuple freezing protocol
5225 (Álvaro Herrera, Andres Freund)
5229 The logic for tuple freezing was unable to handle some cases involving
5231 <link linkend="vacuum-for-multixact-wraparound"><firstterm>multixact</>
5232 IDs</link>, with the practical effect that shared row-level locks
5233 might be forgotten once old enough.
5237 Fixing this required changing the WAL record format for tuple
5238 freezing. While this is no issue for standalone servers, when using
5239 replication it means that <emphasis>standby servers must be upgraded
5240 to 9.3.3 or later before their masters are</>. An older standby will
5241 be unable to interpret freeze records generated by a newer master, and
5242 will fail with a PANIC message. (In such a case, upgrading the
5243 standby should be sufficient to let it resume execution.)
5248 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5249 Branch: master [801c2dc72] 2014-02-13 19:36:31 -0300
5250 Branch: REL9_3_STABLE [fb47de2be] 2014-02-13 19:30:30 -0300
5255 Create separate GUC parameters to control multixact freezing
5256 (Álvaro Herrera)
5260 9.3 requires multixact tuple labels to be frozen before
5261 they grow too old, in the same fashion as plain transaction ID labels
5262 have been frozen for some time. Previously, the transaction ID
5263 freezing parameters were used for multixact IDs too; but since
5264 the consumption rates of transaction IDs and multixact IDs can be
5265 quite different, this did not work very well. Introduce new settings
5266 <xref linkend="guc-vacuum-multixact-freeze-min-age">,
5267 <xref linkend="guc-vacuum-multixact-freeze-table-age">, and
5268 <xref linkend="guc-autovacuum-multixact-freeze-max-age">
5269 to control when to freeze multixacts.
5274 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5275 Branch: master [11ac4c73c] 2013-12-18 13:45:51 -0300
5276 Branch: REL9_3_STABLE [db1014bc4] 2013-12-18 13:31:27 -0300
5281 Account for remote row locks propagated by local updates
5282 (Álvaro Herrera)
5286 If a row was locked by transaction A, and transaction B updated it,
5287 the new version of the row created by B would be locked by A, yet
5288 visible only to B. If transaction B then again updated the row, A's
5289 lock wouldn't get checked, thus possibly allowing B to complete when
5290 it shouldn't. This case is new in 9.3 since prior versions did not
5291 have any types of row locking that would permit another transaction
5292 to update the row at all.
5296 This oversight could allow referential integrity checks to give false
5297 positives (for instance, allow deletes that should have been rejected).
5298 Applications using the new commands <literal>SELECT FOR KEY SHARE</>
5299 and <literal>SELECT FOR NO KEY UPDATE</> might also have suffered
5300 locking failures of this kind.
5305 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5306 Branch: master [07aeb1fec] 2013-12-05 12:21:55 -0300
5307 Branch: REL9_3_STABLE [c6cd27e36] 2013-12-05 12:21:55 -0300
5312 Prevent <quote>forgetting</> valid row locks when one of several
5313 holders of a row lock aborts (Álvaro Herrera)
5317 This was yet another mechanism by which a shared row lock could be
5318 lost, thus possibly allowing updates that should have been prevented
5319 by foreign-key constraints.
5324 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5325 Branch: master [312bde3d4] 2013-12-05 17:47:51 -0300
5326 Branch: REL9_3_STABLE [2dcc48c35] 2013-12-05 17:47:51 -0300
5331 Fix incorrect logic during update chain locking
5332 (Álvaro Herrera)
5336 This mistake could result in spurious <quote>could not serialize access
5337 due to concurrent update</> errors in <literal>REPEATABLE READ</>
5338 and <literal>SERIALIZABLE</> transaction isolation modes.
5343 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5344 Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
5345 Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
5350 Handle wraparound correctly during extension or truncation
5351 of <filename>pg_multixact/members</>
5352 (Andres Freund, Álvaro Herrera)
5357 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5358 Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
5359 Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
5364 Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
5365 (Álvaro Herrera)
5369 As of 9.3, these names can be more than 4 digits, but the directory
5370 cleanup code ignored such files.
5375 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5376 Branch: master [d881dd623] 2013-12-13 17:16:25 -0300
5377 Branch: REL9_3_STABLE [0bc00363b] 2013-12-13 17:16:25 -0300
5382 Improve performance of multixact cache code
5383 (Álvaro Herrera)
5388 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5389 Branch: master [13aa62443] 2013-12-19 16:53:49 -0300
5390 Branch: REL9_3_STABLE [85d3b3c3a] 2013-12-19 16:39:59 -0300
5395 Optimize updating a row that's already locked by the same transaction
5396 (Andres Freund, Álvaro Herrera)
5400 This fixes a performance regression from pre-9.3 versions when doing
5401 <literal>SELECT FOR UPDATE</> followed by <literal>UPDATE/DELETE</>.
5406 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5407 Branch: master [4d894b41c] 2014-02-14 15:15:09 +0200
5408 Branch: REL9_3_STABLE [762bd379a] 2014-02-14 15:18:34 +0200
5413 During archive recovery, prefer highest timeline number when WAL
5414 segments with the same ID are present in both the archive
5415 and <filename>pg_xlog/</> (Kyotaro Horiguchi)
5419 Previously, not-yet-archived segments could get ignored during
5420 recovery. This reverts an undesirable behavioral change in 9.3.0
5421 back to the way things worked pre-9.3.
5426 Author: Tom Lane <tgl@sss.pgh.pa.us>
5427 Branch: master [6f2aead1f] 2014-02-12 14:52:16 -0500
5428 Branch: REL9_3_STABLE [7190f7a34] 2014-02-12 14:52:20 -0500
5429 Branch: REL9_2_STABLE [bc7ab301a] 2014-02-12 14:52:23 -0500
5430 Branch: REL9_1_STABLE [a69cc9b2c] 2014-02-12 14:52:26 -0500
5431 Branch: REL9_0_STABLE [7fedd79b7] 2014-02-12 14:52:29 -0500
5432 Branch: REL8_4_STABLE [9620fede9] 2014-02-12 14:52:32 -0500
5437 Fix possible mis-replay of WAL records when some segments of a
5438 relation aren't full size (Greg Stark, Tom Lane)
5442 The WAL update could be applied to the wrong page, potentially many
5443 pages past where it should have been. Aside from corrupting data,
5444 this error has been observed to result in significant <quote>bloat</>
5445 of standby servers compared to their masters, due to updates being
5446 applied far beyond where the end-of-file should have been. This
5447 failure mode does not appear to be a significant risk during crash
5448 recovery, only when initially synchronizing a standby created from a
5449 base backup taken from a quickly-changing master.
5454 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5455 Branch: master [d59ff6c11] 2014-01-08 15:03:09 +0200
5456 Branch: REL9_3_STABLE [425bef6ee] 2014-01-08 14:32:22 +0200
5457 Branch: REL9_2_STABLE [82c75f9dd] 2014-01-08 14:28:55 +0200
5458 Branch: REL9_1_STABLE [e56430c62] 2014-01-08 14:33:58 +0200
5459 Branch: REL9_0_STABLE [5301c8395] 2014-01-08 14:34:21 +0200
5464 Fix bug in determining when recovery has reached consistency
5465 (Tomonari Katsumata, Heikki Linnakangas)
5469 In some cases WAL replay would mistakenly conclude that the database
5470 was already consistent at the start of replay, thus possibly allowing
5471 hot-standby queries before the database was really consistent. Other
5472 symptoms such as <quote>PANIC: WAL contains references to invalid
5473 pages</> were also possible.
5478 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5479 Branch: master [a49633d8d] 2013-12-13 14:15:04 +0200
5480 Branch: REL9_3_STABLE [615299cf6] 2013-12-13 14:23:02 +0200
5485 Fix WAL logging of visibility map changes (Heikki Linnakangas)
5490 Author: Tom Lane <tgl@sss.pgh.pa.us>
5491 Branch: master [061b079f8] 2014-01-14 17:35:21 -0500
5492 Branch: REL9_3_STABLE [ebde6c401] 2014-01-14 17:34:51 -0500
5493 Branch: REL9_2_STABLE [ad2e041a3] 2014-01-14 17:34:54 -0500
5494 Branch: REL9_1_STABLE [ab4bb5c47] 2014-01-14 17:34:57 -0500
5495 Branch: REL9_0_STABLE [5d742b9ce] 2014-01-14 17:35:00 -0500
5500 Fix improper locking of btree index pages while replaying
5501 a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
5502 Heikki Linnakangas, Tom Lane)
5506 This error could result in <quote>PANIC: WAL contains references to
5507 invalid pages</> failures.
5512 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5513 Branch: master [22122c83f] 2013-12-03 23:16:01 +0200
5514 Branch: REL9_3_STABLE [8fd04cb32] 2013-12-03 22:13:16 +0200
5515 Branch: REL9_2_STABLE [06df57ac6] 2013-12-03 22:34:31 +0200
5516 Branch: REL9_1_STABLE [e6acb956a] 2013-12-03 22:34:43 +0200
5517 Branch: REL9_0_STABLE [760606dc5] 2013-12-03 23:01:31 +0200
5518 Branch: REL8_4_STABLE [67fc33d3a] 2013-12-03 22:53:26 +0200
5523 Ensure that insertions into non-leaf GIN index pages write a full-page
5524 WAL record when appropriate (Heikki Linnakangas)
5528 The previous coding risked index corruption in the event of a
5529 partial-page write during a system crash.
5534 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5535 Branch: master [3739e5ab9] 2014-01-08 23:28:52 +0200
5536 Branch: REL9_3_STABLE [3aefff422] 2014-01-08 23:30:46 +0200
5537 Branch: REL9_2_STABLE [3bd8987ef] 2014-01-08 23:30:55 +0200
5538 Branch: REL9_1_STABLE [0402f2441] 2014-01-08 23:31:01 +0200
5543 When <literal>pause_at_recovery_target</>
5544 and <literal>recovery_target_inclusive</> are both set, ensure the
5545 target record is applied before pausing, not after (Heikki
5551 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5552 Branch: master [a472ae1e4] 2014-01-16 23:15:41 +0200
5553 Branch: REL9_3_STABLE [e34acac62] 2014-01-16 23:14:57 +0200
5558 Ensure walreceiver sends hot-standby feedback messages on time even
5559 when there is a continuous stream of data (Andres Freund, Amit
5565 Author: Tom Lane <tgl@sss.pgh.pa.us>
5566 Branch: master [e8312b4f0] 2013-12-13 11:50:15 -0500
5567 Branch: REL9_3_STABLE [478af9b79] 2013-12-13 11:50:25 -0500
5572 Prevent timeout interrupts from taking control away from mainline
5573 code unless <varname>ImmediateInterruptOK</> is set
5574 (Andres Freund, Tom Lane)
5578 This is a serious issue for any application making use of statement
5579 timeouts, as it could cause all manner of strange failures after a
5580 timeout occurred. We have seen reports of <quote>stuck</> spinlocks,
5581 ERRORs being unexpectedly promoted to PANICs, unkillable backends,
5582 and other misbehaviors.
5587 Author: Robert Haas <rhaas@postgresql.org>
5588 Branch: master [d1981719a] 2014-01-31 21:31:08 -0500
5589 Branch: REL9_3_STABLE [5d807a74b] 2014-01-31 21:34:44 -0500
5590 Branch: REL9_2_STABLE [ebe334463] 2014-01-31 21:35:32 -0500
5591 Branch: REL9_1_STABLE [8e6bfc9eb] 2014-01-31 21:36:23 -0500
5592 Branch: REL9_0_STABLE [798243a81] 2014-01-31 21:40:20 -0500
5593 Branch: REL8_4_STABLE [458b20f2d] 2014-01-31 21:41:09 -0500
5598 Fix race conditions during server process exit (Robert Haas)
5602 Ensure that signal handlers don't attempt to use the
5603 process's <varname>MyProc</> pointer after it's no longer valid.
5608 Author: Tom Lane <tgl@sss.pgh.pa.us>
5609 Branch: master [214c7a4f0] 2014-02-01 16:21:23 -0500
5610 Branch: REL9_3_STABLE [6f1a40773] 2014-02-01 16:21:30 -0500
5611 Branch: REL9_2_STABLE [81b116d98] 2014-02-01 16:21:33 -0500
5612 Branch: REL9_1_STABLE [03f06ff38] 2014-02-01 16:21:38 -0500
5617 Fix race conditions in walsender shutdown logic and walreceiver
5618 SIGHUP signal handler (Tom Lane)
5623 Author: Tom Lane <tgl@sss.pgh.pa.us>
5624 Branch: master [571addd72] 2014-01-29 20:04:43 -0500
5625 Branch: REL9_3_STABLE [bf8ee6f15] 2014-01-29 20:04:01 -0500
5626 Branch: REL9_2_STABLE [3e71ce1e9] 2014-01-29 20:04:05 -0500
5627 Branch: REL9_1_STABLE [af259c691] 2014-01-29 20:04:08 -0500
5628 Branch: REL9_0_STABLE [d17a667e8] 2014-01-29 20:04:11 -0500
5629 Branch: REL8_4_STABLE [01b882fd8] 2014-01-29 20:04:14 -0500
5634 Fix unsafe references to <varname>errno</> within error reporting
5635 logic (Christian Kruse)
5639 This would typically lead to odd behaviors such as missing or
5640 inappropriate <literal>HINT</> fields.
5645 Author: Tom Lane <tgl@sss.pgh.pa.us>
5646 Branch: master [910bac595] 2014-01-11 16:36:07 -0500
5647 Branch: REL9_3_STABLE [5bfcc9ec5] 2014-01-11 16:35:30 -0500
5648 Branch: REL9_2_STABLE [2de905186] 2014-01-11 16:35:34 -0500
5649 Branch: REL9_1_STABLE [3f721588a] 2014-01-11 16:35:37 -0500
5650 Branch: REL9_0_STABLE [d9c4442b8] 2014-01-11 16:35:41 -0500
5651 Branch: REL8_4_STABLE [d0070ac81] 2014-01-11 16:35:44 -0500
5656 Fix possible crashes from using <function>ereport()</> too early
5657 during server startup (Tom Lane)
5661 The principal case we've seen in the field is a crash if the server
5662 is started in a directory it doesn't have permission to read.
5667 Author: Tom Lane <tgl@sss.pgh.pa.us>
5668 Branch: master [74242c23c] 2013-12-05 12:48:28 -0500
5669 Branch: REL9_3_STABLE [2a6e1a554] 2013-12-05 12:48:31 -0500
5670 Branch: REL9_2_STABLE [41042970b] 2013-12-05 12:48:35 -0500
5671 Branch: REL9_1_STABLE [ad910ccdc] 2013-12-05 12:48:37 -0500
5672 Branch: REL9_0_STABLE [36352ceb4] 2013-12-05 12:48:41 -0500
5673 Branch: REL8_4_STABLE [7635dae55] 2013-12-05 12:48:44 -0500
5678 Clear retry flags properly in OpenSSL socket write
5679 function (Alexander Kukushkin)
5683 This omission could result in a server lockup after unexpected loss
5684 of an SSL-encrypted connection.
5689 Author: Tom Lane <tgl@sss.pgh.pa.us>
5690 Branch: master [44c216330] 2014-02-13 14:24:42 -0500
5691 Branch: REL9_3_STABLE [ca1c17181] 2014-02-13 14:24:45 -0500
5692 Branch: REL9_2_STABLE [8439ee415] 2014-02-13 14:24:49 -0500
5693 Branch: REL9_1_STABLE [170590261] 2014-02-13 14:24:52 -0500
5694 Branch: REL9_0_STABLE [148052d25] 2014-02-13 14:24:55 -0500
5695 Branch: REL8_4_STABLE [a8a46d846] 2014-02-13 14:24:58 -0500
5700 Fix length checking for Unicode identifiers (<literal>U&"..."</>
5701 syntax) containing escapes (Tom Lane)
5705 A spurious truncation warning would be printed for such identifiers
5706 if the escaped form of the identifier was too long, but the
5707 identifier actually didn't need truncation after de-escaping.
5712 Author: Tom Lane <tgl@sss.pgh.pa.us>
5713 Branch: master [0c2338abb] 2014-02-03 19:47:57 -0500
5714 Branch: REL9_3_STABLE [4c70cb1d3] 2014-02-03 19:48:00 -0500
5719 Fix parsing of Unicode literals and identifiers just before the end
5720 of a command string or function body (Tom Lane)
5725 Author: Stephen Frost <sfrost@snowman.net>
5726 Branch: master [6c36f383d] 2014-01-21 22:49:22 -0500
5727 Branch: REL9_3_STABLE [d1e3070f0] 2014-01-21 22:56:30 -0500
5728 Branch: REL9_2_STABLE [c0e6169e1] 2014-01-21 22:56:34 -0500
5729 Branch: REL9_1_STABLE [cbd850bf6] 2014-01-21 23:00:58 -0500
5730 Branch: REL9_0_STABLE [f2eede9b5] 2014-01-21 23:01:40 -0500
5735 Allow keywords that are type names to be used in lists of roles
5740 A previous patch allowed such keywords to be used without quoting
5741 in places such as role identifiers; but it missed cases where a
5742 list of role identifiers was permitted, such as <literal>DROP ROLE</>.
5747 Author: Tom Lane <tgl@sss.pgh.pa.us>
5748 Branch: master [7ab321404] 2013-12-02 20:28:45 -0500
5749 Branch: REL9_3_STABLE [b44ae4893] 2013-12-02 20:28:49 -0500
5750 Branch: REL9_2_STABLE [6698782f1] 2013-12-02 20:28:53 -0500
5751 Branch: REL9_1_STABLE [f67b8aeab] 2013-12-02 20:28:56 -0500
5756 Fix parser crash for <literal>EXISTS(SELECT * FROM
5757 zero_column_table)</literal> (Tom Lane)
5762 Author: Tom Lane <tgl@sss.pgh.pa.us>
5763 Branch: master [9ec6199d1] 2013-12-10 16:10:17 -0500
5764 Branch: REL9_3_STABLE [9d2e07fec] 2013-12-10 16:10:20 -0500
5765 Branch: REL9_2_STABLE [f5d9fdcc7] 2013-12-10 16:10:24 -0500
5766 Branch: REL9_1_STABLE [48e5cfde8] 2013-12-10 16:10:28 -0500
5767 Branch: REL9_0_STABLE [41e9990cd] 2013-12-10 16:10:31 -0500
5768 Branch: REL8_4_STABLE [884c6384a] 2013-12-10 16:10:36 -0500
5773 Fix possible crash due to invalid plan for nested sub-selects, such
5774 as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
5780 Author: Tom Lane <tgl@sss.pgh.pa.us>
5781 Branch: master [043f6ff05] 2014-01-30 14:51:16 -0500
5782 Branch: REL9_3_STABLE [a4aa854ca] 2014-01-30 14:51:19 -0500
5787 Fix mishandling of <literal>WHERE</> conditions pulled up from
5788 a <literal>LATERAL</> subquery (Tom Lane)
5792 The typical symptom of this bug was a <quote>JOIN qualification
5793 cannot refer to other relations</> error, though subtle logic
5794 errors in created plans seem possible as well.
5799 Author: Tom Lane <tgl@sss.pgh.pa.us>
5800 Branch: master [158b7fa6a] 2014-01-11 19:03:12 -0500
5801 Branch: REL9_3_STABLE [27ff4cfe7] 2014-01-11 19:03:15 -0500
5806 Disallow <literal>LATERAL</> references to the target table of
5807 an <literal>UPDATE/DELETE</> (Tom Lane)
5811 While this might be allowed in some future release, it was
5812 unintentional in 9.3, and didn't work quite right anyway.
5817 Author: Tom Lane <tgl@sss.pgh.pa.us>
5818 Branch: master [c03ad5602] 2013-12-14 17:33:53 -0500
5819 Branch: REL9_3_STABLE [324577f39] 2013-12-14 17:33:56 -0500
5820 Branch: REL9_2_STABLE [5d545b7ed] 2013-12-14 17:34:00 -0500
5825 Fix <literal>UPDATE/DELETE</> of an inherited target table
5826 that has <literal>UNION ALL</> subqueries (Tom Lane)
5830 Without this fix, <literal>UNION ALL</> subqueries aren't correctly
5831 inserted into the update plans for inheritance child tables after the
5832 first one, typically resulting in no update happening for those child
5838 Author: Tom Lane <tgl@sss.pgh.pa.us>
5839 Branch: master [4eeda92d8] 2013-12-23 22:18:48 -0500
5840 Branch: REL9_3_STABLE [663f8419b] 2013-12-23 22:18:23 -0500
5845 Fix <command>ANALYZE</> to not fail on a column that's a domain over
5846 a range type (Tom Lane)
5851 Author: Tom Lane <tgl@sss.pgh.pa.us>
5852 Branch: master [628652620] 2014-01-11 13:42:42 -0500
5853 Branch: REL9_3_STABLE [36785a21b] 2014-01-11 13:41:51 -0500
5854 Branch: REL9_2_STABLE [f0381680f] 2014-01-11 13:41:56 -0500
5855 Branch: REL9_1_STABLE [9387f4e1b] 2014-01-11 13:42:00 -0500
5856 Branch: REL9_0_STABLE [2d76d75d9] 2014-01-11 13:42:05 -0500
5857 Branch: REL8_4_STABLE [00b77771a] 2014-01-11 13:42:11 -0500
5862 Ensure that <command>ANALYZE</> creates statistics for a table column
5863 even when all the values in it are <quote>too wide</> (Tom Lane)
5867 <command>ANALYZE</> intentionally omits very wide values from its
5868 histogram and most-common-values calculations, but it neglected to do
5869 something sane in the case that all the sampled entries are too wide.
5874 Author: Stephen Frost <sfrost@snowman.net>
5875 Branch: master [6f25c62d7] 2014-01-18 18:41:52 -0500
5876 Branch: REL9_3_STABLE [86e58ae02] 2014-01-18 18:49:08 -0500
5877 Branch: REL9_2_STABLE [1fe06595a] 2014-01-18 18:49:41 -0500
5878 Branch: REL9_1_STABLE [d2636486b] 2014-01-18 18:50:09 -0500
5879 Branch: REL9_0_STABLE [e70c42821] 2014-01-18 18:50:29 -0500
5880 Branch: REL8_4_STABLE [0fb4e3ceb] 2014-01-18 18:50:47 -0500
5885 In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
5886 default tablespace to be used without a permissions check
5891 <literal>CREATE TABLE</> has always allowed such usage,
5892 but <literal>ALTER TABLE</> didn't get the memo.
5897 Author: Tom Lane <tgl@sss.pgh.pa.us>
5898 Branch: master [c01bc51f8] 2013-12-30 14:00:02 -0500
5899 Branch: REL9_3_STABLE [9a6e2b150] 2013-12-30 14:00:05 -0500
5904 Fix support for extensions containing event triggers (Tom Lane)
5909 Author: Tom Lane <tgl@sss.pgh.pa.us>
5910 Branch: master [080b7db72] 2014-01-08 20:18:58 -0500
5911 Branch: REL9_3_STABLE [47ac4473a] 2014-01-08 20:18:10 -0500
5912 Branch: REL9_2_STABLE [97a39f295] 2014-01-08 20:18:13 -0500
5913 Branch: REL9_1_STABLE [6c6c53d0b] 2014-01-08 20:18:17 -0500
5914 Branch: REL9_0_STABLE [6ca712fb9] 2014-01-08 20:18:20 -0500
5915 Branch: REL8_4_STABLE [57ac7d8a7] 2014-01-08 20:18:24 -0500
5920 Fix <quote>cannot accept a set</> error when some arms of
5921 a <literal>CASE</> return a set and others don't (Tom Lane)
5926 Author: Andrew Dunstan <andrew@dunslane.net>
5927 Branch: master [d3ee45152] 2014-02-03 10:40:12 -0500
5928 Branch: REL9_3_STABLE [cdfbb78f0] 2014-02-03 10:39:13 -0500
5933 Fix memory leakage in JSON functions (Craig Ringer)
5938 Author: Andrew Dunstan <andrew@dunslane.net>
5939 Branch: master [29dcf7ded] 2013-12-27 17:04:00 -0500
5940 Branch: REL9_3_STABLE [7dfd9f6f5] 2013-12-27 17:21:04 -0500
5941 Branch: REL9_2_STABLE [4825a9e95] 2013-12-27 17:21:27 -0500
5946 Properly distinguish numbers from non-numbers when generating JSON
5947 output (Andrew Dunstan)
5952 Author: Kevin Grittner <kgrittn@postgresql.org>
5953 Branch: master [a133bf703] 2013-12-27 15:26:24 -0600
5954 Branch: REL9_3_STABLE [28b60aa23] 2013-12-27 15:40:51 -0600
5955 Branch: REL9_2_STABLE [150a30e19] 2013-12-27 15:41:02 -0600
5956 Branch: REL9_1_STABLE [1f069d21d] 2013-12-27 15:41:18 -0600
5957 Branch: REL9_0_STABLE [918d74a07] 2013-12-27 15:41:32 -0600
5958 Branch: REL8_4_STABLE [b2d80147d] 2013-12-27 15:41:46 -0600
5963 Fix checks for all-zero client addresses in pgstat functions (Kevin
5969 Author: Tom Lane <tgl@sss.pgh.pa.us>
5970 Branch: master [082c0dfa1] 2014-02-01 18:27:34 -0500
5971 Branch: REL9_3_STABLE [9beffdcc3] 2014-02-01 18:27:40 -0500
5972 Branch: REL9_2_STABLE [8be095cea] 2014-02-01 18:27:44 -0500
5973 Branch: REL9_1_STABLE [399d23e19] 2014-02-01 18:27:48 -0500
5974 Branch: REL9_0_STABLE [3c7b4ef70] 2014-02-01 18:27:54 -0500
5975 Branch: REL8_4_STABLE [56f5d3424] 2014-02-01 18:27:12 -0500
5980 Fix possible misclassification of multibyte characters by the text
5981 search parser (Tom Lane)
5985 Non-ASCII characters could be misclassified when using C locale with
5986 a multibyte encoding. On Cygwin, non-C locales could fail as well.
5991 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5992 Branch: master [6c2744f1d] 2014-02-10 09:57:59 +0200
5993 Branch: REL9_3_STABLE [928aec71c] 2014-02-10 09:59:49 +0200
5994 Branch: REL9_2_STABLE [f3807106b] 2014-02-10 10:00:04 +0200
5995 Branch: REL9_1_STABLE [5f778e644] 2014-02-10 10:00:23 +0200
5996 Branch: REL9_0_STABLE [fe8a6f53e] 2014-02-10 10:00:36 +0200
5997 Branch: REL8_4_STABLE [6141983fb] 2014-02-10 10:00:50 +0200
6002 Fix possible misbehavior in <function>plainto_tsquery()</>
6003 (Heikki Linnakangas)
6007 Use <function>memmove()</> not <function>memcpy()</> for copying
6008 overlapping memory regions. There have been no field reports of
6009 this actually causing trouble, but it's certainly risky.
6014 Author: Magnus Hagander <magnus@hagander.net>
6015 Branch: master [9544cc0d6] 2014-01-07 17:50:56 +0100
6016 Branch: REL9_3_STABLE [91c2755fc] 2014-01-07 17:51:02 +0100
6017 Branch: REL9_2_STABLE [61d4d14ee] 2014-01-07 17:53:00 +0100
6018 Branch: REL9_1_STABLE [026a91f86] 2014-01-07 18:00:36 +0100
6023 Fix placement of permissions checks in <function>pg_start_backup()</>
6024 and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
6028 The previous coding might attempt to do catalog access when it
6034 Author: Tatsuo Ishii <ishii@postgresql.org>
6035 Branch: master [1f0626ee4] 2013-12-15 11:09:05 +0900
6036 Branch: REL9_3_STABLE [8122e6f85] 2013-12-15 11:10:41 +0900
6037 Branch: REL9_2_STABLE [0c07ef1ad] 2013-12-15 11:10:49 +0900
6038 Branch: REL9_1_STABLE [035226c61] 2013-12-15 11:10:56 +0900
6039 Branch: REL9_0_STABLE [7016d970d] 2013-12-15 11:11:02 +0900
6040 Branch: REL8_4_STABLE [69f77d756] 2013-12-15 11:11:11 +0900
6045 Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
6046 purposes (Tatsuo Ishii)
6051 Author: Tom Lane <tgl@sss.pgh.pa.us>
6052 Branch: master [0def2573c] 2014-02-03 14:47:17 -0500
6053 Branch: REL9_3_STABLE [641c08041] 2014-02-03 14:46:54 -0500
6054 Branch: REL9_2_STABLE [888b56570] 2014-02-03 14:46:57 -0500
6059 Fix <literal>*</>-qualification of named parameters in SQL-language
6060 functions (Tom Lane)
6064 Given a composite-type parameter
6065 named <literal>foo</>, <literal>$1.*</> worked fine,
6066 but <literal>foo.*</> not so much.
6071 Author: Fujii Masao <fujii@postgresql.org>
6072 Branch: master [77035fa8a] 2014-01-23 22:58:58 +0900
6073 Branch: REL9_3_STABLE [be5d49974] 2014-01-23 23:00:30 +0900
6074 Branch: REL9_2_STABLE [ea311bfdf] 2014-01-23 23:01:06 +0900
6075 Branch: REL9_1_STABLE [1b384aff1] 2014-01-23 23:01:34 +0900
6076 Branch: REL9_0_STABLE [996b21cbf] 2014-01-23 23:02:03 +0900
6077 Branch: REL8_4_STABLE [5525529db] 2014-01-23 23:02:30 +0900
6082 Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
6086 It should return <literal>localhost</> if no host has been specified.
6091 Author: Tom Lane <tgl@sss.pgh.pa.us>
6092 Branch: master [b8f00a46b] 2014-02-13 18:45:58 -0500
6093 Branch: REL9_3_STABLE [f208fb436] 2014-02-13 18:46:03 -0500
6094 Branch: REL9_2_STABLE [2573f08a1] 2014-02-13 18:45:20 -0500
6095 Branch: REL9_1_STABLE [7182bd239] 2014-02-13 18:45:23 -0500
6096 Branch: REL9_0_STABLE [218dd205b] 2014-02-13 18:45:27 -0500
6097 Branch: REL8_4_STABLE [7644a7bd8] 2014-02-13 18:45:32 -0500
6102 Improve error handling in <application>libpq</> and <application>psql</>
6103 for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
6107 In particular this fixes an infinite loop that could occur in 9.2 and
6108 up if the server connection was lost during <literal>COPY FROM
6109 STDIN</>. Variants of that scenario might be possible in older
6110 versions, or with other client applications.
6115 Author: Tom Lane <tgl@sss.pgh.pa.us>
6116 Branch: master [92459e7a7] 2014-01-04 16:05:16 -0500
6117 Branch: REL9_3_STABLE [341f0bc49] 2014-01-04 16:05:20 -0500
6118 Branch: REL9_2_STABLE [fa28f9cba] 2014-01-04 16:05:23 -0500
6123 Fix incorrect translation handling in
6124 some <application>psql</> <literal>\d</> commands
6125 (Peter Eisentraut, Tom Lane)
6130 Author: Magnus Hagander <magnus@hagander.net>
6131 Branch: master [63ab2befe] 2014-02-12 18:45:18 +0100
6132 Branch: REL9_3_STABLE [c90204c60] 2014-02-12 18:46:04 +0100
6133 Branch: REL9_2_STABLE [0ae288d2d] 2014-02-12 14:51:00 +0100
6138 Ensure <application>pg_basebackup</>'s background process is killed
6139 when exiting its foreground process (Magnus Hagander)
6144 Author: Magnus Hagander <magnus@hagander.net>
6145 Branch: master [01025d80a] 2014-02-09 12:05:14 +0100
6146 Branch: REL9_3_STABLE [680baa8d2] 2014-02-09 12:09:18 +0100
6147 Branch: REL9_2_STABLE [165aa1da5] 2014-02-09 12:09:39 +0100
6148 Branch: REL9_1_STABLE [c6e5c4dd1] 2014-02-09 12:09:55 +0100
6153 Fix possible incorrect printing of filenames
6154 in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
6159 Author: Magnus Hagander <magnus@hagander.net>
6160 Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
6161 Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
6162 Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
6163 Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
6168 Avoid including tablespaces inside PGDATA twice in base backups
6169 (Dimitri Fontaine, Magnus Hagander)
6174 Author: Michael Meskes <meskes@postgresql.org>
6175 Branch: master [d685e2424] 2014-01-09 16:20:19 +0100
6176 Branch: REL9_3_STABLE [28fff0ef8] 2014-01-09 15:41:51 +0100
6177 Branch: REL9_2_STABLE [799728b0b] 2014-01-09 15:50:51 +0100
6178 Branch: REL9_1_STABLE [9f5b3a1a1] 2014-01-09 15:51:11 +0100
6179 Branch: REL9_0_STABLE [a29b6c342] 2014-01-09 15:51:23 +0100
6180 Branch: REL8_4_STABLE [d68a65b01] 2014-01-09 15:58:37 +0100
6185 Fix misaligned descriptors in <application>ecpg</> (MauMau)
6190 Author: Michael Meskes <meskes@postgresql.org>
6191 Branch: master [7c957ec83] 2014-01-01 12:39:31 +0100
6192 Branch: REL9_3_STABLE [8404037d8] 2014-01-01 12:40:28 +0100
6193 Branch: REL9_2_STABLE [119a59879] 2014-01-01 12:40:42 +0100
6194 Branch: REL9_1_STABLE [948498274] 2014-01-01 12:44:15 +0100
6195 Branch: REL9_0_STABLE [17bcdd01f] 2014-01-01 12:44:44 +0100
6196 Branch: REL8_4_STABLE [96de4939c] 2014-01-01 12:44:58 +0100
6201 In <application>ecpg</>, handle lack of a hostname in the connection
6202 parameters properly (Michael Meskes)
6207 Author: Joe Conway <mail@joeconway.com>
6208 Branch: master [d6ca510d9] 2013-12-07 17:00:26 -0800
6209 Branch: REL9_3_STABLE [0ec530625] 2013-12-07 17:00:10 -0800
6210 Branch: REL9_2_STABLE [7f4ef622f] 2013-12-07 16:59:35 -0800
6211 Branch: REL9_1_STABLE [70165f25b] 2013-12-07 16:59:16 -0800
6212 Branch: REL9_0_STABLE [9057adc23] 2013-12-07 16:58:41 -0800
6213 Branch: REL8_4_STABLE [6c8b16e30] 2013-12-07 16:56:34 -0800
6218 Fix performance regression in <filename>contrib/dblink</> connection
6219 startup (Joe Conway)
6223 Avoid an unnecessary round trip when client and server encodings match.
6228 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6229 Branch: master [866a1f092] 2014-01-13 15:43:29 +0200
6230 Branch: REL9_3_STABLE [50c5770ec] 2014-01-13 15:43:59 +0200
6231 Branch: REL9_2_STABLE [f6d6b42f2] 2014-01-13 15:44:02 +0200
6232 Branch: REL9_1_STABLE [5143dfd57] 2014-01-13 15:44:04 +0200
6233 Branch: REL9_0_STABLE [6c3f040be] 2014-01-13 15:44:12 +0200
6234 Branch: REL8_4_STABLE [492b68541] 2014-01-13 15:44:14 +0200
6239 In <filename>contrib/isn</>, fix incorrect calculation of the check
6240 digit for ISMN values (Fabien Coelho)
6245 Author: Tatsuo Ishii <ishii@postgresql.org>
6246 Branch: master [841a65482] 2013-12-12 19:10:35 +0900
6247 Branch: REL9_3_STABLE [27902bc91] 2013-12-12 19:07:53 +0900
6252 Fix <filename>contrib/pgbench</>'s progress logging to avoid overflow
6253 when the scale factor is large (Tatsuo Ishii)
6258 Author: Tom Lane <tgl@sss.pgh.pa.us>
6259 Branch: master [69c7a9838] 2014-01-21 16:34:28 -0500
6260 Branch: REL9_3_STABLE [0950d67ee] 2014-01-21 16:34:31 -0500
6261 Branch: REL9_2_STABLE [27ab1eb7e] 2014-01-21 16:34:35 -0500
6266 Fix <filename>contrib/pg_stat_statement</>'s handling
6267 of <literal>CURRENT_DATE</> and related constructs (Kyotaro
6273 Author: Tom Lane <tgl@sss.pgh.pa.us>
6274 Branch: master [00d4f2af8] 2014-02-03 21:30:20 -0500
6275 Branch: REL9_3_STABLE [eb3d350db] 2014-02-03 21:30:28 -0500
6280 Improve lost-connection error handling
6281 in <filename>contrib/postgres_fdw</> (Tom Lane)
6286 Author: Peter Eisentraut <peter_e@gmx.net>
6287 Branch: master [ad6bf0291] 2014-01-17 23:08:22 -0500
6288 Branch: REL9_3_STABLE [586bea612] 2014-01-17 23:11:02 -0500
6289 Branch: REL9_2_STABLE [526e38751] 2014-01-17 23:12:50 -0500
6290 Branch: REL9_1_STABLE [6d969b000] 2014-01-17 23:14:21 -0500
6291 Branch: REL9_0_STABLE [2346c383a] 2014-01-17 23:15:00 -0500
6292 Branch: REL8_4_STABLE [15699d9bf] 2014-01-17 23:17:59 -0500
6297 Ensure client-code-only installation procedure works as documented
6303 Author: Andrew Dunstan <andrew@dunslane.net>
6304 Branch: master [d587298b8] 2014-02-01 15:11:13 -0500
6305 Branch: REL9_3_STABLE [1e9876c3b] 2014-02-01 15:16:06 -0500
6306 Branch: REL9_2_STABLE [6e96d4db8] 2014-02-01 15:16:18 -0500
6307 Branch: REL9_1_STABLE [dfb4a1a21] 2014-02-01 15:16:29 -0500
6308 Branch: REL9_0_STABLE [59d64e7f3] 2014-02-01 15:16:40 -0500
6309 Branch: REL8_4_STABLE [ae3c98b9b] 2014-02-01 15:16:52 -0500
6314 In Mingw and Cygwin builds, install the <application>libpq</> DLL
6315 in the <filename>bin</> directory (Andrew Dunstan)
6319 This duplicates what the MSVC build has long done. It should fix
6320 problems with programs like <application>psql</> failing to start
6321 because they can't find the DLL.
6326 Author: Andrew Dunstan <andrew@dunslane.net>
6327 Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
6328 Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
6329 Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
6330 Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
6331 Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
6336 Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
6342 Author: Andrew Dunstan <andrew@dunslane.net>
6343 Branch: master [cec8394b5] 2014-01-26 09:49:10 -0500
6344 Branch: REL9_3_STABLE [56c08df55] 2014-01-26 09:45:43 -0500
6349 Enable building with Visual Studio 2013 (Brar Piening)
6354 Author: Tom Lane <tgl@sss.pgh.pa.us>
6355 Branch: master [289541520] 2014-02-10 20:48:04 -0500
6356 Branch: REL9_3_STABLE [f1e522696] 2014-02-10 20:48:12 -0500
6357 Branch: REL9_2_STABLE [dd5605104] 2014-02-10 20:48:20 -0500
6358 Branch: REL9_1_STABLE [3bf5c16f1] 2014-02-10 20:48:23 -0500
6359 Branch: REL9_0_STABLE [e1e7642bd] 2014-02-10 20:48:27 -0500
6360 Branch: REL8_4_STABLE [432735cbf] 2014-02-10 20:48:30 -0500
6365 Don't generate plain-text <filename>HISTORY</>
6366 and <filename>src/test/regress/README</> files anymore (Tom Lane)
6370 These text files duplicated the main HTML and PDF documentation
6371 formats. The trouble involved in maintaining them greatly outweighs
6372 the likely audience for plain-text format. Distribution tarballs
6373 will still contain files by these names, but they'll just be stubs
6374 directing the reader to consult the main documentation.
6375 The plain-text <filename>INSTALL</> file will still be maintained, as
6376 there is arguably a use-case for that.
6381 Author: Tom Lane <tgl@sss.pgh.pa.us>
6382 Branch: master [e04641f4b] 2014-02-14 21:59:13 -0500
6383 Branch: REL9_3_STABLE [46cbcd50e] 2014-02-14 21:59:37 -0500
6384 Branch: REL9_2_STABLE [4f975b68b] 2014-02-14 21:59:42 -0500
6385 Branch: REL9_1_STABLE [3212ba534] 2014-02-14 21:59:46 -0500
6386 Branch: REL9_0_STABLE [cb84fddd9] 2014-02-14 21:59:50 -0500
6387 Branch: REL8_4_STABLE [c0c2d62ac] 2014-02-14 21:59:56 -0500
6392 Update time zone data files to <application>tzdata</> release 2013i
6393 for DST law changes in Jordan and historical changes in Cuba.
6397 In addition, the zones <literal>Asia/Riyadh87</>,
6398 <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
6399 removed, as they are no longer maintained by IANA, and never
6400 represented actual civil timekeeping practice.
6409 <sect1 id="release-9-3-2">
6410 <title>Release 9.3.2</title>
6413 <title>Release Date</title>
6414 <simpara>2013-12-05</simpara>
6418 This release contains a variety of fixes from 9.3.1.
6419 For information about new features in the 9.3 major release, see
6420 <xref linkend="release-9-3">.
6424 <title>Migration to Version 9.3.2</title>
6427 A dump/restore is not required for those running 9.3.X.
6431 However, this release corrects a number of potential data corruption
6432 issues. See the first three changelog entries below to find out whether
6433 your installation has been affected and what steps you can take if so.
6437 Also, if you are upgrading from a version earlier than 9.3.1,
6438 see <xref linkend="release-9-3-1">.
6444 <title>Changes</title>
6450 Fix <command>VACUUM</>'s tests to see whether it can
6451 update <structfield>relfrozenxid</> (Andres Freund)
6455 In some cases <command>VACUUM</> (either manual or autovacuum) could
6456 incorrectly advance a table's <structfield>relfrozenxid</> value,
6457 allowing tuples to escape freezing, causing those rows to become
6458 invisible once 2^31 transactions have elapsed. The probability of
6459 data loss is fairly low since multiple incorrect advancements would
6460 need to happen before actual loss occurs, but it's not zero. In 9.2.0
6461 and later, the probability of loss is higher, and it's also possible
6462 to get <quote>could not access status of transaction</> errors as a
6463 consequence of this bug. Users upgrading from releases 9.0.4 or 8.4.8
6464 or earlier are not affected, but all later versions contain the bug.
6468 The issue can be ameliorated by, after upgrading, vacuuming all tables
6469 in all databases while having <link
6470 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
6471 set to zero. This will fix any latent corruption but will not be able
6472 to fix all pre-existing data errors. However, an installation can be
6473 presumed safe after performing this vacuuming if it has executed fewer
6474 than 2^31 update transactions in its lifetime (check this with
6475 <literal>SELECT txid_current() < 2^31</>).
6481 Fix multiple bugs in MultiXactId freezing (Andres Freund,
6482 Álvaro Herrera)
6486 These bugs could lead to <quote>could not access status of
6487 transaction</> errors, or to duplicate or vanishing rows.
6488 Users upgrading from releases prior to 9.3.0 are not affected.
6492 The issue can be ameliorated by, after upgrading, vacuuming all tables
6493 in all databases while having <link
6494 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
6495 set to zero. This will fix latent corruption but will not be able to
6496 fix all pre-existing data errors.
6500 As a separate issue, these bugs can also cause standby servers to get
6501 out of sync with the primary, thus exhibiting data errors that are not
6502 in the primary. Therefore, it's recommended that 9.3.0 and 9.3.1
6503 standby servers be re-cloned from the primary (e.g., with a new base
6504 backup) after upgrading.
6510 Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
6511 during hot standby startup (Andres Freund, Heikki Linnakangas)
6515 This bug can cause data loss on standby servers at the moment they
6516 start to accept hot-standby queries, by marking committed transactions
6517 as uncommitted. The likelihood of such corruption is small unless, at
6518 the time of standby startup, the primary server has executed many
6519 updating transactions since its last checkpoint. Symptoms include
6520 missing rows, rows that should have been deleted being still visible,
6521 and obsolete versions of updated rows being still visible alongside
6522 their newer versions.
6526 This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
6527 Standby servers that have only been running earlier releases are not
6528 at risk. It's recommended that standby servers that have ever run any
6529 of the buggy releases be re-cloned from the primary (e.g., with a new
6530 base backup) after upgrading.
6536 Fix multiple bugs in update chain traversal (Andres Freund,
6537 Álvaro Herrera)
6541 These bugs could result in incorrect behavior, such as locking or even
6542 updating the wrong row, in the presence of concurrent updates.
6543 Spurious <quote>unable to fetch updated version of tuple</> errors
6550 Fix dangling-pointer problem in fast-path locking (Tom Lane)
6554 This could lead to corruption of the lock data structures in shared
6555 memory, causing <quote>lock already held</> and other odd errors.
6561 Fix assorted race conditions in timeout management (Tom Lane)
6565 These errors could result in a server process becoming unresponsive
6566 because it had blocked SIGALRM and/or SIGINT.
6572 Truncate <filename>pg_multixact</> contents during WAL replay
6577 This avoids ever-increasing disk space consumption in standby servers.
6583 Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
6584 when it's only verified that no tuples need freezing (Sergey
6585 Burladyan, Jeff Janes)
6589 This bug could result in failing to
6590 advance <structfield>relfrozenxid</>, so that the table would still be
6591 thought to need another anti-wraparound vacuum. In the worst case the
6592 database might even shut down to prevent wraparound.
6598 Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
6602 This bug could result in large amounts of useless autovacuum activity.
6608 Fix race condition in GIN index posting tree page deletion (Heikki
6613 This could lead to transient wrong answers or query failures.
6619 Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
6620 index creation (Teodor Sigaev)
6626 Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
6632 Re-allow duplicate table aliases if they're within aliased JOINs
6637 Historically <productname>PostgreSQL</> has accepted queries like
6639 SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
6641 although a strict reading of the SQL standard would forbid the
6642 duplicate usage of table alias <literal>x</>. A misguided change in
6643 9.3.0 caused it to reject some such cases that were formerly accepted.
6644 Restore the previous behavior.
6650 Avoid flattening a subquery whose <literal>SELECT</> list contains a
6651 volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
6655 This avoids unexpected results due to extra evaluations of the
6662 Fix planner's processing of non-simple-variable subquery outputs
6663 nested within outer joins (Tom Lane)
6667 This error could lead to incorrect plans for queries involving
6668 multiple levels of subqueries within <literal>JOIN</> syntax.
6674 Fix incorrect planning in cases where the same non-strict expression
6675 appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
6676 equality clauses (Tom Lane)
6682 Fix planner crash with whole-row reference to a subquery (Tom Lane)
6688 Fix incorrect generation of optimized MIN()/MAX() plans for
6689 inheritance trees (Tom Lane)
6693 The planner could fail in cases where the MIN()/MAX() argument was an
6694 expression rather than a simple variable.
6700 Fix premature deletion of temporary files (Andres Freund)
6706 Prevent intra-transaction memory leak when printing range values
6711 This fix actually cures transient memory leaks in any datatype output
6712 function, but range types are the only ones known to have had a
6713 significant problem.
6719 Fix memory leaks when reloading configuration files (Heikki
6720 Linnakangas, Hari Babu)
6726 Prevent incorrect display of dropped columns in NOT NULL and CHECK
6727 constraint violation messages (Michael Paquier and Tom Lane)
6733 Allow default arguments and named-argument notation for window
6734 functions (Tom Lane)
6738 Previously, these cases were likely to crash.
6744 Suppress trailing whitespace on each line when pretty-printing rules
6745 and views (Tom Lane)
6749 9.3.0 generated such whitespace in many more cases than previous
6750 versions did. To reduce unexpected behavioral changes, suppress
6751 unnecessary whitespace in all cases.
6757 Fix possible read past end of memory in rule printing (Peter Eisentraut)
6763 Fix array slicing of <type>int2vector</> and <type>oidvector</> values
6768 Expressions of this kind are now implicitly promoted to
6769 regular <type>int2</> or <type>oid</> arrays.
6775 Return a valid JSON value when converting an empty <type>hstore</> value
6783 Fix incorrect behaviors when using a SQL-standard, simple GMT offset
6788 In some cases, the system would use the simple GMT offset value when
6789 it should have used the regular timezone setting that had prevailed
6790 before the simple offset was selected. This change also causes
6791 the <function>timeofday</> function to honor the simple GMT offset
6798 Prevent possible misbehavior when logging translations of Windows
6799 error codes (Tom Lane)
6805 Properly quote generated command lines in <application>pg_ctl</>
6806 (Naoya Anzai and Tom Lane)
6810 This fix applies only to Windows.
6816 Fix <application>pg_dumpall</> to work when a source database
6818 linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
6819 via <command>ALTER DATABASE SET</> (Kevin Grittner)
6823 Previously, the generated script would fail during restore.
6829 Fix <application>pg_isready</> to handle its <option>-d</> option
6830 properly (Fabrízio de Royes Mello and Fujii Masao)
6836 Fix parsing of WAL file names in <application>pg_receivexlog</>
6837 (Heikki Linnakangas)
6841 This error made <application>pg_receivexlog</> unable to restart
6842 streaming after stopping, once at least 4 GB of WAL had been written.
6848 Report out-of-disk-space failures properly
6849 in <application>pg_upgrade</> (Peter Eisentraut)
6855 Make <application>ecpg</> search for quoted cursor names
6856 case-sensitively (Zoltán Böszörményi)
6862 Fix <application>ecpg</>'s processing of lists of variables
6863 declared <type>varchar</> (Zoltán Böszörményi)
6869 Make <filename>contrib/lo</> defend against incorrect trigger definitions
6876 Update time zone data files to <application>tzdata</> release 2013h
6877 for DST law changes in Argentina, Brazil, Jordan, Libya,
6878 Liechtenstein, Morocco, and Palestine. Also, new timezone
6879 abbreviations WIB, WIT, WITA for Indonesia.
6888 <sect1 id="release-9-3-1">
6889 <title>Release 9.3.1</title>
6892 <title>Release Date</title>
6893 <simpara>2013-10-10</simpara>
6897 This release contains a variety of fixes from 9.3.0.
6898 For information about new features in the 9.3 major release, see
6899 <xref linkend="release-9-3">.
6903 <title>Migration to Version 9.3.1</title>
6906 A dump/restore is not required for those running 9.3.X.
6910 However, if you use the <literal>hstore</> extension, see the
6911 first changelog entry.
6917 <title>Changes</title>
6923 Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
6924 extension during an update (Andrew Dunstan)
6928 Users who upgraded a pre-9.3 database containing <literal>hstore</>
6931 ALTER EXTENSION hstore UPDATE;
6933 after installing 9.3.1, to add two new JSON functions and a cast.
6934 (If <literal>hstore</> is already up to date, this command does
6941 Fix memory leak when creating B-tree indexes on range columns
6942 (Heikki Linnakangas)
6948 Fix memory leak caused by <function>lo_open()</function> failure
6949 (Heikki Linnakangas)
6955 Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
6961 Fix deadlock bug in libpq when using SSL (Stephen Frost)
6967 Fix timeline handling bugs in <application>pg_receivexlog</>
6968 (Heikki Linnakangas, Andrew Gierth)
6974 Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
6975 variables unless function body checking is enabled (Tom Lane)
6981 Remove rare inaccurate warning during vacuum of index-less tables
6982 (Heikki Linnakangas)
6991 <sect1 id="release-9-3">
6992 <title>Release 9.3</title>
6995 <title>Release Date</title>
6996 <simpara>2013-09-09</simpara>
7000 <title>Overview</title>
7003 Major enhancements in <productname>PostgreSQL</> 9.3 include:
7006 <!-- This list duplicates items below, but without authors or details-->
7012 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
7019 Make simple views <link
7020 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
7026 Add many features for the <type>JSON</> data type,
7027 including <link linkend="functions-json">operators and functions</link>
7028 to extract elements from <type>JSON</> values
7034 Implement <acronym>SQL</>-standard <link
7035 linkend="queries-lateral"><literal>LATERAL</></link> option for
7036 <literal>FROM</>-clause subqueries and function calls
7042 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
7043 wrappers</link> to support writes (inserts/updates/deletes) on foreign
7050 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
7051 data wrapper</link> to allow access to
7052 other <productname>Postgres</> servers
7058 Add support for <link linkend="event-triggers">event triggers</link>
7064 Add optional ability to <link
7065 linkend="app-initdb-data-checksums">checksum</link> data pages and
7072 Prevent non-key-field row updates from blocking foreign key checks
7078 Greatly reduce System V <link linkend="sysvipc">shared
7079 memory</link> requirements
7086 The above items are explained in more detail in the sections below.
7093 <title>Migration to Version 9.3</title>
7096 A dump/restore using <link
7097 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
7098 of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
7099 required for those wishing to migrate data from any previous release.
7103 Version 9.3 contains a number of changes that may affect compatibility
7104 with previous releases. Observe the following incompatibilities:
7108 <title>Server Settings</title>
7114 Rename <varname>replication_timeout</> to <link
7115 linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
7120 This setting controls the <link
7121 linkend="wal"><acronym>WAL</></link> sender timeout.
7127 Require superuser privileges to set <link
7128 linkend="guc-commit-delay"><varname>commit_delay</></link>
7129 because it can now potentially delay other sessions (Simon Riggs)
7135 Allow in-memory sorts to use their full memory allocation (Jeff Janes)
7139 Users who have set <link
7140 linkend="guc-work-mem"><varname>work_mem</></link> based on the
7141 previous behavior may need to revisit that setting.
7150 <title>Other</title>
7156 Throw an error if a tuple to be updated or deleted has already been
7157 updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
7161 Formerly, the originally-intended update was silently skipped,
7162 resulting in logical inconsistency since the trigger might have
7163 propagated data to other places based on the intended update.
7164 Now an error is thrown to prevent the inconsistent results from being
7165 committed. If this change affects your application, the best solution
7166 is usually to move the data-propagation actions to
7167 an <literal>AFTER</> trigger.
7171 This error will also be thrown if a query invokes a volatile function
7172 that modifies rows that are later modified by the query itself.
7173 Such cases likewise previously resulted in silently skipping updates.
7179 Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
7180 SET NULL/SET DEFAULT</></link> foreign key actions to affect
7181 all columns of the constraint, not just those changed in the
7182 <command>UPDATE</> (Tom Lane)
7186 Previously, we would set only those referencing columns that
7187 correspond to referenced columns that were changed by
7188 the <command>UPDATE</>. This was what was required by SQL-92,
7189 but more recent editions of the SQL standard specify the new behavior.
7195 Force cached plans to be replanned if the <link
7196 linkend="guc-search-path"><varname>search_path</></link> changes
7201 Previously, cached plans already generated in the current session were
7202 not redone if the query was re-executed with a
7203 new <varname>search_path</> setting, resulting in surprising behavior.
7210 linkend="functions-formatting-table"><function>to_number()</></link>
7211 to properly handle a period used as a thousands separator (Tom Lane)
7215 Previously, a period was considered to be a decimal point even when
7216 the locale says it isn't and the <literal>D</> format code is used to
7217 specify use of the locale-specific decimal point. This resulted in
7218 wrong answers if <literal>FM</> format was also used.
7224 Fix <literal>STRICT</> non-set-returning functions that have
7225 set-returning functions in their arguments to properly return null
7230 A null value passed to the strict function should result in a null
7231 output, but instead, that output row was suppressed entirely.
7237 Store <link linkend="wal"><acronym>WAL</></link> in a continuous
7238 stream, rather than skipping the last 16MB segment every 4GB
7239 (Heikki Linnakangas)
7243 Previously, <acronym>WAL</> files with names ending in <literal>FF</>
7244 were not used because of this skipping. If you have <acronym>WAL</>
7245 backup or restore scripts that took this behavior into account, they
7246 will need to be adjusted.
7253 linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
7254 store the default foreign key match type (non-<literal>FULL</>,
7255 non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
7260 Previously this case was represented by <literal>u</>
7261 for <quote>unspecified</>.
7272 <title>Changes</title>
7275 Below you will find a detailed account of the changes between
7276 <productname>PostgreSQL</productname> 9.3 and the previous major
7281 <title>Server</title>
7284 <title>Locking</title>
7290 Prevent non-key-field row updates from blocking foreign key checks
7291 (Álvaro Herrera, Noah Misch, Andres Freund, Alexander
7292 Shulgin, Marti Raudsepp, Alexander Shulgin)
7296 This change improves concurrency and reduces the probability of
7297 deadlocks when updating tables involved in a foreign-key constraint.
7298 <command>UPDATE</>s that do not change any columns referenced in a
7299 foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
7300 the row, while foreign key checks use the new <literal>KEY SHARE</>
7301 lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
7302 So there is no blocking unless a foreign-key column is changed.
7308 Add configuration variable <link
7309 linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
7310 allow limiting how long a session will wait to acquire any one lock
7311 (Zoltán Böszörményi)
7320 <title>Indexes</title>
7326 Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
7327 support for range data types (Alexander Korotkov)
7333 Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
7334 unlogged (Jeevan Chalke)
7340 Improve performance of <acronym>GiST</> index insertion by randomizing
7341 the choice of which page to descend to when there are multiple equally
7342 good alternatives (Heikki Linnakangas)
7348 Improve concurrency of hash index operations (Robert Haas)
7357 <title>Optimizer</title>
7363 Collect and use histograms of upper and lower bounds, as well as range
7364 lengths, for <link linkend="rangetypes">range types</link>
7365 (Alexander Korotkov)
7371 Improve optimizer's cost estimation for index access (Tom Lane)
7377 Improve optimizer's hash table size estimate for
7378 doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
7384 Suppress no-op Result and Limit plan nodes
7385 (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
7391 Reduce optimizer overhead by not keeping plans on the basis of cheap
7392 startup cost when the optimizer only cares about total cost overall
7402 <title>General Performance</title>
7408 Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
7409 option to avoid the overhead of marking tuples as frozen later
7410 (Simon Riggs, Jeff Davis)
7416 Improve performance of <link
7417 linkend="datatype-numeric"><type>NUMERIC</></link> calculations
7424 Improve synchronization of sessions waiting for <link
7425 linkend="guc-commit-delay"><varname>commit_delay</></link>
7430 This greatly improves the usefulness of <varname>commit_delay</>.
7436 Improve performance of the <link
7437 linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
7438 COMMIT DELETE ROWS</></link> option by not truncating such temporary
7439 tables in transactions that haven't touched any temporary tables
7440 (Heikki Linnakangas)
7446 Make vacuum recheck visibility after it has removed expired tuples
7451 This increases the chance of a page being marked as all-visible.
7457 Add per-resource-owner lock caches (Jeff Janes)
7461 This speeds up lock bookkeeping at statement completion in
7462 multi-statement transactions that hold many locks; it is particularly
7463 useful for <application>pg_dump</>.
7469 Avoid scanning the entire relation cache at commit of a transaction
7470 that creates a new relation (Jeff Janes)
7474 This speeds up sessions that create many tables in successive
7475 small transactions, such as a <application>pg_restore</> run.
7481 Improve performance of transactions that drop many relations
7491 <title>Monitoring</title>
7497 Add optional ability to <link
7498 linkend="app-initdb-data-checksums">checksum</link> data pages and
7499 report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
7503 The checksum option can be set during <link
7504 linkend="APP-INITDB">initdb</link>.
7510 Split the <link linkend="monitoring-stats">statistics collector's</link>
7511 data file into separate global and per-database files (Tomas Vondra)
7515 This reduces the I/O required for statistics tracking.
7521 Fix the statistics collector to operate properly in cases where the
7522 system clock goes backwards (Tom Lane)
7526 Previously, statistics collection would stop until the time again
7527 reached the latest time previously recorded.
7533 Emit an informative message to postmaster standard error when we
7534 are about to stop logging there
7539 This should help reduce user confusion about where to look for log
7540 output in common configurations that log to standard error only during
7550 <title>Authentication</title>
7556 When an authentication failure occurs, log the relevant
7557 <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
7558 line, to ease debugging of unintended failures
7565 Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
7566 reporting and documentation (Peter Eisentraut)
7572 Add support for specifying <acronym>LDAP</> authentication parameters
7573 in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
7580 linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
7581 to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
7582 then remove insecure ciphers (Magnus Hagander)
7586 This should yield a more appropriate SSL cipher set.
7592 Parse and load <link
7593 linkend="auth-username-maps"><filename>pg_ident.conf</></link>
7594 once, not during each connection (Amit Kapila)
7598 This is similar to how <filename>pg_hba.conf</> is processed.
7607 <title>Server Settings</title>
7613 Greatly reduce System V <link linkend="sysvipc">shared
7614 memory</link> requirements (Robert Haas)
7618 On Unix-like systems, <function>mmap()</> is now used for most
7619 of <productname>PostgreSQL</>'s shared memory. For most users, this
7620 will eliminate any need to adjust kernel parameters for shared memory.
7626 Allow the postmaster to listen on multiple Unix-domain sockets
7627 (Honza Horák)
7631 The configuration parameter
7632 <varname>unix_socket_directory</> is replaced by <link
7633 linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
7634 which accepts a list of directories.
7640 Allow a directory of configuration files to be processed (Magnus
7641 Hagander, Greg Smith, Selena Deckelmann)
7645 Such a directory is specified with <link
7646 linkend="config-includes"><varname>include_dir</></link> in the server
7653 Increase the maximum <link
7654 linkend="APP-INITDB">initdb</link>-configured value for <link
7655 linkend="guc-shared-buffers"><varname>shared_buffers</></link>
7656 to 128MB (Robert Haas)
7660 This is the maximum value that initdb will attempt to set in <link
7661 linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
7662 the previous maximum was 32MB.
7668 Remove the <link linkend="guc-external-pid-file">external
7669 <acronym>PID</> file</link>, if any, on postmaster exit
7681 <title>Replication and Recovery</title>
7687 Allow a streaming replication standby to <link
7688 linkend="protocol-replication">follow a timeline switch</link>
7689 (Heikki Linnakangas)
7693 This allows streaming standby servers to receive WAL data from a slave
7694 newly promoted to master status. Previously, other standbys would
7695 require a resync to begin following the new master.
7701 Add <acronym>SQL</> functions <link
7702 linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
7704 linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
7709 These functions report the status of base backups.
7715 Improve performance of streaming log shipping with <link
7716 linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
7717 disabled (Andres Freund)
7723 Allow much faster promotion of a streaming standby to primary (Simon
7724 Riggs, Kyotaro Horiguchi)
7730 Add the last checkpoint's redo location to <link
7731 linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
7732 output (Fujii Masao)
7736 This information is useful for determining which <acronym>WAL</>
7737 files are needed for restore.
7743 Allow tools like <link
7744 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
7745 to run on computers with different architectures (Heikki
7750 WAL files can still only be replayed on servers with the same
7751 architecture as the primary; but they can now be transmitted to and
7752 stored on machines of any architecture, since the
7753 streaming replication protocol is now machine-independent.
7760 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
7761 <option>--write-recovery-conf</> output a
7762 minimal <filename>recovery.conf</> file (Zoltán
7763 Böszörményi, Magnus Hagander)
7767 This simplifies setting up a standby server.
7774 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
7776 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
7777 <option>--xlog-method</> to handle streaming timeline switches
7778 (Heikki Linnakangas)
7785 linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
7786 parameter to control the <acronym>WAL</> receiver's timeout
7791 This allows more rapid detection of connection failure.
7797 Change the <link linkend="wal"><acronym>WAL</></link> record format to
7798 allow splitting the record header across pages (Heikki Linnakangas)
7802 The new format is slightly more compact, and is more efficient to
7812 <title>Queries</title>
7818 Implement <acronym>SQL</>-standard <link
7819 linkend="queries-lateral"><literal>LATERAL</></link> option for
7820 <literal>FROM</>-clause subqueries and function calls (Tom Lane)
7824 This feature allows subqueries and functions in <literal>FROM</> to
7825 reference columns from other tables in the <literal>FROM</>
7826 clause. The <literal>LATERAL</> keyword is optional for functions.
7832 Add support for piping <link
7833 linkend="SQL-COPY"><command>COPY</></link> and <link
7834 linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
7835 data to/from an external program (Etsuro Fujita)
7841 Allow a multirow <link
7842 linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
7843 to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
7852 <title>Object Manipulation</title>
7858 Add support for <link linkend="event-triggers">event triggers</link>
7859 (Dimitri Fontaine, Robert Haas, Álvaro Herrera)
7863 This allows server-side functions written in event-enabled
7864 languages to be called when DDL commands are run.
7870 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
7871 wrappers</link> to support writes (inserts/updates/deletes) on foreign
7872 tables (KaiGai Kohei)
7878 Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
7879 NOT EXISTS</></link> clause (Fabrízio de Royes Mello)
7885 Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
7886 OWNED</></link> also change ownership of shared objects
7887 (Álvaro Herrera)
7893 Make <link linkend="sql-createaggregate"><command>CREATE
7894 AGGREGATE</></link> complain if the given initial value string is not
7895 valid input for the transition datatype (Tom Lane)
7901 Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
7902 TABLE</></link>'s messages about implicit index and sequence creation
7907 These messages now appear at <literal>DEBUG1</> verbosity, so that
7908 they will not be shown by default.
7914 Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
7915 EXISTS</></link> to succeed when a non-existent schema is specified
7916 in the table name (Bruce Momjian)
7920 Previously, it threw an error if the schema did not exist.
7926 Provide clients with <link
7927 linkend="libpq-pqresulterrorfield">constraint violation details</link>
7928 as separate fields (Pavel Stehule)
7932 This allows clients to retrieve table, column, data type, or
7933 constraint name error details. Previously such information had to be
7934 extracted from error strings. Client library support is required to
7935 access these fields.
7942 <title><command>ALTER</></title>
7948 Support <literal>IF NOT EXISTS</> option in <link
7949 linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
7954 This is useful for conditionally adding values to enumerated types.
7960 Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
7961 SET</></link> to establish settings for all users (Peter Eisentraut)
7965 This allows settings to apply to all users in all databases. <link
7966 linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
7967 already allowed addition of settings for all users in a single
7968 database. <filename>postgresql.conf</> has a similar effect.
7974 Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
7975 ... RENAME</></link> (Ali Dar)
7984 <title><link linkend="rules-views"><command>VIEWs</></link></title>
7990 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
7991 views</link> (Kevin Grittner)
7995 Unlike ordinary views, where the base tables are read on every access,
7996 materialized views create physical tables at creation or refresh time.
7997 Access to the materialized view then reads from its physical
7998 table. There is not yet any facility for incrementally refreshing
7999 materialized views or auto-accessing them via base table access.
8005 Make simple views <link
8006 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
8011 Simple views that reference some or all columns from a
8012 single base table are now updatable by default. More
8013 complex views can be made updatable using <link
8014 linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
8015 or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
8021 Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
8022 VIEW</></link> syntax (Peter Eisentraut)
8026 Internally this is translated into <command>CREATE VIEW ... WITH
8033 Improve view/rule printing code to handle cases where referenced
8034 tables are renamed, or columns are renamed, added, or dropped
8039 Table and column renamings can produce cases where, if we merely
8040 substitute the new name into the original text of a rule or view, the
8041 result is ambiguous. This change fixes the rule-dumping code to insert
8042 manufactured table and column aliases when needed to preserve the
8054 <title>Data Types</title>
8060 Increase the maximum size of <link linkend="largeObjects">large
8061 objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
8065 This change includes adding 64-bit-capable large object access
8066 functions, both in the server and in libpq.
8072 Allow text <link linkend="datatype-timezones">timezone
8073 designations</link>, e.g. <quote>America/Chicago</>, in the
8074 <quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
8075 input (Bruce Momjian)
8082 <title><link linkend="datatype-json"><type>JSON</></link></title>
8088 Add <link linkend="functions-json">operators and functions</link>
8089 to extract elements from <type>JSON</> values (Andrew Dunstan)
8095 Allow <type>JSON</> values to be <link
8096 linkend="functions-json">converted into records</link>
8103 Add <link linkend="functions-json">functions</link> to convert
8104 scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
8117 <title>Functions</title>
8124 linkend="array-functions-table"><function>array_remove()</></link>
8126 linkend="array-functions-table"><function>array_replace()</></link>
8127 functions (Marco Nenciarini, Gabriele Bartolini)
8134 linkend="functions-string-other"><function>concat()</></link>
8136 linkend="functions-string-format"><function>format()</></link>
8137 to properly expand <literal>VARIADIC</>-labeled arguments
8145 linkend="functions-string-format"><function>format()</></link>
8146 to provide field width and left/right alignment options (Pavel Stehule)
8153 linkend="functions-formatting-table"><function>to_char()</></link>,
8155 linkend="functions-formatting-table"><function>to_date()</></link>,
8157 linkend="functions-formatting-table"><function>to_timestamp()</></link>
8158 handle negative (BC) century values properly
8163 Previously the behavior was either wrong or inconsistent
8164 with positive/<acronym>AD</> handling, e.g. with the format mask
8165 <quote>IYYY-IW-DY</>.
8172 linkend="functions-formatting-table"><function>to_date()</></link>
8174 linkend="functions-formatting-table"><function>to_timestamp()</></link>
8175 return proper results when mixing <acronym>ISO</> and Gregorian
8176 week/day designations (Bruce Momjian)
8183 linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
8184 to start a new line by default after each <literal>SELECT</> target
8185 list entry and <literal>FROM</> entry (Marko Tiikkaja)
8189 This reduces line length in view printing, for instance in <link
8190 linkend="APP-PGDUMP"><application>pg_dump</></link> output.
8196 Fix <function>map_sql_value_to_xml_value()</> to print values of
8197 domain types the same way their base type would be printed
8202 There are special formatting rules for certain built-in types such as
8203 <type>boolean</>; these rules now also apply to domains over these
8213 <title>Server-Side Languages</title>
8216 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
8222 Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
8223 expression (Asif Rehman)
8227 Previously, in a function returning a composite type,
8228 <literal>RETURN</> could only reference a variable of that type.
8234 Allow PL/pgSQL to access <link
8235 linkend="plpgsql-exception-diagnostics">constraint violation
8236 details</link> as separate fields (Pavel Stehule)
8242 Allow PL/pgSQL to access the number of rows processed by
8243 <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
8247 A <command>COPY</> executed in a PL/pgSQL function now updates the
8248 value retrieved by <link
8249 linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
8250 x = ROW_COUNT</></link>.
8256 Allow unreserved keywords to be used as identifiers everywhere in
8261 In certain places in the PL/pgSQL grammar, keywords had to be quoted
8262 to be used as identifiers, even if they were nominally unreserved.
8271 <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
8277 Add PL/Python result object string handler (Peter Eisentraut)
8281 This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
8287 Make PL/Python convert OID values to a proper Python numeric type
8294 Handle <link linkend="spi"><acronym>SPI</></link> errors raised
8295 explicitly (with PL/Python's <literal>RAISE</>) the same as
8296 internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
8307 <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
8313 Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
8318 At the end of any failed subtransaction, the core SPI code now
8319 releases any SPI tuple tables that were created during that
8320 subtransaction. This avoids the need for SPI-using code to keep track
8321 of such tuple tables and release them manually in error-recovery code.
8322 Failure to do so caused a number of transaction-lifespan memory leakage
8323 issues in PL/pgSQL and perhaps other SPI clients. <link
8324 linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
8325 now protects itself against multiple freeing requests, so any existing
8326 code that did take care to clean up shouldn't be broken by this change.
8332 Allow <acronym>SPI</> functions to access the number of rows processed
8333 by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
8342 <title>Client Applications</title>
8348 Add command-line utility <link
8349 linkend="app-pg-isready"><application>pg_isready</></link> to
8350 check if the server is ready to accept connections (Phil Sorber)
8356 Support multiple <option>--table</> arguments for <link
8357 linkend="APP-PGRESTORE"><application>pg_restore</></link>,
8358 <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
8359 <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
8360 and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
8365 This is similar to the way <link
8366 linkend="APP-PGDUMP"><application>pg_dump</></link>'s
8367 <option>--table</> option works.
8373 Add <option>--dbname</> option to <link
8374 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
8375 linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
8377 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
8378 to allow specifying a connection string (Amit Kapila)
8384 Add libpq function <link
8385 linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
8386 to return connection information (Zoltán
8387 Böszörményi, Magnus Hagander)
8394 <title><link linkend="APP-PSQL"><application>psql</></link></title>
8400 Adjust function cost settings so <application>psql</> tab
8401 completion and pattern searching are more efficient (Tom Lane)
8407 Improve <application>psql</>'s tab completion coverage (Jeff Janes,
8408 Dean Rasheed, Peter Eisentraut, Magnus Hagander)
8414 Allow the <application>psql</> <option>--single-transaction</>
8415 mode to work when reading from standard input (Fabien Coelho,
8420 Previously this option only worked when reading from a file.
8426 Remove <application>psql</> warning when connecting to an older
8427 server (Peter Eisentraut)
8431 A warning is still issued when connecting to a server of a newer major
8432 version than <application>psql</>'s.
8439 <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
8445 Add <application>psql</> command <command>\watch</> to repeatedly
8446 execute a SQL command (Will Leinweber)
8452 Add <application>psql</> command <command>\gset</> to store query
8453 results in <application>psql</> variables (Pavel Stehule)
8459 Add <acronym>SSL</> information to <application>psql</>'s
8460 <command>\conninfo</> command (Alastair Turner)
8466 Add <quote>Security</> column to <application>psql</>'s
8467 <command>\df+</> output (Jon Erdman)
8473 Allow <application>psql</> command <command>\l</> to accept a database
8474 name pattern (Peter Eisentraut)
8480 In <application>psql</>, do not allow <command>\connect</> to
8481 use defaults if there is no active connection (Bruce Momjian)
8485 This might be the case if the server had crashed.
8491 Properly reset state after failure of a SQL command executed with
8492 <application>psql</>'s <literal>\g</> <replaceable>file</>
8497 Previously, the output from subsequent SQL commands would unexpectedly
8498 continue to go to the same file.
8507 <title>Output</title>
8513 Add a <literal>latex-longtable</> output format to
8514 <application>psql</> (Bruce Momjian)
8518 This format allows tables to span multiple pages.
8524 Add a <literal>border=3</> output mode to the <application>psql</>
8525 <literal>latex</> format (Bruce Momjian)
8531 In <application>psql</>'s tuples-only and expanded output modes, no
8532 longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
8538 In <application>psql</>'s unaligned, expanded output mode, no longer
8539 print an empty line for zero rows (Peter Eisentraut)
8550 <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
8556 Add <application>pg_dump</> <option>--jobs</> option to dump tables in
8557 parallel (Joachim Wieland)
8563 Make <application>pg_dump</> output functions in a more predictable
8564 order (Joel Jacobson)
8570 Fix tar files emitted by <application>pg_dump</>
8571 to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
8577 Add <option>--dbname</> option to <application>pg_dump</>, for
8578 consistency with other client commands (Heikki Linnakangas)
8582 The database name could already be supplied last without a flag.
8591 <title><link linkend="APP-INITDB"><application>initdb</></link></title>
8597 Make initdb fsync the newly created data directory (Jeff Davis)
8601 This insures data integrity in event of a system crash shortly after
8602 initdb. This can be disabled by using <option>--nosync</>.
8608 Add initdb <option>--sync-only</> option to sync the data directory to durable
8609 storage (Bruce Momjian)
8613 This is used by <link
8614 linkend="pgupgrade"><application>pg_upgrade</></link>.
8620 Make initdb issue a warning about placing the data directory at the
8621 top of a file system mount point (Bruce Momjian)
8632 <title>Source Code</title>
8638 Add infrastructure to allow plug-in <link
8639 linkend="bgworker">background worker processes</link>
8640 (Álvaro Herrera)
8646 Create a centralized timeout <acronym>API</> (Zoltán
8647 Böszörményi)
8653 Create libpgcommon and move <function>pg_malloc()</> and other
8654 functions there (Álvaro Herrera, Andres Freund)
8658 This allows libpgport to be used solely for portability-related code.
8664 Add support for list links embedded in larger structs (Andres Freund)
8670 Use <literal>SA_RESTART</> for all signals,
8671 including <literal>SIGALRM</> (Tom Lane)
8677 Ensure that the correct text domain is used when
8678 translating <function>errcontext()</> messages
8679 (Heikki Linnakangas)
8685 Standardize naming of client-side memory allocation functions (Tom Lane)
8691 Provide support for <quote>static assertions</> that will fail at
8692 compile time if some compile-time-constant condition is not met
8693 (Andres Freund, Tom Lane)
8699 Support <function>Assert()</> in client-side code (Andrew Dunstan)
8705 Add decoration to inform the C compiler that some <function>ereport()</>
8706 and <function>elog()</> calls do not return (Peter Eisentraut,
8707 Andres Freund, Tom Lane, Heikki Linnakangas)
8713 Allow options to be passed to the regression
8714 test output comparison utility via <link
8715 linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
8722 Add isolation tests for <link
8723 linkend="SQL-CREATEINDEX"><command>CREATE INDEX
8724 CONCURRENTLY</></link> (Abhijit Menon-Sen)
8730 Remove typedefs for <type>int2</>/<type>int4</> as they are better
8731 represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
8737 Fix <link linkend="install">install-strip</link> on Mac <productname>OS
8738 X</> (Peter Eisentraut)
8744 Remove <link linkend="configure">configure</link> flag
8745 <option>--disable-shared</>, as it is no longer supported
8752 Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
8758 Provide Emacs macro to set Perl formatting to
8759 match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
8765 Run tool to check the keyword list whenever the backend grammar is
8772 Change the way <literal>UESCAPE</> is lexed, to significantly reduce
8773 the size of the lexer tables (Heikki Linnakangas)
8779 Centralize <application>flex</> and <application>bison</>
8780 <application>make</> rules (Peter Eisentraut)
8784 This is useful for <application>pgxs</> authors.
8790 Change many internal backend functions to return object <type>OID</>s
8791 rather than void (Dimitri Fontaine)
8795 This is useful for event triggers.
8801 Invent pre-commit/pre-prepare/pre-subcommit events for transaction
8802 callbacks (Tom Lane)
8806 Loadable modules that use transaction callbacks might need modification
8807 to handle these new event types.
8814 linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
8815 to produce a machine-readable description of a database object
8816 (Álvaro Herrera)
8822 Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
8828 Implement a generic binary heap and use it for Merge-Append
8829 operations (Abhijit Menon-Sen)
8835 Provide a tool to help detect timezone abbreviation changes when
8836 updating the <filename>src/timezone/data</> files
8843 Add <application>pkg-config</> support for <application>libpq</>
8844 and <application>ecpg</> libraries (Peter Eisentraut)
8850 Remove <filename>src/tool/backend</>, now that the content is on
8851 the <productname>PostgreSQL</> wiki (Bruce Momjian)
8857 Split out <link linkend="wal"><acronym>WAL</></link> reading as
8858 an independent facility (Heikki Linnakangas, Andres Freund)
8864 Use a 64-bit integer to represent <link
8865 linkend="wal"><acronym>WAL</></link> positions
8866 (<structname>XLogRecPtr</>) instead of two 32-bit integers
8867 (Heikki Linnakangas)
8871 Generally, tools that need to read the <acronym>WAL</> format
8872 will need to be adjusted.
8878 Allow <link linkend="plpython">PL/Python</link> to support
8879 platform-specific include directories (Peter Eisentraut)
8885 Allow <link linkend="plpython">PL/Python</link> on <productname>OS
8886 X</> to build against custom versions of <application>Python</>
8896 <title>Additional Modules</title>
8902 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
8903 data wrapper</link> contrib module to allow access to
8904 other <productname>Postgres</> servers (Shigeru Hanada)
8908 This foreign data wrapper supports writes.
8914 Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
8915 contrib program (Andres Freund)
8921 Add support for indexing of regular-expression searches in
8922 <link linkend="pgtrgm"><productname>pg_trgm</></link>
8923 (Alexander Korotkov)
8929 Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
8930 handling of multibyte characters (Tom Lane)
8934 On a platform that does not have the wcstombs() or towlower() library
8935 functions, this could result in an incompatible change in the contents
8936 of <productname>pg_trgm</> indexes for non-ASCII data. In such cases,
8937 <command>REINDEX</> those indexes to ensure correct search results.
8943 Add a <link linkend="pgstattuple">pgstattuple</link> function to report
8944 the size of the pending-insertions list of a <acronym>GIN</> index
8951 Make <link linkend="oid2name"><application>oid2name</></link>,
8952 <link linkend="pgbench"><application>pgbench</></link>, and
8953 <link linkend="vacuumlo"><application>vacuumlo</></link> set
8954 <varname>fallback_application_name</> (Amit Kapila)
8960 Improve output of <link
8961 linkend="pgtesttiming"><application>pg_test_timing</></link>
8968 Improve output of <link
8969 linkend="pgtestfsync"><application>pg_test_fsync</></link>
8976 Create a dedicated foreign data wrapper, with its own option validator
8977 function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
8981 When using this FDW to define the target of a <application>dblink</>
8982 connection, instead of using a hard-wired list of connection options,
8983 the underlying <application>libpq</> library is consulted to see what
8984 connection options it supports.
8991 <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
8997 Allow <application>pg_upgrade</> to do dumps and restores in
8998 parallel (Bruce Momjian, Andrew Dunstan)
9002 This allows parallel schema dump/restore of databases, as well as
9003 parallel copy/link of data files per tablespace. Use the
9004 <option>--jobs</> option to specify the level of parallelism.
9010 Make <application>pg_upgrade</> create Unix-domain sockets in
9011 the current directory (Bruce Momjian, Tom Lane)
9015 This reduces the possibility that someone will accidentally connect
9022 Make <application>pg_upgrade</> <option>--check</> mode properly
9023 detect the location of non-default socket directories (Bruce
9030 Improve performance of <application>pg_upgrade</> for databases
9031 with many tables (Bruce Momjian)
9037 Improve <application>pg_upgrade</>'s logs by showing
9038 executed commands (Álvaro Herrera)
9044 Improve <application>pg_upgrade</>'s status display during
9045 copy/link (Bruce Momjian)
9054 <title><link linkend="pgbench"><application>pgbench</></link></title>
9060 Add <option>--foreign-keys</> option to <application>pgbench</>
9065 This adds foreign key constraints to the standard tables created by
9066 <application>pgbench</>, for use in foreign key performance testing.
9072 Allow <application>pgbench</> to aggregate performance statistics
9073 and produce output every <option>--aggregate-interval</>
9074 seconds (Tomas Vondra)
9080 Add <application>pgbench</> <option>--sampling-rate</> option
9081 to control the percentage of transactions logged (Tomas Vondra)
9087 Reduce and improve the status message output of
9088 <application>pgbench</>'s initialization mode (Robert Haas,
9095 Add <application>pgbench</> <option>-q</> mode to print one output
9096 line every five seconds (Tomas Vondra)
9102 Output <application>pgbench</> elapsed and estimated remaining
9103 time during initialization (Tomas Vondra)
9109 Allow <application>pgbench</> to use much larger scale factors,
9110 by changing relevant columns from <type>integer</> to <type>bigint</>
9111 when the requested scale factor exceeds 20000
9123 <title>Documentation</title>
9129 Allow <productname>EPUB</>-format documentation to be created
9136 Update <productname>FreeBSD</> kernel configuration documentation
9143 Improve <link linkend="tutorial-window"><literal>WINDOW</>
9144 function</link> documentation (Bruce Momjian, Florian Pflug)
9150 Add <link linkend="docguide-toolsets">instructions</link> for setting
9151 up the documentation tool chain on Mac <productname>OS X</>
9159 linkend="guc-commit-delay"><varname>commit_delay</></link>
9160 documentation (Peter Geoghegan)