1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-3-13">
5 <title>Release 9.3.13</title>
8 <title>Release Date</title>
9 <simpara>2016-05-12</simpara>
13 This release contains a variety of fixes from 9.3.12.
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.13</title>
22 A dump/restore is not required for those running 9.3.X.
26 However, if you are upgrading from a version earlier than 9.3.9,
27 see <xref linkend="release-9-3-9">.
33 <title>Changes</title>
39 Clear the OpenSSL error queue before OpenSSL calls, rather than
40 assuming it's clear already; and make sure we leave it clear
41 afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
45 This change prevents problems when there are multiple connections
46 using OpenSSL within a single process and not all the code involved
47 follows the same rules for when to clear the error queue.
48 Failures have been reported specifically when a client application
49 uses SSL connections in <application>libpq</> concurrently with
50 SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL.
51 It's possible for similar problems to arise within the server as well,
52 if an extension module establishes an outgoing SSL connection.
58 Fix <quote>failed to build any <replaceable>N</>-way joins</quote>
59 planner error with a full join enclosed in the right-hand side of a
66 Fix incorrect handling of equivalence-class tests in multilevel
67 nestloop plans (Tom Lane)
71 Given a three-or-more-way equivalence class of variables, such
72 as <literal>X.X = Y.Y = Z.Z</>, it was possible for the planner to omit
73 some of the tests needed to enforce that all the variables are actually
74 equal, leading to join rows being output that didn't satisfy
75 the <literal>WHERE</> clauses. For various reasons, erroneous plans
76 were seldom selected in practice, so that this bug has gone undetected
83 Fix possible misbehavior of <literal>TH</>, <literal>th</>,
84 and <literal>Y,YYY</> format codes in <function>to_timestamp()</>
89 These could advance off the end of the input string, causing subsequent
90 format codes to read garbage.
96 Fix dumping of rules and views in which the <replaceable>array</>
97 argument of a <literal><replaceable>value</> <replaceable>operator</>
98 ANY (<replaceable>array</>)</literal> construct is a sub-SELECT
105 Make <application>pg_regress</> use a startup timeout from the
106 <envar>PGCTLTIMEOUT</> environment variable, if that's set (Tom Lane)
110 This is for consistency with a behavior recently added
111 to <application>pg_ctl</>; it eases automated testing on slow machines.
117 Fix <application>pg_upgrade</> to correctly restore extension
118 membership for operator families containing only one operator class
123 In such a case, the operator family was restored into the new database,
124 but it was no longer marked as part of the extension. This had no
125 immediate ill effects, but would cause later <application>pg_dump</>
126 runs to emit output that would cause (harmless) errors on restore.
132 Fix <application>pg_upgrade</> to not fail when new-cluster TOAST rules
133 differ from old (Tom Lane)
137 <application>pg_upgrade</> had special-case code to handle the
138 situation where the new <productname>PostgreSQL</> version thinks that
139 a table should have a TOAST table while the old version did not. That
140 code was broken, so remove it, and instead do nothing in such cases;
141 there seems no reason to believe that we can't get along fine without
142 a TOAST table if that was okay according to the old version's rules.
148 Author: Tom Lane <tgl@sss.pgh.pa.us>
149 Branch: REL9_3_STABLE [f4f4f6990] 2016-04-15 16:49:48 -0400
150 Branch: REL9_2_STABLE [d7dbc882d] 2016-04-15 16:49:48 -0400
151 Author: Tom Lane <tgl@sss.pgh.pa.us>
152 Branch: REL9_3_STABLE [992df9658] 2016-04-16 10:42:07 -0400
153 Branch: REL9_2_STABLE [9008922bf] 2016-04-16 10:41:57 -0400
154 Author: Tom Lane <tgl@sss.pgh.pa.us>
155 Branch: REL9_3_STABLE [35166fd76] 2016-04-18 13:19:52 -0400
156 Branch: REL9_2_STABLE [37f30b251] 2016-04-18 13:19:52 -0400
159 Back-port 9.4-era memory-barrier code changes into 9.2 and 9.3 (Tom Lane)
163 These changes were not originally needed in pre-9.4 branches, but we
164 recently back-patched a fix that expected the barrier code to work
165 properly. Only IA64 (when using icc), HPPA, and Alpha platforms are
172 Reduce the number of SysV semaphores used by a build configured with
173 <option>--disable-spinlocks</> (Tom Lane)
179 Rename internal function <function>strtoi()</>
180 to <function>strtoint()</> to avoid conflict with a NetBSD library
181 function (Thomas Munro)
187 Fix reporting of errors from <function>bind()</>
188 and <function>listen()</> system calls on Windows (Tom Lane)
194 Reduce verbosity of compiler output when building with Microsoft Visual
195 Studio (Christian Ullrich)
201 Fix <function>putenv()</> to work properly with Visual Studio 2013
208 Avoid possibly-unsafe use of Windows' <function>FormatMessage()</>
209 function (Christian Ullrich)
213 Use the <literal>FORMAT_MESSAGE_IGNORE_INSERTS</> flag where
214 appropriate. No live bug is known to exist here, but it seems like a
215 good idea to be careful.
221 Update time zone data files to <application>tzdata</> release 2016d
222 for DST law changes in Russia and Venezuela. There are new zone
223 names <literal>Europe/Kirov</> and <literal>Asia/Tomsk</> to reflect
224 the fact that these regions now have different time zone histories from
234 <sect1 id="release-9-3-12">
235 <title>Release 9.3.12</title>
238 <title>Release Date</title>
239 <simpara>2016-03-31</simpara>
243 This release contains a variety of fixes from 9.3.11.
244 For information about new features in the 9.3 major release, see
245 <xref linkend="release-9-3">.
249 <title>Migration to Version 9.3.12</title>
252 A dump/restore is not required for those running 9.3.X.
256 However, if you are upgrading from a version earlier than 9.3.9,
257 see <xref linkend="release-9-3-9">.
263 <title>Changes</title>
269 Fix incorrect handling of NULL index entries in
270 indexed <literal>ROW()</> comparisons (Tom Lane)
274 An index search using a row comparison such as <literal>ROW(a, b) >
275 ROW('x', 'y')</> would stop upon reaching a NULL entry in
276 the <structfield>b</> column, ignoring the fact that there might be
277 non-NULL <structfield>b</> values associated with later values
278 of <structfield>a</>.
284 Avoid unlikely data-loss scenarios due to renaming files without
285 adequate <function>fsync()</> calls before and after (Michael Paquier,
286 Tomas Vondra, Andres Freund)
292 Correctly handle cases where <literal>pg_subtrans</> is close to XID
293 wraparound during server startup (Jeff Janes)
299 Fix corner-case crash due to trying to free <function>localeconv()</>
300 output strings more than once (Tom Lane)
306 Fix parsing of affix files for <literal>ispell</> dictionaries
311 The code could go wrong if the affix file contained any characters
312 whose byte length changes during case-folding, for
313 example <literal>I</> in Turkish UTF8 locales.
319 Avoid use of <function>sscanf()</> to parse <literal>ispell</>
320 dictionary files (Artur Zakirov)
324 This dodges a portability problem on FreeBSD-derived platforms
331 Avoid a crash on old Windows versions (before 7SP1/2008R2SP1) with an
332 AVX2-capable CPU and a Postgres build done with Visual Studio 2013
337 This is a workaround for a bug in Visual Studio 2013's runtime
338 library, which Microsoft have stated they will not fix in that
345 Fix <application>psql</>'s tab completion logic to handle multibyte
346 characters properly (Kyotaro Horiguchi, Robert Haas)
352 Fix <application>psql</>'s tab completion for
353 <literal>SECURITY LABEL</> (Tom Lane)
357 Pressing TAB after <literal>SECURITY LABEL</> might cause a crash
358 or offering of inappropriate keywords.
364 Make <application>pg_ctl</> accept a wait timeout from the
365 <envar>PGCTLTIMEOUT</> environment variable, if none is specified on
366 the command line (Noah Misch)
370 This eases testing of slower buildfarm members by allowing them
371 to globally specify a longer-than-normal timeout for postmaster
372 startup and shutdown.
378 Fix incorrect test for Windows service status
379 in <application>pg_ctl</> (Manuel Mathar)
383 The previous set of minor releases attempted to
384 fix <application>pg_ctl</> to properly determine whether to send log
385 messages to Window's Event Log, but got the test backwards.
391 Fix <application>pgbench</> to correctly handle the combination
392 of <literal>-C</> and <literal>-M prepared</> options (Tom Lane)
398 In <application>pg_upgrade</>, skip creating a deletion script when
399 the new data directory is inside the old data directory (Bruce
404 Blind application of the script in such cases would result in loss of
405 the new data directory.
411 In PL/Perl, properly translate empty Postgres arrays into empty Perl
412 arrays (Alex Hunsaker)
418 Make PL/Python cope with function names that aren't valid Python
419 identifiers (Jim Nasby)
425 Fix multiple mistakes in the statistics returned
426 by <filename>contrib/pgstattuple</>'s <function>pgstatindex()</>
433 Remove dependency on <literal>psed</> in MSVC builds, since it's no
434 longer provided by core Perl (Michael Paquier, Andrew Dunstan)
440 Update time zone data files to <application>tzdata</> release 2016c
441 for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia
442 (Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus
443 historical corrections for Lithuania, Moldova, and Russia
444 (Kaliningrad, Samara, Volgograd).
453 <sect1 id="release-9-3-11">
454 <title>Release 9.3.11</title>
457 <title>Release Date</title>
458 <simpara>2016-02-11</simpara>
462 This release contains a variety of fixes from 9.3.10.
463 For information about new features in the 9.3 major release, see
464 <xref linkend="release-9-3">.
468 <title>Migration to Version 9.3.11</title>
471 A dump/restore is not required for those running 9.3.X.
475 However, if you are upgrading from a version earlier than 9.3.9,
476 see <xref linkend="release-9-3-9">.
482 <title>Changes</title>
488 Fix infinite loops and buffer-overrun problems in regular expressions
493 Very large character ranges in bracket expressions could cause
494 infinite loops in some cases, and memory overwrites in other cases.
501 Perform an immediate shutdown if the <filename>postmaster.pid</> file
502 is removed (Tom Lane)
506 The postmaster now checks every minute or so
507 that <filename>postmaster.pid</> is still there and still contains its
508 own PID. If not, it performs an immediate shutdown, as though it had
509 received <systemitem>SIGQUIT</>. The main motivation for this change
510 is to ensure that failed buildfarm runs will get cleaned up without
511 manual intervention; but it also serves to limit the bad effects if a
512 DBA forcibly removes <filename>postmaster.pid</> and then starts a new
519 In <literal>SERIALIZABLE</> transaction isolation mode, serialization
520 anomalies could be missed due to race conditions during insertions
521 (Kevin Grittner, Thomas Munro)
527 Fix failure to emit appropriate WAL records when doing <literal>ALTER
528 TABLE ... SET TABLESPACE</> for unlogged relations (Michael Paquier,
533 Even though the relation's data is unlogged, the move must be logged or
534 the relation will be inaccessible after a standby is promoted to master.
540 Fix possible misinitialization of unlogged relations at the end of
541 crash recovery (Andres Freund, Michael Paquier)
547 Ensure walsender slots are fully re-initialized when being re-used
554 Fix <command>ALTER COLUMN TYPE</> to reconstruct inherited check
555 constraints properly (Tom Lane)
561 Fix <command>REASSIGN OWNED</> to change ownership of composite types
562 properly (Álvaro Herrera)
568 Fix <command>REASSIGN OWNED</> and <command>ALTER OWNER</> to correctly
569 update granted-permissions lists when changing owners of data types,
570 foreign data wrappers, or foreign servers (Bruce Momjian,
571 Álvaro Herrera)
577 Fix <command>REASSIGN OWNED</> to ignore foreign user mappings,
578 rather than fail (Álvaro Herrera)
584 Fix possible crash after doing query rewrite for an updatable view
591 Fix planner's handling of <literal>LATERAL</> references (Tom
596 This fixes some corner cases that led to <quote>failed to build any
597 N-way joins</> or <quote>could not devise a query plan</> planner
604 Add more defenses against bad planner cost estimates for GIN index
605 scans when the index's internal statistics are very out-of-date
612 Make planner cope with hypothetical GIN indexes suggested by an index
613 advisor plug-in (Julien Rouhaud)
619 Speed up generation of unique table aliases in <command>EXPLAIN</> and
620 rule dumping, and ensure that generated aliases do not
621 exceed <literal>NAMEDATALEN</> (Tom Lane)
627 Fix dumping of whole-row Vars in <literal>ROW()</>
628 and <literal>VALUES()</> lists (Tom Lane)
634 Fix possible internal overflow in <type>numeric</> division
641 Fix enforcement of restrictions inside parentheses within regular
642 expression lookahead constraints (Tom Lane)
646 Lookahead constraints aren't allowed to contain backrefs, and
647 parentheses within them are always considered non-capturing, according
648 to the manual. However, the code failed to handle these cases properly
649 inside a parenthesized subexpression, and would give unexpected
656 Conversion of regular expressions to indexscan bounds could produce
657 incorrect bounds from regexps containing lookahead constraints
664 Fix regular-expression compiler to handle loops of constraint arcs
669 The code added for CVE-2007-4772 was both incomplete, in that it didn't
670 handle loops involving more than one state, and incorrect, in that it
671 could cause assertion failures (though there seem to be no bad
672 consequences of that in a non-assert build). Multi-state loops would
673 cause the compiler to run until the query was canceled or it reached
674 the too-many-states error condition.
680 Improve memory-usage accounting in regular-expression compiler
685 This causes the code to emit <quote>regular expression is too
686 complex</> errors in some cases that previously used unreasonable
687 amounts of time and memory.
693 Improve performance of regular-expression compiler (Tom Lane)
699 Make <literal>%h</> and <literal>%r</> escapes
700 in <varname>log_line_prefix</> work for messages emitted due
701 to <varname>log_connections</> (Tom Lane)
705 Previously, <literal>%h</>/<literal>%r</> started to work just after a
706 new session had emitted the <quote>connection received</> log message;
707 now they work for that message too.
713 On Windows, ensure the shared-memory mapping handle gets closed in
714 child processes that don't need it (Tom Lane, Amit Kapila)
718 This oversight resulted in failure to recover from crashes
719 whenever <varname>logging_collector</> is turned on.
725 Fix possible failure to detect socket EOF in non-blocking mode on
730 It's not entirely clear whether this problem can happen in pre-9.5
731 branches, but if it did, the symptom would be that a walsender process
732 would wait indefinitely rather than noticing a loss of connection.
738 Avoid leaking a token handle during SSPI authentication
745 In <application>psql</>, ensure that <application>libreadline</>'s idea
746 of the screen size is updated when the terminal window size changes
751 Previously, <application>libreadline</> did not notice if the window
752 was resized during query output, leading to strange behavior during
753 later input of multiline queries.
759 Fix <application>psql</>'s <literal>\det</> command to interpret its
760 pattern argument the same way as other <literal>\d</> commands with
761 potentially schema-qualified patterns do (Reece Hart)
767 Avoid possible crash in <application>psql</>'s <literal>\c</> command
768 when previous connection was via Unix socket and command specifies a
769 new hostname and same username (Tom Lane)
775 In <literal>pg_ctl start -w</>, test child process status directly
776 rather than relying on heuristics (Tom Lane, Michael Paquier)
780 Previously, <application>pg_ctl</> relied on an assumption that the new
781 postmaster would always create <filename>postmaster.pid</> within five
782 seconds. But that can fail on heavily-loaded systems,
783 causing <application>pg_ctl</> to report incorrectly that the
784 postmaster failed to start.
788 Except on Windows, this change also means that a <literal>pg_ctl start
789 -w</> done immediately after another such command will now reliably
790 fail, whereas previously it would report success if done within two
791 seconds of the first command.
797 In <literal>pg_ctl start -w</>, don't attempt to use a wildcard listen
798 address to connect to the postmaster (Kondo Yuta)
802 On Windows, <application>pg_ctl</> would fail to detect postmaster
803 startup if <varname>listen_addresses</> is set to <literal>0.0.0.0</>
804 or <literal>::</>, because it would try to use that value verbatim as
805 the address to connect to, which doesn't work. Instead assume
806 that <literal>127.0.0.1</> or <literal>::1</>, respectively, is the
813 In <application>pg_ctl</> on Windows, check service status to decide
814 where to send output, rather than checking if standard output is a
815 terminal (Michael Paquier)
821 In <application>pg_dump</> and <application>pg_basebackup</>, adopt
822 the GNU convention for handling tar-archive members exceeding 8GB
827 The POSIX standard for <literal>tar</> file format does not allow
828 archive member files to exceed 8GB, but most modern implementations
829 of <application>tar</> support an extension that fixes that. Adopt
830 this extension so that <application>pg_dump</> with <option>-Ft</> no
831 longer fails on tables with more than 8GB of data, and so
832 that <application>pg_basebackup</> can handle files larger than 8GB.
833 In addition, fix some portability issues that could cause failures for
834 members between 4GB and 8GB on some platforms. Potentially these
835 problems could cause unrecoverable data loss due to unreadable backup
842 Fix assorted corner-case bugs in <application>pg_dump</>'s processing
843 of extension member objects (Tom Lane)
849 Make <application>pg_dump</> mark a view's triggers as needing to be
850 processed after its rule, to prevent possible failure during
851 parallel <application>pg_restore</> (Tom Lane)
857 Ensure that relation option values are properly quoted
858 in <application>pg_dump</> (Kouhei Sutou, Tom Lane)
862 A reloption value that isn't a simple identifier or number could lead
863 to dump/reload failures due to syntax errors in CREATE statements
864 issued by <application>pg_dump</>. This is not an issue with any
865 reloption currently supported by core <productname>PostgreSQL</>, but
866 extensions could allow reloptions that cause the problem.
872 Avoid repeated password prompts during parallel <application>pg_dump</>
879 Fix <application>pg_upgrade</>'s file-copying code to handle errors
880 properly on Windows (Bruce Momjian)
886 Install guards in <application>pgbench</> against corner-case overflow
887 conditions during evaluation of script-specified division or modulo
888 operators (Fabien Coelho, Michael Paquier)
894 Fix failure to localize messages emitted
895 by <application>pg_receivexlog</> and <application>pg_recvlogical</>
902 Avoid dump/reload problems when using both <application>plpython2</>
903 and <application>plpython3</> (Tom Lane)
907 In principle, both versions of <application>PL/Python</> can be used in
908 the same database, though not in the same session (because the two
909 versions of <application>libpython</> cannot safely be used concurrently).
910 However, <application>pg_restore</> and <application>pg_upgrade</> both
911 do things that can fall foul of the same-session restriction. Work
912 around that by changing the timing of the check.
918 Fix <application>PL/Python</> regression tests to pass with Python 3.5
925 Fix premature clearing of <application>libpq</>'s input buffer when
926 socket EOF is seen (Tom Lane)
930 This mistake caused <application>libpq</> to sometimes not report the
931 backend's final error message before reporting <quote>server closed the
932 connection unexpectedly</>.
938 Prevent certain <application>PL/Java</> parameters from being set by
939 non-superusers (Noah Misch)
943 This change mitigates a <application>PL/Java</> security bug
944 (CVE-2016-0766), which was fixed in <application>PL/Java</> by marking
945 these parameters as superuser-only. To fix the security hazard for
946 sites that update <productname>PostgreSQL</> more frequently
947 than <application>PL/Java</>, make the core code aware of them also.
953 Improve <application>libpq</>'s handling of out-of-memory situations
954 (Michael Paquier, Amit Kapila, Heikki Linnakangas)
960 Fix order of arguments
961 in <application>ecpg</>-generated <literal>typedef</> statements
968 Use <literal>%g</> not <literal>%f</> format
969 in <application>ecpg</>'s <function>PGTYPESnumeric_from_double()</>
976 Fix <application>ecpg</>-supplied header files to not contain comments
977 continued from a preprocessor directive line onto the next line
982 Such a comment is rejected by <application>ecpg</>. It's not yet clear
983 whether <application>ecpg</> itself should be changed.
989 Fix <function>hstore_to_json_loose()</>'s test for whether
990 an <type>hstore</> value can be converted to a JSON number (Tom Lane)
994 Previously this function could be fooled by non-alphanumeric trailing
995 characters, leading to emitting syntactically-invalid JSON.
1001 Ensure that <filename>contrib/pgcrypto</>'s <function>crypt()</>
1002 function can be interrupted by query cancel (Andreas Karlsson)
1008 Accept <application>flex</> versions later than 2.5.x
1009 (Tom Lane, Michael Paquier)
1013 Now that flex 2.6.0 has been released, the version checks in our build
1014 scripts needed to be adjusted.
1020 Improve reproducibility of build output by ensuring filenames are given
1021 to the linker in a fixed order (Christoph Berg)
1025 This avoids possible bitwise differences in the produced executable
1026 files from one build to the next.
1032 Install our <filename>missing</> script where PGXS builds can find it
1037 This allows sane behavior in a PGXS build done on a machine where build
1038 tools such as <application>bison</> are missing.
1044 Ensure that <filename>dynloader.h</> is included in the installed
1045 header files in MSVC builds (Bruce Momjian, Michael Paquier)
1051 Add variant regression test expected-output file to match behavior of
1052 current <application>libxml2</> (Tom Lane)
1056 The fix for <application>libxml2</>'s CVE-2015-7499 causes it not to
1057 output error context reports in some cases where it used to do so.
1058 This seems to be a bug, but we'll probably have to live with it for
1059 some time, so work around it.
1065 Update time zone data files to <application>tzdata</> release 2016a for
1066 DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal
1067 Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.
1076 <sect1 id="release-9-3-10">
1077 <title>Release 9.3.10</title>
1080 <title>Release Date</title>
1081 <simpara>2015-10-08</simpara>
1085 This release contains a variety of fixes from 9.3.9.
1086 For information about new features in the 9.3 major release, see
1087 <xref linkend="release-9-3">.
1091 <title>Migration to Version 9.3.10</title>
1094 A dump/restore is not required for those running 9.3.X.
1098 However, if you are upgrading from a version earlier than 9.3.9,
1099 see <xref linkend="release-9-3-9">.
1105 <title>Changes</title>
1111 Guard against stack overflows in <type>json</> parsing
1116 If an application constructs PostgreSQL <type>json</>
1117 or <type>jsonb</> values from arbitrary user input, the application's
1118 users can reliably crash the PostgreSQL server, causing momentary
1119 denial of service. (CVE-2015-5289)
1125 Fix <filename>contrib/pgcrypto</> to detect and report
1126 too-short <function>crypt()</> salts (Josh Kupershmidt)
1130 Certain invalid salt arguments crashed the server or disclosed a few
1131 bytes of server memory. We have not ruled out the viability of
1132 attacks that arrange for presence of confidential information in the
1133 disclosed bytes, but they seem unlikely. (CVE-2015-5288)
1139 Fix subtransaction cleanup after a portal (cursor) belonging to an
1140 outer subtransaction fails (Tom Lane, Michael Paquier)
1144 A function executed in an outer-subtransaction cursor could cause an
1145 assertion failure or crash by referencing a relation created within an
1146 inner subtransaction.
1152 Ensure all relations referred to by an updatable view are properly
1153 locked during an update statement (Dean Rasheed)
1159 Fix insertion of relations into the relation cache <quote>init file</>
1164 An oversight in a patch in the most recent minor releases
1165 caused <structname>pg_trigger_tgrelid_tgname_index</> to be omitted
1166 from the init file. Subsequent sessions detected this, then deemed the
1167 init file to be broken and silently ignored it, resulting in a
1168 significant degradation in session startup time. In addition to fixing
1169 the bug, install some guards so that any similar future mistake will be
1176 Avoid O(N^2) behavior when inserting many tuples into a SPI query
1177 result (Neil Conway)
1183 Improve <command>LISTEN</> startup time when there are many unread
1184 notifications (Matt Newell)
1190 Fix performance problem when a session alters large numbers of foreign
1191 key constraints (Jan Wieck, Tom Lane)
1195 This was seen primarily when restoring <application>pg_dump</> output
1196 for databases with many thousands of tables.
1202 Disable SSL renegotiation by default (Michael Paquier, Andres Freund)
1206 While use of SSL renegotiation is a good idea in theory, we have seen
1207 too many bugs in practice, both in the underlying OpenSSL library and
1208 in our usage of it. Renegotiation will be removed entirely in 9.5 and
1209 later. In the older branches, just change the default value
1210 of <varname>ssl_renegotiation_limit</> to zero (disabled).
1216 Lower the minimum values of the <literal>*_freeze_max_age</> parameters
1221 This is mainly to make tests of related behavior less time-consuming,
1222 but it may also be of value for installations with limited disk space.
1228 Limit the maximum value of <varname>wal_buffers</> to 2GB to avoid
1229 server crashes (Josh Berkus)
1235 Avoid logging complaints when a parameter that can only be set at
1236 server start appears multiple times in <filename>postgresql.conf</>,
1237 and fix counting of line numbers after an <literal>include_dir</>
1238 directive (Tom Lane)
1244 Fix rare internal overflow in multiplication of <type>numeric</> values
1251 Guard against hard-to-reach stack overflows involving record types,
1252 range types, <type>json</>, <type>jsonb</>, <type>tsquery</>,
1253 <type>ltxtquery</> and <type>query_int</> (Noah Misch)
1259 Fix handling of <literal>DOW</> and <literal>DOY</> in datetime input
1264 These tokens aren't meant to be used in datetime values, but previously
1265 they resulted in opaque internal error messages rather
1266 than <quote>invalid input syntax</>.
1272 Add more query-cancel checks to regular expression matching (Tom Lane)
1278 Add recursion depth protections to regular expression, <literal>SIMILAR
1279 TO</>, and <literal>LIKE</> matching (Tom Lane)
1283 Suitable search patterns and a low stack depth limit could lead to
1284 stack-overrun crashes.
1290 Fix potential infinite loop in regular expression execution (Tom Lane)
1294 A search pattern that can apparently match a zero-length string, but
1295 actually doesn't match because of a back reference, could lead to an
1302 In regular expression execution, correctly record match data for
1303 capturing parentheses within a quantifier even when the match is
1304 zero-length (Tom Lane)
1310 Fix low-memory failures in regular expression compilation
1311 (Andreas Seltenreich)
1317 Fix low-probability memory leak during regular expression execution
1324 Fix rare low-memory failure in lock cleanup during transaction abort
1331 Fix <quote>unexpected out-of-memory situation during sort</> errors
1332 when using tuplestores with small <varname>work_mem</> settings (Tom
1339 Fix very-low-probability stack overrun in <function>qsort</> (Tom Lane)
1345 Fix <quote>invalid memory alloc request size</> failure in hash joins
1346 with large <varname>work_mem</> settings (Tomas Vondra, Tom Lane)
1352 Fix assorted planner bugs (Tom Lane)
1356 These mistakes could lead to incorrect query plans that would give wrong
1357 answers, or to assertion failures in assert-enabled builds, or to odd
1358 planner errors such as <quote>could not devise a query plan for the
1359 given query</>, <quote>could not find pathkey item to
1360 sort</>, <quote>plan should not reference subplan's variable</>,
1361 or <quote>failed to assign all NestLoopParams to plan nodes</>.
1362 Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz
1363 testing that exposed these problems.
1369 Improve planner's performance for <command>UPDATE</>/<command>DELETE</>
1370 on large inheritance sets (Tom Lane, Dean Rasheed)
1376 Ensure standby promotion trigger files are removed at postmaster
1377 startup (Michael Paquier, Fujii Masao)
1381 This prevents unwanted promotion from occurring if these files appear
1382 in a database backup that is used to initialize a new standby server.
1388 During postmaster shutdown, ensure that per-socket lock files are
1389 removed and listen sockets are closed before we remove
1390 the <filename>postmaster.pid</> file (Tom Lane)
1394 This avoids race-condition failures if an external script attempts to
1395 start a new postmaster as soon as <literal>pg_ctl stop</> returns.
1401 Fix postmaster's handling of a startup-process crash during crash
1406 If, during a crash recovery cycle, the startup process crashes without
1407 having restored database consistency, we'd try to launch a new startup
1408 process, which typically would just crash again, leading to an infinite
1415 Make emergency autovacuuming for multixact wraparound more robust
1422 Do not print a <literal>WARNING</> when an autovacuum worker is already
1423 gone when we attempt to signal it, and reduce log verbosity for such
1430 Prevent autovacuum launcher from sleeping unduly long if the server
1431 clock is moved backwards a large amount (Álvaro Herrera)
1437 Ensure that cleanup of a GIN index's pending-insertions list is
1438 interruptable by cancel requests (Jeff Janes)
1444 Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas)
1448 Such a page might be left behind after a crash.
1454 Fix handling of all-zeroes pages in SP-GiST indexes (Heikki
1459 <command>VACUUM</> attempted to recycle such pages, but did so in a
1460 way that wasn't crash-safe.
1466 Fix off-by-one error that led to otherwise-harmless warnings
1467 about <quote>apparent wraparound</> in subtrans/multixact truncation
1474 Fix misreporting of <command>CONTINUE</> and <command>MOVE</> statement
1475 types in <application>PL/pgSQL</>'s error context messages
1476 (Pavel Stehule, Tom Lane)
1482 Fix <application>PL/Perl</> to handle non-<acronym>ASCII</> error
1483 message texts correctly (Alex Hunsaker)
1489 Fix <application>PL/Python</> crash when returning the string
1490 representation of a <type>record</> result (Tom Lane)
1496 Fix some places in <application>PL/Tcl</> that neglected to check for
1497 failure of <function>malloc()</> calls (Michael Paquier, Álvaro
1504 In <filename>contrib/isn</>, fix output of ISBN-13 numbers that begin
1505 with 979 (Fabien Coelho)
1509 EANs beginning with 979 (but not 9790) are considered ISBNs, but they
1510 must be printed in the new 13-digit format, not the 10-digit format.
1516 Improve <filename>contrib/postgres_fdw</>'s handling of
1517 collation-related decisions (Tom Lane)
1521 The main user-visible effect is expected to be that comparisons
1522 involving <type>varchar</> columns will be sent to the remote server
1523 for execution in more cases than before.
1529 Improve <application>libpq</>'s handling of out-of-memory conditions
1530 (Michael Paquier, Heikki Linnakangas)
1536 Fix memory leaks and missing out-of-memory checks
1537 in <application>ecpg</> (Michael Paquier)
1543 Fix <application>psql</>'s code for locale-aware formatting of numeric
1548 The formatting code invoked by <literal>\pset numericlocale on</>
1549 did the wrong thing for some uncommon cases such as numbers with an
1550 exponent but no decimal point. It could also mangle already-localized
1551 output from the <type>money</> data type.
1557 Prevent crash in <application>psql</>'s <command>\c</> command when
1558 there is no current connection (Noah Misch)
1564 Make <application>pg_dump</> handle inherited <literal>NOT VALID</>
1565 check constraints correctly (Tom Lane)
1571 Fix selection of default <application>zlib</> compression level
1572 in <application>pg_dump</>'s directory output format (Andrew Dunstan)
1578 Ensure that temporary files created during a <application>pg_dump</>
1579 run with <acronym>tar</>-format output are not world-readable (Michael
1586 Fix <application>pg_dump</> and <application>pg_upgrade</> to support
1587 cases where the <literal>postgres</> or <literal>template1</> database
1588 is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)
1594 Fix <application>pg_dump</> to handle object privileges sanely when
1595 dumping from a server too old to have a particular privilege type
1600 When dumping data types from pre-9.2 servers, and when dumping
1601 functions or procedural languages from pre-7.3
1602 servers, <application>pg_dump</> would
1603 produce <command>GRANT</>/<command>REVOKE</> commands that revoked the
1604 owner's grantable privileges and instead granted all privileges
1605 to <literal>PUBLIC</>. Since the privileges involved are
1606 just <literal>USAGE</> and <literal>EXECUTE</>, this isn't a security
1607 problem, but it's certainly a surprising representation of the older
1608 systems' behavior. Fix it to leave the default privilege state alone
1615 Fix <application>pg_dump</> to dump shell types (Tom Lane)
1619 Shell types (that is, not-yet-fully-defined types) aren't useful for
1620 much, but nonetheless <application>pg_dump</> should dump them.
1626 Fix assorted minor memory leaks in <application>pg_dump</> and other
1627 client-side programs (Michael Paquier)
1633 Fix spinlock assembly code for PPC hardware to be compatible
1634 with <acronym>AIX</>'s native assembler (Tom Lane)
1638 Building with <application>gcc</> didn't work if <application>gcc</>
1639 had been configured to use the native assembler, which is becoming more
1646 On <acronym>AIX</>, test the <literal>-qlonglong</> compiler option
1647 rather than just assuming it's safe to use (Noah Misch)
1653 On <acronym>AIX</>, use <literal>-Wl,-brtllib</> link option to allow
1654 symbols to be resolved at runtime (Noah Misch)
1658 Perl relies on this ability in 5.8.0 and later.
1664 Avoid use of inline functions when compiling with
1665 32-bit <application>xlc</>, due to compiler bugs (Noah Misch)
1671 Use <filename>librt</> for <function>sched_yield()</> when necessary,
1672 which it is on some Solaris versions (Oskari Saarenmaa)
1678 Fix Windows <filename>install.bat</> script to handle target directory
1679 names that contain spaces (Heikki Linnakangas)
1685 Make the numeric form of the <productname>PostgreSQL</> version number
1686 (e.g., <literal>90405</>) readily available to extension Makefiles,
1687 as a variable named <varname>VERSION_NUM</> (Michael Paquier)
1693 Update time zone data files to <application>tzdata</> release 2015g for
1694 DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk
1695 Island, North Korea, Turkey, and Uruguay. There is a new zone name
1696 <literal>America/Fort_Nelson</> for the Canadian Northern Rockies.
1705 <sect1 id="release-9-3-9">
1706 <title>Release 9.3.9</title>
1709 <title>Release Date</title>
1710 <simpara>2015-06-12</simpara>
1714 This release contains a small number of fixes from 9.3.8.
1715 For information about new features in the 9.3 major release, see
1716 <xref linkend="release-9-3">.
1720 <title>Migration to Version 9.3.9</title>
1723 A dump/restore is not required for those running 9.3.X.
1727 However, if you are upgrading an installation that was previously
1728 upgraded using a <application>pg_upgrade</> version between 9.3.0 and
1729 9.3.4 inclusive, see the first changelog entry below.
1733 Also, if you are upgrading from a version earlier than 9.3.7,
1734 see <xref linkend="release-9-3-7">.
1740 <title>Changes</title>
1746 Fix possible failure to recover from an inconsistent database state
1751 Recent <productname>PostgreSQL</> releases introduced mechanisms to
1752 protect against multixact wraparound, but some of that code did not
1753 account for the possibility that it would need to run during crash
1754 recovery, when the database may not be in a consistent state. This
1755 could result in failure to restart after a crash, or failure to start
1756 up a secondary server. The lingering effects of a previously-fixed
1757 bug in <application>pg_upgrade</> could also cause such a failure, in
1758 installations that had used <application>pg_upgrade</> versions
1759 between 9.3.0 and 9.3.4.
1763 The <application>pg_upgrade</> bug in question was that it would
1764 set <literal>oldestMultiXid</> to 1 in <filename>pg_control</> even
1765 if the true value should be higher. With the fixes introduced in
1766 this release, such a situation will result in immediate emergency
1767 autovacuuming until a correct <literal>oldestMultiXid</> value can be
1768 determined. If that would pose a hardship, users can avoid it by
1769 doing manual vacuuming <emphasis>before</> upgrading to this release.
1775 Check whether <application>pg_controldata</> reports <quote>Latest
1776 checkpoint's oldestMultiXid</> to be 1. If not, there's nothing
1782 Look in <filename>PGDATA/pg_multixact/offsets</> to see if there's a
1783 file named <filename>0000</>. If there is, there's nothing to do.
1788 Otherwise, for each table that has
1789 <structname>pg_class</>.<structfield>relminmxid</> equal to 1,
1790 <command>VACUUM</> that table with
1791 both <xref linkend="guc-vacuum-multixact-freeze-min-age">
1792 and <xref linkend="guc-vacuum-multixact-freeze-table-age"> set to
1793 zero. (You can use the vacuum cost delay parameters described
1794 in <xref linkend="runtime-config-resource-vacuum-cost"> to reduce
1795 the performance consequences for concurrent sessions.) You must
1796 use <productname>PostgreSQL</> 9.3.5 or later to perform this step.
1805 Fix rare failure to invalidate relation cache init file (Tom Lane)
1809 With just the wrong timing of concurrent activity, a <command>VACUUM
1810 FULL</> on a system catalog might fail to update the <quote>init file</>
1811 that's used to avoid cache-loading work for new sessions. This would
1812 result in later sessions being unable to access that catalog at all.
1813 This is a very ancient bug, but it's so hard to trigger that no
1814 reproducible case had been seen until recently.
1820 Avoid deadlock between incoming sessions and <literal>CREATE/DROP
1821 DATABASE</> (Tom Lane)
1825 A new session starting in a database that is the target of
1826 a <command>DROP DATABASE</> command, or is the template for
1827 a <command>CREATE DATABASE</> command, could cause the command to wait
1828 for five seconds and then fail, even if the new session would have
1835 Improve planner's cost estimates for semi-joins and anti-joins with
1836 inner indexscans (Tom Lane, Tomas Vondra)
1840 This type of plan is quite cheap when all the join clauses are used
1841 as index scan conditions, even if the inner scan would nominally
1842 fetch many rows, because the executor will stop after obtaining one
1843 row. The planner only partially accounted for that effect, and would
1844 therefore overestimate the cost, leading it to possibly choose some
1845 other much less efficient plan type.
1854 <sect1 id="release-9-3-8">
1855 <title>Release 9.3.8</title>
1858 <title>Release Date</title>
1859 <simpara>2015-06-04</simpara>
1863 This release contains a small number of fixes from 9.3.7.
1864 For information about new features in the 9.3 major release, see
1865 <xref linkend="release-9-3">.
1869 <title>Migration to Version 9.3.8</title>
1872 A dump/restore is not required for those running 9.3.X.
1876 However, if you are upgrading from a version earlier than 9.3.7,
1877 see <xref linkend="release-9-3-7">.
1883 <title>Changes</title>
1889 Avoid failures while <function>fsync</>'ing data directory during
1890 crash restart (Abhijit Menon-Sen, Tom Lane)
1894 In the previous minor releases we added a patch to <function>fsync</>
1895 everything in the data directory after a crash. Unfortunately its
1896 response to any error condition was to fail, thereby preventing the
1897 server from starting up, even when the problem was quite harmless.
1898 An example is that an unwritable file in the data directory would
1899 prevent restart on some platforms; but it is common to make SSL
1900 certificate files unwritable by the server. Revise this behavior so
1901 that permissions failures are ignored altogether, and other types of
1902 failures are logged but do not prevent continuing.
1906 Also apply the same rules in <literal>initdb --sync-only</>.
1907 This case is less critical but it should act similarly.
1913 Fix <function>pg_get_functiondef()</> to show
1914 functions' <literal>LEAKPROOF</> property, if set (Jeevan Chalke)
1920 Remove <application>configure</>'s check prohibiting linking to a
1921 threaded <application>libpython</>
1922 on <systemitem class="osname">OpenBSD</> (Tom Lane)
1926 The failure this restriction was meant to prevent seems to not be a
1927 problem anymore on current <systemitem class="osname">OpenBSD</>
1933 Author: Tom Lane <tgl@sss.pgh.pa.us>
1934 Branch: REL9_3_STABLE [c6b7b9a9c] 2015-05-21 20:41:55 -0400
1935 Branch: REL9_2_STABLE [b78fbfe65] 2015-05-21 20:41:55 -0400
1936 Branch: REL9_1_STABLE [2c2c5f0e0] 2015-05-21 20:41:55 -0400
1937 Branch: REL9_0_STABLE [4dddf8552] 2015-05-21 20:41:55 -0400
1942 Allow <application>libpq</> to use TLS protocol versions beyond v1
1947 For a long time, <application>libpq</> was coded so that the only SSL
1948 protocol it would allow was TLS v1. Now that newer TLS versions are
1949 becoming popular, allow it to negotiate the highest commonly-supported
1950 TLS version with the server. (<productname>PostgreSQL</> servers were
1951 already capable of such negotiation, so no change is needed on the
1952 server side.) This is a back-patch of a change already released in
1962 <sect1 id="release-9-3-7">
1963 <title>Release 9.3.7</title>
1966 <title>Release Date</title>
1967 <simpara>2015-05-22</simpara>
1971 This release contains a variety of fixes from 9.3.6.
1972 For information about new features in the 9.3 major release, see
1973 <xref linkend="release-9-3">.
1977 <title>Migration to Version 9.3.7</title>
1980 A dump/restore is not required for those running 9.3.X.
1984 However, if you use <filename>contrib/citext</>'s
1985 <function>regexp_matches()</> functions, see the changelog entry below
1990 Also, if you are upgrading from a version earlier than 9.3.6,
1991 see <xref linkend="release-9-3-6">.
1997 <title>Changes</title>
2003 Avoid possible crash when client disconnects just before the
2004 authentication timeout expires (Benkocs Norbert Attila)
2008 If the timeout interrupt fired partway through the session shutdown
2009 sequence, SSL-related state would be freed twice, typically causing a
2010 crash and hence denial of service to other sessions. Experimentation
2011 shows that an unauthenticated remote attacker could trigger the bug
2012 somewhat consistently, hence treat as security issue.
2019 Improve detection of system-call failures (Noah Misch)
2023 Our replacement implementation of <function>snprintf()</> failed to
2024 check for errors reported by the underlying system library calls;
2025 the main case that might be missed is out-of-memory situations.
2026 In the worst case this might lead to information exposure, due to our
2027 code assuming that a buffer had been overwritten when it hadn't been.
2028 Also, there were a few places in which security-relevant calls of other
2029 system library functions did not check for failure.
2033 It remains possible that some calls of the <function>*printf()</>
2034 family of functions are vulnerable to information disclosure if an
2035 out-of-memory error occurs at just the wrong time. We judge the risk
2036 to not be large, but will continue analysis in this area.
2043 In <filename>contrib/pgcrypto</>, uniformly report decryption failures
2044 as <quote>Wrong key or corrupt data</> (Noah Misch)
2048 Previously, some cases of decryption with an incorrect key could report
2049 other error message texts. It has been shown that such variance in
2050 error reports can aid attackers in recovering keys from other systems.
2051 While it's unknown whether <filename>pgcrypto</>'s specific behaviors
2052 are likewise exploitable, it seems better to avoid the risk by using a
2053 one-size-fits-all message.
2060 Protect against wraparound of multixact member IDs
2061 (Álvaro Herrera, Robert Haas, Thomas Munro)
2065 Under certain usage patterns, the existing defenses against this might
2066 be insufficient, allowing <filename>pg_multixact/members</> files to be
2067 removed too early, resulting in data loss.
2068 The fix for this includes modifying the server to fail transactions
2069 that would result in overwriting old multixact member ID data, and
2070 improving autovacuum to ensure it will act proactively to prevent
2071 multixact member ID wraparound, as it does for transaction ID
2078 Fix incorrect declaration of <filename>contrib/citext</>'s
2079 <function>regexp_matches()</> functions (Tom Lane)
2083 These functions should return <type>setof text[]</>, like the core
2084 functions they are wrappers for; but they were incorrectly declared as
2085 returning just <type>text[]</>. This mistake had two results: first,
2086 if there was no match you got a scalar null result, whereas what you
2087 should get is an empty set (zero rows). Second, the <literal>g</> flag
2088 was effectively ignored, since you would get only one result array even
2089 if there were multiple matches.
2093 While the latter behavior is clearly a bug, there might be applications
2094 depending on the former behavior; therefore the function declarations
2095 will not be changed by default until <productname>PostgreSQL</> 9.5.
2096 In pre-9.5 branches, the old behavior exists in version 1.0 of
2097 the <literal>citext</> extension, while we have provided corrected
2098 declarations in version 1.1 (which is <emphasis>not</> installed by
2099 default). To adopt the fix in pre-9.5 branches, execute
2100 <literal>ALTER EXTENSION citext UPDATE TO '1.1'</> in each database in
2101 which <literal>citext</> is installed. (You can also <quote>update</>
2102 back to 1.0 if you need to undo that.) Be aware that either update
2103 direction will require dropping and recreating any views or rules that
2104 use <filename>citext</>'s <function>regexp_matches()</> functions.
2110 Fix incorrect checking of deferred exclusion constraints after a HOT
2115 If a new row that potentially violates a deferred exclusion constraint
2116 is HOT-updated (that is, no indexed columns change and the row can be
2117 stored back onto the same table page) later in the same transaction,
2118 the exclusion constraint would be reported as violated when the check
2119 finally occurred, even if the row(s) the new row originally conflicted
2120 with had been deleted.
2126 Fix planning of star-schema-style queries (Tom Lane)
2130 Sometimes, efficient scanning of a large table requires that index
2131 parameters be provided from more than one other table (commonly,
2132 dimension tables whose keys are needed to index a large fact table).
2133 The planner should be able to find such plans, but an overly
2134 restrictive search heuristic prevented it.
2140 Prevent improper reordering of antijoins (NOT EXISTS joins) versus
2141 other outer joins (Tom Lane)
2145 This oversight in the planner has been observed to cause <quote>could
2146 not find RelOptInfo for given relids</> errors, but it seems possible
2147 that sometimes an incorrect query plan might get past that consistency
2148 check and result in silently-wrong query output.
2154 Fix incorrect matching of subexpressions in outer-join plan nodes
2159 Previously, if textually identical non-strict subexpressions were used
2160 both above and below an outer join, the planner might try to re-use
2161 the value computed below the join, which would be incorrect because the
2162 executor would force the value to NULL in case of an unmatched outer row.
2168 Fix GEQO planner to cope with failure of its join order heuristic
2173 This oversight has been seen to lead to <quote>failed to join all
2174 relations together</> errors in queries involving <literal>LATERAL</>,
2175 and that might happen in other cases as well.
2181 Fix possible deadlock at startup
2182 when <literal>max_prepared_transactions</> is too small
2183 (Heikki Linnakangas)
2189 Don't archive useless preallocated WAL files after a timeline switch
2190 (Heikki Linnakangas)
2196 Recursively <function>fsync()</> the data directory after a crash
2197 (Abhijit Menon-Sen, Robert Haas)
2201 This ensures consistency if another crash occurs shortly later. (The
2202 second crash would have to be a system-level crash, not just a database
2203 crash, for there to be a problem.)
2209 Fix autovacuum launcher's possible failure to shut down, if an error
2210 occurs after it receives SIGTERM (Álvaro Herrera)
2216 Cope with unexpected signals in <function>LockBufferForCleanup()</>
2221 This oversight could result in spurious errors about <quote>multiple
2222 backends attempting to wait for pincount 1</>.
2228 Fix crash when doing <literal>COPY IN</> to a table with check
2229 constraints that contain whole-row references (Tom Lane)
2233 The known failure case only crashes in 9.4 and up, but there is very
2234 similar code in 9.3 and 9.2, so back-patch those branches as well.
2240 Avoid waiting for WAL flush or synchronous replication during commit of
2241 a transaction that was read-only so far as the user is concerned
2246 Previously, a delay could occur at commit in transactions that had
2247 written WAL due to HOT page pruning, leading to undesirable effects
2248 such as sessions getting stuck at startup if all synchronous replicas
2249 are down. Sessions have also been observed to get stuck in catchup
2250 interrupt processing when using synchronous replication; this will fix
2251 that problem as well.
2257 Fix crash when manipulating hash indexes on temporary tables
2258 (Heikki Linnakangas)
2264 Fix possible failure during hash index bucket split, if other processes
2265 are modifying the index concurrently (Tom Lane)
2271 Check for interrupts while analyzing index expressions (Jeff Janes)
2275 <command>ANALYZE</> executes index expressions many times; if there are
2276 slow functions in such an expression, it's desirable to be able to
2277 cancel the <command>ANALYZE</> before that loop finishes.
2283 Ensure <structfield>tableoid</> of a foreign table is reported
2284 correctly when a <literal>READ COMMITTED</> recheck occurs after
2285 locking rows in <command>SELECT FOR UPDATE</>, <command>UPDATE</>,
2286 or <command>DELETE</> (Etsuro Fujita)
2292 Add the name of the target server to object description strings for
2293 foreign-server user mappings (Álvaro Herrera)
2299 Include the schema name in object identity strings for conversions
2300 (Álvaro Herrera)
2306 Recommend setting <literal>include_realm</> to 1 when using
2307 Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
2311 Without this, identically-named users from different realms cannot be
2312 distinguished. For the moment this is only a documentation change, but
2313 it will become the default setting in <productname>PostgreSQL</> 9.5.
2319 Remove code for matching IPv4 <filename>pg_hba.conf</> entries to
2320 IPv4-in-IPv6 addresses (Tom Lane)
2324 This hack was added in 2003 in response to a report that some Linux
2325 kernels of the time would report IPv4 connections as having
2326 IPv4-in-IPv6 addresses. However, the logic was accidentally broken in
2327 9.0. The lack of any field complaints since then shows that it's not
2328 needed anymore. Now we have reports that the broken code causes
2329 crashes on some systems, so let's just remove it rather than fix it.
2330 (Had we chosen to fix it, that would make for a subtle and potentially
2331 security-sensitive change in the effective meaning of
2332 IPv4 <filename>pg_hba.conf</> entries, which does not seem like a good
2333 thing to do in minor releases.)
2339 Report WAL flush, not insert, position in <literal>IDENTIFY_SYSTEM</>
2340 replication command (Heikki Linnakangas)
2344 This avoids a possible startup failure
2345 in <application>pg_receivexlog</>.
2351 While shutting down service on Windows, periodically send status
2352 updates to the Service Control Manager to prevent it from killing the
2353 service too soon; and ensure that <application>pg_ctl</> will wait for
2354 shutdown (Krystian Bigaj)
2360 Reduce risk of network deadlock when using <application>libpq</>'s
2361 non-blocking mode (Heikki Linnakangas)
2365 When sending large volumes of data, it's important to drain the input
2366 buffer every so often, in case the server has sent enough response data
2367 to cause it to block on output. (A typical scenario is that the server
2368 is sending a stream of NOTICE messages during <literal>COPY FROM
2369 STDIN</>.) This worked properly in the normal blocking mode, but not
2370 so much in non-blocking mode. We've modified <application>libpq</>
2371 to opportunistically drain input when it can, but a full defense
2372 against this problem requires application cooperation: the application
2373 should watch for socket read-ready as well as write-ready conditions,
2374 and be sure to call <function>PQconsumeInput()</> upon read-ready.
2380 In <application>libpq</>, fix misparsing of empty values in URI
2381 connection strings (Thomas Fanghaenel)
2387 Fix array handling in <application>ecpg</> (Michael Meskes)
2393 Fix <application>psql</> to sanely handle URIs and conninfo strings as
2394 the first parameter to <command>\connect</>
2395 (David Fetter, Andrew Dunstan, Álvaro Herrera)
2399 This syntax has been accepted (but undocumented) for a long time, but
2400 previously some parameters might be taken from the old connection
2401 instead of the given string, which was agreed to be undesirable.
2407 Suppress incorrect complaints from <application>psql</> on some
2408 platforms that it failed to write <filename>~/.psql_history</> at exit
2413 This misbehavior was caused by a workaround for a bug in very old
2414 (pre-2006) versions of <application>libedit</>. We fixed it by
2415 removing the workaround, which will cause a similar failure to appear
2416 for anyone still using such versions of <application>libedit</>.
2417 Recommendation: upgrade that library, or use <application>libreadline</>.
2423 Fix <application>pg_dump</>'s rule for deciding which casts are
2424 system-provided casts that should not be dumped (Tom Lane)
2430 In <application>pg_dump</>, fix failure to honor <literal>-Z</>
2431 compression level option together with <literal>-Fd</>
2438 Make <application>pg_dump</> consider foreign key relationships
2439 between extension configuration tables while choosing dump order
2440 (Gilles Darold, Michael Paquier, Stephen Frost)
2444 This oversight could result in producing dumps that fail to reload
2445 because foreign key constraints are transiently violated.
2451 Avoid possible <application>pg_dump</> failure when concurrent sessions
2452 are creating and dropping temporary functions (Tom Lane)
2458 Fix dumping of views that are just <literal>VALUES(...)</> but have
2459 column aliases (Tom Lane)
2465 In <application>pg_upgrade</>, force timeline 1 in the new cluster
2470 This change prevents upgrade failures caused by bogus complaints about
2471 missing WAL history files.
2477 In <application>pg_upgrade</>, check for improperly non-connectable
2478 databases before proceeding
2485 In <application>pg_upgrade</>, quote directory paths
2486 properly in the generated <literal>delete_old_cluster</> script
2493 In <application>pg_upgrade</>, preserve database-level freezing info
2499 This oversight could cause missing-clog-file errors for tables within
2500 the <literal>postgres</> and <literal>template1</> databases.
2506 Run <application>pg_upgrade</> and <application>pg_resetxlog</> with
2507 restricted privileges on Windows, so that they don't fail when run by
2508 an administrator (Muhammad Asif Naeem)
2514 Improve handling of <function>readdir()</> failures when scanning
2515 directories in <application>initdb</> and <application>pg_basebackup</>
2522 Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane)
2528 Fix compile failure on Sparc V8 machines (Rob Rowan)
2534 Silence some build warnings on OS X (Tom Lane)
2540 Update time zone data files to <application>tzdata</> release 2015d
2541 for DST law changes in Egypt, Mongolia, and Palestine, plus historical
2542 changes in Canada and Chile. Also adopt revised zone abbreviations for
2543 the America/Adak zone (HST/HDT not HAST/HADT).
2552 <sect1 id="release-9-3-6">
2553 <title>Release 9.3.6</title>
2556 <title>Release Date</title>
2557 <simpara>2015-02-05</simpara>
2561 This release contains a variety of fixes from 9.3.5.
2562 For information about new features in the 9.3 major release, see
2563 <xref linkend="release-9-3">.
2567 <title>Migration to Version 9.3.6</title>
2570 A dump/restore is not required for those running 9.3.X.
2574 However, if you are a Windows user and are using the <quote>Norwegian
2575 (Bokmål)</> locale, manual action is needed after the upgrade to
2576 replace any <quote>Norwegian (Bokmål)_Norway</> locale names stored
2577 in <productname>PostgreSQL</> system catalogs with the plain-ASCII
2578 alias <quote>Norwegian_Norway</>. For details see
2579 <ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></>
2583 Also, if you are upgrading from a version earlier than 9.3.5,
2584 see <xref linkend="release-9-3-5">.
2590 <title>Changes</title>
2595 Author: Bruce Momjian <bruce@momjian.us>
2596 Branch: master [0150ab567] 2015-02-02 10:00:44 -0500
2597 Branch: REL9_4_STABLE [1628a0bbf] 2015-02-02 10:00:49 -0500
2598 Branch: REL9_3_STABLE [b8b580147] 2015-02-02 10:00:50 -0500
2599 Branch: REL9_2_STABLE [5ae3bf1af] 2015-02-02 10:00:50 -0500
2600 Branch: REL9_1_STABLE [037529a11] 2015-02-02 10:00:51 -0500
2601 Branch: REL9_0_STABLE [611e110aa] 2015-02-02 10:00:52 -0500
2602 Author: Bruce Momjian <bruce@momjian.us>
2603 Branch: master [9241c84cb] 2015-02-02 10:00:45 -0500
2604 Branch: REL9_4_STABLE [56d2bee9d] 2015-02-02 10:00:49 -0500
2605 Branch: REL9_3_STABLE [fe2526990] 2015-02-02 10:00:50 -0500
2606 Branch: REL9_2_STABLE [e09651e9d] 2015-02-02 10:00:50 -0500
2607 Branch: REL9_1_STABLE [2ceb63deb] 2015-02-02 10:00:51 -0500
2608 Branch: REL9_0_STABLE [56b970f2e] 2015-02-02 10:00:52 -0500
2613 Fix buffer overruns in <function>to_char()</>
2618 When <function>to_char()</> processes a numeric formatting template
2619 calling for a large number of digits, <productname>PostgreSQL</>
2620 would read past the end of a buffer. When processing a crafted
2621 timestamp formatting template, <productname>PostgreSQL</> would write
2622 past the end of a buffer. Either case could crash the server.
2623 We have not ruled out the possibility of attacks that lead to
2624 privilege escalation, though they seem unlikely.
2630 Author: Bruce Momjian <bruce@momjian.us>
2631 Branch: master [29725b3db] 2015-02-02 10:00:45 -0500
2632 Branch: REL9_4_STABLE [2ac95c83c] 2015-02-02 10:00:49 -0500
2633 Branch: REL9_3_STABLE [bc4d5f2e5] 2015-02-02 10:00:50 -0500
2634 Branch: REL9_2_STABLE [c6c6aa288] 2015-02-02 10:00:51 -0500
2635 Branch: REL9_1_STABLE [98f2479d8] 2015-02-02 10:00:51 -0500
2636 Branch: REL9_0_STABLE [9e05c5063] 2015-02-02 10:00:52 -0500
2641 Fix buffer overrun in replacement <function>*printf()</> functions
2646 <productname>PostgreSQL</> includes a replacement implementation
2647 of <function>printf</> and related functions. This code will overrun
2648 a stack buffer when formatting a floating point number (conversion
2649 specifiers <literal>e</>, <literal>E</>, <literal>f</>, <literal>F</>,
2650 <literal>g</> or <literal>G</>) with requested precision greater than
2651 about 500. This will crash the server, and we have not ruled out the
2652 possibility of attacks that lead to privilege escalation.
2653 A database user can trigger such a buffer overrun through
2654 the <function>to_char()</> SQL function. While that is the only
2655 affected core <productname>PostgreSQL</> functionality, extension
2656 modules that use printf-family functions may be at risk as well.
2660 This issue primarily affects <productname>PostgreSQL</> on Windows.
2661 <productname>PostgreSQL</> uses the system implementation of these
2662 functions where adequate, which it is on other modern platforms.
2668 Author: Noah Misch <noah@leadboat.com>
2669 Branch: master [1dc755158] 2015-02-02 10:00:45 -0500
2670 Branch: REL9_4_STABLE [82806cf4e] 2015-02-02 10:00:49 -0500
2671 Branch: REL9_3_STABLE [6994f0790] 2015-02-02 10:00:50 -0500
2672 Branch: REL9_2_STABLE [d95ebe0ac] 2015-02-02 10:00:51 -0500
2673 Branch: REL9_1_STABLE [11f738a8a] 2015-02-02 10:00:51 -0500
2674 Branch: REL9_0_STABLE [ce6f261cd] 2015-02-02 10:00:52 -0500
2675 Author: Noah Misch <noah@leadboat.com>
2676 Branch: master [8b59672d8] 2015-02-02 10:00:45 -0500
2677 Branch: REL9_4_STABLE [258e294db] 2015-02-02 10:00:49 -0500
2678 Branch: REL9_3_STABLE [a558ad3a7] 2015-02-02 10:00:50 -0500
2679 Branch: REL9_2_STABLE [d1972da8c] 2015-02-02 10:00:51 -0500
2680 Branch: REL9_1_STABLE [8d412e02e] 2015-02-02 10:00:52 -0500
2681 Branch: REL9_0_STABLE [0a3ee8a5f] 2015-02-02 10:00:52 -0500
2686 Fix buffer overruns in <filename>contrib/pgcrypto</>
2687 (Marko Tiikkaja, Noah Misch)
2691 Errors in memory size tracking within the <filename>pgcrypto</>
2692 module permitted stack buffer overruns and improper dependence on the
2693 contents of uninitialized memory. The buffer overrun cases can
2694 crash the server, and we have not ruled out the possibility of
2695 attacks that lead to privilege escalation.
2701 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2702 Branch: master [2b3a8b20c] 2015-02-02 17:09:53 +0200
2703 Branch: REL9_4_STABLE [57ec87c6b] 2015-02-02 17:09:46 +0200
2704 Branch: REL9_3_STABLE [cd19848bd] 2015-02-02 17:09:40 +0200
2705 Branch: REL9_2_STABLE [289592b23] 2015-02-02 17:09:35 +0200
2706 Branch: REL9_1_STABLE [af9c5c074] 2015-02-02 17:09:31 +0200
2707 Branch: REL9_0_STABLE [47ba0fbd7] 2015-02-02 17:09:25 +0200
2712 Fix possible loss of frontend/backend protocol synchronization after
2714 (Heikki Linnakangas)
2718 If any error occurred while the server was in the middle of reading a
2719 protocol message from the client, it could lose synchronization and
2720 incorrectly try to interpret part of the message's data as a new
2721 protocol message. An attacker able to submit crafted binary data
2722 within a command parameter might succeed in injecting his own SQL
2723 commands this way. Statement timeout and query cancellation are the
2724 most likely sources of errors triggering this scenario. Particularly
2725 vulnerable are applications that use a timeout and also submit
2726 arbitrary user-crafted data as binary query parameters. Disabling
2727 statement timeout will reduce, but not eliminate, the risk of
2728 exploit. Our thanks to Emil Lenngren for reporting this issue.
2734 Author: Stephen Frost <sfrost@snowman.net>
2735 Branch: master [804b6b6db] 2015-01-28 12:31:30 -0500
2736 Branch: REL9_4_STABLE [3cc74a3d6] 2015-01-28 12:32:06 -0500
2737 Branch: REL9_3_STABLE [4b9874216] 2015-01-28 12:32:39 -0500
2738 Branch: REL9_2_STABLE [d49f84b08] 2015-01-28 12:32:56 -0500
2739 Branch: REL9_1_STABLE [9406884af] 2015-01-28 12:33:15 -0500
2740 Branch: REL9_0_STABLE [3a2063369] 2015-01-28 12:33:29 -0500
2745 Fix information leak via constraint-violation error messages
2750 Some server error messages show the values of columns that violate
2751 a constraint, such as a unique constraint. If the user does not have
2752 <literal>SELECT</> privilege on all columns of the table, this could
2753 mean exposing values that the user should not be able to see. Adjust
2754 the code so that values are displayed only when they came from the SQL
2755 command or could be selected by the user.
2761 Author: Noah Misch <noah@leadboat.com>
2762 Branch: master [f6dc6dd5b] 2014-12-17 22:48:40 -0500
2763 Branch: REL9_4_STABLE [6b87d423d] 2014-12-17 22:48:45 -0500
2764 Branch: REL9_3_STABLE [442dc2c35] 2014-12-17 22:48:46 -0500
2765 Branch: REL9_2_STABLE [0046f651d] 2014-12-17 22:48:47 -0500
2766 Branch: REL9_1_STABLE [6aa98e957] 2014-12-17 22:48:47 -0500
2767 Branch: REL9_0_STABLE [6d45ee572] 2014-12-17 22:48:48 -0500
2772 Lock down regression testing's temporary installations on Windows
2777 Use SSPI authentication to allow connections only from the OS user
2778 who launched the test suite. This closes on Windows the same
2779 vulnerability previously closed on other platforms, namely that other
2780 users might be able to connect to the test postmaster.
2786 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2787 Branch: REL9_3_STABLE [8f80dcf3c] 2014-10-24 19:59:49 +0300
2788 Branch: REL9_2_STABLE [d440c4b55] 2014-10-24 19:59:52 +0300
2789 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2790 Branch: REL9_3_STABLE [2a1b34959] 2014-10-24 19:36:28 +0300
2791 Branch: REL9_2_STABLE [737ae3fc7] 2014-10-24 19:53:27 +0300
2792 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2793 Branch: master [aa1d2fc5e] 2015-01-16 13:28:19 +0200
2794 Branch: REL9_4_STABLE [2049a7d82] 2015-01-16 13:10:06 +0200
2795 Branch: REL9_3_STABLE [1619442a1] 2015-01-16 13:10:15 +0200
2796 Branch: REL9_2_STABLE [6bf343c6e] 2015-01-16 13:10:23 +0200
2801 Cope with the Windows locale named <quote>Norwegian (Bokmål)</>
2802 (Heikki Linnakangas)
2806 Non-ASCII locale names are problematic since it's not clear what
2807 encoding they should be represented in. Map the troublesome locale
2808 name to a plain-ASCII alias, <quote>Norwegian_Norway</>.
2813 Author: Tom Lane <tgl@sss.pgh.pa.us>
2814 Branch: REL9_3_STABLE [f88300168] 2014-11-04 13:24:14 -0500
2815 Branch: REL9_2_STABLE [db72ad02e] 2014-11-04 13:24:17 -0500
2816 Branch: REL9_1_STABLE [7c6f55e9e] 2014-11-04 13:24:22 -0500
2817 Branch: REL9_0_STABLE [45a607d5c] 2014-11-04 13:24:26 -0500
2822 Avoid possible data corruption if <command>ALTER DATABASE SET
2823 TABLESPACE</> is used to move a database to a new tablespace and then
2824 shortly later move it back to its original tablespace (Tom Lane)
2829 Author: Tom Lane <tgl@sss.pgh.pa.us>
2830 Branch: REL9_3_STABLE [81f0a5e38] 2014-10-29 18:12:08 -0400
2831 Branch: REL9_2_STABLE [40058fbce] 2014-10-29 18:12:11 -0400
2832 Branch: REL9_1_STABLE [6ec1c3ef8] 2014-10-29 18:12:17 -0400
2833 Branch: REL9_0_STABLE [9d06da58e] 2014-10-29 18:12:20 -0400
2834 Author: Tom Lane <tgl@sss.pgh.pa.us>
2835 Branch: REL9_3_STABLE [e65b550b3] 2014-10-30 13:03:28 -0400
2836 Branch: REL9_2_STABLE [38cb8687a] 2014-10-30 13:03:31 -0400
2837 Branch: REL9_1_STABLE [fcf0246b2] 2014-10-30 13:03:34 -0400
2838 Branch: REL9_0_STABLE [73f950fc8] 2014-10-30 13:03:39 -0400
2843 Avoid corrupting tables when <command>ANALYZE</> inside a transaction
2844 is rolled back (Andres Freund, Tom Lane, Michael Paquier)
2848 If the failing transaction had earlier removed the last index, rule, or
2849 trigger from the table, the table would be left in a corrupted state
2850 with the relevant <structname>pg_class</> flags not set though they
2856 Author: Andres Freund <andres@anarazel.de>
2857 Branch: REL9_3_STABLE [d7624e562] 2014-10-20 23:45:31 +0200
2858 Branch: REL9_2_STABLE [fd29810d1] 2014-10-20 23:47:00 +0200
2859 Branch: REL9_1_STABLE [d5fef87e9] 2014-10-20 23:47:45 +0200
2864 Ensure that unlogged tables are copied correctly
2865 during <command>CREATE DATABASE</> or <command>ALTER DATABASE SET
2866 TABLESPACE</> (Pavan Deolasee, Andres Freund)
2871 Author: Robert Haas <rhaas@postgresql.org>
2872 Branch: REL9_3_STABLE [e35db342a] 2014-09-22 16:19:59 -0400
2877 Fix incorrect processing
2878 of <structname>CreateEventTrigStmt</>.<structfield>eventname</> (Petr
2883 This could result in misbehavior if <command>CREATE EVENT TRIGGER</>
2884 were executed as a prepared query, or via extended query protocol.
2889 Author: Tom Lane <tgl@sss.pgh.pa.us>
2890 Branch: REL9_3_STABLE [2a83e0349] 2014-11-11 17:00:21 -0500
2891 Branch: REL9_2_STABLE [1c2f9a4f6] 2014-11-11 17:00:25 -0500
2892 Branch: REL9_1_STABLE [94d5d57d5] 2014-11-11 17:00:28 -0500
2897 Fix <command>DROP</>'s dependency searching to correctly handle the
2898 case where a table column is recursively visited before its table
2899 (Petr Jelinek, Tom Lane)
2903 This case is only known to arise when an extension creates both a
2904 datatype and a table using that datatype. The faulty code might
2905 refuse a <command>DROP EXTENSION</> unless <literal>CASCADE</> is
2906 specified, which should not be required.
2911 Author: Tom Lane <tgl@sss.pgh.pa.us>
2912 Branch: master [c480cb9d2] 2015-01-15 18:52:58 -0500
2913 Branch: REL9_4_STABLE [b75d18bd4] 2015-01-15 18:53:05 -0500
2914 Branch: REL9_3_STABLE [34668c8ec] 2015-01-15 18:52:28 -0500
2915 Branch: REL9_2_STABLE [0acb32efb] 2015-01-15 18:52:31 -0500
2916 Branch: REL9_1_STABLE [450530fce] 2015-01-15 18:52:34 -0500
2917 Branch: REL9_0_STABLE [5308e085b] 2015-01-15 18:52:38 -0500
2922 Fix use-of-already-freed-memory problem in EvalPlanQual processing
2927 In <literal>READ COMMITTED</> mode, queries that lock or update
2928 recently-updated rows could crash as a result of this bug.
2933 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2934 Branch: master [0e5680f47] 2014-12-26 13:52:27 -0300
2935 Branch: REL9_4_STABLE [0e3a1f71d] 2014-12-26 13:52:27 -0300
2936 Branch: REL9_3_STABLE [048912386] 2014-12-26 13:52:27 -0300
2941 Avoid possible deadlock while trying to acquire tuple locks
2942 in EvalPlanQual processing (Álvaro Herrera, Mark Kirkwood)
2947 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2948 Branch: master [d5e3d1e96] 2015-01-04 15:48:29 -0300
2949 Branch: REL9_4_STABLE [51742063b] 2015-01-04 15:48:29 -0300
2950 Branch: REL9_3_STABLE [54a8abc2b] 2015-01-04 15:48:29 -0300
2955 Fix failure to wait when a transaction tries to acquire a <literal>FOR
2956 NO KEY EXCLUSIVE</> tuple lock, while multiple other transactions
2957 currently hold <literal>FOR SHARE</> locks (Álvaro Herrera)
2962 Author: Tom Lane <tgl@sss.pgh.pa.us>
2963 Branch: REL9_3_STABLE [2ae8a01ca] 2014-12-11 21:02:31 -0500
2964 Branch: REL9_2_STABLE [cd63c57e5] 2014-12-11 21:02:34 -0500
2965 Branch: REL9_1_STABLE [bca39b578] 2014-12-11 21:02:38 -0500
2966 Branch: REL9_0_STABLE [662eebdc6] 2014-12-11 21:02:41 -0500
2971 Fix planning of <command>SELECT FOR UPDATE</> when using a partial
2972 index on a child table (Kyotaro Horiguchi)
2976 In <literal>READ COMMITTED</> mode, <command>SELECT FOR UPDATE</> must
2977 also recheck the partial index's <literal>WHERE</> condition when
2978 rechecking a recently-updated row to see if it still satisfies the
2979 query's <literal>WHERE</> condition. This requirement was missed if the
2980 index belonged to an inheritance child table, so that it was possible
2981 to incorrectly return rows that no longer satisfy the query condition.
2986 Author: Tom Lane <tgl@sss.pgh.pa.us>
2987 Branch: REL9_3_STABLE [f14196c35] 2014-12-11 19:37:07 -0500
2988 Branch: REL9_2_STABLE [deadbf4f3] 2014-12-11 19:37:10 -0500
2989 Branch: REL9_1_STABLE [21946ac9b] 2014-12-11 19:37:14 -0500
2990 Branch: REL9_0_STABLE [f5e4e92fb] 2014-12-11 19:37:17 -0500
2995 Fix corner case wherein <command>SELECT FOR UPDATE</> could return a row
2996 twice, and possibly miss returning other rows (Tom Lane)
3000 In <literal>READ COMMITTED</> mode, a <command>SELECT FOR UPDATE</>
3001 that is scanning an inheritance tree could incorrectly return a row
3002 from a prior child table instead of the one it should return from a
3008 Author: Tom Lane <tgl@sss.pgh.pa.us>
3009 Branch: master [a5cd70dcb] 2015-01-15 13:18:12 -0500
3010 Branch: REL9_4_STABLE [d25192892] 2015-01-15 13:18:16 -0500
3011 Branch: REL9_3_STABLE [939f0fb67] 2015-01-15 13:18:19 -0500
3016 Improve performance of <command>EXPLAIN</> with large range tables
3022 Author: Tom Lane <tgl@sss.pgh.pa.us>
3023 Branch: REL9_3_STABLE [7a9c8cefb] 2014-08-09 13:46:42 -0400
3024 Branch: REL9_2_STABLE [b4dacab12] 2014-08-09 13:46:45 -0400
3025 Branch: REL9_1_STABLE [bbe826f21] 2014-08-09 13:46:48 -0400
3026 Branch: REL9_0_STABLE [4ff49746e] 2014-08-09 13:46:52 -0400
3031 Reject duplicate column names in the referenced-columns list of
3032 a <literal>FOREIGN KEY</> declaration (David Rowley)
3036 This restriction is per SQL standard. Previously we did not reject
3037 the case explicitly, but later on the code would fail with
3038 bizarre-looking errors.
3043 Author: Tom Lane <tgl@sss.pgh.pa.us>
3044 Branch: REL9_3_STABLE [6306d0712] 2014-07-22 13:30:14 -0400
3049 Re-enable error for <literal>SELECT ... OFFSET -1</> (Tom Lane)
3053 A negative offset value has been an error since 8.4, but an
3054 optimization added in 9.3 accidentally turned the case into a no-op.
3055 Restore the expected behavior.
3060 Author: Tom Lane <tgl@sss.pgh.pa.us>
3061 Branch: REL9_3_STABLE [8b65e0a33] 2014-08-09 18:40:34 -0400
3062 Branch: REL9_2_STABLE [15026ab97] 2014-08-09 18:40:38 -0400
3067 Restore previous behavior of conversion of domains to JSON
3072 This change causes domains over numeric and boolean to be treated
3073 like their base types for purposes of conversion to JSON. It worked
3074 like that before 9.3.5 and 9.2.9, but was unintentionally changed
3075 while fixing a related problem.
3080 Author: Tom Lane <tgl@sss.pgh.pa.us>
3081 Branch: REL9_3_STABLE [8571ecb24] 2014-12-02 15:02:43 -0500
3086 Fix <function>json_agg()</> to not return extra trailing right
3087 brackets in its result (Tom Lane)
3092 Author: Tom Lane <tgl@sss.pgh.pa.us>
3093 Branch: REL9_3_STABLE [25bf13fe1] 2014-09-11 23:30:57 -0400
3094 Branch: REL9_2_STABLE [228ed4370] 2014-09-11 23:31:00 -0400
3095 Branch: REL9_1_STABLE [cf5c20b06] 2014-09-11 23:31:03 -0400
3096 Branch: REL9_0_STABLE [26f8a4691] 2014-09-11 23:31:06 -0400
3101 Fix bugs in raising a <type>numeric</> value to a large integral power
3106 The previous code could get a wrong answer, or consume excessive
3107 amounts of time and memory before realizing that the answer must
3113 Author: Tom Lane <tgl@sss.pgh.pa.us>
3114 Branch: REL9_3_STABLE [10b81fbdc] 2014-12-01 15:25:08 -0500
3115 Branch: REL9_2_STABLE [e640042e9] 2014-12-01 15:25:12 -0500
3116 Branch: REL9_1_STABLE [2e3cc3955] 2014-12-01 15:25:15 -0500
3117 Branch: REL9_0_STABLE [e6550626c] 2014-12-01 15:25:18 -0500
3122 In <function>numeric_recv()</>, truncate away any fractional digits
3123 that would be hidden according to the value's <literal>dscale</> field
3128 A <type>numeric</> value's display scale (<literal>dscale</>) should
3129 never be less than the number of nonzero fractional digits; but
3130 apparently there's at least one broken client application that
3131 transmits binary <type>numeric</> values in which that's true.
3132 This leads to strange behavior since the extra digits are taken into
3133 account by arithmetic operations even though they aren't printed.
3134 The least risky fix seems to be to truncate away such <quote>hidden</>
3135 digits on receipt, so that the value is indeed what it prints as.
3140 Author: Tom Lane <tgl@sss.pgh.pa.us>
3141 Branch: REL9_3_STABLE [bbfdf5d75] 2014-09-23 20:25:36 -0400
3142 Branch: REL9_2_STABLE [3359a818c] 2014-09-23 20:25:39 -0400
3147 Fix incorrect search for shortest-first regular expression matches
3152 Matching would often fail when the number of allowed iterations is
3153 limited by a <literal>?</> quantifier or a bound expression.
3158 Author: Tom Lane <tgl@sss.pgh.pa.us>
3159 Branch: REL9_3_STABLE [7672bbca0] 2014-07-21 22:41:27 -0400
3160 Branch: REL9_2_STABLE [f54d97c5e] 2014-07-21 22:41:30 -0400
3161 Branch: REL9_1_STABLE [124331b61] 2014-07-21 22:41:33 -0400
3162 Branch: REL9_0_STABLE [6e5a39c9e] 2014-07-21 22:41:36 -0400
3167 Reject out-of-range numeric timezone specifications (Tom Lane)
3171 Simple numeric timezone specifications exceeding +/- 168 hours (one
3172 week) would be accepted, but could then cause null-pointer dereference
3173 crashes in certain operations. There's no use-case for such large UTC
3174 offsets, so reject them.
3179 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3180 Branch: REL9_3_STABLE [1aa526f3f] 2014-10-27 10:51:29 +0200
3181 Branch: REL9_2_STABLE [604d94d4c] 2014-10-27 10:51:33 +0200
3182 Branch: REL9_1_STABLE [4d1c738d1] 2014-10-27 10:51:36 +0200
3183 Branch: REL9_0_STABLE [10059c2da] 2014-10-27 10:51:38 +0200
3188 Fix bugs in <type>tsquery</> <literal>@></> <type>tsquery</>
3189 operator (Heikki Linnakangas)
3193 Two different terms would be considered to match if they had the same
3194 CRC. Also, if the second operand had more terms than the first, it
3195 would be assumed not to be contained in the first; which is wrong
3196 since it might contain duplicate terms.
3201 Author: Tom Lane <tgl@sss.pgh.pa.us>
3202 Branch: REL9_3_STABLE [385f0d98a] 2014-10-23 13:11:34 -0400
3203 Branch: REL9_2_STABLE [f09369da8] 2014-10-23 13:11:37 -0400
3204 Branch: REL9_1_STABLE [94de3a679] 2014-10-23 13:11:41 -0400
3205 Branch: REL9_0_STABLE [21fa26b65] 2014-10-23 13:11:45 -0400
3210 Improve ispell dictionary's defenses against bad affix files (Tom Lane)
3215 Author: Tom Lane <tgl@sss.pgh.pa.us>
3216 Branch: REL9_3_STABLE [5a74ff373] 2014-11-06 20:52:52 -0500
3217 Branch: REL9_2_STABLE [0bb318595] 2014-11-06 20:52:57 -0500
3218 Branch: REL9_1_STABLE [076688084] 2014-11-06 20:53:02 -0500
3219 Branch: REL9_0_STABLE [39493e4d9] 2014-11-06 20:53:07 -0500
3224 Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
3228 The previous coding could crash on an oversize dictionary, so this was
3229 deemed a back-patchable bug fix rather than a feature addition.
3234 Author: Peter Eisentraut <peter_e@gmx.net>
3235 Branch: master [79af9a1d2] 2015-01-06 23:06:13 -0500
3236 Branch: REL9_4_STABLE [6bbf75192] 2015-01-17 22:11:20 -0500
3237 Branch: REL9_3_STABLE [e32cb8d0e] 2015-01-17 22:13:27 -0500
3238 Branch: REL9_2_STABLE [c8ef5b1ac] 2015-01-17 22:14:21 -0500
3239 Branch: REL9_1_STABLE [c975fa471] 2015-01-17 22:37:07 -0500
3240 Branch: REL9_0_STABLE [cebb3f032] 2015-01-17 22:37:32 -0500
3245 Fix namespace handling in <function>xpath()</> (Ali Akbar)
3249 Previously, the <type>xml</> value resulting from
3250 an <function>xpath()</> call would not have namespace declarations if
3251 the namespace declarations were attached to an ancestor element in the
3252 input <type>xml</> value, rather than to the specific element being
3253 returned. Propagate the ancestral declaration so that the result is
3254 correct when considered in isolation.
3259 Author: Tom Lane <tgl@sss.pgh.pa.us>
3260 Branch: REL9_3_STABLE [07ab4ec4c] 2014-11-10 15:21:20 -0500
3261 Branch: REL9_2_STABLE [19ccaf9d4] 2014-11-10 15:21:26 -0500
3266 Ensure that whole-row variables expose nonempty column names
3267 to functions that pay attention to column names within composite
3268 arguments (Tom Lane)
3272 In some contexts, constructs like <literal>row_to_json(tab.*)</> may
3273 not produce the expected column names. This is fixed properly as of
3274 9.4; in older branches, just ensure that we produce some nonempty
3275 name. (In some cases this will be the underlying table's column name
3276 rather than the query-assigned alias that should theoretically be
3282 Author: Tom Lane <tgl@sss.pgh.pa.us>
3283 Branch: REL9_3_STABLE [c57cdc9c1] 2014-11-22 16:01:12 -0500
3284 Branch: REL9_2_STABLE [906599f65] 2014-11-22 16:01:15 -0500
3289 Fix mishandling of system columns,
3290 particularly <structfield>tableoid</>, in FDW queries (Etsuro Fujita)
3295 Author: Tom Lane <tgl@sss.pgh.pa.us>
3296 Branch: master [3d660d33a] 2015-01-30 12:30:59 -0500
3297 Branch: REL9_4_STABLE [b6a164e5c] 2015-01-30 12:31:08 -0500
3298 Branch: REL9_3_STABLE [527ff8baf] 2015-01-30 12:30:43 -0500
3303 Fix assorted oversights in range-operator selectivity estimation
3308 This patch fixes corner-case <quote>unexpected operator NNNN</> planner
3309 errors, and improves the selectivity estimates for some other cases.
3314 Author: Tom Lane <tgl@sss.pgh.pa.us>
3315 Branch: REL9_3_STABLE [f6abf8f08] 2014-10-26 16:12:29 -0400
3316 Branch: REL9_2_STABLE [4586572d7] 2014-10-26 16:12:32 -0400
3321 Avoid doing <literal><replaceable>indexed_column</> = ANY
3322 (<replaceable>array</>)</literal> as an index qualifier if that leads
3323 to an inferior plan (Andrew Gierth)
3327 In some cases, <literal>= ANY</> conditions applied to non-first index
3328 columns would be done as index conditions even though it would be
3329 better to use them as simple filter conditions.
3334 Author: Tom Lane <tgl@sss.pgh.pa.us>
3335 Branch: REL9_3_STABLE [4e54685d0] 2014-10-20 12:23:48 -0400
3340 Fix <quote>variable not found in subplan target list</> planner
3341 failure when an inline-able SQL function taking a composite argument
3342 is used in a <literal>LATERAL</> subselect and the composite argument
3343 is a lateral reference (Tom Lane)
3348 Author: Tom Lane <tgl@sss.pgh.pa.us>
3349 Branch: REL9_3_STABLE [b2b95de61] 2014-10-01 19:30:30 -0400
3350 Branch: REL9_2_STABLE [71b88cf52] 2014-10-01 19:30:34 -0400
3351 Branch: REL9_1_STABLE [477023e94] 2014-10-01 19:30:38 -0400
3352 Branch: REL9_0_STABLE [288f15b7c] 2014-10-01 19:30:41 -0400
3357 Fix planner problems with nested append relations, such as inherited
3358 tables within <literal>UNION ALL</> subqueries (Tom Lane)
3363 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3364 Branch: REL9_3_STABLE [ef8ac584e] 2014-10-03 14:50:29 +0300
3365 Branch: REL9_2_STABLE [8e137b075] 2014-10-03 14:50:40 +0300
3366 Branch: REL9_1_STABLE [f270a1611] 2014-10-03 14:50:46 +0300
3367 Branch: REL9_0_STABLE [f04b112d5] 2014-10-03 14:50:58 +0300
3372 Fail cleanly when a GiST index tuple doesn't fit on a page, rather
3373 than going into infinite recursion (Andrew Gierth)
3378 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3379 Branch: REL9_3_STABLE [67ed9d531] 2014-10-03 13:01:27 -0300
3380 Branch: REL9_2_STABLE [769d6815e] 2014-10-03 13:01:27 -0300
3381 Branch: REL9_1_STABLE [06646f52e] 2014-10-03 13:01:27 -0300
3382 Branch: REL9_0_STABLE [50a757698] 2014-10-03 13:01:27 -0300
3387 Exempt tables that have per-table <varname>cost_limit</>
3388 and/or <varname>cost_delay</> settings from autovacuum's global cost
3389 balancing rules (Álvaro Herrera)
3393 The previous behavior resulted in basically ignoring these per-table
3394 settings, which was unintended. Now, a table having such settings
3395 will be vacuumed using those settings, independently of what is going
3396 on in other autovacuum workers. This may result in heavier total I/O
3397 load than before, so such settings should be re-examined for sanity.
3402 Author: Tom Lane <tgl@sss.pgh.pa.us>
3403 Branch: REL9_3_STABLE [4cbecdaaa] 2014-07-30 14:41:49 -0400
3404 Branch: REL9_2_STABLE [c83aed34b] 2014-07-30 14:41:53 -0400
3405 Branch: REL9_1_STABLE [f21afe421] 2014-07-30 14:41:58 -0400
3406 Branch: REL9_0_STABLE [91b4a881c] 2014-07-30 14:42:12 -0400
3411 Avoid wholesale autovacuuming when autovacuum is nominally off
3416 Even when autovacuum is nominally off, we will still launch autovacuum
3417 worker processes to vacuum tables that are at risk of XID wraparound.
3418 However, such a worker process then proceeded to vacuum all tables in
3419 the target database, if they met the usual thresholds for
3420 autovacuuming. This is at best pretty unexpected; at worst it delays
3421 response to the wraparound threat. Fix it so that if autovacuum is
3422 turned off, workers <emphasis>only</> do anti-wraparound vacuums and
3428 Author: Andres Freund <andres@anarazel.de>
3429 Branch: REL9_3_STABLE [2c3ebfd1a] 2014-11-15 01:21:07 +0100
3430 Branch: REL9_2_STABLE [ea8b3833e] 2014-11-15 01:21:45 +0100
3431 Branch: REL9_1_STABLE [d85b646d0] 2014-11-15 01:22:32 +0100
3432 Author: Andres Freund <andres@anarazel.de>
3433 Branch: REL9_3_STABLE [672b43e68] 2014-11-15 01:21:02 +0100
3434 Branch: REL9_2_STABLE [c5baa708f] 2014-11-15 01:21:40 +0100
3435 Branch: REL9_1_STABLE [fde9994bc] 2014-11-15 01:22:32 +0100
3436 Author: Andres Freund <andres@anarazel.de>
3437 Branch: REL9_3_STABLE [c7299d32f] 2014-11-15 01:20:29 +0100
3438 Branch: REL9_2_STABLE [86673a44a] 2014-11-15 01:21:30 +0100
3439 Branch: REL9_1_STABLE [b0a48e996] 2014-11-15 01:22:32 +0100
3444 During crash recovery, ensure that unlogged relations are rewritten as
3445 empty and are synced to disk before recovery is considered complete
3446 (Abhijit Menon-Sen, Andres Freund)
3450 This prevents scenarios in which unlogged relations might contain
3451 garbage data following database crash recovery.
3456 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3457 Branch: REL9_3_STABLE [861d3aa43] 2014-11-13 20:01:55 +0200
3458 Branch: REL9_2_STABLE [7eab804c2] 2014-11-13 20:01:18 +0200
3459 Branch: REL9_1_STABLE [5f1d931cf] 2014-11-13 20:01:09 +0200
3460 Branch: REL9_0_STABLE [681dbe7d4] 2014-11-13 20:00:51 +0200
3465 Fix race condition between hot standby queries and replaying a
3466 full-page image (Heikki Linnakangas)
3470 This mistake could result in transient errors in queries being
3471 executed in hot standby.
3476 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3477 Branch: REL9_3_STABLE [a2a718b22] 2014-07-29 11:57:52 +0300
3478 Branch: REL9_2_STABLE [1578d13dc] 2014-07-29 11:58:01 +0300
3479 Branch: REL9_1_STABLE [de88ec6bf] 2014-07-29 11:58:09 +0300
3480 Branch: REL9_0_STABLE [804983961] 2014-07-29 11:58:17 +0300
3485 Fix several cases where recovery logic improperly ignored WAL records
3486 for <literal>COMMIT/ABORT PREPARED</> (Heikki Linnakangas)
3490 The most notable oversight was
3491 that <varname>recovery_target_xid</> could not be used to stop at
3497 Author: Fujii Masao <fujii@postgresql.org>
3498 Branch: REL9_3_STABLE [d45cd9e19] 2014-10-23 16:22:46 +0900
3499 Branch: REL9_2_STABLE [f904e9afd] 2014-10-23 16:31:44 +0900
3504 Prevent latest WAL file from being archived a second time at completion
3505 of crash recovery (Fujii Masao)
3510 Author: Fujii Masao <fujii@postgresql.org>
3511 Branch: REL9_3_STABLE [3a3b7e316] 2014-11-06 21:25:18 +0900
3512 Branch: REL9_2_STABLE [38eb5d9e8] 2014-11-06 21:25:45 +0900
3513 Branch: REL9_1_STABLE [4e7468074] 2014-11-06 21:26:15 +0900
3514 Branch: REL9_0_STABLE [83c7bfb9a] 2014-11-06 21:26:21 +0900
3519 Avoid creating unnecessary <filename>.ready</> marker files for
3520 timeline history files (Fujii Masao)
3525 Author: Fujii Masao <fujii@postgresql.org>
3526 Branch: REL9_3_STABLE [52eed3d42] 2014-09-05 02:19:29 +0900
3527 Branch: REL9_2_STABLE [78b1228ef] 2014-09-05 02:19:45 +0900
3528 Branch: REL9_1_STABLE [81bffe63c] 2014-09-05 02:19:50 +0900
3529 Branch: REL9_0_STABLE [857a5d6b5] 2014-09-05 02:19:57 +0900
3534 Fix possible null pointer dereference when an empty prepared statement
3535 is used and the <varname>log_statement</> setting is <literal>mod</>
3536 or <literal>ddl</> (Fujii Masao)
3541 Author: Tom Lane <tgl@sss.pgh.pa.us>
3542 Branch: master [75b48e1ff] 2015-01-19 23:01:33 -0500
3543 Branch: REL9_4_STABLE [3387cbbcb] 2015-01-19 23:01:36 -0500
3544 Branch: REL9_3_STABLE [19794e997] 2015-01-19 23:01:39 -0500
3545 Branch: REL9_2_STABLE [33b723538] 2015-01-19 23:01:41 -0500
3546 Branch: REL9_1_STABLE [b87c1dcef] 2015-01-19 23:01:44 -0500
3547 Branch: REL9_0_STABLE [a1a8d0249] 2015-01-19 23:01:46 -0500
3552 Change <quote>pgstat wait timeout</> warning message to be LOG level,
3553 and rephrase it to be more understandable (Tom Lane)
3557 This message was originally thought to be essentially a can't-happen
3558 case, but it occurs often enough on our slower buildfarm members to be
3559 a nuisance. Reduce it to LOG level, and expend a bit more effort on
3560 the wording: it now reads <quote>using stale statistics instead of
3561 current ones because stats collector is not responding</>.
3566 Author: Andres Freund <andres@anarazel.de>
3567 Branch: REL9_3_STABLE [cbd9619ac] 2014-10-01 14:34:06 +0200
3572 Fix possible corruption of postmaster's list of dynamic background
3573 workers (Andres Freund)
3578 Author: Andres Freund <andres@anarazel.de>
3579 Branch: REL9_3_STABLE [27ef6b653] 2014-09-09 23:37:33 +0200
3580 Branch: REL9_2_STABLE [d0b7ffc0f] 2014-09-09 23:37:50 +0200
3581 Branch: REL9_1_STABLE [5af508f66] 2014-09-09 23:45:07 +0200
3582 Branch: REL9_0_STABLE [f25e89601] 2014-09-09 23:48:03 +0200
3587 Fix SPARC spinlock implementation to ensure correctness if the CPU is
3588 being run in a non-TSO coherency mode, as some non-Solaris kernels do
3594 Author: Noah Misch <noah@leadboat.com>
3595 Branch: master [894459e59] 2015-01-07 22:35:44 -0500
3596 Branch: REL9_4_STABLE [83fb1ca5c] 2015-01-07 22:36:35 -0500
3597 Branch: REL9_3_STABLE [1a366d51e] 2015-01-07 22:40:40 -0500
3598 Branch: REL9_2_STABLE [5ca4e444c] 2015-01-07 22:41:49 -0500
3599 Branch: REL9_1_STABLE [8dc83104e] 2015-01-07 22:42:42 -0500
3600 Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
3605 Warn if OS X's <function>setlocale()</> starts an unwanted extra
3606 thread inside the postmaster (Noah Misch)
3611 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3612 Branch: REL9_3_STABLE [08cd4d9a6] 2014-11-25 17:39:00 +0200
3613 Branch: REL9_2_STABLE [9b468bcec] 2014-11-25 17:39:04 +0200
3614 Branch: REL9_1_STABLE [95be34362] 2014-11-25 17:39:07 +0200
3615 Branch: REL9_0_STABLE [9880fea4f] 2014-11-25 17:39:09 +0200
3620 Fix processing of repeated <literal>dbname</> parameters
3621 in <function>PQconnectdbParams()</> (Alex Shulgin)
3625 Unexpected behavior ensued if the first occurrence
3626 of <literal>dbname</> contained a connection string or URI to be
3632 Author: Tom Lane <tgl@sss.pgh.pa.us>
3633 Branch: REL9_3_STABLE [52ef33f72] 2014-10-22 18:41:51 -0400
3634 Branch: REL9_2_STABLE [6fa31d8d1] 2014-10-22 18:41:54 -0400
3635 Branch: REL9_1_STABLE [98144378c] 2014-10-22 18:41:57 -0400
3636 Branch: REL9_0_STABLE [ac6e87537] 2014-10-22 18:42:01 -0400
3641 Ensure that <application>libpq</> reports a suitable error message on
3642 unexpected socket EOF (Marko Tiikkaja, Tom Lane)
3646 Depending on kernel behavior, <application>libpq</> might return an
3647 empty error string rather than something useful when the server
3648 unexpectedly closed the socket.
3653 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3654 Branch: REL9_3_STABLE [1325b239b] 2014-10-29 14:40:47 +0200
3655 Branch: REL9_2_STABLE [1a27fbd07] 2014-10-29 14:39:10 +0200
3656 Branch: REL9_1_STABLE [8f7bd8e91] 2014-10-29 14:36:19 +0200
3657 Branch: REL9_0_STABLE [49ef4eba2] 2014-10-29 14:35:39 +0200
3662 Clear any old error message during <function>PQreset()</>
3663 (Heikki Linnakangas)
3667 If <function>PQreset()</> is called repeatedly, and the connection
3668 cannot be re-established, error messages from the failed connection
3669 attempts kept accumulating in the <structname>PGconn</>'s error
3675 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3676 Branch: REL9_3_STABLE [d3b162a3d] 2014-11-25 14:10:29 +0200
3677 Branch: REL9_2_STABLE [abcab2a64] 2014-11-25 14:10:43 +0200
3678 Branch: REL9_1_STABLE [5053ad206] 2014-11-25 14:10:48 +0200
3679 Branch: REL9_0_STABLE [1f3517039] 2014-11-25 14:10:54 +0200
3684 Properly handle out-of-memory conditions while parsing connection
3685 options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
3690 Author: Tom Lane <tgl@sss.pgh.pa.us>
3691 Branch: REL9_3_STABLE [d3cfe20c6] 2014-10-06 21:23:35 -0400
3692 Branch: REL9_2_STABLE [b513205bc] 2014-10-06 21:23:39 -0400
3693 Branch: REL9_1_STABLE [037b912ec] 2014-10-06 21:23:45 -0400
3694 Branch: REL9_0_STABLE [d9a1e9de5] 2014-10-06 21:23:50 -0400
3699 Fix array overrun in <application>ecpg</>'s version
3700 of <function>ParseDateTime()</> (Michael Paquier)
3705 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3706 Branch: REL9_3_STABLE [2df66f01a] 2014-12-05 14:31:51 +0200
3707 Branch: REL9_2_STABLE [2b53d583d] 2014-12-05 14:31:45 +0200
3708 Branch: REL9_1_STABLE [729202754] 2014-12-05 14:31:37 +0200
3709 Branch: REL9_0_STABLE [d67be559e] 2014-12-05 14:30:55 +0200
3714 In <application>initdb</>, give a clearer error message if a password
3715 file is specified but is empty (Mats Erik Andersson)
3720 Author: Tom Lane <tgl@sss.pgh.pa.us>
3721 Branch: REL9_3_STABLE [b0fd5c552] 2014-09-08 16:09:52 -0400
3722 Branch: REL9_2_STABLE [886b58b47] 2014-09-08 16:09:56 -0400
3723 Branch: REL9_1_STABLE [440fcc568] 2014-09-08 16:10:01 -0400
3724 Branch: REL9_0_STABLE [44c518328] 2014-09-08 16:10:05 -0400
3729 Fix <application>psql</>'s <command>\s</> command to work nicely with
3730 libedit, and add pager support (Stepan Rutz, Tom Lane)
3734 When using libedit rather than readline, <command>\s</> printed the
3735 command history in a fairly unreadable encoded format, and on recent
3736 libedit versions might fail altogether. Fix that by printing the
3737 history ourselves rather than having the library do it. A pleasant
3738 side-effect is that the pager is used if appropriate.
3742 This patch also fixes a bug that caused newline encoding to be applied
3743 inconsistently when saving the command history with libedit.
3744 Multiline history entries written by older <application>psql</>
3745 versions will be read cleanly with this patch, but perhaps not
3746 vice versa, depending on the exact libedit versions involved.
3751 Author: Tom Lane <tgl@sss.pgh.pa.us>
3752 Branch: master [28551797a] 2014-12-31 12:18:50 -0500
3753 Branch: REL9_4_STABLE [c35249939] 2014-12-31 12:16:57 -0500
3754 Branch: REL9_3_STABLE [7582cce56] 2014-12-31 12:17:00 -0500
3755 Branch: REL9_2_STABLE [64c506535] 2014-12-31 12:17:04 -0500
3756 Branch: REL9_1_STABLE [1773e0702] 2014-12-31 12:17:08 -0500
3757 Branch: REL9_0_STABLE [2600e4436] 2014-12-31 12:17:12 -0500
3762 Improve consistency of parsing of <application>psql</>'s special
3763 variables (Tom Lane)
3767 Allow variant spellings of <literal>on</> and <literal>off</> (such
3768 as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
3769 and <literal>ON_ERROR_ROLLBACK</>. Report a warning for unrecognized
3770 values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
3771 <literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
3772 <literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>. Recognize
3773 all values for all these variables case-insensitively; previously
3774 there was a mishmash of case-sensitive and case-insensitive behaviors.
3779 Author: Fujii Masao <fujii@postgresql.org>
3780 Branch: REL9_3_STABLE [4b1953079] 2014-11-28 02:44:40 +0900
3785 Make <application>psql</>'s <command>\watch</> command display
3786 nulls as specified by <command>\pset null</> (Fujii Masao)
3791 Author: Stephen Frost <sfrost@snowman.net>
3792 Branch: REL9_3_STABLE [7ec399094] 2014-09-12 11:24:28 -0400
3793 Branch: REL9_2_STABLE [5d63f2159] 2014-09-12 11:24:32 -0400
3794 Branch: REL9_1_STABLE [4d96e93cb] 2014-09-12 11:24:36 -0400
3795 Branch: REL9_0_STABLE [1f89fc218] 2014-09-12 11:24:39 -0400
3800 Fix <application>psql</>'s expanded-mode display to work
3801 consistently when using <literal>border</> = 3
3802 and <literal>linestyle</> = <literal>ascii</> or <literal>unicode</>
3808 Author: Tom Lane <tgl@sss.pgh.pa.us>
3809 Branch: master [adfc157dd] 2015-01-05 19:27:04 -0500
3810 Branch: REL9_4_STABLE [c99e41f68] 2015-01-05 19:27:06 -0500
3811 Branch: REL9_3_STABLE [bb1e2426b] 2015-01-05 19:27:09 -0500
3816 Fix <application>pg_dump</> to handle comments on event triggers
3817 without failing (Tom Lane)
3822 Author: Kevin Grittner <kgrittn@postgresql.org>
3823 Branch: master [cff1bd2a3] 2015-01-30 08:57:24 -0600
3824 Branch: REL9_4_STABLE [cb0168528] 2015-01-30 08:57:53 -0600
3825 Branch: REL9_3_STABLE [cc609c46f] 2015-01-30 09:01:36 -0600
3830 Allow parallel <application>pg_dump</> to
3831 use <option>--serializable-deferrable</> (Kevin Grittner)
3836 Author: Tom Lane <tgl@sss.pgh.pa.us>
3837 Branch: REL9_3_STABLE [51fc61334] 2014-07-25 19:48:48 -0400
3838 Branch: REL9_2_STABLE [a6c567437] 2014-07-25 19:48:51 -0400
3839 Branch: REL9_1_STABLE [40c333c39] 2014-07-25 19:48:54 -0400
3844 Improve performance of <application>pg_dump</> when the database
3845 contains many instances of multiple dependency paths between the same
3846 two objects (Tom Lane)
3851 Author: Tom Lane <tgl@sss.pgh.pa.us>
3852 Branch: REL9_3_STABLE [9fc887121] 2014-11-13 18:19:32 -0500
3853 Branch: REL9_2_STABLE [3c5ce5102] 2014-11-13 18:19:35 -0500
3858 Fix <application>pg_dumpall</> to restore its ability to dump from
3859 pre-8.1 servers (Gilles Darold)
3864 Author: Robert Haas <rhaas@postgresql.org>
3865 Branch: REL9_3_STABLE [d72ecc91c] 2014-09-26 11:23:43 -0400
3866 Branch: REL9_2_STABLE [a97c8c393] 2014-09-26 11:25:57 -0400
3867 Branch: REL9_1_STABLE [d1844c21b] 2014-09-26 11:36:25 -0400
3868 Branch: REL9_0_STABLE [bbe3c069a] 2014-09-26 11:43:56 -0400
3873 Fix possible deadlock during parallel restore of a schema-only dump
3874 (Robert Haas, Tom Lane)
3879 Author: Tom Lane <tgl@sss.pgh.pa.us>
3880 Branch: REL9_3_STABLE [9a540c1ef] 2014-10-17 12:49:06 -0400
3881 Branch: REL9_2_STABLE [787e20bd4] 2014-10-17 12:49:09 -0400
3882 Branch: REL9_1_STABLE [0c9391e52] 2014-10-17 12:49:11 -0400
3883 Branch: REL9_0_STABLE [31021e7ba] 2014-10-17 12:49:15 -0400
3888 Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
3889 composite type (Rushabh Lathia)
3894 Author: Andres Freund <andres@anarazel.de>
3895 Branch: REL9_3_STABLE [26a4e0ed7] 2014-11-15 01:21:11 +0100
3900 Fix failure to fsync tables in nondefault tablespaces
3901 during <application>pg_upgrade</> (Abhijit Menon-Sen, Andres Freund)
3905 With an operating system crash and some bad luck, this could result in
3906 data loss during an upgrade.
3911 Author: Bruce Momjian <bruce@momjian.us>
3912 Branch: REL9_3_STABLE [fca9f349b] 2014-08-07 14:56:13 -0400
3917 In <application>pg_upgrade</>, cope with cases where the new cluster
3918 creates a TOAST table for a table that didn't previously have one
3923 Previously this could result in failures due to OID conflicts.
3928 Author: Bruce Momjian <bruce@momjian.us>
3929 Branch: REL9_3_STABLE [24ae44914] 2014-08-04 11:45:45 -0400
3934 In <application>pg_upgrade</>, don't try to
3935 set <literal>autovacuum_multixact_freeze_max_age</> for the old cluster
3940 This could result in failure because not all 9.3.X versions have that
3941 parameter. Fortunately, we don't actually need to set it at all.
3946 Author: Bruce Momjian <bruce@momjian.us>
3947 Branch: REL9_3_STABLE [5724f491d] 2014-09-11 18:39:46 -0400
3952 In <application>pg_upgrade</>, preserve the transaction ID epoch
3957 This oversight did not bother <productname>PostgreSQL</> proper,
3958 but could confuse some external replication tools.
3963 Author: Andres Freund <andres@anarazel.de>
3964 Branch: master [2c0a48589] 2015-01-03 20:54:12 +0100
3965 Branch: REL9_4_STABLE [90e4a2bf9] 2015-01-03 20:54:13 +0100
3966 Branch: REL9_3_STABLE [f6cea4502] 2015-01-03 20:54:13 +0100
3967 Branch: REL9_2_STABLE [f961ad479] 2015-01-03 20:54:13 +0100
3968 Branch: REL9_1_STABLE [2a0bfa4d6] 2015-01-03 20:54:13 +0100
3973 Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
3974 being archived again when the standby is promoted (Andres Freund)
3979 Author: Fujii Masao <fujii@postgresql.org>
3980 Branch: REL9_3_STABLE [9747a9898] 2014-08-02 15:19:45 +0900
3985 Fix memory leak in <application>pg_receivexlog</> (Fujii Masao)
3990 Author: Fujii Masao <fujii@postgresql.org>
3991 Branch: REL9_3_STABLE [39217ce41] 2014-08-02 14:59:10 +0900
3996 Fix unintended suppression of <application>pg_receivexlog</> verbose
3997 messages (Fujii Masao)
4002 Author: Tom Lane <tgl@sss.pgh.pa.us>
4003 Branch: REL9_3_STABLE [9474c9d81] 2014-09-19 13:19:02 -0400
4004 Branch: REL9_2_STABLE [5ff8c2d7d] 2014-09-19 13:19:05 -0400
4009 Fix failure of <filename>contrib/auto_explain</> to print per-node
4010 timing information when doing <command>EXPLAIN ANALYZE</> (Tom Lane)
4015 Author: Tom Lane <tgl@sss.pgh.pa.us>
4016 Branch: REL9_3_STABLE [0ad403c98] 2014-08-28 18:21:14 -0400
4017 Branch: REL9_2_STABLE [f3998521f] 2014-08-28 18:21:17 -0400
4018 Branch: REL9_1_STABLE [9807c8220] 2014-08-28 18:21:20 -0400
4023 Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
4029 Author: Tom Lane <tgl@sss.pgh.pa.us>
4030 Branch: REL9_3_STABLE [f44290b7b] 2014-11-04 16:54:59 -0500
4035 Avoid integer overflow and buffer overrun
4036 in <filename>contrib/hstore</>'s <function>hstore_to_json()</>
4037 (Heikki Linnakangas)
4042 Author: Andrew Dunstan <andrew@dunslane.net>
4043 Branch: REL9_3_STABLE [55c880797] 2014-12-01 11:44:48 -0500
4048 Fix recognition of numbers in <function>hstore_to_json_loose()</>,
4049 so that JSON numbers and strings are correctly distinguished
4055 Author: Tom Lane <tgl@sss.pgh.pa.us>
4056 Branch: REL9_3_STABLE [f59c8eff7] 2014-07-22 11:45:53 -0400
4057 Branch: REL9_2_STABLE [810f0d2a2] 2014-07-22 11:45:57 -0400
4058 Branch: REL9_1_STABLE [3c5232ae8] 2014-07-22 11:46:00 -0400
4059 Branch: REL9_0_STABLE [9dc2a3fd0] 2014-07-22 11:46:04 -0400
4064 Fix block number checking
4065 in <filename>contrib/pageinspect</>'s <function>get_raw_page()</>
4070 The incorrect checking logic could prevent access to some pages in
4071 non-main relation forks.
4076 Author: Tom Lane <tgl@sss.pgh.pa.us>
4077 Branch: REL9_3_STABLE [419de696a] 2014-11-11 17:22:38 -0500
4078 Branch: REL9_2_STABLE [4a9710e6e] 2014-11-11 17:22:44 -0500
4079 Branch: REL9_1_STABLE [4ddd9e72f] 2014-11-11 17:22:51 -0500
4080 Branch: REL9_0_STABLE [ef5a3b957] 2014-11-11 17:22:58 -0500
4085 Fix <filename>contrib/pgcrypto</>'s <function>pgp_sym_decrypt()</>
4086 to not fail on messages whose length is 6 less than a power of 2
4092 Author: Robert Haas <rhaas@postgresql.org>
4093 Branch: REL9_3_STABLE [8cf825974] 2014-11-19 12:14:22 -0500
4094 Branch: REL9_2_STABLE [57ce74661] 2014-11-19 12:20:47 -0500
4095 Branch: REL9_1_STABLE [a855c90a7] 2014-11-19 12:26:06 -0500
4100 Fix file descriptor leak in <filename>contrib/pg_test_fsync</>
4105 This could cause failure to remove temporary files on Windows.
4110 Author: Tom Lane <tgl@sss.pgh.pa.us>
4111 Branch: master [37507962c] 2015-01-29 20:18:33 -0500
4112 Branch: REL9_4_STABLE [202621d04] 2015-01-29 20:18:37 -0500
4113 Branch: REL9_3_STABLE [53ae24692] 2015-01-29 20:18:40 -0500
4114 Branch: REL9_2_STABLE [66cc74680] 2015-01-29 20:18:42 -0500
4115 Branch: REL9_1_STABLE [290c2daad] 2015-01-29 20:18:44 -0500
4116 Branch: REL9_0_STABLE [dc9a506e6] 2015-01-29 20:18:46 -0500
4121 Handle unexpected query results, especially NULLs, safely in
4122 <filename>contrib/tablefunc</>'s <function>connectby()</>
4127 <function>connectby()</> previously crashed if it encountered a NULL
4128 key value. It now prints that row but doesn't recurse further.
4133 Author: Tom Lane <tgl@sss.pgh.pa.us>
4134 Branch: REL9_3_STABLE [c393847a1] 2014-11-27 11:12:51 -0500
4135 Branch: REL9_2_STABLE [a1cd04cd0] 2014-11-27 11:12:55 -0500
4136 Branch: REL9_1_STABLE [168636a99] 2014-11-27 11:12:59 -0500
4137 Branch: REL9_0_STABLE [6a694bbab] 2014-11-27 11:13:03 -0500
4142 Avoid a possible crash in <filename>contrib/xml2</>'s
4143 <function>xslt_process()</> (Mark Simonetti)
4147 <application>libxslt</> seems to have an undocumented dependency on
4148 the order in which resources are freed; reorder our calls to avoid a
4154 Author: Tom Lane <tgl@sss.pgh.pa.us>
4155 Branch: REL9_3_STABLE [0247935c7] 2014-11-05 11:34:19 -0500
4156 Branch: REL9_2_STABLE [0ef754cad] 2014-11-05 11:34:22 -0500
4157 Branch: REL9_1_STABLE [7225abf00] 2014-11-05 11:34:25 -0500
4162 Mark some <filename>contrib</> I/O functions with correct volatility
4163 properties (Tom Lane)
4167 The previous over-conservative marking was immaterial in normal use,
4168 but could cause optimization problems or rejection of valid index
4169 expression definitions. Since the consequences are not large, we've
4170 just adjusted the function definitions in the extension modules'
4171 scripts, without changing version numbers.
4176 Author: Tom Lane <tgl@sss.pgh.pa.us>
4177 Branch: master [a59ee8819] 2015-01-30 13:05:30 -0500
4178 Branch: REL9_4_STABLE [70da7aeba] 2015-01-30 13:04:59 -0500
4179 Branch: REL9_3_STABLE [f08cf8ad9] 2015-01-30 13:05:01 -0500
4180 Branch: REL9_2_STABLE [a97dfdfd9] 2015-01-30 13:05:04 -0500
4181 Branch: REL9_1_STABLE [8f51c432c] 2015-01-30 13:05:07 -0500
4182 Branch: REL9_0_STABLE [7c41a32b3] 2015-01-30 13:05:09 -0500
4183 Author: Tom Lane <tgl@sss.pgh.pa.us>
4184 Branch: REL9_3_STABLE [8824bae87] 2014-11-18 13:28:13 -0500
4185 Author: Robert Haas <rhaas@postgresql.org>
4186 Branch: master [0b49642b9] 2015-01-15 09:26:03 -0500
4187 Branch: REL9_4_STABLE [7b65f194e] 2015-01-15 09:29:41 -0500
4188 Branch: REL9_3_STABLE [ebbef4f39] 2015-01-15 09:29:55 -0500
4189 Branch: REL9_2_STABLE [d452bfd1b] 2015-01-15 09:42:21 -0500
4190 Branch: REL9_1_STABLE [151fb75b0] 2015-01-15 09:42:33 -0500
4191 Branch: REL9_0_STABLE [0a67c0018] 2015-01-15 09:42:47 -0500
4192 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4193 Branch: master [e37d474f9] 2015-01-13 14:33:05 +0200
4194 Branch: REL9_4_STABLE [4ebb3494e] 2015-01-13 16:01:04 +0200
4195 Author: Andres Freund <andres@anarazel.de>
4196 Branch: master [8cadeb792] 2015-01-04 15:44:49 +0100
4197 Branch: REL9_4_STABLE [7ced1b6c5] 2015-01-04 15:52:52 +0100
4198 Branch: REL9_3_STABLE [a68b8aec7] 2015-01-04 15:53:08 +0100
4199 Branch: REL9_2_STABLE [6f9b84a40] 2015-01-04 15:55:00 +0100
4200 Author: Andres Freund <andres@anarazel.de>
4201 Branch: master [58bc4747b] 2015-01-04 15:35:46 +0100
4202 Branch: REL9_4_STABLE [2d8411a0a] 2015-01-04 15:35:46 +0100
4203 Branch: REL9_3_STABLE [d33f36f16] 2015-01-04 15:35:47 +0100
4204 Branch: REL9_2_STABLE [029e41afd] 2015-01-04 15:35:47 +0100
4205 Branch: REL9_1_STABLE [39cdf365a] 2015-01-04 15:35:47 +0100
4206 Branch: REL9_0_STABLE [17797e18d] 2015-01-04 15:35:48 +0100
4207 Author: Andres Freund <andres@anarazel.de>
4208 Branch: master [0398ece4c] 2015-01-04 14:36:21 +0100
4209 Branch: REL9_4_STABLE [ff7d46b85] 2015-01-04 14:36:21 +0100
4210 Branch: REL9_3_STABLE [ec14f1601] 2015-01-04 14:36:22 +0100
4211 Branch: REL9_2_STABLE [f4060db11] 2015-01-04 14:36:22 +0100
4212 Author: Tatsuo Ishii <ishii@postgresql.org>
4213 Branch: master [3b5a89c48] 2014-12-30 20:33:01 +0900
4214 Branch: REL9_4_STABLE [458e8bc65] 2014-12-30 20:27:26 +0900
4215 Branch: REL9_3_STABLE [ed0e03283] 2014-12-30 20:20:56 +0900
4216 Branch: REL9_2_STABLE [4db7eaae0] 2014-12-30 19:59:26 +0900
4217 Branch: REL9_1_STABLE [4c136b0b6] 2014-12-30 19:48:53 +0900
4218 Branch: REL9_0_STABLE [9b74f3574] 2014-12-30 19:37:55 +0900
4219 Author: Tom Lane <tgl@sss.pgh.pa.us>
4220 Branch: master [66709133c] 2014-12-16 15:35:33 -0500
4221 Branch: REL9_4_STABLE [383d224a0] 2014-12-16 15:35:36 -0500
4222 Branch: REL9_3_STABLE [53960e7eb] 2014-12-16 15:35:40 -0500
4223 Branch: REL9_2_STABLE [e92c67ddc] 2014-12-16 15:35:43 -0500
4224 Branch: REL9_1_STABLE [5c784d96a] 2014-12-16 15:35:46 -0500
4225 Branch: REL9_0_STABLE [a2969bd72] 2014-12-16 15:35:49 -0500
4226 Author: Tom Lane <tgl@sss.pgh.pa.us>
4227 Branch: master [d38e8d30c] 2014-12-16 13:31:42 -0500
4228 Branch: REL9_4_STABLE [6c75384ee] 2014-12-16 13:31:57 -0500
4229 Branch: REL9_3_STABLE [3b750ec15] 2014-12-16 13:32:02 -0500
4230 Branch: REL9_2_STABLE [5b2c8f04a] 2014-12-16 13:32:15 -0500
4231 Branch: REL9_1_STABLE [926da211a] 2014-12-16 13:32:25 -0500
4232 Branch: REL9_0_STABLE [961df1853] 2014-12-16 13:32:38 -0500
4233 Author: Tom Lane <tgl@sss.pgh.pa.us>
4234 Branch: master [586dd5d6a] 2015-01-24 13:05:42 -0500
4235 Branch: REL9_4_STABLE [d51d4ff31] 2015-01-24 13:05:45 -0500
4236 Branch: REL9_3_STABLE [7240f9200] 2015-01-24 13:05:49 -0500
4237 Branch: REL9_2_STABLE [502e5f9c3] 2015-01-24 13:05:53 -0500
4238 Branch: REL9_1_STABLE [b00a08859] 2015-01-24 13:05:56 -0500
4239 Branch: REL9_0_STABLE [3a3ee655c] 2015-01-24 13:05:58 -0500
4244 Numerous cleanups of warnings from Coverity static code analyzer
4245 (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
4249 These changes are mostly cosmetic but in some cases fix corner-case
4250 bugs, for example a crash rather than a proper error report after an
4251 out-of-memory failure. None are believed to represent security
4257 Author: Robert Haas <rhaas@postgresql.org>
4258 Branch: REL9_3_STABLE [05c0059b3] 2014-07-30 12:10:20 -0400
4263 Fix setup of background workers in EXEC_BACKEND builds, eg Windows
4269 Author: Noah Misch <noah@leadboat.com>
4270 Branch: REL9_3_STABLE [07115248f] 2014-07-22 11:01:41 -0400
4271 Branch: REL9_2_STABLE [cec0c2182] 2014-07-22 11:01:51 -0400
4272 Branch: REL9_1_STABLE [81af4185a] 2014-07-22 11:02:00 -0400
4273 Branch: REL9_0_STABLE [4c6d0abde] 2014-07-22 11:02:25 -0400
4278 Detect incompatible OpenLDAP versions during build (Noah Misch)
4282 With OpenLDAP versions 2.4.24 through 2.4.31,
4283 inclusive, <productname>PostgreSQL</> backends can crash at exit.
4284 Raise a warning during <application>configure</> based on the
4285 compile-time OpenLDAP version number, and test the crashing scenario
4286 in the <filename>contrib/dblink</> regression test.
4291 Author: Noah Misch <noah@leadboat.com>
4292 Branch: REL9_3_STABLE [318fe2321] 2014-08-18 23:01:04 -0400
4293 Branch: REL9_2_STABLE [ebd4d9cdd] 2014-08-18 23:01:09 -0400
4294 Branch: REL9_1_STABLE [ba72fc054] 2014-08-18 23:01:13 -0400
4295 Branch: REL9_0_STABLE [e6841c4d6] 2014-08-18 23:01:23 -0400
4300 In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
4301 with execute permissions (Noah Misch)
4306 Author: Tom Lane <tgl@sss.pgh.pa.us>
4307 Branch: master [aa719391d] 2015-01-19 23:44:19 -0500
4308 Branch: REL9_4_STABLE [3de9f22ac] 2015-01-19 23:44:22 -0500
4309 Branch: REL9_3_STABLE [1681e2f74] 2015-01-19 23:44:24 -0500
4310 Branch: REL9_2_STABLE [89b6a19e1] 2015-01-19 23:44:28 -0500
4311 Branch: REL9_1_STABLE [f4f522deb] 2015-01-19 23:44:30 -0500
4312 Branch: REL9_0_STABLE [338ff75fc] 2015-01-19 23:44:33 -0500
4317 Make <application>pg_regress</> remove any temporary installation it
4318 created upon successful exit (Tom Lane)
4322 This results in a very substantial reduction in disk space usage
4323 during <literal>make check-world</>, since that sequence involves
4324 creation of numerous temporary installations.
4329 Author: Tom Lane <tgl@sss.pgh.pa.us>
4330 Branch: REL9_3_STABLE [137e7c164] 2014-10-16 15:22:17 -0400
4331 Branch: REL9_2_STABLE [7c67b9365] 2014-10-16 15:22:20 -0400
4332 Branch: REL9_1_STABLE [2784b68b3] 2014-10-16 15:22:23 -0400
4333 Branch: REL9_0_STABLE [870a980aa] 2014-10-16 15:22:26 -0400
4338 Support time zone abbreviations that change UTC offset from time to
4343 Previously, <productname>PostgreSQL</> assumed that the UTC offset
4344 associated with a time zone abbreviation (such as <literal>EST</>)
4345 never changes in the usage of any particular locale. However this
4346 assumption fails in the real world, so introduce the ability for a
4347 zone abbreviation to represent a UTC offset that sometimes changes.
4348 Update the zone abbreviation definition files to make use of this
4349 feature in timezone locales that have changed the UTC offset of their
4350 abbreviations since 1970 (according to the IANA timezone database).
4351 In such timezones, <productname>PostgreSQL</> will now associate the
4352 correct UTC offset with the abbreviation depending on the given date.
4357 Author: Tom Lane <tgl@sss.pgh.pa.us>
4358 Branch: REL9_3_STABLE [9701f238b] 2014-10-03 17:44:56 -0400
4359 Branch: REL9_2_STABLE [d7d546bbc] 2014-10-03 17:44:59 -0400
4360 Branch: REL9_1_STABLE [252af79d9] 2014-10-03 17:45:03 -0400
4361 Branch: REL9_0_STABLE [cc7bad30c] 2014-10-03 17:45:07 -0400
4362 Author: Tom Lane <tgl@sss.pgh.pa.us>
4363 Branch: REL9_3_STABLE [0190f0a76] 2014-12-24 16:35:40 -0500
4364 Branch: REL9_2_STABLE [5c8665892] 2014-12-24 16:35:44 -0500
4365 Branch: REL9_1_STABLE [310597e31] 2014-12-24 16:35:48 -0500
4366 Branch: REL9_0_STABLE [8b70023af] 2014-12-24 16:35:54 -0500
4371 Update time zone abbreviations lists (Tom Lane)
4375 Add CST (China Standard Time) to our lists.
4376 Remove references to ADT as <quote>Arabia Daylight Time</>, an
4377 abbreviation that's been out of use since 2007; therefore, claiming
4378 there is a conflict with <quote>Atlantic Daylight Time</> doesn't seem
4380 Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
4381 (Fiji); we didn't even have them on the proper side of the date line.
4386 Author: Tom Lane <tgl@sss.pgh.pa.us>
4387 Branch: REL9_3_STABLE [8470cd473] 2015-01-30 22:46:05 -0500
4388 Branch: REL9_2_STABLE [c9048d353] 2015-01-30 22:46:12 -0500
4389 Branch: REL9_1_STABLE [cb24cd3f4] 2015-01-30 22:46:17 -0500
4390 Branch: REL9_0_STABLE [3553d9c6e] 2015-01-30 22:46:22 -0500
4391 Author: Tom Lane <tgl@sss.pgh.pa.us>
4392 Branch: REL9_3_STABLE [ab45d907b] 2014-11-17 12:08:25 -0500
4393 Branch: REL9_2_STABLE [b1e996035] 2014-11-17 12:08:32 -0500
4394 Branch: REL9_1_STABLE [b96c47a3d] 2014-11-17 12:08:39 -0500
4395 Branch: REL9_0_STABLE [92979576e] 2014-11-17 12:08:46 -0500
4396 Author: Tom Lane <tgl@sss.pgh.pa.us>
4397 Branch: REL9_3_STABLE [c66199151] 2014-10-04 14:18:33 -0400
4398 Branch: REL9_2_STABLE [8f75d7a25] 2014-10-04 14:18:36 -0400
4399 Branch: REL9_1_STABLE [745723c9e] 2014-10-04 14:18:39 -0400
4400 Branch: REL9_0_STABLE [b6391f587] 2014-10-04 14:18:43 -0400
4405 Update time zone data files to <application>tzdata</> release 2015a.
4409 The IANA timezone database has adopted abbreviations of the form
4410 <literal>A<replaceable>x</>ST</literal>/<literal>A<replaceable>x</>DT</literal>
4411 for all Australian time zones, reflecting what they believe to be
4412 current majority practice Down Under. These names do not conflict
4413 with usage elsewhere (other than ACST for Acre Summer Time, which has
4414 been in disuse since 1994). Accordingly, adopt these names into
4415 our <quote>Default</> timezone abbreviation set.
4416 The <quote>Australia</> abbreviation set now contains only CST, EAST,
4417 EST, SAST, SAT, and WST, all of which are thought to be mostly
4418 historical usage. Note that SAST has also been changed to be South
4419 Africa Standard Time in the <quote>Default</> abbreviation set.
4423 Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
4424 (Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were
4425 DST law changes in Chile, Mexico, the Turks & Caicos Islands
4426 (America/Grand_Turk), and Fiji. There is a new zone
4427 Pacific/Bougainville for portions of Papua New Guinea. Also, numerous
4428 corrections for historical (pre-1970) time zone data.
4437 <sect1 id="release-9-3-5">
4438 <title>Release 9.3.5</title>
4441 <title>Release Date</title>
4442 <simpara>2014-07-24</simpara>
4446 This release contains a variety of fixes from 9.3.4.
4447 For information about new features in the 9.3 major release, see
4448 <xref linkend="release-9-3">.
4452 <title>Migration to Version 9.3.5</title>
4455 A dump/restore is not required for those running 9.3.X.
4459 However, this release corrects a logic error
4460 in <application>pg_upgrade</>, as well as an index corruption problem in
4461 some GiST indexes. See the first two changelog entries below to find out
4462 whether your installation has been affected and what steps you should take
4467 Also, if you are upgrading from a version earlier than 9.3.4,
4468 see <xref linkend="release-9-3-4">.
4474 <title>Changes</title>
4479 Author: Bruce Momjian <bruce@momjian.us>
4480 Branch: master [0f7482733] 2014-06-24 16:11:06 -0400
4481 Branch: REL9_4_STABLE [dd5369047] 2014-06-24 16:11:06 -0400
4482 Branch: REL9_3_STABLE [cc5841809] 2014-06-24 16:11:06 -0400
4487 In <application>pg_upgrade</>, remove <filename>pg_multixact</> files
4488 left behind by <application>initdb</> (Bruce Momjian)
4492 If you used a pre-9.3.5 version of <application>pg_upgrade</> to
4493 upgrade a database cluster to 9.3, it might have left behind a file
4494 <filename>$PGDATA/pg_multixact/offsets/0000</> that should not be
4495 there and will eventually cause problems in <command>VACUUM</>.
4496 <emphasis>However, in common cases this file is actually valid and
4497 must not be removed.</emphasis>
4498 To determine whether your installation has this problem, run this
4499 query as superuser, in any database of the cluster:
4501 WITH list(file) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets'))
4502 SELECT EXISTS (SELECT * FROM list WHERE file = '0000') AND
4503 NOT EXISTS (SELECT * FROM list WHERE file = '0001') AND
4504 NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF') AND
4505 EXISTS (SELECT * FROM list WHERE file != '0000')
4506 AS file_0000_removal_required;
4508 If this query returns <literal>t</>, manually remove the file
4509 <filename>$PGDATA/pg_multixact/offsets/0000</>.
4510 Do nothing if the query returns <literal>f</>.
4515 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4516 Branch: master Release: REL9_4_BR [540ac7cea] 2014-05-13 15:15:13 +0300
4517 Branch: REL9_3_STABLE [d5b912c90] 2014-05-13 15:27:14 +0300
4518 Branch: REL9_2_STABLE [0d8d0d027] 2014-05-13 15:27:21 +0300
4519 Branch: REL9_1_STABLE [1913d0f28] 2014-05-13 15:27:28 +0300
4520 Branch: REL9_0_STABLE [c87c43f08] 2014-05-13 15:27:36 +0300
4521 Branch: REL8_4_STABLE [e31d77c96] 2014-05-13 15:27:43 +0300
4526 Correctly initialize padding bytes in <filename>contrib/btree_gist</>
4527 indexes on <type>bit</> columns (Heikki Linnakangas)
4531 This error could result in incorrect query results due to values that
4532 should compare equal not being seen as equal.
4533 Users with GiST indexes on <type>bit</> or <type>bit varying</>
4534 columns should <command>REINDEX</> those indexes after installing this
4540 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4541 Branch: master Release: REL9_4_BR [4f7bb4b2a] 2014-05-08 14:50:22 +0300
4542 Branch: REL9_3_STABLE [34572920c] 2014-05-08 14:43:04 +0300
4543 Branch: REL9_2_STABLE [31633f992] 2014-05-08 14:43:39 +0300
4544 Branch: REL9_1_STABLE [686a7194e] 2014-05-08 14:43:58 +0300
4545 Branch: REL9_0_STABLE [8b4efe1f3] 2014-05-08 14:44:06 +0300
4546 Branch: REL8_4_STABLE [be7830596] 2014-05-08 14:46:43 +0300
4551 Protect against torn pages when deleting GIN list pages (Heikki
4556 This fix prevents possible index corruption if a system crash occurs
4557 while the page update is being written to disk.
4562 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4563 Branch: master Release: REL9_4_BR [7ca32e255] 2014-04-08 14:51:40 +0300
4564 Branch: REL9_3_STABLE [601c01e08] 2014-04-08 14:51:49 +0300
4565 Branch: REL9_2_STABLE [02b9fd73e] 2014-04-08 14:51:56 +0300
4566 Branch: REL9_1_STABLE [ac0078c1d] 2014-04-08 14:52:01 +0300
4567 Branch: REL9_0_STABLE [d034e9b3b] 2014-04-08 14:52:07 +0300
4572 Don't clear the right-link of a GiST index page while replaying
4573 updates from WAL (Heikki Linnakangas)
4577 This error could lead to transiently wrong answers from GiST index
4578 scans performed in Hot Standby.
4583 Author: Tom Lane <tgl@sss.pgh.pa.us>
4584 Branch: master Release: REL9_4_BR [c170655cc] 2014-06-09 16:31:11 -0400
4585 Branch: REL9_3_STABLE [717c116f1] 2014-06-09 16:31:16 -0400
4586 Branch: REL9_2_STABLE [93328b2df] 2014-06-09 16:30:46 -0400
4591 Fix corner-case infinite loop during insertion into an SP-GiST text
4597 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4598 Branch: master [1264ef31a] 2014-07-16 09:19:06 +0300
4599 Branch: REL9_4_STABLE [9b3ef66af] 2014-07-16 09:20:20 +0300
4600 Branch: REL9_3_STABLE [a4867d041] 2014-07-16 09:20:31 +0300
4605 Fix incorrect answers from SP-GiST index searches
4606 with <literal>-|-</literal> (range adjacency) operator
4607 (Heikki Linnakangas)
4612 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4613 Branch: master Release: REL9_4_BR [b0b263baa] 2014-06-09 15:17:23 -0400
4614 Branch: REL9_3_STABLE [167a2535f] 2014-06-09 15:17:23 -0400
4619 Fix wraparound handling for <filename>pg_multixact/members</>
4620 (Álvaro Herrera)
4625 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4626 Branch: master [f741300c9] 2014-06-27 14:43:53 -0400
4627 Branch: REL9_4_STABLE [56f86bb76] 2014-06-27 14:43:52 -0400
4628 Branch: REL9_3_STABLE [9a28c3752] 2014-06-27 14:43:52 -0400
4633 Truncate <structname>pg_multixact</> during checkpoints, not
4634 during <command>VACUUM</> (Álvaro Herrera)
4638 This change ensures that <structname>pg_multixact</> segments can't be
4639 removed if they'd still be needed during WAL replay after a crash.
4644 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4645 Branch: master Release: REL9_4_BR [2a8e1ac59] 2014-04-17 17:47:50 +0300
4646 Branch: REL9_3_STABLE [95aa823eb] 2014-04-17 17:47:58 +0300
4651 Fix possible inconsistency of all-visible flags after WAL recovery
4652 (Heikki Linnakangas)
4657 Author: Tom Lane <tgl@sss.pgh.pa.us>
4658 Branch: master Release: REL9_4_BR [0f928a85e] 2014-05-05 14:43:39 -0400
4659 Branch: REL9_3_STABLE [4f4ef042f] 2014-05-05 14:43:42 -0400
4660 Branch: REL9_2_STABLE [c8fbeeb45] 2014-05-05 14:43:46 -0400
4661 Branch: REL9_1_STABLE [2f4ee3a2f] 2014-05-05 14:43:49 -0400
4662 Branch: REL9_0_STABLE [7d5b68621] 2014-05-05 14:43:52 -0400
4663 Branch: REL8_4_STABLE [3ada1fab8] 2014-05-05 14:43:55 -0400
4668 Fix possibly-incorrect cache invalidation during nested calls
4669 to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
4674 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4675 Branch: master Release: REL9_4_BR [1a917ae86] 2014-04-24 15:41:55 -0300
4676 Branch: REL9_3_STABLE [c0bd128c8] 2014-04-24 15:41:55 -0300
4681 Fix race condition when updating a tuple concurrently locked by
4682 another process (Andres Freund, Álvaro Herrera)
4687 Author: Tom Lane <tgl@sss.pgh.pa.us>
4688 Branch: REL9_3_STABLE [a2db7b7d0] 2014-06-26 10:41:59 -0700
4689 Branch: REL9_2_STABLE [0cf16686b] 2014-06-26 10:42:03 -0700
4690 Branch: REL9_1_STABLE [555d0b200] 2014-06-26 10:42:08 -0700
4695 Fix <quote>could not find pathkey item to sort</> planner failures
4696 with <literal>UNION ALL</> over subqueries reading from tables with
4697 inheritance children (Tom Lane)
4702 Author: Tom Lane <tgl@sss.pgh.pa.us>
4703 Branch: master [9e2f2d7a0] 2014-07-08 14:03:56 -0400
4704 Branch: REL9_4_STABLE [ac45aa1dd] 2014-07-08 14:03:45 -0400
4705 Branch: REL9_3_STABLE [6d36aee5b] 2014-07-08 14:03:19 -0400
4706 Branch: REL9_2_STABLE [189bd09cb] 2014-07-08 14:03:23 -0400
4707 Branch: REL9_1_STABLE [fa21a760b] 2014-07-08 14:03:26 -0400
4708 Branch: REL9_0_STABLE [2865d5952] 2014-07-08 14:03:30 -0400
4709 Branch: REL8_4_STABLE [2e7469dc8] 2014-07-08 14:03:32 -0400
4714 Don't assume a subquery's output is unique if there's a set-returning
4715 function in its targetlist (David Rowley)
4719 This oversight could lead to misoptimization of constructs
4720 like <literal>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
4726 Author: Tom Lane <tgl@sss.pgh.pa.us>
4727 Branch: master Release: REL9_4_BR [95811032d] 2014-04-29 13:12:46 -0400
4728 Branch: REL9_3_STABLE [150a44e83] 2014-04-29 13:12:29 -0400
4729 Branch: REL9_2_STABLE [0901dbab3] 2014-04-29 13:12:33 -0400
4734 Improve planner to drop constant-NULL inputs
4735 of <literal>AND</>/<literal>OR</> when possible (Tom Lane)
4739 This change fixes some cases where the more aggressive parameter
4740 substitution done by 9.2 and later can lead to a worse plan than
4741 older versions produced.
4746 Author: Tom Lane <tgl@sss.pgh.pa.us>
4747 Branch: master Release: REL9_4_BR [c7b353959] 2014-04-03 22:02:24 -0400
4748 Branch: REL9_3_STABLE [d359f71ac] 2014-04-03 22:02:27 -0400
4753 Ensure that the planner sees equivalent <literal>VARIADIC</> and
4754 non-<literal>VARIADIC</> function calls as equivalent (Tom Lane)
4758 This bug could for example result in failure to use expression indexes
4759 involving variadic functions. It might be necessary to re-create such
4760 indexes, and/or re-create views including variadic function calls that
4761 should match the indexes, for the fix to be effective for existing 9.3
4767 Author: Tom Lane <tgl@sss.pgh.pa.us>
4768 Branch: master [57d8c1270] 2014-06-24 21:22:40 -0700
4769 Branch: REL9_4_STABLE [a331512de] 2014-06-24 21:22:43 -0700
4770 Branch: REL9_3_STABLE [a1fc36495] 2014-06-24 21:22:47 -0700
4775 Fix handling of nested <type>JSON</> objects
4776 in <function>json_populate_recordset()</> and friends
4777 (Michael Paquier, Tom Lane)
4781 A nested <type>JSON</> object could result in previous fields of the
4782 parent object not being shown in the output.
4787 Author: Tom Lane <tgl@sss.pgh.pa.us>
4788 Branch: master Release: REL9_4_BR [0ca6bda8e] 2014-05-09 12:55:31 -0400
4789 Branch: REL9_3_STABLE [13c679995] 2014-05-09 12:55:03 -0400
4790 Branch: REL9_2_STABLE [25c933c5c] 2014-05-09 12:55:06 -0400
4795 Fix identification of input type category in <function>to_json()</>
4796 and friends (Tom Lane)
4800 This is known to have led to inadequate quoting of <type>money</>
4801 fields in the <type>JSON</> result, and there may have been wrong
4802 results for other data types as well.
4807 Author: Tom Lane <tgl@sss.pgh.pa.us>
4808 Branch: master Release: REL9_4_BR [3f8c8e3c6] 2014-05-01 15:19:06 -0400
4809 Branch: REL9_3_STABLE [b72e90bc3] 2014-05-01 15:19:10 -0400
4810 Branch: REL9_2_STABLE [8c43980a1] 2014-05-01 15:19:14 -0400
4811 Branch: REL9_1_STABLE [db1fdc945] 2014-05-01 15:19:17 -0400
4812 Branch: REL9_0_STABLE [7a4f114f3] 2014-05-01 15:19:20 -0400
4813 Branch: REL8_4_STABLE [70debcf09] 2014-05-01 15:19:23 -0400
4818 Fix failure to detoast fields in composite elements of structured
4823 This corrects cases where TOAST pointers could be copied into other
4824 tables without being dereferenced. If the original data is later
4825 deleted, it would lead to errors like <quote>missing chunk number 0
4826 for toast value ...</> when the now-dangling pointer is used.
4831 Author: Tom Lane <tgl@sss.pgh.pa.us>
4832 Branch: master [d68581483] 2014-07-11 19:12:35 -0400
4833 Branch: REL9_4_STABLE [f280eff94] 2014-07-11 19:12:38 -0400
4834 Branch: REL9_3_STABLE [b77e6b959] 2014-07-11 19:12:42 -0400
4835 Branch: REL9_2_STABLE [261f954e7] 2014-07-11 19:12:45 -0400
4836 Branch: REL9_1_STABLE [c45841f9e] 2014-07-11 19:12:48 -0400
4837 Branch: REL9_0_STABLE [cd8ba91a0] 2014-07-11 19:12:51 -0400
4838 Branch: REL8_4_STABLE [a81fbcfb3] 2014-07-11 19:12:56 -0400
4843 Fix <quote>record type has not been registered</> failures with
4844 whole-row references to the output of Append plan nodes (Tom Lane)
4849 Author: Tom Lane <tgl@sss.pgh.pa.us>
4850 Branch: master Release: REL9_4_BR [04e5025be] 2014-05-07 14:25:11 -0400
4851 Branch: REL9_3_STABLE [fc58c39d4] 2014-05-07 14:25:13 -0400
4852 Branch: REL9_2_STABLE [022b5f2b2] 2014-05-07 14:25:17 -0400
4853 Branch: REL9_1_STABLE [229101db4] 2014-05-07 14:25:22 -0400
4854 Branch: REL9_0_STABLE [7f66ade71] 2014-05-07 14:25:25 -0400
4855 Branch: REL8_4_STABLE [2a527baa3] 2014-05-07 14:25:28 -0400
4860 Fix possible crash when invoking a user-defined function while
4861 rewinding a cursor (Tom Lane)
4866 Author: Tom Lane <tgl@sss.pgh.pa.us>
4867 Branch: master [45b0f3572] 2014-06-19 22:14:26 -0400
4868 Branch: REL9_4_STABLE [1044e79a0] 2014-06-19 22:13:44 -0400
4869 Branch: REL9_3_STABLE [c1f8fb9bf] 2014-06-19 22:13:47 -0400
4870 Branch: REL9_2_STABLE [b568d3836] 2014-06-19 22:13:51 -0400
4871 Branch: REL9_1_STABLE [06d5eacbc] 2014-06-19 22:13:54 -0400
4872 Branch: REL9_0_STABLE [83131e634] 2014-06-19 22:13:58 -0400
4873 Branch: REL8_4_STABLE [d297c91d4] 2014-06-19 22:14:00 -0400
4878 Fix query-lifespan memory leak while evaluating the arguments for a
4879 function in <literal>FROM</> (Tom Lane)
4884 Author: Tom Lane <tgl@sss.pgh.pa.us>
4885 Branch: master [1567e659a] 2014-07-18 13:00:27 -0400
4886 Branch: REL9_4_STABLE [4a66f0f2d] 2014-07-18 13:00:39 -0400
4887 Branch: REL9_3_STABLE [5ef588b22] 2014-07-18 13:00:43 -0400
4888 Branch: REL9_2_STABLE [a223b9e36] 2014-07-18 13:00:48 -0400
4889 Branch: REL9_1_STABLE [8a817785a] 2014-07-18 13:00:52 -0400
4890 Branch: REL9_0_STABLE [b8c24f7ab] 2014-07-18 13:00:57 -0400
4891 Branch: REL8_4_STABLE [e0a233744] 2014-07-18 13:01:04 -0400
4896 Fix session-lifespan memory leaks in regular-expression processing
4897 (Tom Lane, Arthur O'Dwyer, Greg Stark)
4902 Author: Tom Lane <tgl@sss.pgh.pa.us>
4903 Branch: master [fd90b5d57] 2014-06-10 22:48:16 -0400
4904 Branch: REL9_4_STABLE [7f9fbb842] 2014-06-10 22:48:31 -0400
4905 Branch: REL9_3_STABLE [87db9534a] 2014-06-10 22:48:39 -0400
4906 Branch: REL9_2_STABLE [802323535] 2014-06-10 22:48:45 -0400
4907 Branch: REL9_1_STABLE [62f134954] 2014-06-10 22:48:52 -0400
4908 Branch: REL9_0_STABLE [4d5ea4290] 2014-06-10 22:48:59 -0400
4909 Branch: REL8_4_STABLE [f3f40434b] 2014-06-10 22:49:08 -0400
4914 Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
4919 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4920 Branch: master [a87a7dc8b] 2014-06-24 13:27:18 +0300
4921 Branch: REL9_4_STABLE [1818ae0a7] 2014-06-24 13:31:06 +0300
4922 Branch: REL9_3_STABLE [2a7512bc7] 2014-06-24 13:31:00 +0300
4923 Branch: REL9_2_STABLE [1c9f9e888] 2014-06-24 13:30:54 +0300
4924 Branch: REL9_1_STABLE [dd1a5b09b] 2014-06-24 13:30:41 +0300
4929 Prevent foreign tables from being created with OIDS
4930 when <xref linkend="guc-default-with-oids"> is true
4936 Author: Andres Freund <andres@anarazel.de>
4937 Branch: master Release: REL9_4_BR [621a99a66] 2014-06-04 21:36:19 +0200
4938 Branch: REL9_3_STABLE [edde59db1] 2014-06-04 23:26:08 +0200
4939 Branch: REL9_2_STABLE [315442c01] 2014-06-04 23:25:52 +0200
4940 Branch: REL9_1_STABLE [6bf6e528a] 2014-06-04 23:26:30 +0200
4941 Branch: REL9_0_STABLE [037c6fb9f] 2014-06-04 23:27:10 +0200
4942 Branch: REL8_4_STABLE [80d45ae4e] 2014-06-04 23:27:38 +0200
4947 Fix liveness checks for rows that were inserted in the current
4948 transaction and then deleted by a now-rolled-back subtransaction
4953 This could cause problems (at least spurious warnings, and at worst an
4954 infinite loop) if <command>CREATE INDEX</> or <command>CLUSTER</> were
4955 done later in the same transaction.
4960 Author: Tom Lane <tgl@sss.pgh.pa.us>
4961 Branch: master Release: REL9_4_BR [d19bd29f0] 2014-04-24 13:29:48 -0400
4962 Branch: REL9_3_STABLE [12e41a5d7] 2014-04-24 13:29:56 -0400
4963 Branch: REL9_2_STABLE [ea9ac7741] 2014-04-24 13:30:00 -0400
4964 Branch: REL9_1_STABLE [70e7be264] 2014-04-24 13:30:04 -0400
4965 Branch: REL9_0_STABLE [b7a3e1173] 2014-04-24 13:30:08 -0400
4966 Branch: REL8_4_STABLE [82fbd88a7] 2014-04-24 13:30:14 -0400
4971 Clear <structname>pg_stat_activity</>.<structfield>xact_start</>
4972 during <command>PREPARE TRANSACTION</> (Andres Freund)
4976 After the <command>PREPARE</>, the originating session is no longer in
4977 a transaction, so it should not continue to display a transaction
4983 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4984 Branch: master [6bdf4b9c7] 2014-07-15 13:24:07 -0400
4985 Branch: REL9_4_STABLE [e45229bb6] 2014-07-15 13:24:07 -0400
4986 Branch: REL9_3_STABLE [12c5bbdcb] 2014-07-15 13:24:07 -0400
4987 Branch: REL9_2_STABLE [b42f09fc8] 2014-07-15 13:24:07 -0400
4988 Branch: REL9_1_STABLE [a41dc7321] 2014-07-15 13:24:07 -0400
4989 Branch: REL9_0_STABLE [bf08864b8] 2014-07-15 13:24:07 -0400
4990 Branch: REL8_4_STABLE [4b767789d] 2014-07-15 13:24:07 -0400
4995 Fix <command>REASSIGN OWNED</> to not fail for text search objects
4996 (Álvaro Herrera)
5001 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5002 Branch: master [b7e51d9c0] 2014-06-27 14:43:46 -0400
5003 Branch: REL9_4_STABLE [9eecc8a7c] 2014-06-27 14:43:46 -0400
5004 Branch: REL9_3_STABLE [e86cfc4bb] 2014-06-27 14:43:45 -0400
5009 Prevent <structname>pg_class</>.<structfield>relminmxid</> values from
5010 going backwards during <command>VACUUM FULL</> (Álvaro Herrera)
5015 Author: Tom Lane <tgl@sss.pgh.pa.us>
5016 Branch: master Release: REL9_4_BR [41de93c53] 2014-04-30 13:26:26 -0400
5017 Branch: REL9_3_STABLE [0652d77fb] 2014-04-30 13:26:29 -0400
5022 Reduce indentation in rule/view dumps to improve readability and avoid
5023 excessive whitespace (Greg Stark, Tom Lane)
5027 This change reduces the amount of indentation applied to nested
5028 constructs, including some cases that the user probably doesn't think
5029 of as nested, such as UNION lists. Previously, deeply nested
5030 constructs were printed with an amount of whitespace growing as
5031 O(N^2), which created a performance problem and even risk of
5032 out-of-memory failures. Now the indentation is reduced modulo 40,
5033 which is initially odd to look at but seems to preserve readability
5034 better than simply limiting the indentation would do.
5035 Redundant parenthesization of UNION lists has been reduced as well.
5040 Author: Tom Lane <tgl@sss.pgh.pa.us>
5041 Branch: master Release: REL9_4_BR [91e16b980] 2014-05-01 20:22:37 -0400
5042 Branch: REL9_3_STABLE [e31193d49] 2014-05-01 20:22:39 -0400
5047 Fix dumping of rules/views when subsequent addition of a column has
5048 resulted in multiple input columns matching a <literal>USING</>
5049 specification (Tom Lane)
5054 Author: Tom Lane <tgl@sss.pgh.pa.us>
5055 Branch: master [9b35ddce9] 2014-07-19 14:28:52 -0400
5056 Branch: REL9_4_STABLE [f0a497e4c] 2014-07-19 14:29:00 -0400
5057 Branch: REL9_3_STABLE [b978ab5f6] 2014-07-19 14:29:05 -0400
5062 Repair view printing for some cases involving functions
5063 in <literal>FROM</> that return a composite type containing dropped
5069 Author: Tom Lane <tgl@sss.pgh.pa.us>
5070 Branch: master Release: REL9_4_BR [5d8117e1f] 2014-04-05 18:16:08 -0400
5071 Branch: REL9_3_STABLE [21aa47d01] 2014-04-05 18:16:11 -0400
5072 Branch: REL9_2_STABLE [53463e247] 2014-04-05 18:16:14 -0400
5073 Branch: REL9_1_STABLE [093d3da1d] 2014-04-05 18:16:17 -0400
5074 Branch: REL9_0_STABLE [5c26ab659] 2014-04-05 18:16:20 -0400
5075 Branch: REL8_4_STABLE [969735cf1] 2014-04-05 18:16:24 -0400
5080 Block signals during postmaster startup (Tom Lane)
5084 This ensures that the postmaster will properly clean up after itself
5085 if, for example, it receives <systemitem>SIGINT</> while still
5091 Author: Tom Lane <tgl@sss.pgh.pa.us>
5092 Branch: master Release: REL9_4_BR [fc752505a] 2014-04-02 17:11:24 -0400
5093 Branch: REL9_3_STABLE [65183fb78] 2014-04-02 17:11:27 -0400
5094 Branch: REL9_2_STABLE [029decfec] 2014-04-02 17:11:31 -0400
5095 Branch: REL9_1_STABLE [b7a424371] 2014-04-02 17:11:34 -0400
5100 Fix client host name lookup when processing <filename>pg_hba.conf</>
5101 entries that specify host names instead of IP addresses (Tom Lane)
5105 Ensure that reverse-DNS lookup failures are reported, instead of just
5106 silently not matching such entries. Also ensure that we make only
5107 one reverse-DNS lookup attempt per connection, not one per host name
5108 entry, which is what previously happened if the lookup attempts failed.
5113 Author: Tom Lane <tgl@sss.pgh.pa.us>
5114 Branch: master Release: REL9_4_BR [b203c57bb] 2014-04-04 22:03:35 -0400
5115 Branch: REL9_3_STABLE [7d1a0f585] 2014-04-04 22:03:38 -0400
5116 Branch: REL9_2_STABLE [6d25eb314] 2014-04-04 22:03:42 -0400
5121 Allow the root user to use <literal>postgres -C variable</> and
5122 <literal>postgres --describe-config</> (MauMau)
5126 The prohibition on starting the server as root does not need to extend
5127 to these operations, and relaxing it prevents failure
5128 of <application>pg_ctl</> in some scenarios.
5133 Author: Noah Misch <noah@leadboat.com>
5134 Branch: master [be76a6d39] 2014-06-14 09:41:13 -0400
5135 Branch: REL9_4_STABLE [6583a75b2] 2014-06-14 09:41:16 -0400
5136 Branch: REL9_3_STABLE [1442b426e] 2014-06-14 09:41:17 -0400
5137 Branch: REL9_2_STABLE [453a5d91d] 2014-06-14 09:41:17 -0400
5138 Branch: REL9_1_STABLE [481831b43] 2014-06-14 09:41:18 -0400
5139 Branch: REL9_0_STABLE [5f09c583c] 2014-06-14 09:41:18 -0400
5140 Branch: REL8_4_STABLE [95cefd30e] 2014-06-14 09:41:18 -0400
5145 Secure Unix-domain sockets of temporary postmasters started during
5146 <literal>make check</> (Noah Misch)
5150 Any local user able to access the socket file could connect as the
5151 server's bootstrap superuser, then proceed to execute arbitrary code as
5152 the operating-system user running the test, as we previously noted in
5153 CVE-2014-0067. This change defends against that risk by placing the
5154 server's socket in a temporary, mode 0700 subdirectory
5155 of <filename>/tmp</>. The hazard remains however on platforms where
5156 Unix sockets are not supported, notably Windows, because then the
5157 temporary postmaster must accept local TCP connections.
5161 A useful side effect of this change is to simplify
5162 <literal>make check</> testing in builds that
5163 override <literal>DEFAULT_PGSOCKET_DIR</>. Popular non-default values
5164 like <filename>/var/run/postgresql</> are often not writable by the
5165 build user, requiring workarounds that will no longer be necessary.
5170 Author: Tom Lane <tgl@sss.pgh.pa.us>
5171 Branch: master Release: REL9_4_BR [abe075dff] 2014-04-04 23:09:35 -0400
5172 Branch: REL9_3_STABLE [84520f91c] 2014-04-04 23:09:38 -0400
5173 Branch: REL9_2_STABLE [1a496a12b] 2014-04-04 23:09:41 -0400
5174 Branch: REL9_1_STABLE [af7738fe6] 2014-04-04 23:09:45 -0400
5175 Branch: REL9_0_STABLE [634056567] 2014-04-04 23:09:49 -0400
5180 Fix tablespace creation WAL replay to work on Windows (MauMau)
5185 Author: Bruce Momjian <bruce@momjian.us>
5186 Branch: master Release: REL9_4_BR [418093465] 2014-04-16 10:45:48 -0400
5187 Branch: REL9_3_STABLE [f716c3250] 2014-04-16 10:45:48 -0400
5188 Branch: REL9_2_STABLE [966f015b6] 2014-04-16 10:45:48 -0400
5189 Branch: REL9_1_STABLE [bed499ed1] 2014-04-16 10:45:48 -0400
5190 Branch: REL9_0_STABLE [a86b2daff] 2014-04-16 10:45:48 -0400
5195 Fix detection of socket creation failures on Windows (Bruce Momjian)
5200 Author: Tom Lane <tgl@sss.pgh.pa.us>
5201 Branch: master Release: REL9_4_BR [6862ca697] 2014-04-05 12:41:25 -0400
5202 Branch: REL9_3_STABLE [18db2150c] 2014-04-05 12:41:28 -0400
5203 Branch: REL9_2_STABLE [bdc3e95c2] 2014-04-05 12:41:31 -0400
5204 Branch: REL9_1_STABLE [cb11f4d8d] 2014-04-05 12:41:34 -0400
5205 Branch: REL9_0_STABLE [9500d8f89] 2014-04-05 12:41:38 -0400
5206 Branch: REL8_4_STABLE [30e434bdf] 2014-04-05 12:41:40 -0400
5211 On Windows, allow new sessions to absorb values of PGC_BACKEND
5212 parameters (such as <xref linkend="guc-log-connections">) from the
5213 configuration file (Amit Kapila)
5217 Previously, if such a parameter were changed in the file post-startup,
5218 the change would have no effect.
5223 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5224 Branch: master Release: REL9_4_BR [503de5462] 2014-04-30 10:35:52 +0300
5225 Branch: REL9_3_STABLE [8a90a39b4] 2014-04-30 10:35:46 +0300
5226 Branch: REL9_2_STABLE [e2558e016] 2014-04-30 10:36:31 +0300
5227 Branch: REL9_1_STABLE [94095e341] 2014-04-30 10:36:41 +0300
5228 Branch: REL9_0_STABLE [c06b7219a] 2014-04-30 10:38:32 +0300
5229 Branch: REL8_4_STABLE [e3f273ff6] 2014-04-30 10:39:03 +0300
5234 Properly quote executable path names on Windows (Nikhil Deshpande)
5238 This oversight could cause <application>initdb</>
5239 and <application>pg_upgrade</> to fail on Windows, if the installation
5240 path contained both spaces and <literal>@</> signs.
5245 Author: Tom Lane <tgl@sss.pgh.pa.us>
5246 Branch: master Release: REL9_4_BR [20561acf9] 2014-05-30 18:19:06 -0400
5247 Branch: REL9_3_STABLE [4f5f4da79] 2014-05-30 18:19:14 -0400
5248 Branch: REL9_2_STABLE [83ed4598b] 2014-05-30 18:18:20 -0400
5249 Branch: REL9_1_STABLE [a784a39c4] 2014-05-30 18:18:24 -0400
5250 Branch: REL9_0_STABLE [4f725bbc4] 2014-05-30 18:18:28 -0400
5251 Branch: REL8_4_STABLE [ae41bb4be] 2014-05-30 18:18:32 -0400
5256 Fix linking of <application>libpython</> on OS X (Tom Lane)
5260 The method we previously used can fail with the Python library
5261 supplied by Xcode 5.0 and later.
5266 Author: Tom Lane <tgl@sss.pgh.pa.us>
5267 Branch: master Release: REL9_4_BR [2f557167b] 2014-05-07 21:39:13 -0400
5268 Branch: REL9_3_STABLE [b4f9c93ce] 2014-05-07 21:38:38 -0400
5269 Branch: REL9_2_STABLE [f7672c8ce] 2014-05-07 21:38:41 -0400
5270 Branch: REL9_1_STABLE [86888054a] 2014-05-07 21:38:44 -0400
5271 Branch: REL9_0_STABLE [77e662827] 2014-05-07 21:38:47 -0400
5272 Branch: REL8_4_STABLE [664ac3de7] 2014-05-07 21:38:50 -0400
5277 Avoid buffer bloat in <application>libpq</> when the server
5278 consistently sends data faster than the client can absorb it
5279 (Shin-ichi Morita, Tom Lane)
5283 <application>libpq</> could be coerced into enlarging its input buffer
5284 until it runs out of memory (which would be reported misleadingly
5285 as <quote>lost synchronization with server</>). Under ordinary
5286 circumstances it's quite far-fetched that data could be continuously
5287 transmitted more quickly than the <function>recv()</> loop can
5288 absorb it, but this has been observed when the client is artificially
5289 slowed by scheduler constraints.
5294 Author: Magnus Hagander <magnus@hagander.net>
5295 Branch: master Release: REL9_4_BR [585bca393] 2014-04-16 18:58:10 +0200
5296 Branch: REL9_3_STABLE [cc269272c] 2014-04-16 18:58:55 +0200
5297 Branch: REL9_2_STABLE [b764080ee] 2014-04-16 18:59:11 +0200
5298 Branch: REL9_1_STABLE [c4bf15b9c] 2014-04-16 18:59:28 +0200
5299 Branch: REL9_0_STABLE [96752b02d] 2014-04-16 18:59:37 +0200
5300 Branch: REL8_4_STABLE [b4ae2e37d] 2014-04-16 18:59:48 +0200
5305 Ensure that LDAP lookup attempts in <application>libpq</> time out as
5306 intended (Laurenz Albe)
5311 Author: Michael Meskes <meskes@postgresql.org>
5312 Branch: master Release: REL9_4_BR [8d6a07fa0] 2014-05-06 13:09:51 +0200
5313 Branch: REL9_3_STABLE [b4eeb9d58] 2014-05-06 13:04:30 +0200
5314 Branch: REL9_2_STABLE [3a024c110] 2014-05-06 13:14:01 +0200
5315 Branch: REL9_1_STABLE [fb66e88cf] 2014-05-06 13:20:22 +0200
5316 Branch: REL9_0_STABLE [91c8c106f] 2014-05-06 13:24:13 +0200
5318 Author: Michael Meskes <meskes@postgresql.org>
5319 Branch: master Release: REL9_4_BR [f91796853] 2014-04-09 11:23:38 +0200
5320 Branch: REL9_3_STABLE [3b8fda676] 2014-04-09 11:38:40 +0200
5321 Branch: REL9_2_STABLE [2b3136de9] 2014-04-09 11:43:13 +0200
5322 Branch: REL9_1_STABLE [0de106836] 2014-04-09 12:04:33 +0200
5323 Branch: REL9_0_STABLE [0c2eb989e] 2014-04-09 12:12:32 +0200
5328 Fix <application>ecpg</> to do the right thing when an array
5329 of <type>char *</> is the target for a FETCH statement returning more
5330 than one row, as well as some other array-handling fixes
5336 Author: Tom Lane <tgl@sss.pgh.pa.us>
5337 Branch: master Release: REL9_4_BR [62215de29] 2014-03-29 17:34:00 -0400
5338 Branch: REL9_3_STABLE [3080bbaa9] 2014-03-29 17:34:03 -0400
5343 Fix <application>pg_dump</> to cope with a materialized view that
5344 depends on a table's primary key (Tom Lane)
5348 This occurs if the view's query relies on functional dependency to
5349 abbreviate a <literal>GROUP BY</> list. <application>pg_dump</> got
5350 sufficiently confused that it dumped the materialized view as a
5356 Author: Tom Lane <tgl@sss.pgh.pa.us>
5357 Branch: master Release: REL9_4_BR [19f2d6cda] 2014-03-18 10:38:25 -0400
5358 Branch: REL9_3_STABLE [63817f86b] 2014-03-18 10:38:38 -0400
5363 Fix parsing of <application>pg_dumpall</>'s <option>-i</> switch
5369 Author: Tom Lane <tgl@sss.pgh.pa.us>
5370 Branch: master [c81e63d85] 2014-06-12 20:14:32 -0400
5371 Branch: REL9_4_STABLE [c3c1401ca] 2014-06-12 20:14:36 -0400
5372 Branch: REL9_3_STABLE [a11577f47] 2014-06-12 20:14:39 -0400
5373 Branch: REL9_2_STABLE [ce7fc4fbb] 2014-06-12 20:14:46 -0400
5374 Branch: REL9_1_STABLE [294a48985] 2014-06-12 20:14:49 -0400
5375 Branch: REL9_0_STABLE [3fec825f9] 2014-06-12 20:14:52 -0400
5376 Branch: REL8_4_STABLE [6adddac8a] 2014-06-12 20:14:55 -0400
5381 Fix <application>pg_restore</>'s processing of old-style large object
5386 A direct-to-database restore from an archive file generated by a
5387 pre-9.0 version of <application>pg_dump</> would usually fail if the
5388 archive contained more than a few comments for large objects.
5393 Author: Bruce Momjian <bruce@momjian.us>
5394 Branch: master [3088cc370] 2014-07-07 13:24:08 -0400
5395 Branch: REL9_4_STABLE [f64fe2cbe] 2014-07-07 13:24:08 -0400
5396 Branch: REL9_3_STABLE [f1d7ff5bb] 2014-07-07 13:24:08 -0400
5397 Branch: REL9_2_STABLE [759c9fb63] 2014-07-07 13:24:08 -0400
5402 Fix <application>pg_upgrade</> for cases where the new server creates
5403 a TOAST table but the old version did not (Bruce Momjian)
5407 This rare situation would manifest as <quote>relation OID mismatch</>
5413 Author: Bruce Momjian <bruce@momjian.us>
5414 Branch: master [a61daa14d] 2014-07-02 15:29:38 -0400
5415 Branch: REL9_4_STABLE [b446a384b] 2014-07-02 15:29:38 -0400
5416 Branch: REL9_3_STABLE [3d2e18510] 2014-07-02 15:29:38 -0400
5418 Author: Tom Lane <tgl@sss.pgh.pa.us>
5419 Branch: master [78db307bb] 2014-07-21 11:41:53 -0400
5420 Branch: REL9_4_STABLE [d122387d7] 2014-07-21 11:42:00 -0400
5421 Branch: REL9_3_STABLE [e7984cca0] 2014-07-21 11:42:05 -0400
5426 In <application>pg_upgrade</>,
5427 preserve <structname>pg_database</>.<structfield>datminmxid</>
5428 and <structname>pg_class</>.<structfield>relminmxid</> values from the
5429 old cluster, or insert reasonable values when upgrading from pre-9.3;
5430 also defend against unreasonable values in the core server
5431 (Bruce Momjian, Álvaro Herrera, Tom Lane)
5435 These changes prevent scenarios in which autovacuum might insist on
5436 scanning the entire cluster's contents immediately upon starting the
5437 new cluster, or in which tracking of unfrozen MXID values might be
5438 disabled completely.
5443 Author: Tom Lane <tgl@sss.pgh.pa.us>
5444 Branch: master Release: REL9_4_BR [e416830a2] 2014-05-20 12:20:47 -0400
5445 Branch: REL9_3_STABLE [0266a9c78] 2014-05-20 12:20:52 -0400
5446 Branch: REL9_2_STABLE [31f579f09] 2014-05-20 12:20:57 -0400
5451 Prevent <filename>contrib/auto_explain</> from changing the output of
5452 a user's <command>EXPLAIN</> (Tom Lane)
5456 If <filename>auto_explain</> is active, it could cause
5457 an <literal>EXPLAIN (ANALYZE, TIMING OFF)</> command to nonetheless
5458 print timing information.
5463 Author: Joe Conway <mail@joeconway.com>
5464 Branch: master [1dde5782e] 2014-06-20 12:24:59 -0700
5465 Branch: REL9_4_STABLE [9d884a34c] 2014-06-20 12:26:26 -0700
5466 Branch: REL9_3_STABLE [b3a3f3d2f] 2014-06-20 12:26:43 -0700
5467 Branch: REL9_2_STABLE [3e2cfa42f] 2014-06-20 12:27:04 -0700
5472 Fix query-lifespan memory leak in <filename>contrib/dblink</>
5473 (MauMau, Joe Conway)
5478 Author: Bruce Momjian <bruce@momjian.us>
5479 Branch: master Release: REL9_4_BR [9fe55259f] 2014-04-17 12:37:53 -0400
5480 Branch: REL9_3_STABLE [fc72e94a1] 2014-04-17 12:37:53 -0400
5481 Branch: REL9_2_STABLE [ea8725a8b] 2014-04-17 12:37:53 -0400
5482 Branch: REL9_1_STABLE [fc02b87e2] 2014-04-17 12:37:53 -0400
5483 Branch: REL9_0_STABLE [a1b9c4630] 2014-04-17 12:37:53 -0400
5484 Branch: REL8_4_STABLE [df2e62603] 2014-04-17 12:37:53 -0400
5489 In <filename>contrib/pgcrypto</> functions, ensure sensitive
5490 information is cleared from stack variables before returning
5496 Author: Noah Misch <noah@leadboat.com>
5497 Branch: master [9d0826c59] 2014-06-30 16:59:19 -0400
5498 Branch: REL9_4_STABLE [37a4d3d70] 2014-06-30 16:59:44 -0400
5499 Branch: REL9_3_STABLE [f14e40852] 2014-06-30 17:00:22 -0400
5500 Branch: REL9_2_STABLE [f6d6b7b1e] 2014-06-30 17:00:40 -0400
5505 Prevent use of already-freed memory in
5506 <filename>contrib/pgstattuple</>'s <function>pgstat_heap()</>
5512 Author: Tom Lane <tgl@sss.pgh.pa.us>
5513 Branch: master Release: REL9_4_BR [c941aed96] 2014-05-29 13:51:02 -0400
5514 Branch: REL9_3_STABLE [961dd203a] 2014-05-29 13:51:05 -0400
5515 Branch: REL9_2_STABLE [2fb9fb661] 2014-05-29 13:51:09 -0400
5516 Branch: REL9_1_STABLE [3606754da] 2014-05-29 13:51:12 -0400
5517 Branch: REL9_0_STABLE [b2f6754d2] 2014-05-29 13:51:15 -0400
5518 Branch: REL8_4_STABLE [fd785441f] 2014-05-29 13:51:18 -0400
5523 In <filename>contrib/uuid-ossp</>, cache the state of the OSSP UUID
5524 library across calls (Tom Lane)
5528 This improves the efficiency of UUID generation and reduces the amount
5529 of entropy drawn from <filename>/dev/urandom</>, on platforms that
5535 Author: Tom Lane <tgl@sss.pgh.pa.us>
5536 Branch: master [b1864fabf] 2014-07-19 15:00:50 -0400
5537 Branch: REL9_4_STABLE [e5ea60e80] 2014-07-19 15:01:05 -0400
5538 Branch: REL9_3_STABLE [bd5458f52] 2014-07-19 15:01:12 -0400
5539 Branch: REL9_2_STABLE [7d09e4854] 2014-07-19 15:01:18 -0400
5540 Branch: REL9_1_STABLE [40ccb6530] 2014-07-19 15:01:28 -0400
5541 Branch: REL9_0_STABLE [7659b6913] 2014-07-19 15:01:38 -0400
5542 Branch: REL8_4_STABLE [c51da696b] 2014-07-19 15:01:45 -0400
5547 Update time zone data files to <application>tzdata</> release 2014e
5548 for DST law changes in Crimea, Egypt, and Morocco.
5557 <sect1 id="release-9-3-4">
5558 <title>Release 9.3.4</title>
5561 <title>Release Date</title>
5562 <simpara>2014-03-20</simpara>
5566 This release contains a variety of fixes from 9.3.3.
5567 For information about new features in the 9.3 major release, see
5568 <xref linkend="release-9-3">.
5572 <title>Migration to Version 9.3.4</title>
5575 A dump/restore is not required for those running 9.3.X.
5579 However, the error fixed in the first changelog entry below could have
5580 resulted in corrupt data on standby servers. It may be prudent to
5581 reinitialize standby servers from fresh base backups after installing
5586 Also, if you are upgrading from a version earlier than 9.3.3,
5587 see <xref linkend="release-9-3-3">.
5593 <title>Changes</title>
5598 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5599 Branch: master [6bfa88acd] 2014-02-27 11:13:39 -0300
5600 Branch: REL9_3_STABLE [9a57858f1] 2014-02-27 11:23:24 -0300
5605 Fix WAL replay of locking an already-updated tuple (Andres Freund,
5606 Álvaro Herrera)
5610 This error caused updated rows to not be found by index scans, resulting
5611 in inconsistent query results depending on whether an index scan was
5612 used. Subsequent processing could result in constraint violations,
5613 since the previously updated row would not be found by later index
5614 searches, thus possibly allowing conflicting rows to be inserted.
5615 Since this error is in WAL replay, it would only manifest during crash
5616 recovery or on standby servers. The improperly-replayed case most
5617 commonly arises when a table row that is referenced by a foreign-key
5618 constraint is updated concurrently with creation of a referencing row.
5623 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5624 Branch: master [fecfc2b91] 2014-03-12 10:04:57 +0200
5625 Branch: REL9_3_STABLE [4738cc356] 2014-03-12 10:05:46 +0200
5626 Branch: REL9_2_STABLE [91f932cf4] 2014-03-12 10:07:22 +0200
5627 Branch: REL9_1_STABLE [63e59c259] 2014-03-12 10:09:22 +0200
5628 Branch: REL9_0_STABLE [9954e1f03] 2014-03-12 10:09:43 +0200
5629 Branch: REL8_4_STABLE [e2bccdfcc] 2014-03-12 10:10:04 +0200
5634 Restore GIN metapages unconditionally to avoid torn-page risk
5635 (Heikki Linnakangas)
5639 Although this oversight could theoretically result in a corrupted
5640 index, it is unlikely to have caused any problems in practice, since
5641 the active part of a GIN metapage is smaller than a standard 512-byte
5647 Author: Tom Lane <tgl@sss.pgh.pa.us>
5648 Branch: master [7bae0284e] 2014-03-13 12:02:54 -0400
5649 Branch: REL9_3_STABLE [0d11fed8e] 2014-03-13 12:02:56 -0400
5650 Branch: REL9_2_STABLE [bbe9621a9] 2014-03-13 12:03:00 -0400
5651 Branch: REL9_1_STABLE [7bfdf10f5] 2014-03-13 12:03:03 -0400
5652 Branch: REL9_0_STABLE [7aea1050e] 2014-03-13 12:03:07 -0400
5657 Avoid race condition in checking transaction commit status during
5658 receipt of a <command>NOTIFY</> message (Marko Tiikkaja)
5662 This prevents a scenario wherein a sufficiently fast client might
5663 respond to a notification before database updates made by the
5664 notifier have become visible to the recipient.
5669 Author: Tom Lane <tgl@sss.pgh.pa.us>
5670 Branch: master [bf4052faa] 2014-03-06 11:37:02 -0500
5671 Branch: REL9_3_STABLE [3973034e6] 2014-03-06 11:37:04 -0500
5676 Allow materialized views to be referenced in <command>UPDATE</>
5677 and <command>DELETE</> commands (Michael Paquier)
5681 Previously such queries failed with a complaint about not being able
5682 to lock rows in the materialized view.
5687 Author: Tom Lane <tgl@sss.pgh.pa.us>
5688 Branch: master [9662143f0] 2014-03-01 15:20:56 -0500
5689 Branch: REL9_3_STABLE [f5f21315d] 2014-03-01 15:21:00 -0500
5690 Branch: REL9_2_STABLE [03e6423fc] 2014-03-01 15:21:04 -0500
5691 Branch: REL9_1_STABLE [a9eb4924a] 2014-03-01 15:21:07 -0500
5692 Branch: REL9_0_STABLE [43af0e8c6] 2014-03-01 15:21:11 -0500
5693 Branch: REL8_4_STABLE [b6e143458] 2014-03-01 15:21:13 -0500
5698 Allow regular-expression operators to be terminated early by query
5699 cancel requests (Tom Lane)
5703 This prevents scenarios wherein a pathological regular expression
5704 could lock up a server process uninterruptably for a long time.
5709 Author: Tom Lane <tgl@sss.pgh.pa.us>
5710 Branch: master [a222f7fda] 2014-02-18 12:44:20 -0500
5711 Branch: REL9_3_STABLE [0aaa42241] 2014-02-18 12:44:24 -0500
5712 Branch: REL9_2_STABLE [d7cd6a9d5] 2014-02-18 12:44:27 -0500
5713 Branch: REL9_1_STABLE [e6f7fe983] 2014-02-18 12:44:30 -0500
5714 Branch: REL9_0_STABLE [19d66ab05] 2014-02-18 12:44:33 -0500
5715 Branch: REL8_4_STABLE [dd378dd1e] 2014-02-18 12:44:36 -0500
5720 Remove incorrect code that tried to allow <literal>OVERLAPS</> with
5721 single-element row arguments (Joshua Yanovski)
5725 This code never worked correctly, and since the case is neither
5726 specified by the SQL standard nor documented, it seemed better to
5727 remove it than fix it.
5732 Author: Tom Lane <tgl@sss.pgh.pa.us>
5733 Branch: master [7c3187494] 2014-03-06 19:31:05 -0500
5734 Branch: REL9_3_STABLE [f557826f8] 2014-03-06 19:31:09 -0500
5735 Branch: REL9_2_STABLE [5ec41e345] 2014-03-06 19:31:12 -0500
5736 Branch: REL9_1_STABLE [f3e3f6c5b] 2014-03-06 19:31:16 -0500
5737 Branch: REL9_0_STABLE [bed1259e5] 2014-03-06 19:31:19 -0500
5738 Branch: REL8_4_STABLE [f043bddfe] 2014-03-06 19:31:22 -0500
5743 Avoid getting more than <literal>AccessShareLock</> when de-parsing a
5744 rule or view (Dean Rasheed)
5748 This oversight resulted in <application>pg_dump</> unexpectedly
5749 acquiring <literal>RowExclusiveLock</> locks on tables mentioned as
5750 the targets of <literal>INSERT</>/<literal>UPDATE</>/<literal>DELETE</>
5751 commands in rules. While usually harmless, that could interfere with
5752 concurrent transactions that tried to acquire, for example,
5753 <literal>ShareLock</> on those tables.
5758 Author: Tom Lane <tgl@sss.pgh.pa.us>
5759 Branch: master [fccebe421] 2014-02-25 16:04:06 -0500
5760 Branch: REL9_3_STABLE [4162a55c7] 2014-02-25 16:04:09 -0500
5761 Branch: REL9_2_STABLE [00283cae1] 2014-02-25 16:04:12 -0500
5762 Branch: REL9_1_STABLE [3e2db4c80] 2014-02-25 16:04:16 -0500
5763 Branch: REL9_0_STABLE [1e0fb6a2c] 2014-02-25 16:04:20 -0500
5768 Improve performance of index endpoint probes during planning (Tom Lane)
5772 This change fixes a significant performance problem that occurred
5773 when there were many not-yet-committed rows at the end of the index,
5774 which is a common situation for indexes on sequentially-assigned
5775 values such as timestamps or sequence-generated identifiers.
5780 Author: Tom Lane <tgl@sss.pgh.pa.us>
5781 Branch: master [77585bce0] 2014-02-21 17:10:46 -0500
5782 Branch: REL9_3_STABLE [e8655a77f] 2014-02-21 17:10:49 -0500
5787 Use non-default selectivity estimates for
5788 <literal><replaceable>value</> IN (<replaceable>list</>)</literal> and
5789 <literal><replaceable>value</> <replaceable>operator</> ANY
5790 (<replaceable>array</>)</literal>
5791 expressions when the righthand side is a stable expression (Tom Lane)
5796 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5797 Branch: master [2b4f2ab33] 2014-03-05 13:03:29 -0300
5798 Branch: REL9_3_STABLE [13ea43ab8] 2014-03-05 13:03:29 -0300
5803 Remove the correct per-database statistics file during <command>DROP
5804 DATABASE</> (Tomas Vondra)
5808 This fix prevents a permanent leak of statistics file space.
5809 Users who have done many <command>DROP DATABASE</> commands since
5810 upgrading to <productname>PostgreSQL</> 9.3 may wish to check their
5811 statistics directory and delete statistics files that do not
5812 correspond to any existing database. Please note
5813 that <filename>db_0.stat</> should not be removed.
5818 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5819 Branch: master [94ae6ba74] 2014-03-06 21:38:51 +0200
5820 Branch: REL9_3_STABLE [dcd1131c8] 2014-03-06 21:40:50 +0200
5825 Fix <application>walsender</> ping logic to avoid inappropriate
5826 disconnects under continuous load (Andres Freund, Heikki Linnakangas)
5830 <application>walsender</> failed to send ping messages to the client
5831 if it was constantly busy sending WAL data; but it expected to see
5832 ping responses despite that, and would therefore disconnect
5833 once <xref linkend="guc-wal-sender-timeout"> elapsed.
5838 Author: Fujii Masao <fujii@postgresql.org>
5839 Branch: master [5c6d9fc4b] 2014-03-17 20:37:50 +0900
5840 Branch: REL9_3_STABLE [385723405] 2014-03-17 20:41:12 +0900
5841 Branch: REL9_2_STABLE [7899aa356] 2014-03-17 20:41:52 +0900
5842 Branch: REL9_1_STABLE [65e8dbb18] 2014-03-17 20:42:35 +0900
5847 Fix <application>walsender</>'s failure to shut down cleanly when client
5848 is <application>pg_receivexlog</> (Fujii Masao)
5853 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5854 Branch: master [956685f82] 2014-03-05 14:48:14 +0200
5855 Branch: REL9_3_STABLE [a5363a696] 2014-03-05 14:46:56 +0200
5856 Branch: REL9_2_STABLE [e7ec05562] 2014-03-05 14:45:55 +0200
5861 Check WAL level and hot standby parameters correctly when doing crash
5862 recovery that will be followed by archive recovery (Heikki Linnakangas)
5867 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5868 Branch: master [af246c37c] 2014-03-05 13:51:19 +0200
5869 Branch: REL9_3_STABLE [2cd72ba42] 2014-03-05 13:52:21 +0200
5870 Branch: REL9_2_STABLE [931dc26b0] 2014-03-05 13:57:32 +0200
5871 Branch: REL9_1_STABLE [7552d3d1a] 2014-03-05 13:58:14 +0200
5872 Branch: REL9_0_STABLE [4521cc850] 2014-03-05 13:58:22 +0200
5877 Fix test to see if hot standby connections can be allowed immediately
5878 after a crash (Heikki Linnakangas)
5883 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5884 Branch: REL9_3_STABLE [5a7e75849] 2014-02-20 10:46:54 +0200
5889 Add read-only <xref linkend="guc-data-checksums"> parameter to
5890 display whether page checksums are enabled (Heikki Linnakangas)
5894 Without this parameter, determining the state of checksum
5895 processing was difficult.
5900 Author: Tom Lane <tgl@sss.pgh.pa.us>
5901 Branch: master [6c461cb92] 2014-03-13 20:59:42 -0400
5902 Branch: REL9_3_STABLE [41bd2cf55] 2014-03-13 20:59:45 -0400
5903 Branch: REL9_2_STABLE [7a289bb6d] 2014-03-13 20:59:48 -0400
5904 Branch: REL9_1_STABLE [f16ca9755] 2014-03-13 20:59:51 -0400
5905 Branch: REL9_0_STABLE [dad55e1e9] 2014-03-13 20:59:55 -0400
5906 Branch: REL8_4_STABLE [172c53e92] 2014-03-13 20:59:57 -0400
5911 Prevent interrupts while reporting non-<literal>ERROR</> messages
5916 This guards against rare server-process freezeups due to recursive
5917 entry to <function>syslog()</>, and perhaps other related problems.
5922 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5923 Branch: master [bd1154ede] 2014-03-16 23:22:21 -0300
5924 Branch: REL9_3_STABLE [60829079d] 2014-03-16 23:22:22 -0300
5925 Branch: REL9_2_STABLE [ba5946e86] 2014-03-16 23:22:22 -0300
5926 Branch: REL9_1_STABLE [f84997c7e] 2014-03-16 23:22:22 -0300
5931 Fix memory leak in PL/Perl when returning a composite result, including
5932 multiple-OUT-parameter cases (Alex Hunsaker)
5937 Author: Tom Lane <tgl@sss.pgh.pa.us>
5938 Branch: master [e85a5ffba] 2014-03-10 15:47:40 -0400
5939 Branch: REL9_3_STABLE [f64f4c370] 2014-03-10 15:47:09 -0400
5940 Branch: REL9_2_STABLE [b315b767f] 2014-03-10 15:47:13 -0400
5945 Fix tracking of <application>psql</> script line numbers
5946 during <literal>\copy</> from out-of-line data
5947 (Kumar Rajeev Rastogi, Amit Khandekar)
5951 <literal>\copy ... from</> incremented the script file line number
5952 for each data line, even if the data was not coming from the script
5953 file. This mistake resulted in wrong line numbers being reported for
5954 any errors occurring later in the same script file.
5959 Author: Tom Lane <tgl@sss.pgh.pa.us>
5960 Branch: master [83204e100] 2014-03-07 16:36:40 -0500
5961 Branch: REL9_3_STABLE [73f0483fd] 2014-03-07 16:36:50 -0500
5966 Fix <application>contrib/postgres_fdw</> to handle multiple join
5967 conditions properly (Tom Lane)
5971 This oversight could result in sending <literal>WHERE</> clauses to
5972 the remote server for execution even though the clauses are not known
5973 to have the same semantics on the remote server (for example, clauses
5974 that use non-built-in operators). The query might succeed anyway,
5975 but it could also fail with errors from the remote server, or worse
5976 give silently wrong answers.
5981 Author: Magnus Hagander <magnus@hagander.net>
5982 Branch: master [7f3e17b48] 2014-02-18 14:45:58 +0100
5983 Branch: REL9_3_STABLE [b88ecb002] 2014-02-18 14:49:41 +0100
5984 Branch: REL9_2_STABLE [062deb313] 2014-02-18 14:50:19 +0100
5985 Branch: REL9_1_STABLE [fae12f331] 2014-03-16 11:46:20 +0100
5986 Branch: REL9_0_STABLE [665515539] 2014-03-16 11:47:37 +0100
5991 Prevent intermittent <quote>could not reserve shared memory region</>
5992 failures on recent Windows versions (MauMau)
5997 Author: Tom Lane <tgl@sss.pgh.pa.us>
5998 Branch: master [aba7f5677] 2014-03-15 13:36:07 -0400
5999 Branch: REL9_3_STABLE [b5de16997] 2014-03-15 13:36:24 -0400
6000 Branch: REL9_2_STABLE [f2063b379] 2014-03-15 13:36:32 -0400
6001 Branch: REL9_1_STABLE [2df1bf21c] 2014-03-15 13:36:41 -0400
6002 Branch: REL9_0_STABLE [0033f5324] 2014-03-15 13:36:49 -0400
6003 Branch: REL8_4_STABLE [6e6c2c2e1] 2014-03-15 13:36:57 -0400
6008 Update time zone data files to <application>tzdata</> release 2014a
6009 for DST law changes in Fiji and Turkey, plus historical changes in
6019 <sect1 id="release-9-3-3">
6020 <title>Release 9.3.3</title>
6023 <title>Release Date</title>
6024 <simpara>2014-02-20</simpara>
6028 This release contains a variety of fixes from 9.3.2.
6029 For information about new features in the 9.3 major release, see
6030 <xref linkend="release-9-3">.
6034 <title>Migration to Version 9.3.3</title>
6037 A dump/restore is not required for those running 9.3.X.
6041 However, several of the issues corrected in this release could have
6042 resulted in corruption of foreign-key constraints; that is, there
6043 might now be referencing rows for which there is no matching row in
6044 the referenced table. It may be worthwhile to recheck such
6045 constraints after installing this update. The simplest way to do that
6046 is to drop and recreate each suspect constraint; however, that will
6047 require taking an exclusive lock on both tables, so it is unlikely to
6048 be acceptable in production databases. Alternatively, you can do a
6049 manual join query between the two tables to look for unmatched rows.
6053 Note also the requirement for replication standby servers to be
6054 upgraded before their master server is upgraded.
6058 Also, if you are upgrading from a version earlier than 9.3.2,
6059 see <xref linkend="release-9-3-2">.
6065 <title>Changes</title>
6070 Author: Noah Misch <noah@leadboat.com>
6071 Branch: master [fea164a72] 2014-02-17 09:33:31 -0500
6072 Branch: REL9_3_STABLE [475a1fbc4] 2014-02-17 09:33:32 -0500
6073 Branch: REL9_2_STABLE [15a8f97b9] 2014-02-17 09:33:33 -0500
6074 Branch: REL9_1_STABLE [5d320a16c] 2014-02-17 09:33:33 -0500
6075 Branch: REL9_0_STABLE [789063697] 2014-02-17 09:33:37 -0500
6076 Branch: REL8_4_STABLE [ff35425c8] 2014-02-17 09:33:38 -0500
6081 Shore up <literal>GRANT ... WITH ADMIN OPTION</> restrictions
6086 Granting a role without <literal>ADMIN OPTION</> is supposed to
6087 prevent the grantee from adding or removing members from the granted
6088 role, but this restriction was easily bypassed by doing <literal>SET
6089 ROLE</> first. The security impact is mostly that a role member can
6090 revoke the access of others, contrary to the wishes of his grantor.
6091 Unapproved role member additions are a lesser concern, since an
6092 uncooperative role member could provide most of his rights to others
6093 anyway by creating views or <literal>SECURITY DEFINER</> functions.
6099 Author: Noah Misch <noah@leadboat.com>
6100 Branch: master [537cbd35c] 2014-02-17 09:33:31 -0500
6101 Branch: REL9_3_STABLE [fc4a04a3c] 2014-02-17 09:33:32 -0500
6102 Branch: REL9_2_STABLE [1d701d28a] 2014-02-17 09:33:33 -0500
6103 Branch: REL9_1_STABLE [23b5a85e6] 2014-02-17 09:33:36 -0500
6104 Branch: REL9_0_STABLE [c0ac4c75f] 2014-02-17 09:33:37 -0500
6105 Branch: REL8_4_STABLE [823b9dc25] 2014-02-17 09:33:38 -0500
6110 Prevent privilege escalation via manual calls to PL validator
6111 functions (Andres Freund)
6115 The primary role of PL validator functions is to be called implicitly
6116 during <command>CREATE FUNCTION</>, but they are also normal SQL
6117 functions that a user can call explicitly. Calling a validator on
6118 a function actually written in some other language was not checked
6119 for and could be exploited for privilege-escalation purposes.
6120 The fix involves adding a call to a privilege-checking function in
6121 each validator function. Non-core procedural languages will also
6122 need to make this change to their own validator functions, if any.
6128 Author: Robert Haas <rhaas@postgresql.org>
6129 Branch: master [5f173040e] 2014-02-17 09:33:31 -0500
6130 Branch: REL9_3_STABLE [e1e0a4d79] 2014-02-17 09:33:32 -0500
6131 Branch: REL9_2_STABLE [820ab11fb] 2014-02-17 09:33:33 -0500
6132 Branch: REL9_1_STABLE [b5c574399] 2014-02-17 09:33:36 -0500
6133 Branch: REL9_0_STABLE [43d4e965e] 2014-02-17 09:33:37 -0500
6134 Branch: REL8_4_STABLE [e46476133] 2014-02-17 09:33:38 -0500
6139 Avoid multiple name lookups during table and index DDL
6140 (Robert Haas, Andres Freund)
6144 If the name lookups come to different conclusions due to concurrent
6145 activity, we might perform some parts of the DDL on a different table
6146 than other parts. At least in the case of <command>CREATE INDEX</>,
6147 this can be used to cause the permissions checks to be performed
6148 against a different table than the index creation, allowing for a
6149 privilege escalation attack.
6155 Author: Noah Misch <noah@leadboat.com>
6156 Branch: master [4318daecc] 2014-02-17 09:33:31 -0500
6157 Branch: REL9_3_STABLE [e4a4fa223] 2014-02-17 09:33:32 -0500
6158 Branch: REL9_2_STABLE [f416622be] 2014-02-17 09:33:33 -0500
6159 Branch: REL9_1_STABLE [6a10e57b0] 2014-02-17 09:33:37 -0500
6160 Branch: REL9_0_STABLE [b9c3bb1b3] 2014-02-17 09:33:38 -0500
6161 Branch: REL8_4_STABLE [d0ed1a6c0] 2014-02-17 09:33:39 -0500
6166 Prevent buffer overrun with long datetime strings (Noah Misch)
6170 The <literal>MAXDATELEN</> constant was too small for the longest
6171 possible value of type <type>interval</>, allowing a buffer overrun
6172 in <function>interval_out()</>. Although the datetime input
6173 functions were more careful about avoiding buffer overrun, the limit
6174 was short enough to cause them to reject some valid inputs, such as
6175 input containing a very long timezone name. The <application>ecpg</>
6176 library contained these vulnerabilities along with some of its own.
6182 Author: Noah Misch <noah@leadboat.com>
6183 Branch: master [31400a673] 2014-02-17 09:33:31 -0500
6184 Branch: REL9_3_STABLE [7a362a176] 2014-02-17 09:33:32 -0500
6185 Branch: REL9_2_STABLE [12bbce15d] 2014-02-17 09:33:33 -0500
6186 Branch: REL9_1_STABLE [0b7026d96] 2014-02-17 09:33:37 -0500
6187 Branch: REL9_0_STABLE [2c3203e18] 2014-02-17 09:33:38 -0500
6188 Branch: REL8_4_STABLE [98be8a6ea] 2014-02-17 09:33:39 -0500
6193 Prevent buffer overrun due to integer overflow in size calculations
6194 (Noah Misch, Heikki Linnakangas)
6198 Several functions, mostly type input functions, calculated an
6199 allocation size without checking for overflow. If overflow did
6200 occur, a too-small buffer would be allocated and then written past.
6206 Author: Tom Lane <tgl@sss.pgh.pa.us>
6207 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
6208 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
6209 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
6210 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
6211 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
6212 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
6217 Prevent overruns of fixed-size buffers
6218 (Peter Eisentraut, Jozef Mlich)
6222 Use <function>strlcpy()</> and related functions to provide a clear
6223 guarantee that fixed-size buffers are not overrun. Unlike the
6224 preceding items, it is unclear whether these cases really represent
6225 live issues, since in most cases there appear to be previous
6226 constraints on the size of the input string. Nonetheless it seems
6227 prudent to silence all Coverity warnings of this type.
6233 Author: Tom Lane <tgl@sss.pgh.pa.us>
6234 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
6235 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
6236 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
6237 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
6238 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
6239 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
6244 Avoid crashing if <function>crypt()</> returns NULL (Honza Horak,
6249 There are relatively few scenarios in which <function>crypt()</>
6250 could return NULL, but <filename>contrib/chkpass</> would crash
6251 if it did. One practical case in which this could be an issue is
6252 if <application>libc</> is configured to refuse to execute unapproved
6253 hashing algorithms (e.g., <quote>FIPS mode</>).
6259 Author: Tom Lane <tgl@sss.pgh.pa.us>
6260 Branch: master [6ef325429] 2014-02-17 11:24:32 -0500
6261 Branch: REL9_3_STABLE [1ec5988f3] 2014-02-17 11:24:38 -0500
6262 Branch: REL9_2_STABLE [ff3d533e5] 2014-02-17 11:24:42 -0500
6263 Branch: REL9_1_STABLE [800a3744b] 2014-02-17 11:24:45 -0500
6264 Branch: REL9_0_STABLE [369c229d2] 2014-02-17 11:24:48 -0500
6265 Branch: REL8_4_STABLE [f58663ab1] 2014-02-17 11:24:51 -0500
6270 Document risks of <literal>make check</> in the regression testing
6271 instructions (Noah Misch, Tom Lane)
6275 Since the temporary server started by <literal>make check</>
6276 uses <quote>trust</> authentication, another user on the same machine
6277 could connect to it as database superuser, and then potentially
6278 exploit the privileges of the operating-system user who started the
6279 tests. A future release will probably incorporate changes in the
6280 testing procedure to prevent this risk, but some public discussion is
6281 needed first. So for the moment, just warn people against using
6282 <literal>make check</> when there are untrusted users on the
6289 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6290 Branch: master [3b97e6823] 2013-12-16 11:29:50 -0300
6291 Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
6296 Rework tuple freezing protocol
6297 (Álvaro Herrera, Andres Freund)
6301 The logic for tuple freezing was unable to handle some cases involving
6303 <link linkend="vacuum-for-multixact-wraparound"><firstterm>multixact</>
6304 IDs</link>, with the practical effect that shared row-level locks
6305 might be forgotten once old enough.
6309 Fixing this required changing the WAL record format for tuple
6310 freezing. While this is no issue for standalone servers, when using
6311 replication it means that <emphasis>standby servers must be upgraded
6312 to 9.3.3 or later before their masters are</>. An older standby will
6313 be unable to interpret freeze records generated by a newer master, and
6314 will fail with a PANIC message. (In such a case, upgrading the
6315 standby should be sufficient to let it resume execution.)
6320 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6321 Branch: master [801c2dc72] 2014-02-13 19:36:31 -0300
6322 Branch: REL9_3_STABLE [fb47de2be] 2014-02-13 19:30:30 -0300
6327 Create separate GUC parameters to control multixact freezing
6328 (Álvaro Herrera)
6332 9.3 requires multixact tuple labels to be frozen before
6333 they grow too old, in the same fashion as plain transaction ID labels
6334 have been frozen for some time. Previously, the transaction ID
6335 freezing parameters were used for multixact IDs too; but since
6336 the consumption rates of transaction IDs and multixact IDs can be
6337 quite different, this did not work very well. Introduce new settings
6338 <xref linkend="guc-vacuum-multixact-freeze-min-age">,
6339 <xref linkend="guc-vacuum-multixact-freeze-table-age">, and
6340 <xref linkend="guc-autovacuum-multixact-freeze-max-age">
6341 to control when to freeze multixacts.
6346 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6347 Branch: master [11ac4c73c] 2013-12-18 13:45:51 -0300
6348 Branch: REL9_3_STABLE [db1014bc4] 2013-12-18 13:31:27 -0300
6353 Account for remote row locks propagated by local updates
6354 (Álvaro Herrera)
6358 If a row was locked by transaction A, and transaction B updated it,
6359 the new version of the row created by B would be locked by A, yet
6360 visible only to B. If transaction B then again updated the row, A's
6361 lock wouldn't get checked, thus possibly allowing B to complete when
6362 it shouldn't. This case is new in 9.3 since prior versions did not
6363 have any types of row locking that would permit another transaction
6364 to update the row at all.
6368 This oversight could allow referential integrity checks to give false
6369 positives (for instance, allow deletes that should have been rejected).
6370 Applications using the new commands <literal>SELECT FOR KEY SHARE</>
6371 and <literal>SELECT FOR NO KEY UPDATE</> might also have suffered
6372 locking failures of this kind.
6377 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6378 Branch: master [07aeb1fec] 2013-12-05 12:21:55 -0300
6379 Branch: REL9_3_STABLE [c6cd27e36] 2013-12-05 12:21:55 -0300
6384 Prevent <quote>forgetting</> valid row locks when one of several
6385 holders of a row lock aborts (Álvaro Herrera)
6389 This was yet another mechanism by which a shared row lock could be
6390 lost, thus possibly allowing updates that should have been prevented
6391 by foreign-key constraints.
6396 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6397 Branch: master [312bde3d4] 2013-12-05 17:47:51 -0300
6398 Branch: REL9_3_STABLE [2dcc48c35] 2013-12-05 17:47:51 -0300
6403 Fix incorrect logic during update chain locking
6404 (Álvaro Herrera)
6408 This mistake could result in spurious <quote>could not serialize access
6409 due to concurrent update</> errors in <literal>REPEATABLE READ</>
6410 and <literal>SERIALIZABLE</> transaction isolation modes.
6415 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6416 Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
6417 Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
6422 Handle wraparound correctly during extension or truncation
6423 of <filename>pg_multixact/members</>
6424 (Andres Freund, Álvaro Herrera)
6429 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6430 Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
6431 Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
6436 Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
6437 (Álvaro Herrera)
6441 As of 9.3, these names can be more than 4 digits, but the directory
6442 cleanup code ignored such files.
6447 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6448 Branch: master [d881dd623] 2013-12-13 17:16:25 -0300
6449 Branch: REL9_3_STABLE [0bc00363b] 2013-12-13 17:16:25 -0300
6454 Improve performance of multixact cache code
6455 (Álvaro Herrera)
6460 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6461 Branch: master [13aa62443] 2013-12-19 16:53:49 -0300
6462 Branch: REL9_3_STABLE [85d3b3c3a] 2013-12-19 16:39:59 -0300
6467 Optimize updating a row that's already locked by the same transaction
6468 (Andres Freund, Álvaro Herrera)
6472 This fixes a performance regression from pre-9.3 versions when doing
6473 <literal>SELECT FOR UPDATE</> followed by <literal>UPDATE/DELETE</>.
6478 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6479 Branch: master [4d894b41c] 2014-02-14 15:15:09 +0200
6480 Branch: REL9_3_STABLE [762bd379a] 2014-02-14 15:18:34 +0200
6485 During archive recovery, prefer highest timeline number when WAL
6486 segments with the same ID are present in both the archive
6487 and <filename>pg_xlog/</> (Kyotaro Horiguchi)
6491 Previously, not-yet-archived segments could get ignored during
6492 recovery. This reverts an undesirable behavioral change in 9.3.0
6493 back to the way things worked pre-9.3.
6498 Author: Tom Lane <tgl@sss.pgh.pa.us>
6499 Branch: master [6f2aead1f] 2014-02-12 14:52:16 -0500
6500 Branch: REL9_3_STABLE [7190f7a34] 2014-02-12 14:52:20 -0500
6501 Branch: REL9_2_STABLE [bc7ab301a] 2014-02-12 14:52:23 -0500
6502 Branch: REL9_1_STABLE [a69cc9b2c] 2014-02-12 14:52:26 -0500
6503 Branch: REL9_0_STABLE [7fedd79b7] 2014-02-12 14:52:29 -0500
6504 Branch: REL8_4_STABLE [9620fede9] 2014-02-12 14:52:32 -0500
6509 Fix possible mis-replay of WAL records when some segments of a
6510 relation aren't full size (Greg Stark, Tom Lane)
6514 The WAL update could be applied to the wrong page, potentially many
6515 pages past where it should have been. Aside from corrupting data,
6516 this error has been observed to result in significant <quote>bloat</>
6517 of standby servers compared to their masters, due to updates being
6518 applied far beyond where the end-of-file should have been. This
6519 failure mode does not appear to be a significant risk during crash
6520 recovery, only when initially synchronizing a standby created from a
6521 base backup taken from a quickly-changing master.
6526 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6527 Branch: master [d59ff6c11] 2014-01-08 15:03:09 +0200
6528 Branch: REL9_3_STABLE [425bef6ee] 2014-01-08 14:32:22 +0200
6529 Branch: REL9_2_STABLE [82c75f9dd] 2014-01-08 14:28:55 +0200
6530 Branch: REL9_1_STABLE [e56430c62] 2014-01-08 14:33:58 +0200
6531 Branch: REL9_0_STABLE [5301c8395] 2014-01-08 14:34:21 +0200
6536 Fix bug in determining when recovery has reached consistency
6537 (Tomonari Katsumata, Heikki Linnakangas)
6541 In some cases WAL replay would mistakenly conclude that the database
6542 was already consistent at the start of replay, thus possibly allowing
6543 hot-standby queries before the database was really consistent. Other
6544 symptoms such as <quote>PANIC: WAL contains references to invalid
6545 pages</> were also possible.
6550 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6551 Branch: master [a49633d8d] 2013-12-13 14:15:04 +0200
6552 Branch: REL9_3_STABLE [615299cf6] 2013-12-13 14:23:02 +0200
6557 Fix WAL logging of visibility map changes (Heikki Linnakangas)
6562 Author: Tom Lane <tgl@sss.pgh.pa.us>
6563 Branch: master [061b079f8] 2014-01-14 17:35:21 -0500
6564 Branch: REL9_3_STABLE [ebde6c401] 2014-01-14 17:34:51 -0500
6565 Branch: REL9_2_STABLE [ad2e041a3] 2014-01-14 17:34:54 -0500
6566 Branch: REL9_1_STABLE [ab4bb5c47] 2014-01-14 17:34:57 -0500
6567 Branch: REL9_0_STABLE [5d742b9ce] 2014-01-14 17:35:00 -0500
6572 Fix improper locking of btree index pages while replaying
6573 a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
6574 Heikki Linnakangas, Tom Lane)
6578 This error could result in <quote>PANIC: WAL contains references to
6579 invalid pages</> failures.
6584 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6585 Branch: master [22122c83f] 2013-12-03 23:16:01 +0200
6586 Branch: REL9_3_STABLE [8fd04cb32] 2013-12-03 22:13:16 +0200
6587 Branch: REL9_2_STABLE [06df57ac6] 2013-12-03 22:34:31 +0200
6588 Branch: REL9_1_STABLE [e6acb956a] 2013-12-03 22:34:43 +0200
6589 Branch: REL9_0_STABLE [760606dc5] 2013-12-03 23:01:31 +0200
6590 Branch: REL8_4_STABLE [67fc33d3a] 2013-12-03 22:53:26 +0200
6595 Ensure that insertions into non-leaf GIN index pages write a full-page
6596 WAL record when appropriate (Heikki Linnakangas)
6600 The previous coding risked index corruption in the event of a
6601 partial-page write during a system crash.
6606 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6607 Branch: master [3739e5ab9] 2014-01-08 23:28:52 +0200
6608 Branch: REL9_3_STABLE [3aefff422] 2014-01-08 23:30:46 +0200
6609 Branch: REL9_2_STABLE [3bd8987ef] 2014-01-08 23:30:55 +0200
6610 Branch: REL9_1_STABLE [0402f2441] 2014-01-08 23:31:01 +0200
6615 When <literal>pause_at_recovery_target</>
6616 and <literal>recovery_target_inclusive</> are both set, ensure the
6617 target record is applied before pausing, not after (Heikki
6623 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6624 Branch: master [a472ae1e4] 2014-01-16 23:15:41 +0200
6625 Branch: REL9_3_STABLE [e34acac62] 2014-01-16 23:14:57 +0200
6630 Ensure walreceiver sends hot-standby feedback messages on time even
6631 when there is a continuous stream of data (Andres Freund, Amit
6637 Author: Tom Lane <tgl@sss.pgh.pa.us>
6638 Branch: master [e8312b4f0] 2013-12-13 11:50:15 -0500
6639 Branch: REL9_3_STABLE [478af9b79] 2013-12-13 11:50:25 -0500
6644 Prevent timeout interrupts from taking control away from mainline
6645 code unless <varname>ImmediateInterruptOK</> is set
6646 (Andres Freund, Tom Lane)
6650 This is a serious issue for any application making use of statement
6651 timeouts, as it could cause all manner of strange failures after a
6652 timeout occurred. We have seen reports of <quote>stuck</> spinlocks,
6653 ERRORs being unexpectedly promoted to PANICs, unkillable backends,
6654 and other misbehaviors.
6659 Author: Robert Haas <rhaas@postgresql.org>
6660 Branch: master [d1981719a] 2014-01-31 21:31:08 -0500
6661 Branch: REL9_3_STABLE [5d807a74b] 2014-01-31 21:34:44 -0500
6662 Branch: REL9_2_STABLE [ebe334463] 2014-01-31 21:35:32 -0500
6663 Branch: REL9_1_STABLE [8e6bfc9eb] 2014-01-31 21:36:23 -0500
6664 Branch: REL9_0_STABLE [798243a81] 2014-01-31 21:40:20 -0500
6665 Branch: REL8_4_STABLE [458b20f2d] 2014-01-31 21:41:09 -0500
6670 Fix race conditions during server process exit (Robert Haas)
6674 Ensure that signal handlers don't attempt to use the
6675 process's <varname>MyProc</> pointer after it's no longer valid.
6680 Author: Tom Lane <tgl@sss.pgh.pa.us>
6681 Branch: master [214c7a4f0] 2014-02-01 16:21:23 -0500
6682 Branch: REL9_3_STABLE [6f1a40773] 2014-02-01 16:21:30 -0500
6683 Branch: REL9_2_STABLE [81b116d98] 2014-02-01 16:21:33 -0500
6684 Branch: REL9_1_STABLE [03f06ff38] 2014-02-01 16:21:38 -0500
6689 Fix race conditions in walsender shutdown logic and walreceiver
6690 SIGHUP signal handler (Tom Lane)
6695 Author: Tom Lane <tgl@sss.pgh.pa.us>
6696 Branch: master [571addd72] 2014-01-29 20:04:43 -0500
6697 Branch: REL9_3_STABLE [bf8ee6f15] 2014-01-29 20:04:01 -0500
6698 Branch: REL9_2_STABLE [3e71ce1e9] 2014-01-29 20:04:05 -0500
6699 Branch: REL9_1_STABLE [af259c691] 2014-01-29 20:04:08 -0500
6700 Branch: REL9_0_STABLE [d17a667e8] 2014-01-29 20:04:11 -0500
6701 Branch: REL8_4_STABLE [01b882fd8] 2014-01-29 20:04:14 -0500
6706 Fix unsafe references to <varname>errno</> within error reporting
6707 logic (Christian Kruse)
6711 This would typically lead to odd behaviors such as missing or
6712 inappropriate <literal>HINT</> fields.
6717 Author: Tom Lane <tgl@sss.pgh.pa.us>
6718 Branch: master [910bac595] 2014-01-11 16:36:07 -0500
6719 Branch: REL9_3_STABLE [5bfcc9ec5] 2014-01-11 16:35:30 -0500
6720 Branch: REL9_2_STABLE [2de905186] 2014-01-11 16:35:34 -0500
6721 Branch: REL9_1_STABLE [3f721588a] 2014-01-11 16:35:37 -0500
6722 Branch: REL9_0_STABLE [d9c4442b8] 2014-01-11 16:35:41 -0500
6723 Branch: REL8_4_STABLE [d0070ac81] 2014-01-11 16:35:44 -0500
6728 Fix possible crashes from using <function>ereport()</> too early
6729 during server startup (Tom Lane)
6733 The principal case we've seen in the field is a crash if the server
6734 is started in a directory it doesn't have permission to read.
6739 Author: Tom Lane <tgl@sss.pgh.pa.us>
6740 Branch: master [74242c23c] 2013-12-05 12:48:28 -0500
6741 Branch: REL9_3_STABLE [2a6e1a554] 2013-12-05 12:48:31 -0500
6742 Branch: REL9_2_STABLE [41042970b] 2013-12-05 12:48:35 -0500
6743 Branch: REL9_1_STABLE [ad910ccdc] 2013-12-05 12:48:37 -0500
6744 Branch: REL9_0_STABLE [36352ceb4] 2013-12-05 12:48:41 -0500
6745 Branch: REL8_4_STABLE [7635dae55] 2013-12-05 12:48:44 -0500
6750 Clear retry flags properly in OpenSSL socket write
6751 function (Alexander Kukushkin)
6755 This omission could result in a server lockup after unexpected loss
6756 of an SSL-encrypted connection.
6761 Author: Tom Lane <tgl@sss.pgh.pa.us>
6762 Branch: master [44c216330] 2014-02-13 14:24:42 -0500
6763 Branch: REL9_3_STABLE [ca1c17181] 2014-02-13 14:24:45 -0500
6764 Branch: REL9_2_STABLE [8439ee415] 2014-02-13 14:24:49 -0500
6765 Branch: REL9_1_STABLE [170590261] 2014-02-13 14:24:52 -0500
6766 Branch: REL9_0_STABLE [148052d25] 2014-02-13 14:24:55 -0500
6767 Branch: REL8_4_STABLE [a8a46d846] 2014-02-13 14:24:58 -0500
6772 Fix length checking for Unicode identifiers (<literal>U&"..."</>
6773 syntax) containing escapes (Tom Lane)
6777 A spurious truncation warning would be printed for such identifiers
6778 if the escaped form of the identifier was too long, but the
6779 identifier actually didn't need truncation after de-escaping.
6784 Author: Tom Lane <tgl@sss.pgh.pa.us>
6785 Branch: master [0c2338abb] 2014-02-03 19:47:57 -0500
6786 Branch: REL9_3_STABLE [4c70cb1d3] 2014-02-03 19:48:00 -0500
6791 Fix parsing of Unicode literals and identifiers just before the end
6792 of a command string or function body (Tom Lane)
6797 Author: Stephen Frost <sfrost@snowman.net>
6798 Branch: master [6c36f383d] 2014-01-21 22:49:22 -0500
6799 Branch: REL9_3_STABLE [d1e3070f0] 2014-01-21 22:56:30 -0500
6800 Branch: REL9_2_STABLE [c0e6169e1] 2014-01-21 22:56:34 -0500
6801 Branch: REL9_1_STABLE [cbd850bf6] 2014-01-21 23:00:58 -0500
6802 Branch: REL9_0_STABLE [f2eede9b5] 2014-01-21 23:01:40 -0500
6807 Allow keywords that are type names to be used in lists of roles
6812 A previous patch allowed such keywords to be used without quoting
6813 in places such as role identifiers; but it missed cases where a
6814 list of role identifiers was permitted, such as <literal>DROP ROLE</>.
6819 Author: Tom Lane <tgl@sss.pgh.pa.us>
6820 Branch: master [7ab321404] 2013-12-02 20:28:45 -0500
6821 Branch: REL9_3_STABLE [b44ae4893] 2013-12-02 20:28:49 -0500
6822 Branch: REL9_2_STABLE [6698782f1] 2013-12-02 20:28:53 -0500
6823 Branch: REL9_1_STABLE [f67b8aeab] 2013-12-02 20:28:56 -0500
6828 Fix parser crash for <literal>EXISTS(SELECT * FROM
6829 zero_column_table)</literal> (Tom Lane)
6834 Author: Tom Lane <tgl@sss.pgh.pa.us>
6835 Branch: master [9ec6199d1] 2013-12-10 16:10:17 -0500
6836 Branch: REL9_3_STABLE [9d2e07fec] 2013-12-10 16:10:20 -0500
6837 Branch: REL9_2_STABLE [f5d9fdcc7] 2013-12-10 16:10:24 -0500
6838 Branch: REL9_1_STABLE [48e5cfde8] 2013-12-10 16:10:28 -0500
6839 Branch: REL9_0_STABLE [41e9990cd] 2013-12-10 16:10:31 -0500
6840 Branch: REL8_4_STABLE [884c6384a] 2013-12-10 16:10:36 -0500
6845 Fix possible crash due to invalid plan for nested sub-selects, such
6846 as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
6852 Author: Tom Lane <tgl@sss.pgh.pa.us>
6853 Branch: master [043f6ff05] 2014-01-30 14:51:16 -0500
6854 Branch: REL9_3_STABLE [a4aa854ca] 2014-01-30 14:51:19 -0500
6859 Fix mishandling of <literal>WHERE</> conditions pulled up from
6860 a <literal>LATERAL</> subquery (Tom Lane)
6864 The typical symptom of this bug was a <quote>JOIN qualification
6865 cannot refer to other relations</> error, though subtle logic
6866 errors in created plans seem possible as well.
6871 Author: Tom Lane <tgl@sss.pgh.pa.us>
6872 Branch: master [158b7fa6a] 2014-01-11 19:03:12 -0500
6873 Branch: REL9_3_STABLE [27ff4cfe7] 2014-01-11 19:03:15 -0500
6878 Disallow <literal>LATERAL</> references to the target table of
6879 an <literal>UPDATE/DELETE</> (Tom Lane)
6883 While this might be allowed in some future release, it was
6884 unintentional in 9.3, and didn't work quite right anyway.
6889 Author: Tom Lane <tgl@sss.pgh.pa.us>
6890 Branch: master [c03ad5602] 2013-12-14 17:33:53 -0500
6891 Branch: REL9_3_STABLE [324577f39] 2013-12-14 17:33:56 -0500
6892 Branch: REL9_2_STABLE [5d545b7ed] 2013-12-14 17:34:00 -0500
6897 Fix <literal>UPDATE/DELETE</> of an inherited target table
6898 that has <literal>UNION ALL</> subqueries (Tom Lane)
6902 Without this fix, <literal>UNION ALL</> subqueries aren't correctly
6903 inserted into the update plans for inheritance child tables after the
6904 first one, typically resulting in no update happening for those child
6910 Author: Tom Lane <tgl@sss.pgh.pa.us>
6911 Branch: master [4eeda92d8] 2013-12-23 22:18:48 -0500
6912 Branch: REL9_3_STABLE [663f8419b] 2013-12-23 22:18:23 -0500
6917 Fix <command>ANALYZE</> to not fail on a column that's a domain over
6918 a range type (Tom Lane)
6923 Author: Tom Lane <tgl@sss.pgh.pa.us>
6924 Branch: master [628652620] 2014-01-11 13:42:42 -0500
6925 Branch: REL9_3_STABLE [36785a21b] 2014-01-11 13:41:51 -0500
6926 Branch: REL9_2_STABLE [f0381680f] 2014-01-11 13:41:56 -0500
6927 Branch: REL9_1_STABLE [9387f4e1b] 2014-01-11 13:42:00 -0500
6928 Branch: REL9_0_STABLE [2d76d75d9] 2014-01-11 13:42:05 -0500
6929 Branch: REL8_4_STABLE [00b77771a] 2014-01-11 13:42:11 -0500
6934 Ensure that <command>ANALYZE</> creates statistics for a table column
6935 even when all the values in it are <quote>too wide</> (Tom Lane)
6939 <command>ANALYZE</> intentionally omits very wide values from its
6940 histogram and most-common-values calculations, but it neglected to do
6941 something sane in the case that all the sampled entries are too wide.
6946 Author: Stephen Frost <sfrost@snowman.net>
6947 Branch: master [6f25c62d7] 2014-01-18 18:41:52 -0500
6948 Branch: REL9_3_STABLE [86e58ae02] 2014-01-18 18:49:08 -0500
6949 Branch: REL9_2_STABLE [1fe06595a] 2014-01-18 18:49:41 -0500
6950 Branch: REL9_1_STABLE [d2636486b] 2014-01-18 18:50:09 -0500
6951 Branch: REL9_0_STABLE [e70c42821] 2014-01-18 18:50:29 -0500
6952 Branch: REL8_4_STABLE [0fb4e3ceb] 2014-01-18 18:50:47 -0500
6957 In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
6958 default tablespace to be used without a permissions check
6963 <literal>CREATE TABLE</> has always allowed such usage,
6964 but <literal>ALTER TABLE</> didn't get the memo.
6969 Author: Tom Lane <tgl@sss.pgh.pa.us>
6970 Branch: master [c01bc51f8] 2013-12-30 14:00:02 -0500
6971 Branch: REL9_3_STABLE [9a6e2b150] 2013-12-30 14:00:05 -0500
6976 Fix support for extensions containing event triggers (Tom Lane)
6981 Author: Tom Lane <tgl@sss.pgh.pa.us>
6982 Branch: master [080b7db72] 2014-01-08 20:18:58 -0500
6983 Branch: REL9_3_STABLE [47ac4473a] 2014-01-08 20:18:10 -0500
6984 Branch: REL9_2_STABLE [97a39f295] 2014-01-08 20:18:13 -0500
6985 Branch: REL9_1_STABLE [6c6c53d0b] 2014-01-08 20:18:17 -0500
6986 Branch: REL9_0_STABLE [6ca712fb9] 2014-01-08 20:18:20 -0500
6987 Branch: REL8_4_STABLE [57ac7d8a7] 2014-01-08 20:18:24 -0500
6992 Fix <quote>cannot accept a set</> error when some arms of
6993 a <literal>CASE</> return a set and others don't (Tom Lane)
6998 Author: Andrew Dunstan <andrew@dunslane.net>
6999 Branch: master [d3ee45152] 2014-02-03 10:40:12 -0500
7000 Branch: REL9_3_STABLE [cdfbb78f0] 2014-02-03 10:39:13 -0500
7005 Fix memory leakage in JSON functions (Craig Ringer)
7010 Author: Andrew Dunstan <andrew@dunslane.net>
7011 Branch: master [29dcf7ded] 2013-12-27 17:04:00 -0500
7012 Branch: REL9_3_STABLE [7dfd9f6f5] 2013-12-27 17:21:04 -0500
7013 Branch: REL9_2_STABLE [4825a9e95] 2013-12-27 17:21:27 -0500
7018 Properly distinguish numbers from non-numbers when generating JSON
7019 output (Andrew Dunstan)
7024 Author: Kevin Grittner <kgrittn@postgresql.org>
7025 Branch: master [a133bf703] 2013-12-27 15:26:24 -0600
7026 Branch: REL9_3_STABLE [28b60aa23] 2013-12-27 15:40:51 -0600
7027 Branch: REL9_2_STABLE [150a30e19] 2013-12-27 15:41:02 -0600
7028 Branch: REL9_1_STABLE [1f069d21d] 2013-12-27 15:41:18 -0600
7029 Branch: REL9_0_STABLE [918d74a07] 2013-12-27 15:41:32 -0600
7030 Branch: REL8_4_STABLE [b2d80147d] 2013-12-27 15:41:46 -0600
7035 Fix checks for all-zero client addresses in pgstat functions (Kevin
7041 Author: Tom Lane <tgl@sss.pgh.pa.us>
7042 Branch: master [082c0dfa1] 2014-02-01 18:27:34 -0500
7043 Branch: REL9_3_STABLE [9beffdcc3] 2014-02-01 18:27:40 -0500
7044 Branch: REL9_2_STABLE [8be095cea] 2014-02-01 18:27:44 -0500
7045 Branch: REL9_1_STABLE [399d23e19] 2014-02-01 18:27:48 -0500
7046 Branch: REL9_0_STABLE [3c7b4ef70] 2014-02-01 18:27:54 -0500
7047 Branch: REL8_4_STABLE [56f5d3424] 2014-02-01 18:27:12 -0500
7052 Fix possible misclassification of multibyte characters by the text
7053 search parser (Tom Lane)
7057 Non-ASCII characters could be misclassified when using C locale with
7058 a multibyte encoding. On Cygwin, non-C locales could fail as well.
7063 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7064 Branch: master [6c2744f1d] 2014-02-10 09:57:59 +0200
7065 Branch: REL9_3_STABLE [928aec71c] 2014-02-10 09:59:49 +0200
7066 Branch: REL9_2_STABLE [f3807106b] 2014-02-10 10:00:04 +0200
7067 Branch: REL9_1_STABLE [5f778e644] 2014-02-10 10:00:23 +0200
7068 Branch: REL9_0_STABLE [fe8a6f53e] 2014-02-10 10:00:36 +0200
7069 Branch: REL8_4_STABLE [6141983fb] 2014-02-10 10:00:50 +0200
7074 Fix possible misbehavior in <function>plainto_tsquery()</>
7075 (Heikki Linnakangas)
7079 Use <function>memmove()</> not <function>memcpy()</> for copying
7080 overlapping memory regions. There have been no field reports of
7081 this actually causing trouble, but it's certainly risky.
7086 Author: Magnus Hagander <magnus@hagander.net>
7087 Branch: master [9544cc0d6] 2014-01-07 17:50:56 +0100
7088 Branch: REL9_3_STABLE [91c2755fc] 2014-01-07 17:51:02 +0100
7089 Branch: REL9_2_STABLE [61d4d14ee] 2014-01-07 17:53:00 +0100
7090 Branch: REL9_1_STABLE [026a91f86] 2014-01-07 18:00:36 +0100
7095 Fix placement of permissions checks in <function>pg_start_backup()</>
7096 and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
7100 The previous coding might attempt to do catalog access when it
7106 Author: Tatsuo Ishii <ishii@postgresql.org>
7107 Branch: master [1f0626ee4] 2013-12-15 11:09:05 +0900
7108 Branch: REL9_3_STABLE [8122e6f85] 2013-12-15 11:10:41 +0900
7109 Branch: REL9_2_STABLE [0c07ef1ad] 2013-12-15 11:10:49 +0900
7110 Branch: REL9_1_STABLE [035226c61] 2013-12-15 11:10:56 +0900
7111 Branch: REL9_0_STABLE [7016d970d] 2013-12-15 11:11:02 +0900
7112 Branch: REL8_4_STABLE [69f77d756] 2013-12-15 11:11:11 +0900
7117 Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
7118 purposes (Tatsuo Ishii)
7123 Author: Tom Lane <tgl@sss.pgh.pa.us>
7124 Branch: master [0def2573c] 2014-02-03 14:47:17 -0500
7125 Branch: REL9_3_STABLE [641c08041] 2014-02-03 14:46:54 -0500
7126 Branch: REL9_2_STABLE [888b56570] 2014-02-03 14:46:57 -0500
7131 Fix <literal>*</>-qualification of named parameters in SQL-language
7132 functions (Tom Lane)
7136 Given a composite-type parameter
7137 named <literal>foo</>, <literal>$1.*</> worked fine,
7138 but <literal>foo.*</> not so much.
7143 Author: Fujii Masao <fujii@postgresql.org>
7144 Branch: master [77035fa8a] 2014-01-23 22:58:58 +0900
7145 Branch: REL9_3_STABLE [be5d49974] 2014-01-23 23:00:30 +0900
7146 Branch: REL9_2_STABLE [ea311bfdf] 2014-01-23 23:01:06 +0900
7147 Branch: REL9_1_STABLE [1b384aff1] 2014-01-23 23:01:34 +0900
7148 Branch: REL9_0_STABLE [996b21cbf] 2014-01-23 23:02:03 +0900
7149 Branch: REL8_4_STABLE [5525529db] 2014-01-23 23:02:30 +0900
7154 Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
7158 It should return <literal>localhost</> if no host has been specified.
7163 Author: Tom Lane <tgl@sss.pgh.pa.us>
7164 Branch: master [b8f00a46b] 2014-02-13 18:45:58 -0500
7165 Branch: REL9_3_STABLE [f208fb436] 2014-02-13 18:46:03 -0500
7166 Branch: REL9_2_STABLE [2573f08a1] 2014-02-13 18:45:20 -0500
7167 Branch: REL9_1_STABLE [7182bd239] 2014-02-13 18:45:23 -0500
7168 Branch: REL9_0_STABLE [218dd205b] 2014-02-13 18:45:27 -0500
7169 Branch: REL8_4_STABLE [7644a7bd8] 2014-02-13 18:45:32 -0500
7174 Improve error handling in <application>libpq</> and <application>psql</>
7175 for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
7179 In particular this fixes an infinite loop that could occur in 9.2 and
7180 up if the server connection was lost during <literal>COPY FROM
7181 STDIN</>. Variants of that scenario might be possible in older
7182 versions, or with other client applications.
7187 Author: Tom Lane <tgl@sss.pgh.pa.us>
7188 Branch: master [92459e7a7] 2014-01-04 16:05:16 -0500
7189 Branch: REL9_3_STABLE [341f0bc49] 2014-01-04 16:05:20 -0500
7190 Branch: REL9_2_STABLE [fa28f9cba] 2014-01-04 16:05:23 -0500
7195 Fix incorrect translation handling in
7196 some <application>psql</> <literal>\d</> commands
7197 (Peter Eisentraut, Tom Lane)
7202 Author: Magnus Hagander <magnus@hagander.net>
7203 Branch: master [63ab2befe] 2014-02-12 18:45:18 +0100
7204 Branch: REL9_3_STABLE [c90204c60] 2014-02-12 18:46:04 +0100
7205 Branch: REL9_2_STABLE [0ae288d2d] 2014-02-12 14:51:00 +0100
7210 Ensure <application>pg_basebackup</>'s background process is killed
7211 when exiting its foreground process (Magnus Hagander)
7216 Author: Magnus Hagander <magnus@hagander.net>
7217 Branch: master [01025d80a] 2014-02-09 12:05:14 +0100
7218 Branch: REL9_3_STABLE [680baa8d2] 2014-02-09 12:09:18 +0100
7219 Branch: REL9_2_STABLE [165aa1da5] 2014-02-09 12:09:39 +0100
7220 Branch: REL9_1_STABLE [c6e5c4dd1] 2014-02-09 12:09:55 +0100
7225 Fix possible incorrect printing of filenames
7226 in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
7231 Author: Magnus Hagander <magnus@hagander.net>
7232 Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
7233 Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
7234 Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
7235 Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
7240 Avoid including tablespaces inside PGDATA twice in base backups
7241 (Dimitri Fontaine, Magnus Hagander)
7246 Author: Michael Meskes <meskes@postgresql.org>
7247 Branch: master [d685e2424] 2014-01-09 16:20:19 +0100
7248 Branch: REL9_3_STABLE [28fff0ef8] 2014-01-09 15:41:51 +0100
7249 Branch: REL9_2_STABLE [799728b0b] 2014-01-09 15:50:51 +0100
7250 Branch: REL9_1_STABLE [9f5b3a1a1] 2014-01-09 15:51:11 +0100
7251 Branch: REL9_0_STABLE [a29b6c342] 2014-01-09 15:51:23 +0100
7252 Branch: REL8_4_STABLE [d68a65b01] 2014-01-09 15:58:37 +0100
7257 Fix misaligned descriptors in <application>ecpg</> (MauMau)
7262 Author: Michael Meskes <meskes@postgresql.org>
7263 Branch: master [7c957ec83] 2014-01-01 12:39:31 +0100
7264 Branch: REL9_3_STABLE [8404037d8] 2014-01-01 12:40:28 +0100
7265 Branch: REL9_2_STABLE [119a59879] 2014-01-01 12:40:42 +0100
7266 Branch: REL9_1_STABLE [948498274] 2014-01-01 12:44:15 +0100
7267 Branch: REL9_0_STABLE [17bcdd01f] 2014-01-01 12:44:44 +0100
7268 Branch: REL8_4_STABLE [96de4939c] 2014-01-01 12:44:58 +0100
7273 In <application>ecpg</>, handle lack of a hostname in the connection
7274 parameters properly (Michael Meskes)
7279 Author: Joe Conway <mail@joeconway.com>
7280 Branch: master [d6ca510d9] 2013-12-07 17:00:26 -0800
7281 Branch: REL9_3_STABLE [0ec530625] 2013-12-07 17:00:10 -0800
7282 Branch: REL9_2_STABLE [7f4ef622f] 2013-12-07 16:59:35 -0800
7283 Branch: REL9_1_STABLE [70165f25b] 2013-12-07 16:59:16 -0800
7284 Branch: REL9_0_STABLE [9057adc23] 2013-12-07 16:58:41 -0800
7285 Branch: REL8_4_STABLE [6c8b16e30] 2013-12-07 16:56:34 -0800
7290 Fix performance regression in <filename>contrib/dblink</> connection
7291 startup (Joe Conway)
7295 Avoid an unnecessary round trip when client and server encodings match.
7300 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7301 Branch: master [866a1f092] 2014-01-13 15:43:29 +0200
7302 Branch: REL9_3_STABLE [50c5770ec] 2014-01-13 15:43:59 +0200
7303 Branch: REL9_2_STABLE [f6d6b42f2] 2014-01-13 15:44:02 +0200
7304 Branch: REL9_1_STABLE [5143dfd57] 2014-01-13 15:44:04 +0200
7305 Branch: REL9_0_STABLE [6c3f040be] 2014-01-13 15:44:12 +0200
7306 Branch: REL8_4_STABLE [492b68541] 2014-01-13 15:44:14 +0200
7311 In <filename>contrib/isn</>, fix incorrect calculation of the check
7312 digit for ISMN values (Fabien Coelho)
7317 Author: Tatsuo Ishii <ishii@postgresql.org>
7318 Branch: master [841a65482] 2013-12-12 19:10:35 +0900
7319 Branch: REL9_3_STABLE [27902bc91] 2013-12-12 19:07:53 +0900
7324 Fix <filename>contrib/pgbench</>'s progress logging to avoid overflow
7325 when the scale factor is large (Tatsuo Ishii)
7330 Author: Tom Lane <tgl@sss.pgh.pa.us>
7331 Branch: master [69c7a9838] 2014-01-21 16:34:28 -0500
7332 Branch: REL9_3_STABLE [0950d67ee] 2014-01-21 16:34:31 -0500
7333 Branch: REL9_2_STABLE [27ab1eb7e] 2014-01-21 16:34:35 -0500
7338 Fix <filename>contrib/pg_stat_statement</>'s handling
7339 of <literal>CURRENT_DATE</> and related constructs (Kyotaro
7345 Author: Tom Lane <tgl@sss.pgh.pa.us>
7346 Branch: master [00d4f2af8] 2014-02-03 21:30:20 -0500
7347 Branch: REL9_3_STABLE [eb3d350db] 2014-02-03 21:30:28 -0500
7352 Improve lost-connection error handling
7353 in <filename>contrib/postgres_fdw</> (Tom Lane)
7358 Author: Peter Eisentraut <peter_e@gmx.net>
7359 Branch: master [ad6bf0291] 2014-01-17 23:08:22 -0500
7360 Branch: REL9_3_STABLE [586bea612] 2014-01-17 23:11:02 -0500
7361 Branch: REL9_2_STABLE [526e38751] 2014-01-17 23:12:50 -0500
7362 Branch: REL9_1_STABLE [6d969b000] 2014-01-17 23:14:21 -0500
7363 Branch: REL9_0_STABLE [2346c383a] 2014-01-17 23:15:00 -0500
7364 Branch: REL8_4_STABLE [15699d9bf] 2014-01-17 23:17:59 -0500
7369 Ensure client-code-only installation procedure works as documented
7375 Author: Andrew Dunstan <andrew@dunslane.net>
7376 Branch: master [d587298b8] 2014-02-01 15:11:13 -0500
7377 Branch: REL9_3_STABLE [1e9876c3b] 2014-02-01 15:16:06 -0500
7378 Branch: REL9_2_STABLE [6e96d4db8] 2014-02-01 15:16:18 -0500
7379 Branch: REL9_1_STABLE [dfb4a1a21] 2014-02-01 15:16:29 -0500
7380 Branch: REL9_0_STABLE [59d64e7f3] 2014-02-01 15:16:40 -0500
7381 Branch: REL8_4_STABLE [ae3c98b9b] 2014-02-01 15:16:52 -0500
7386 In Mingw and Cygwin builds, install the <application>libpq</> DLL
7387 in the <filename>bin</> directory (Andrew Dunstan)
7391 This duplicates what the MSVC build has long done. It should fix
7392 problems with programs like <application>psql</> failing to start
7393 because they can't find the DLL.
7398 Author: Andrew Dunstan <andrew@dunslane.net>
7399 Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
7400 Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
7401 Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
7402 Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
7403 Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
7408 Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
7414 Author: Andrew Dunstan <andrew@dunslane.net>
7415 Branch: master [cec8394b5] 2014-01-26 09:49:10 -0500
7416 Branch: REL9_3_STABLE [56c08df55] 2014-01-26 09:45:43 -0500
7421 Enable building with Visual Studio 2013 (Brar Piening)
7426 Author: Tom Lane <tgl@sss.pgh.pa.us>
7427 Branch: master [289541520] 2014-02-10 20:48:04 -0500
7428 Branch: REL9_3_STABLE [f1e522696] 2014-02-10 20:48:12 -0500
7429 Branch: REL9_2_STABLE [dd5605104] 2014-02-10 20:48:20 -0500
7430 Branch: REL9_1_STABLE [3bf5c16f1] 2014-02-10 20:48:23 -0500
7431 Branch: REL9_0_STABLE [e1e7642bd] 2014-02-10 20:48:27 -0500
7432 Branch: REL8_4_STABLE [432735cbf] 2014-02-10 20:48:30 -0500
7437 Don't generate plain-text <filename>HISTORY</>
7438 and <filename>src/test/regress/README</> files anymore (Tom Lane)
7442 These text files duplicated the main HTML and PDF documentation
7443 formats. The trouble involved in maintaining them greatly outweighs
7444 the likely audience for plain-text format. Distribution tarballs
7445 will still contain files by these names, but they'll just be stubs
7446 directing the reader to consult the main documentation.
7447 The plain-text <filename>INSTALL</> file will still be maintained, as
7448 there is arguably a use-case for that.
7453 Author: Tom Lane <tgl@sss.pgh.pa.us>
7454 Branch: master [e04641f4b] 2014-02-14 21:59:13 -0500
7455 Branch: REL9_3_STABLE [46cbcd50e] 2014-02-14 21:59:37 -0500
7456 Branch: REL9_2_STABLE [4f975b68b] 2014-02-14 21:59:42 -0500
7457 Branch: REL9_1_STABLE [3212ba534] 2014-02-14 21:59:46 -0500
7458 Branch: REL9_0_STABLE [cb84fddd9] 2014-02-14 21:59:50 -0500
7459 Branch: REL8_4_STABLE [c0c2d62ac] 2014-02-14 21:59:56 -0500
7464 Update time zone data files to <application>tzdata</> release 2013i
7465 for DST law changes in Jordan and historical changes in Cuba.
7469 In addition, the zones <literal>Asia/Riyadh87</>,
7470 <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
7471 removed, as they are no longer maintained by IANA, and never
7472 represented actual civil timekeeping practice.
7481 <sect1 id="release-9-3-2">
7482 <title>Release 9.3.2</title>
7485 <title>Release Date</title>
7486 <simpara>2013-12-05</simpara>
7490 This release contains a variety of fixes from 9.3.1.
7491 For information about new features in the 9.3 major release, see
7492 <xref linkend="release-9-3">.
7496 <title>Migration to Version 9.3.2</title>
7499 A dump/restore is not required for those running 9.3.X.
7503 However, this release corrects a number of potential data corruption
7504 issues. See the first three changelog entries below to find out whether
7505 your installation has been affected and what steps you can take if so.
7509 Also, if you are upgrading from a version earlier than 9.3.1,
7510 see <xref linkend="release-9-3-1">.
7516 <title>Changes</title>
7522 Fix <command>VACUUM</>'s tests to see whether it can
7523 update <structfield>relfrozenxid</> (Andres Freund)
7527 In some cases <command>VACUUM</> (either manual or autovacuum) could
7528 incorrectly advance a table's <structfield>relfrozenxid</> value,
7529 allowing tuples to escape freezing, causing those rows to become
7530 invisible once 2^31 transactions have elapsed. The probability of
7531 data loss is fairly low since multiple incorrect advancements would
7532 need to happen before actual loss occurs, but it's not zero. In 9.2.0
7533 and later, the probability of loss is higher, and it's also possible
7534 to get <quote>could not access status of transaction</> errors as a
7535 consequence of this bug. Users upgrading from releases 9.0.4 or 8.4.8
7536 or earlier are not affected, but all later versions contain the bug.
7540 The issue can be ameliorated by, after upgrading, vacuuming all tables
7541 in all databases while having <link
7542 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
7543 set to zero. This will fix any latent corruption but will not be able
7544 to fix all pre-existing data errors. However, an installation can be
7545 presumed safe after performing this vacuuming if it has executed fewer
7546 than 2^31 update transactions in its lifetime (check this with
7547 <literal>SELECT txid_current() < 2^31</>).
7553 Fix multiple bugs in MultiXactId freezing (Andres Freund,
7554 Álvaro Herrera)
7558 These bugs could lead to <quote>could not access status of
7559 transaction</> errors, or to duplicate or vanishing rows.
7560 Users upgrading from releases prior to 9.3.0 are not affected.
7564 The issue can be ameliorated by, after upgrading, vacuuming all tables
7565 in all databases while having <link
7566 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
7567 set to zero. This will fix latent corruption but will not be able to
7568 fix all pre-existing data errors.
7572 As a separate issue, these bugs can also cause standby servers to get
7573 out of sync with the primary, thus exhibiting data errors that are not
7574 in the primary. Therefore, it's recommended that 9.3.0 and 9.3.1
7575 standby servers be re-cloned from the primary (e.g., with a new base
7576 backup) after upgrading.
7582 Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
7583 during hot standby startup (Andres Freund, Heikki Linnakangas)
7587 This bug can cause data loss on standby servers at the moment they
7588 start to accept hot-standby queries, by marking committed transactions
7589 as uncommitted. The likelihood of such corruption is small unless, at
7590 the time of standby startup, the primary server has executed many
7591 updating transactions since its last checkpoint. Symptoms include
7592 missing rows, rows that should have been deleted being still visible,
7593 and obsolete versions of updated rows being still visible alongside
7594 their newer versions.
7598 This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
7599 Standby servers that have only been running earlier releases are not
7600 at risk. It's recommended that standby servers that have ever run any
7601 of the buggy releases be re-cloned from the primary (e.g., with a new
7602 base backup) after upgrading.
7608 Fix multiple bugs in update chain traversal (Andres Freund,
7609 Álvaro Herrera)
7613 These bugs could result in incorrect behavior, such as locking or even
7614 updating the wrong row, in the presence of concurrent updates.
7615 Spurious <quote>unable to fetch updated version of tuple</> errors
7622 Fix dangling-pointer problem in fast-path locking (Tom Lane)
7626 This could lead to corruption of the lock data structures in shared
7627 memory, causing <quote>lock already held</> and other odd errors.
7633 Fix assorted race conditions in timeout management (Tom Lane)
7637 These errors could result in a server process becoming unresponsive
7638 because it had blocked SIGALRM and/or SIGINT.
7644 Truncate <filename>pg_multixact</> contents during WAL replay
7649 This avoids ever-increasing disk space consumption in standby servers.
7655 Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
7656 when it's only verified that no tuples need freezing (Sergey
7657 Burladyan, Jeff Janes)
7661 This bug could result in failing to
7662 advance <structfield>relfrozenxid</>, so that the table would still be
7663 thought to need another anti-wraparound vacuum. In the worst case the
7664 database might even shut down to prevent wraparound.
7670 Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
7674 This bug could result in large amounts of useless autovacuum activity.
7680 Fix race condition in GIN index posting tree page deletion (Heikki
7685 This could lead to transient wrong answers or query failures.
7691 Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
7692 index creation (Teodor Sigaev)
7698 Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
7704 Re-allow duplicate table aliases if they're within aliased JOINs
7709 Historically <productname>PostgreSQL</> has accepted queries like
7711 SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
7713 although a strict reading of the SQL standard would forbid the
7714 duplicate usage of table alias <literal>x</>. A misguided change in
7715 9.3.0 caused it to reject some such cases that were formerly accepted.
7716 Restore the previous behavior.
7722 Avoid flattening a subquery whose <literal>SELECT</> list contains a
7723 volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
7727 This avoids unexpected results due to extra evaluations of the
7734 Fix planner's processing of non-simple-variable subquery outputs
7735 nested within outer joins (Tom Lane)
7739 This error could lead to incorrect plans for queries involving
7740 multiple levels of subqueries within <literal>JOIN</> syntax.
7746 Fix incorrect planning in cases where the same non-strict expression
7747 appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
7748 equality clauses (Tom Lane)
7754 Fix planner crash with whole-row reference to a subquery (Tom Lane)
7760 Fix incorrect generation of optimized MIN()/MAX() plans for
7761 inheritance trees (Tom Lane)
7765 The planner could fail in cases where the MIN()/MAX() argument was an
7766 expression rather than a simple variable.
7772 Fix premature deletion of temporary files (Andres Freund)
7778 Prevent intra-transaction memory leak when printing range values
7783 This fix actually cures transient memory leaks in any datatype output
7784 function, but range types are the only ones known to have had a
7785 significant problem.
7791 Fix memory leaks when reloading configuration files (Heikki
7792 Linnakangas, Hari Babu)
7798 Prevent incorrect display of dropped columns in NOT NULL and CHECK
7799 constraint violation messages (Michael Paquier and Tom Lane)
7805 Allow default arguments and named-argument notation for window
7806 functions (Tom Lane)
7810 Previously, these cases were likely to crash.
7816 Suppress trailing whitespace on each line when pretty-printing rules
7817 and views (Tom Lane)
7821 9.3.0 generated such whitespace in many more cases than previous
7822 versions did. To reduce unexpected behavioral changes, suppress
7823 unnecessary whitespace in all cases.
7829 Fix possible read past end of memory in rule printing (Peter Eisentraut)
7835 Fix array slicing of <type>int2vector</> and <type>oidvector</> values
7840 Expressions of this kind are now implicitly promoted to
7841 regular <type>int2</> or <type>oid</> arrays.
7847 Return a valid JSON value when converting an empty <type>hstore</> value
7855 Fix incorrect behaviors when using a SQL-standard, simple GMT offset
7860 In some cases, the system would use the simple GMT offset value when
7861 it should have used the regular timezone setting that had prevailed
7862 before the simple offset was selected. This change also causes
7863 the <function>timeofday</> function to honor the simple GMT offset
7870 Prevent possible misbehavior when logging translations of Windows
7871 error codes (Tom Lane)
7877 Properly quote generated command lines in <application>pg_ctl</>
7878 (Naoya Anzai and Tom Lane)
7882 This fix applies only to Windows.
7888 Fix <application>pg_dumpall</> to work when a source database
7890 linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
7891 via <command>ALTER DATABASE SET</> (Kevin Grittner)
7895 Previously, the generated script would fail during restore.
7901 Fix <application>pg_isready</> to handle its <option>-d</> option
7902 properly (Fabrízio de Royes Mello and Fujii Masao)
7908 Fix parsing of WAL file names in <application>pg_receivexlog</>
7909 (Heikki Linnakangas)
7913 This error made <application>pg_receivexlog</> unable to restart
7914 streaming after stopping, once at least 4 GB of WAL had been written.
7920 Report out-of-disk-space failures properly
7921 in <application>pg_upgrade</> (Peter Eisentraut)
7927 Make <application>ecpg</> search for quoted cursor names
7928 case-sensitively (Zoltán Böszörményi)
7934 Fix <application>ecpg</>'s processing of lists of variables
7935 declared <type>varchar</> (Zoltán Böszörményi)
7941 Make <filename>contrib/lo</> defend against incorrect trigger definitions
7948 Update time zone data files to <application>tzdata</> release 2013h
7949 for DST law changes in Argentina, Brazil, Jordan, Libya,
7950 Liechtenstein, Morocco, and Palestine. Also, new timezone
7951 abbreviations WIB, WIT, WITA for Indonesia.
7960 <sect1 id="release-9-3-1">
7961 <title>Release 9.3.1</title>
7964 <title>Release Date</title>
7965 <simpara>2013-10-10</simpara>
7969 This release contains a variety of fixes from 9.3.0.
7970 For information about new features in the 9.3 major release, see
7971 <xref linkend="release-9-3">.
7975 <title>Migration to Version 9.3.1</title>
7978 A dump/restore is not required for those running 9.3.X.
7982 However, if you use the <literal>hstore</> extension, see the
7983 first changelog entry.
7989 <title>Changes</title>
7995 Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
7996 extension during an update (Andrew Dunstan)
8000 Users who upgraded a pre-9.3 database containing <literal>hstore</>
8003 ALTER EXTENSION hstore UPDATE;
8005 after installing 9.3.1, to add two new JSON functions and a cast.
8006 (If <literal>hstore</> is already up to date, this command does
8013 Fix memory leak when creating B-tree indexes on range columns
8014 (Heikki Linnakangas)
8020 Fix memory leak caused by <function>lo_open()</function> failure
8021 (Heikki Linnakangas)
8027 Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
8033 Fix deadlock bug in libpq when using SSL (Stephen Frost)
8039 Fix timeline handling bugs in <application>pg_receivexlog</>
8040 (Heikki Linnakangas, Andrew Gierth)
8046 Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
8047 variables unless function body checking is enabled (Tom Lane)
8053 Remove rare inaccurate warning during vacuum of index-less tables
8054 (Heikki Linnakangas)
8063 <sect1 id="release-9-3">
8064 <title>Release 9.3</title>
8067 <title>Release Date</title>
8068 <simpara>2013-09-09</simpara>
8072 <title>Overview</title>
8075 Major enhancements in <productname>PostgreSQL</> 9.3 include:
8078 <!-- This list duplicates items below, but without authors or details-->
8084 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
8091 Make simple views <link
8092 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
8098 Add many features for the <type>JSON</> data type,
8099 including <link linkend="functions-json">operators and functions</link>
8100 to extract elements from <type>JSON</> values
8106 Implement <acronym>SQL</>-standard <link
8107 linkend="queries-lateral"><literal>LATERAL</></link> option for
8108 <literal>FROM</>-clause subqueries and function calls
8114 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
8115 wrappers</link> to support writes (inserts/updates/deletes) on foreign
8122 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
8123 data wrapper</link> to allow access to
8124 other <productname>Postgres</> servers
8130 Add support for <link linkend="event-triggers">event triggers</link>
8136 Add optional ability to <link
8137 linkend="app-initdb-data-checksums">checksum</link> data pages and
8144 Prevent non-key-field row updates from blocking foreign key checks
8150 Greatly reduce System V <link linkend="sysvipc">shared
8151 memory</link> requirements
8158 The above items are explained in more detail in the sections below.
8165 <title>Migration to Version 9.3</title>
8168 A dump/restore using <link
8169 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
8170 of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
8171 required for those wishing to migrate data from any previous release.
8175 Version 9.3 contains a number of changes that may affect compatibility
8176 with previous releases. Observe the following incompatibilities:
8180 <title>Server Settings</title>
8186 Rename <varname>replication_timeout</> to <link
8187 linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
8192 This setting controls the <link
8193 linkend="wal"><acronym>WAL</></link> sender timeout.
8199 Require superuser privileges to set <link
8200 linkend="guc-commit-delay"><varname>commit_delay</></link>
8201 because it can now potentially delay other sessions (Simon Riggs)
8207 Allow in-memory sorts to use their full memory allocation (Jeff Janes)
8211 Users who have set <link
8212 linkend="guc-work-mem"><varname>work_mem</></link> based on the
8213 previous behavior may need to revisit that setting.
8222 <title>Other</title>
8228 Throw an error if a tuple to be updated or deleted has already been
8229 updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
8233 Formerly, the originally-intended update was silently skipped,
8234 resulting in logical inconsistency since the trigger might have
8235 propagated data to other places based on the intended update.
8236 Now an error is thrown to prevent the inconsistent results from being
8237 committed. If this change affects your application, the best solution
8238 is usually to move the data-propagation actions to
8239 an <literal>AFTER</> trigger.
8243 This error will also be thrown if a query invokes a volatile function
8244 that modifies rows that are later modified by the query itself.
8245 Such cases likewise previously resulted in silently skipping updates.
8251 Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
8252 SET NULL/SET DEFAULT</></link> foreign key actions to affect
8253 all columns of the constraint, not just those changed in the
8254 <command>UPDATE</> (Tom Lane)
8258 Previously, we would set only those referencing columns that
8259 correspond to referenced columns that were changed by
8260 the <command>UPDATE</>. This was what was required by SQL-92,
8261 but more recent editions of the SQL standard specify the new behavior.
8267 Force cached plans to be replanned if the <link
8268 linkend="guc-search-path"><varname>search_path</></link> changes
8273 Previously, cached plans already generated in the current session were
8274 not redone if the query was re-executed with a
8275 new <varname>search_path</> setting, resulting in surprising behavior.
8282 linkend="functions-formatting-table"><function>to_number()</></link>
8283 to properly handle a period used as a thousands separator (Tom Lane)
8287 Previously, a period was considered to be a decimal point even when
8288 the locale says it isn't and the <literal>D</> format code is used to
8289 specify use of the locale-specific decimal point. This resulted in
8290 wrong answers if <literal>FM</> format was also used.
8296 Fix <literal>STRICT</> non-set-returning functions that have
8297 set-returning functions in their arguments to properly return null
8302 A null value passed to the strict function should result in a null
8303 output, but instead, that output row was suppressed entirely.
8309 Store <link linkend="wal"><acronym>WAL</></link> in a continuous
8310 stream, rather than skipping the last 16MB segment every 4GB
8311 (Heikki Linnakangas)
8315 Previously, <acronym>WAL</> files with names ending in <literal>FF</>
8316 were not used because of this skipping. If you have <acronym>WAL</>
8317 backup or restore scripts that took this behavior into account, they
8318 will need to be adjusted.
8325 linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
8326 store the default foreign key match type (non-<literal>FULL</>,
8327 non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
8332 Previously this case was represented by <literal>u</>
8333 for <quote>unspecified</>.
8344 <title>Changes</title>
8347 Below you will find a detailed account of the changes between
8348 <productname>PostgreSQL</productname> 9.3 and the previous major
8353 <title>Server</title>
8356 <title>Locking</title>
8362 Prevent non-key-field row updates from blocking foreign key checks
8363 (Álvaro Herrera, Noah Misch, Andres Freund, Alexander
8364 Shulgin, Marti Raudsepp, Alexander Shulgin)
8368 This change improves concurrency and reduces the probability of
8369 deadlocks when updating tables involved in a foreign-key constraint.
8370 <command>UPDATE</>s that do not change any columns referenced in a
8371 foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
8372 the row, while foreign key checks use the new <literal>KEY SHARE</>
8373 lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
8374 So there is no blocking unless a foreign-key column is changed.
8380 Add configuration variable <link
8381 linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
8382 allow limiting how long a session will wait to acquire any one lock
8383 (Zoltán Böszörményi)
8392 <title>Indexes</title>
8398 Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
8399 support for range data types (Alexander Korotkov)
8405 Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
8406 unlogged (Jeevan Chalke)
8412 Improve performance of <acronym>GiST</> index insertion by randomizing
8413 the choice of which page to descend to when there are multiple equally
8414 good alternatives (Heikki Linnakangas)
8420 Improve concurrency of hash index operations (Robert Haas)
8429 <title>Optimizer</title>
8435 Collect and use histograms of upper and lower bounds, as well as range
8436 lengths, for <link linkend="rangetypes">range types</link>
8437 (Alexander Korotkov)
8443 Improve optimizer's cost estimation for index access (Tom Lane)
8449 Improve optimizer's hash table size estimate for
8450 doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
8456 Suppress no-op Result and Limit plan nodes
8457 (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
8463 Reduce optimizer overhead by not keeping plans on the basis of cheap
8464 startup cost when the optimizer only cares about total cost overall
8474 <title>General Performance</title>
8480 Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
8481 option to avoid the overhead of marking tuples as frozen later
8482 (Simon Riggs, Jeff Davis)
8488 Improve performance of <link
8489 linkend="datatype-numeric"><type>NUMERIC</></link> calculations
8496 Improve synchronization of sessions waiting for <link
8497 linkend="guc-commit-delay"><varname>commit_delay</></link>
8502 This greatly improves the usefulness of <varname>commit_delay</>.
8508 Improve performance of the <link
8509 linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
8510 COMMIT DELETE ROWS</></link> option by not truncating such temporary
8511 tables in transactions that haven't touched any temporary tables
8512 (Heikki Linnakangas)
8518 Make vacuum recheck visibility after it has removed expired tuples
8523 This increases the chance of a page being marked as all-visible.
8529 Add per-resource-owner lock caches (Jeff Janes)
8533 This speeds up lock bookkeeping at statement completion in
8534 multi-statement transactions that hold many locks; it is particularly
8535 useful for <application>pg_dump</>.
8541 Avoid scanning the entire relation cache at commit of a transaction
8542 that creates a new relation (Jeff Janes)
8546 This speeds up sessions that create many tables in successive
8547 small transactions, such as a <application>pg_restore</> run.
8553 Improve performance of transactions that drop many relations
8563 <title>Monitoring</title>
8569 Add optional ability to <link
8570 linkend="app-initdb-data-checksums">checksum</link> data pages and
8571 report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
8575 The checksum option can be set during <link
8576 linkend="APP-INITDB">initdb</link>.
8582 Split the <link linkend="monitoring-stats">statistics collector's</link>
8583 data file into separate global and per-database files (Tomas Vondra)
8587 This reduces the I/O required for statistics tracking.
8593 Fix the statistics collector to operate properly in cases where the
8594 system clock goes backwards (Tom Lane)
8598 Previously, statistics collection would stop until the time again
8599 reached the latest time previously recorded.
8605 Emit an informative message to postmaster standard error when we
8606 are about to stop logging there
8611 This should help reduce user confusion about where to look for log
8612 output in common configurations that log to standard error only during
8622 <title>Authentication</title>
8628 When an authentication failure occurs, log the relevant
8629 <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
8630 line, to ease debugging of unintended failures
8637 Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
8638 reporting and documentation (Peter Eisentraut)
8644 Add support for specifying <acronym>LDAP</> authentication parameters
8645 in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
8652 linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
8653 to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
8654 then remove insecure ciphers (Magnus Hagander)
8658 This should yield a more appropriate SSL cipher set.
8664 Parse and load <link
8665 linkend="auth-username-maps"><filename>pg_ident.conf</></link>
8666 once, not during each connection (Amit Kapila)
8670 This is similar to how <filename>pg_hba.conf</> is processed.
8679 <title>Server Settings</title>
8685 Greatly reduce System V <link linkend="sysvipc">shared
8686 memory</link> requirements (Robert Haas)
8690 On Unix-like systems, <function>mmap()</> is now used for most
8691 of <productname>PostgreSQL</>'s shared memory. For most users, this
8692 will eliminate any need to adjust kernel parameters for shared memory.
8698 Allow the postmaster to listen on multiple Unix-domain sockets
8699 (Honza Horák)
8703 The configuration parameter
8704 <varname>unix_socket_directory</> is replaced by <link
8705 linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
8706 which accepts a list of directories.
8712 Allow a directory of configuration files to be processed (Magnus
8713 Hagander, Greg Smith, Selena Deckelmann)
8717 Such a directory is specified with <link
8718 linkend="config-includes"><varname>include_dir</></link> in the server
8725 Increase the maximum <link
8726 linkend="APP-INITDB">initdb</link>-configured value for <link
8727 linkend="guc-shared-buffers"><varname>shared_buffers</></link>
8728 to 128MB (Robert Haas)
8732 This is the maximum value that initdb will attempt to set in <link
8733 linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
8734 the previous maximum was 32MB.
8740 Remove the <link linkend="guc-external-pid-file">external
8741 <acronym>PID</> file</link>, if any, on postmaster exit
8753 <title>Replication and Recovery</title>
8759 Allow a streaming replication standby to <link
8760 linkend="protocol-replication">follow a timeline switch</link>
8761 (Heikki Linnakangas)
8765 This allows streaming standby servers to receive WAL data from a slave
8766 newly promoted to master status. Previously, other standbys would
8767 require a resync to begin following the new master.
8773 Add <acronym>SQL</> functions <link
8774 linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
8776 linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
8781 These functions report the status of base backups.
8787 Improve performance of streaming log shipping with <link
8788 linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
8789 disabled (Andres Freund)
8795 Allow much faster promotion of a streaming standby to primary (Simon
8796 Riggs, Kyotaro Horiguchi)
8802 Add the last checkpoint's redo location to <link
8803 linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
8804 output (Fujii Masao)
8808 This information is useful for determining which <acronym>WAL</>
8809 files are needed for restore.
8815 Allow tools like <link
8816 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
8817 to run on computers with different architectures (Heikki
8822 WAL files can still only be replayed on servers with the same
8823 architecture as the primary; but they can now be transmitted to and
8824 stored on machines of any architecture, since the
8825 streaming replication protocol is now machine-independent.
8832 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
8833 <option>--write-recovery-conf</> output a
8834 minimal <filename>recovery.conf</> file (Zoltán
8835 Böszörményi, Magnus Hagander)
8839 This simplifies setting up a standby server.
8846 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
8848 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
8849 <option>--xlog-method</> to handle streaming timeline switches
8850 (Heikki Linnakangas)
8857 linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
8858 parameter to control the <acronym>WAL</> receiver's timeout
8863 This allows more rapid detection of connection failure.
8869 Change the <link linkend="wal"><acronym>WAL</></link> record format to
8870 allow splitting the record header across pages (Heikki Linnakangas)
8874 The new format is slightly more compact, and is more efficient to
8884 <title>Queries</title>
8890 Implement <acronym>SQL</>-standard <link
8891 linkend="queries-lateral"><literal>LATERAL</></link> option for
8892 <literal>FROM</>-clause subqueries and function calls (Tom Lane)
8896 This feature allows subqueries and functions in <literal>FROM</> to
8897 reference columns from other tables in the <literal>FROM</>
8898 clause. The <literal>LATERAL</> keyword is optional for functions.
8904 Add support for piping <link
8905 linkend="SQL-COPY"><command>COPY</></link> and <link
8906 linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
8907 data to/from an external program (Etsuro Fujita)
8913 Allow a multirow <link
8914 linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
8915 to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
8924 <title>Object Manipulation</title>
8930 Add support for <link linkend="event-triggers">event triggers</link>
8931 (Dimitri Fontaine, Robert Haas, Álvaro Herrera)
8935 This allows server-side functions written in event-enabled
8936 languages to be called when DDL commands are run.
8942 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
8943 wrappers</link> to support writes (inserts/updates/deletes) on foreign
8944 tables (KaiGai Kohei)
8950 Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
8951 NOT EXISTS</></link> clause (Fabrízio de Royes Mello)
8957 Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
8958 OWNED</></link> also change ownership of shared objects
8959 (Álvaro Herrera)
8965 Make <link linkend="sql-createaggregate"><command>CREATE
8966 AGGREGATE</></link> complain if the given initial value string is not
8967 valid input for the transition datatype (Tom Lane)
8973 Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
8974 TABLE</></link>'s messages about implicit index and sequence creation
8979 These messages now appear at <literal>DEBUG1</> verbosity, so that
8980 they will not be shown by default.
8986 Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
8987 EXISTS</></link> to succeed when a non-existent schema is specified
8988 in the table name (Bruce Momjian)
8992 Previously, it threw an error if the schema did not exist.
8998 Provide clients with <link
8999 linkend="libpq-pqresulterrorfield">constraint violation details</link>
9000 as separate fields (Pavel Stehule)
9004 This allows clients to retrieve table, column, data type, or
9005 constraint name error details. Previously such information had to be
9006 extracted from error strings. Client library support is required to
9007 access these fields.
9014 <title><command>ALTER</></title>
9020 Support <literal>IF NOT EXISTS</> option in <link
9021 linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
9026 This is useful for conditionally adding values to enumerated types.
9032 Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
9033 SET</></link> to establish settings for all users (Peter Eisentraut)
9037 This allows settings to apply to all users in all databases. <link
9038 linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
9039 already allowed addition of settings for all users in a single
9040 database. <filename>postgresql.conf</> has a similar effect.
9046 Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
9047 ... RENAME</></link> (Ali Dar)
9056 <title><link linkend="rules-views"><command>VIEWs</></link></title>
9062 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
9063 views</link> (Kevin Grittner)
9067 Unlike ordinary views, where the base tables are read on every access,
9068 materialized views create physical tables at creation or refresh time.
9069 Access to the materialized view then reads from its physical
9070 table. There is not yet any facility for incrementally refreshing
9071 materialized views or auto-accessing them via base table access.
9077 Make simple views <link
9078 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
9083 Simple views that reference some or all columns from a
9084 single base table are now updatable by default. More
9085 complex views can be made updatable using <link
9086 linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
9087 or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
9093 Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
9094 VIEW</></link> syntax (Peter Eisentraut)
9098 Internally this is translated into <command>CREATE VIEW ... WITH
9105 Improve view/rule printing code to handle cases where referenced
9106 tables are renamed, or columns are renamed, added, or dropped
9111 Table and column renamings can produce cases where, if we merely
9112 substitute the new name into the original text of a rule or view, the
9113 result is ambiguous. This change fixes the rule-dumping code to insert
9114 manufactured table and column aliases when needed to preserve the
9126 <title>Data Types</title>
9132 Increase the maximum size of <link linkend="largeObjects">large
9133 objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
9137 This change includes adding 64-bit-capable large object access
9138 functions, both in the server and in libpq.
9144 Allow text <link linkend="datatype-timezones">timezone
9145 designations</link>, e.g. <quote>America/Chicago</>, in the
9146 <quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
9147 input (Bruce Momjian)
9154 <title><link linkend="datatype-json"><type>JSON</></link></title>
9160 Add <link linkend="functions-json">operators and functions</link>
9161 to extract elements from <type>JSON</> values (Andrew Dunstan)
9167 Allow <type>JSON</> values to be <link
9168 linkend="functions-json">converted into records</link>
9175 Add <link linkend="functions-json">functions</link> to convert
9176 scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
9189 <title>Functions</title>
9196 linkend="array-functions-table"><function>array_remove()</></link>
9198 linkend="array-functions-table"><function>array_replace()</></link>
9199 functions (Marco Nenciarini, Gabriele Bartolini)
9206 linkend="functions-string-other"><function>concat()</></link>
9208 linkend="functions-string-format"><function>format()</></link>
9209 to properly expand <literal>VARIADIC</>-labeled arguments
9217 linkend="functions-string-format"><function>format()</></link>
9218 to provide field width and left/right alignment options (Pavel Stehule)
9225 linkend="functions-formatting-table"><function>to_char()</></link>,
9227 linkend="functions-formatting-table"><function>to_date()</></link>,
9229 linkend="functions-formatting-table"><function>to_timestamp()</></link>
9230 handle negative (BC) century values properly
9235 Previously the behavior was either wrong or inconsistent
9236 with positive/<acronym>AD</> handling, e.g. with the format mask
9237 <quote>IYYY-IW-DY</>.
9244 linkend="functions-formatting-table"><function>to_date()</></link>
9246 linkend="functions-formatting-table"><function>to_timestamp()</></link>
9247 return proper results when mixing <acronym>ISO</> and Gregorian
9248 week/day designations (Bruce Momjian)
9255 linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
9256 to start a new line by default after each <literal>SELECT</> target
9257 list entry and <literal>FROM</> entry (Marko Tiikkaja)
9261 This reduces line length in view printing, for instance in <link
9262 linkend="APP-PGDUMP"><application>pg_dump</></link> output.
9268 Fix <function>map_sql_value_to_xml_value()</> to print values of
9269 domain types the same way their base type would be printed
9274 There are special formatting rules for certain built-in types such as
9275 <type>boolean</>; these rules now also apply to domains over these
9285 <title>Server-Side Languages</title>
9288 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
9294 Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
9295 expression (Asif Rehman)
9299 Previously, in a function returning a composite type,
9300 <literal>RETURN</> could only reference a variable of that type.
9306 Allow PL/pgSQL to access <link
9307 linkend="plpgsql-exception-diagnostics">constraint violation
9308 details</link> as separate fields (Pavel Stehule)
9314 Allow PL/pgSQL to access the number of rows processed by
9315 <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
9319 A <command>COPY</> executed in a PL/pgSQL function now updates the
9320 value retrieved by <link
9321 linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
9322 x = ROW_COUNT</></link>.
9328 Allow unreserved keywords to be used as identifiers everywhere in
9333 In certain places in the PL/pgSQL grammar, keywords had to be quoted
9334 to be used as identifiers, even if they were nominally unreserved.
9343 <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
9349 Add PL/Python result object string handler (Peter Eisentraut)
9353 This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
9359 Make PL/Python convert OID values to a proper Python numeric type
9366 Handle <link linkend="spi"><acronym>SPI</></link> errors raised
9367 explicitly (with PL/Python's <literal>RAISE</>) the same as
9368 internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
9379 <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
9385 Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
9390 At the end of any failed subtransaction, the core SPI code now
9391 releases any SPI tuple tables that were created during that
9392 subtransaction. This avoids the need for SPI-using code to keep track
9393 of such tuple tables and release them manually in error-recovery code.
9394 Failure to do so caused a number of transaction-lifespan memory leakage
9395 issues in PL/pgSQL and perhaps other SPI clients. <link
9396 linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
9397 now protects itself against multiple freeing requests, so any existing
9398 code that did take care to clean up shouldn't be broken by this change.
9404 Allow <acronym>SPI</> functions to access the number of rows processed
9405 by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
9414 <title>Client Applications</title>
9420 Add command-line utility <link
9421 linkend="app-pg-isready"><application>pg_isready</></link> to
9422 check if the server is ready to accept connections (Phil Sorber)
9428 Support multiple <option>--table</> arguments for <link
9429 linkend="APP-PGRESTORE"><application>pg_restore</></link>,
9430 <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
9431 <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
9432 and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
9437 This is similar to the way <link
9438 linkend="APP-PGDUMP"><application>pg_dump</></link>'s
9439 <option>--table</> option works.
9445 Add <option>--dbname</> option to <link
9446 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
9447 linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
9449 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
9450 to allow specifying a connection string (Amit Kapila)
9456 Add libpq function <link
9457 linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
9458 to return connection information (Zoltán
9459 Böszörményi, Magnus Hagander)
9466 <title><link linkend="APP-PSQL"><application>psql</></link></title>
9472 Adjust function cost settings so <application>psql</> tab
9473 completion and pattern searching are more efficient (Tom Lane)
9479 Improve <application>psql</>'s tab completion coverage (Jeff Janes,
9480 Dean Rasheed, Peter Eisentraut, Magnus Hagander)
9486 Allow the <application>psql</> <option>--single-transaction</>
9487 mode to work when reading from standard input (Fabien Coelho,
9492 Previously this option only worked when reading from a file.
9498 Remove <application>psql</> warning when connecting to an older
9499 server (Peter Eisentraut)
9503 A warning is still issued when connecting to a server of a newer major
9504 version than <application>psql</>'s.
9511 <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
9517 Add <application>psql</> command <command>\watch</> to repeatedly
9518 execute a SQL command (Will Leinweber)
9524 Add <application>psql</> command <command>\gset</> to store query
9525 results in <application>psql</> variables (Pavel Stehule)
9531 Add <acronym>SSL</> information to <application>psql</>'s
9532 <command>\conninfo</> command (Alastair Turner)
9538 Add <quote>Security</> column to <application>psql</>'s
9539 <command>\df+</> output (Jon Erdman)
9545 Allow <application>psql</> command <command>\l</> to accept a database
9546 name pattern (Peter Eisentraut)
9552 In <application>psql</>, do not allow <command>\connect</> to
9553 use defaults if there is no active connection (Bruce Momjian)
9557 This might be the case if the server had crashed.
9563 Properly reset state after failure of a SQL command executed with
9564 <application>psql</>'s <literal>\g</> <replaceable>file</>
9569 Previously, the output from subsequent SQL commands would unexpectedly
9570 continue to go to the same file.
9579 <title>Output</title>
9585 Add a <literal>latex-longtable</> output format to
9586 <application>psql</> (Bruce Momjian)
9590 This format allows tables to span multiple pages.
9596 Add a <literal>border=3</> output mode to the <application>psql</>
9597 <literal>latex</> format (Bruce Momjian)
9603 In <application>psql</>'s tuples-only and expanded output modes, no
9604 longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
9610 In <application>psql</>'s unaligned, expanded output mode, no longer
9611 print an empty line for zero rows (Peter Eisentraut)
9622 <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
9628 Add <application>pg_dump</> <option>--jobs</> option to dump tables in
9629 parallel (Joachim Wieland)
9635 Make <application>pg_dump</> output functions in a more predictable
9636 order (Joel Jacobson)
9642 Fix tar files emitted by <application>pg_dump</>
9643 to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
9649 Add <option>--dbname</> option to <application>pg_dump</>, for
9650 consistency with other client commands (Heikki Linnakangas)
9654 The database name could already be supplied last without a flag.
9663 <title><link linkend="APP-INITDB"><application>initdb</></link></title>
9669 Make initdb fsync the newly created data directory (Jeff Davis)
9673 This insures data integrity in event of a system crash shortly after
9674 initdb. This can be disabled by using <option>--nosync</>.
9680 Add initdb <option>--sync-only</> option to sync the data directory to durable
9681 storage (Bruce Momjian)
9685 This is used by <link
9686 linkend="pgupgrade"><application>pg_upgrade</></link>.
9692 Make initdb issue a warning about placing the data directory at the
9693 top of a file system mount point (Bruce Momjian)
9704 <title>Source Code</title>
9710 Add infrastructure to allow plug-in <link
9711 linkend="bgworker">background worker processes</link>
9712 (Álvaro Herrera)
9718 Create a centralized timeout <acronym>API</> (Zoltán
9719 Böszörményi)
9725 Create libpgcommon and move <function>pg_malloc()</> and other
9726 functions there (Álvaro Herrera, Andres Freund)
9730 This allows libpgport to be used solely for portability-related code.
9736 Add support for list links embedded in larger structs (Andres Freund)
9742 Use <literal>SA_RESTART</> for all signals,
9743 including <literal>SIGALRM</> (Tom Lane)
9749 Ensure that the correct text domain is used when
9750 translating <function>errcontext()</> messages
9751 (Heikki Linnakangas)
9757 Standardize naming of client-side memory allocation functions (Tom Lane)
9763 Provide support for <quote>static assertions</> that will fail at
9764 compile time if some compile-time-constant condition is not met
9765 (Andres Freund, Tom Lane)
9771 Support <function>Assert()</> in client-side code (Andrew Dunstan)
9777 Add decoration to inform the C compiler that some <function>ereport()</>
9778 and <function>elog()</> calls do not return (Peter Eisentraut,
9779 Andres Freund, Tom Lane, Heikki Linnakangas)
9785 Allow options to be passed to the regression
9786 test output comparison utility via <link
9787 linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
9794 Add isolation tests for <link
9795 linkend="SQL-CREATEINDEX"><command>CREATE INDEX
9796 CONCURRENTLY</></link> (Abhijit Menon-Sen)
9802 Remove typedefs for <type>int2</>/<type>int4</> as they are better
9803 represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
9809 Fix <link linkend="install">install-strip</link> on Mac <productname>OS
9810 X</> (Peter Eisentraut)
9816 Remove <link linkend="configure">configure</link> flag
9817 <option>--disable-shared</>, as it is no longer supported
9824 Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
9830 Provide Emacs macro to set Perl formatting to
9831 match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
9837 Run tool to check the keyword list whenever the backend grammar is
9844 Change the way <literal>UESCAPE</> is lexed, to significantly reduce
9845 the size of the lexer tables (Heikki Linnakangas)
9851 Centralize <application>flex</> and <application>bison</>
9852 <application>make</> rules (Peter Eisentraut)
9856 This is useful for <application>pgxs</> authors.
9862 Change many internal backend functions to return object <type>OID</>s
9863 rather than void (Dimitri Fontaine)
9867 This is useful for event triggers.
9873 Invent pre-commit/pre-prepare/pre-subcommit events for transaction
9874 callbacks (Tom Lane)
9878 Loadable modules that use transaction callbacks might need modification
9879 to handle these new event types.
9886 linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
9887 to produce a machine-readable description of a database object
9888 (Álvaro Herrera)
9894 Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
9900 Implement a generic binary heap and use it for Merge-Append
9901 operations (Abhijit Menon-Sen)
9907 Provide a tool to help detect timezone abbreviation changes when
9908 updating the <filename>src/timezone/data</> files
9915 Add <application>pkg-config</> support for <application>libpq</>
9916 and <application>ecpg</> libraries (Peter Eisentraut)
9922 Remove <filename>src/tools/backend</>, now that the content is on
9923 the <productname>PostgreSQL</> wiki (Bruce Momjian)
9929 Split out <link linkend="wal"><acronym>WAL</></link> reading as
9930 an independent facility (Heikki Linnakangas, Andres Freund)
9936 Use a 64-bit integer to represent <link
9937 linkend="wal"><acronym>WAL</></link> positions
9938 (<structname>XLogRecPtr</>) instead of two 32-bit integers
9939 (Heikki Linnakangas)
9943 Generally, tools that need to read the <acronym>WAL</> format
9944 will need to be adjusted.
9950 Allow <link linkend="plpython">PL/Python</link> to support
9951 platform-specific include directories (Peter Eisentraut)
9957 Allow <link linkend="plpython">PL/Python</link> on <productname>OS
9958 X</> to build against custom versions of <application>Python</>
9968 <title>Additional Modules</title>
9974 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
9975 data wrapper</link> contrib module to allow access to
9976 other <productname>Postgres</> servers (Shigeru Hanada)
9980 This foreign data wrapper supports writes.
9986 Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
9987 contrib program (Andres Freund)
9993 Add support for indexing of regular-expression searches in
9994 <link linkend="pgtrgm"><productname>pg_trgm</></link>
9995 (Alexander Korotkov)
10001 Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
10002 handling of multibyte characters (Tom Lane)
10006 On a platform that does not have the wcstombs() or towlower() library
10007 functions, this could result in an incompatible change in the contents
10008 of <productname>pg_trgm</> indexes for non-ASCII data. In such cases,
10009 <command>REINDEX</> those indexes to ensure correct search results.
10015 Add a <link linkend="pgstattuple">pgstattuple</link> function to report
10016 the size of the pending-insertions list of a <acronym>GIN</> index
10023 Make <link linkend="oid2name"><application>oid2name</></link>,
10024 <link linkend="pgbench"><application>pgbench</></link>, and
10025 <link linkend="vacuumlo"><application>vacuumlo</></link> set
10026 <varname>fallback_application_name</> (Amit Kapila)
10032 Improve output of <link
10033 linkend="pgtesttiming"><application>pg_test_timing</></link>
10040 Improve output of <link
10041 linkend="pgtestfsync"><application>pg_test_fsync</></link>
10048 Create a dedicated foreign data wrapper, with its own option validator
10049 function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
10053 When using this FDW to define the target of a <application>dblink</>
10054 connection, instead of using a hard-wired list of connection options,
10055 the underlying <application>libpq</> library is consulted to see what
10056 connection options it supports.
10063 <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
10069 Allow <application>pg_upgrade</> to do dumps and restores in
10070 parallel (Bruce Momjian, Andrew Dunstan)
10074 This allows parallel schema dump/restore of databases, as well as
10075 parallel copy/link of data files per tablespace. Use the
10076 <option>--jobs</> option to specify the level of parallelism.
10082 Make <application>pg_upgrade</> create Unix-domain sockets in
10083 the current directory (Bruce Momjian, Tom Lane)
10087 This reduces the possibility that someone will accidentally connect
10088 during the upgrade.
10094 Make <application>pg_upgrade</> <option>--check</> mode properly
10095 detect the location of non-default socket directories (Bruce
10102 Improve performance of <application>pg_upgrade</> for databases
10103 with many tables (Bruce Momjian)
10109 Improve <application>pg_upgrade</>'s logs by showing
10110 executed commands (Álvaro Herrera)
10116 Improve <application>pg_upgrade</>'s status display during
10117 copy/link (Bruce Momjian)
10126 <title><link linkend="pgbench"><application>pgbench</></link></title>
10132 Add <option>--foreign-keys</> option to <application>pgbench</>
10137 This adds foreign key constraints to the standard tables created by
10138 <application>pgbench</>, for use in foreign key performance testing.
10144 Allow <application>pgbench</> to aggregate performance statistics
10145 and produce output every <option>--aggregate-interval</>
10146 seconds (Tomas Vondra)
10152 Add <application>pgbench</> <option>--sampling-rate</> option
10153 to control the percentage of transactions logged (Tomas Vondra)
10159 Reduce and improve the status message output of
10160 <application>pgbench</>'s initialization mode (Robert Haas,
10167 Add <application>pgbench</> <option>-q</> mode to print one output
10168 line every five seconds (Tomas Vondra)
10174 Output <application>pgbench</> elapsed and estimated remaining
10175 time during initialization (Tomas Vondra)
10181 Allow <application>pgbench</> to use much larger scale factors,
10182 by changing relevant columns from <type>integer</> to <type>bigint</>
10183 when the requested scale factor exceeds 20000
10195 <title>Documentation</title>
10201 Allow <productname>EPUB</>-format documentation to be created
10208 Update <productname>FreeBSD</> kernel configuration documentation
10215 Improve <link linkend="tutorial-window"><literal>WINDOW</>
10216 function</link> documentation (Bruce Momjian, Florian Pflug)
10222 Add <link linkend="docguide-toolsets">instructions</link> for setting
10223 up the documentation tool chain on Mac <productname>OS X</>
10231 linkend="guc-commit-delay"><varname>commit_delay</></link>
10232 documentation (Peter Geoghegan)