1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-3-16">
5 <title>Release 9.3.16</title>
8 <title>Release Date</title>
9 <simpara>2017-02-09</simpara>
13 This release contains a variety of fixes from 9.3.15.
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.16</title>
22 A dump/restore is not required for those running 9.3.X.
26 However, if your installation has been affected by the bug described in
27 the first changelog entry below, then after updating you may need
28 to take action to repair corrupted indexes.
32 Also, if you are upgrading from a version earlier than 9.3.15,
33 see <xref linkend="release-9-3-15">.
39 <title>Changes</title>
45 Fix a race condition that could cause indexes built
46 with <command>CREATE INDEX CONCURRENTLY</> to be corrupt
47 (Pavan Deolasee, Tom Lane)
51 If <command>CREATE INDEX CONCURRENTLY</> was used to build an index
52 that depends on a column not previously indexed, then rows inserted
53 or updated by transactions that ran concurrently with
54 the <command>CREATE INDEX</> command could have received incorrect
55 index entries. If you suspect this may have happened, the most
56 reliable solution is to rebuild affected indexes after installing
63 Unconditionally WAL-log creation of the <quote>init fork</> for an
64 unlogged table (Michael Paquier)
68 Previously, this was skipped when <xref linkend="guc-wal-level">
69 = <literal>minimal</>, but actually it's necessary even in that case
70 to ensure that the unlogged table is properly reset to empty after a
77 If the stats collector dies during hot standby, restart it (Takayuki
84 Ensure that hot standby feedback works correctly when it's enabled at
85 standby server start (Ants Aasma, Craig Ringer)
91 Check for interrupts while hot standby is waiting for a conflicting
98 Avoid constantly respawning the autovacuum launcher in a corner case
103 This fix avoids problems when autovacuum is nominally off and there
104 are some tables that require freezing, but all such tables are
105 already being processed by autovacuum workers.
111 Fix check for when an extension member object can be dropped (Tom Lane)
115 Extension upgrade scripts should be able to drop member objects,
116 but this was disallowed for serial-column sequences, and possibly
123 Make sure <command>ALTER TABLE</> preserves index tablespace
124 assignments when rebuilding indexes (Tom Lane, Michael Paquier)
128 Previously, non-default settings
129 of <xref linkend="guc-default-tablespace"> could result in broken
136 Prevent dropping a foreign-key constraint if there are pending
137 trigger events for the referenced relation (Tom Lane)
141 This avoids <quote>could not find trigger <replaceable>NNN</></quote>
142 or <quote>relation <replaceable>NNN</> has no triggers</quote> errors.
148 Fix processing of OID column when a table with OIDs is associated to
149 a parent with OIDs via <command>ALTER TABLE ... INHERIT</> (Amit
154 The OID column should be treated the same as regular user columns in
155 this case, but it wasn't, leading to odd behavior in later
162 Report correct object identity during <command>ALTER TEXT SEARCH
163 CONFIGURATION</> (Artur Zakirov)
167 The wrong catalog OID was reported to extensions such as logical
174 Check for serializability conflicts before reporting
175 constraint-violation failures (Thomas Munro)
179 When using serializable transaction isolation, it is desirable
180 that any error due to concurrent transactions should manifest
181 as a serialization failure, thereby cueing the application that
182 a retry might succeed. Unfortunately, this does not reliably
183 happen for duplicate-key failures caused by concurrent insertions.
184 This change ensures that such an error will be reported as a
185 serialization error if the application explicitly checked for
186 the presence of a conflicting key (and did not find it) earlier
193 Prevent multicolumn expansion of <replaceable>foo</><literal>.*</> in
194 an <command>UPDATE</> source expression (Tom Lane)
198 This led to <quote>UPDATE target count mismatch --- internal
199 error</>. Now the syntax is understood as a whole-row variable,
200 as it would be in other contexts.
206 Ensure that column typmods are determined accurately for
207 multi-row <literal>VALUES</> constructs (Tom Lane)
211 This fixes problems occurring when the first value in a column has a
212 determinable typmod (e.g., length for a <type>varchar</> value) but
213 later values don't share the same limit.
219 Throw error for an unfinished Unicode surrogate pair at the end of a
220 Unicode string (Tom Lane)
224 Normally, a Unicode surrogate leading character must be followed by a
225 Unicode surrogate trailing character, but the check for this was
226 missed if the leading character was the last character in a Unicode
227 string literal (<literal>U&'...'</>) or Unicode identifier
228 (<literal>U&"..."</>).
234 Ensure that a purely negative text search query, such
235 as <literal>!foo</>, matches empty <type>tsvector</>s (Tom Dunstan)
239 Such matches were found by GIN index searches, but not by sequential
240 scans or GiST index searches.
246 Prevent crash when <function>ts_rewrite()</> replaces a non-top-level
247 subtree with an empty query (Artur Zakirov)
253 Fix performance problems in <function>ts_rewrite()</> (Tom Lane)
259 Fix <function>ts_rewrite()</>'s handling of nested NOT operators
266 Fix <function>array_fill()</> to handle empty arrays properly (Tom Lane)
272 Fix one-byte buffer overrun in <function>quote_literal_cstr()</>
277 The overrun occurred only if the input consisted entirely of single
278 quotes and/or backslashes.
284 Prevent multiple calls of <function>pg_start_backup()</>
285 and <function>pg_stop_backup()</> from running concurrently (Michael
290 This avoids an assertion failure, and possibly worse things, if
291 someone tries to run these functions in parallel.
297 Avoid discarding <type>interval</>-to-<type>interval</> casts
298 that aren't really no-ops (Tom Lane)
302 In some cases, a cast that should result in zeroing out
303 low-order <type>interval</> fields was mistakenly deemed to be a
304 no-op and discarded. An example is that casting from <type>INTERVAL
305 MONTH</> to <type>INTERVAL YEAR</> failed to clear the months field.
311 Ensure that cached plans are invalidated by changes in foreign-table
312 options (Amit Langote, Etsuro Fujita, Ashutosh Bapat)
318 Fix <application>pg_dump</> to dump user-defined casts and transforms
319 that use built-in functions (Stephen Frost)
325 Fix possible <application>pg_basebackup</> failure on standby
326 server when including WAL files (Amit Kapila, Robert Haas)
332 Ensure that the Python exception objects we create for PL/Python are
333 properly reference-counted (Rafa de la Torre, Tom Lane)
337 This avoids failures if the objects are used after a Python garbage
338 collection cycle has occurred.
344 Fix PL/Tcl to support triggers on tables that have <literal>.tupno</>
345 as a column name (Tom Lane)
349 This matches the (previously undocumented) behavior of
350 PL/Tcl's <command>spi_exec</> and <command>spi_execp</> commands,
351 namely that a magic <literal>.tupno</> column is inserted only if
352 there isn't a real column named that.
358 Allow DOS-style line endings in <filename>~/.pgpass</> files,
359 even on Unix (Vik Fearing)
363 This change simplifies use of the same password file across Unix and
370 Fix one-byte buffer overrun if <application>ecpg</> is given a file
371 name that ends with a dot (Takayuki Tsunakawa)
377 Fix <application>psql</>'s tab completion for <command>ALTER DEFAULT
378 PRIVILEGES</> (Gilles Darold, Stephen Frost)
384 In <application>psql</>, treat an empty or all-blank setting of
385 the <envar>PAGER</> environment variable as meaning <quote>no
390 Previously, such a setting caused output intended for the pager to
397 Improve <filename>contrib/dblink</>'s reporting of
398 low-level <application>libpq</> errors, such as out-of-memory
405 Teach <filename>contrib/dblink</> to ignore irrelevant server options
406 when it uses a <filename>contrib/postgres_fdw</> foreign server as
407 the source of connection options (Corey Huinker)
411 Previously, if the foreign server object had options that were not
412 also <application>libpq</> connection options, an error occurred.
418 On Windows, ensure that environment variable changes are propagated
419 to DLLs built with debug options (Christian Ullrich)
425 Sync our copy of the timezone library with IANA release tzcode2016j
430 This fixes various issues, most notably that timezone data
431 installation failed if the target directory didn't support hard
438 Update time zone data files to <application>tzdata</> release 2016j
439 for DST law changes in northern Cyprus (adding a new zone
440 Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga,
441 and Antarctica/Casey.
442 Historical corrections for Italy, Kazakhstan, Malta, and Palestine.
443 Switch to preferring numeric zone abbreviations for Tonga.
452 <sect1 id="release-9-3-15">
453 <title>Release 9.3.15</title>
456 <title>Release Date</title>
457 <simpara>2016-10-27</simpara>
461 This release contains a variety of fixes from 9.3.14.
462 For information about new features in the 9.3 major release, see
463 <xref linkend="release-9-3">.
467 <title>Migration to Version 9.3.15</title>
470 A dump/restore is not required for those running 9.3.X.
474 However, if your installation has been affected by the bug described in
475 the first changelog entry below, then after updating you may need
476 to take action to repair corrupted free space maps.
480 Also, if you are upgrading from a version earlier than 9.3.9,
481 see <xref linkend="release-9-3-9">.
487 <title>Changes</title>
493 Fix WAL-logging of truncation of relation free space maps and
494 visibility maps (Pavan Deolasee, Heikki Linnakangas)
498 It was possible for these files to not be correctly restored during
499 crash recovery, or to be written incorrectly on a standby server.
500 Bogus entries in a free space map could lead to attempts to access
501 pages that have been truncated away from the relation itself, typically
502 producing errors like <quote>could not read block <replaceable>XXX</>:
503 read only 0 of 8192 bytes</quote>. Checksum failures in the
504 visibility map are also possible, if checksumming is enabled.
508 Procedures for determining whether there is a problem and repairing it
509 if so are discussed at
510 <ulink url="https://wiki.postgresql.org/wiki/Free_Space_Map_Problems"></>.
516 Fix <command>SELECT FOR UPDATE/SHARE</> to correctly lock tuples that
517 have been updated by a subsequently-aborted transaction
518 (Álvaro Herrera)
522 In 9.5 and later, the <command>SELECT</> would sometimes fail to
523 return such tuples at all. A failure has not been proven to occur in
524 earlier releases, but might be possible with concurrent updates.
530 Fix EvalPlanQual rechecks involving CTE scans (Tom Lane)
534 The recheck would always see the CTE as returning no rows, typically
535 leading to failure to update rows that were recently updated.
541 Fix improper repetition of previous results from hashed aggregation in
542 a subquery (Andrew Gierth)
546 The test to see if we can reuse a previously-computed hash table of
547 the aggregate state values neglected the possibility of an outer query
548 reference appearing in an aggregate argument expression. A change in
549 the value of such a reference should lead to recalculating the hash
556 Fix <command>EXPLAIN</> to emit valid XML when
557 <xref linkend="guc-track-io-timing"> is on (Markus Winand)
561 Previously the XML output-format option produced syntactically invalid
562 tags such as <literal><I/O-Read-Time></>. That is now
563 rendered as <literal><I-O-Read-Time></>.
569 Suppress printing of zeroes for unmeasured times
570 in <command>EXPLAIN</> (Maksim Milyutin)
574 Certain option combinations resulted in printing zero values for times
575 that actually aren't ever measured in that combination. Our general
576 policy in <command>EXPLAIN</> is not to print such fields at all, so
577 do that consistently in all cases.
583 Fix timeout length when <command>VACUUM</> is waiting for exclusive
584 table lock so that it can truncate the table (Simon Riggs)
588 The timeout was meant to be 50 milliseconds, but it was actually only
589 50 microseconds, causing <command>VACUUM</> to give up on truncation
590 much more easily than intended. Set it to the intended value.
596 Fix bugs in merging inherited <literal>CHECK</> constraints while
597 creating or altering a table (Tom Lane, Amit Langote)
601 Allow identical <literal>CHECK</> constraints to be added to a parent
602 and child table in either order. Prevent merging of a valid
603 constraint from the parent table with a <literal>NOT VALID</>
604 constraint on the child. Likewise, prevent merging of a <literal>NO
605 INHERIT</> child constraint with an inherited constraint.
611 Remove artificial restrictions on the values accepted
612 by <function>numeric_in()</> and <function>numeric_recv()</>
617 We allow numeric values up to the limit of the storage format (more
618 than <literal>1e100000</>), so it seems fairly pointless
619 that <function>numeric_in()</> rejected scientific-notation exponents
620 above 1000. Likewise, it was silly for <function>numeric_recv()</> to
621 reject more than 1000 digits in an input value.
627 Avoid very-low-probability data corruption due to testing tuple
628 visibility without holding buffer lock (Thomas Munro, Peter Geoghegan,
635 Fix file descriptor leakage when truncating a temporary relation of
636 more than 1GB (Andres Freund)
642 Disallow starting a standalone backend with <literal>standby_mode</>
643 turned on (Michael Paquier)
647 This can't do anything useful, since there will be no WAL receiver
648 process to fetch more WAL data; and it could result in misbehavior
649 in code that wasn't designed with this situation in mind.
655 Don't try to share SSL contexts across multiple connections
656 in <application>libpq</> (Heikki Linnakangas)
660 This led to assorted corner-case bugs, particularly when trying to use
661 different SSL parameters for different connections.
667 Avoid corner-case memory leak in <application>libpq</> (Tom Lane)
671 The reported problem involved leaking an error report
672 during <function>PQreset()</>, but there might be related cases.
678 Make <application>ecpg</>'s <option>--help</> and <option>--version</>
679 options work consistently with our other executables (Haribabu Kommi)
685 In <application>pg_dump</>, never dump range constructor functions
690 This oversight led to <application>pg_upgrade</> failures with
691 extensions containing range types, due to duplicate creation of the
692 constructor functions.
698 In <application>pg_xlogdump</>, retry opening new WAL segments when
699 using <option>--follow</> option (Magnus Hagander)
703 This allows for a possible delay in the server's creation of the next
710 Fix <application>pg_xlogdump</> to cope with a WAL file that begins
711 with a continuation record spanning more than one page (Pavan
718 Fix <filename>contrib/intarray/bench/bench.pl</> to print the results
719 of the <command>EXPLAIN</> it does when given the <option>-e</> option
726 Update Windows time zone mapping to recognize some time zone names
727 added in recent Windows versions (Michael Paquier)
733 Prevent failure of obsolete dynamic time zone abbreviations (Tom Lane)
737 If a dynamic time zone abbreviation does not match any entry in the
738 referenced time zone, treat it as equivalent to the time zone name.
739 This avoids unexpected failures when IANA removes abbreviations from
740 their time zone database, as they did in <application>tzdata</>
741 release 2016f and seem likely to do again in the future. The
742 consequences were not limited to not recognizing the individual
743 abbreviation; any mismatch caused
744 the <structname>pg_timezone_abbrevs</> view to fail altogether.
750 Update time zone data files to <application>tzdata</> release 2016h
751 for DST law changes in Palestine and Turkey, plus historical
752 corrections for Turkey and some regions of Russia.
753 Switch to numeric abbreviations for some time zones in Antarctica,
754 the former Soviet Union, and Sri Lanka.
758 The IANA time zone database previously provided textual abbreviations
759 for all time zones, sometimes making up abbreviations that have little
760 or no currency among the local population. They are in process of
761 reversing that policy in favor of using numeric UTC offsets in zones
762 where there is no evidence of real-world use of an English
763 abbreviation. At least for the time being, <productname>PostgreSQL</>
764 will continue to accept such removed abbreviations for timestamp input.
765 But they will not be shown in the <structname>pg_timezone_names</>
766 view nor used for output.
770 In this update, <literal>AMT</> is no longer shown as being in use to
771 mean Armenia Time. Therefore, we have changed the <literal>Default</>
772 abbreviation set to interpret it as Amazon Time, thus UTC-4 not UTC+4.
781 <sect1 id="release-9-3-14">
782 <title>Release 9.3.14</title>
785 <title>Release Date</title>
786 <simpara>2016-08-11</simpara>
790 This release contains a variety of fixes from 9.3.13.
791 For information about new features in the 9.3 major release, see
792 <xref linkend="release-9-3">.
796 <title>Migration to Version 9.3.14</title>
799 A dump/restore is not required for those running 9.3.X.
803 However, if you are upgrading from a version earlier than 9.3.9,
804 see <xref linkend="release-9-3-9">.
810 <title>Changes</title>
816 Fix possible mis-evaluation of
817 nested <literal>CASE</>-<literal>WHEN</> expressions (Heikki
818 Linnakangas, Michael Paquier, Tom Lane)
822 A <literal>CASE</> expression appearing within the test value
823 subexpression of another <literal>CASE</> could become confused about
824 whether its own test value was null or not. Also, inlining of a SQL
825 function implementing the equality operator used by
826 a <literal>CASE</> expression could result in passing the wrong test
827 value to functions called within a <literal>CASE</> expression in the
828 SQL function's body. If the test values were of different data
829 types, a crash might result; moreover such situations could be abused
830 to allow disclosure of portions of server memory. (CVE-2016-5423)
836 Fix client programs' handling of special characters in database and
837 role names (Noah Misch, Nathan Bossart, Michael Paquier)
841 Numerous places in <application>vacuumdb</> and other client programs
842 could become confused by database and role names containing double
843 quotes or backslashes. Tighten up quoting rules to make that safe.
844 Also, ensure that when a conninfo string is used as a database name
845 parameter to these programs, it is correctly treated as such throughout.
849 Fix handling of paired double quotes
850 in <application>psql</>'s <command>\connect</>
851 and <command>\password</> commands to match the documentation.
855 Introduce a new <option>-reuse-previous</> option
856 in <application>psql</>'s <command>\connect</> command to allow
857 explicit control of whether to re-use connection parameters from a
858 previous connection. (Without this, the choice is based on whether
859 the database name looks like a conninfo string, as before.) This
860 allows secure handling of database names containing special
861 characters in <application>pg_dumpall</> scripts.
865 <application>pg_dumpall</> now refuses to deal with database and role
866 names containing carriage returns or newlines, as it seems impractical
867 to quote those characters safely on Windows. In future we may reject
868 such names on the server side, but that step has not been taken yet.
872 These are considered security fixes because crafted object names
873 containing special characters could have been used to execute
874 commands with superuser privileges the next time a superuser
875 executes <application>pg_dumpall</> or other routine maintenance
876 operations. (CVE-2016-5424)
882 Fix corner-case misbehaviors for <literal>IS NULL</>/<literal>IS NOT
883 NULL</> applied to nested composite values (Andrew Gierth, Tom Lane)
887 The SQL standard specifies that <literal>IS NULL</> should return
888 TRUE for a row of all null values (thus <literal>ROW(NULL,NULL) IS
889 NULL</> yields TRUE), but this is not meant to apply recursively
890 (thus <literal>ROW(NULL, ROW(NULL,NULL)) IS NULL</> yields FALSE).
891 The core executor got this right, but certain planner optimizations
892 treated the test as recursive (thus producing TRUE in both cases),
893 and <filename>contrib/postgres_fdw</> could produce remote queries
894 that misbehaved similarly.
900 Make the <type>inet</> and <type>cidr</> data types properly reject
901 IPv6 addresses with too many colon-separated fields (Tom Lane)
907 Prevent crash in <function>close_ps()</>
908 (the <type>point</> <literal>##</> <type>lseg</> operator)
909 for NaN input coordinates (Tom Lane)
913 Make it return NULL instead of crashing.
919 Avoid possible crash in <function>pg_get_expr()</> when inconsistent
920 values are passed to it (Michael Paquier, Thomas Munro)
926 Fix several one-byte buffer over-reads in <function>to_number()</>
931 In several cases the <function>to_number()</> function would read one
932 more character than it should from the input string. There is a
933 small chance of a crash, if the input happens to be adjacent to the
940 Do not run the planner on the query contained in <literal>CREATE
941 MATERIALIZED VIEW</> or <literal>CREATE TABLE AS</>
942 when <literal>WITH NO DATA</> is specified (Michael Paquier,
947 This avoids some unnecessary failure conditions, for example if a
948 stable function invoked by the materialized view depends on a table
949 that doesn't exist yet.
955 Avoid unsafe intermediate state during expensive paths
956 through <function>heap_update()</> (Masahiko Sawada, Andres Freund)
960 Previously, these cases locked the target tuple (by setting its XMAX)
961 but did not WAL-log that action, thus risking data integrity problems
962 if the page were spilled to disk and then a database crash occurred
963 before the tuple update could be completed.
969 Fix hint bit update during WAL replay of row locking operations
974 The only known consequence of this problem is that row locks held by
975 a prepared, but uncommitted, transaction might fail to be enforced
976 after a crash and restart.
982 Avoid unnecessary <quote>could not serialize access</> errors when
983 acquiring <literal>FOR KEY SHARE</> row locks in serializable mode
984 (Álvaro Herrera)
990 Avoid crash in <literal>postgres -C</> when the specified variable
991 has a null string value (Michael Paquier)
997 Ensure that backends see up-to-date statistics for shared catalogs
1002 The statistics collector failed to update the statistics file for
1003 shared catalogs after a request from a regular backend. This problem
1004 was partially masked because the autovacuum launcher regularly makes
1005 requests that did cause such updates; however, it became obvious with
1006 autovacuum disabled.
1012 Avoid redundant writes of the statistics files when multiple
1013 backends request updates close together (Tom Lane, Tomas Vondra)
1019 Avoid consuming a transaction ID during <command>VACUUM</>
1020 (Alexander Korotkov)
1024 Some cases in <command>VACUUM</> unnecessarily caused an XID to be
1025 assigned to the current transaction. Normally this is negligible,
1026 but if one is up against the XID wraparound limit, consuming more
1027 XIDs during anti-wraparound vacuums is a very bad thing.
1033 Avoid canceling hot-standby queries during <command>VACUUM FREEZE</>
1034 (Simon Riggs, Álvaro Herrera)
1038 <command>VACUUM FREEZE</> on an otherwise-idle master server could
1039 result in unnecessary cancellations of queries on its standby
1046 Prevent possible failure when vacuuming multixact IDs in an
1047 installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth,
1048 Álvaro Herrera)
1052 The usual symptom of this bug is errors
1053 like <quote>MultiXactId <replaceable>NNN</> has not been created
1054 yet -- apparent wraparound</quote>.
1060 When a manual <command>ANALYZE</> specifies a column list, don't
1061 reset the table's <literal>changes_since_analyze</> counter
1066 If we're only analyzing some columns, we should not prevent routine
1067 auto-analyze from happening for the other columns.
1073 Fix <command>ANALYZE</>'s overestimation of <literal>n_distinct</>
1074 for a unique or nearly-unique column with many null entries (Tom
1079 The nulls could get counted as though they were themselves distinct
1080 values, leading to serious planner misestimates in some types of
1087 Prevent autovacuum from starting multiple workers for the same shared
1088 catalog (Álvaro Herrera)
1092 Normally this isn't much of a problem because the vacuum doesn't take
1093 long anyway; but in the case of a severely bloated catalog, it could
1094 result in all but one worker uselessly waiting instead of doing
1095 useful work on other tables.
1101 Prevent infinite loop in GiST index build for geometric columns
1102 containing NaN component values (Tom Lane)
1108 Fix <filename>contrib/btree_gin</> to handle the smallest
1109 possible <type>bigint</> value correctly (Peter Eisentraut)
1115 Teach libpq to correctly decode server version from future servers
1120 It's planned to switch to two-part instead of three-part server
1121 version numbers for releases after 9.6. Make sure
1122 that <function>PQserverVersion()</> returns the correct value for
1129 Fix <application>ecpg</>'s code for <literal>unsigned long long</>
1130 array elements (Michael Meskes)
1136 In <application>pg_dump</> with both <option>-c</> and <option>-C</>
1137 options, avoid emitting an unwanted <literal>CREATE SCHEMA public</>
1138 command (David Johnston, Tom Lane)
1144 Improve handling of <systemitem>SIGTERM</>/control-C in
1145 parallel <application>pg_dump</> and <application>pg_restore</> (Tom
1150 Make sure that the worker processes will exit promptly, and also arrange
1151 to send query-cancel requests to the connected backends, in case they
1152 are doing something long-running such as a <command>CREATE INDEX</>.
1158 Fix error reporting in parallel <application>pg_dump</>
1159 and <application>pg_restore</> (Tom Lane)
1163 Previously, errors reported by <application>pg_dump</>
1164 or <application>pg_restore</> worker processes might never make it to
1165 the user's console, because the messages went through the master
1166 process, and there were various deadlock scenarios that would prevent
1167 the master process from passing on the messages. Instead, just print
1168 everything to <literal>stderr</>. In some cases this will result in
1169 duplicate messages (for instance, if all the workers report a server
1170 shutdown), but that seems better than no message.
1176 Ensure that parallel <application>pg_dump</>
1177 or <application>pg_restore</> on Windows will shut down properly
1178 after an error (Kyotaro Horiguchi)
1182 Previously, it would report the error, but then just sit until
1183 manually stopped by the user.
1189 Make <application>pg_dump</> behave better when built without zlib
1190 support (Kyotaro Horiguchi)
1194 It didn't work right for parallel dumps, and emitted some rather
1195 pointless warnings in other cases.
1201 Make <application>pg_basebackup</> accept <literal>-Z 0</> as
1202 specifying no compression (Fujii Masao)
1208 Fix makefiles' rule for building AIX shared libraries to be safe for
1209 parallel make (Noah Misch)
1215 Fix TAP tests and MSVC scripts to work when build directory's path
1216 name contains spaces (Michael Paquier, Kyotaro Horiguchi)
1222 Be more predictable about reporting <quote>statement timeout</>
1223 versus <quote>lock timeout</> (Tom Lane)
1227 On heavily loaded machines, the regression tests sometimes failed due
1228 to reporting <quote>lock timeout</> even though the statement timeout
1229 should have occurred first.
1235 Make regression tests safe for Danish and Welsh locales (Jeff Janes,
1240 Change some test data that triggered the unusual sorting rules of
1247 Update our copy of the timezone code to match
1248 IANA's <application>tzcode</> release 2016c (Tom Lane)
1252 This is needed to cope with anticipated future changes in the time
1253 zone data files. It also fixes some corner-case bugs in coping with
1260 Update time zone data files to <application>tzdata</> release 2016f
1261 for DST law changes in Kemerovo and Novosibirsk, plus historical
1262 corrections for Azerbaijan, Belarus, and Morocco.
1271 <sect1 id="release-9-3-13">
1272 <title>Release 9.3.13</title>
1275 <title>Release Date</title>
1276 <simpara>2016-05-12</simpara>
1280 This release contains a variety of fixes from 9.3.12.
1281 For information about new features in the 9.3 major release, see
1282 <xref linkend="release-9-3">.
1286 <title>Migration to Version 9.3.13</title>
1289 A dump/restore is not required for those running 9.3.X.
1293 However, if you are upgrading from a version earlier than 9.3.9,
1294 see <xref linkend="release-9-3-9">.
1300 <title>Changes</title>
1306 Clear the OpenSSL error queue before OpenSSL calls, rather than
1307 assuming it's clear already; and make sure we leave it clear
1308 afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
1312 This change prevents problems when there are multiple connections
1313 using OpenSSL within a single process and not all the code involved
1314 follows the same rules for when to clear the error queue.
1315 Failures have been reported specifically when a client application
1316 uses SSL connections in <application>libpq</> concurrently with
1317 SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL.
1318 It's possible for similar problems to arise within the server as well,
1319 if an extension module establishes an outgoing SSL connection.
1325 Fix <quote>failed to build any <replaceable>N</>-way joins</quote>
1326 planner error with a full join enclosed in the right-hand side of a
1327 left join (Tom Lane)
1333 Fix incorrect handling of equivalence-class tests in multilevel
1334 nestloop plans (Tom Lane)
1338 Given a three-or-more-way equivalence class of variables, such
1339 as <literal>X.X = Y.Y = Z.Z</>, it was possible for the planner to omit
1340 some of the tests needed to enforce that all the variables are actually
1341 equal, leading to join rows being output that didn't satisfy
1342 the <literal>WHERE</> clauses. For various reasons, erroneous plans
1343 were seldom selected in practice, so that this bug has gone undetected
1350 Fix possible misbehavior of <literal>TH</>, <literal>th</>,
1351 and <literal>Y,YYY</> format codes in <function>to_timestamp()</>
1356 These could advance off the end of the input string, causing subsequent
1357 format codes to read garbage.
1363 Fix dumping of rules and views in which the <replaceable>array</>
1364 argument of a <literal><replaceable>value</> <replaceable>operator</>
1365 ANY (<replaceable>array</>)</literal> construct is a sub-SELECT
1372 Make <application>pg_regress</> use a startup timeout from the
1373 <envar>PGCTLTIMEOUT</> environment variable, if that's set (Tom Lane)
1377 This is for consistency with a behavior recently added
1378 to <application>pg_ctl</>; it eases automated testing on slow machines.
1384 Fix <application>pg_upgrade</> to correctly restore extension
1385 membership for operator families containing only one operator class
1390 In such a case, the operator family was restored into the new database,
1391 but it was no longer marked as part of the extension. This had no
1392 immediate ill effects, but would cause later <application>pg_dump</>
1393 runs to emit output that would cause (harmless) errors on restore.
1399 Fix <application>pg_upgrade</> to not fail when new-cluster TOAST rules
1400 differ from old (Tom Lane)
1404 <application>pg_upgrade</> had special-case code to handle the
1405 situation where the new <productname>PostgreSQL</> version thinks that
1406 a table should have a TOAST table while the old version did not. That
1407 code was broken, so remove it, and instead do nothing in such cases;
1408 there seems no reason to believe that we can't get along fine without
1409 a TOAST table if that was okay according to the old version's rules.
1415 Author: Tom Lane <tgl@sss.pgh.pa.us>
1416 Branch: REL9_3_STABLE [f4f4f6990] 2016-04-15 16:49:48 -0400
1417 Branch: REL9_2_STABLE [d7dbc882d] 2016-04-15 16:49:48 -0400
1418 Author: Tom Lane <tgl@sss.pgh.pa.us>
1419 Branch: REL9_3_STABLE [992df9658] 2016-04-16 10:42:07 -0400
1420 Branch: REL9_2_STABLE [9008922bf] 2016-04-16 10:41:57 -0400
1421 Author: Tom Lane <tgl@sss.pgh.pa.us>
1422 Branch: REL9_3_STABLE [35166fd76] 2016-04-18 13:19:52 -0400
1423 Branch: REL9_2_STABLE [37f30b251] 2016-04-18 13:19:52 -0400
1426 Back-port 9.4-era memory-barrier code changes into 9.2 and 9.3 (Tom Lane)
1430 These changes were not originally needed in pre-9.4 branches, but we
1431 recently back-patched a fix that expected the barrier code to work
1432 properly. Only IA64 (when using icc), HPPA, and Alpha platforms are
1439 Reduce the number of SysV semaphores used by a build configured with
1440 <option>--disable-spinlocks</> (Tom Lane)
1446 Rename internal function <function>strtoi()</>
1447 to <function>strtoint()</> to avoid conflict with a NetBSD library
1448 function (Thomas Munro)
1454 Fix reporting of errors from <function>bind()</>
1455 and <function>listen()</> system calls on Windows (Tom Lane)
1461 Reduce verbosity of compiler output when building with Microsoft Visual
1462 Studio (Christian Ullrich)
1468 Fix <function>putenv()</> to work properly with Visual Studio 2013
1475 Avoid possibly-unsafe use of Windows' <function>FormatMessage()</>
1476 function (Christian Ullrich)
1480 Use the <literal>FORMAT_MESSAGE_IGNORE_INSERTS</> flag where
1481 appropriate. No live bug is known to exist here, but it seems like a
1482 good idea to be careful.
1488 Update time zone data files to <application>tzdata</> release 2016d
1489 for DST law changes in Russia and Venezuela. There are new zone
1490 names <literal>Europe/Kirov</> and <literal>Asia/Tomsk</> to reflect
1491 the fact that these regions now have different time zone histories from
1501 <sect1 id="release-9-3-12">
1502 <title>Release 9.3.12</title>
1505 <title>Release Date</title>
1506 <simpara>2016-03-31</simpara>
1510 This release contains a variety of fixes from 9.3.11.
1511 For information about new features in the 9.3 major release, see
1512 <xref linkend="release-9-3">.
1516 <title>Migration to Version 9.3.12</title>
1519 A dump/restore is not required for those running 9.3.X.
1523 However, if you are upgrading from a version earlier than 9.3.9,
1524 see <xref linkend="release-9-3-9">.
1530 <title>Changes</title>
1536 Fix incorrect handling of NULL index entries in
1537 indexed <literal>ROW()</> comparisons (Tom Lane)
1541 An index search using a row comparison such as <literal>ROW(a, b) >
1542 ROW('x', 'y')</> would stop upon reaching a NULL entry in
1543 the <structfield>b</> column, ignoring the fact that there might be
1544 non-NULL <structfield>b</> values associated with later values
1545 of <structfield>a</>.
1551 Avoid unlikely data-loss scenarios due to renaming files without
1552 adequate <function>fsync()</> calls before and after (Michael Paquier,
1553 Tomas Vondra, Andres Freund)
1559 Correctly handle cases where <literal>pg_subtrans</> is close to XID
1560 wraparound during server startup (Jeff Janes)
1566 Fix corner-case crash due to trying to free <function>localeconv()</>
1567 output strings more than once (Tom Lane)
1573 Fix parsing of affix files for <literal>ispell</> dictionaries
1578 The code could go wrong if the affix file contained any characters
1579 whose byte length changes during case-folding, for
1580 example <literal>I</> in Turkish UTF8 locales.
1586 Avoid use of <function>sscanf()</> to parse <literal>ispell</>
1587 dictionary files (Artur Zakirov)
1591 This dodges a portability problem on FreeBSD-derived platforms
1598 Avoid a crash on old Windows versions (before 7SP1/2008R2SP1) with an
1599 AVX2-capable CPU and a Postgres build done with Visual Studio 2013
1604 This is a workaround for a bug in Visual Studio 2013's runtime
1605 library, which Microsoft have stated they will not fix in that
1612 Fix <application>psql</>'s tab completion logic to handle multibyte
1613 characters properly (Kyotaro Horiguchi, Robert Haas)
1619 Fix <application>psql</>'s tab completion for
1620 <literal>SECURITY LABEL</> (Tom Lane)
1624 Pressing TAB after <literal>SECURITY LABEL</> might cause a crash
1625 or offering of inappropriate keywords.
1631 Make <application>pg_ctl</> accept a wait timeout from the
1632 <envar>PGCTLTIMEOUT</> environment variable, if none is specified on
1633 the command line (Noah Misch)
1637 This eases testing of slower buildfarm members by allowing them
1638 to globally specify a longer-than-normal timeout for postmaster
1639 startup and shutdown.
1645 Fix incorrect test for Windows service status
1646 in <application>pg_ctl</> (Manuel Mathar)
1650 The previous set of minor releases attempted to
1651 fix <application>pg_ctl</> to properly determine whether to send log
1652 messages to Window's Event Log, but got the test backwards.
1658 Fix <application>pgbench</> to correctly handle the combination
1659 of <literal>-C</> and <literal>-M prepared</> options (Tom Lane)
1665 In <application>pg_upgrade</>, skip creating a deletion script when
1666 the new data directory is inside the old data directory (Bruce
1671 Blind application of the script in such cases would result in loss of
1672 the new data directory.
1678 In PL/Perl, properly translate empty Postgres arrays into empty Perl
1679 arrays (Alex Hunsaker)
1685 Make PL/Python cope with function names that aren't valid Python
1686 identifiers (Jim Nasby)
1692 Fix multiple mistakes in the statistics returned
1693 by <filename>contrib/pgstattuple</>'s <function>pgstatindex()</>
1700 Remove dependency on <literal>psed</> in MSVC builds, since it's no
1701 longer provided by core Perl (Michael Paquier, Andrew Dunstan)
1707 Update time zone data files to <application>tzdata</> release 2016c
1708 for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia
1709 (Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus
1710 historical corrections for Lithuania, Moldova, and Russia
1711 (Kaliningrad, Samara, Volgograd).
1720 <sect1 id="release-9-3-11">
1721 <title>Release 9.3.11</title>
1724 <title>Release Date</title>
1725 <simpara>2016-02-11</simpara>
1729 This release contains a variety of fixes from 9.3.10.
1730 For information about new features in the 9.3 major release, see
1731 <xref linkend="release-9-3">.
1735 <title>Migration to Version 9.3.11</title>
1738 A dump/restore is not required for those running 9.3.X.
1742 However, if you are upgrading from a version earlier than 9.3.9,
1743 see <xref linkend="release-9-3-9">.
1749 <title>Changes</title>
1755 Fix infinite loops and buffer-overrun problems in regular expressions
1760 Very large character ranges in bracket expressions could cause
1761 infinite loops in some cases, and memory overwrites in other cases.
1768 Perform an immediate shutdown if the <filename>postmaster.pid</> file
1769 is removed (Tom Lane)
1773 The postmaster now checks every minute or so
1774 that <filename>postmaster.pid</> is still there and still contains its
1775 own PID. If not, it performs an immediate shutdown, as though it had
1776 received <systemitem>SIGQUIT</>. The main motivation for this change
1777 is to ensure that failed buildfarm runs will get cleaned up without
1778 manual intervention; but it also serves to limit the bad effects if a
1779 DBA forcibly removes <filename>postmaster.pid</> and then starts a new
1786 In <literal>SERIALIZABLE</> transaction isolation mode, serialization
1787 anomalies could be missed due to race conditions during insertions
1788 (Kevin Grittner, Thomas Munro)
1794 Fix failure to emit appropriate WAL records when doing <literal>ALTER
1795 TABLE ... SET TABLESPACE</> for unlogged relations (Michael Paquier,
1800 Even though the relation's data is unlogged, the move must be logged or
1801 the relation will be inaccessible after a standby is promoted to master.
1807 Fix possible misinitialization of unlogged relations at the end of
1808 crash recovery (Andres Freund, Michael Paquier)
1814 Ensure walsender slots are fully re-initialized when being re-used
1821 Fix <command>ALTER COLUMN TYPE</> to reconstruct inherited check
1822 constraints properly (Tom Lane)
1828 Fix <command>REASSIGN OWNED</> to change ownership of composite types
1829 properly (Álvaro Herrera)
1835 Fix <command>REASSIGN OWNED</> and <command>ALTER OWNER</> to correctly
1836 update granted-permissions lists when changing owners of data types,
1837 foreign data wrappers, or foreign servers (Bruce Momjian,
1838 Álvaro Herrera)
1844 Fix <command>REASSIGN OWNED</> to ignore foreign user mappings,
1845 rather than fail (Álvaro Herrera)
1851 Fix possible crash after doing query rewrite for an updatable view
1858 Fix planner's handling of <literal>LATERAL</> references (Tom
1863 This fixes some corner cases that led to <quote>failed to build any
1864 N-way joins</> or <quote>could not devise a query plan</> planner
1871 Add more defenses against bad planner cost estimates for GIN index
1872 scans when the index's internal statistics are very out-of-date
1879 Make planner cope with hypothetical GIN indexes suggested by an index
1880 advisor plug-in (Julien Rouhaud)
1886 Speed up generation of unique table aliases in <command>EXPLAIN</> and
1887 rule dumping, and ensure that generated aliases do not
1888 exceed <literal>NAMEDATALEN</> (Tom Lane)
1894 Fix dumping of whole-row Vars in <literal>ROW()</>
1895 and <literal>VALUES()</> lists (Tom Lane)
1901 Fix possible internal overflow in <type>numeric</> division
1908 Fix enforcement of restrictions inside parentheses within regular
1909 expression lookahead constraints (Tom Lane)
1913 Lookahead constraints aren't allowed to contain backrefs, and
1914 parentheses within them are always considered non-capturing, according
1915 to the manual. However, the code failed to handle these cases properly
1916 inside a parenthesized subexpression, and would give unexpected
1923 Conversion of regular expressions to indexscan bounds could produce
1924 incorrect bounds from regexps containing lookahead constraints
1931 Fix regular-expression compiler to handle loops of constraint arcs
1936 The code added for CVE-2007-4772 was both incomplete, in that it didn't
1937 handle loops involving more than one state, and incorrect, in that it
1938 could cause assertion failures (though there seem to be no bad
1939 consequences of that in a non-assert build). Multi-state loops would
1940 cause the compiler to run until the query was canceled or it reached
1941 the too-many-states error condition.
1947 Improve memory-usage accounting in regular-expression compiler
1952 This causes the code to emit <quote>regular expression is too
1953 complex</> errors in some cases that previously used unreasonable
1954 amounts of time and memory.
1960 Improve performance of regular-expression compiler (Tom Lane)
1966 Make <literal>%h</> and <literal>%r</> escapes
1967 in <varname>log_line_prefix</> work for messages emitted due
1968 to <varname>log_connections</> (Tom Lane)
1972 Previously, <literal>%h</>/<literal>%r</> started to work just after a
1973 new session had emitted the <quote>connection received</> log message;
1974 now they work for that message too.
1980 On Windows, ensure the shared-memory mapping handle gets closed in
1981 child processes that don't need it (Tom Lane, Amit Kapila)
1985 This oversight resulted in failure to recover from crashes
1986 whenever <varname>logging_collector</> is turned on.
1992 Fix possible failure to detect socket EOF in non-blocking mode on
1997 It's not entirely clear whether this problem can happen in pre-9.5
1998 branches, but if it did, the symptom would be that a walsender process
1999 would wait indefinitely rather than noticing a loss of connection.
2005 Avoid leaking a token handle during SSPI authentication
2012 In <application>psql</>, ensure that <application>libreadline</>'s idea
2013 of the screen size is updated when the terminal window size changes
2018 Previously, <application>libreadline</> did not notice if the window
2019 was resized during query output, leading to strange behavior during
2020 later input of multiline queries.
2026 Fix <application>psql</>'s <literal>\det</> command to interpret its
2027 pattern argument the same way as other <literal>\d</> commands with
2028 potentially schema-qualified patterns do (Reece Hart)
2034 Avoid possible crash in <application>psql</>'s <literal>\c</> command
2035 when previous connection was via Unix socket and command specifies a
2036 new hostname and same username (Tom Lane)
2042 In <literal>pg_ctl start -w</>, test child process status directly
2043 rather than relying on heuristics (Tom Lane, Michael Paquier)
2047 Previously, <application>pg_ctl</> relied on an assumption that the new
2048 postmaster would always create <filename>postmaster.pid</> within five
2049 seconds. But that can fail on heavily-loaded systems,
2050 causing <application>pg_ctl</> to report incorrectly that the
2051 postmaster failed to start.
2055 Except on Windows, this change also means that a <literal>pg_ctl start
2056 -w</> done immediately after another such command will now reliably
2057 fail, whereas previously it would report success if done within two
2058 seconds of the first command.
2064 In <literal>pg_ctl start -w</>, don't attempt to use a wildcard listen
2065 address to connect to the postmaster (Kondo Yuta)
2069 On Windows, <application>pg_ctl</> would fail to detect postmaster
2070 startup if <varname>listen_addresses</> is set to <literal>0.0.0.0</>
2071 or <literal>::</>, because it would try to use that value verbatim as
2072 the address to connect to, which doesn't work. Instead assume
2073 that <literal>127.0.0.1</> or <literal>::1</>, respectively, is the
2080 In <application>pg_ctl</> on Windows, check service status to decide
2081 where to send output, rather than checking if standard output is a
2082 terminal (Michael Paquier)
2088 In <application>pg_dump</> and <application>pg_basebackup</>, adopt
2089 the GNU convention for handling tar-archive members exceeding 8GB
2094 The POSIX standard for <literal>tar</> file format does not allow
2095 archive member files to exceed 8GB, but most modern implementations
2096 of <application>tar</> support an extension that fixes that. Adopt
2097 this extension so that <application>pg_dump</> with <option>-Ft</> no
2098 longer fails on tables with more than 8GB of data, and so
2099 that <application>pg_basebackup</> can handle files larger than 8GB.
2100 In addition, fix some portability issues that could cause failures for
2101 members between 4GB and 8GB on some platforms. Potentially these
2102 problems could cause unrecoverable data loss due to unreadable backup
2109 Fix assorted corner-case bugs in <application>pg_dump</>'s processing
2110 of extension member objects (Tom Lane)
2116 Make <application>pg_dump</> mark a view's triggers as needing to be
2117 processed after its rule, to prevent possible failure during
2118 parallel <application>pg_restore</> (Tom Lane)
2124 Ensure that relation option values are properly quoted
2125 in <application>pg_dump</> (Kouhei Sutou, Tom Lane)
2129 A reloption value that isn't a simple identifier or number could lead
2130 to dump/reload failures due to syntax errors in CREATE statements
2131 issued by <application>pg_dump</>. This is not an issue with any
2132 reloption currently supported by core <productname>PostgreSQL</>, but
2133 extensions could allow reloptions that cause the problem.
2139 Avoid repeated password prompts during parallel <application>pg_dump</>
2146 Fix <application>pg_upgrade</>'s file-copying code to handle errors
2147 properly on Windows (Bruce Momjian)
2153 Install guards in <application>pgbench</> against corner-case overflow
2154 conditions during evaluation of script-specified division or modulo
2155 operators (Fabien Coelho, Michael Paquier)
2161 Fix failure to localize messages emitted
2162 by <application>pg_receivexlog</> and <application>pg_recvlogical</>
2169 Avoid dump/reload problems when using both <application>plpython2</>
2170 and <application>plpython3</> (Tom Lane)
2174 In principle, both versions of <application>PL/Python</> can be used in
2175 the same database, though not in the same session (because the two
2176 versions of <application>libpython</> cannot safely be used concurrently).
2177 However, <application>pg_restore</> and <application>pg_upgrade</> both
2178 do things that can fall foul of the same-session restriction. Work
2179 around that by changing the timing of the check.
2185 Fix <application>PL/Python</> regression tests to pass with Python 3.5
2192 Fix premature clearing of <application>libpq</>'s input buffer when
2193 socket EOF is seen (Tom Lane)
2197 This mistake caused <application>libpq</> to sometimes not report the
2198 backend's final error message before reporting <quote>server closed the
2199 connection unexpectedly</>.
2205 Prevent certain <application>PL/Java</> parameters from being set by
2206 non-superusers (Noah Misch)
2210 This change mitigates a <application>PL/Java</> security bug
2211 (CVE-2016-0766), which was fixed in <application>PL/Java</> by marking
2212 these parameters as superuser-only. To fix the security hazard for
2213 sites that update <productname>PostgreSQL</> more frequently
2214 than <application>PL/Java</>, make the core code aware of them also.
2220 Improve <application>libpq</>'s handling of out-of-memory situations
2221 (Michael Paquier, Amit Kapila, Heikki Linnakangas)
2227 Fix order of arguments
2228 in <application>ecpg</>-generated <literal>typedef</> statements
2235 Use <literal>%g</> not <literal>%f</> format
2236 in <application>ecpg</>'s <function>PGTYPESnumeric_from_double()</>
2243 Fix <application>ecpg</>-supplied header files to not contain comments
2244 continued from a preprocessor directive line onto the next line
2249 Such a comment is rejected by <application>ecpg</>. It's not yet clear
2250 whether <application>ecpg</> itself should be changed.
2256 Fix <function>hstore_to_json_loose()</>'s test for whether
2257 an <type>hstore</> value can be converted to a JSON number (Tom Lane)
2261 Previously this function could be fooled by non-alphanumeric trailing
2262 characters, leading to emitting syntactically-invalid JSON.
2268 Ensure that <filename>contrib/pgcrypto</>'s <function>crypt()</>
2269 function can be interrupted by query cancel (Andreas Karlsson)
2275 Accept <application>flex</> versions later than 2.5.x
2276 (Tom Lane, Michael Paquier)
2280 Now that flex 2.6.0 has been released, the version checks in our build
2281 scripts needed to be adjusted.
2287 Improve reproducibility of build output by ensuring filenames are given
2288 to the linker in a fixed order (Christoph Berg)
2292 This avoids possible bitwise differences in the produced executable
2293 files from one build to the next.
2299 Install our <filename>missing</> script where PGXS builds can find it
2304 This allows sane behavior in a PGXS build done on a machine where build
2305 tools such as <application>bison</> are missing.
2311 Ensure that <filename>dynloader.h</> is included in the installed
2312 header files in MSVC builds (Bruce Momjian, Michael Paquier)
2318 Add variant regression test expected-output file to match behavior of
2319 current <application>libxml2</> (Tom Lane)
2323 The fix for <application>libxml2</>'s CVE-2015-7499 causes it not to
2324 output error context reports in some cases where it used to do so.
2325 This seems to be a bug, but we'll probably have to live with it for
2326 some time, so work around it.
2332 Update time zone data files to <application>tzdata</> release 2016a for
2333 DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal
2334 Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.
2343 <sect1 id="release-9-3-10">
2344 <title>Release 9.3.10</title>
2347 <title>Release Date</title>
2348 <simpara>2015-10-08</simpara>
2352 This release contains a variety of fixes from 9.3.9.
2353 For information about new features in the 9.3 major release, see
2354 <xref linkend="release-9-3">.
2358 <title>Migration to Version 9.3.10</title>
2361 A dump/restore is not required for those running 9.3.X.
2365 However, if you are upgrading from a version earlier than 9.3.9,
2366 see <xref linkend="release-9-3-9">.
2372 <title>Changes</title>
2378 Guard against stack overflows in <type>json</> parsing
2383 If an application constructs PostgreSQL <type>json</>
2384 or <type>jsonb</> values from arbitrary user input, the application's
2385 users can reliably crash the PostgreSQL server, causing momentary
2386 denial of service. (CVE-2015-5289)
2392 Fix <filename>contrib/pgcrypto</> to detect and report
2393 too-short <function>crypt()</> salts (Josh Kupershmidt)
2397 Certain invalid salt arguments crashed the server or disclosed a few
2398 bytes of server memory. We have not ruled out the viability of
2399 attacks that arrange for presence of confidential information in the
2400 disclosed bytes, but they seem unlikely. (CVE-2015-5288)
2406 Fix subtransaction cleanup after a portal (cursor) belonging to an
2407 outer subtransaction fails (Tom Lane, Michael Paquier)
2411 A function executed in an outer-subtransaction cursor could cause an
2412 assertion failure or crash by referencing a relation created within an
2413 inner subtransaction.
2419 Ensure all relations referred to by an updatable view are properly
2420 locked during an update statement (Dean Rasheed)
2426 Fix insertion of relations into the relation cache <quote>init file</>
2431 An oversight in a patch in the most recent minor releases
2432 caused <structname>pg_trigger_tgrelid_tgname_index</> to be omitted
2433 from the init file. Subsequent sessions detected this, then deemed the
2434 init file to be broken and silently ignored it, resulting in a
2435 significant degradation in session startup time. In addition to fixing
2436 the bug, install some guards so that any similar future mistake will be
2443 Avoid O(N^2) behavior when inserting many tuples into a SPI query
2444 result (Neil Conway)
2450 Improve <command>LISTEN</> startup time when there are many unread
2451 notifications (Matt Newell)
2457 Fix performance problem when a session alters large numbers of foreign
2458 key constraints (Jan Wieck, Tom Lane)
2462 This was seen primarily when restoring <application>pg_dump</> output
2463 for databases with many thousands of tables.
2469 Disable SSL renegotiation by default (Michael Paquier, Andres Freund)
2473 While use of SSL renegotiation is a good idea in theory, we have seen
2474 too many bugs in practice, both in the underlying OpenSSL library and
2475 in our usage of it. Renegotiation will be removed entirely in 9.5 and
2476 later. In the older branches, just change the default value
2477 of <varname>ssl_renegotiation_limit</> to zero (disabled).
2483 Lower the minimum values of the <literal>*_freeze_max_age</> parameters
2488 This is mainly to make tests of related behavior less time-consuming,
2489 but it may also be of value for installations with limited disk space.
2495 Limit the maximum value of <varname>wal_buffers</> to 2GB to avoid
2496 server crashes (Josh Berkus)
2502 Avoid logging complaints when a parameter that can only be set at
2503 server start appears multiple times in <filename>postgresql.conf</>,
2504 and fix counting of line numbers after an <literal>include_dir</>
2505 directive (Tom Lane)
2511 Fix rare internal overflow in multiplication of <type>numeric</> values
2518 Guard against hard-to-reach stack overflows involving record types,
2519 range types, <type>json</>, <type>jsonb</>, <type>tsquery</>,
2520 <type>ltxtquery</> and <type>query_int</> (Noah Misch)
2526 Fix handling of <literal>DOW</> and <literal>DOY</> in datetime input
2531 These tokens aren't meant to be used in datetime values, but previously
2532 they resulted in opaque internal error messages rather
2533 than <quote>invalid input syntax</>.
2539 Add more query-cancel checks to regular expression matching (Tom Lane)
2545 Add recursion depth protections to regular expression, <literal>SIMILAR
2546 TO</>, and <literal>LIKE</> matching (Tom Lane)
2550 Suitable search patterns and a low stack depth limit could lead to
2551 stack-overrun crashes.
2557 Fix potential infinite loop in regular expression execution (Tom Lane)
2561 A search pattern that can apparently match a zero-length string, but
2562 actually doesn't match because of a back reference, could lead to an
2569 In regular expression execution, correctly record match data for
2570 capturing parentheses within a quantifier even when the match is
2571 zero-length (Tom Lane)
2577 Fix low-memory failures in regular expression compilation
2578 (Andreas Seltenreich)
2584 Fix low-probability memory leak during regular expression execution
2591 Fix rare low-memory failure in lock cleanup during transaction abort
2598 Fix <quote>unexpected out-of-memory situation during sort</> errors
2599 when using tuplestores with small <varname>work_mem</> settings (Tom
2606 Fix very-low-probability stack overrun in <function>qsort</> (Tom Lane)
2612 Fix <quote>invalid memory alloc request size</> failure in hash joins
2613 with large <varname>work_mem</> settings (Tomas Vondra, Tom Lane)
2619 Fix assorted planner bugs (Tom Lane)
2623 These mistakes could lead to incorrect query plans that would give wrong
2624 answers, or to assertion failures in assert-enabled builds, or to odd
2625 planner errors such as <quote>could not devise a query plan for the
2626 given query</>, <quote>could not find pathkey item to
2627 sort</>, <quote>plan should not reference subplan's variable</>,
2628 or <quote>failed to assign all NestLoopParams to plan nodes</>.
2629 Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz
2630 testing that exposed these problems.
2636 Improve planner's performance for <command>UPDATE</>/<command>DELETE</>
2637 on large inheritance sets (Tom Lane, Dean Rasheed)
2643 Ensure standby promotion trigger files are removed at postmaster
2644 startup (Michael Paquier, Fujii Masao)
2648 This prevents unwanted promotion from occurring if these files appear
2649 in a database backup that is used to initialize a new standby server.
2655 During postmaster shutdown, ensure that per-socket lock files are
2656 removed and listen sockets are closed before we remove
2657 the <filename>postmaster.pid</> file (Tom Lane)
2661 This avoids race-condition failures if an external script attempts to
2662 start a new postmaster as soon as <literal>pg_ctl stop</> returns.
2668 Fix postmaster's handling of a startup-process crash during crash
2673 If, during a crash recovery cycle, the startup process crashes without
2674 having restored database consistency, we'd try to launch a new startup
2675 process, which typically would just crash again, leading to an infinite
2682 Make emergency autovacuuming for multixact wraparound more robust
2689 Do not print a <literal>WARNING</> when an autovacuum worker is already
2690 gone when we attempt to signal it, and reduce log verbosity for such
2697 Prevent autovacuum launcher from sleeping unduly long if the server
2698 clock is moved backwards a large amount (Álvaro Herrera)
2704 Ensure that cleanup of a GIN index's pending-insertions list is
2705 interruptable by cancel requests (Jeff Janes)
2711 Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas)
2715 Such a page might be left behind after a crash.
2721 Fix handling of all-zeroes pages in SP-GiST indexes (Heikki
2726 <command>VACUUM</> attempted to recycle such pages, but did so in a
2727 way that wasn't crash-safe.
2733 Fix off-by-one error that led to otherwise-harmless warnings
2734 about <quote>apparent wraparound</> in subtrans/multixact truncation
2741 Fix misreporting of <command>CONTINUE</> and <command>MOVE</> statement
2742 types in <application>PL/pgSQL</>'s error context messages
2743 (Pavel Stehule, Tom Lane)
2749 Fix <application>PL/Perl</> to handle non-<acronym>ASCII</> error
2750 message texts correctly (Alex Hunsaker)
2756 Fix <application>PL/Python</> crash when returning the string
2757 representation of a <type>record</> result (Tom Lane)
2763 Fix some places in <application>PL/Tcl</> that neglected to check for
2764 failure of <function>malloc()</> calls (Michael Paquier, Álvaro
2771 In <filename>contrib/isn</>, fix output of ISBN-13 numbers that begin
2772 with 979 (Fabien Coelho)
2776 EANs beginning with 979 (but not 9790) are considered ISBNs, but they
2777 must be printed in the new 13-digit format, not the 10-digit format.
2783 Improve <filename>contrib/postgres_fdw</>'s handling of
2784 collation-related decisions (Tom Lane)
2788 The main user-visible effect is expected to be that comparisons
2789 involving <type>varchar</> columns will be sent to the remote server
2790 for execution in more cases than before.
2796 Improve <application>libpq</>'s handling of out-of-memory conditions
2797 (Michael Paquier, Heikki Linnakangas)
2803 Fix memory leaks and missing out-of-memory checks
2804 in <application>ecpg</> (Michael Paquier)
2810 Fix <application>psql</>'s code for locale-aware formatting of numeric
2815 The formatting code invoked by <literal>\pset numericlocale on</>
2816 did the wrong thing for some uncommon cases such as numbers with an
2817 exponent but no decimal point. It could also mangle already-localized
2818 output from the <type>money</> data type.
2824 Prevent crash in <application>psql</>'s <command>\c</> command when
2825 there is no current connection (Noah Misch)
2831 Make <application>pg_dump</> handle inherited <literal>NOT VALID</>
2832 check constraints correctly (Tom Lane)
2838 Fix selection of default <application>zlib</> compression level
2839 in <application>pg_dump</>'s directory output format (Andrew Dunstan)
2845 Ensure that temporary files created during a <application>pg_dump</>
2846 run with <acronym>tar</>-format output are not world-readable (Michael
2853 Fix <application>pg_dump</> and <application>pg_upgrade</> to support
2854 cases where the <literal>postgres</> or <literal>template1</> database
2855 is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)
2861 Fix <application>pg_dump</> to handle object privileges sanely when
2862 dumping from a server too old to have a particular privilege type
2867 When dumping data types from pre-9.2 servers, and when dumping
2868 functions or procedural languages from pre-7.3
2869 servers, <application>pg_dump</> would
2870 produce <command>GRANT</>/<command>REVOKE</> commands that revoked the
2871 owner's grantable privileges and instead granted all privileges
2872 to <literal>PUBLIC</>. Since the privileges involved are
2873 just <literal>USAGE</> and <literal>EXECUTE</>, this isn't a security
2874 problem, but it's certainly a surprising representation of the older
2875 systems' behavior. Fix it to leave the default privilege state alone
2882 Fix <application>pg_dump</> to dump shell types (Tom Lane)
2886 Shell types (that is, not-yet-fully-defined types) aren't useful for
2887 much, but nonetheless <application>pg_dump</> should dump them.
2893 Fix assorted minor memory leaks in <application>pg_dump</> and other
2894 client-side programs (Michael Paquier)
2900 Fix spinlock assembly code for PPC hardware to be compatible
2901 with <acronym>AIX</>'s native assembler (Tom Lane)
2905 Building with <application>gcc</> didn't work if <application>gcc</>
2906 had been configured to use the native assembler, which is becoming more
2913 On <acronym>AIX</>, test the <literal>-qlonglong</> compiler option
2914 rather than just assuming it's safe to use (Noah Misch)
2920 On <acronym>AIX</>, use <literal>-Wl,-brtllib</> link option to allow
2921 symbols to be resolved at runtime (Noah Misch)
2925 Perl relies on this ability in 5.8.0 and later.
2931 Avoid use of inline functions when compiling with
2932 32-bit <application>xlc</>, due to compiler bugs (Noah Misch)
2938 Use <filename>librt</> for <function>sched_yield()</> when necessary,
2939 which it is on some Solaris versions (Oskari Saarenmaa)
2945 Fix Windows <filename>install.bat</> script to handle target directory
2946 names that contain spaces (Heikki Linnakangas)
2952 Make the numeric form of the <productname>PostgreSQL</> version number
2953 (e.g., <literal>90405</>) readily available to extension Makefiles,
2954 as a variable named <varname>VERSION_NUM</> (Michael Paquier)
2960 Update time zone data files to <application>tzdata</> release 2015g for
2961 DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk
2962 Island, North Korea, Turkey, and Uruguay. There is a new zone name
2963 <literal>America/Fort_Nelson</> for the Canadian Northern Rockies.
2972 <sect1 id="release-9-3-9">
2973 <title>Release 9.3.9</title>
2976 <title>Release Date</title>
2977 <simpara>2015-06-12</simpara>
2981 This release contains a small number of fixes from 9.3.8.
2982 For information about new features in the 9.3 major release, see
2983 <xref linkend="release-9-3">.
2987 <title>Migration to Version 9.3.9</title>
2990 A dump/restore is not required for those running 9.3.X.
2994 However, if you are upgrading an installation that was previously
2995 upgraded using a <application>pg_upgrade</> version between 9.3.0 and
2996 9.3.4 inclusive, see the first changelog entry below.
3000 Also, if you are upgrading from a version earlier than 9.3.7,
3001 see <xref linkend="release-9-3-7">.
3007 <title>Changes</title>
3013 Fix possible failure to recover from an inconsistent database state
3018 Recent <productname>PostgreSQL</> releases introduced mechanisms to
3019 protect against multixact wraparound, but some of that code did not
3020 account for the possibility that it would need to run during crash
3021 recovery, when the database may not be in a consistent state. This
3022 could result in failure to restart after a crash, or failure to start
3023 up a secondary server. The lingering effects of a previously-fixed
3024 bug in <application>pg_upgrade</> could also cause such a failure, in
3025 installations that had used <application>pg_upgrade</> versions
3026 between 9.3.0 and 9.3.4.
3030 The <application>pg_upgrade</> bug in question was that it would
3031 set <literal>oldestMultiXid</> to 1 in <filename>pg_control</> even
3032 if the true value should be higher. With the fixes introduced in
3033 this release, such a situation will result in immediate emergency
3034 autovacuuming until a correct <literal>oldestMultiXid</> value can be
3035 determined. If that would pose a hardship, users can avoid it by
3036 doing manual vacuuming <emphasis>before</> upgrading to this release.
3042 Check whether <application>pg_controldata</> reports <quote>Latest
3043 checkpoint's oldestMultiXid</> to be 1. If not, there's nothing
3049 Look in <filename>PGDATA/pg_multixact/offsets</> to see if there's a
3050 file named <filename>0000</>. If there is, there's nothing to do.
3055 Otherwise, for each table that has
3056 <structname>pg_class</>.<structfield>relminmxid</> equal to 1,
3057 <command>VACUUM</> that table with
3058 both <xref linkend="guc-vacuum-multixact-freeze-min-age">
3059 and <xref linkend="guc-vacuum-multixact-freeze-table-age"> set to
3060 zero. (You can use the vacuum cost delay parameters described
3061 in <xref linkend="runtime-config-resource-vacuum-cost"> to reduce
3062 the performance consequences for concurrent sessions.) You must
3063 use <productname>PostgreSQL</> 9.3.5 or later to perform this step.
3072 Fix rare failure to invalidate relation cache init file (Tom Lane)
3076 With just the wrong timing of concurrent activity, a <command>VACUUM
3077 FULL</> on a system catalog might fail to update the <quote>init file</>
3078 that's used to avoid cache-loading work for new sessions. This would
3079 result in later sessions being unable to access that catalog at all.
3080 This is a very ancient bug, but it's so hard to trigger that no
3081 reproducible case had been seen until recently.
3087 Avoid deadlock between incoming sessions and <literal>CREATE/DROP
3088 DATABASE</> (Tom Lane)
3092 A new session starting in a database that is the target of
3093 a <command>DROP DATABASE</> command, or is the template for
3094 a <command>CREATE DATABASE</> command, could cause the command to wait
3095 for five seconds and then fail, even if the new session would have
3102 Improve planner's cost estimates for semi-joins and anti-joins with
3103 inner indexscans (Tom Lane, Tomas Vondra)
3107 This type of plan is quite cheap when all the join clauses are used
3108 as index scan conditions, even if the inner scan would nominally
3109 fetch many rows, because the executor will stop after obtaining one
3110 row. The planner only partially accounted for that effect, and would
3111 therefore overestimate the cost, leading it to possibly choose some
3112 other much less efficient plan type.
3121 <sect1 id="release-9-3-8">
3122 <title>Release 9.3.8</title>
3125 <title>Release Date</title>
3126 <simpara>2015-06-04</simpara>
3130 This release contains a small number of fixes from 9.3.7.
3131 For information about new features in the 9.3 major release, see
3132 <xref linkend="release-9-3">.
3136 <title>Migration to Version 9.3.8</title>
3139 A dump/restore is not required for those running 9.3.X.
3143 However, if you are upgrading from a version earlier than 9.3.7,
3144 see <xref linkend="release-9-3-7">.
3150 <title>Changes</title>
3156 Avoid failures while <function>fsync</>'ing data directory during
3157 crash restart (Abhijit Menon-Sen, Tom Lane)
3161 In the previous minor releases we added a patch to <function>fsync</>
3162 everything in the data directory after a crash. Unfortunately its
3163 response to any error condition was to fail, thereby preventing the
3164 server from starting up, even when the problem was quite harmless.
3165 An example is that an unwritable file in the data directory would
3166 prevent restart on some platforms; but it is common to make SSL
3167 certificate files unwritable by the server. Revise this behavior so
3168 that permissions failures are ignored altogether, and other types of
3169 failures are logged but do not prevent continuing.
3173 Also apply the same rules in <literal>initdb --sync-only</>.
3174 This case is less critical but it should act similarly.
3180 Fix <function>pg_get_functiondef()</> to show
3181 functions' <literal>LEAKPROOF</> property, if set (Jeevan Chalke)
3187 Remove <application>configure</>'s check prohibiting linking to a
3188 threaded <application>libpython</>
3189 on <systemitem class="osname">OpenBSD</> (Tom Lane)
3193 The failure this restriction was meant to prevent seems to not be a
3194 problem anymore on current <systemitem class="osname">OpenBSD</>
3200 Author: Tom Lane <tgl@sss.pgh.pa.us>
3201 Branch: REL9_3_STABLE [c6b7b9a9c] 2015-05-21 20:41:55 -0400
3202 Branch: REL9_2_STABLE [b78fbfe65] 2015-05-21 20:41:55 -0400
3203 Branch: REL9_1_STABLE [2c2c5f0e0] 2015-05-21 20:41:55 -0400
3204 Branch: REL9_0_STABLE [4dddf8552] 2015-05-21 20:41:55 -0400
3209 Allow <application>libpq</> to use TLS protocol versions beyond v1
3214 For a long time, <application>libpq</> was coded so that the only SSL
3215 protocol it would allow was TLS v1. Now that newer TLS versions are
3216 becoming popular, allow it to negotiate the highest commonly-supported
3217 TLS version with the server. (<productname>PostgreSQL</> servers were
3218 already capable of such negotiation, so no change is needed on the
3219 server side.) This is a back-patch of a change already released in
3229 <sect1 id="release-9-3-7">
3230 <title>Release 9.3.7</title>
3233 <title>Release Date</title>
3234 <simpara>2015-05-22</simpara>
3238 This release contains a variety of fixes from 9.3.6.
3239 For information about new features in the 9.3 major release, see
3240 <xref linkend="release-9-3">.
3244 <title>Migration to Version 9.3.7</title>
3247 A dump/restore is not required for those running 9.3.X.
3251 However, if you use <filename>contrib/citext</>'s
3252 <function>regexp_matches()</> functions, see the changelog entry below
3257 Also, if you are upgrading from a version earlier than 9.3.6,
3258 see <xref linkend="release-9-3-6">.
3264 <title>Changes</title>
3270 Avoid possible crash when client disconnects just before the
3271 authentication timeout expires (Benkocs Norbert Attila)
3275 If the timeout interrupt fired partway through the session shutdown
3276 sequence, SSL-related state would be freed twice, typically causing a
3277 crash and hence denial of service to other sessions. Experimentation
3278 shows that an unauthenticated remote attacker could trigger the bug
3279 somewhat consistently, hence treat as security issue.
3286 Improve detection of system-call failures (Noah Misch)
3290 Our replacement implementation of <function>snprintf()</> failed to
3291 check for errors reported by the underlying system library calls;
3292 the main case that might be missed is out-of-memory situations.
3293 In the worst case this might lead to information exposure, due to our
3294 code assuming that a buffer had been overwritten when it hadn't been.
3295 Also, there were a few places in which security-relevant calls of other
3296 system library functions did not check for failure.
3300 It remains possible that some calls of the <function>*printf()</>
3301 family of functions are vulnerable to information disclosure if an
3302 out-of-memory error occurs at just the wrong time. We judge the risk
3303 to not be large, but will continue analysis in this area.
3310 In <filename>contrib/pgcrypto</>, uniformly report decryption failures
3311 as <quote>Wrong key or corrupt data</> (Noah Misch)
3315 Previously, some cases of decryption with an incorrect key could report
3316 other error message texts. It has been shown that such variance in
3317 error reports can aid attackers in recovering keys from other systems.
3318 While it's unknown whether <filename>pgcrypto</>'s specific behaviors
3319 are likewise exploitable, it seems better to avoid the risk by using a
3320 one-size-fits-all message.
3327 Protect against wraparound of multixact member IDs
3328 (Álvaro Herrera, Robert Haas, Thomas Munro)
3332 Under certain usage patterns, the existing defenses against this might
3333 be insufficient, allowing <filename>pg_multixact/members</> files to be
3334 removed too early, resulting in data loss.
3335 The fix for this includes modifying the server to fail transactions
3336 that would result in overwriting old multixact member ID data, and
3337 improving autovacuum to ensure it will act proactively to prevent
3338 multixact member ID wraparound, as it does for transaction ID
3345 Fix incorrect declaration of <filename>contrib/citext</>'s
3346 <function>regexp_matches()</> functions (Tom Lane)
3350 These functions should return <type>setof text[]</>, like the core
3351 functions they are wrappers for; but they were incorrectly declared as
3352 returning just <type>text[]</>. This mistake had two results: first,
3353 if there was no match you got a scalar null result, whereas what you
3354 should get is an empty set (zero rows). Second, the <literal>g</> flag
3355 was effectively ignored, since you would get only one result array even
3356 if there were multiple matches.
3360 While the latter behavior is clearly a bug, there might be applications
3361 depending on the former behavior; therefore the function declarations
3362 will not be changed by default until <productname>PostgreSQL</> 9.5.
3363 In pre-9.5 branches, the old behavior exists in version 1.0 of
3364 the <literal>citext</> extension, while we have provided corrected
3365 declarations in version 1.1 (which is <emphasis>not</> installed by
3366 default). To adopt the fix in pre-9.5 branches, execute
3367 <literal>ALTER EXTENSION citext UPDATE TO '1.1'</> in each database in
3368 which <literal>citext</> is installed. (You can also <quote>update</>
3369 back to 1.0 if you need to undo that.) Be aware that either update
3370 direction will require dropping and recreating any views or rules that
3371 use <filename>citext</>'s <function>regexp_matches()</> functions.
3377 Fix incorrect checking of deferred exclusion constraints after a HOT
3382 If a new row that potentially violates a deferred exclusion constraint
3383 is HOT-updated (that is, no indexed columns change and the row can be
3384 stored back onto the same table page) later in the same transaction,
3385 the exclusion constraint would be reported as violated when the check
3386 finally occurred, even if the row(s) the new row originally conflicted
3387 with had been deleted.
3393 Fix planning of star-schema-style queries (Tom Lane)
3397 Sometimes, efficient scanning of a large table requires that index
3398 parameters be provided from more than one other table (commonly,
3399 dimension tables whose keys are needed to index a large fact table).
3400 The planner should be able to find such plans, but an overly
3401 restrictive search heuristic prevented it.
3407 Prevent improper reordering of antijoins (NOT EXISTS joins) versus
3408 other outer joins (Tom Lane)
3412 This oversight in the planner has been observed to cause <quote>could
3413 not find RelOptInfo for given relids</> errors, but it seems possible
3414 that sometimes an incorrect query plan might get past that consistency
3415 check and result in silently-wrong query output.
3421 Fix incorrect matching of subexpressions in outer-join plan nodes
3426 Previously, if textually identical non-strict subexpressions were used
3427 both above and below an outer join, the planner might try to re-use
3428 the value computed below the join, which would be incorrect because the
3429 executor would force the value to NULL in case of an unmatched outer row.
3435 Fix GEQO planner to cope with failure of its join order heuristic
3440 This oversight has been seen to lead to <quote>failed to join all
3441 relations together</> errors in queries involving <literal>LATERAL</>,
3442 and that might happen in other cases as well.
3448 Fix possible deadlock at startup
3449 when <literal>max_prepared_transactions</> is too small
3450 (Heikki Linnakangas)
3456 Don't archive useless preallocated WAL files after a timeline switch
3457 (Heikki Linnakangas)
3463 Recursively <function>fsync()</> the data directory after a crash
3464 (Abhijit Menon-Sen, Robert Haas)
3468 This ensures consistency if another crash occurs shortly later. (The
3469 second crash would have to be a system-level crash, not just a database
3470 crash, for there to be a problem.)
3476 Fix autovacuum launcher's possible failure to shut down, if an error
3477 occurs after it receives SIGTERM (Álvaro Herrera)
3483 Cope with unexpected signals in <function>LockBufferForCleanup()</>
3488 This oversight could result in spurious errors about <quote>multiple
3489 backends attempting to wait for pincount 1</>.
3495 Fix crash when doing <literal>COPY IN</> to a table with check
3496 constraints that contain whole-row references (Tom Lane)
3500 The known failure case only crashes in 9.4 and up, but there is very
3501 similar code in 9.3 and 9.2, so back-patch those branches as well.
3507 Avoid waiting for WAL flush or synchronous replication during commit of
3508 a transaction that was read-only so far as the user is concerned
3513 Previously, a delay could occur at commit in transactions that had
3514 written WAL due to HOT page pruning, leading to undesirable effects
3515 such as sessions getting stuck at startup if all synchronous replicas
3516 are down. Sessions have also been observed to get stuck in catchup
3517 interrupt processing when using synchronous replication; this will fix
3518 that problem as well.
3524 Fix crash when manipulating hash indexes on temporary tables
3525 (Heikki Linnakangas)
3531 Fix possible failure during hash index bucket split, if other processes
3532 are modifying the index concurrently (Tom Lane)
3538 Check for interrupts while analyzing index expressions (Jeff Janes)
3542 <command>ANALYZE</> executes index expressions many times; if there are
3543 slow functions in such an expression, it's desirable to be able to
3544 cancel the <command>ANALYZE</> before that loop finishes.
3550 Ensure <structfield>tableoid</> of a foreign table is reported
3551 correctly when a <literal>READ COMMITTED</> recheck occurs after
3552 locking rows in <command>SELECT FOR UPDATE</>, <command>UPDATE</>,
3553 or <command>DELETE</> (Etsuro Fujita)
3559 Add the name of the target server to object description strings for
3560 foreign-server user mappings (Álvaro Herrera)
3566 Include the schema name in object identity strings for conversions
3567 (Álvaro Herrera)
3573 Recommend setting <literal>include_realm</> to 1 when using
3574 Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
3578 Without this, identically-named users from different realms cannot be
3579 distinguished. For the moment this is only a documentation change, but
3580 it will become the default setting in <productname>PostgreSQL</> 9.5.
3586 Remove code for matching IPv4 <filename>pg_hba.conf</> entries to
3587 IPv4-in-IPv6 addresses (Tom Lane)
3591 This hack was added in 2003 in response to a report that some Linux
3592 kernels of the time would report IPv4 connections as having
3593 IPv4-in-IPv6 addresses. However, the logic was accidentally broken in
3594 9.0. The lack of any field complaints since then shows that it's not
3595 needed anymore. Now we have reports that the broken code causes
3596 crashes on some systems, so let's just remove it rather than fix it.
3597 (Had we chosen to fix it, that would make for a subtle and potentially
3598 security-sensitive change in the effective meaning of
3599 IPv4 <filename>pg_hba.conf</> entries, which does not seem like a good
3600 thing to do in minor releases.)
3606 Report WAL flush, not insert, position in <literal>IDENTIFY_SYSTEM</>
3607 replication command (Heikki Linnakangas)
3611 This avoids a possible startup failure
3612 in <application>pg_receivexlog</>.
3618 While shutting down service on Windows, periodically send status
3619 updates to the Service Control Manager to prevent it from killing the
3620 service too soon; and ensure that <application>pg_ctl</> will wait for
3621 shutdown (Krystian Bigaj)
3627 Reduce risk of network deadlock when using <application>libpq</>'s
3628 non-blocking mode (Heikki Linnakangas)
3632 When sending large volumes of data, it's important to drain the input
3633 buffer every so often, in case the server has sent enough response data
3634 to cause it to block on output. (A typical scenario is that the server
3635 is sending a stream of NOTICE messages during <literal>COPY FROM
3636 STDIN</>.) This worked properly in the normal blocking mode, but not
3637 so much in non-blocking mode. We've modified <application>libpq</>
3638 to opportunistically drain input when it can, but a full defense
3639 against this problem requires application cooperation: the application
3640 should watch for socket read-ready as well as write-ready conditions,
3641 and be sure to call <function>PQconsumeInput()</> upon read-ready.
3647 In <application>libpq</>, fix misparsing of empty values in URI
3648 connection strings (Thomas Fanghaenel)
3654 Fix array handling in <application>ecpg</> (Michael Meskes)
3660 Fix <application>psql</> to sanely handle URIs and conninfo strings as
3661 the first parameter to <command>\connect</>
3662 (David Fetter, Andrew Dunstan, Álvaro Herrera)
3666 This syntax has been accepted (but undocumented) for a long time, but
3667 previously some parameters might be taken from the old connection
3668 instead of the given string, which was agreed to be undesirable.
3674 Suppress incorrect complaints from <application>psql</> on some
3675 platforms that it failed to write <filename>~/.psql_history</> at exit
3680 This misbehavior was caused by a workaround for a bug in very old
3681 (pre-2006) versions of <application>libedit</>. We fixed it by
3682 removing the workaround, which will cause a similar failure to appear
3683 for anyone still using such versions of <application>libedit</>.
3684 Recommendation: upgrade that library, or use <application>libreadline</>.
3690 Fix <application>pg_dump</>'s rule for deciding which casts are
3691 system-provided casts that should not be dumped (Tom Lane)
3697 In <application>pg_dump</>, fix failure to honor <literal>-Z</>
3698 compression level option together with <literal>-Fd</>
3705 Make <application>pg_dump</> consider foreign key relationships
3706 between extension configuration tables while choosing dump order
3707 (Gilles Darold, Michael Paquier, Stephen Frost)
3711 This oversight could result in producing dumps that fail to reload
3712 because foreign key constraints are transiently violated.
3718 Avoid possible <application>pg_dump</> failure when concurrent sessions
3719 are creating and dropping temporary functions (Tom Lane)
3725 Fix dumping of views that are just <literal>VALUES(...)</> but have
3726 column aliases (Tom Lane)
3732 In <application>pg_upgrade</>, force timeline 1 in the new cluster
3737 This change prevents upgrade failures caused by bogus complaints about
3738 missing WAL history files.
3744 In <application>pg_upgrade</>, check for improperly non-connectable
3745 databases before proceeding
3752 In <application>pg_upgrade</>, quote directory paths
3753 properly in the generated <literal>delete_old_cluster</> script
3760 In <application>pg_upgrade</>, preserve database-level freezing info
3766 This oversight could cause missing-clog-file errors for tables within
3767 the <literal>postgres</> and <literal>template1</> databases.
3773 Run <application>pg_upgrade</> and <application>pg_resetxlog</> with
3774 restricted privileges on Windows, so that they don't fail when run by
3775 an administrator (Muhammad Asif Naeem)
3781 Improve handling of <function>readdir()</> failures when scanning
3782 directories in <application>initdb</> and <application>pg_basebackup</>
3789 Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane)
3795 Fix compile failure on Sparc V8 machines (Rob Rowan)
3801 Silence some build warnings on macOS (Tom Lane)
3807 Update time zone data files to <application>tzdata</> release 2015d
3808 for DST law changes in Egypt, Mongolia, and Palestine, plus historical
3809 changes in Canada and Chile. Also adopt revised zone abbreviations for
3810 the America/Adak zone (HST/HDT not HAST/HADT).
3819 <sect1 id="release-9-3-6">
3820 <title>Release 9.3.6</title>
3823 <title>Release Date</title>
3824 <simpara>2015-02-05</simpara>
3828 This release contains a variety of fixes from 9.3.5.
3829 For information about new features in the 9.3 major release, see
3830 <xref linkend="release-9-3">.
3834 <title>Migration to Version 9.3.6</title>
3837 A dump/restore is not required for those running 9.3.X.
3841 However, if you are a Windows user and are using the <quote>Norwegian
3842 (Bokmål)</> locale, manual action is needed after the upgrade to
3843 replace any <quote>Norwegian (Bokmål)_Norway</> locale names stored
3844 in <productname>PostgreSQL</> system catalogs with the plain-ASCII
3845 alias <quote>Norwegian_Norway</>. For details see
3846 <ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></>
3850 Also, if you are upgrading from a version earlier than 9.3.5,
3851 see <xref linkend="release-9-3-5">.
3857 <title>Changes</title>
3862 Author: Bruce Momjian <bruce@momjian.us>
3863 Branch: master [0150ab567] 2015-02-02 10:00:44 -0500
3864 Branch: REL9_4_STABLE [1628a0bbf] 2015-02-02 10:00:49 -0500
3865 Branch: REL9_3_STABLE [b8b580147] 2015-02-02 10:00:50 -0500
3866 Branch: REL9_2_STABLE [5ae3bf1af] 2015-02-02 10:00:50 -0500
3867 Branch: REL9_1_STABLE [037529a11] 2015-02-02 10:00:51 -0500
3868 Branch: REL9_0_STABLE [611e110aa] 2015-02-02 10:00:52 -0500
3869 Author: Bruce Momjian <bruce@momjian.us>
3870 Branch: master [9241c84cb] 2015-02-02 10:00:45 -0500
3871 Branch: REL9_4_STABLE [56d2bee9d] 2015-02-02 10:00:49 -0500
3872 Branch: REL9_3_STABLE [fe2526990] 2015-02-02 10:00:50 -0500
3873 Branch: REL9_2_STABLE [e09651e9d] 2015-02-02 10:00:50 -0500
3874 Branch: REL9_1_STABLE [2ceb63deb] 2015-02-02 10:00:51 -0500
3875 Branch: REL9_0_STABLE [56b970f2e] 2015-02-02 10:00:52 -0500
3880 Fix buffer overruns in <function>to_char()</>
3885 When <function>to_char()</> processes a numeric formatting template
3886 calling for a large number of digits, <productname>PostgreSQL</>
3887 would read past the end of a buffer. When processing a crafted
3888 timestamp formatting template, <productname>PostgreSQL</> would write
3889 past the end of a buffer. Either case could crash the server.
3890 We have not ruled out the possibility of attacks that lead to
3891 privilege escalation, though they seem unlikely.
3897 Author: Bruce Momjian <bruce@momjian.us>
3898 Branch: master [29725b3db] 2015-02-02 10:00:45 -0500
3899 Branch: REL9_4_STABLE [2ac95c83c] 2015-02-02 10:00:49 -0500
3900 Branch: REL9_3_STABLE [bc4d5f2e5] 2015-02-02 10:00:50 -0500
3901 Branch: REL9_2_STABLE [c6c6aa288] 2015-02-02 10:00:51 -0500
3902 Branch: REL9_1_STABLE [98f2479d8] 2015-02-02 10:00:51 -0500
3903 Branch: REL9_0_STABLE [9e05c5063] 2015-02-02 10:00:52 -0500
3908 Fix buffer overrun in replacement <function>*printf()</> functions
3913 <productname>PostgreSQL</> includes a replacement implementation
3914 of <function>printf</> and related functions. This code will overrun
3915 a stack buffer when formatting a floating point number (conversion
3916 specifiers <literal>e</>, <literal>E</>, <literal>f</>, <literal>F</>,
3917 <literal>g</> or <literal>G</>) with requested precision greater than
3918 about 500. This will crash the server, and we have not ruled out the
3919 possibility of attacks that lead to privilege escalation.
3920 A database user can trigger such a buffer overrun through
3921 the <function>to_char()</> SQL function. While that is the only
3922 affected core <productname>PostgreSQL</> functionality, extension
3923 modules that use printf-family functions may be at risk as well.
3927 This issue primarily affects <productname>PostgreSQL</> on Windows.
3928 <productname>PostgreSQL</> uses the system implementation of these
3929 functions where adequate, which it is on other modern platforms.
3935 Author: Noah Misch <noah@leadboat.com>
3936 Branch: master [1dc755158] 2015-02-02 10:00:45 -0500
3937 Branch: REL9_4_STABLE [82806cf4e] 2015-02-02 10:00:49 -0500
3938 Branch: REL9_3_STABLE [6994f0790] 2015-02-02 10:00:50 -0500
3939 Branch: REL9_2_STABLE [d95ebe0ac] 2015-02-02 10:00:51 -0500
3940 Branch: REL9_1_STABLE [11f738a8a] 2015-02-02 10:00:51 -0500
3941 Branch: REL9_0_STABLE [ce6f261cd] 2015-02-02 10:00:52 -0500
3942 Author: Noah Misch <noah@leadboat.com>
3943 Branch: master [8b59672d8] 2015-02-02 10:00:45 -0500
3944 Branch: REL9_4_STABLE [258e294db] 2015-02-02 10:00:49 -0500
3945 Branch: REL9_3_STABLE [a558ad3a7] 2015-02-02 10:00:50 -0500
3946 Branch: REL9_2_STABLE [d1972da8c] 2015-02-02 10:00:51 -0500
3947 Branch: REL9_1_STABLE [8d412e02e] 2015-02-02 10:00:52 -0500
3948 Branch: REL9_0_STABLE [0a3ee8a5f] 2015-02-02 10:00:52 -0500
3953 Fix buffer overruns in <filename>contrib/pgcrypto</>
3954 (Marko Tiikkaja, Noah Misch)
3958 Errors in memory size tracking within the <filename>pgcrypto</>
3959 module permitted stack buffer overruns and improper dependence on the
3960 contents of uninitialized memory. The buffer overrun cases can
3961 crash the server, and we have not ruled out the possibility of
3962 attacks that lead to privilege escalation.
3968 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3969 Branch: master [2b3a8b20c] 2015-02-02 17:09:53 +0200
3970 Branch: REL9_4_STABLE [57ec87c6b] 2015-02-02 17:09:46 +0200
3971 Branch: REL9_3_STABLE [cd19848bd] 2015-02-02 17:09:40 +0200
3972 Branch: REL9_2_STABLE [289592b23] 2015-02-02 17:09:35 +0200
3973 Branch: REL9_1_STABLE [af9c5c074] 2015-02-02 17:09:31 +0200
3974 Branch: REL9_0_STABLE [47ba0fbd7] 2015-02-02 17:09:25 +0200
3979 Fix possible loss of frontend/backend protocol synchronization after
3981 (Heikki Linnakangas)
3985 If any error occurred while the server was in the middle of reading a
3986 protocol message from the client, it could lose synchronization and
3987 incorrectly try to interpret part of the message's data as a new
3988 protocol message. An attacker able to submit crafted binary data
3989 within a command parameter might succeed in injecting his own SQL
3990 commands this way. Statement timeout and query cancellation are the
3991 most likely sources of errors triggering this scenario. Particularly
3992 vulnerable are applications that use a timeout and also submit
3993 arbitrary user-crafted data as binary query parameters. Disabling
3994 statement timeout will reduce, but not eliminate, the risk of
3995 exploit. Our thanks to Emil Lenngren for reporting this issue.
4001 Author: Stephen Frost <sfrost@snowman.net>
4002 Branch: master [804b6b6db] 2015-01-28 12:31:30 -0500
4003 Branch: REL9_4_STABLE [3cc74a3d6] 2015-01-28 12:32:06 -0500
4004 Branch: REL9_3_STABLE [4b9874216] 2015-01-28 12:32:39 -0500
4005 Branch: REL9_2_STABLE [d49f84b08] 2015-01-28 12:32:56 -0500
4006 Branch: REL9_1_STABLE [9406884af] 2015-01-28 12:33:15 -0500
4007 Branch: REL9_0_STABLE [3a2063369] 2015-01-28 12:33:29 -0500
4012 Fix information leak via constraint-violation error messages
4017 Some server error messages show the values of columns that violate
4018 a constraint, such as a unique constraint. If the user does not have
4019 <literal>SELECT</> privilege on all columns of the table, this could
4020 mean exposing values that the user should not be able to see. Adjust
4021 the code so that values are displayed only when they came from the SQL
4022 command or could be selected by the user.
4028 Author: Noah Misch <noah@leadboat.com>
4029 Branch: master [f6dc6dd5b] 2014-12-17 22:48:40 -0500
4030 Branch: REL9_4_STABLE [6b87d423d] 2014-12-17 22:48:45 -0500
4031 Branch: REL9_3_STABLE [442dc2c35] 2014-12-17 22:48:46 -0500
4032 Branch: REL9_2_STABLE [0046f651d] 2014-12-17 22:48:47 -0500
4033 Branch: REL9_1_STABLE [6aa98e957] 2014-12-17 22:48:47 -0500
4034 Branch: REL9_0_STABLE [6d45ee572] 2014-12-17 22:48:48 -0500
4039 Lock down regression testing's temporary installations on Windows
4044 Use SSPI authentication to allow connections only from the OS user
4045 who launched the test suite. This closes on Windows the same
4046 vulnerability previously closed on other platforms, namely that other
4047 users might be able to connect to the test postmaster.
4053 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4054 Branch: REL9_3_STABLE [8f80dcf3c] 2014-10-24 19:59:49 +0300
4055 Branch: REL9_2_STABLE [d440c4b55] 2014-10-24 19:59:52 +0300
4056 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4057 Branch: REL9_3_STABLE [2a1b34959] 2014-10-24 19:36:28 +0300
4058 Branch: REL9_2_STABLE [737ae3fc7] 2014-10-24 19:53:27 +0300
4059 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4060 Branch: master [aa1d2fc5e] 2015-01-16 13:28:19 +0200
4061 Branch: REL9_4_STABLE [2049a7d82] 2015-01-16 13:10:06 +0200
4062 Branch: REL9_3_STABLE [1619442a1] 2015-01-16 13:10:15 +0200
4063 Branch: REL9_2_STABLE [6bf343c6e] 2015-01-16 13:10:23 +0200
4068 Cope with the Windows locale named <quote>Norwegian (Bokmål)</>
4069 (Heikki Linnakangas)
4073 Non-ASCII locale names are problematic since it's not clear what
4074 encoding they should be represented in. Map the troublesome locale
4075 name to a plain-ASCII alias, <quote>Norwegian_Norway</>.
4080 Author: Tom Lane <tgl@sss.pgh.pa.us>
4081 Branch: REL9_3_STABLE [f88300168] 2014-11-04 13:24:14 -0500
4082 Branch: REL9_2_STABLE [db72ad02e] 2014-11-04 13:24:17 -0500
4083 Branch: REL9_1_STABLE [7c6f55e9e] 2014-11-04 13:24:22 -0500
4084 Branch: REL9_0_STABLE [45a607d5c] 2014-11-04 13:24:26 -0500
4089 Avoid possible data corruption if <command>ALTER DATABASE SET
4090 TABLESPACE</> is used to move a database to a new tablespace and then
4091 shortly later move it back to its original tablespace (Tom Lane)
4096 Author: Tom Lane <tgl@sss.pgh.pa.us>
4097 Branch: REL9_3_STABLE [81f0a5e38] 2014-10-29 18:12:08 -0400
4098 Branch: REL9_2_STABLE [40058fbce] 2014-10-29 18:12:11 -0400
4099 Branch: REL9_1_STABLE [6ec1c3ef8] 2014-10-29 18:12:17 -0400
4100 Branch: REL9_0_STABLE [9d06da58e] 2014-10-29 18:12:20 -0400
4101 Author: Tom Lane <tgl@sss.pgh.pa.us>
4102 Branch: REL9_3_STABLE [e65b550b3] 2014-10-30 13:03:28 -0400
4103 Branch: REL9_2_STABLE [38cb8687a] 2014-10-30 13:03:31 -0400
4104 Branch: REL9_1_STABLE [fcf0246b2] 2014-10-30 13:03:34 -0400
4105 Branch: REL9_0_STABLE [73f950fc8] 2014-10-30 13:03:39 -0400
4110 Avoid corrupting tables when <command>ANALYZE</> inside a transaction
4111 is rolled back (Andres Freund, Tom Lane, Michael Paquier)
4115 If the failing transaction had earlier removed the last index, rule, or
4116 trigger from the table, the table would be left in a corrupted state
4117 with the relevant <structname>pg_class</> flags not set though they
4123 Author: Andres Freund <andres@anarazel.de>
4124 Branch: REL9_3_STABLE [d7624e562] 2014-10-20 23:45:31 +0200
4125 Branch: REL9_2_STABLE [fd29810d1] 2014-10-20 23:47:00 +0200
4126 Branch: REL9_1_STABLE [d5fef87e9] 2014-10-20 23:47:45 +0200
4131 Ensure that unlogged tables are copied correctly
4132 during <command>CREATE DATABASE</> or <command>ALTER DATABASE SET
4133 TABLESPACE</> (Pavan Deolasee, Andres Freund)
4138 Author: Robert Haas <rhaas@postgresql.org>
4139 Branch: REL9_3_STABLE [e35db342a] 2014-09-22 16:19:59 -0400
4144 Fix incorrect processing
4145 of <structname>CreateEventTrigStmt</>.<structfield>eventname</> (Petr
4150 This could result in misbehavior if <command>CREATE EVENT TRIGGER</>
4151 were executed as a prepared query, or via extended query protocol.
4156 Author: Tom Lane <tgl@sss.pgh.pa.us>
4157 Branch: REL9_3_STABLE [2a83e0349] 2014-11-11 17:00:21 -0500
4158 Branch: REL9_2_STABLE [1c2f9a4f6] 2014-11-11 17:00:25 -0500
4159 Branch: REL9_1_STABLE [94d5d57d5] 2014-11-11 17:00:28 -0500
4164 Fix <command>DROP</>'s dependency searching to correctly handle the
4165 case where a table column is recursively visited before its table
4166 (Petr Jelinek, Tom Lane)
4170 This case is only known to arise when an extension creates both a
4171 datatype and a table using that datatype. The faulty code might
4172 refuse a <command>DROP EXTENSION</> unless <literal>CASCADE</> is
4173 specified, which should not be required.
4178 Author: Tom Lane <tgl@sss.pgh.pa.us>
4179 Branch: master [c480cb9d2] 2015-01-15 18:52:58 -0500
4180 Branch: REL9_4_STABLE [b75d18bd4] 2015-01-15 18:53:05 -0500
4181 Branch: REL9_3_STABLE [34668c8ec] 2015-01-15 18:52:28 -0500
4182 Branch: REL9_2_STABLE [0acb32efb] 2015-01-15 18:52:31 -0500
4183 Branch: REL9_1_STABLE [450530fce] 2015-01-15 18:52:34 -0500
4184 Branch: REL9_0_STABLE [5308e085b] 2015-01-15 18:52:38 -0500
4189 Fix use-of-already-freed-memory problem in EvalPlanQual processing
4194 In <literal>READ COMMITTED</> mode, queries that lock or update
4195 recently-updated rows could crash as a result of this bug.
4200 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4201 Branch: master [0e5680f47] 2014-12-26 13:52:27 -0300
4202 Branch: REL9_4_STABLE [0e3a1f71d] 2014-12-26 13:52:27 -0300
4203 Branch: REL9_3_STABLE [048912386] 2014-12-26 13:52:27 -0300
4208 Avoid possible deadlock while trying to acquire tuple locks
4209 in EvalPlanQual processing (Álvaro Herrera, Mark Kirkwood)
4214 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4215 Branch: master [d5e3d1e96] 2015-01-04 15:48:29 -0300
4216 Branch: REL9_4_STABLE [51742063b] 2015-01-04 15:48:29 -0300
4217 Branch: REL9_3_STABLE [54a8abc2b] 2015-01-04 15:48:29 -0300
4222 Fix failure to wait when a transaction tries to acquire a <literal>FOR
4223 NO KEY EXCLUSIVE</> tuple lock, while multiple other transactions
4224 currently hold <literal>FOR SHARE</> locks (Álvaro Herrera)
4229 Author: Tom Lane <tgl@sss.pgh.pa.us>
4230 Branch: REL9_3_STABLE [2ae8a01ca] 2014-12-11 21:02:31 -0500
4231 Branch: REL9_2_STABLE [cd63c57e5] 2014-12-11 21:02:34 -0500
4232 Branch: REL9_1_STABLE [bca39b578] 2014-12-11 21:02:38 -0500
4233 Branch: REL9_0_STABLE [662eebdc6] 2014-12-11 21:02:41 -0500
4238 Fix planning of <command>SELECT FOR UPDATE</> when using a partial
4239 index on a child table (Kyotaro Horiguchi)
4243 In <literal>READ COMMITTED</> mode, <command>SELECT FOR UPDATE</> must
4244 also recheck the partial index's <literal>WHERE</> condition when
4245 rechecking a recently-updated row to see if it still satisfies the
4246 query's <literal>WHERE</> condition. This requirement was missed if the
4247 index belonged to an inheritance child table, so that it was possible
4248 to incorrectly return rows that no longer satisfy the query condition.
4253 Author: Tom Lane <tgl@sss.pgh.pa.us>
4254 Branch: REL9_3_STABLE [f14196c35] 2014-12-11 19:37:07 -0500
4255 Branch: REL9_2_STABLE [deadbf4f3] 2014-12-11 19:37:10 -0500
4256 Branch: REL9_1_STABLE [21946ac9b] 2014-12-11 19:37:14 -0500
4257 Branch: REL9_0_STABLE [f5e4e92fb] 2014-12-11 19:37:17 -0500
4262 Fix corner case wherein <command>SELECT FOR UPDATE</> could return a row
4263 twice, and possibly miss returning other rows (Tom Lane)
4267 In <literal>READ COMMITTED</> mode, a <command>SELECT FOR UPDATE</>
4268 that is scanning an inheritance tree could incorrectly return a row
4269 from a prior child table instead of the one it should return from a
4275 Author: Tom Lane <tgl@sss.pgh.pa.us>
4276 Branch: master [a5cd70dcb] 2015-01-15 13:18:12 -0500
4277 Branch: REL9_4_STABLE [d25192892] 2015-01-15 13:18:16 -0500
4278 Branch: REL9_3_STABLE [939f0fb67] 2015-01-15 13:18:19 -0500
4283 Improve performance of <command>EXPLAIN</> with large range tables
4289 Author: Tom Lane <tgl@sss.pgh.pa.us>
4290 Branch: REL9_3_STABLE [7a9c8cefb] 2014-08-09 13:46:42 -0400
4291 Branch: REL9_2_STABLE [b4dacab12] 2014-08-09 13:46:45 -0400
4292 Branch: REL9_1_STABLE [bbe826f21] 2014-08-09 13:46:48 -0400
4293 Branch: REL9_0_STABLE [4ff49746e] 2014-08-09 13:46:52 -0400
4298 Reject duplicate column names in the referenced-columns list of
4299 a <literal>FOREIGN KEY</> declaration (David Rowley)
4303 This restriction is per SQL standard. Previously we did not reject
4304 the case explicitly, but later on the code would fail with
4305 bizarre-looking errors.
4310 Author: Tom Lane <tgl@sss.pgh.pa.us>
4311 Branch: REL9_3_STABLE [6306d0712] 2014-07-22 13:30:14 -0400
4316 Re-enable error for <literal>SELECT ... OFFSET -1</> (Tom Lane)
4320 A negative offset value has been an error since 8.4, but an
4321 optimization added in 9.3 accidentally turned the case into a no-op.
4322 Restore the expected behavior.
4327 Author: Tom Lane <tgl@sss.pgh.pa.us>
4328 Branch: REL9_3_STABLE [8b65e0a33] 2014-08-09 18:40:34 -0400
4329 Branch: REL9_2_STABLE [15026ab97] 2014-08-09 18:40:38 -0400
4334 Restore previous behavior of conversion of domains to JSON
4339 This change causes domains over numeric and boolean to be treated
4340 like their base types for purposes of conversion to JSON. It worked
4341 like that before 9.3.5 and 9.2.9, but was unintentionally changed
4342 while fixing a related problem.
4347 Author: Tom Lane <tgl@sss.pgh.pa.us>
4348 Branch: REL9_3_STABLE [8571ecb24] 2014-12-02 15:02:43 -0500
4353 Fix <function>json_agg()</> to not return extra trailing right
4354 brackets in its result (Tom Lane)
4359 Author: Tom Lane <tgl@sss.pgh.pa.us>
4360 Branch: REL9_3_STABLE [25bf13fe1] 2014-09-11 23:30:57 -0400
4361 Branch: REL9_2_STABLE [228ed4370] 2014-09-11 23:31:00 -0400
4362 Branch: REL9_1_STABLE [cf5c20b06] 2014-09-11 23:31:03 -0400
4363 Branch: REL9_0_STABLE [26f8a4691] 2014-09-11 23:31:06 -0400
4368 Fix bugs in raising a <type>numeric</> value to a large integral power
4373 The previous code could get a wrong answer, or consume excessive
4374 amounts of time and memory before realizing that the answer must
4380 Author: Tom Lane <tgl@sss.pgh.pa.us>
4381 Branch: REL9_3_STABLE [10b81fbdc] 2014-12-01 15:25:08 -0500
4382 Branch: REL9_2_STABLE [e640042e9] 2014-12-01 15:25:12 -0500
4383 Branch: REL9_1_STABLE [2e3cc3955] 2014-12-01 15:25:15 -0500
4384 Branch: REL9_0_STABLE [e6550626c] 2014-12-01 15:25:18 -0500
4389 In <function>numeric_recv()</>, truncate away any fractional digits
4390 that would be hidden according to the value's <literal>dscale</> field
4395 A <type>numeric</> value's display scale (<literal>dscale</>) should
4396 never be less than the number of nonzero fractional digits; but
4397 apparently there's at least one broken client application that
4398 transmits binary <type>numeric</> values in which that's true.
4399 This leads to strange behavior since the extra digits are taken into
4400 account by arithmetic operations even though they aren't printed.
4401 The least risky fix seems to be to truncate away such <quote>hidden</>
4402 digits on receipt, so that the value is indeed what it prints as.
4407 Author: Tom Lane <tgl@sss.pgh.pa.us>
4408 Branch: REL9_3_STABLE [bbfdf5d75] 2014-09-23 20:25:36 -0400
4409 Branch: REL9_2_STABLE [3359a818c] 2014-09-23 20:25:39 -0400
4414 Fix incorrect search for shortest-first regular expression matches
4419 Matching would often fail when the number of allowed iterations is
4420 limited by a <literal>?</> quantifier or a bound expression.
4425 Author: Tom Lane <tgl@sss.pgh.pa.us>
4426 Branch: REL9_3_STABLE [7672bbca0] 2014-07-21 22:41:27 -0400
4427 Branch: REL9_2_STABLE [f54d97c5e] 2014-07-21 22:41:30 -0400
4428 Branch: REL9_1_STABLE [124331b61] 2014-07-21 22:41:33 -0400
4429 Branch: REL9_0_STABLE [6e5a39c9e] 2014-07-21 22:41:36 -0400
4434 Reject out-of-range numeric timezone specifications (Tom Lane)
4438 Simple numeric timezone specifications exceeding +/- 168 hours (one
4439 week) would be accepted, but could then cause null-pointer dereference
4440 crashes in certain operations. There's no use-case for such large UTC
4441 offsets, so reject them.
4446 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4447 Branch: REL9_3_STABLE [1aa526f3f] 2014-10-27 10:51:29 +0200
4448 Branch: REL9_2_STABLE [604d94d4c] 2014-10-27 10:51:33 +0200
4449 Branch: REL9_1_STABLE [4d1c738d1] 2014-10-27 10:51:36 +0200
4450 Branch: REL9_0_STABLE [10059c2da] 2014-10-27 10:51:38 +0200
4455 Fix bugs in <type>tsquery</> <literal>@></> <type>tsquery</>
4456 operator (Heikki Linnakangas)
4460 Two different terms would be considered to match if they had the same
4461 CRC. Also, if the second operand had more terms than the first, it
4462 would be assumed not to be contained in the first; which is wrong
4463 since it might contain duplicate terms.
4468 Author: Tom Lane <tgl@sss.pgh.pa.us>
4469 Branch: REL9_3_STABLE [385f0d98a] 2014-10-23 13:11:34 -0400
4470 Branch: REL9_2_STABLE [f09369da8] 2014-10-23 13:11:37 -0400
4471 Branch: REL9_1_STABLE [94de3a679] 2014-10-23 13:11:41 -0400
4472 Branch: REL9_0_STABLE [21fa26b65] 2014-10-23 13:11:45 -0400
4477 Improve ispell dictionary's defenses against bad affix files (Tom Lane)
4482 Author: Tom Lane <tgl@sss.pgh.pa.us>
4483 Branch: REL9_3_STABLE [5a74ff373] 2014-11-06 20:52:52 -0500
4484 Branch: REL9_2_STABLE [0bb318595] 2014-11-06 20:52:57 -0500
4485 Branch: REL9_1_STABLE [076688084] 2014-11-06 20:53:02 -0500
4486 Branch: REL9_0_STABLE [39493e4d9] 2014-11-06 20:53:07 -0500
4491 Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
4495 The previous coding could crash on an oversize dictionary, so this was
4496 deemed a back-patchable bug fix rather than a feature addition.
4501 Author: Peter Eisentraut <peter_e@gmx.net>
4502 Branch: master [79af9a1d2] 2015-01-06 23:06:13 -0500
4503 Branch: REL9_4_STABLE [6bbf75192] 2015-01-17 22:11:20 -0500
4504 Branch: REL9_3_STABLE [e32cb8d0e] 2015-01-17 22:13:27 -0500
4505 Branch: REL9_2_STABLE [c8ef5b1ac] 2015-01-17 22:14:21 -0500
4506 Branch: REL9_1_STABLE [c975fa471] 2015-01-17 22:37:07 -0500
4507 Branch: REL9_0_STABLE [cebb3f032] 2015-01-17 22:37:32 -0500
4512 Fix namespace handling in <function>xpath()</> (Ali Akbar)
4516 Previously, the <type>xml</> value resulting from
4517 an <function>xpath()</> call would not have namespace declarations if
4518 the namespace declarations were attached to an ancestor element in the
4519 input <type>xml</> value, rather than to the specific element being
4520 returned. Propagate the ancestral declaration so that the result is
4521 correct when considered in isolation.
4526 Author: Tom Lane <tgl@sss.pgh.pa.us>
4527 Branch: REL9_3_STABLE [07ab4ec4c] 2014-11-10 15:21:20 -0500
4528 Branch: REL9_2_STABLE [19ccaf9d4] 2014-11-10 15:21:26 -0500
4533 Ensure that whole-row variables expose nonempty column names
4534 to functions that pay attention to column names within composite
4535 arguments (Tom Lane)
4539 In some contexts, constructs like <literal>row_to_json(tab.*)</> may
4540 not produce the expected column names. This is fixed properly as of
4541 9.4; in older branches, just ensure that we produce some nonempty
4542 name. (In some cases this will be the underlying table's column name
4543 rather than the query-assigned alias that should theoretically be
4549 Author: Tom Lane <tgl@sss.pgh.pa.us>
4550 Branch: REL9_3_STABLE [c57cdc9c1] 2014-11-22 16:01:12 -0500
4551 Branch: REL9_2_STABLE [906599f65] 2014-11-22 16:01:15 -0500
4556 Fix mishandling of system columns,
4557 particularly <structfield>tableoid</>, in FDW queries (Etsuro Fujita)
4562 Author: Tom Lane <tgl@sss.pgh.pa.us>
4563 Branch: master [3d660d33a] 2015-01-30 12:30:59 -0500
4564 Branch: REL9_4_STABLE [b6a164e5c] 2015-01-30 12:31:08 -0500
4565 Branch: REL9_3_STABLE [527ff8baf] 2015-01-30 12:30:43 -0500
4570 Fix assorted oversights in range-operator selectivity estimation
4575 This patch fixes corner-case <quote>unexpected operator NNNN</> planner
4576 errors, and improves the selectivity estimates for some other cases.
4581 Author: Tom Lane <tgl@sss.pgh.pa.us>
4582 Branch: REL9_3_STABLE [f6abf8f08] 2014-10-26 16:12:29 -0400
4583 Branch: REL9_2_STABLE [4586572d7] 2014-10-26 16:12:32 -0400
4588 Avoid doing <literal><replaceable>indexed_column</> = ANY
4589 (<replaceable>array</>)</literal> as an index qualifier if that leads
4590 to an inferior plan (Andrew Gierth)
4594 In some cases, <literal>= ANY</> conditions applied to non-first index
4595 columns would be done as index conditions even though it would be
4596 better to use them as simple filter conditions.
4601 Author: Tom Lane <tgl@sss.pgh.pa.us>
4602 Branch: REL9_3_STABLE [4e54685d0] 2014-10-20 12:23:48 -0400
4607 Fix <quote>variable not found in subplan target list</> planner
4608 failure when an inline-able SQL function taking a composite argument
4609 is used in a <literal>LATERAL</> subselect and the composite argument
4610 is a lateral reference (Tom Lane)
4615 Author: Tom Lane <tgl@sss.pgh.pa.us>
4616 Branch: REL9_3_STABLE [b2b95de61] 2014-10-01 19:30:30 -0400
4617 Branch: REL9_2_STABLE [71b88cf52] 2014-10-01 19:30:34 -0400
4618 Branch: REL9_1_STABLE [477023e94] 2014-10-01 19:30:38 -0400
4619 Branch: REL9_0_STABLE [288f15b7c] 2014-10-01 19:30:41 -0400
4624 Fix planner problems with nested append relations, such as inherited
4625 tables within <literal>UNION ALL</> subqueries (Tom Lane)
4630 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4631 Branch: REL9_3_STABLE [ef8ac584e] 2014-10-03 14:50:29 +0300
4632 Branch: REL9_2_STABLE [8e137b075] 2014-10-03 14:50:40 +0300
4633 Branch: REL9_1_STABLE [f270a1611] 2014-10-03 14:50:46 +0300
4634 Branch: REL9_0_STABLE [f04b112d5] 2014-10-03 14:50:58 +0300
4639 Fail cleanly when a GiST index tuple doesn't fit on a page, rather
4640 than going into infinite recursion (Andrew Gierth)
4645 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4646 Branch: REL9_3_STABLE [67ed9d531] 2014-10-03 13:01:27 -0300
4647 Branch: REL9_2_STABLE [769d6815e] 2014-10-03 13:01:27 -0300
4648 Branch: REL9_1_STABLE [06646f52e] 2014-10-03 13:01:27 -0300
4649 Branch: REL9_0_STABLE [50a757698] 2014-10-03 13:01:27 -0300
4654 Exempt tables that have per-table <varname>cost_limit</>
4655 and/or <varname>cost_delay</> settings from autovacuum's global cost
4656 balancing rules (Álvaro Herrera)
4660 The previous behavior resulted in basically ignoring these per-table
4661 settings, which was unintended. Now, a table having such settings
4662 will be vacuumed using those settings, independently of what is going
4663 on in other autovacuum workers. This may result in heavier total I/O
4664 load than before, so such settings should be re-examined for sanity.
4669 Author: Tom Lane <tgl@sss.pgh.pa.us>
4670 Branch: REL9_3_STABLE [4cbecdaaa] 2014-07-30 14:41:49 -0400
4671 Branch: REL9_2_STABLE [c83aed34b] 2014-07-30 14:41:53 -0400
4672 Branch: REL9_1_STABLE [f21afe421] 2014-07-30 14:41:58 -0400
4673 Branch: REL9_0_STABLE [91b4a881c] 2014-07-30 14:42:12 -0400
4678 Avoid wholesale autovacuuming when autovacuum is nominally off
4683 Even when autovacuum is nominally off, we will still launch autovacuum
4684 worker processes to vacuum tables that are at risk of XID wraparound.
4685 However, such a worker process then proceeded to vacuum all tables in
4686 the target database, if they met the usual thresholds for
4687 autovacuuming. This is at best pretty unexpected; at worst it delays
4688 response to the wraparound threat. Fix it so that if autovacuum is
4689 turned off, workers <emphasis>only</> do anti-wraparound vacuums and
4695 Author: Andres Freund <andres@anarazel.de>
4696 Branch: REL9_3_STABLE [2c3ebfd1a] 2014-11-15 01:21:07 +0100
4697 Branch: REL9_2_STABLE [ea8b3833e] 2014-11-15 01:21:45 +0100
4698 Branch: REL9_1_STABLE [d85b646d0] 2014-11-15 01:22:32 +0100
4699 Author: Andres Freund <andres@anarazel.de>
4700 Branch: REL9_3_STABLE [672b43e68] 2014-11-15 01:21:02 +0100
4701 Branch: REL9_2_STABLE [c5baa708f] 2014-11-15 01:21:40 +0100
4702 Branch: REL9_1_STABLE [fde9994bc] 2014-11-15 01:22:32 +0100
4703 Author: Andres Freund <andres@anarazel.de>
4704 Branch: REL9_3_STABLE [c7299d32f] 2014-11-15 01:20:29 +0100
4705 Branch: REL9_2_STABLE [86673a44a] 2014-11-15 01:21:30 +0100
4706 Branch: REL9_1_STABLE [b0a48e996] 2014-11-15 01:22:32 +0100
4711 During crash recovery, ensure that unlogged relations are rewritten as
4712 empty and are synced to disk before recovery is considered complete
4713 (Abhijit Menon-Sen, Andres Freund)
4717 This prevents scenarios in which unlogged relations might contain
4718 garbage data following database crash recovery.
4723 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4724 Branch: REL9_3_STABLE [861d3aa43] 2014-11-13 20:01:55 +0200
4725 Branch: REL9_2_STABLE [7eab804c2] 2014-11-13 20:01:18 +0200
4726 Branch: REL9_1_STABLE [5f1d931cf] 2014-11-13 20:01:09 +0200
4727 Branch: REL9_0_STABLE [681dbe7d4] 2014-11-13 20:00:51 +0200
4732 Fix race condition between hot standby queries and replaying a
4733 full-page image (Heikki Linnakangas)
4737 This mistake could result in transient errors in queries being
4738 executed in hot standby.
4743 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4744 Branch: REL9_3_STABLE [a2a718b22] 2014-07-29 11:57:52 +0300
4745 Branch: REL9_2_STABLE [1578d13dc] 2014-07-29 11:58:01 +0300
4746 Branch: REL9_1_STABLE [de88ec6bf] 2014-07-29 11:58:09 +0300
4747 Branch: REL9_0_STABLE [804983961] 2014-07-29 11:58:17 +0300
4752 Fix several cases where recovery logic improperly ignored WAL records
4753 for <literal>COMMIT/ABORT PREPARED</> (Heikki Linnakangas)
4757 The most notable oversight was
4758 that <varname>recovery_target_xid</> could not be used to stop at
4764 Author: Fujii Masao <fujii@postgresql.org>
4765 Branch: REL9_3_STABLE [d45cd9e19] 2014-10-23 16:22:46 +0900
4766 Branch: REL9_2_STABLE [f904e9afd] 2014-10-23 16:31:44 +0900
4771 Prevent latest WAL file from being archived a second time at completion
4772 of crash recovery (Fujii Masao)
4777 Author: Fujii Masao <fujii@postgresql.org>
4778 Branch: REL9_3_STABLE [3a3b7e316] 2014-11-06 21:25:18 +0900
4779 Branch: REL9_2_STABLE [38eb5d9e8] 2014-11-06 21:25:45 +0900
4780 Branch: REL9_1_STABLE [4e7468074] 2014-11-06 21:26:15 +0900
4781 Branch: REL9_0_STABLE [83c7bfb9a] 2014-11-06 21:26:21 +0900
4786 Avoid creating unnecessary <filename>.ready</> marker files for
4787 timeline history files (Fujii Masao)
4792 Author: Fujii Masao <fujii@postgresql.org>
4793 Branch: REL9_3_STABLE [52eed3d42] 2014-09-05 02:19:29 +0900
4794 Branch: REL9_2_STABLE [78b1228ef] 2014-09-05 02:19:45 +0900
4795 Branch: REL9_1_STABLE [81bffe63c] 2014-09-05 02:19:50 +0900
4796 Branch: REL9_0_STABLE [857a5d6b5] 2014-09-05 02:19:57 +0900
4801 Fix possible null pointer dereference when an empty prepared statement
4802 is used and the <varname>log_statement</> setting is <literal>mod</>
4803 or <literal>ddl</> (Fujii Masao)
4808 Author: Tom Lane <tgl@sss.pgh.pa.us>
4809 Branch: master [75b48e1ff] 2015-01-19 23:01:33 -0500
4810 Branch: REL9_4_STABLE [3387cbbcb] 2015-01-19 23:01:36 -0500
4811 Branch: REL9_3_STABLE [19794e997] 2015-01-19 23:01:39 -0500
4812 Branch: REL9_2_STABLE [33b723538] 2015-01-19 23:01:41 -0500
4813 Branch: REL9_1_STABLE [b87c1dcef] 2015-01-19 23:01:44 -0500
4814 Branch: REL9_0_STABLE [a1a8d0249] 2015-01-19 23:01:46 -0500
4819 Change <quote>pgstat wait timeout</> warning message to be LOG level,
4820 and rephrase it to be more understandable (Tom Lane)
4824 This message was originally thought to be essentially a can't-happen
4825 case, but it occurs often enough on our slower buildfarm members to be
4826 a nuisance. Reduce it to LOG level, and expend a bit more effort on
4827 the wording: it now reads <quote>using stale statistics instead of
4828 current ones because stats collector is not responding</>.
4833 Author: Andres Freund <andres@anarazel.de>
4834 Branch: REL9_3_STABLE [cbd9619ac] 2014-10-01 14:34:06 +0200
4839 Fix possible corruption of postmaster's list of dynamic background
4840 workers (Andres Freund)
4845 Author: Andres Freund <andres@anarazel.de>
4846 Branch: REL9_3_STABLE [27ef6b653] 2014-09-09 23:37:33 +0200
4847 Branch: REL9_2_STABLE [d0b7ffc0f] 2014-09-09 23:37:50 +0200
4848 Branch: REL9_1_STABLE [5af508f66] 2014-09-09 23:45:07 +0200
4849 Branch: REL9_0_STABLE [f25e89601] 2014-09-09 23:48:03 +0200
4854 Fix SPARC spinlock implementation to ensure correctness if the CPU is
4855 being run in a non-TSO coherency mode, as some non-Solaris kernels do
4861 Author: Noah Misch <noah@leadboat.com>
4862 Branch: master [894459e59] 2015-01-07 22:35:44 -0500
4863 Branch: REL9_4_STABLE [83fb1ca5c] 2015-01-07 22:36:35 -0500
4864 Branch: REL9_3_STABLE [1a366d51e] 2015-01-07 22:40:40 -0500
4865 Branch: REL9_2_STABLE [5ca4e444c] 2015-01-07 22:41:49 -0500
4866 Branch: REL9_1_STABLE [8dc83104e] 2015-01-07 22:42:42 -0500
4867 Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
4872 Warn if macOS's <function>setlocale()</> starts an unwanted extra
4873 thread inside the postmaster (Noah Misch)
4878 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4879 Branch: REL9_3_STABLE [08cd4d9a6] 2014-11-25 17:39:00 +0200
4880 Branch: REL9_2_STABLE [9b468bcec] 2014-11-25 17:39:04 +0200
4881 Branch: REL9_1_STABLE [95be34362] 2014-11-25 17:39:07 +0200
4882 Branch: REL9_0_STABLE [9880fea4f] 2014-11-25 17:39:09 +0200
4887 Fix processing of repeated <literal>dbname</> parameters
4888 in <function>PQconnectdbParams()</> (Alex Shulgin)
4892 Unexpected behavior ensued if the first occurrence
4893 of <literal>dbname</> contained a connection string or URI to be
4899 Author: Tom Lane <tgl@sss.pgh.pa.us>
4900 Branch: REL9_3_STABLE [52ef33f72] 2014-10-22 18:41:51 -0400
4901 Branch: REL9_2_STABLE [6fa31d8d1] 2014-10-22 18:41:54 -0400
4902 Branch: REL9_1_STABLE [98144378c] 2014-10-22 18:41:57 -0400
4903 Branch: REL9_0_STABLE [ac6e87537] 2014-10-22 18:42:01 -0400
4908 Ensure that <application>libpq</> reports a suitable error message on
4909 unexpected socket EOF (Marko Tiikkaja, Tom Lane)
4913 Depending on kernel behavior, <application>libpq</> might return an
4914 empty error string rather than something useful when the server
4915 unexpectedly closed the socket.
4920 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4921 Branch: REL9_3_STABLE [1325b239b] 2014-10-29 14:40:47 +0200
4922 Branch: REL9_2_STABLE [1a27fbd07] 2014-10-29 14:39:10 +0200
4923 Branch: REL9_1_STABLE [8f7bd8e91] 2014-10-29 14:36:19 +0200
4924 Branch: REL9_0_STABLE [49ef4eba2] 2014-10-29 14:35:39 +0200
4929 Clear any old error message during <function>PQreset()</>
4930 (Heikki Linnakangas)
4934 If <function>PQreset()</> is called repeatedly, and the connection
4935 cannot be re-established, error messages from the failed connection
4936 attempts kept accumulating in the <structname>PGconn</>'s error
4942 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4943 Branch: REL9_3_STABLE [d3b162a3d] 2014-11-25 14:10:29 +0200
4944 Branch: REL9_2_STABLE [abcab2a64] 2014-11-25 14:10:43 +0200
4945 Branch: REL9_1_STABLE [5053ad206] 2014-11-25 14:10:48 +0200
4946 Branch: REL9_0_STABLE [1f3517039] 2014-11-25 14:10:54 +0200
4951 Properly handle out-of-memory conditions while parsing connection
4952 options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
4957 Author: Tom Lane <tgl@sss.pgh.pa.us>
4958 Branch: REL9_3_STABLE [d3cfe20c6] 2014-10-06 21:23:35 -0400
4959 Branch: REL9_2_STABLE [b513205bc] 2014-10-06 21:23:39 -0400
4960 Branch: REL9_1_STABLE [037b912ec] 2014-10-06 21:23:45 -0400
4961 Branch: REL9_0_STABLE [d9a1e9de5] 2014-10-06 21:23:50 -0400
4966 Fix array overrun in <application>ecpg</>'s version
4967 of <function>ParseDateTime()</> (Michael Paquier)
4972 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4973 Branch: REL9_3_STABLE [2df66f01a] 2014-12-05 14:31:51 +0200
4974 Branch: REL9_2_STABLE [2b53d583d] 2014-12-05 14:31:45 +0200
4975 Branch: REL9_1_STABLE [729202754] 2014-12-05 14:31:37 +0200
4976 Branch: REL9_0_STABLE [d67be559e] 2014-12-05 14:30:55 +0200
4981 In <application>initdb</>, give a clearer error message if a password
4982 file is specified but is empty (Mats Erik Andersson)
4987 Author: Tom Lane <tgl@sss.pgh.pa.us>
4988 Branch: REL9_3_STABLE [b0fd5c552] 2014-09-08 16:09:52 -0400
4989 Branch: REL9_2_STABLE [886b58b47] 2014-09-08 16:09:56 -0400
4990 Branch: REL9_1_STABLE [440fcc568] 2014-09-08 16:10:01 -0400
4991 Branch: REL9_0_STABLE [44c518328] 2014-09-08 16:10:05 -0400
4996 Fix <application>psql</>'s <command>\s</> command to work nicely with
4997 libedit, and add pager support (Stepan Rutz, Tom Lane)
5001 When using libedit rather than readline, <command>\s</> printed the
5002 command history in a fairly unreadable encoded format, and on recent
5003 libedit versions might fail altogether. Fix that by printing the
5004 history ourselves rather than having the library do it. A pleasant
5005 side-effect is that the pager is used if appropriate.
5009 This patch also fixes a bug that caused newline encoding to be applied
5010 inconsistently when saving the command history with libedit.
5011 Multiline history entries written by older <application>psql</>
5012 versions will be read cleanly with this patch, but perhaps not
5013 vice versa, depending on the exact libedit versions involved.
5018 Author: Tom Lane <tgl@sss.pgh.pa.us>
5019 Branch: master [28551797a] 2014-12-31 12:18:50 -0500
5020 Branch: REL9_4_STABLE [c35249939] 2014-12-31 12:16:57 -0500
5021 Branch: REL9_3_STABLE [7582cce56] 2014-12-31 12:17:00 -0500
5022 Branch: REL9_2_STABLE [64c506535] 2014-12-31 12:17:04 -0500
5023 Branch: REL9_1_STABLE [1773e0702] 2014-12-31 12:17:08 -0500
5024 Branch: REL9_0_STABLE [2600e4436] 2014-12-31 12:17:12 -0500
5029 Improve consistency of parsing of <application>psql</>'s special
5030 variables (Tom Lane)
5034 Allow variant spellings of <literal>on</> and <literal>off</> (such
5035 as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
5036 and <literal>ON_ERROR_ROLLBACK</>. Report a warning for unrecognized
5037 values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
5038 <literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
5039 <literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>. Recognize
5040 all values for all these variables case-insensitively; previously
5041 there was a mishmash of case-sensitive and case-insensitive behaviors.
5046 Author: Fujii Masao <fujii@postgresql.org>
5047 Branch: REL9_3_STABLE [4b1953079] 2014-11-28 02:44:40 +0900
5052 Make <application>psql</>'s <command>\watch</> command display
5053 nulls as specified by <command>\pset null</> (Fujii Masao)
5058 Author: Stephen Frost <sfrost@snowman.net>
5059 Branch: REL9_3_STABLE [7ec399094] 2014-09-12 11:24:28 -0400
5060 Branch: REL9_2_STABLE [5d63f2159] 2014-09-12 11:24:32 -0400
5061 Branch: REL9_1_STABLE [4d96e93cb] 2014-09-12 11:24:36 -0400
5062 Branch: REL9_0_STABLE [1f89fc218] 2014-09-12 11:24:39 -0400
5067 Fix <application>psql</>'s expanded-mode display to work
5068 consistently when using <literal>border</> = 3
5069 and <literal>linestyle</> = <literal>ascii</> or <literal>unicode</>
5075 Author: Tom Lane <tgl@sss.pgh.pa.us>
5076 Branch: master [adfc157dd] 2015-01-05 19:27:04 -0500
5077 Branch: REL9_4_STABLE [c99e41f68] 2015-01-05 19:27:06 -0500
5078 Branch: REL9_3_STABLE [bb1e2426b] 2015-01-05 19:27:09 -0500
5083 Fix <application>pg_dump</> to handle comments on event triggers
5084 without failing (Tom Lane)
5089 Author: Kevin Grittner <kgrittn@postgresql.org>
5090 Branch: master [cff1bd2a3] 2015-01-30 08:57:24 -0600
5091 Branch: REL9_4_STABLE [cb0168528] 2015-01-30 08:57:53 -0600
5092 Branch: REL9_3_STABLE [cc609c46f] 2015-01-30 09:01:36 -0600
5097 Allow parallel <application>pg_dump</> to
5098 use <option>--serializable-deferrable</> (Kevin Grittner)
5103 Author: Tom Lane <tgl@sss.pgh.pa.us>
5104 Branch: REL9_3_STABLE [51fc61334] 2014-07-25 19:48:48 -0400
5105 Branch: REL9_2_STABLE [a6c567437] 2014-07-25 19:48:51 -0400
5106 Branch: REL9_1_STABLE [40c333c39] 2014-07-25 19:48:54 -0400
5111 Improve performance of <application>pg_dump</> when the database
5112 contains many instances of multiple dependency paths between the same
5113 two objects (Tom Lane)
5118 Author: Tom Lane <tgl@sss.pgh.pa.us>
5119 Branch: REL9_3_STABLE [9fc887121] 2014-11-13 18:19:32 -0500
5120 Branch: REL9_2_STABLE [3c5ce5102] 2014-11-13 18:19:35 -0500
5125 Fix <application>pg_dumpall</> to restore its ability to dump from
5126 pre-8.1 servers (Gilles Darold)
5131 Author: Robert Haas <rhaas@postgresql.org>
5132 Branch: REL9_3_STABLE [d72ecc91c] 2014-09-26 11:23:43 -0400
5133 Branch: REL9_2_STABLE [a97c8c393] 2014-09-26 11:25:57 -0400
5134 Branch: REL9_1_STABLE [d1844c21b] 2014-09-26 11:36:25 -0400
5135 Branch: REL9_0_STABLE [bbe3c069a] 2014-09-26 11:43:56 -0400
5140 Fix possible deadlock during parallel restore of a schema-only dump
5141 (Robert Haas, Tom Lane)
5146 Author: Tom Lane <tgl@sss.pgh.pa.us>
5147 Branch: REL9_3_STABLE [9a540c1ef] 2014-10-17 12:49:06 -0400
5148 Branch: REL9_2_STABLE [787e20bd4] 2014-10-17 12:49:09 -0400
5149 Branch: REL9_1_STABLE [0c9391e52] 2014-10-17 12:49:11 -0400
5150 Branch: REL9_0_STABLE [31021e7ba] 2014-10-17 12:49:15 -0400
5155 Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
5156 composite type (Rushabh Lathia)
5161 Author: Andres Freund <andres@anarazel.de>
5162 Branch: REL9_3_STABLE [26a4e0ed7] 2014-11-15 01:21:11 +0100
5167 Fix failure to fsync tables in nondefault tablespaces
5168 during <application>pg_upgrade</> (Abhijit Menon-Sen, Andres Freund)
5172 With an operating system crash and some bad luck, this could result in
5173 data loss during an upgrade.
5178 Author: Bruce Momjian <bruce@momjian.us>
5179 Branch: REL9_3_STABLE [fca9f349b] 2014-08-07 14:56:13 -0400
5184 In <application>pg_upgrade</>, cope with cases where the new cluster
5185 creates a TOAST table for a table that didn't previously have one
5190 Previously this could result in failures due to OID conflicts.
5195 Author: Bruce Momjian <bruce@momjian.us>
5196 Branch: REL9_3_STABLE [24ae44914] 2014-08-04 11:45:45 -0400
5201 In <application>pg_upgrade</>, don't try to
5202 set <literal>autovacuum_multixact_freeze_max_age</> for the old cluster
5207 This could result in failure because not all 9.3.X versions have that
5208 parameter. Fortunately, we don't actually need to set it at all.
5213 Author: Bruce Momjian <bruce@momjian.us>
5214 Branch: REL9_3_STABLE [5724f491d] 2014-09-11 18:39:46 -0400
5219 In <application>pg_upgrade</>, preserve the transaction ID epoch
5224 This oversight did not bother <productname>PostgreSQL</> proper,
5225 but could confuse some external replication tools.
5230 Author: Andres Freund <andres@anarazel.de>
5231 Branch: master [2c0a48589] 2015-01-03 20:54:12 +0100
5232 Branch: REL9_4_STABLE [90e4a2bf9] 2015-01-03 20:54:13 +0100
5233 Branch: REL9_3_STABLE [f6cea4502] 2015-01-03 20:54:13 +0100
5234 Branch: REL9_2_STABLE [f961ad479] 2015-01-03 20:54:13 +0100
5235 Branch: REL9_1_STABLE [2a0bfa4d6] 2015-01-03 20:54:13 +0100
5240 Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
5241 being archived again when the standby is promoted (Andres Freund)
5246 Author: Fujii Masao <fujii@postgresql.org>
5247 Branch: REL9_3_STABLE [9747a9898] 2014-08-02 15:19:45 +0900
5252 Fix memory leak in <application>pg_receivexlog</> (Fujii Masao)
5257 Author: Fujii Masao <fujii@postgresql.org>
5258 Branch: REL9_3_STABLE [39217ce41] 2014-08-02 14:59:10 +0900
5263 Fix unintended suppression of <application>pg_receivexlog</> verbose
5264 messages (Fujii Masao)
5269 Author: Tom Lane <tgl@sss.pgh.pa.us>
5270 Branch: REL9_3_STABLE [9474c9d81] 2014-09-19 13:19:02 -0400
5271 Branch: REL9_2_STABLE [5ff8c2d7d] 2014-09-19 13:19:05 -0400
5276 Fix failure of <filename>contrib/auto_explain</> to print per-node
5277 timing information when doing <command>EXPLAIN ANALYZE</> (Tom Lane)
5282 Author: Tom Lane <tgl@sss.pgh.pa.us>
5283 Branch: REL9_3_STABLE [0ad403c98] 2014-08-28 18:21:14 -0400
5284 Branch: REL9_2_STABLE [f3998521f] 2014-08-28 18:21:17 -0400
5285 Branch: REL9_1_STABLE [9807c8220] 2014-08-28 18:21:20 -0400
5290 Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
5296 Author: Tom Lane <tgl@sss.pgh.pa.us>
5297 Branch: REL9_3_STABLE [f44290b7b] 2014-11-04 16:54:59 -0500
5302 Avoid integer overflow and buffer overrun
5303 in <filename>contrib/hstore</>'s <function>hstore_to_json()</>
5304 (Heikki Linnakangas)
5309 Author: Andrew Dunstan <andrew@dunslane.net>
5310 Branch: REL9_3_STABLE [55c880797] 2014-12-01 11:44:48 -0500
5315 Fix recognition of numbers in <function>hstore_to_json_loose()</>,
5316 so that JSON numbers and strings are correctly distinguished
5322 Author: Tom Lane <tgl@sss.pgh.pa.us>
5323 Branch: REL9_3_STABLE [f59c8eff7] 2014-07-22 11:45:53 -0400
5324 Branch: REL9_2_STABLE [810f0d2a2] 2014-07-22 11:45:57 -0400
5325 Branch: REL9_1_STABLE [3c5232ae8] 2014-07-22 11:46:00 -0400
5326 Branch: REL9_0_STABLE [9dc2a3fd0] 2014-07-22 11:46:04 -0400
5331 Fix block number checking
5332 in <filename>contrib/pageinspect</>'s <function>get_raw_page()</>
5337 The incorrect checking logic could prevent access to some pages in
5338 non-main relation forks.
5343 Author: Tom Lane <tgl@sss.pgh.pa.us>
5344 Branch: REL9_3_STABLE [419de696a] 2014-11-11 17:22:38 -0500
5345 Branch: REL9_2_STABLE [4a9710e6e] 2014-11-11 17:22:44 -0500
5346 Branch: REL9_1_STABLE [4ddd9e72f] 2014-11-11 17:22:51 -0500
5347 Branch: REL9_0_STABLE [ef5a3b957] 2014-11-11 17:22:58 -0500
5352 Fix <filename>contrib/pgcrypto</>'s <function>pgp_sym_decrypt()</>
5353 to not fail on messages whose length is 6 less than a power of 2
5359 Author: Robert Haas <rhaas@postgresql.org>
5360 Branch: REL9_3_STABLE [8cf825974] 2014-11-19 12:14:22 -0500
5361 Branch: REL9_2_STABLE [57ce74661] 2014-11-19 12:20:47 -0500
5362 Branch: REL9_1_STABLE [a855c90a7] 2014-11-19 12:26:06 -0500
5367 Fix file descriptor leak in <filename>contrib/pg_test_fsync</>
5372 This could cause failure to remove temporary files on Windows.
5377 Author: Tom Lane <tgl@sss.pgh.pa.us>
5378 Branch: master [37507962c] 2015-01-29 20:18:33 -0500
5379 Branch: REL9_4_STABLE [202621d04] 2015-01-29 20:18:37 -0500
5380 Branch: REL9_3_STABLE [53ae24692] 2015-01-29 20:18:40 -0500
5381 Branch: REL9_2_STABLE [66cc74680] 2015-01-29 20:18:42 -0500
5382 Branch: REL9_1_STABLE [290c2daad] 2015-01-29 20:18:44 -0500
5383 Branch: REL9_0_STABLE [dc9a506e6] 2015-01-29 20:18:46 -0500
5388 Handle unexpected query results, especially NULLs, safely in
5389 <filename>contrib/tablefunc</>'s <function>connectby()</>
5394 <function>connectby()</> previously crashed if it encountered a NULL
5395 key value. It now prints that row but doesn't recurse further.
5400 Author: Tom Lane <tgl@sss.pgh.pa.us>
5401 Branch: REL9_3_STABLE [c393847a1] 2014-11-27 11:12:51 -0500
5402 Branch: REL9_2_STABLE [a1cd04cd0] 2014-11-27 11:12:55 -0500
5403 Branch: REL9_1_STABLE [168636a99] 2014-11-27 11:12:59 -0500
5404 Branch: REL9_0_STABLE [6a694bbab] 2014-11-27 11:13:03 -0500
5409 Avoid a possible crash in <filename>contrib/xml2</>'s
5410 <function>xslt_process()</> (Mark Simonetti)
5414 <application>libxslt</> seems to have an undocumented dependency on
5415 the order in which resources are freed; reorder our calls to avoid a
5421 Author: Tom Lane <tgl@sss.pgh.pa.us>
5422 Branch: REL9_3_STABLE [0247935c7] 2014-11-05 11:34:19 -0500
5423 Branch: REL9_2_STABLE [0ef754cad] 2014-11-05 11:34:22 -0500
5424 Branch: REL9_1_STABLE [7225abf00] 2014-11-05 11:34:25 -0500
5429 Mark some <filename>contrib</> I/O functions with correct volatility
5430 properties (Tom Lane)
5434 The previous over-conservative marking was immaterial in normal use,
5435 but could cause optimization problems or rejection of valid index
5436 expression definitions. Since the consequences are not large, we've
5437 just adjusted the function definitions in the extension modules'
5438 scripts, without changing version numbers.
5443 Author: Tom Lane <tgl@sss.pgh.pa.us>
5444 Branch: master [a59ee8819] 2015-01-30 13:05:30 -0500
5445 Branch: REL9_4_STABLE [70da7aeba] 2015-01-30 13:04:59 -0500
5446 Branch: REL9_3_STABLE [f08cf8ad9] 2015-01-30 13:05:01 -0500
5447 Branch: REL9_2_STABLE [a97dfdfd9] 2015-01-30 13:05:04 -0500
5448 Branch: REL9_1_STABLE [8f51c432c] 2015-01-30 13:05:07 -0500
5449 Branch: REL9_0_STABLE [7c41a32b3] 2015-01-30 13:05:09 -0500
5450 Author: Tom Lane <tgl@sss.pgh.pa.us>
5451 Branch: REL9_3_STABLE [8824bae87] 2014-11-18 13:28:13 -0500
5452 Author: Robert Haas <rhaas@postgresql.org>
5453 Branch: master [0b49642b9] 2015-01-15 09:26:03 -0500
5454 Branch: REL9_4_STABLE [7b65f194e] 2015-01-15 09:29:41 -0500
5455 Branch: REL9_3_STABLE [ebbef4f39] 2015-01-15 09:29:55 -0500
5456 Branch: REL9_2_STABLE [d452bfd1b] 2015-01-15 09:42:21 -0500
5457 Branch: REL9_1_STABLE [151fb75b0] 2015-01-15 09:42:33 -0500
5458 Branch: REL9_0_STABLE [0a67c0018] 2015-01-15 09:42:47 -0500
5459 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5460 Branch: master [e37d474f9] 2015-01-13 14:33:05 +0200
5461 Branch: REL9_4_STABLE [4ebb3494e] 2015-01-13 16:01:04 +0200
5462 Author: Andres Freund <andres@anarazel.de>
5463 Branch: master [8cadeb792] 2015-01-04 15:44:49 +0100
5464 Branch: REL9_4_STABLE [7ced1b6c5] 2015-01-04 15:52:52 +0100
5465 Branch: REL9_3_STABLE [a68b8aec7] 2015-01-04 15:53:08 +0100
5466 Branch: REL9_2_STABLE [6f9b84a40] 2015-01-04 15:55:00 +0100
5467 Author: Andres Freund <andres@anarazel.de>
5468 Branch: master [58bc4747b] 2015-01-04 15:35:46 +0100
5469 Branch: REL9_4_STABLE [2d8411a0a] 2015-01-04 15:35:46 +0100
5470 Branch: REL9_3_STABLE [d33f36f16] 2015-01-04 15:35:47 +0100
5471 Branch: REL9_2_STABLE [029e41afd] 2015-01-04 15:35:47 +0100
5472 Branch: REL9_1_STABLE [39cdf365a] 2015-01-04 15:35:47 +0100
5473 Branch: REL9_0_STABLE [17797e18d] 2015-01-04 15:35:48 +0100
5474 Author: Andres Freund <andres@anarazel.de>
5475 Branch: master [0398ece4c] 2015-01-04 14:36:21 +0100
5476 Branch: REL9_4_STABLE [ff7d46b85] 2015-01-04 14:36:21 +0100
5477 Branch: REL9_3_STABLE [ec14f1601] 2015-01-04 14:36:22 +0100
5478 Branch: REL9_2_STABLE [f4060db11] 2015-01-04 14:36:22 +0100
5479 Author: Tatsuo Ishii <ishii@postgresql.org>
5480 Branch: master [3b5a89c48] 2014-12-30 20:33:01 +0900
5481 Branch: REL9_4_STABLE [458e8bc65] 2014-12-30 20:27:26 +0900
5482 Branch: REL9_3_STABLE [ed0e03283] 2014-12-30 20:20:56 +0900
5483 Branch: REL9_2_STABLE [4db7eaae0] 2014-12-30 19:59:26 +0900
5484 Branch: REL9_1_STABLE [4c136b0b6] 2014-12-30 19:48:53 +0900
5485 Branch: REL9_0_STABLE [9b74f3574] 2014-12-30 19:37:55 +0900
5486 Author: Tom Lane <tgl@sss.pgh.pa.us>
5487 Branch: master [66709133c] 2014-12-16 15:35:33 -0500
5488 Branch: REL9_4_STABLE [383d224a0] 2014-12-16 15:35:36 -0500
5489 Branch: REL9_3_STABLE [53960e7eb] 2014-12-16 15:35:40 -0500
5490 Branch: REL9_2_STABLE [e92c67ddc] 2014-12-16 15:35:43 -0500
5491 Branch: REL9_1_STABLE [5c784d96a] 2014-12-16 15:35:46 -0500
5492 Branch: REL9_0_STABLE [a2969bd72] 2014-12-16 15:35:49 -0500
5493 Author: Tom Lane <tgl@sss.pgh.pa.us>
5494 Branch: master [d38e8d30c] 2014-12-16 13:31:42 -0500
5495 Branch: REL9_4_STABLE [6c75384ee] 2014-12-16 13:31:57 -0500
5496 Branch: REL9_3_STABLE [3b750ec15] 2014-12-16 13:32:02 -0500
5497 Branch: REL9_2_STABLE [5b2c8f04a] 2014-12-16 13:32:15 -0500
5498 Branch: REL9_1_STABLE [926da211a] 2014-12-16 13:32:25 -0500
5499 Branch: REL9_0_STABLE [961df1853] 2014-12-16 13:32:38 -0500
5500 Author: Tom Lane <tgl@sss.pgh.pa.us>
5501 Branch: master [586dd5d6a] 2015-01-24 13:05:42 -0500
5502 Branch: REL9_4_STABLE [d51d4ff31] 2015-01-24 13:05:45 -0500
5503 Branch: REL9_3_STABLE [7240f9200] 2015-01-24 13:05:49 -0500
5504 Branch: REL9_2_STABLE [502e5f9c3] 2015-01-24 13:05:53 -0500
5505 Branch: REL9_1_STABLE [b00a08859] 2015-01-24 13:05:56 -0500
5506 Branch: REL9_0_STABLE [3a3ee655c] 2015-01-24 13:05:58 -0500
5511 Numerous cleanups of warnings from Coverity static code analyzer
5512 (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
5516 These changes are mostly cosmetic but in some cases fix corner-case
5517 bugs, for example a crash rather than a proper error report after an
5518 out-of-memory failure. None are believed to represent security
5524 Author: Robert Haas <rhaas@postgresql.org>
5525 Branch: REL9_3_STABLE [05c0059b3] 2014-07-30 12:10:20 -0400
5530 Fix setup of background workers in EXEC_BACKEND builds, eg Windows
5536 Author: Noah Misch <noah@leadboat.com>
5537 Branch: REL9_3_STABLE [07115248f] 2014-07-22 11:01:41 -0400
5538 Branch: REL9_2_STABLE [cec0c2182] 2014-07-22 11:01:51 -0400
5539 Branch: REL9_1_STABLE [81af4185a] 2014-07-22 11:02:00 -0400
5540 Branch: REL9_0_STABLE [4c6d0abde] 2014-07-22 11:02:25 -0400
5545 Detect incompatible OpenLDAP versions during build (Noah Misch)
5549 With OpenLDAP versions 2.4.24 through 2.4.31,
5550 inclusive, <productname>PostgreSQL</> backends can crash at exit.
5551 Raise a warning during <application>configure</> based on the
5552 compile-time OpenLDAP version number, and test the crashing scenario
5553 in the <filename>contrib/dblink</> regression test.
5558 Author: Noah Misch <noah@leadboat.com>
5559 Branch: REL9_3_STABLE [318fe2321] 2014-08-18 23:01:04 -0400
5560 Branch: REL9_2_STABLE [ebd4d9cdd] 2014-08-18 23:01:09 -0400
5561 Branch: REL9_1_STABLE [ba72fc054] 2014-08-18 23:01:13 -0400
5562 Branch: REL9_0_STABLE [e6841c4d6] 2014-08-18 23:01:23 -0400
5567 In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
5568 with execute permissions (Noah Misch)
5573 Author: Tom Lane <tgl@sss.pgh.pa.us>
5574 Branch: master [aa719391d] 2015-01-19 23:44:19 -0500
5575 Branch: REL9_4_STABLE [3de9f22ac] 2015-01-19 23:44:22 -0500
5576 Branch: REL9_3_STABLE [1681e2f74] 2015-01-19 23:44:24 -0500
5577 Branch: REL9_2_STABLE [89b6a19e1] 2015-01-19 23:44:28 -0500
5578 Branch: REL9_1_STABLE [f4f522deb] 2015-01-19 23:44:30 -0500
5579 Branch: REL9_0_STABLE [338ff75fc] 2015-01-19 23:44:33 -0500
5584 Make <application>pg_regress</> remove any temporary installation it
5585 created upon successful exit (Tom Lane)
5589 This results in a very substantial reduction in disk space usage
5590 during <literal>make check-world</>, since that sequence involves
5591 creation of numerous temporary installations.
5596 Author: Tom Lane <tgl@sss.pgh.pa.us>
5597 Branch: REL9_3_STABLE [137e7c164] 2014-10-16 15:22:17 -0400
5598 Branch: REL9_2_STABLE [7c67b9365] 2014-10-16 15:22:20 -0400
5599 Branch: REL9_1_STABLE [2784b68b3] 2014-10-16 15:22:23 -0400
5600 Branch: REL9_0_STABLE [870a980aa] 2014-10-16 15:22:26 -0400
5605 Support time zone abbreviations that change UTC offset from time to
5610 Previously, <productname>PostgreSQL</> assumed that the UTC offset
5611 associated with a time zone abbreviation (such as <literal>EST</>)
5612 never changes in the usage of any particular locale. However this
5613 assumption fails in the real world, so introduce the ability for a
5614 zone abbreviation to represent a UTC offset that sometimes changes.
5615 Update the zone abbreviation definition files to make use of this
5616 feature in timezone locales that have changed the UTC offset of their
5617 abbreviations since 1970 (according to the IANA timezone database).
5618 In such timezones, <productname>PostgreSQL</> will now associate the
5619 correct UTC offset with the abbreviation depending on the given date.
5624 Author: Tom Lane <tgl@sss.pgh.pa.us>
5625 Branch: REL9_3_STABLE [9701f238b] 2014-10-03 17:44:56 -0400
5626 Branch: REL9_2_STABLE [d7d546bbc] 2014-10-03 17:44:59 -0400
5627 Branch: REL9_1_STABLE [252af79d9] 2014-10-03 17:45:03 -0400
5628 Branch: REL9_0_STABLE [cc7bad30c] 2014-10-03 17:45:07 -0400
5629 Author: Tom Lane <tgl@sss.pgh.pa.us>
5630 Branch: REL9_3_STABLE [0190f0a76] 2014-12-24 16:35:40 -0500
5631 Branch: REL9_2_STABLE [5c8665892] 2014-12-24 16:35:44 -0500
5632 Branch: REL9_1_STABLE [310597e31] 2014-12-24 16:35:48 -0500
5633 Branch: REL9_0_STABLE [8b70023af] 2014-12-24 16:35:54 -0500
5638 Update time zone abbreviations lists (Tom Lane)
5642 Add CST (China Standard Time) to our lists.
5643 Remove references to ADT as <quote>Arabia Daylight Time</>, an
5644 abbreviation that's been out of use since 2007; therefore, claiming
5645 there is a conflict with <quote>Atlantic Daylight Time</> doesn't seem
5647 Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
5648 (Fiji); we didn't even have them on the proper side of the date line.
5653 Author: Tom Lane <tgl@sss.pgh.pa.us>
5654 Branch: REL9_3_STABLE [8470cd473] 2015-01-30 22:46:05 -0500
5655 Branch: REL9_2_STABLE [c9048d353] 2015-01-30 22:46:12 -0500
5656 Branch: REL9_1_STABLE [cb24cd3f4] 2015-01-30 22:46:17 -0500
5657 Branch: REL9_0_STABLE [3553d9c6e] 2015-01-30 22:46:22 -0500
5658 Author: Tom Lane <tgl@sss.pgh.pa.us>
5659 Branch: REL9_3_STABLE [ab45d907b] 2014-11-17 12:08:25 -0500
5660 Branch: REL9_2_STABLE [b1e996035] 2014-11-17 12:08:32 -0500
5661 Branch: REL9_1_STABLE [b96c47a3d] 2014-11-17 12:08:39 -0500
5662 Branch: REL9_0_STABLE [92979576e] 2014-11-17 12:08:46 -0500
5663 Author: Tom Lane <tgl@sss.pgh.pa.us>
5664 Branch: REL9_3_STABLE [c66199151] 2014-10-04 14:18:33 -0400
5665 Branch: REL9_2_STABLE [8f75d7a25] 2014-10-04 14:18:36 -0400
5666 Branch: REL9_1_STABLE [745723c9e] 2014-10-04 14:18:39 -0400
5667 Branch: REL9_0_STABLE [b6391f587] 2014-10-04 14:18:43 -0400
5672 Update time zone data files to <application>tzdata</> release 2015a.
5676 The IANA timezone database has adopted abbreviations of the form
5677 <literal>A<replaceable>x</>ST</literal>/<literal>A<replaceable>x</>DT</literal>
5678 for all Australian time zones, reflecting what they believe to be
5679 current majority practice Down Under. These names do not conflict
5680 with usage elsewhere (other than ACST for Acre Summer Time, which has
5681 been in disuse since 1994). Accordingly, adopt these names into
5682 our <quote>Default</> timezone abbreviation set.
5683 The <quote>Australia</> abbreviation set now contains only CST, EAST,
5684 EST, SAST, SAT, and WST, all of which are thought to be mostly
5685 historical usage. Note that SAST has also been changed to be South
5686 Africa Standard Time in the <quote>Default</> abbreviation set.
5690 Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
5691 (Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were
5692 DST law changes in Chile, Mexico, the Turks & Caicos Islands
5693 (America/Grand_Turk), and Fiji. There is a new zone
5694 Pacific/Bougainville for portions of Papua New Guinea. Also, numerous
5695 corrections for historical (pre-1970) time zone data.
5704 <sect1 id="release-9-3-5">
5705 <title>Release 9.3.5</title>
5708 <title>Release Date</title>
5709 <simpara>2014-07-24</simpara>
5713 This release contains a variety of fixes from 9.3.4.
5714 For information about new features in the 9.3 major release, see
5715 <xref linkend="release-9-3">.
5719 <title>Migration to Version 9.3.5</title>
5722 A dump/restore is not required for those running 9.3.X.
5726 However, this release corrects a logic error
5727 in <application>pg_upgrade</>, as well as an index corruption problem in
5728 some GiST indexes. See the first two changelog entries below to find out
5729 whether your installation has been affected and what steps you should take
5734 Also, if you are upgrading from a version earlier than 9.3.4,
5735 see <xref linkend="release-9-3-4">.
5741 <title>Changes</title>
5746 Author: Bruce Momjian <bruce@momjian.us>
5747 Branch: master [0f7482733] 2014-06-24 16:11:06 -0400
5748 Branch: REL9_4_STABLE [dd5369047] 2014-06-24 16:11:06 -0400
5749 Branch: REL9_3_STABLE [cc5841809] 2014-06-24 16:11:06 -0400
5754 In <application>pg_upgrade</>, remove <filename>pg_multixact</> files
5755 left behind by <application>initdb</> (Bruce Momjian)
5759 If you used a pre-9.3.5 version of <application>pg_upgrade</> to
5760 upgrade a database cluster to 9.3, it might have left behind a file
5761 <filename>$PGDATA/pg_multixact/offsets/0000</> that should not be
5762 there and will eventually cause problems in <command>VACUUM</>.
5763 <emphasis>However, in common cases this file is actually valid and
5764 must not be removed.</emphasis>
5765 To determine whether your installation has this problem, run this
5766 query as superuser, in any database of the cluster:
5768 WITH list(file) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets'))
5769 SELECT EXISTS (SELECT * FROM list WHERE file = '0000') AND
5770 NOT EXISTS (SELECT * FROM list WHERE file = '0001') AND
5771 NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF') AND
5772 EXISTS (SELECT * FROM list WHERE file != '0000')
5773 AS file_0000_removal_required;
5775 If this query returns <literal>t</>, manually remove the file
5776 <filename>$PGDATA/pg_multixact/offsets/0000</>.
5777 Do nothing if the query returns <literal>f</>.
5782 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5783 Branch: master Release: REL9_4_BR [540ac7cea] 2014-05-13 15:15:13 +0300
5784 Branch: REL9_3_STABLE [d5b912c90] 2014-05-13 15:27:14 +0300
5785 Branch: REL9_2_STABLE [0d8d0d027] 2014-05-13 15:27:21 +0300
5786 Branch: REL9_1_STABLE [1913d0f28] 2014-05-13 15:27:28 +0300
5787 Branch: REL9_0_STABLE [c87c43f08] 2014-05-13 15:27:36 +0300
5788 Branch: REL8_4_STABLE [e31d77c96] 2014-05-13 15:27:43 +0300
5793 Correctly initialize padding bytes in <filename>contrib/btree_gist</>
5794 indexes on <type>bit</> columns (Heikki Linnakangas)
5798 This error could result in incorrect query results due to values that
5799 should compare equal not being seen as equal.
5800 Users with GiST indexes on <type>bit</> or <type>bit varying</>
5801 columns should <command>REINDEX</> those indexes after installing this
5807 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5808 Branch: master Release: REL9_4_BR [4f7bb4b2a] 2014-05-08 14:50:22 +0300
5809 Branch: REL9_3_STABLE [34572920c] 2014-05-08 14:43:04 +0300
5810 Branch: REL9_2_STABLE [31633f992] 2014-05-08 14:43:39 +0300
5811 Branch: REL9_1_STABLE [686a7194e] 2014-05-08 14:43:58 +0300
5812 Branch: REL9_0_STABLE [8b4efe1f3] 2014-05-08 14:44:06 +0300
5813 Branch: REL8_4_STABLE [be7830596] 2014-05-08 14:46:43 +0300
5818 Protect against torn pages when deleting GIN list pages (Heikki
5823 This fix prevents possible index corruption if a system crash occurs
5824 while the page update is being written to disk.
5829 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5830 Branch: master Release: REL9_4_BR [7ca32e255] 2014-04-08 14:51:40 +0300
5831 Branch: REL9_3_STABLE [601c01e08] 2014-04-08 14:51:49 +0300
5832 Branch: REL9_2_STABLE [02b9fd73e] 2014-04-08 14:51:56 +0300
5833 Branch: REL9_1_STABLE [ac0078c1d] 2014-04-08 14:52:01 +0300
5834 Branch: REL9_0_STABLE [d034e9b3b] 2014-04-08 14:52:07 +0300
5839 Don't clear the right-link of a GiST index page while replaying
5840 updates from WAL (Heikki Linnakangas)
5844 This error could lead to transiently wrong answers from GiST index
5845 scans performed in Hot Standby.
5850 Author: Tom Lane <tgl@sss.pgh.pa.us>
5851 Branch: master Release: REL9_4_BR [c170655cc] 2014-06-09 16:31:11 -0400
5852 Branch: REL9_3_STABLE [717c116f1] 2014-06-09 16:31:16 -0400
5853 Branch: REL9_2_STABLE [93328b2df] 2014-06-09 16:30:46 -0400
5858 Fix corner-case infinite loop during insertion into an SP-GiST text
5864 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5865 Branch: master [1264ef31a] 2014-07-16 09:19:06 +0300
5866 Branch: REL9_4_STABLE [9b3ef66af] 2014-07-16 09:20:20 +0300
5867 Branch: REL9_3_STABLE [a4867d041] 2014-07-16 09:20:31 +0300
5872 Fix incorrect answers from SP-GiST index searches
5873 with <literal>-|-</literal> (range adjacency) operator
5874 (Heikki Linnakangas)
5879 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5880 Branch: master Release: REL9_4_BR [b0b263baa] 2014-06-09 15:17:23 -0400
5881 Branch: REL9_3_STABLE [167a2535f] 2014-06-09 15:17:23 -0400
5886 Fix wraparound handling for <filename>pg_multixact/members</>
5887 (Álvaro Herrera)
5892 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5893 Branch: master [f741300c9] 2014-06-27 14:43:53 -0400
5894 Branch: REL9_4_STABLE [56f86bb76] 2014-06-27 14:43:52 -0400
5895 Branch: REL9_3_STABLE [9a28c3752] 2014-06-27 14:43:52 -0400
5900 Truncate <structname>pg_multixact</> during checkpoints, not
5901 during <command>VACUUM</> (Álvaro Herrera)
5905 This change ensures that <structname>pg_multixact</> segments can't be
5906 removed if they'd still be needed during WAL replay after a crash.
5911 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5912 Branch: master Release: REL9_4_BR [2a8e1ac59] 2014-04-17 17:47:50 +0300
5913 Branch: REL9_3_STABLE [95aa823eb] 2014-04-17 17:47:58 +0300
5918 Fix possible inconsistency of all-visible flags after WAL recovery
5919 (Heikki Linnakangas)
5924 Author: Tom Lane <tgl@sss.pgh.pa.us>
5925 Branch: master Release: REL9_4_BR [0f928a85e] 2014-05-05 14:43:39 -0400
5926 Branch: REL9_3_STABLE [4f4ef042f] 2014-05-05 14:43:42 -0400
5927 Branch: REL9_2_STABLE [c8fbeeb45] 2014-05-05 14:43:46 -0400
5928 Branch: REL9_1_STABLE [2f4ee3a2f] 2014-05-05 14:43:49 -0400
5929 Branch: REL9_0_STABLE [7d5b68621] 2014-05-05 14:43:52 -0400
5930 Branch: REL8_4_STABLE [3ada1fab8] 2014-05-05 14:43:55 -0400
5935 Fix possibly-incorrect cache invalidation during nested calls
5936 to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
5941 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5942 Branch: master Release: REL9_4_BR [1a917ae86] 2014-04-24 15:41:55 -0300
5943 Branch: REL9_3_STABLE [c0bd128c8] 2014-04-24 15:41:55 -0300
5948 Fix race condition when updating a tuple concurrently locked by
5949 another process (Andres Freund, Álvaro Herrera)
5954 Author: Tom Lane <tgl@sss.pgh.pa.us>
5955 Branch: REL9_3_STABLE [a2db7b7d0] 2014-06-26 10:41:59 -0700
5956 Branch: REL9_2_STABLE [0cf16686b] 2014-06-26 10:42:03 -0700
5957 Branch: REL9_1_STABLE [555d0b200] 2014-06-26 10:42:08 -0700
5962 Fix <quote>could not find pathkey item to sort</> planner failures
5963 with <literal>UNION ALL</> over subqueries reading from tables with
5964 inheritance children (Tom Lane)
5969 Author: Tom Lane <tgl@sss.pgh.pa.us>
5970 Branch: master [9e2f2d7a0] 2014-07-08 14:03:56 -0400
5971 Branch: REL9_4_STABLE [ac45aa1dd] 2014-07-08 14:03:45 -0400
5972 Branch: REL9_3_STABLE [6d36aee5b] 2014-07-08 14:03:19 -0400
5973 Branch: REL9_2_STABLE [189bd09cb] 2014-07-08 14:03:23 -0400
5974 Branch: REL9_1_STABLE [fa21a760b] 2014-07-08 14:03:26 -0400
5975 Branch: REL9_0_STABLE [2865d5952] 2014-07-08 14:03:30 -0400
5976 Branch: REL8_4_STABLE [2e7469dc8] 2014-07-08 14:03:32 -0400
5981 Don't assume a subquery's output is unique if there's a set-returning
5982 function in its targetlist (David Rowley)
5986 This oversight could lead to misoptimization of constructs
5987 like <literal>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
5993 Author: Tom Lane <tgl@sss.pgh.pa.us>
5994 Branch: master Release: REL9_4_BR [95811032d] 2014-04-29 13:12:46 -0400
5995 Branch: REL9_3_STABLE [150a44e83] 2014-04-29 13:12:29 -0400
5996 Branch: REL9_2_STABLE [0901dbab3] 2014-04-29 13:12:33 -0400
6001 Improve planner to drop constant-NULL inputs
6002 of <literal>AND</>/<literal>OR</> when possible (Tom Lane)
6006 This change fixes some cases where the more aggressive parameter
6007 substitution done by 9.2 and later can lead to a worse plan than
6008 older versions produced.
6013 Author: Tom Lane <tgl@sss.pgh.pa.us>
6014 Branch: master Release: REL9_4_BR [c7b353959] 2014-04-03 22:02:24 -0400
6015 Branch: REL9_3_STABLE [d359f71ac] 2014-04-03 22:02:27 -0400
6020 Ensure that the planner sees equivalent <literal>VARIADIC</> and
6021 non-<literal>VARIADIC</> function calls as equivalent (Tom Lane)
6025 This bug could for example result in failure to use expression indexes
6026 involving variadic functions. It might be necessary to re-create such
6027 indexes, and/or re-create views including variadic function calls that
6028 should match the indexes, for the fix to be effective for existing 9.3
6034 Author: Tom Lane <tgl@sss.pgh.pa.us>
6035 Branch: master [57d8c1270] 2014-06-24 21:22:40 -0700
6036 Branch: REL9_4_STABLE [a331512de] 2014-06-24 21:22:43 -0700
6037 Branch: REL9_3_STABLE [a1fc36495] 2014-06-24 21:22:47 -0700
6042 Fix handling of nested <type>JSON</> objects
6043 in <function>json_populate_recordset()</> and friends
6044 (Michael Paquier, Tom Lane)
6048 A nested <type>JSON</> object could result in previous fields of the
6049 parent object not being shown in the output.
6054 Author: Tom Lane <tgl@sss.pgh.pa.us>
6055 Branch: master Release: REL9_4_BR [0ca6bda8e] 2014-05-09 12:55:31 -0400
6056 Branch: REL9_3_STABLE [13c679995] 2014-05-09 12:55:03 -0400
6057 Branch: REL9_2_STABLE [25c933c5c] 2014-05-09 12:55:06 -0400
6062 Fix identification of input type category in <function>to_json()</>
6063 and friends (Tom Lane)
6067 This is known to have led to inadequate quoting of <type>money</>
6068 fields in the <type>JSON</> result, and there may have been wrong
6069 results for other data types as well.
6074 Author: Tom Lane <tgl@sss.pgh.pa.us>
6075 Branch: master Release: REL9_4_BR [3f8c8e3c6] 2014-05-01 15:19:06 -0400
6076 Branch: REL9_3_STABLE [b72e90bc3] 2014-05-01 15:19:10 -0400
6077 Branch: REL9_2_STABLE [8c43980a1] 2014-05-01 15:19:14 -0400
6078 Branch: REL9_1_STABLE [db1fdc945] 2014-05-01 15:19:17 -0400
6079 Branch: REL9_0_STABLE [7a4f114f3] 2014-05-01 15:19:20 -0400
6080 Branch: REL8_4_STABLE [70debcf09] 2014-05-01 15:19:23 -0400
6085 Fix failure to detoast fields in composite elements of structured
6090 This corrects cases where TOAST pointers could be copied into other
6091 tables without being dereferenced. If the original data is later
6092 deleted, it would lead to errors like <quote>missing chunk number 0
6093 for toast value ...</> when the now-dangling pointer is used.
6098 Author: Tom Lane <tgl@sss.pgh.pa.us>
6099 Branch: master [d68581483] 2014-07-11 19:12:35 -0400
6100 Branch: REL9_4_STABLE [f280eff94] 2014-07-11 19:12:38 -0400
6101 Branch: REL9_3_STABLE [b77e6b959] 2014-07-11 19:12:42 -0400
6102 Branch: REL9_2_STABLE [261f954e7] 2014-07-11 19:12:45 -0400
6103 Branch: REL9_1_STABLE [c45841f9e] 2014-07-11 19:12:48 -0400
6104 Branch: REL9_0_STABLE [cd8ba91a0] 2014-07-11 19:12:51 -0400
6105 Branch: REL8_4_STABLE [a81fbcfb3] 2014-07-11 19:12:56 -0400
6110 Fix <quote>record type has not been registered</> failures with
6111 whole-row references to the output of Append plan nodes (Tom Lane)
6116 Author: Tom Lane <tgl@sss.pgh.pa.us>
6117 Branch: master Release: REL9_4_BR [04e5025be] 2014-05-07 14:25:11 -0400
6118 Branch: REL9_3_STABLE [fc58c39d4] 2014-05-07 14:25:13 -0400
6119 Branch: REL9_2_STABLE [022b5f2b2] 2014-05-07 14:25:17 -0400
6120 Branch: REL9_1_STABLE [229101db4] 2014-05-07 14:25:22 -0400
6121 Branch: REL9_0_STABLE [7f66ade71] 2014-05-07 14:25:25 -0400
6122 Branch: REL8_4_STABLE [2a527baa3] 2014-05-07 14:25:28 -0400
6127 Fix possible crash when invoking a user-defined function while
6128 rewinding a cursor (Tom Lane)
6133 Author: Tom Lane <tgl@sss.pgh.pa.us>
6134 Branch: master [45b0f3572] 2014-06-19 22:14:26 -0400
6135 Branch: REL9_4_STABLE [1044e79a0] 2014-06-19 22:13:44 -0400
6136 Branch: REL9_3_STABLE [c1f8fb9bf] 2014-06-19 22:13:47 -0400
6137 Branch: REL9_2_STABLE [b568d3836] 2014-06-19 22:13:51 -0400
6138 Branch: REL9_1_STABLE [06d5eacbc] 2014-06-19 22:13:54 -0400
6139 Branch: REL9_0_STABLE [83131e634] 2014-06-19 22:13:58 -0400
6140 Branch: REL8_4_STABLE [d297c91d4] 2014-06-19 22:14:00 -0400
6145 Fix query-lifespan memory leak while evaluating the arguments for a
6146 function in <literal>FROM</> (Tom Lane)
6151 Author: Tom Lane <tgl@sss.pgh.pa.us>
6152 Branch: master [1567e659a] 2014-07-18 13:00:27 -0400
6153 Branch: REL9_4_STABLE [4a66f0f2d] 2014-07-18 13:00:39 -0400
6154 Branch: REL9_3_STABLE [5ef588b22] 2014-07-18 13:00:43 -0400
6155 Branch: REL9_2_STABLE [a223b9e36] 2014-07-18 13:00:48 -0400
6156 Branch: REL9_1_STABLE [8a817785a] 2014-07-18 13:00:52 -0400
6157 Branch: REL9_0_STABLE [b8c24f7ab] 2014-07-18 13:00:57 -0400
6158 Branch: REL8_4_STABLE [e0a233744] 2014-07-18 13:01:04 -0400
6163 Fix session-lifespan memory leaks in regular-expression processing
6164 (Tom Lane, Arthur O'Dwyer, Greg Stark)
6169 Author: Tom Lane <tgl@sss.pgh.pa.us>
6170 Branch: master [fd90b5d57] 2014-06-10 22:48:16 -0400
6171 Branch: REL9_4_STABLE [7f9fbb842] 2014-06-10 22:48:31 -0400
6172 Branch: REL9_3_STABLE [87db9534a] 2014-06-10 22:48:39 -0400
6173 Branch: REL9_2_STABLE [802323535] 2014-06-10 22:48:45 -0400
6174 Branch: REL9_1_STABLE [62f134954] 2014-06-10 22:48:52 -0400
6175 Branch: REL9_0_STABLE [4d5ea4290] 2014-06-10 22:48:59 -0400
6176 Branch: REL8_4_STABLE [f3f40434b] 2014-06-10 22:49:08 -0400
6181 Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
6186 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6187 Branch: master [a87a7dc8b] 2014-06-24 13:27:18 +0300
6188 Branch: REL9_4_STABLE [1818ae0a7] 2014-06-24 13:31:06 +0300
6189 Branch: REL9_3_STABLE [2a7512bc7] 2014-06-24 13:31:00 +0300
6190 Branch: REL9_2_STABLE [1c9f9e888] 2014-06-24 13:30:54 +0300
6191 Branch: REL9_1_STABLE [dd1a5b09b] 2014-06-24 13:30:41 +0300
6196 Prevent foreign tables from being created with OIDS
6197 when <xref linkend="guc-default-with-oids"> is true
6203 Author: Andres Freund <andres@anarazel.de>
6204 Branch: master Release: REL9_4_BR [621a99a66] 2014-06-04 21:36:19 +0200
6205 Branch: REL9_3_STABLE [edde59db1] 2014-06-04 23:26:08 +0200
6206 Branch: REL9_2_STABLE [315442c01] 2014-06-04 23:25:52 +0200
6207 Branch: REL9_1_STABLE [6bf6e528a] 2014-06-04 23:26:30 +0200
6208 Branch: REL9_0_STABLE [037c6fb9f] 2014-06-04 23:27:10 +0200
6209 Branch: REL8_4_STABLE [80d45ae4e] 2014-06-04 23:27:38 +0200
6214 Fix liveness checks for rows that were inserted in the current
6215 transaction and then deleted by a now-rolled-back subtransaction
6220 This could cause problems (at least spurious warnings, and at worst an
6221 infinite loop) if <command>CREATE INDEX</> or <command>CLUSTER</> were
6222 done later in the same transaction.
6227 Author: Tom Lane <tgl@sss.pgh.pa.us>
6228 Branch: master Release: REL9_4_BR [d19bd29f0] 2014-04-24 13:29:48 -0400
6229 Branch: REL9_3_STABLE [12e41a5d7] 2014-04-24 13:29:56 -0400
6230 Branch: REL9_2_STABLE [ea9ac7741] 2014-04-24 13:30:00 -0400
6231 Branch: REL9_1_STABLE [70e7be264] 2014-04-24 13:30:04 -0400
6232 Branch: REL9_0_STABLE [b7a3e1173] 2014-04-24 13:30:08 -0400
6233 Branch: REL8_4_STABLE [82fbd88a7] 2014-04-24 13:30:14 -0400
6238 Clear <structname>pg_stat_activity</>.<structfield>xact_start</>
6239 during <command>PREPARE TRANSACTION</> (Andres Freund)
6243 After the <command>PREPARE</>, the originating session is no longer in
6244 a transaction, so it should not continue to display a transaction
6250 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6251 Branch: master [6bdf4b9c7] 2014-07-15 13:24:07 -0400
6252 Branch: REL9_4_STABLE [e45229bb6] 2014-07-15 13:24:07 -0400
6253 Branch: REL9_3_STABLE [12c5bbdcb] 2014-07-15 13:24:07 -0400
6254 Branch: REL9_2_STABLE [b42f09fc8] 2014-07-15 13:24:07 -0400
6255 Branch: REL9_1_STABLE [a41dc7321] 2014-07-15 13:24:07 -0400
6256 Branch: REL9_0_STABLE [bf08864b8] 2014-07-15 13:24:07 -0400
6257 Branch: REL8_4_STABLE [4b767789d] 2014-07-15 13:24:07 -0400
6262 Fix <command>REASSIGN OWNED</> to not fail for text search objects
6263 (Álvaro Herrera)
6268 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6269 Branch: master [b7e51d9c0] 2014-06-27 14:43:46 -0400
6270 Branch: REL9_4_STABLE [9eecc8a7c] 2014-06-27 14:43:46 -0400
6271 Branch: REL9_3_STABLE [e86cfc4bb] 2014-06-27 14:43:45 -0400
6276 Prevent <structname>pg_class</>.<structfield>relminmxid</> values from
6277 going backwards during <command>VACUUM FULL</> (Álvaro Herrera)
6282 Author: Tom Lane <tgl@sss.pgh.pa.us>
6283 Branch: master Release: REL9_4_BR [41de93c53] 2014-04-30 13:26:26 -0400
6284 Branch: REL9_3_STABLE [0652d77fb] 2014-04-30 13:26:29 -0400
6289 Reduce indentation in rule/view dumps to improve readability and avoid
6290 excessive whitespace (Greg Stark, Tom Lane)
6294 This change reduces the amount of indentation applied to nested
6295 constructs, including some cases that the user probably doesn't think
6296 of as nested, such as UNION lists. Previously, deeply nested
6297 constructs were printed with an amount of whitespace growing as
6298 O(N^2), which created a performance problem and even risk of
6299 out-of-memory failures. Now the indentation is reduced modulo 40,
6300 which is initially odd to look at but seems to preserve readability
6301 better than simply limiting the indentation would do.
6302 Redundant parenthesization of UNION lists has been reduced as well.
6307 Author: Tom Lane <tgl@sss.pgh.pa.us>
6308 Branch: master Release: REL9_4_BR [91e16b980] 2014-05-01 20:22:37 -0400
6309 Branch: REL9_3_STABLE [e31193d49] 2014-05-01 20:22:39 -0400
6314 Fix dumping of rules/views when subsequent addition of a column has
6315 resulted in multiple input columns matching a <literal>USING</>
6316 specification (Tom Lane)
6321 Author: Tom Lane <tgl@sss.pgh.pa.us>
6322 Branch: master [9b35ddce9] 2014-07-19 14:28:52 -0400
6323 Branch: REL9_4_STABLE [f0a497e4c] 2014-07-19 14:29:00 -0400
6324 Branch: REL9_3_STABLE [b978ab5f6] 2014-07-19 14:29:05 -0400
6329 Repair view printing for some cases involving functions
6330 in <literal>FROM</> that return a composite type containing dropped
6336 Author: Tom Lane <tgl@sss.pgh.pa.us>
6337 Branch: master Release: REL9_4_BR [5d8117e1f] 2014-04-05 18:16:08 -0400
6338 Branch: REL9_3_STABLE [21aa47d01] 2014-04-05 18:16:11 -0400
6339 Branch: REL9_2_STABLE [53463e247] 2014-04-05 18:16:14 -0400
6340 Branch: REL9_1_STABLE [093d3da1d] 2014-04-05 18:16:17 -0400
6341 Branch: REL9_0_STABLE [5c26ab659] 2014-04-05 18:16:20 -0400
6342 Branch: REL8_4_STABLE [969735cf1] 2014-04-05 18:16:24 -0400
6347 Block signals during postmaster startup (Tom Lane)
6351 This ensures that the postmaster will properly clean up after itself
6352 if, for example, it receives <systemitem>SIGINT</> while still
6358 Author: Tom Lane <tgl@sss.pgh.pa.us>
6359 Branch: master Release: REL9_4_BR [fc752505a] 2014-04-02 17:11:24 -0400
6360 Branch: REL9_3_STABLE [65183fb78] 2014-04-02 17:11:27 -0400
6361 Branch: REL9_2_STABLE [029decfec] 2014-04-02 17:11:31 -0400
6362 Branch: REL9_1_STABLE [b7a424371] 2014-04-02 17:11:34 -0400
6367 Fix client host name lookup when processing <filename>pg_hba.conf</>
6368 entries that specify host names instead of IP addresses (Tom Lane)
6372 Ensure that reverse-DNS lookup failures are reported, instead of just
6373 silently not matching such entries. Also ensure that we make only
6374 one reverse-DNS lookup attempt per connection, not one per host name
6375 entry, which is what previously happened if the lookup attempts failed.
6380 Author: Tom Lane <tgl@sss.pgh.pa.us>
6381 Branch: master Release: REL9_4_BR [b203c57bb] 2014-04-04 22:03:35 -0400
6382 Branch: REL9_3_STABLE [7d1a0f585] 2014-04-04 22:03:38 -0400
6383 Branch: REL9_2_STABLE [6d25eb314] 2014-04-04 22:03:42 -0400
6388 Allow the root user to use <literal>postgres -C variable</> and
6389 <literal>postgres --describe-config</> (MauMau)
6393 The prohibition on starting the server as root does not need to extend
6394 to these operations, and relaxing it prevents failure
6395 of <application>pg_ctl</> in some scenarios.
6400 Author: Noah Misch <noah@leadboat.com>
6401 Branch: master [be76a6d39] 2014-06-14 09:41:13 -0400
6402 Branch: REL9_4_STABLE [6583a75b2] 2014-06-14 09:41:16 -0400
6403 Branch: REL9_3_STABLE [1442b426e] 2014-06-14 09:41:17 -0400
6404 Branch: REL9_2_STABLE [453a5d91d] 2014-06-14 09:41:17 -0400
6405 Branch: REL9_1_STABLE [481831b43] 2014-06-14 09:41:18 -0400
6406 Branch: REL9_0_STABLE [5f09c583c] 2014-06-14 09:41:18 -0400
6407 Branch: REL8_4_STABLE [95cefd30e] 2014-06-14 09:41:18 -0400
6412 Secure Unix-domain sockets of temporary postmasters started during
6413 <literal>make check</> (Noah Misch)
6417 Any local user able to access the socket file could connect as the
6418 server's bootstrap superuser, then proceed to execute arbitrary code as
6419 the operating-system user running the test, as we previously noted in
6420 CVE-2014-0067. This change defends against that risk by placing the
6421 server's socket in a temporary, mode 0700 subdirectory
6422 of <filename>/tmp</>. The hazard remains however on platforms where
6423 Unix sockets are not supported, notably Windows, because then the
6424 temporary postmaster must accept local TCP connections.
6428 A useful side effect of this change is to simplify
6429 <literal>make check</> testing in builds that
6430 override <literal>DEFAULT_PGSOCKET_DIR</>. Popular non-default values
6431 like <filename>/var/run/postgresql</> are often not writable by the
6432 build user, requiring workarounds that will no longer be necessary.
6437 Author: Tom Lane <tgl@sss.pgh.pa.us>
6438 Branch: master Release: REL9_4_BR [abe075dff] 2014-04-04 23:09:35 -0400
6439 Branch: REL9_3_STABLE [84520f91c] 2014-04-04 23:09:38 -0400
6440 Branch: REL9_2_STABLE [1a496a12b] 2014-04-04 23:09:41 -0400
6441 Branch: REL9_1_STABLE [af7738fe6] 2014-04-04 23:09:45 -0400
6442 Branch: REL9_0_STABLE [634056567] 2014-04-04 23:09:49 -0400
6447 Fix tablespace creation WAL replay to work on Windows (MauMau)
6452 Author: Bruce Momjian <bruce@momjian.us>
6453 Branch: master Release: REL9_4_BR [418093465] 2014-04-16 10:45:48 -0400
6454 Branch: REL9_3_STABLE [f716c3250] 2014-04-16 10:45:48 -0400
6455 Branch: REL9_2_STABLE [966f015b6] 2014-04-16 10:45:48 -0400
6456 Branch: REL9_1_STABLE [bed499ed1] 2014-04-16 10:45:48 -0400
6457 Branch: REL9_0_STABLE [a86b2daff] 2014-04-16 10:45:48 -0400
6462 Fix detection of socket creation failures on Windows (Bruce Momjian)
6467 Author: Tom Lane <tgl@sss.pgh.pa.us>
6468 Branch: master Release: REL9_4_BR [6862ca697] 2014-04-05 12:41:25 -0400
6469 Branch: REL9_3_STABLE [18db2150c] 2014-04-05 12:41:28 -0400
6470 Branch: REL9_2_STABLE [bdc3e95c2] 2014-04-05 12:41:31 -0400
6471 Branch: REL9_1_STABLE [cb11f4d8d] 2014-04-05 12:41:34 -0400
6472 Branch: REL9_0_STABLE [9500d8f89] 2014-04-05 12:41:38 -0400
6473 Branch: REL8_4_STABLE [30e434bdf] 2014-04-05 12:41:40 -0400
6478 On Windows, allow new sessions to absorb values of PGC_BACKEND
6479 parameters (such as <xref linkend="guc-log-connections">) from the
6480 configuration file (Amit Kapila)
6484 Previously, if such a parameter were changed in the file post-startup,
6485 the change would have no effect.
6490 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6491 Branch: master Release: REL9_4_BR [503de5462] 2014-04-30 10:35:52 +0300
6492 Branch: REL9_3_STABLE [8a90a39b4] 2014-04-30 10:35:46 +0300
6493 Branch: REL9_2_STABLE [e2558e016] 2014-04-30 10:36:31 +0300
6494 Branch: REL9_1_STABLE [94095e341] 2014-04-30 10:36:41 +0300
6495 Branch: REL9_0_STABLE [c06b7219a] 2014-04-30 10:38:32 +0300
6496 Branch: REL8_4_STABLE [e3f273ff6] 2014-04-30 10:39:03 +0300
6501 Properly quote executable path names on Windows (Nikhil Deshpande)
6505 This oversight could cause <application>initdb</>
6506 and <application>pg_upgrade</> to fail on Windows, if the installation
6507 path contained both spaces and <literal>@</> signs.
6512 Author: Tom Lane <tgl@sss.pgh.pa.us>
6513 Branch: master Release: REL9_4_BR [20561acf9] 2014-05-30 18:19:06 -0400
6514 Branch: REL9_3_STABLE [4f5f4da79] 2014-05-30 18:19:14 -0400
6515 Branch: REL9_2_STABLE [83ed4598b] 2014-05-30 18:18:20 -0400
6516 Branch: REL9_1_STABLE [a784a39c4] 2014-05-30 18:18:24 -0400
6517 Branch: REL9_0_STABLE [4f725bbc4] 2014-05-30 18:18:28 -0400
6518 Branch: REL8_4_STABLE [ae41bb4be] 2014-05-30 18:18:32 -0400
6523 Fix linking of <application>libpython</> on macOS (Tom Lane)
6527 The method we previously used can fail with the Python library
6528 supplied by Xcode 5.0 and later.
6533 Author: Tom Lane <tgl@sss.pgh.pa.us>
6534 Branch: master Release: REL9_4_BR [2f557167b] 2014-05-07 21:39:13 -0400
6535 Branch: REL9_3_STABLE [b4f9c93ce] 2014-05-07 21:38:38 -0400
6536 Branch: REL9_2_STABLE [f7672c8ce] 2014-05-07 21:38:41 -0400
6537 Branch: REL9_1_STABLE [86888054a] 2014-05-07 21:38:44 -0400
6538 Branch: REL9_0_STABLE [77e662827] 2014-05-07 21:38:47 -0400
6539 Branch: REL8_4_STABLE [664ac3de7] 2014-05-07 21:38:50 -0400
6544 Avoid buffer bloat in <application>libpq</> when the server
6545 consistently sends data faster than the client can absorb it
6546 (Shin-ichi Morita, Tom Lane)
6550 <application>libpq</> could be coerced into enlarging its input buffer
6551 until it runs out of memory (which would be reported misleadingly
6552 as <quote>lost synchronization with server</>). Under ordinary
6553 circumstances it's quite far-fetched that data could be continuously
6554 transmitted more quickly than the <function>recv()</> loop can
6555 absorb it, but this has been observed when the client is artificially
6556 slowed by scheduler constraints.
6561 Author: Magnus Hagander <magnus@hagander.net>
6562 Branch: master Release: REL9_4_BR [585bca393] 2014-04-16 18:58:10 +0200
6563 Branch: REL9_3_STABLE [cc269272c] 2014-04-16 18:58:55 +0200
6564 Branch: REL9_2_STABLE [b764080ee] 2014-04-16 18:59:11 +0200
6565 Branch: REL9_1_STABLE [c4bf15b9c] 2014-04-16 18:59:28 +0200
6566 Branch: REL9_0_STABLE [96752b02d] 2014-04-16 18:59:37 +0200
6567 Branch: REL8_4_STABLE [b4ae2e37d] 2014-04-16 18:59:48 +0200
6572 Ensure that LDAP lookup attempts in <application>libpq</> time out as
6573 intended (Laurenz Albe)
6578 Author: Michael Meskes <meskes@postgresql.org>
6579 Branch: master Release: REL9_4_BR [8d6a07fa0] 2014-05-06 13:09:51 +0200
6580 Branch: REL9_3_STABLE [b4eeb9d58] 2014-05-06 13:04:30 +0200
6581 Branch: REL9_2_STABLE [3a024c110] 2014-05-06 13:14:01 +0200
6582 Branch: REL9_1_STABLE [fb66e88cf] 2014-05-06 13:20:22 +0200
6583 Branch: REL9_0_STABLE [91c8c106f] 2014-05-06 13:24:13 +0200
6585 Author: Michael Meskes <meskes@postgresql.org>
6586 Branch: master Release: REL9_4_BR [f91796853] 2014-04-09 11:23:38 +0200
6587 Branch: REL9_3_STABLE [3b8fda676] 2014-04-09 11:38:40 +0200
6588 Branch: REL9_2_STABLE [2b3136de9] 2014-04-09 11:43:13 +0200
6589 Branch: REL9_1_STABLE [0de106836] 2014-04-09 12:04:33 +0200
6590 Branch: REL9_0_STABLE [0c2eb989e] 2014-04-09 12:12:32 +0200
6595 Fix <application>ecpg</> to do the right thing when an array
6596 of <type>char *</> is the target for a FETCH statement returning more
6597 than one row, as well as some other array-handling fixes
6603 Author: Tom Lane <tgl@sss.pgh.pa.us>
6604 Branch: master Release: REL9_4_BR [62215de29] 2014-03-29 17:34:00 -0400
6605 Branch: REL9_3_STABLE [3080bbaa9] 2014-03-29 17:34:03 -0400
6610 Fix <application>pg_dump</> to cope with a materialized view that
6611 depends on a table's primary key (Tom Lane)
6615 This occurs if the view's query relies on functional dependency to
6616 abbreviate a <literal>GROUP BY</> list. <application>pg_dump</> got
6617 sufficiently confused that it dumped the materialized view as a
6623 Author: Tom Lane <tgl@sss.pgh.pa.us>
6624 Branch: master Release: REL9_4_BR [19f2d6cda] 2014-03-18 10:38:25 -0400
6625 Branch: REL9_3_STABLE [63817f86b] 2014-03-18 10:38:38 -0400
6630 Fix parsing of <application>pg_dumpall</>'s <option>-i</> switch
6636 Author: Tom Lane <tgl@sss.pgh.pa.us>
6637 Branch: master [c81e63d85] 2014-06-12 20:14:32 -0400
6638 Branch: REL9_4_STABLE [c3c1401ca] 2014-06-12 20:14:36 -0400
6639 Branch: REL9_3_STABLE [a11577f47] 2014-06-12 20:14:39 -0400
6640 Branch: REL9_2_STABLE [ce7fc4fbb] 2014-06-12 20:14:46 -0400
6641 Branch: REL9_1_STABLE [294a48985] 2014-06-12 20:14:49 -0400
6642 Branch: REL9_0_STABLE [3fec825f9] 2014-06-12 20:14:52 -0400
6643 Branch: REL8_4_STABLE [6adddac8a] 2014-06-12 20:14:55 -0400
6648 Fix <application>pg_restore</>'s processing of old-style large object
6653 A direct-to-database restore from an archive file generated by a
6654 pre-9.0 version of <application>pg_dump</> would usually fail if the
6655 archive contained more than a few comments for large objects.
6660 Author: Bruce Momjian <bruce@momjian.us>
6661 Branch: master [3088cc370] 2014-07-07 13:24:08 -0400
6662 Branch: REL9_4_STABLE [f64fe2cbe] 2014-07-07 13:24:08 -0400
6663 Branch: REL9_3_STABLE [f1d7ff5bb] 2014-07-07 13:24:08 -0400
6664 Branch: REL9_2_STABLE [759c9fb63] 2014-07-07 13:24:08 -0400
6669 Fix <application>pg_upgrade</> for cases where the new server creates
6670 a TOAST table but the old version did not (Bruce Momjian)
6674 This rare situation would manifest as <quote>relation OID mismatch</>
6680 Author: Bruce Momjian <bruce@momjian.us>
6681 Branch: master [a61daa14d] 2014-07-02 15:29:38 -0400
6682 Branch: REL9_4_STABLE [b446a384b] 2014-07-02 15:29:38 -0400
6683 Branch: REL9_3_STABLE [3d2e18510] 2014-07-02 15:29:38 -0400
6685 Author: Tom Lane <tgl@sss.pgh.pa.us>
6686 Branch: master [78db307bb] 2014-07-21 11:41:53 -0400
6687 Branch: REL9_4_STABLE [d122387d7] 2014-07-21 11:42:00 -0400
6688 Branch: REL9_3_STABLE [e7984cca0] 2014-07-21 11:42:05 -0400
6693 In <application>pg_upgrade</>,
6694 preserve <structname>pg_database</>.<structfield>datminmxid</>
6695 and <structname>pg_class</>.<structfield>relminmxid</> values from the
6696 old cluster, or insert reasonable values when upgrading from pre-9.3;
6697 also defend against unreasonable values in the core server
6698 (Bruce Momjian, Álvaro Herrera, Tom Lane)
6702 These changes prevent scenarios in which autovacuum might insist on
6703 scanning the entire cluster's contents immediately upon starting the
6704 new cluster, or in which tracking of unfrozen MXID values might be
6705 disabled completely.
6710 Author: Tom Lane <tgl@sss.pgh.pa.us>
6711 Branch: master Release: REL9_4_BR [e416830a2] 2014-05-20 12:20:47 -0400
6712 Branch: REL9_3_STABLE [0266a9c78] 2014-05-20 12:20:52 -0400
6713 Branch: REL9_2_STABLE [31f579f09] 2014-05-20 12:20:57 -0400
6718 Prevent <filename>contrib/auto_explain</> from changing the output of
6719 a user's <command>EXPLAIN</> (Tom Lane)
6723 If <filename>auto_explain</> is active, it could cause
6724 an <literal>EXPLAIN (ANALYZE, TIMING OFF)</> command to nonetheless
6725 print timing information.
6730 Author: Joe Conway <mail@joeconway.com>
6731 Branch: master [1dde5782e] 2014-06-20 12:24:59 -0700
6732 Branch: REL9_4_STABLE [9d884a34c] 2014-06-20 12:26:26 -0700
6733 Branch: REL9_3_STABLE [b3a3f3d2f] 2014-06-20 12:26:43 -0700
6734 Branch: REL9_2_STABLE [3e2cfa42f] 2014-06-20 12:27:04 -0700
6739 Fix query-lifespan memory leak in <filename>contrib/dblink</>
6740 (MauMau, Joe Conway)
6745 Author: Bruce Momjian <bruce@momjian.us>
6746 Branch: master Release: REL9_4_BR [9fe55259f] 2014-04-17 12:37:53 -0400
6747 Branch: REL9_3_STABLE [fc72e94a1] 2014-04-17 12:37:53 -0400
6748 Branch: REL9_2_STABLE [ea8725a8b] 2014-04-17 12:37:53 -0400
6749 Branch: REL9_1_STABLE [fc02b87e2] 2014-04-17 12:37:53 -0400
6750 Branch: REL9_0_STABLE [a1b9c4630] 2014-04-17 12:37:53 -0400
6751 Branch: REL8_4_STABLE [df2e62603] 2014-04-17 12:37:53 -0400
6756 In <filename>contrib/pgcrypto</> functions, ensure sensitive
6757 information is cleared from stack variables before returning
6763 Author: Noah Misch <noah@leadboat.com>
6764 Branch: master [9d0826c59] 2014-06-30 16:59:19 -0400
6765 Branch: REL9_4_STABLE [37a4d3d70] 2014-06-30 16:59:44 -0400
6766 Branch: REL9_3_STABLE [f14e40852] 2014-06-30 17:00:22 -0400
6767 Branch: REL9_2_STABLE [f6d6b7b1e] 2014-06-30 17:00:40 -0400
6772 Prevent use of already-freed memory in
6773 <filename>contrib/pgstattuple</>'s <function>pgstat_heap()</>
6779 Author: Tom Lane <tgl@sss.pgh.pa.us>
6780 Branch: master Release: REL9_4_BR [c941aed96] 2014-05-29 13:51:02 -0400
6781 Branch: REL9_3_STABLE [961dd203a] 2014-05-29 13:51:05 -0400
6782 Branch: REL9_2_STABLE [2fb9fb661] 2014-05-29 13:51:09 -0400
6783 Branch: REL9_1_STABLE [3606754da] 2014-05-29 13:51:12 -0400
6784 Branch: REL9_0_STABLE [b2f6754d2] 2014-05-29 13:51:15 -0400
6785 Branch: REL8_4_STABLE [fd785441f] 2014-05-29 13:51:18 -0400
6790 In <filename>contrib/uuid-ossp</>, cache the state of the OSSP UUID
6791 library across calls (Tom Lane)
6795 This improves the efficiency of UUID generation and reduces the amount
6796 of entropy drawn from <filename>/dev/urandom</>, on platforms that
6802 Author: Tom Lane <tgl@sss.pgh.pa.us>
6803 Branch: master [b1864fabf] 2014-07-19 15:00:50 -0400
6804 Branch: REL9_4_STABLE [e5ea60e80] 2014-07-19 15:01:05 -0400
6805 Branch: REL9_3_STABLE [bd5458f52] 2014-07-19 15:01:12 -0400
6806 Branch: REL9_2_STABLE [7d09e4854] 2014-07-19 15:01:18 -0400
6807 Branch: REL9_1_STABLE [40ccb6530] 2014-07-19 15:01:28 -0400
6808 Branch: REL9_0_STABLE [7659b6913] 2014-07-19 15:01:38 -0400
6809 Branch: REL8_4_STABLE [c51da696b] 2014-07-19 15:01:45 -0400
6814 Update time zone data files to <application>tzdata</> release 2014e
6815 for DST law changes in Crimea, Egypt, and Morocco.
6824 <sect1 id="release-9-3-4">
6825 <title>Release 9.3.4</title>
6828 <title>Release Date</title>
6829 <simpara>2014-03-20</simpara>
6833 This release contains a variety of fixes from 9.3.3.
6834 For information about new features in the 9.3 major release, see
6835 <xref linkend="release-9-3">.
6839 <title>Migration to Version 9.3.4</title>
6842 A dump/restore is not required for those running 9.3.X.
6846 However, the error fixed in the first changelog entry below could have
6847 resulted in corrupt data on standby servers. It may be prudent to
6848 reinitialize standby servers from fresh base backups after installing
6853 Also, if you are upgrading from a version earlier than 9.3.3,
6854 see <xref linkend="release-9-3-3">.
6860 <title>Changes</title>
6865 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6866 Branch: master [6bfa88acd] 2014-02-27 11:13:39 -0300
6867 Branch: REL9_3_STABLE [9a57858f1] 2014-02-27 11:23:24 -0300
6872 Fix WAL replay of locking an already-updated tuple (Andres Freund,
6873 Álvaro Herrera)
6877 This error caused updated rows to not be found by index scans, resulting
6878 in inconsistent query results depending on whether an index scan was
6879 used. Subsequent processing could result in constraint violations,
6880 since the previously updated row would not be found by later index
6881 searches, thus possibly allowing conflicting rows to be inserted.
6882 Since this error is in WAL replay, it would only manifest during crash
6883 recovery or on standby servers. The improperly-replayed case most
6884 commonly arises when a table row that is referenced by a foreign-key
6885 constraint is updated concurrently with creation of a referencing row.
6890 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6891 Branch: master [fecfc2b91] 2014-03-12 10:04:57 +0200
6892 Branch: REL9_3_STABLE [4738cc356] 2014-03-12 10:05:46 +0200
6893 Branch: REL9_2_STABLE [91f932cf4] 2014-03-12 10:07:22 +0200
6894 Branch: REL9_1_STABLE [63e59c259] 2014-03-12 10:09:22 +0200
6895 Branch: REL9_0_STABLE [9954e1f03] 2014-03-12 10:09:43 +0200
6896 Branch: REL8_4_STABLE [e2bccdfcc] 2014-03-12 10:10:04 +0200
6901 Restore GIN metapages unconditionally to avoid torn-page risk
6902 (Heikki Linnakangas)
6906 Although this oversight could theoretically result in a corrupted
6907 index, it is unlikely to have caused any problems in practice, since
6908 the active part of a GIN metapage is smaller than a standard 512-byte
6914 Author: Tom Lane <tgl@sss.pgh.pa.us>
6915 Branch: master [7bae0284e] 2014-03-13 12:02:54 -0400
6916 Branch: REL9_3_STABLE [0d11fed8e] 2014-03-13 12:02:56 -0400
6917 Branch: REL9_2_STABLE [bbe9621a9] 2014-03-13 12:03:00 -0400
6918 Branch: REL9_1_STABLE [7bfdf10f5] 2014-03-13 12:03:03 -0400
6919 Branch: REL9_0_STABLE [7aea1050e] 2014-03-13 12:03:07 -0400
6924 Avoid race condition in checking transaction commit status during
6925 receipt of a <command>NOTIFY</> message (Marko Tiikkaja)
6929 This prevents a scenario wherein a sufficiently fast client might
6930 respond to a notification before database updates made by the
6931 notifier have become visible to the recipient.
6936 Author: Tom Lane <tgl@sss.pgh.pa.us>
6937 Branch: master [bf4052faa] 2014-03-06 11:37:02 -0500
6938 Branch: REL9_3_STABLE [3973034e6] 2014-03-06 11:37:04 -0500
6943 Allow materialized views to be referenced in <command>UPDATE</>
6944 and <command>DELETE</> commands (Michael Paquier)
6948 Previously such queries failed with a complaint about not being able
6949 to lock rows in the materialized view.
6954 Author: Tom Lane <tgl@sss.pgh.pa.us>
6955 Branch: master [9662143f0] 2014-03-01 15:20:56 -0500
6956 Branch: REL9_3_STABLE [f5f21315d] 2014-03-01 15:21:00 -0500
6957 Branch: REL9_2_STABLE [03e6423fc] 2014-03-01 15:21:04 -0500
6958 Branch: REL9_1_STABLE [a9eb4924a] 2014-03-01 15:21:07 -0500
6959 Branch: REL9_0_STABLE [43af0e8c6] 2014-03-01 15:21:11 -0500
6960 Branch: REL8_4_STABLE [b6e143458] 2014-03-01 15:21:13 -0500
6965 Allow regular-expression operators to be terminated early by query
6966 cancel requests (Tom Lane)
6970 This prevents scenarios wherein a pathological regular expression
6971 could lock up a server process uninterruptably for a long time.
6976 Author: Tom Lane <tgl@sss.pgh.pa.us>
6977 Branch: master [a222f7fda] 2014-02-18 12:44:20 -0500
6978 Branch: REL9_3_STABLE [0aaa42241] 2014-02-18 12:44:24 -0500
6979 Branch: REL9_2_STABLE [d7cd6a9d5] 2014-02-18 12:44:27 -0500
6980 Branch: REL9_1_STABLE [e6f7fe983] 2014-02-18 12:44:30 -0500
6981 Branch: REL9_0_STABLE [19d66ab05] 2014-02-18 12:44:33 -0500
6982 Branch: REL8_4_STABLE [dd378dd1e] 2014-02-18 12:44:36 -0500
6987 Remove incorrect code that tried to allow <literal>OVERLAPS</> with
6988 single-element row arguments (Joshua Yanovski)
6992 This code never worked correctly, and since the case is neither
6993 specified by the SQL standard nor documented, it seemed better to
6994 remove it than fix it.
6999 Author: Tom Lane <tgl@sss.pgh.pa.us>
7000 Branch: master [7c3187494] 2014-03-06 19:31:05 -0500
7001 Branch: REL9_3_STABLE [f557826f8] 2014-03-06 19:31:09 -0500
7002 Branch: REL9_2_STABLE [5ec41e345] 2014-03-06 19:31:12 -0500
7003 Branch: REL9_1_STABLE [f3e3f6c5b] 2014-03-06 19:31:16 -0500
7004 Branch: REL9_0_STABLE [bed1259e5] 2014-03-06 19:31:19 -0500
7005 Branch: REL8_4_STABLE [f043bddfe] 2014-03-06 19:31:22 -0500
7010 Avoid getting more than <literal>AccessShareLock</> when de-parsing a
7011 rule or view (Dean Rasheed)
7015 This oversight resulted in <application>pg_dump</> unexpectedly
7016 acquiring <literal>RowExclusiveLock</> locks on tables mentioned as
7017 the targets of <literal>INSERT</>/<literal>UPDATE</>/<literal>DELETE</>
7018 commands in rules. While usually harmless, that could interfere with
7019 concurrent transactions that tried to acquire, for example,
7020 <literal>ShareLock</> on those tables.
7025 Author: Tom Lane <tgl@sss.pgh.pa.us>
7026 Branch: master [fccebe421] 2014-02-25 16:04:06 -0500
7027 Branch: REL9_3_STABLE [4162a55c7] 2014-02-25 16:04:09 -0500
7028 Branch: REL9_2_STABLE [00283cae1] 2014-02-25 16:04:12 -0500
7029 Branch: REL9_1_STABLE [3e2db4c80] 2014-02-25 16:04:16 -0500
7030 Branch: REL9_0_STABLE [1e0fb6a2c] 2014-02-25 16:04:20 -0500
7035 Improve performance of index endpoint probes during planning (Tom Lane)
7039 This change fixes a significant performance problem that occurred
7040 when there were many not-yet-committed rows at the end of the index,
7041 which is a common situation for indexes on sequentially-assigned
7042 values such as timestamps or sequence-generated identifiers.
7047 Author: Tom Lane <tgl@sss.pgh.pa.us>
7048 Branch: master [77585bce0] 2014-02-21 17:10:46 -0500
7049 Branch: REL9_3_STABLE [e8655a77f] 2014-02-21 17:10:49 -0500
7054 Use non-default selectivity estimates for
7055 <literal><replaceable>value</> IN (<replaceable>list</>)</literal> and
7056 <literal><replaceable>value</> <replaceable>operator</> ANY
7057 (<replaceable>array</>)</literal>
7058 expressions when the righthand side is a stable expression (Tom Lane)
7063 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7064 Branch: master [2b4f2ab33] 2014-03-05 13:03:29 -0300
7065 Branch: REL9_3_STABLE [13ea43ab8] 2014-03-05 13:03:29 -0300
7070 Remove the correct per-database statistics file during <command>DROP
7071 DATABASE</> (Tomas Vondra)
7075 This fix prevents a permanent leak of statistics file space.
7076 Users who have done many <command>DROP DATABASE</> commands since
7077 upgrading to <productname>PostgreSQL</> 9.3 may wish to check their
7078 statistics directory and delete statistics files that do not
7079 correspond to any existing database. Please note
7080 that <filename>db_0.stat</> should not be removed.
7085 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7086 Branch: master [94ae6ba74] 2014-03-06 21:38:51 +0200
7087 Branch: REL9_3_STABLE [dcd1131c8] 2014-03-06 21:40:50 +0200
7092 Fix <application>walsender</> ping logic to avoid inappropriate
7093 disconnects under continuous load (Andres Freund, Heikki Linnakangas)
7097 <application>walsender</> failed to send ping messages to the client
7098 if it was constantly busy sending WAL data; but it expected to see
7099 ping responses despite that, and would therefore disconnect
7100 once <xref linkend="guc-wal-sender-timeout"> elapsed.
7105 Author: Fujii Masao <fujii@postgresql.org>
7106 Branch: master [5c6d9fc4b] 2014-03-17 20:37:50 +0900
7107 Branch: REL9_3_STABLE [385723405] 2014-03-17 20:41:12 +0900
7108 Branch: REL9_2_STABLE [7899aa356] 2014-03-17 20:41:52 +0900
7109 Branch: REL9_1_STABLE [65e8dbb18] 2014-03-17 20:42:35 +0900
7114 Fix <application>walsender</>'s failure to shut down cleanly when client
7115 is <application>pg_receivexlog</> (Fujii Masao)
7120 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7121 Branch: master [956685f82] 2014-03-05 14:48:14 +0200
7122 Branch: REL9_3_STABLE [a5363a696] 2014-03-05 14:46:56 +0200
7123 Branch: REL9_2_STABLE [e7ec05562] 2014-03-05 14:45:55 +0200
7128 Check WAL level and hot standby parameters correctly when doing crash
7129 recovery that will be followed by archive recovery (Heikki Linnakangas)
7134 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7135 Branch: master [af246c37c] 2014-03-05 13:51:19 +0200
7136 Branch: REL9_3_STABLE [2cd72ba42] 2014-03-05 13:52:21 +0200
7137 Branch: REL9_2_STABLE [931dc26b0] 2014-03-05 13:57:32 +0200
7138 Branch: REL9_1_STABLE [7552d3d1a] 2014-03-05 13:58:14 +0200
7139 Branch: REL9_0_STABLE [4521cc850] 2014-03-05 13:58:22 +0200
7144 Fix test to see if hot standby connections can be allowed immediately
7145 after a crash (Heikki Linnakangas)
7150 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7151 Branch: REL9_3_STABLE [5a7e75849] 2014-02-20 10:46:54 +0200
7156 Add read-only <xref linkend="guc-data-checksums"> parameter to
7157 display whether page checksums are enabled (Heikki Linnakangas)
7161 Without this parameter, determining the state of checksum
7162 processing was difficult.
7167 Author: Tom Lane <tgl@sss.pgh.pa.us>
7168 Branch: master [6c461cb92] 2014-03-13 20:59:42 -0400
7169 Branch: REL9_3_STABLE [41bd2cf55] 2014-03-13 20:59:45 -0400
7170 Branch: REL9_2_STABLE [7a289bb6d] 2014-03-13 20:59:48 -0400
7171 Branch: REL9_1_STABLE [f16ca9755] 2014-03-13 20:59:51 -0400
7172 Branch: REL9_0_STABLE [dad55e1e9] 2014-03-13 20:59:55 -0400
7173 Branch: REL8_4_STABLE [172c53e92] 2014-03-13 20:59:57 -0400
7178 Prevent interrupts while reporting non-<literal>ERROR</> messages
7183 This guards against rare server-process freezeups due to recursive
7184 entry to <function>syslog()</>, and perhaps other related problems.
7189 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7190 Branch: master [bd1154ede] 2014-03-16 23:22:21 -0300
7191 Branch: REL9_3_STABLE [60829079d] 2014-03-16 23:22:22 -0300
7192 Branch: REL9_2_STABLE [ba5946e86] 2014-03-16 23:22:22 -0300
7193 Branch: REL9_1_STABLE [f84997c7e] 2014-03-16 23:22:22 -0300
7198 Fix memory leak in PL/Perl when returning a composite result, including
7199 multiple-OUT-parameter cases (Alex Hunsaker)
7204 Author: Tom Lane <tgl@sss.pgh.pa.us>
7205 Branch: master [e85a5ffba] 2014-03-10 15:47:40 -0400
7206 Branch: REL9_3_STABLE [f64f4c370] 2014-03-10 15:47:09 -0400
7207 Branch: REL9_2_STABLE [b315b767f] 2014-03-10 15:47:13 -0400
7212 Fix tracking of <application>psql</> script line numbers
7213 during <literal>\copy</> from out-of-line data
7214 (Kumar Rajeev Rastogi, Amit Khandekar)
7218 <literal>\copy ... from</> incremented the script file line number
7219 for each data line, even if the data was not coming from the script
7220 file. This mistake resulted in wrong line numbers being reported for
7221 any errors occurring later in the same script file.
7226 Author: Tom Lane <tgl@sss.pgh.pa.us>
7227 Branch: master [83204e100] 2014-03-07 16:36:40 -0500
7228 Branch: REL9_3_STABLE [73f0483fd] 2014-03-07 16:36:50 -0500
7233 Fix <application>contrib/postgres_fdw</> to handle multiple join
7234 conditions properly (Tom Lane)
7238 This oversight could result in sending <literal>WHERE</> clauses to
7239 the remote server for execution even though the clauses are not known
7240 to have the same semantics on the remote server (for example, clauses
7241 that use non-built-in operators). The query might succeed anyway,
7242 but it could also fail with errors from the remote server, or worse
7243 give silently wrong answers.
7248 Author: Magnus Hagander <magnus@hagander.net>
7249 Branch: master [7f3e17b48] 2014-02-18 14:45:58 +0100
7250 Branch: REL9_3_STABLE [b88ecb002] 2014-02-18 14:49:41 +0100
7251 Branch: REL9_2_STABLE [062deb313] 2014-02-18 14:50:19 +0100
7252 Branch: REL9_1_STABLE [fae12f331] 2014-03-16 11:46:20 +0100
7253 Branch: REL9_0_STABLE [665515539] 2014-03-16 11:47:37 +0100
7258 Prevent intermittent <quote>could not reserve shared memory region</>
7259 failures on recent Windows versions (MauMau)
7264 Author: Tom Lane <tgl@sss.pgh.pa.us>
7265 Branch: master [aba7f5677] 2014-03-15 13:36:07 -0400
7266 Branch: REL9_3_STABLE [b5de16997] 2014-03-15 13:36:24 -0400
7267 Branch: REL9_2_STABLE [f2063b379] 2014-03-15 13:36:32 -0400
7268 Branch: REL9_1_STABLE [2df1bf21c] 2014-03-15 13:36:41 -0400
7269 Branch: REL9_0_STABLE [0033f5324] 2014-03-15 13:36:49 -0400
7270 Branch: REL8_4_STABLE [6e6c2c2e1] 2014-03-15 13:36:57 -0400
7275 Update time zone data files to <application>tzdata</> release 2014a
7276 for DST law changes in Fiji and Turkey, plus historical changes in
7286 <sect1 id="release-9-3-3">
7287 <title>Release 9.3.3</title>
7290 <title>Release Date</title>
7291 <simpara>2014-02-20</simpara>
7295 This release contains a variety of fixes from 9.3.2.
7296 For information about new features in the 9.3 major release, see
7297 <xref linkend="release-9-3">.
7301 <title>Migration to Version 9.3.3</title>
7304 A dump/restore is not required for those running 9.3.X.
7308 However, several of the issues corrected in this release could have
7309 resulted in corruption of foreign-key constraints; that is, there
7310 might now be referencing rows for which there is no matching row in
7311 the referenced table. It may be worthwhile to recheck such
7312 constraints after installing this update. The simplest way to do that
7313 is to drop and recreate each suspect constraint; however, that will
7314 require taking an exclusive lock on both tables, so it is unlikely to
7315 be acceptable in production databases. Alternatively, you can do a
7316 manual join query between the two tables to look for unmatched rows.
7320 Note also the requirement for replication standby servers to be
7321 upgraded before their master server is upgraded.
7325 Also, if you are upgrading from a version earlier than 9.3.2,
7326 see <xref linkend="release-9-3-2">.
7332 <title>Changes</title>
7337 Author: Noah Misch <noah@leadboat.com>
7338 Branch: master [fea164a72] 2014-02-17 09:33:31 -0500
7339 Branch: REL9_3_STABLE [475a1fbc4] 2014-02-17 09:33:32 -0500
7340 Branch: REL9_2_STABLE [15a8f97b9] 2014-02-17 09:33:33 -0500
7341 Branch: REL9_1_STABLE [5d320a16c] 2014-02-17 09:33:33 -0500
7342 Branch: REL9_0_STABLE [789063697] 2014-02-17 09:33:37 -0500
7343 Branch: REL8_4_STABLE [ff35425c8] 2014-02-17 09:33:38 -0500
7348 Shore up <literal>GRANT ... WITH ADMIN OPTION</> restrictions
7353 Granting a role without <literal>ADMIN OPTION</> is supposed to
7354 prevent the grantee from adding or removing members from the granted
7355 role, but this restriction was easily bypassed by doing <literal>SET
7356 ROLE</> first. The security impact is mostly that a role member can
7357 revoke the access of others, contrary to the wishes of his grantor.
7358 Unapproved role member additions are a lesser concern, since an
7359 uncooperative role member could provide most of his rights to others
7360 anyway by creating views or <literal>SECURITY DEFINER</> functions.
7366 Author: Noah Misch <noah@leadboat.com>
7367 Branch: master [537cbd35c] 2014-02-17 09:33:31 -0500
7368 Branch: REL9_3_STABLE [fc4a04a3c] 2014-02-17 09:33:32 -0500
7369 Branch: REL9_2_STABLE [1d701d28a] 2014-02-17 09:33:33 -0500
7370 Branch: REL9_1_STABLE [23b5a85e6] 2014-02-17 09:33:36 -0500
7371 Branch: REL9_0_STABLE [c0ac4c75f] 2014-02-17 09:33:37 -0500
7372 Branch: REL8_4_STABLE [823b9dc25] 2014-02-17 09:33:38 -0500
7377 Prevent privilege escalation via manual calls to PL validator
7378 functions (Andres Freund)
7382 The primary role of PL validator functions is to be called implicitly
7383 during <command>CREATE FUNCTION</>, but they are also normal SQL
7384 functions that a user can call explicitly. Calling a validator on
7385 a function actually written in some other language was not checked
7386 for and could be exploited for privilege-escalation purposes.
7387 The fix involves adding a call to a privilege-checking function in
7388 each validator function. Non-core procedural languages will also
7389 need to make this change to their own validator functions, if any.
7395 Author: Robert Haas <rhaas@postgresql.org>
7396 Branch: master [5f173040e] 2014-02-17 09:33:31 -0500
7397 Branch: REL9_3_STABLE [e1e0a4d79] 2014-02-17 09:33:32 -0500
7398 Branch: REL9_2_STABLE [820ab11fb] 2014-02-17 09:33:33 -0500
7399 Branch: REL9_1_STABLE [b5c574399] 2014-02-17 09:33:36 -0500
7400 Branch: REL9_0_STABLE [43d4e965e] 2014-02-17 09:33:37 -0500
7401 Branch: REL8_4_STABLE [e46476133] 2014-02-17 09:33:38 -0500
7406 Avoid multiple name lookups during table and index DDL
7407 (Robert Haas, Andres Freund)
7411 If the name lookups come to different conclusions due to concurrent
7412 activity, we might perform some parts of the DDL on a different table
7413 than other parts. At least in the case of <command>CREATE INDEX</>,
7414 this can be used to cause the permissions checks to be performed
7415 against a different table than the index creation, allowing for a
7416 privilege escalation attack.
7422 Author: Noah Misch <noah@leadboat.com>
7423 Branch: master [4318daecc] 2014-02-17 09:33:31 -0500
7424 Branch: REL9_3_STABLE [e4a4fa223] 2014-02-17 09:33:32 -0500
7425 Branch: REL9_2_STABLE [f416622be] 2014-02-17 09:33:33 -0500
7426 Branch: REL9_1_STABLE [6a10e57b0] 2014-02-17 09:33:37 -0500
7427 Branch: REL9_0_STABLE [b9c3bb1b3] 2014-02-17 09:33:38 -0500
7428 Branch: REL8_4_STABLE [d0ed1a6c0] 2014-02-17 09:33:39 -0500
7433 Prevent buffer overrun with long datetime strings (Noah Misch)
7437 The <literal>MAXDATELEN</> constant was too small for the longest
7438 possible value of type <type>interval</>, allowing a buffer overrun
7439 in <function>interval_out()</>. Although the datetime input
7440 functions were more careful about avoiding buffer overrun, the limit
7441 was short enough to cause them to reject some valid inputs, such as
7442 input containing a very long timezone name. The <application>ecpg</>
7443 library contained these vulnerabilities along with some of its own.
7449 Author: Noah Misch <noah@leadboat.com>
7450 Branch: master [31400a673] 2014-02-17 09:33:31 -0500
7451 Branch: REL9_3_STABLE [7a362a176] 2014-02-17 09:33:32 -0500
7452 Branch: REL9_2_STABLE [12bbce15d] 2014-02-17 09:33:33 -0500
7453 Branch: REL9_1_STABLE [0b7026d96] 2014-02-17 09:33:37 -0500
7454 Branch: REL9_0_STABLE [2c3203e18] 2014-02-17 09:33:38 -0500
7455 Branch: REL8_4_STABLE [98be8a6ea] 2014-02-17 09:33:39 -0500
7460 Prevent buffer overrun due to integer overflow in size calculations
7461 (Noah Misch, Heikki Linnakangas)
7465 Several functions, mostly type input functions, calculated an
7466 allocation size without checking for overflow. If overflow did
7467 occur, a too-small buffer would be allocated and then written past.
7473 Author: Tom Lane <tgl@sss.pgh.pa.us>
7474 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
7475 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
7476 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
7477 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
7478 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
7479 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
7484 Prevent overruns of fixed-size buffers
7485 (Peter Eisentraut, Jozef Mlich)
7489 Use <function>strlcpy()</> and related functions to provide a clear
7490 guarantee that fixed-size buffers are not overrun. Unlike the
7491 preceding items, it is unclear whether these cases really represent
7492 live issues, since in most cases there appear to be previous
7493 constraints on the size of the input string. Nonetheless it seems
7494 prudent to silence all Coverity warnings of this type.
7500 Author: Tom Lane <tgl@sss.pgh.pa.us>
7501 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
7502 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
7503 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
7504 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
7505 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
7506 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
7511 Avoid crashing if <function>crypt()</> returns NULL (Honza Horak,
7516 There are relatively few scenarios in which <function>crypt()</>
7517 could return NULL, but <filename>contrib/chkpass</> would crash
7518 if it did. One practical case in which this could be an issue is
7519 if <application>libc</> is configured to refuse to execute unapproved
7520 hashing algorithms (e.g., <quote>FIPS mode</>).
7526 Author: Tom Lane <tgl@sss.pgh.pa.us>
7527 Branch: master [6ef325429] 2014-02-17 11:24:32 -0500
7528 Branch: REL9_3_STABLE [1ec5988f3] 2014-02-17 11:24:38 -0500
7529 Branch: REL9_2_STABLE [ff3d533e5] 2014-02-17 11:24:42 -0500
7530 Branch: REL9_1_STABLE [800a3744b] 2014-02-17 11:24:45 -0500
7531 Branch: REL9_0_STABLE [369c229d2] 2014-02-17 11:24:48 -0500
7532 Branch: REL8_4_STABLE [f58663ab1] 2014-02-17 11:24:51 -0500
7537 Document risks of <literal>make check</> in the regression testing
7538 instructions (Noah Misch, Tom Lane)
7542 Since the temporary server started by <literal>make check</>
7543 uses <quote>trust</> authentication, another user on the same machine
7544 could connect to it as database superuser, and then potentially
7545 exploit the privileges of the operating-system user who started the
7546 tests. A future release will probably incorporate changes in the
7547 testing procedure to prevent this risk, but some public discussion is
7548 needed first. So for the moment, just warn people against using
7549 <literal>make check</> when there are untrusted users on the
7556 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7557 Branch: master [3b97e6823] 2013-12-16 11:29:50 -0300
7558 Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
7563 Rework tuple freezing protocol
7564 (Álvaro Herrera, Andres Freund)
7568 The logic for tuple freezing was unable to handle some cases involving
7570 <link linkend="vacuum-for-multixact-wraparound"><firstterm>multixact</>
7571 IDs</link>, with the practical effect that shared row-level locks
7572 might be forgotten once old enough.
7576 Fixing this required changing the WAL record format for tuple
7577 freezing. While this is no issue for standalone servers, when using
7578 replication it means that <emphasis>standby servers must be upgraded
7579 to 9.3.3 or later before their masters are</>. An older standby will
7580 be unable to interpret freeze records generated by a newer master, and
7581 will fail with a PANIC message. (In such a case, upgrading the
7582 standby should be sufficient to let it resume execution.)
7587 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7588 Branch: master [801c2dc72] 2014-02-13 19:36:31 -0300
7589 Branch: REL9_3_STABLE [fb47de2be] 2014-02-13 19:30:30 -0300
7594 Create separate GUC parameters to control multixact freezing
7595 (Álvaro Herrera)
7599 9.3 requires multixact tuple labels to be frozen before
7600 they grow too old, in the same fashion as plain transaction ID labels
7601 have been frozen for some time. Previously, the transaction ID
7602 freezing parameters were used for multixact IDs too; but since
7603 the consumption rates of transaction IDs and multixact IDs can be
7604 quite different, this did not work very well. Introduce new settings
7605 <xref linkend="guc-vacuum-multixact-freeze-min-age">,
7606 <xref linkend="guc-vacuum-multixact-freeze-table-age">, and
7607 <xref linkend="guc-autovacuum-multixact-freeze-max-age">
7608 to control when to freeze multixacts.
7613 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7614 Branch: master [11ac4c73c] 2013-12-18 13:45:51 -0300
7615 Branch: REL9_3_STABLE [db1014bc4] 2013-12-18 13:31:27 -0300
7620 Account for remote row locks propagated by local updates
7621 (Álvaro Herrera)
7625 If a row was locked by transaction A, and transaction B updated it,
7626 the new version of the row created by B would be locked by A, yet
7627 visible only to B. If transaction B then again updated the row, A's
7628 lock wouldn't get checked, thus possibly allowing B to complete when
7629 it shouldn't. This case is new in 9.3 since prior versions did not
7630 have any types of row locking that would permit another transaction
7631 to update the row at all.
7635 This oversight could allow referential integrity checks to give false
7636 positives (for instance, allow deletes that should have been rejected).
7637 Applications using the new commands <literal>SELECT FOR KEY SHARE</>
7638 and <literal>SELECT FOR NO KEY UPDATE</> might also have suffered
7639 locking failures of this kind.
7644 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7645 Branch: master [07aeb1fec] 2013-12-05 12:21:55 -0300
7646 Branch: REL9_3_STABLE [c6cd27e36] 2013-12-05 12:21:55 -0300
7651 Prevent <quote>forgetting</> valid row locks when one of several
7652 holders of a row lock aborts (Álvaro Herrera)
7656 This was yet another mechanism by which a shared row lock could be
7657 lost, thus possibly allowing updates that should have been prevented
7658 by foreign-key constraints.
7663 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7664 Branch: master [312bde3d4] 2013-12-05 17:47:51 -0300
7665 Branch: REL9_3_STABLE [2dcc48c35] 2013-12-05 17:47:51 -0300
7670 Fix incorrect logic during update chain locking
7671 (Álvaro Herrera)
7675 This mistake could result in spurious <quote>could not serialize access
7676 due to concurrent update</> errors in <literal>REPEATABLE READ</>
7677 and <literal>SERIALIZABLE</> transaction isolation modes.
7682 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7683 Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
7684 Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
7689 Handle wraparound correctly during extension or truncation
7690 of <filename>pg_multixact/members</>
7691 (Andres Freund, Álvaro Herrera)
7696 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7697 Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
7698 Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
7703 Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
7704 (Álvaro Herrera)
7708 As of 9.3, these names can be more than 4 digits, but the directory
7709 cleanup code ignored such files.
7714 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7715 Branch: master [d881dd623] 2013-12-13 17:16:25 -0300
7716 Branch: REL9_3_STABLE [0bc00363b] 2013-12-13 17:16:25 -0300
7721 Improve performance of multixact cache code
7722 (Álvaro Herrera)
7727 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
7728 Branch: master [13aa62443] 2013-12-19 16:53:49 -0300
7729 Branch: REL9_3_STABLE [85d3b3c3a] 2013-12-19 16:39:59 -0300
7734 Optimize updating a row that's already locked by the same transaction
7735 (Andres Freund, Álvaro Herrera)
7739 This fixes a performance regression from pre-9.3 versions when doing
7740 <literal>SELECT FOR UPDATE</> followed by <literal>UPDATE/DELETE</>.
7745 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7746 Branch: master [4d894b41c] 2014-02-14 15:15:09 +0200
7747 Branch: REL9_3_STABLE [762bd379a] 2014-02-14 15:18:34 +0200
7752 During archive recovery, prefer highest timeline number when WAL
7753 segments with the same ID are present in both the archive
7754 and <filename>pg_xlog/</> (Kyotaro Horiguchi)
7758 Previously, not-yet-archived segments could get ignored during
7759 recovery. This reverts an undesirable behavioral change in 9.3.0
7760 back to the way things worked pre-9.3.
7765 Author: Tom Lane <tgl@sss.pgh.pa.us>
7766 Branch: master [6f2aead1f] 2014-02-12 14:52:16 -0500
7767 Branch: REL9_3_STABLE [7190f7a34] 2014-02-12 14:52:20 -0500
7768 Branch: REL9_2_STABLE [bc7ab301a] 2014-02-12 14:52:23 -0500
7769 Branch: REL9_1_STABLE [a69cc9b2c] 2014-02-12 14:52:26 -0500
7770 Branch: REL9_0_STABLE [7fedd79b7] 2014-02-12 14:52:29 -0500
7771 Branch: REL8_4_STABLE [9620fede9] 2014-02-12 14:52:32 -0500
7776 Fix possible mis-replay of WAL records when some segments of a
7777 relation aren't full size (Greg Stark, Tom Lane)
7781 The WAL update could be applied to the wrong page, potentially many
7782 pages past where it should have been. Aside from corrupting data,
7783 this error has been observed to result in significant <quote>bloat</>
7784 of standby servers compared to their masters, due to updates being
7785 applied far beyond where the end-of-file should have been. This
7786 failure mode does not appear to be a significant risk during crash
7787 recovery, only when initially synchronizing a standby created from a
7788 base backup taken from a quickly-changing master.
7793 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7794 Branch: master [d59ff6c11] 2014-01-08 15:03:09 +0200
7795 Branch: REL9_3_STABLE [425bef6ee] 2014-01-08 14:32:22 +0200
7796 Branch: REL9_2_STABLE [82c75f9dd] 2014-01-08 14:28:55 +0200
7797 Branch: REL9_1_STABLE [e56430c62] 2014-01-08 14:33:58 +0200
7798 Branch: REL9_0_STABLE [5301c8395] 2014-01-08 14:34:21 +0200
7803 Fix bug in determining when recovery has reached consistency
7804 (Tomonari Katsumata, Heikki Linnakangas)
7808 In some cases WAL replay would mistakenly conclude that the database
7809 was already consistent at the start of replay, thus possibly allowing
7810 hot-standby queries before the database was really consistent. Other
7811 symptoms such as <quote>PANIC: WAL contains references to invalid
7812 pages</> were also possible.
7817 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7818 Branch: master [a49633d8d] 2013-12-13 14:15:04 +0200
7819 Branch: REL9_3_STABLE [615299cf6] 2013-12-13 14:23:02 +0200
7824 Fix WAL logging of visibility map changes (Heikki Linnakangas)
7829 Author: Tom Lane <tgl@sss.pgh.pa.us>
7830 Branch: master [061b079f8] 2014-01-14 17:35:21 -0500
7831 Branch: REL9_3_STABLE [ebde6c401] 2014-01-14 17:34:51 -0500
7832 Branch: REL9_2_STABLE [ad2e041a3] 2014-01-14 17:34:54 -0500
7833 Branch: REL9_1_STABLE [ab4bb5c47] 2014-01-14 17:34:57 -0500
7834 Branch: REL9_0_STABLE [5d742b9ce] 2014-01-14 17:35:00 -0500
7839 Fix improper locking of btree index pages while replaying
7840 a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
7841 Heikki Linnakangas, Tom Lane)
7845 This error could result in <quote>PANIC: WAL contains references to
7846 invalid pages</> failures.
7851 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7852 Branch: master [22122c83f] 2013-12-03 23:16:01 +0200
7853 Branch: REL9_3_STABLE [8fd04cb32] 2013-12-03 22:13:16 +0200
7854 Branch: REL9_2_STABLE [06df57ac6] 2013-12-03 22:34:31 +0200
7855 Branch: REL9_1_STABLE [e6acb956a] 2013-12-03 22:34:43 +0200
7856 Branch: REL9_0_STABLE [760606dc5] 2013-12-03 23:01:31 +0200
7857 Branch: REL8_4_STABLE [67fc33d3a] 2013-12-03 22:53:26 +0200
7862 Ensure that insertions into non-leaf GIN index pages write a full-page
7863 WAL record when appropriate (Heikki Linnakangas)
7867 The previous coding risked index corruption in the event of a
7868 partial-page write during a system crash.
7873 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7874 Branch: master [3739e5ab9] 2014-01-08 23:28:52 +0200
7875 Branch: REL9_3_STABLE [3aefff422] 2014-01-08 23:30:46 +0200
7876 Branch: REL9_2_STABLE [3bd8987ef] 2014-01-08 23:30:55 +0200
7877 Branch: REL9_1_STABLE [0402f2441] 2014-01-08 23:31:01 +0200
7882 When <literal>pause_at_recovery_target</>
7883 and <literal>recovery_target_inclusive</> are both set, ensure the
7884 target record is applied before pausing, not after (Heikki
7890 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7891 Branch: master [a472ae1e4] 2014-01-16 23:15:41 +0200
7892 Branch: REL9_3_STABLE [e34acac62] 2014-01-16 23:14:57 +0200
7897 Ensure walreceiver sends hot-standby feedback messages on time even
7898 when there is a continuous stream of data (Andres Freund, Amit
7904 Author: Tom Lane <tgl@sss.pgh.pa.us>
7905 Branch: master [e8312b4f0] 2013-12-13 11:50:15 -0500
7906 Branch: REL9_3_STABLE [478af9b79] 2013-12-13 11:50:25 -0500
7911 Prevent timeout interrupts from taking control away from mainline
7912 code unless <varname>ImmediateInterruptOK</> is set
7913 (Andres Freund, Tom Lane)
7917 This is a serious issue for any application making use of statement
7918 timeouts, as it could cause all manner of strange failures after a
7919 timeout occurred. We have seen reports of <quote>stuck</> spinlocks,
7920 ERRORs being unexpectedly promoted to PANICs, unkillable backends,
7921 and other misbehaviors.
7926 Author: Robert Haas <rhaas@postgresql.org>
7927 Branch: master [d1981719a] 2014-01-31 21:31:08 -0500
7928 Branch: REL9_3_STABLE [5d807a74b] 2014-01-31 21:34:44 -0500
7929 Branch: REL9_2_STABLE [ebe334463] 2014-01-31 21:35:32 -0500
7930 Branch: REL9_1_STABLE [8e6bfc9eb] 2014-01-31 21:36:23 -0500
7931 Branch: REL9_0_STABLE [798243a81] 2014-01-31 21:40:20 -0500
7932 Branch: REL8_4_STABLE [458b20f2d] 2014-01-31 21:41:09 -0500
7937 Fix race conditions during server process exit (Robert Haas)
7941 Ensure that signal handlers don't attempt to use the
7942 process's <varname>MyProc</> pointer after it's no longer valid.
7947 Author: Tom Lane <tgl@sss.pgh.pa.us>
7948 Branch: master [214c7a4f0] 2014-02-01 16:21:23 -0500
7949 Branch: REL9_3_STABLE [6f1a40773] 2014-02-01 16:21:30 -0500
7950 Branch: REL9_2_STABLE [81b116d98] 2014-02-01 16:21:33 -0500
7951 Branch: REL9_1_STABLE [03f06ff38] 2014-02-01 16:21:38 -0500
7956 Fix race conditions in walsender shutdown logic and walreceiver
7957 SIGHUP signal handler (Tom Lane)
7962 Author: Tom Lane <tgl@sss.pgh.pa.us>
7963 Branch: master [571addd72] 2014-01-29 20:04:43 -0500
7964 Branch: REL9_3_STABLE [bf8ee6f15] 2014-01-29 20:04:01 -0500
7965 Branch: REL9_2_STABLE [3e71ce1e9] 2014-01-29 20:04:05 -0500
7966 Branch: REL9_1_STABLE [af259c691] 2014-01-29 20:04:08 -0500
7967 Branch: REL9_0_STABLE [d17a667e8] 2014-01-29 20:04:11 -0500
7968 Branch: REL8_4_STABLE [01b882fd8] 2014-01-29 20:04:14 -0500
7973 Fix unsafe references to <varname>errno</> within error reporting
7974 logic (Christian Kruse)
7978 This would typically lead to odd behaviors such as missing or
7979 inappropriate <literal>HINT</> fields.
7984 Author: Tom Lane <tgl@sss.pgh.pa.us>
7985 Branch: master [910bac595] 2014-01-11 16:36:07 -0500
7986 Branch: REL9_3_STABLE [5bfcc9ec5] 2014-01-11 16:35:30 -0500
7987 Branch: REL9_2_STABLE [2de905186] 2014-01-11 16:35:34 -0500
7988 Branch: REL9_1_STABLE [3f721588a] 2014-01-11 16:35:37 -0500
7989 Branch: REL9_0_STABLE [d9c4442b8] 2014-01-11 16:35:41 -0500
7990 Branch: REL8_4_STABLE [d0070ac81] 2014-01-11 16:35:44 -0500
7995 Fix possible crashes from using <function>ereport()</> too early
7996 during server startup (Tom Lane)
8000 The principal case we've seen in the field is a crash if the server
8001 is started in a directory it doesn't have permission to read.
8006 Author: Tom Lane <tgl@sss.pgh.pa.us>
8007 Branch: master [74242c23c] 2013-12-05 12:48:28 -0500
8008 Branch: REL9_3_STABLE [2a6e1a554] 2013-12-05 12:48:31 -0500
8009 Branch: REL9_2_STABLE [41042970b] 2013-12-05 12:48:35 -0500
8010 Branch: REL9_1_STABLE [ad910ccdc] 2013-12-05 12:48:37 -0500
8011 Branch: REL9_0_STABLE [36352ceb4] 2013-12-05 12:48:41 -0500
8012 Branch: REL8_4_STABLE [7635dae55] 2013-12-05 12:48:44 -0500
8017 Clear retry flags properly in OpenSSL socket write
8018 function (Alexander Kukushkin)
8022 This omission could result in a server lockup after unexpected loss
8023 of an SSL-encrypted connection.
8028 Author: Tom Lane <tgl@sss.pgh.pa.us>
8029 Branch: master [44c216330] 2014-02-13 14:24:42 -0500
8030 Branch: REL9_3_STABLE [ca1c17181] 2014-02-13 14:24:45 -0500
8031 Branch: REL9_2_STABLE [8439ee415] 2014-02-13 14:24:49 -0500
8032 Branch: REL9_1_STABLE [170590261] 2014-02-13 14:24:52 -0500
8033 Branch: REL9_0_STABLE [148052d25] 2014-02-13 14:24:55 -0500
8034 Branch: REL8_4_STABLE [a8a46d846] 2014-02-13 14:24:58 -0500
8039 Fix length checking for Unicode identifiers (<literal>U&"..."</>
8040 syntax) containing escapes (Tom Lane)
8044 A spurious truncation warning would be printed for such identifiers
8045 if the escaped form of the identifier was too long, but the
8046 identifier actually didn't need truncation after de-escaping.
8051 Author: Tom Lane <tgl@sss.pgh.pa.us>
8052 Branch: master [0c2338abb] 2014-02-03 19:47:57 -0500
8053 Branch: REL9_3_STABLE [4c70cb1d3] 2014-02-03 19:48:00 -0500
8058 Fix parsing of Unicode literals and identifiers just before the end
8059 of a command string or function body (Tom Lane)
8064 Author: Stephen Frost <sfrost@snowman.net>
8065 Branch: master [6c36f383d] 2014-01-21 22:49:22 -0500
8066 Branch: REL9_3_STABLE [d1e3070f0] 2014-01-21 22:56:30 -0500
8067 Branch: REL9_2_STABLE [c0e6169e1] 2014-01-21 22:56:34 -0500
8068 Branch: REL9_1_STABLE [cbd850bf6] 2014-01-21 23:00:58 -0500
8069 Branch: REL9_0_STABLE [f2eede9b5] 2014-01-21 23:01:40 -0500
8074 Allow keywords that are type names to be used in lists of roles
8079 A previous patch allowed such keywords to be used without quoting
8080 in places such as role identifiers; but it missed cases where a
8081 list of role identifiers was permitted, such as <literal>DROP ROLE</>.
8086 Author: Tom Lane <tgl@sss.pgh.pa.us>
8087 Branch: master [7ab321404] 2013-12-02 20:28:45 -0500
8088 Branch: REL9_3_STABLE [b44ae4893] 2013-12-02 20:28:49 -0500
8089 Branch: REL9_2_STABLE [6698782f1] 2013-12-02 20:28:53 -0500
8090 Branch: REL9_1_STABLE [f67b8aeab] 2013-12-02 20:28:56 -0500
8095 Fix parser crash for <literal>EXISTS(SELECT * FROM
8096 zero_column_table)</literal> (Tom Lane)
8101 Author: Tom Lane <tgl@sss.pgh.pa.us>
8102 Branch: master [9ec6199d1] 2013-12-10 16:10:17 -0500
8103 Branch: REL9_3_STABLE [9d2e07fec] 2013-12-10 16:10:20 -0500
8104 Branch: REL9_2_STABLE [f5d9fdcc7] 2013-12-10 16:10:24 -0500
8105 Branch: REL9_1_STABLE [48e5cfde8] 2013-12-10 16:10:28 -0500
8106 Branch: REL9_0_STABLE [41e9990cd] 2013-12-10 16:10:31 -0500
8107 Branch: REL8_4_STABLE [884c6384a] 2013-12-10 16:10:36 -0500
8112 Fix possible crash due to invalid plan for nested sub-selects, such
8113 as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
8119 Author: Tom Lane <tgl@sss.pgh.pa.us>
8120 Branch: master [043f6ff05] 2014-01-30 14:51:16 -0500
8121 Branch: REL9_3_STABLE [a4aa854ca] 2014-01-30 14:51:19 -0500
8126 Fix mishandling of <literal>WHERE</> conditions pulled up from
8127 a <literal>LATERAL</> subquery (Tom Lane)
8131 The typical symptom of this bug was a <quote>JOIN qualification
8132 cannot refer to other relations</> error, though subtle logic
8133 errors in created plans seem possible as well.
8138 Author: Tom Lane <tgl@sss.pgh.pa.us>
8139 Branch: master [158b7fa6a] 2014-01-11 19:03:12 -0500
8140 Branch: REL9_3_STABLE [27ff4cfe7] 2014-01-11 19:03:15 -0500
8145 Disallow <literal>LATERAL</> references to the target table of
8146 an <literal>UPDATE/DELETE</> (Tom Lane)
8150 While this might be allowed in some future release, it was
8151 unintentional in 9.3, and didn't work quite right anyway.
8156 Author: Tom Lane <tgl@sss.pgh.pa.us>
8157 Branch: master [c03ad5602] 2013-12-14 17:33:53 -0500
8158 Branch: REL9_3_STABLE [324577f39] 2013-12-14 17:33:56 -0500
8159 Branch: REL9_2_STABLE [5d545b7ed] 2013-12-14 17:34:00 -0500
8164 Fix <literal>UPDATE/DELETE</> of an inherited target table
8165 that has <literal>UNION ALL</> subqueries (Tom Lane)
8169 Without this fix, <literal>UNION ALL</> subqueries aren't correctly
8170 inserted into the update plans for inheritance child tables after the
8171 first one, typically resulting in no update happening for those child
8177 Author: Tom Lane <tgl@sss.pgh.pa.us>
8178 Branch: master [4eeda92d8] 2013-12-23 22:18:48 -0500
8179 Branch: REL9_3_STABLE [663f8419b] 2013-12-23 22:18:23 -0500
8184 Fix <command>ANALYZE</> to not fail on a column that's a domain over
8185 a range type (Tom Lane)
8190 Author: Tom Lane <tgl@sss.pgh.pa.us>
8191 Branch: master [628652620] 2014-01-11 13:42:42 -0500
8192 Branch: REL9_3_STABLE [36785a21b] 2014-01-11 13:41:51 -0500
8193 Branch: REL9_2_STABLE [f0381680f] 2014-01-11 13:41:56 -0500
8194 Branch: REL9_1_STABLE [9387f4e1b] 2014-01-11 13:42:00 -0500
8195 Branch: REL9_0_STABLE [2d76d75d9] 2014-01-11 13:42:05 -0500
8196 Branch: REL8_4_STABLE [00b77771a] 2014-01-11 13:42:11 -0500
8201 Ensure that <command>ANALYZE</> creates statistics for a table column
8202 even when all the values in it are <quote>too wide</> (Tom Lane)
8206 <command>ANALYZE</> intentionally omits very wide values from its
8207 histogram and most-common-values calculations, but it neglected to do
8208 something sane in the case that all the sampled entries are too wide.
8213 Author: Stephen Frost <sfrost@snowman.net>
8214 Branch: master [6f25c62d7] 2014-01-18 18:41:52 -0500
8215 Branch: REL9_3_STABLE [86e58ae02] 2014-01-18 18:49:08 -0500
8216 Branch: REL9_2_STABLE [1fe06595a] 2014-01-18 18:49:41 -0500
8217 Branch: REL9_1_STABLE [d2636486b] 2014-01-18 18:50:09 -0500
8218 Branch: REL9_0_STABLE [e70c42821] 2014-01-18 18:50:29 -0500
8219 Branch: REL8_4_STABLE [0fb4e3ceb] 2014-01-18 18:50:47 -0500
8224 In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
8225 default tablespace to be used without a permissions check
8230 <literal>CREATE TABLE</> has always allowed such usage,
8231 but <literal>ALTER TABLE</> didn't get the memo.
8236 Author: Tom Lane <tgl@sss.pgh.pa.us>
8237 Branch: master [c01bc51f8] 2013-12-30 14:00:02 -0500
8238 Branch: REL9_3_STABLE [9a6e2b150] 2013-12-30 14:00:05 -0500
8243 Fix support for extensions containing event triggers (Tom Lane)
8248 Author: Tom Lane <tgl@sss.pgh.pa.us>
8249 Branch: master [080b7db72] 2014-01-08 20:18:58 -0500
8250 Branch: REL9_3_STABLE [47ac4473a] 2014-01-08 20:18:10 -0500
8251 Branch: REL9_2_STABLE [97a39f295] 2014-01-08 20:18:13 -0500
8252 Branch: REL9_1_STABLE [6c6c53d0b] 2014-01-08 20:18:17 -0500
8253 Branch: REL9_0_STABLE [6ca712fb9] 2014-01-08 20:18:20 -0500
8254 Branch: REL8_4_STABLE [57ac7d8a7] 2014-01-08 20:18:24 -0500
8259 Fix <quote>cannot accept a set</> error when some arms of
8260 a <literal>CASE</> return a set and others don't (Tom Lane)
8265 Author: Andrew Dunstan <andrew@dunslane.net>
8266 Branch: master [d3ee45152] 2014-02-03 10:40:12 -0500
8267 Branch: REL9_3_STABLE [cdfbb78f0] 2014-02-03 10:39:13 -0500
8272 Fix memory leakage in JSON functions (Craig Ringer)
8277 Author: Andrew Dunstan <andrew@dunslane.net>
8278 Branch: master [29dcf7ded] 2013-12-27 17:04:00 -0500
8279 Branch: REL9_3_STABLE [7dfd9f6f5] 2013-12-27 17:21:04 -0500
8280 Branch: REL9_2_STABLE [4825a9e95] 2013-12-27 17:21:27 -0500
8285 Properly distinguish numbers from non-numbers when generating JSON
8286 output (Andrew Dunstan)
8291 Author: Kevin Grittner <kgrittn@postgresql.org>
8292 Branch: master [a133bf703] 2013-12-27 15:26:24 -0600
8293 Branch: REL9_3_STABLE [28b60aa23] 2013-12-27 15:40:51 -0600
8294 Branch: REL9_2_STABLE [150a30e19] 2013-12-27 15:41:02 -0600
8295 Branch: REL9_1_STABLE [1f069d21d] 2013-12-27 15:41:18 -0600
8296 Branch: REL9_0_STABLE [918d74a07] 2013-12-27 15:41:32 -0600
8297 Branch: REL8_4_STABLE [b2d80147d] 2013-12-27 15:41:46 -0600
8302 Fix checks for all-zero client addresses in pgstat functions (Kevin
8308 Author: Tom Lane <tgl@sss.pgh.pa.us>
8309 Branch: master [082c0dfa1] 2014-02-01 18:27:34 -0500
8310 Branch: REL9_3_STABLE [9beffdcc3] 2014-02-01 18:27:40 -0500
8311 Branch: REL9_2_STABLE [8be095cea] 2014-02-01 18:27:44 -0500
8312 Branch: REL9_1_STABLE [399d23e19] 2014-02-01 18:27:48 -0500
8313 Branch: REL9_0_STABLE [3c7b4ef70] 2014-02-01 18:27:54 -0500
8314 Branch: REL8_4_STABLE [56f5d3424] 2014-02-01 18:27:12 -0500
8319 Fix possible misclassification of multibyte characters by the text
8320 search parser (Tom Lane)
8324 Non-ASCII characters could be misclassified when using C locale with
8325 a multibyte encoding. On Cygwin, non-C locales could fail as well.
8330 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
8331 Branch: master [6c2744f1d] 2014-02-10 09:57:59 +0200
8332 Branch: REL9_3_STABLE [928aec71c] 2014-02-10 09:59:49 +0200
8333 Branch: REL9_2_STABLE [f3807106b] 2014-02-10 10:00:04 +0200
8334 Branch: REL9_1_STABLE [5f778e644] 2014-02-10 10:00:23 +0200
8335 Branch: REL9_0_STABLE [fe8a6f53e] 2014-02-10 10:00:36 +0200
8336 Branch: REL8_4_STABLE [6141983fb] 2014-02-10 10:00:50 +0200
8341 Fix possible misbehavior in <function>plainto_tsquery()</>
8342 (Heikki Linnakangas)
8346 Use <function>memmove()</> not <function>memcpy()</> for copying
8347 overlapping memory regions. There have been no field reports of
8348 this actually causing trouble, but it's certainly risky.
8353 Author: Magnus Hagander <magnus@hagander.net>
8354 Branch: master [9544cc0d6] 2014-01-07 17:50:56 +0100
8355 Branch: REL9_3_STABLE [91c2755fc] 2014-01-07 17:51:02 +0100
8356 Branch: REL9_2_STABLE [61d4d14ee] 2014-01-07 17:53:00 +0100
8357 Branch: REL9_1_STABLE [026a91f86] 2014-01-07 18:00:36 +0100
8362 Fix placement of permissions checks in <function>pg_start_backup()</>
8363 and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
8367 The previous coding might attempt to do catalog access when it
8373 Author: Tatsuo Ishii <ishii@postgresql.org>
8374 Branch: master [1f0626ee4] 2013-12-15 11:09:05 +0900
8375 Branch: REL9_3_STABLE [8122e6f85] 2013-12-15 11:10:41 +0900
8376 Branch: REL9_2_STABLE [0c07ef1ad] 2013-12-15 11:10:49 +0900
8377 Branch: REL9_1_STABLE [035226c61] 2013-12-15 11:10:56 +0900
8378 Branch: REL9_0_STABLE [7016d970d] 2013-12-15 11:11:02 +0900
8379 Branch: REL8_4_STABLE [69f77d756] 2013-12-15 11:11:11 +0900
8384 Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
8385 purposes (Tatsuo Ishii)
8390 Author: Tom Lane <tgl@sss.pgh.pa.us>
8391 Branch: master [0def2573c] 2014-02-03 14:47:17 -0500
8392 Branch: REL9_3_STABLE [641c08041] 2014-02-03 14:46:54 -0500
8393 Branch: REL9_2_STABLE [888b56570] 2014-02-03 14:46:57 -0500
8398 Fix <literal>*</>-qualification of named parameters in SQL-language
8399 functions (Tom Lane)
8403 Given a composite-type parameter
8404 named <literal>foo</>, <literal>$1.*</> worked fine,
8405 but <literal>foo.*</> not so much.
8410 Author: Fujii Masao <fujii@postgresql.org>
8411 Branch: master [77035fa8a] 2014-01-23 22:58:58 +0900
8412 Branch: REL9_3_STABLE [be5d49974] 2014-01-23 23:00:30 +0900
8413 Branch: REL9_2_STABLE [ea311bfdf] 2014-01-23 23:01:06 +0900
8414 Branch: REL9_1_STABLE [1b384aff1] 2014-01-23 23:01:34 +0900
8415 Branch: REL9_0_STABLE [996b21cbf] 2014-01-23 23:02:03 +0900
8416 Branch: REL8_4_STABLE [5525529db] 2014-01-23 23:02:30 +0900
8421 Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
8425 It should return <literal>localhost</> if no host has been specified.
8430 Author: Tom Lane <tgl@sss.pgh.pa.us>
8431 Branch: master [b8f00a46b] 2014-02-13 18:45:58 -0500
8432 Branch: REL9_3_STABLE [f208fb436] 2014-02-13 18:46:03 -0500
8433 Branch: REL9_2_STABLE [2573f08a1] 2014-02-13 18:45:20 -0500
8434 Branch: REL9_1_STABLE [7182bd239] 2014-02-13 18:45:23 -0500
8435 Branch: REL9_0_STABLE [218dd205b] 2014-02-13 18:45:27 -0500
8436 Branch: REL8_4_STABLE [7644a7bd8] 2014-02-13 18:45:32 -0500
8441 Improve error handling in <application>libpq</> and <application>psql</>
8442 for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
8446 In particular this fixes an infinite loop that could occur in 9.2 and
8447 up if the server connection was lost during <literal>COPY FROM
8448 STDIN</>. Variants of that scenario might be possible in older
8449 versions, or with other client applications.
8454 Author: Tom Lane <tgl@sss.pgh.pa.us>
8455 Branch: master [92459e7a7] 2014-01-04 16:05:16 -0500
8456 Branch: REL9_3_STABLE [341f0bc49] 2014-01-04 16:05:20 -0500
8457 Branch: REL9_2_STABLE [fa28f9cba] 2014-01-04 16:05:23 -0500
8462 Fix incorrect translation handling in
8463 some <application>psql</> <literal>\d</> commands
8464 (Peter Eisentraut, Tom Lane)
8469 Author: Magnus Hagander <magnus@hagander.net>
8470 Branch: master [63ab2befe] 2014-02-12 18:45:18 +0100
8471 Branch: REL9_3_STABLE [c90204c60] 2014-02-12 18:46:04 +0100
8472 Branch: REL9_2_STABLE [0ae288d2d] 2014-02-12 14:51:00 +0100
8477 Ensure <application>pg_basebackup</>'s background process is killed
8478 when exiting its foreground process (Magnus Hagander)
8483 Author: Magnus Hagander <magnus@hagander.net>
8484 Branch: master [01025d80a] 2014-02-09 12:05:14 +0100
8485 Branch: REL9_3_STABLE [680baa8d2] 2014-02-09 12:09:18 +0100
8486 Branch: REL9_2_STABLE [165aa1da5] 2014-02-09 12:09:39 +0100
8487 Branch: REL9_1_STABLE [c6e5c4dd1] 2014-02-09 12:09:55 +0100
8492 Fix possible incorrect printing of filenames
8493 in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
8498 Author: Magnus Hagander <magnus@hagander.net>
8499 Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
8500 Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
8501 Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
8502 Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
8507 Avoid including tablespaces inside PGDATA twice in base backups
8508 (Dimitri Fontaine, Magnus Hagander)
8513 Author: Michael Meskes <meskes@postgresql.org>
8514 Branch: master [d685e2424] 2014-01-09 16:20:19 +0100
8515 Branch: REL9_3_STABLE [28fff0ef8] 2014-01-09 15:41:51 +0100
8516 Branch: REL9_2_STABLE [799728b0b] 2014-01-09 15:50:51 +0100
8517 Branch: REL9_1_STABLE [9f5b3a1a1] 2014-01-09 15:51:11 +0100
8518 Branch: REL9_0_STABLE [a29b6c342] 2014-01-09 15:51:23 +0100
8519 Branch: REL8_4_STABLE [d68a65b01] 2014-01-09 15:58:37 +0100
8524 Fix misaligned descriptors in <application>ecpg</> (MauMau)
8529 Author: Michael Meskes <meskes@postgresql.org>
8530 Branch: master [7c957ec83] 2014-01-01 12:39:31 +0100
8531 Branch: REL9_3_STABLE [8404037d8] 2014-01-01 12:40:28 +0100
8532 Branch: REL9_2_STABLE [119a59879] 2014-01-01 12:40:42 +0100
8533 Branch: REL9_1_STABLE [948498274] 2014-01-01 12:44:15 +0100
8534 Branch: REL9_0_STABLE [17bcdd01f] 2014-01-01 12:44:44 +0100
8535 Branch: REL8_4_STABLE [96de4939c] 2014-01-01 12:44:58 +0100
8540 In <application>ecpg</>, handle lack of a hostname in the connection
8541 parameters properly (Michael Meskes)
8546 Author: Joe Conway <mail@joeconway.com>
8547 Branch: master [d6ca510d9] 2013-12-07 17:00:26 -0800
8548 Branch: REL9_3_STABLE [0ec530625] 2013-12-07 17:00:10 -0800
8549 Branch: REL9_2_STABLE [7f4ef622f] 2013-12-07 16:59:35 -0800
8550 Branch: REL9_1_STABLE [70165f25b] 2013-12-07 16:59:16 -0800
8551 Branch: REL9_0_STABLE [9057adc23] 2013-12-07 16:58:41 -0800
8552 Branch: REL8_4_STABLE [6c8b16e30] 2013-12-07 16:56:34 -0800
8557 Fix performance regression in <filename>contrib/dblink</> connection
8558 startup (Joe Conway)
8562 Avoid an unnecessary round trip when client and server encodings match.
8567 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
8568 Branch: master [866a1f092] 2014-01-13 15:43:29 +0200
8569 Branch: REL9_3_STABLE [50c5770ec] 2014-01-13 15:43:59 +0200
8570 Branch: REL9_2_STABLE [f6d6b42f2] 2014-01-13 15:44:02 +0200
8571 Branch: REL9_1_STABLE [5143dfd57] 2014-01-13 15:44:04 +0200
8572 Branch: REL9_0_STABLE [6c3f040be] 2014-01-13 15:44:12 +0200
8573 Branch: REL8_4_STABLE [492b68541] 2014-01-13 15:44:14 +0200
8578 In <filename>contrib/isn</>, fix incorrect calculation of the check
8579 digit for ISMN values (Fabien Coelho)
8584 Author: Tatsuo Ishii <ishii@postgresql.org>
8585 Branch: master [841a65482] 2013-12-12 19:10:35 +0900
8586 Branch: REL9_3_STABLE [27902bc91] 2013-12-12 19:07:53 +0900
8591 Fix <filename>contrib/pgbench</>'s progress logging to avoid overflow
8592 when the scale factor is large (Tatsuo Ishii)
8597 Author: Tom Lane <tgl@sss.pgh.pa.us>
8598 Branch: master [69c7a9838] 2014-01-21 16:34:28 -0500
8599 Branch: REL9_3_STABLE [0950d67ee] 2014-01-21 16:34:31 -0500
8600 Branch: REL9_2_STABLE [27ab1eb7e] 2014-01-21 16:34:35 -0500
8605 Fix <filename>contrib/pg_stat_statement</>'s handling
8606 of <literal>CURRENT_DATE</> and related constructs (Kyotaro
8612 Author: Tom Lane <tgl@sss.pgh.pa.us>
8613 Branch: master [00d4f2af8] 2014-02-03 21:30:20 -0500
8614 Branch: REL9_3_STABLE [eb3d350db] 2014-02-03 21:30:28 -0500
8619 Improve lost-connection error handling
8620 in <filename>contrib/postgres_fdw</> (Tom Lane)
8625 Author: Peter Eisentraut <peter_e@gmx.net>
8626 Branch: master [ad6bf0291] 2014-01-17 23:08:22 -0500
8627 Branch: REL9_3_STABLE [586bea612] 2014-01-17 23:11:02 -0500
8628 Branch: REL9_2_STABLE [526e38751] 2014-01-17 23:12:50 -0500
8629 Branch: REL9_1_STABLE [6d969b000] 2014-01-17 23:14:21 -0500
8630 Branch: REL9_0_STABLE [2346c383a] 2014-01-17 23:15:00 -0500
8631 Branch: REL8_4_STABLE [15699d9bf] 2014-01-17 23:17:59 -0500
8636 Ensure client-code-only installation procedure works as documented
8642 Author: Andrew Dunstan <andrew@dunslane.net>
8643 Branch: master [d587298b8] 2014-02-01 15:11:13 -0500
8644 Branch: REL9_3_STABLE [1e9876c3b] 2014-02-01 15:16:06 -0500
8645 Branch: REL9_2_STABLE [6e96d4db8] 2014-02-01 15:16:18 -0500
8646 Branch: REL9_1_STABLE [dfb4a1a21] 2014-02-01 15:16:29 -0500
8647 Branch: REL9_0_STABLE [59d64e7f3] 2014-02-01 15:16:40 -0500
8648 Branch: REL8_4_STABLE [ae3c98b9b] 2014-02-01 15:16:52 -0500
8653 In Mingw and Cygwin builds, install the <application>libpq</> DLL
8654 in the <filename>bin</> directory (Andrew Dunstan)
8658 This duplicates what the MSVC build has long done. It should fix
8659 problems with programs like <application>psql</> failing to start
8660 because they can't find the DLL.
8665 Author: Andrew Dunstan <andrew@dunslane.net>
8666 Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
8667 Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
8668 Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
8669 Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
8670 Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
8675 Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
8681 Author: Andrew Dunstan <andrew@dunslane.net>
8682 Branch: master [cec8394b5] 2014-01-26 09:49:10 -0500
8683 Branch: REL9_3_STABLE [56c08df55] 2014-01-26 09:45:43 -0500
8688 Enable building with Visual Studio 2013 (Brar Piening)
8693 Author: Tom Lane <tgl@sss.pgh.pa.us>
8694 Branch: master [289541520] 2014-02-10 20:48:04 -0500
8695 Branch: REL9_3_STABLE [f1e522696] 2014-02-10 20:48:12 -0500
8696 Branch: REL9_2_STABLE [dd5605104] 2014-02-10 20:48:20 -0500
8697 Branch: REL9_1_STABLE [3bf5c16f1] 2014-02-10 20:48:23 -0500
8698 Branch: REL9_0_STABLE [e1e7642bd] 2014-02-10 20:48:27 -0500
8699 Branch: REL8_4_STABLE [432735cbf] 2014-02-10 20:48:30 -0500
8704 Don't generate plain-text <filename>HISTORY</>
8705 and <filename>src/test/regress/README</> files anymore (Tom Lane)
8709 These text files duplicated the main HTML and PDF documentation
8710 formats. The trouble involved in maintaining them greatly outweighs
8711 the likely audience for plain-text format. Distribution tarballs
8712 will still contain files by these names, but they'll just be stubs
8713 directing the reader to consult the main documentation.
8714 The plain-text <filename>INSTALL</> file will still be maintained, as
8715 there is arguably a use-case for that.
8720 Author: Tom Lane <tgl@sss.pgh.pa.us>
8721 Branch: master [e04641f4b] 2014-02-14 21:59:13 -0500
8722 Branch: REL9_3_STABLE [46cbcd50e] 2014-02-14 21:59:37 -0500
8723 Branch: REL9_2_STABLE [4f975b68b] 2014-02-14 21:59:42 -0500
8724 Branch: REL9_1_STABLE [3212ba534] 2014-02-14 21:59:46 -0500
8725 Branch: REL9_0_STABLE [cb84fddd9] 2014-02-14 21:59:50 -0500
8726 Branch: REL8_4_STABLE [c0c2d62ac] 2014-02-14 21:59:56 -0500
8731 Update time zone data files to <application>tzdata</> release 2013i
8732 for DST law changes in Jordan and historical changes in Cuba.
8736 In addition, the zones <literal>Asia/Riyadh87</>,
8737 <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
8738 removed, as they are no longer maintained by IANA, and never
8739 represented actual civil timekeeping practice.
8748 <sect1 id="release-9-3-2">
8749 <title>Release 9.3.2</title>
8752 <title>Release Date</title>
8753 <simpara>2013-12-05</simpara>
8757 This release contains a variety of fixes from 9.3.1.
8758 For information about new features in the 9.3 major release, see
8759 <xref linkend="release-9-3">.
8763 <title>Migration to Version 9.3.2</title>
8766 A dump/restore is not required for those running 9.3.X.
8770 However, this release corrects a number of potential data corruption
8771 issues. See the first three changelog entries below to find out whether
8772 your installation has been affected and what steps you can take if so.
8776 Also, if you are upgrading from a version earlier than 9.3.1,
8777 see <xref linkend="release-9-3-1">.
8783 <title>Changes</title>
8789 Fix <command>VACUUM</>'s tests to see whether it can
8790 update <structfield>relfrozenxid</> (Andres Freund)
8794 In some cases <command>VACUUM</> (either manual or autovacuum) could
8795 incorrectly advance a table's <structfield>relfrozenxid</> value,
8796 allowing tuples to escape freezing, causing those rows to become
8797 invisible once 2^31 transactions have elapsed. The probability of
8798 data loss is fairly low since multiple incorrect advancements would
8799 need to happen before actual loss occurs, but it's not zero. In 9.2.0
8800 and later, the probability of loss is higher, and it's also possible
8801 to get <quote>could not access status of transaction</> errors as a
8802 consequence of this bug. Users upgrading from releases 9.0.4 or 8.4.8
8803 or earlier are not affected, but all later versions contain the bug.
8807 The issue can be ameliorated by, after upgrading, vacuuming all tables
8808 in all databases while having <link
8809 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
8810 set to zero. This will fix any latent corruption but will not be able
8811 to fix all pre-existing data errors. However, an installation can be
8812 presumed safe after performing this vacuuming if it has executed fewer
8813 than 2^31 update transactions in its lifetime (check this with
8814 <literal>SELECT txid_current() < 2^31</>).
8820 Fix multiple bugs in MultiXactId freezing (Andres Freund,
8821 Álvaro Herrera)
8825 These bugs could lead to <quote>could not access status of
8826 transaction</> errors, or to duplicate or vanishing rows.
8827 Users upgrading from releases prior to 9.3.0 are not affected.
8831 The issue can be ameliorated by, after upgrading, vacuuming all tables
8832 in all databases while having <link
8833 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
8834 set to zero. This will fix latent corruption but will not be able to
8835 fix all pre-existing data errors.
8839 As a separate issue, these bugs can also cause standby servers to get
8840 out of sync with the primary, thus exhibiting data errors that are not
8841 in the primary. Therefore, it's recommended that 9.3.0 and 9.3.1
8842 standby servers be re-cloned from the primary (e.g., with a new base
8843 backup) after upgrading.
8849 Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
8850 during hot standby startup (Andres Freund, Heikki Linnakangas)
8854 This bug can cause data loss on standby servers at the moment they
8855 start to accept hot-standby queries, by marking committed transactions
8856 as uncommitted. The likelihood of such corruption is small unless, at
8857 the time of standby startup, the primary server has executed many
8858 updating transactions since its last checkpoint. Symptoms include
8859 missing rows, rows that should have been deleted being still visible,
8860 and obsolete versions of updated rows being still visible alongside
8861 their newer versions.
8865 This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
8866 Standby servers that have only been running earlier releases are not
8867 at risk. It's recommended that standby servers that have ever run any
8868 of the buggy releases be re-cloned from the primary (e.g., with a new
8869 base backup) after upgrading.
8875 Fix multiple bugs in update chain traversal (Andres Freund,
8876 Álvaro Herrera)
8880 These bugs could result in incorrect behavior, such as locking or even
8881 updating the wrong row, in the presence of concurrent updates.
8882 Spurious <quote>unable to fetch updated version of tuple</> errors
8889 Fix dangling-pointer problem in fast-path locking (Tom Lane)
8893 This could lead to corruption of the lock data structures in shared
8894 memory, causing <quote>lock already held</> and other odd errors.
8900 Fix assorted race conditions in timeout management (Tom Lane)
8904 These errors could result in a server process becoming unresponsive
8905 because it had blocked SIGALRM and/or SIGINT.
8911 Truncate <filename>pg_multixact</> contents during WAL replay
8916 This avoids ever-increasing disk space consumption in standby servers.
8922 Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
8923 when it's only verified that no tuples need freezing (Sergey
8924 Burladyan, Jeff Janes)
8928 This bug could result in failing to
8929 advance <structfield>relfrozenxid</>, so that the table would still be
8930 thought to need another anti-wraparound vacuum. In the worst case the
8931 database might even shut down to prevent wraparound.
8937 Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
8941 This bug could result in large amounts of useless autovacuum activity.
8947 Fix race condition in GIN index posting tree page deletion (Heikki
8952 This could lead to transient wrong answers or query failures.
8958 Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
8959 index creation (Teodor Sigaev)
8965 Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
8971 Re-allow duplicate table aliases if they're within aliased JOINs
8976 Historically <productname>PostgreSQL</> has accepted queries like
8978 SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
8980 although a strict reading of the SQL standard would forbid the
8981 duplicate usage of table alias <literal>x</>. A misguided change in
8982 9.3.0 caused it to reject some such cases that were formerly accepted.
8983 Restore the previous behavior.
8989 Avoid flattening a subquery whose <literal>SELECT</> list contains a
8990 volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
8994 This avoids unexpected results due to extra evaluations of the
9001 Fix planner's processing of non-simple-variable subquery outputs
9002 nested within outer joins (Tom Lane)
9006 This error could lead to incorrect plans for queries involving
9007 multiple levels of subqueries within <literal>JOIN</> syntax.
9013 Fix incorrect planning in cases where the same non-strict expression
9014 appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
9015 equality clauses (Tom Lane)
9021 Fix planner crash with whole-row reference to a subquery (Tom Lane)
9027 Fix incorrect generation of optimized MIN()/MAX() plans for
9028 inheritance trees (Tom Lane)
9032 The planner could fail in cases where the MIN()/MAX() argument was an
9033 expression rather than a simple variable.
9039 Fix premature deletion of temporary files (Andres Freund)
9045 Prevent intra-transaction memory leak when printing range values
9050 This fix actually cures transient memory leaks in any datatype output
9051 function, but range types are the only ones known to have had a
9052 significant problem.
9058 Fix memory leaks when reloading configuration files (Heikki
9059 Linnakangas, Hari Babu)
9065 Prevent incorrect display of dropped columns in NOT NULL and CHECK
9066 constraint violation messages (Michael Paquier and Tom Lane)
9072 Allow default arguments and named-argument notation for window
9073 functions (Tom Lane)
9077 Previously, these cases were likely to crash.
9083 Suppress trailing whitespace on each line when pretty-printing rules
9084 and views (Tom Lane)
9088 9.3.0 generated such whitespace in many more cases than previous
9089 versions did. To reduce unexpected behavioral changes, suppress
9090 unnecessary whitespace in all cases.
9096 Fix possible read past end of memory in rule printing (Peter Eisentraut)
9102 Fix array slicing of <type>int2vector</> and <type>oidvector</> values
9107 Expressions of this kind are now implicitly promoted to
9108 regular <type>int2</> or <type>oid</> arrays.
9114 Return a valid JSON value when converting an empty <type>hstore</> value
9122 Fix incorrect behaviors when using a SQL-standard, simple GMT offset
9127 In some cases, the system would use the simple GMT offset value when
9128 it should have used the regular timezone setting that had prevailed
9129 before the simple offset was selected. This change also causes
9130 the <function>timeofday</> function to honor the simple GMT offset
9137 Prevent possible misbehavior when logging translations of Windows
9138 error codes (Tom Lane)
9144 Properly quote generated command lines in <application>pg_ctl</>
9145 (Naoya Anzai and Tom Lane)
9149 This fix applies only to Windows.
9155 Fix <application>pg_dumpall</> to work when a source database
9157 linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
9158 via <command>ALTER DATABASE SET</> (Kevin Grittner)
9162 Previously, the generated script would fail during restore.
9168 Fix <application>pg_isready</> to handle its <option>-d</> option
9169 properly (Fabrízio de Royes Mello and Fujii Masao)
9175 Fix parsing of WAL file names in <application>pg_receivexlog</>
9176 (Heikki Linnakangas)
9180 This error made <application>pg_receivexlog</> unable to restart
9181 streaming after stopping, once at least 4 GB of WAL had been written.
9187 Report out-of-disk-space failures properly
9188 in <application>pg_upgrade</> (Peter Eisentraut)
9194 Make <application>ecpg</> search for quoted cursor names
9195 case-sensitively (Zoltán Böszörményi)
9201 Fix <application>ecpg</>'s processing of lists of variables
9202 declared <type>varchar</> (Zoltán Böszörményi)
9208 Make <filename>contrib/lo</> defend against incorrect trigger definitions
9215 Update time zone data files to <application>tzdata</> release 2013h
9216 for DST law changes in Argentina, Brazil, Jordan, Libya,
9217 Liechtenstein, Morocco, and Palestine. Also, new timezone
9218 abbreviations WIB, WIT, WITA for Indonesia.
9227 <sect1 id="release-9-3-1">
9228 <title>Release 9.3.1</title>
9231 <title>Release Date</title>
9232 <simpara>2013-10-10</simpara>
9236 This release contains a variety of fixes from 9.3.0.
9237 For information about new features in the 9.3 major release, see
9238 <xref linkend="release-9-3">.
9242 <title>Migration to Version 9.3.1</title>
9245 A dump/restore is not required for those running 9.3.X.
9249 However, if you use the <literal>hstore</> extension, see the
9250 first changelog entry.
9256 <title>Changes</title>
9262 Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
9263 extension during an update (Andrew Dunstan)
9267 Users who upgraded a pre-9.3 database containing <literal>hstore</>
9270 ALTER EXTENSION hstore UPDATE;
9272 after installing 9.3.1, to add two new JSON functions and a cast.
9273 (If <literal>hstore</> is already up to date, this command does
9280 Fix memory leak when creating B-tree indexes on range columns
9281 (Heikki Linnakangas)
9287 Fix memory leak caused by <function>lo_open()</function> failure
9288 (Heikki Linnakangas)
9294 Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
9300 Fix deadlock bug in libpq when using SSL (Stephen Frost)
9306 Fix timeline handling bugs in <application>pg_receivexlog</>
9307 (Heikki Linnakangas, Andrew Gierth)
9313 Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
9314 variables unless function body checking is enabled (Tom Lane)
9320 Remove rare inaccurate warning during vacuum of index-less tables
9321 (Heikki Linnakangas)
9330 <sect1 id="release-9-3">
9331 <title>Release 9.3</title>
9334 <title>Release Date</title>
9335 <simpara>2013-09-09</simpara>
9339 <title>Overview</title>
9342 Major enhancements in <productname>PostgreSQL</> 9.3 include:
9345 <!-- This list duplicates items below, but without authors or details-->
9351 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
9358 Make simple views <link
9359 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
9365 Add many features for the <type>JSON</> data type,
9366 including <link linkend="functions-json">operators and functions</link>
9367 to extract elements from <type>JSON</> values
9373 Implement <acronym>SQL</>-standard <link
9374 linkend="queries-lateral"><literal>LATERAL</></link> option for
9375 <literal>FROM</>-clause subqueries and function calls
9381 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
9382 wrappers</link> to support writes (inserts/updates/deletes) on foreign
9389 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
9390 data wrapper</link> to allow access to
9391 other <productname>Postgres</> servers
9397 Add support for <link linkend="event-triggers">event triggers</link>
9403 Add optional ability to <link
9404 linkend="app-initdb-data-checksums">checksum</link> data pages and
9411 Prevent non-key-field row updates from blocking foreign key checks
9417 Greatly reduce System V <link linkend="sysvipc">shared
9418 memory</link> requirements
9425 The above items are explained in more detail in the sections below.
9432 <title>Migration to Version 9.3</title>
9435 A dump/restore using <link
9436 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
9437 of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
9438 required for those wishing to migrate data from any previous release.
9442 Version 9.3 contains a number of changes that may affect compatibility
9443 with previous releases. Observe the following incompatibilities:
9447 <title>Server Settings</title>
9453 Rename <varname>replication_timeout</> to <link
9454 linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
9459 This setting controls the <link
9460 linkend="wal"><acronym>WAL</></link> sender timeout.
9466 Require superuser privileges to set <link
9467 linkend="guc-commit-delay"><varname>commit_delay</></link>
9468 because it can now potentially delay other sessions (Simon Riggs)
9474 Allow in-memory sorts to use their full memory allocation (Jeff Janes)
9478 Users who have set <link
9479 linkend="guc-work-mem"><varname>work_mem</></link> based on the
9480 previous behavior may need to revisit that setting.
9489 <title>Other</title>
9495 Throw an error if a tuple to be updated or deleted has already been
9496 updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
9500 Formerly, the originally-intended update was silently skipped,
9501 resulting in logical inconsistency since the trigger might have
9502 propagated data to other places based on the intended update.
9503 Now an error is thrown to prevent the inconsistent results from being
9504 committed. If this change affects your application, the best solution
9505 is usually to move the data-propagation actions to
9506 an <literal>AFTER</> trigger.
9510 This error will also be thrown if a query invokes a volatile function
9511 that modifies rows that are later modified by the query itself.
9512 Such cases likewise previously resulted in silently skipping updates.
9518 Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
9519 SET NULL/SET DEFAULT</></link> foreign key actions to affect
9520 all columns of the constraint, not just those changed in the
9521 <command>UPDATE</> (Tom Lane)
9525 Previously, we would set only those referencing columns that
9526 correspond to referenced columns that were changed by
9527 the <command>UPDATE</>. This was what was required by SQL-92,
9528 but more recent editions of the SQL standard specify the new behavior.
9534 Force cached plans to be replanned if the <link
9535 linkend="guc-search-path"><varname>search_path</></link> changes
9540 Previously, cached plans already generated in the current session were
9541 not redone if the query was re-executed with a
9542 new <varname>search_path</> setting, resulting in surprising behavior.
9549 linkend="functions-formatting-table"><function>to_number()</></link>
9550 to properly handle a period used as a thousands separator (Tom Lane)
9554 Previously, a period was considered to be a decimal point even when
9555 the locale says it isn't and the <literal>D</> format code is used to
9556 specify use of the locale-specific decimal point. This resulted in
9557 wrong answers if <literal>FM</> format was also used.
9563 Fix <literal>STRICT</> non-set-returning functions that have
9564 set-returning functions in their arguments to properly return null
9569 A null value passed to the strict function should result in a null
9570 output, but instead, that output row was suppressed entirely.
9576 Store <link linkend="wal"><acronym>WAL</></link> in a continuous
9577 stream, rather than skipping the last 16MB segment every 4GB
9578 (Heikki Linnakangas)
9582 Previously, <acronym>WAL</> files with names ending in <literal>FF</>
9583 were not used because of this skipping. If you have <acronym>WAL</>
9584 backup or restore scripts that took this behavior into account, they
9585 will need to be adjusted.
9592 linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
9593 store the default foreign key match type (non-<literal>FULL</>,
9594 non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
9599 Previously this case was represented by <literal>u</>
9600 for <quote>unspecified</>.
9611 <title>Changes</title>
9614 Below you will find a detailed account of the changes between
9615 <productname>PostgreSQL</productname> 9.3 and the previous major
9620 <title>Server</title>
9623 <title>Locking</title>
9629 Prevent non-key-field row updates from blocking foreign key checks
9630 (Álvaro Herrera, Noah Misch, Andres Freund, Alexander
9631 Shulgin, Marti Raudsepp, Alexander Shulgin)
9635 This change improves concurrency and reduces the probability of
9636 deadlocks when updating tables involved in a foreign-key constraint.
9637 <command>UPDATE</>s that do not change any columns referenced in a
9638 foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
9639 the row, while foreign key checks use the new <literal>KEY SHARE</>
9640 lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
9641 So there is no blocking unless a foreign-key column is changed.
9647 Add configuration variable <link
9648 linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
9649 allow limiting how long a session will wait to acquire any one lock
9650 (Zoltán Böszörményi)
9659 <title>Indexes</title>
9665 Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
9666 support for range data types (Alexander Korotkov)
9672 Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
9673 unlogged (Jeevan Chalke)
9679 Improve performance of <acronym>GiST</> index insertion by randomizing
9680 the choice of which page to descend to when there are multiple equally
9681 good alternatives (Heikki Linnakangas)
9687 Improve concurrency of hash index operations (Robert Haas)
9696 <title>Optimizer</title>
9702 Collect and use histograms of upper and lower bounds, as well as range
9703 lengths, for <link linkend="rangetypes">range types</link>
9704 (Alexander Korotkov)
9710 Improve optimizer's cost estimation for index access (Tom Lane)
9716 Improve optimizer's hash table size estimate for
9717 doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
9723 Suppress no-op Result and Limit plan nodes
9724 (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
9730 Reduce optimizer overhead by not keeping plans on the basis of cheap
9731 startup cost when the optimizer only cares about total cost overall
9741 <title>General Performance</title>
9747 Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
9748 option to avoid the overhead of marking tuples as frozen later
9749 (Simon Riggs, Jeff Davis)
9755 Improve performance of <link
9756 linkend="datatype-numeric"><type>NUMERIC</></link> calculations
9763 Improve synchronization of sessions waiting for <link
9764 linkend="guc-commit-delay"><varname>commit_delay</></link>
9769 This greatly improves the usefulness of <varname>commit_delay</>.
9775 Improve performance of the <link
9776 linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
9777 COMMIT DELETE ROWS</></link> option by not truncating such temporary
9778 tables in transactions that haven't touched any temporary tables
9779 (Heikki Linnakangas)
9785 Make vacuum recheck visibility after it has removed expired tuples
9790 This increases the chance of a page being marked as all-visible.
9796 Add per-resource-owner lock caches (Jeff Janes)
9800 This speeds up lock bookkeeping at statement completion in
9801 multi-statement transactions that hold many locks; it is particularly
9802 useful for <application>pg_dump</>.
9808 Avoid scanning the entire relation cache at commit of a transaction
9809 that creates a new relation (Jeff Janes)
9813 This speeds up sessions that create many tables in successive
9814 small transactions, such as a <application>pg_restore</> run.
9820 Improve performance of transactions that drop many relations
9830 <title>Monitoring</title>
9836 Add optional ability to <link
9837 linkend="app-initdb-data-checksums">checksum</link> data pages and
9838 report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
9842 The checksum option can be set during <link
9843 linkend="APP-INITDB">initdb</link>.
9849 Split the <link linkend="monitoring-stats">statistics collector's</link>
9850 data file into separate global and per-database files (Tomas Vondra)
9854 This reduces the I/O required for statistics tracking.
9860 Fix the statistics collector to operate properly in cases where the
9861 system clock goes backwards (Tom Lane)
9865 Previously, statistics collection would stop until the time again
9866 reached the latest time previously recorded.
9872 Emit an informative message to postmaster standard error when we
9873 are about to stop logging there
9878 This should help reduce user confusion about where to look for log
9879 output in common configurations that log to standard error only during
9889 <title>Authentication</title>
9895 When an authentication failure occurs, log the relevant
9896 <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
9897 line, to ease debugging of unintended failures
9904 Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
9905 reporting and documentation (Peter Eisentraut)
9911 Add support for specifying <acronym>LDAP</> authentication parameters
9912 in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
9919 linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
9920 to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
9921 then remove insecure ciphers (Magnus Hagander)
9925 This should yield a more appropriate SSL cipher set.
9931 Parse and load <link
9932 linkend="auth-username-maps"><filename>pg_ident.conf</></link>
9933 once, not during each connection (Amit Kapila)
9937 This is similar to how <filename>pg_hba.conf</> is processed.
9946 <title>Server Settings</title>
9952 Greatly reduce System V <link linkend="sysvipc">shared
9953 memory</link> requirements (Robert Haas)
9957 On Unix-like systems, <function>mmap()</> is now used for most
9958 of <productname>PostgreSQL</>'s shared memory. For most users, this
9959 will eliminate any need to adjust kernel parameters for shared memory.
9965 Allow the postmaster to listen on multiple Unix-domain sockets
9966 (Honza Horák)
9970 The configuration parameter
9971 <varname>unix_socket_directory</> is replaced by <link
9972 linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
9973 which accepts a list of directories.
9979 Allow a directory of configuration files to be processed (Magnus
9980 Hagander, Greg Smith, Selena Deckelmann)
9984 Such a directory is specified with <link
9985 linkend="config-includes"><varname>include_dir</></link> in the server
9992 Increase the maximum <link
9993 linkend="APP-INITDB">initdb</link>-configured value for <link
9994 linkend="guc-shared-buffers"><varname>shared_buffers</></link>
9995 to 128MB (Robert Haas)
9999 This is the maximum value that initdb will attempt to set in <link
10000 linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
10001 the previous maximum was 32MB.
10007 Remove the <link linkend="guc-external-pid-file">external
10008 <acronym>PID</> file</link>, if any, on postmaster exit
10020 <title>Replication and Recovery</title>
10026 Allow a streaming replication standby to <link
10027 linkend="protocol-replication">follow a timeline switch</link>
10028 (Heikki Linnakangas)
10032 This allows streaming standby servers to receive WAL data from a slave
10033 newly promoted to master status. Previously, other standbys would
10034 require a resync to begin following the new master.
10040 Add <acronym>SQL</> functions <link
10041 linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
10043 linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
10048 These functions report the status of base backups.
10054 Improve performance of streaming log shipping with <link
10055 linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
10056 disabled (Andres Freund)
10062 Allow much faster promotion of a streaming standby to primary (Simon
10063 Riggs, Kyotaro Horiguchi)
10069 Add the last checkpoint's redo location to <link
10070 linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
10071 output (Fujii Masao)
10075 This information is useful for determining which <acronym>WAL</>
10076 files are needed for restore.
10082 Allow tools like <link
10083 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
10084 to run on computers with different architectures (Heikki
10089 WAL files can still only be replayed on servers with the same
10090 architecture as the primary; but they can now be transmitted to and
10091 stored on machines of any architecture, since the
10092 streaming replication protocol is now machine-independent.
10099 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
10100 <option>--write-recovery-conf</> output a
10101 minimal <filename>recovery.conf</> file (Zoltán
10102 Böszörményi, Magnus Hagander)
10106 This simplifies setting up a standby server.
10113 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
10115 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
10116 <option>--xlog-method</> to handle streaming timeline switches
10117 (Heikki Linnakangas)
10124 linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
10125 parameter to control the <acronym>WAL</> receiver's timeout
10130 This allows more rapid detection of connection failure.
10136 Change the <link linkend="wal"><acronym>WAL</></link> record format to
10137 allow splitting the record header across pages (Heikki Linnakangas)
10141 The new format is slightly more compact, and is more efficient to
10151 <title>Queries</title>
10157 Implement <acronym>SQL</>-standard <link
10158 linkend="queries-lateral"><literal>LATERAL</></link> option for
10159 <literal>FROM</>-clause subqueries and function calls (Tom Lane)
10163 This feature allows subqueries and functions in <literal>FROM</> to
10164 reference columns from other tables in the <literal>FROM</>
10165 clause. The <literal>LATERAL</> keyword is optional for functions.
10171 Add support for piping <link
10172 linkend="SQL-COPY"><command>COPY</></link> and <link
10173 linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
10174 data to/from an external program (Etsuro Fujita)
10180 Allow a multirow <link
10181 linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
10182 to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
10191 <title>Object Manipulation</title>
10197 Add support for <link linkend="event-triggers">event triggers</link>
10198 (Dimitri Fontaine, Robert Haas, Álvaro Herrera)
10202 This allows server-side functions written in event-enabled
10203 languages to be called when DDL commands are run.
10209 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
10210 wrappers</link> to support writes (inserts/updates/deletes) on foreign
10211 tables (KaiGai Kohei)
10217 Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
10218 NOT EXISTS</></link> clause (Fabrízio de Royes Mello)
10224 Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
10225 OWNED</></link> also change ownership of shared objects
10226 (Álvaro Herrera)
10232 Make <link linkend="sql-createaggregate"><command>CREATE
10233 AGGREGATE</></link> complain if the given initial value string is not
10234 valid input for the transition datatype (Tom Lane)
10240 Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
10241 TABLE</></link>'s messages about implicit index and sequence creation
10246 These messages now appear at <literal>DEBUG1</> verbosity, so that
10247 they will not be shown by default.
10253 Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
10254 EXISTS</></link> to succeed when a non-existent schema is specified
10255 in the table name (Bruce Momjian)
10259 Previously, it threw an error if the schema did not exist.
10265 Provide clients with <link
10266 linkend="libpq-pqresulterrorfield">constraint violation details</link>
10267 as separate fields (Pavel Stehule)
10271 This allows clients to retrieve table, column, data type, or
10272 constraint name error details. Previously such information had to be
10273 extracted from error strings. Client library support is required to
10274 access these fields.
10281 <title><command>ALTER</></title>
10287 Support <literal>IF NOT EXISTS</> option in <link
10288 linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
10293 This is useful for conditionally adding values to enumerated types.
10299 Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
10300 SET</></link> to establish settings for all users (Peter Eisentraut)
10304 This allows settings to apply to all users in all databases. <link
10305 linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
10306 already allowed addition of settings for all users in a single
10307 database. <filename>postgresql.conf</> has a similar effect.
10313 Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
10314 ... RENAME</></link> (Ali Dar)
10323 <title><link linkend="rules-views"><command>VIEWs</></link></title>
10329 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
10330 views</link> (Kevin Grittner)
10334 Unlike ordinary views, where the base tables are read on every access,
10335 materialized views create physical tables at creation or refresh time.
10336 Access to the materialized view then reads from its physical
10337 table. There is not yet any facility for incrementally refreshing
10338 materialized views or auto-accessing them via base table access.
10344 Make simple views <link
10345 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
10350 Simple views that reference some or all columns from a
10351 single base table are now updatable by default. More
10352 complex views can be made updatable using <link
10353 linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
10354 or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
10360 Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
10361 VIEW</></link> syntax (Peter Eisentraut)
10365 Internally this is translated into <command>CREATE VIEW ... WITH
10372 Improve view/rule printing code to handle cases where referenced
10373 tables are renamed, or columns are renamed, added, or dropped
10378 Table and column renamings can produce cases where, if we merely
10379 substitute the new name into the original text of a rule or view, the
10380 result is ambiguous. This change fixes the rule-dumping code to insert
10381 manufactured table and column aliases when needed to preserve the
10382 original semantics.
10393 <title>Data Types</title>
10399 Increase the maximum size of <link linkend="largeObjects">large
10400 objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
10404 This change includes adding 64-bit-capable large object access
10405 functions, both in the server and in libpq.
10411 Allow text <link linkend="datatype-timezones">timezone
10412 designations</link>, e.g. <quote>America/Chicago</>, in the
10413 <quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
10414 input (Bruce Momjian)
10421 <title><link linkend="datatype-json"><type>JSON</></link></title>
10427 Add <link linkend="functions-json">operators and functions</link>
10428 to extract elements from <type>JSON</> values (Andrew Dunstan)
10434 Allow <type>JSON</> values to be <link
10435 linkend="functions-json">converted into records</link>
10442 Add <link linkend="functions-json">functions</link> to convert
10443 scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
10456 <title>Functions</title>
10463 linkend="array-functions-table"><function>array_remove()</></link>
10465 linkend="array-functions-table"><function>array_replace()</></link>
10466 functions (Marco Nenciarini, Gabriele Bartolini)
10473 linkend="functions-string-other"><function>concat()</></link>
10475 linkend="functions-string-format"><function>format()</></link>
10476 to properly expand <literal>VARIADIC</>-labeled arguments
10484 linkend="functions-string-format"><function>format()</></link>
10485 to provide field width and left/right alignment options (Pavel Stehule)
10492 linkend="functions-formatting-table"><function>to_char()</></link>,
10494 linkend="functions-formatting-table"><function>to_date()</></link>,
10496 linkend="functions-formatting-table"><function>to_timestamp()</></link>
10497 handle negative (BC) century values properly
10502 Previously the behavior was either wrong or inconsistent
10503 with positive/<acronym>AD</> handling, e.g. with the format mask
10504 <quote>IYYY-IW-DY</>.
10511 linkend="functions-formatting-table"><function>to_date()</></link>
10513 linkend="functions-formatting-table"><function>to_timestamp()</></link>
10514 return proper results when mixing <acronym>ISO</> and Gregorian
10515 week/day designations (Bruce Momjian)
10522 linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
10523 to start a new line by default after each <literal>SELECT</> target
10524 list entry and <literal>FROM</> entry (Marko Tiikkaja)
10528 This reduces line length in view printing, for instance in <link
10529 linkend="APP-PGDUMP"><application>pg_dump</></link> output.
10535 Fix <function>map_sql_value_to_xml_value()</> to print values of
10536 domain types the same way their base type would be printed
10541 There are special formatting rules for certain built-in types such as
10542 <type>boolean</>; these rules now also apply to domains over these
10552 <title>Server-Side Languages</title>
10555 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
10561 Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
10562 expression (Asif Rehman)
10566 Previously, in a function returning a composite type,
10567 <literal>RETURN</> could only reference a variable of that type.
10573 Allow PL/pgSQL to access <link
10574 linkend="plpgsql-exception-diagnostics">constraint violation
10575 details</link> as separate fields (Pavel Stehule)
10581 Allow PL/pgSQL to access the number of rows processed by
10582 <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
10586 A <command>COPY</> executed in a PL/pgSQL function now updates the
10587 value retrieved by <link
10588 linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
10589 x = ROW_COUNT</></link>.
10595 Allow unreserved keywords to be used as identifiers everywhere in
10596 PL/pgSQL (Tom Lane)
10600 In certain places in the PL/pgSQL grammar, keywords had to be quoted
10601 to be used as identifiers, even if they were nominally unreserved.
10610 <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
10616 Add PL/Python result object string handler (Peter Eisentraut)
10620 This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
10626 Make PL/Python convert OID values to a proper Python numeric type
10633 Handle <link linkend="spi"><acronym>SPI</></link> errors raised
10634 explicitly (with PL/Python's <literal>RAISE</>) the same as
10635 internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
10646 <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
10652 Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
10657 At the end of any failed subtransaction, the core SPI code now
10658 releases any SPI tuple tables that were created during that
10659 subtransaction. This avoids the need for SPI-using code to keep track
10660 of such tuple tables and release them manually in error-recovery code.
10661 Failure to do so caused a number of transaction-lifespan memory leakage
10662 issues in PL/pgSQL and perhaps other SPI clients. <link
10663 linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
10664 now protects itself against multiple freeing requests, so any existing
10665 code that did take care to clean up shouldn't be broken by this change.
10671 Allow <acronym>SPI</> functions to access the number of rows processed
10672 by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
10681 <title>Client Applications</title>
10687 Add command-line utility <link
10688 linkend="app-pg-isready"><application>pg_isready</></link> to
10689 check if the server is ready to accept connections (Phil Sorber)
10695 Support multiple <option>--table</> arguments for <link
10696 linkend="APP-PGRESTORE"><application>pg_restore</></link>,
10697 <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
10698 <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
10699 and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
10704 This is similar to the way <link
10705 linkend="APP-PGDUMP"><application>pg_dump</></link>'s
10706 <option>--table</> option works.
10712 Add <option>--dbname</> option to <link
10713 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
10714 linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
10716 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
10717 to allow specifying a connection string (Amit Kapila)
10723 Add libpq function <link
10724 linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
10725 to return connection information (Zoltán
10726 Böszörményi, Magnus Hagander)
10733 <title><link linkend="APP-PSQL"><application>psql</></link></title>
10739 Adjust function cost settings so <application>psql</> tab
10740 completion and pattern searching are more efficient (Tom Lane)
10746 Improve <application>psql</>'s tab completion coverage (Jeff Janes,
10747 Dean Rasheed, Peter Eisentraut, Magnus Hagander)
10753 Allow the <application>psql</> <option>--single-transaction</>
10754 mode to work when reading from standard input (Fabien Coelho,
10759 Previously this option only worked when reading from a file.
10765 Remove <application>psql</> warning when connecting to an older
10766 server (Peter Eisentraut)
10770 A warning is still issued when connecting to a server of a newer major
10771 version than <application>psql</>'s.
10778 <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
10784 Add <application>psql</> command <command>\watch</> to repeatedly
10785 execute a SQL command (Will Leinweber)
10791 Add <application>psql</> command <command>\gset</> to store query
10792 results in <application>psql</> variables (Pavel Stehule)
10798 Add <acronym>SSL</> information to <application>psql</>'s
10799 <command>\conninfo</> command (Alastair Turner)
10805 Add <quote>Security</> column to <application>psql</>'s
10806 <command>\df+</> output (Jon Erdman)
10812 Allow <application>psql</> command <command>\l</> to accept a database
10813 name pattern (Peter Eisentraut)
10819 In <application>psql</>, do not allow <command>\connect</> to
10820 use defaults if there is no active connection (Bruce Momjian)
10824 This might be the case if the server had crashed.
10830 Properly reset state after failure of a SQL command executed with
10831 <application>psql</>'s <literal>\g</> <replaceable>file</>
10836 Previously, the output from subsequent SQL commands would unexpectedly
10837 continue to go to the same file.
10846 <title>Output</title>
10852 Add a <literal>latex-longtable</> output format to
10853 <application>psql</> (Bruce Momjian)
10857 This format allows tables to span multiple pages.
10863 Add a <literal>border=3</> output mode to the <application>psql</>
10864 <literal>latex</> format (Bruce Momjian)
10870 In <application>psql</>'s tuples-only and expanded output modes, no
10871 longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
10877 In <application>psql</>'s unaligned, expanded output mode, no longer
10878 print an empty line for zero rows (Peter Eisentraut)
10889 <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
10895 Add <application>pg_dump</> <option>--jobs</> option to dump tables in
10896 parallel (Joachim Wieland)
10902 Make <application>pg_dump</> output functions in a more predictable
10903 order (Joel Jacobson)
10909 Fix tar files emitted by <application>pg_dump</>
10910 to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
10916 Add <option>--dbname</> option to <application>pg_dump</>, for
10917 consistency with other client commands (Heikki Linnakangas)
10921 The database name could already be supplied last without a flag.
10930 <title><link linkend="APP-INITDB"><application>initdb</></link></title>
10936 Make initdb fsync the newly created data directory (Jeff Davis)
10940 This insures data integrity in event of a system crash shortly after
10941 initdb. This can be disabled by using <option>--nosync</>.
10947 Add initdb <option>--sync-only</> option to sync the data directory to durable
10948 storage (Bruce Momjian)
10952 This is used by <link
10953 linkend="pgupgrade"><application>pg_upgrade</></link>.
10959 Make initdb issue a warning about placing the data directory at the
10960 top of a file system mount point (Bruce Momjian)
10971 <title>Source Code</title>
10977 Add infrastructure to allow plug-in <link
10978 linkend="bgworker">background worker processes</link>
10979 (Álvaro Herrera)
10985 Create a centralized timeout <acronym>API</> (Zoltán
10986 Böszörményi)
10992 Create libpgcommon and move <function>pg_malloc()</> and other
10993 functions there (Álvaro Herrera, Andres Freund)
10997 This allows libpgport to be used solely for portability-related code.
11003 Add support for list links embedded in larger structs (Andres Freund)
11009 Use <literal>SA_RESTART</> for all signals,
11010 including <literal>SIGALRM</> (Tom Lane)
11016 Ensure that the correct text domain is used when
11017 translating <function>errcontext()</> messages
11018 (Heikki Linnakangas)
11024 Standardize naming of client-side memory allocation functions (Tom Lane)
11030 Provide support for <quote>static assertions</> that will fail at
11031 compile time if some compile-time-constant condition is not met
11032 (Andres Freund, Tom Lane)
11038 Support <function>Assert()</> in client-side code (Andrew Dunstan)
11044 Add decoration to inform the C compiler that some <function>ereport()</>
11045 and <function>elog()</> calls do not return (Peter Eisentraut,
11046 Andres Freund, Tom Lane, Heikki Linnakangas)
11052 Allow options to be passed to the regression
11053 test output comparison utility via <link
11054 linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
11061 Add isolation tests for <link
11062 linkend="SQL-CREATEINDEX"><command>CREATE INDEX
11063 CONCURRENTLY</></link> (Abhijit Menon-Sen)
11069 Remove typedefs for <type>int2</>/<type>int4</> as they are better
11070 represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
11076 Fix <link linkend="install">install-strip</link> on Mac <productname>OS
11077 X</> (Peter Eisentraut)
11083 Remove <link linkend="configure">configure</link> flag
11084 <option>--disable-shared</>, as it is no longer supported
11091 Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
11097 Provide Emacs macro to set Perl formatting to
11098 match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
11104 Run tool to check the keyword list whenever the backend grammar is
11111 Change the way <literal>UESCAPE</> is lexed, to significantly reduce
11112 the size of the lexer tables (Heikki Linnakangas)
11118 Centralize <application>flex</> and <application>bison</>
11119 <application>make</> rules (Peter Eisentraut)
11123 This is useful for <application>pgxs</> authors.
11129 Change many internal backend functions to return object <type>OID</>s
11130 rather than void (Dimitri Fontaine)
11134 This is useful for event triggers.
11140 Invent pre-commit/pre-prepare/pre-subcommit events for transaction
11141 callbacks (Tom Lane)
11145 Loadable modules that use transaction callbacks might need modification
11146 to handle these new event types.
11153 linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
11154 to produce a machine-readable description of a database object
11155 (Álvaro Herrera)
11161 Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
11167 Implement a generic binary heap and use it for Merge-Append
11168 operations (Abhijit Menon-Sen)
11174 Provide a tool to help detect timezone abbreviation changes when
11175 updating the <filename>src/timezone/data</> files
11182 Add <application>pkg-config</> support for <application>libpq</>
11183 and <application>ecpg</> libraries (Peter Eisentraut)
11189 Remove <filename>src/tools/backend</>, now that the content is on
11190 the <productname>PostgreSQL</> wiki (Bruce Momjian)
11196 Split out <link linkend="wal"><acronym>WAL</></link> reading as
11197 an independent facility (Heikki Linnakangas, Andres Freund)
11203 Use a 64-bit integer to represent <link
11204 linkend="wal"><acronym>WAL</></link> positions
11205 (<structname>XLogRecPtr</>) instead of two 32-bit integers
11206 (Heikki Linnakangas)
11210 Generally, tools that need to read the <acronym>WAL</> format
11211 will need to be adjusted.
11217 Allow <link linkend="plpython">PL/Python</link> to support
11218 platform-specific include directories (Peter Eisentraut)
11224 Allow <link linkend="plpython">PL/Python</link> on <productname>OS
11225 X</> to build against custom versions of <application>Python</>
11235 <title>Additional Modules</title>
11241 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
11242 data wrapper</link> contrib module to allow access to
11243 other <productname>Postgres</> servers (Shigeru Hanada)
11247 This foreign data wrapper supports writes.
11253 Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
11254 contrib program (Andres Freund)
11260 Add support for indexing of regular-expression searches in
11261 <link linkend="pgtrgm"><productname>pg_trgm</></link>
11262 (Alexander Korotkov)
11268 Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
11269 handling of multibyte characters (Tom Lane)
11273 On a platform that does not have the wcstombs() or towlower() library
11274 functions, this could result in an incompatible change in the contents
11275 of <productname>pg_trgm</> indexes for non-ASCII data. In such cases,
11276 <command>REINDEX</> those indexes to ensure correct search results.
11282 Add a <link linkend="pgstattuple">pgstattuple</link> function to report
11283 the size of the pending-insertions list of a <acronym>GIN</> index
11290 Make <link linkend="oid2name"><application>oid2name</></link>,
11291 <link linkend="pgbench"><application>pgbench</></link>, and
11292 <link linkend="vacuumlo"><application>vacuumlo</></link> set
11293 <varname>fallback_application_name</> (Amit Kapila)
11299 Improve output of <link
11300 linkend="pgtesttiming"><application>pg_test_timing</></link>
11307 Improve output of <link
11308 linkend="pgtestfsync"><application>pg_test_fsync</></link>
11315 Create a dedicated foreign data wrapper, with its own option validator
11316 function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
11320 When using this FDW to define the target of a <application>dblink</>
11321 connection, instead of using a hard-wired list of connection options,
11322 the underlying <application>libpq</> library is consulted to see what
11323 connection options it supports.
11330 <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
11336 Allow <application>pg_upgrade</> to do dumps and restores in
11337 parallel (Bruce Momjian, Andrew Dunstan)
11341 This allows parallel schema dump/restore of databases, as well as
11342 parallel copy/link of data files per tablespace. Use the
11343 <option>--jobs</> option to specify the level of parallelism.
11349 Make <application>pg_upgrade</> create Unix-domain sockets in
11350 the current directory (Bruce Momjian, Tom Lane)
11354 This reduces the possibility that someone will accidentally connect
11355 during the upgrade.
11361 Make <application>pg_upgrade</> <option>--check</> mode properly
11362 detect the location of non-default socket directories (Bruce
11369 Improve performance of <application>pg_upgrade</> for databases
11370 with many tables (Bruce Momjian)
11376 Improve <application>pg_upgrade</>'s logs by showing
11377 executed commands (Álvaro Herrera)
11383 Improve <application>pg_upgrade</>'s status display during
11384 copy/link (Bruce Momjian)
11393 <title><link linkend="pgbench"><application>pgbench</></link></title>
11399 Add <option>--foreign-keys</> option to <application>pgbench</>
11404 This adds foreign key constraints to the standard tables created by
11405 <application>pgbench</>, for use in foreign key performance testing.
11411 Allow <application>pgbench</> to aggregate performance statistics
11412 and produce output every <option>--aggregate-interval</>
11413 seconds (Tomas Vondra)
11419 Add <application>pgbench</> <option>--sampling-rate</> option
11420 to control the percentage of transactions logged (Tomas Vondra)
11426 Reduce and improve the status message output of
11427 <application>pgbench</>'s initialization mode (Robert Haas,
11434 Add <application>pgbench</> <option>-q</> mode to print one output
11435 line every five seconds (Tomas Vondra)
11441 Output <application>pgbench</> elapsed and estimated remaining
11442 time during initialization (Tomas Vondra)
11448 Allow <application>pgbench</> to use much larger scale factors,
11449 by changing relevant columns from <type>integer</> to <type>bigint</>
11450 when the requested scale factor exceeds 20000
11462 <title>Documentation</title>
11468 Allow <productname>EPUB</>-format documentation to be created
11475 Update <productname>FreeBSD</> kernel configuration documentation
11482 Improve <link linkend="tutorial-window"><literal>WINDOW</>
11483 function</link> documentation (Bruce Momjian, Florian Pflug)
11489 Add <link linkend="docguide-toolsets">instructions</link> for setting
11490 up the documentation tool chain on <productname>macOS</>
11498 linkend="guc-commit-delay"><varname>commit_delay</></link>
11499 documentation (Peter Geoghegan)