1 <!-- doc/src/sgml/release-9.3.sgml -->
2 <!-- See header comment in release.sgml about typical markup -->
4 <sect1 id="release-9-3-12">
5 <title>Release 9.3.12</title>
8 <title>Release Date</title>
9 <simpara>2016-03-31</simpara>
13 This release contains a variety of fixes from 9.3.11.
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.12</title>
22 A dump/restore is not required for those running 9.3.X.
26 However, if you are upgrading from a version earlier than 9.3.9,
27 see <xref linkend="release-9-3-9">.
33 <title>Changes</title>
39 Fix incorrect handling of NULL index entries in
40 indexed <literal>ROW()</> comparisons (Tom Lane)
44 An index search using a row comparison such as <literal>ROW(a, b) >
45 ROW('x', 'y')</> would stop upon reaching a NULL entry in
46 the <structfield>b</> column, ignoring the fact that there might be
47 non-NULL <structfield>b</> values associated with later values
54 Avoid unlikely data-loss scenarios due to renaming files without
55 adequate <function>fsync()</> calls before and after (Michael Paquier,
56 Tomas Vondra, Andres Freund)
62 Correctly handle cases where <literal>pg_subtrans</> is close to XID
63 wraparound during server startup (Jeff Janes)
69 Fix corner-case crash due to trying to free <function>localeconv()</>
70 output strings more than once (Tom Lane)
76 Fix parsing of affix files for <literal>ispell</> dictionaries
81 The code could go wrong if the affix file contained any characters
82 whose byte length changes during case-folding, for
83 example <literal>I</> in Turkish UTF8 locales.
89 Avoid use of <function>sscanf()</> to parse <literal>ispell</>
90 dictionary files (Artur Zakirov)
94 This dodges a portability problem on FreeBSD-derived platforms
101 Avoid a crash on old Windows versions (before 7SP1/2008R2SP1) with an
102 AVX2-capable CPU and a Postgres build done with Visual Studio 2013
107 This is a workaround for a bug in Visual Studio 2013's runtime
108 library, which Microsoft have stated they will not fix in that
115 Fix <application>psql</>'s tab completion logic to handle multibyte
116 characters properly (Kyotaro Horiguchi, Robert Haas)
122 Fix <application>psql</>'s tab completion for
123 <literal>SECURITY LABEL</> (Tom Lane)
127 Pressing TAB after <literal>SECURITY LABEL</> might cause a crash
128 or offering of inappropriate keywords.
134 Make <application>pg_ctl</> accept a wait timeout from the
135 <envar>PGCTLTIMEOUT</> environment variable, if none is specified on
136 the command line (Noah Misch)
140 This eases testing of slower buildfarm members by allowing them
141 to globally specify a longer-than-normal timeout for postmaster
142 startup and shutdown.
148 Fix incorrect test for Windows service status
149 in <application>pg_ctl</> (Manuel Mathar)
153 The previous set of minor releases attempted to
154 fix <application>pg_ctl</> to properly determine whether to send log
155 messages to Window's Event Log, but got the test backwards.
161 Fix <application>pgbench</> to correctly handle the combination
162 of <literal>-C</> and <literal>-M prepared</> options (Tom Lane)
168 In <application>pg_upgrade</>, skip creating a deletion script when
169 the new data directory is inside the old data directory (Bruce
174 Blind application of the script in such cases would result in loss of
175 the new data directory.
181 In PL/Perl, properly translate empty Postgres arrays into empty Perl
182 arrays (Alex Hunsaker)
188 Make PL/Python cope with function names that aren't valid Python
189 identifiers (Jim Nasby)
195 Fix multiple mistakes in the statistics returned
196 by <filename>contrib/pgstattuple</>'s <function>pgstatindex()</>
203 Remove dependency on <literal>psed</> in MSVC builds, since it's no
204 longer provided by core Perl (Michael Paquier, Andrew Dunstan)
210 Update time zone data files to <application>tzdata</> release 2016c
211 for DST law changes in Azerbaijan, Chile, Haiti, Palestine, and Russia
212 (Altai, Astrakhan, Kirov, Sakhalin, Ulyanovsk regions), plus
213 historical corrections for Lithuania, Moldova, and Russia
214 (Kaliningrad, Samara, Volgograd).
223 <sect1 id="release-9-3-11">
224 <title>Release 9.3.11</title>
227 <title>Release Date</title>
228 <simpara>2016-02-11</simpara>
232 This release contains a variety of fixes from 9.3.10.
233 For information about new features in the 9.3 major release, see
234 <xref linkend="release-9-3">.
238 <title>Migration to Version 9.3.11</title>
241 A dump/restore is not required for those running 9.3.X.
245 However, if you are upgrading from a version earlier than 9.3.9,
246 see <xref linkend="release-9-3-9">.
252 <title>Changes</title>
258 Fix infinite loops and buffer-overrun problems in regular expressions
263 Very large character ranges in bracket expressions could cause
264 infinite loops in some cases, and memory overwrites in other cases.
271 Perform an immediate shutdown if the <filename>postmaster.pid</> file
272 is removed (Tom Lane)
276 The postmaster now checks every minute or so
277 that <filename>postmaster.pid</> is still there and still contains its
278 own PID. If not, it performs an immediate shutdown, as though it had
279 received <systemitem>SIGQUIT</>. The main motivation for this change
280 is to ensure that failed buildfarm runs will get cleaned up without
281 manual intervention; but it also serves to limit the bad effects if a
282 DBA forcibly removes <filename>postmaster.pid</> and then starts a new
289 In <literal>SERIALIZABLE</> transaction isolation mode, serialization
290 anomalies could be missed due to race conditions during insertions
291 (Kevin Grittner, Thomas Munro)
297 Fix failure to emit appropriate WAL records when doing <literal>ALTER
298 TABLE ... SET TABLESPACE</> for unlogged relations (Michael Paquier,
303 Even though the relation's data is unlogged, the move must be logged or
304 the relation will be inaccessible after a standby is promoted to master.
310 Fix possible misinitialization of unlogged relations at the end of
311 crash recovery (Andres Freund, Michael Paquier)
317 Ensure walsender slots are fully re-initialized when being re-used
324 Fix <command>ALTER COLUMN TYPE</> to reconstruct inherited check
325 constraints properly (Tom Lane)
331 Fix <command>REASSIGN OWNED</> to change ownership of composite types
332 properly (Álvaro Herrera)
338 Fix <command>REASSIGN OWNED</> and <command>ALTER OWNER</> to correctly
339 update granted-permissions lists when changing owners of data types,
340 foreign data wrappers, or foreign servers (Bruce Momjian,
341 Álvaro Herrera)
347 Fix <command>REASSIGN OWNED</> to ignore foreign user mappings,
348 rather than fail (Álvaro Herrera)
354 Fix possible crash after doing query rewrite for an updatable view
361 Fix planner's handling of <literal>LATERAL</> references (Tom
366 This fixes some corner cases that led to <quote>failed to build any
367 N-way joins</> or <quote>could not devise a query plan</> planner
374 Add more defenses against bad planner cost estimates for GIN index
375 scans when the index's internal statistics are very out-of-date
382 Make planner cope with hypothetical GIN indexes suggested by an index
383 advisor plug-in (Julien Rouhaud)
389 Speed up generation of unique table aliases in <command>EXPLAIN</> and
390 rule dumping, and ensure that generated aliases do not
391 exceed <literal>NAMEDATALEN</> (Tom Lane)
397 Fix dumping of whole-row Vars in <literal>ROW()</>
398 and <literal>VALUES()</> lists (Tom Lane)
404 Fix possible internal overflow in <type>numeric</> division
411 Fix enforcement of restrictions inside parentheses within regular
412 expression lookahead constraints (Tom Lane)
416 Lookahead constraints aren't allowed to contain backrefs, and
417 parentheses within them are always considered non-capturing, according
418 to the manual. However, the code failed to handle these cases properly
419 inside a parenthesized subexpression, and would give unexpected
426 Conversion of regular expressions to indexscan bounds could produce
427 incorrect bounds from regexps containing lookahead constraints
434 Fix regular-expression compiler to handle loops of constraint arcs
439 The code added for CVE-2007-4772 was both incomplete, in that it didn't
440 handle loops involving more than one state, and incorrect, in that it
441 could cause assertion failures (though there seem to be no bad
442 consequences of that in a non-assert build). Multi-state loops would
443 cause the compiler to run until the query was canceled or it reached
444 the too-many-states error condition.
450 Improve memory-usage accounting in regular-expression compiler
455 This causes the code to emit <quote>regular expression is too
456 complex</> errors in some cases that previously used unreasonable
457 amounts of time and memory.
463 Improve performance of regular-expression compiler (Tom Lane)
469 Make <literal>%h</> and <literal>%r</> escapes
470 in <varname>log_line_prefix</> work for messages emitted due
471 to <varname>log_connections</> (Tom Lane)
475 Previously, <literal>%h</>/<literal>%r</> started to work just after a
476 new session had emitted the <quote>connection received</> log message;
477 now they work for that message too.
483 On Windows, ensure the shared-memory mapping handle gets closed in
484 child processes that don't need it (Tom Lane, Amit Kapila)
488 This oversight resulted in failure to recover from crashes
489 whenever <varname>logging_collector</> is turned on.
495 Fix possible failure to detect socket EOF in non-blocking mode on
500 It's not entirely clear whether this problem can happen in pre-9.5
501 branches, but if it did, the symptom would be that a walsender process
502 would wait indefinitely rather than noticing a loss of connection.
508 Avoid leaking a token handle during SSPI authentication
515 In <application>psql</>, ensure that <application>libreadline</>'s idea
516 of the screen size is updated when the terminal window size changes
521 Previously, <application>libreadline</> did not notice if the window
522 was resized during query output, leading to strange behavior during
523 later input of multiline queries.
529 Fix <application>psql</>'s <literal>\det</> command to interpret its
530 pattern argument the same way as other <literal>\d</> commands with
531 potentially schema-qualified patterns do (Reece Hart)
537 Avoid possible crash in <application>psql</>'s <literal>\c</> command
538 when previous connection was via Unix socket and command specifies a
539 new hostname and same username (Tom Lane)
545 In <literal>pg_ctl start -w</>, test child process status directly
546 rather than relying on heuristics (Tom Lane, Michael Paquier)
550 Previously, <application>pg_ctl</> relied on an assumption that the new
551 postmaster would always create <filename>postmaster.pid</> within five
552 seconds. But that can fail on heavily-loaded systems,
553 causing <application>pg_ctl</> to report incorrectly that the
554 postmaster failed to start.
558 Except on Windows, this change also means that a <literal>pg_ctl start
559 -w</> done immediately after another such command will now reliably
560 fail, whereas previously it would report success if done within two
561 seconds of the first command.
567 In <literal>pg_ctl start -w</>, don't attempt to use a wildcard listen
568 address to connect to the postmaster (Kondo Yuta)
572 On Windows, <application>pg_ctl</> would fail to detect postmaster
573 startup if <varname>listen_addresses</> is set to <literal>0.0.0.0</>
574 or <literal>::</>, because it would try to use that value verbatim as
575 the address to connect to, which doesn't work. Instead assume
576 that <literal>127.0.0.1</> or <literal>::1</>, respectively, is the
583 In <application>pg_ctl</> on Windows, check service status to decide
584 where to send output, rather than checking if standard output is a
585 terminal (Michael Paquier)
591 In <application>pg_dump</> and <application>pg_basebackup</>, adopt
592 the GNU convention for handling tar-archive members exceeding 8GB
597 The POSIX standard for <literal>tar</> file format does not allow
598 archive member files to exceed 8GB, but most modern implementations
599 of <application>tar</> support an extension that fixes that. Adopt
600 this extension so that <application>pg_dump</> with <option>-Ft</> no
601 longer fails on tables with more than 8GB of data, and so
602 that <application>pg_basebackup</> can handle files larger than 8GB.
603 In addition, fix some portability issues that could cause failures for
604 members between 4GB and 8GB on some platforms. Potentially these
605 problems could cause unrecoverable data loss due to unreadable backup
612 Fix assorted corner-case bugs in <application>pg_dump</>'s processing
613 of extension member objects (Tom Lane)
619 Make <application>pg_dump</> mark a view's triggers as needing to be
620 processed after its rule, to prevent possible failure during
621 parallel <application>pg_restore</> (Tom Lane)
627 Ensure that relation option values are properly quoted
628 in <application>pg_dump</> (Kouhei Sutou, Tom Lane)
632 A reloption value that isn't a simple identifier or number could lead
633 to dump/reload failures due to syntax errors in CREATE statements
634 issued by <application>pg_dump</>. This is not an issue with any
635 reloption currently supported by core <productname>PostgreSQL</>, but
636 extensions could allow reloptions that cause the problem.
642 Avoid repeated password prompts during parallel <application>pg_dump</>
649 Fix <application>pg_upgrade</>'s file-copying code to handle errors
650 properly on Windows (Bruce Momjian)
656 Install guards in <application>pgbench</> against corner-case overflow
657 conditions during evaluation of script-specified division or modulo
658 operators (Fabien Coelho, Michael Paquier)
664 Fix failure to localize messages emitted
665 by <application>pg_receivexlog</> and <application>pg_recvlogical</>
672 Avoid dump/reload problems when using both <application>plpython2</>
673 and <application>plpython3</> (Tom Lane)
677 In principle, both versions of <application>PL/Python</> can be used in
678 the same database, though not in the same session (because the two
679 versions of <application>libpython</> cannot safely be used concurrently).
680 However, <application>pg_restore</> and <application>pg_upgrade</> both
681 do things that can fall foul of the same-session restriction. Work
682 around that by changing the timing of the check.
688 Fix <application>PL/Python</> regression tests to pass with Python 3.5
695 Fix premature clearing of <application>libpq</>'s input buffer when
696 socket EOF is seen (Tom Lane)
700 This mistake caused <application>libpq</> to sometimes not report the
701 backend's final error message before reporting <quote>server closed the
702 connection unexpectedly</>.
708 Prevent certain <application>PL/Java</> parameters from being set by
709 non-superusers (Noah Misch)
713 This change mitigates a <application>PL/Java</> security bug
714 (CVE-2016-0766), which was fixed in <application>PL/Java</> by marking
715 these parameters as superuser-only. To fix the security hazard for
716 sites that update <productname>PostgreSQL</> more frequently
717 than <application>PL/Java</>, make the core code aware of them also.
723 Improve <application>libpq</>'s handling of out-of-memory situations
724 (Michael Paquier, Amit Kapila, Heikki Linnakangas)
730 Fix order of arguments
731 in <application>ecpg</>-generated <literal>typedef</> statements
738 Use <literal>%g</> not <literal>%f</> format
739 in <application>ecpg</>'s <function>PGTYPESnumeric_from_double()</>
746 Fix <application>ecpg</>-supplied header files to not contain comments
747 continued from a preprocessor directive line onto the next line
752 Such a comment is rejected by <application>ecpg</>. It's not yet clear
753 whether <application>ecpg</> itself should be changed.
759 Fix <function>hstore_to_json_loose()</>'s test for whether
760 an <type>hstore</> value can be converted to a JSON number (Tom Lane)
764 Previously this function could be fooled by non-alphanumeric trailing
765 characters, leading to emitting syntactically-invalid JSON.
771 Ensure that <filename>contrib/pgcrypto</>'s <function>crypt()</>
772 function can be interrupted by query cancel (Andreas Karlsson)
778 Accept <application>flex</> versions later than 2.5.x
779 (Tom Lane, Michael Paquier)
783 Now that flex 2.6.0 has been released, the version checks in our build
784 scripts needed to be adjusted.
790 Improve reproducibility of build output by ensuring filenames are given
791 to the linker in a fixed order (Christoph Berg)
795 This avoids possible bitwise differences in the produced executable
796 files from one build to the next.
802 Install our <filename>missing</> script where PGXS builds can find it
807 This allows sane behavior in a PGXS build done on a machine where build
808 tools such as <application>bison</> are missing.
814 Ensure that <filename>dynloader.h</> is included in the installed
815 header files in MSVC builds (Bruce Momjian, Michael Paquier)
821 Add variant regression test expected-output file to match behavior of
822 current <application>libxml2</> (Tom Lane)
826 The fix for <application>libxml2</>'s CVE-2015-7499 causes it not to
827 output error context reports in some cases where it used to do so.
828 This seems to be a bug, but we'll probably have to live with it for
829 some time, so work around it.
835 Update time zone data files to <application>tzdata</> release 2016a for
836 DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal
837 Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.
846 <sect1 id="release-9-3-10">
847 <title>Release 9.3.10</title>
850 <title>Release Date</title>
851 <simpara>2015-10-08</simpara>
855 This release contains a variety of fixes from 9.3.9.
856 For information about new features in the 9.3 major release, see
857 <xref linkend="release-9-3">.
861 <title>Migration to Version 9.3.10</title>
864 A dump/restore is not required for those running 9.3.X.
868 However, if you are upgrading from a version earlier than 9.3.9,
869 see <xref linkend="release-9-3-9">.
875 <title>Changes</title>
881 Guard against stack overflows in <type>json</> parsing
886 If an application constructs PostgreSQL <type>json</>
887 or <type>jsonb</> values from arbitrary user input, the application's
888 users can reliably crash the PostgreSQL server, causing momentary
889 denial of service. (CVE-2015-5289)
895 Fix <filename>contrib/pgcrypto</> to detect and report
896 too-short <function>crypt()</> salts (Josh Kupershmidt)
900 Certain invalid salt arguments crashed the server or disclosed a few
901 bytes of server memory. We have not ruled out the viability of
902 attacks that arrange for presence of confidential information in the
903 disclosed bytes, but they seem unlikely. (CVE-2015-5288)
909 Fix subtransaction cleanup after a portal (cursor) belonging to an
910 outer subtransaction fails (Tom Lane, Michael Paquier)
914 A function executed in an outer-subtransaction cursor could cause an
915 assertion failure or crash by referencing a relation created within an
916 inner subtransaction.
922 Ensure all relations referred to by an updatable view are properly
923 locked during an update statement (Dean Rasheed)
929 Fix insertion of relations into the relation cache <quote>init file</>
934 An oversight in a patch in the most recent minor releases
935 caused <structname>pg_trigger_tgrelid_tgname_index</> to be omitted
936 from the init file. Subsequent sessions detected this, then deemed the
937 init file to be broken and silently ignored it, resulting in a
938 significant degradation in session startup time. In addition to fixing
939 the bug, install some guards so that any similar future mistake will be
946 Avoid O(N^2) behavior when inserting many tuples into a SPI query
953 Improve <command>LISTEN</> startup time when there are many unread
954 notifications (Matt Newell)
960 Fix performance problem when a session alters large numbers of foreign
961 key constraints (Jan Wieck, Tom Lane)
965 This was seen primarily when restoring <application>pg_dump</> output
966 for databases with many thousands of tables.
972 Disable SSL renegotiation by default (Michael Paquier, Andres Freund)
976 While use of SSL renegotiation is a good idea in theory, we have seen
977 too many bugs in practice, both in the underlying OpenSSL library and
978 in our usage of it. Renegotiation will be removed entirely in 9.5 and
979 later. In the older branches, just change the default value
980 of <varname>ssl_renegotiation_limit</> to zero (disabled).
986 Lower the minimum values of the <literal>*_freeze_max_age</> parameters
991 This is mainly to make tests of related behavior less time-consuming,
992 but it may also be of value for installations with limited disk space.
998 Limit the maximum value of <varname>wal_buffers</> to 2GB to avoid
999 server crashes (Josh Berkus)
1005 Avoid logging complaints when a parameter that can only be set at
1006 server start appears multiple times in <filename>postgresql.conf</>,
1007 and fix counting of line numbers after an <literal>include_dir</>
1008 directive (Tom Lane)
1014 Fix rare internal overflow in multiplication of <type>numeric</> values
1021 Guard against hard-to-reach stack overflows involving record types,
1022 range types, <type>json</>, <type>jsonb</>, <type>tsquery</>,
1023 <type>ltxtquery</> and <type>query_int</> (Noah Misch)
1029 Fix handling of <literal>DOW</> and <literal>DOY</> in datetime input
1034 These tokens aren't meant to be used in datetime values, but previously
1035 they resulted in opaque internal error messages rather
1036 than <quote>invalid input syntax</>.
1042 Add more query-cancel checks to regular expression matching (Tom Lane)
1048 Add recursion depth protections to regular expression, <literal>SIMILAR
1049 TO</>, and <literal>LIKE</> matching (Tom Lane)
1053 Suitable search patterns and a low stack depth limit could lead to
1054 stack-overrun crashes.
1060 Fix potential infinite loop in regular expression execution (Tom Lane)
1064 A search pattern that can apparently match a zero-length string, but
1065 actually doesn't match because of a back reference, could lead to an
1072 In regular expression execution, correctly record match data for
1073 capturing parentheses within a quantifier even when the match is
1074 zero-length (Tom Lane)
1080 Fix low-memory failures in regular expression compilation
1081 (Andreas Seltenreich)
1087 Fix low-probability memory leak during regular expression execution
1094 Fix rare low-memory failure in lock cleanup during transaction abort
1101 Fix <quote>unexpected out-of-memory situation during sort</> errors
1102 when using tuplestores with small <varname>work_mem</> settings (Tom
1109 Fix very-low-probability stack overrun in <function>qsort</> (Tom Lane)
1115 Fix <quote>invalid memory alloc request size</> failure in hash joins
1116 with large <varname>work_mem</> settings (Tomas Vondra, Tom Lane)
1122 Fix assorted planner bugs (Tom Lane)
1126 These mistakes could lead to incorrect query plans that would give wrong
1127 answers, or to assertion failures in assert-enabled builds, or to odd
1128 planner errors such as <quote>could not devise a query plan for the
1129 given query</>, <quote>could not find pathkey item to
1130 sort</>, <quote>plan should not reference subplan's variable</>,
1131 or <quote>failed to assign all NestLoopParams to plan nodes</>.
1132 Thanks are due to Andreas Seltenreich and Piotr Stefaniak for fuzz
1133 testing that exposed these problems.
1139 Improve planner's performance for <command>UPDATE</>/<command>DELETE</>
1140 on large inheritance sets (Tom Lane, Dean Rasheed)
1146 Ensure standby promotion trigger files are removed at postmaster
1147 startup (Michael Paquier, Fujii Masao)
1151 This prevents unwanted promotion from occurring if these files appear
1152 in a database backup that is used to initialize a new standby server.
1158 During postmaster shutdown, ensure that per-socket lock files are
1159 removed and listen sockets are closed before we remove
1160 the <filename>postmaster.pid</> file (Tom Lane)
1164 This avoids race-condition failures if an external script attempts to
1165 start a new postmaster as soon as <literal>pg_ctl stop</> returns.
1171 Fix postmaster's handling of a startup-process crash during crash
1176 If, during a crash recovery cycle, the startup process crashes without
1177 having restored database consistency, we'd try to launch a new startup
1178 process, which typically would just crash again, leading to an infinite
1185 Make emergency autovacuuming for multixact wraparound more robust
1192 Do not print a <literal>WARNING</> when an autovacuum worker is already
1193 gone when we attempt to signal it, and reduce log verbosity for such
1200 Prevent autovacuum launcher from sleeping unduly long if the server
1201 clock is moved backwards a large amount (Álvaro Herrera)
1207 Ensure that cleanup of a GIN index's pending-insertions list is
1208 interruptable by cancel requests (Jeff Janes)
1214 Allow all-zeroes pages in GIN indexes to be reused (Heikki Linnakangas)
1218 Such a page might be left behind after a crash.
1224 Fix handling of all-zeroes pages in SP-GiST indexes (Heikki
1229 <command>VACUUM</> attempted to recycle such pages, but did so in a
1230 way that wasn't crash-safe.
1236 Fix off-by-one error that led to otherwise-harmless warnings
1237 about <quote>apparent wraparound</> in subtrans/multixact truncation
1244 Fix misreporting of <command>CONTINUE</> and <command>MOVE</> statement
1245 types in <application>PL/pgSQL</>'s error context messages
1246 (Pavel Stehule, Tom Lane)
1252 Fix <application>PL/Perl</> to handle non-<acronym>ASCII</> error
1253 message texts correctly (Alex Hunsaker)
1259 Fix <application>PL/Python</> crash when returning the string
1260 representation of a <type>record</> result (Tom Lane)
1266 Fix some places in <application>PL/Tcl</> that neglected to check for
1267 failure of <function>malloc()</> calls (Michael Paquier, Álvaro
1274 In <filename>contrib/isn</>, fix output of ISBN-13 numbers that begin
1275 with 979 (Fabien Coelho)
1279 EANs beginning with 979 (but not 9790) are considered ISBNs, but they
1280 must be printed in the new 13-digit format, not the 10-digit format.
1286 Improve <filename>contrib/postgres_fdw</>'s handling of
1287 collation-related decisions (Tom Lane)
1291 The main user-visible effect is expected to be that comparisons
1292 involving <type>varchar</> columns will be sent to the remote server
1293 for execution in more cases than before.
1299 Improve <application>libpq</>'s handling of out-of-memory conditions
1300 (Michael Paquier, Heikki Linnakangas)
1306 Fix memory leaks and missing out-of-memory checks
1307 in <application>ecpg</> (Michael Paquier)
1313 Fix <application>psql</>'s code for locale-aware formatting of numeric
1318 The formatting code invoked by <literal>\pset numericlocale on</>
1319 did the wrong thing for some uncommon cases such as numbers with an
1320 exponent but no decimal point. It could also mangle already-localized
1321 output from the <type>money</> data type.
1327 Prevent crash in <application>psql</>'s <command>\c</> command when
1328 there is no current connection (Noah Misch)
1334 Make <application>pg_dump</> handle inherited <literal>NOT VALID</>
1335 check constraints correctly (Tom Lane)
1341 Fix selection of default <application>zlib</> compression level
1342 in <application>pg_dump</>'s directory output format (Andrew Dunstan)
1348 Ensure that temporary files created during a <application>pg_dump</>
1349 run with <acronym>tar</>-format output are not world-readable (Michael
1356 Fix <application>pg_dump</> and <application>pg_upgrade</> to support
1357 cases where the <literal>postgres</> or <literal>template1</> database
1358 is in a non-default tablespace (Marti Raudsepp, Bruce Momjian)
1364 Fix <application>pg_dump</> to handle object privileges sanely when
1365 dumping from a server too old to have a particular privilege type
1370 When dumping data types from pre-9.2 servers, and when dumping
1371 functions or procedural languages from pre-7.3
1372 servers, <application>pg_dump</> would
1373 produce <command>GRANT</>/<command>REVOKE</> commands that revoked the
1374 owner's grantable privileges and instead granted all privileges
1375 to <literal>PUBLIC</>. Since the privileges involved are
1376 just <literal>USAGE</> and <literal>EXECUTE</>, this isn't a security
1377 problem, but it's certainly a surprising representation of the older
1378 systems' behavior. Fix it to leave the default privilege state alone
1385 Fix <application>pg_dump</> to dump shell types (Tom Lane)
1389 Shell types (that is, not-yet-fully-defined types) aren't useful for
1390 much, but nonetheless <application>pg_dump</> should dump them.
1396 Fix assorted minor memory leaks in <application>pg_dump</> and other
1397 client-side programs (Michael Paquier)
1403 Fix spinlock assembly code for PPC hardware to be compatible
1404 with <acronym>AIX</>'s native assembler (Tom Lane)
1408 Building with <application>gcc</> didn't work if <application>gcc</>
1409 had been configured to use the native assembler, which is becoming more
1416 On <acronym>AIX</>, test the <literal>-qlonglong</> compiler option
1417 rather than just assuming it's safe to use (Noah Misch)
1423 On <acronym>AIX</>, use <literal>-Wl,-brtllib</> link option to allow
1424 symbols to be resolved at runtime (Noah Misch)
1428 Perl relies on this ability in 5.8.0 and later.
1434 Avoid use of inline functions when compiling with
1435 32-bit <application>xlc</>, due to compiler bugs (Noah Misch)
1441 Use <filename>librt</> for <function>sched_yield()</> when necessary,
1442 which it is on some Solaris versions (Oskari Saarenmaa)
1448 Fix Windows <filename>install.bat</> script to handle target directory
1449 names that contain spaces (Heikki Linnakangas)
1455 Make the numeric form of the <productname>PostgreSQL</> version number
1456 (e.g., <literal>90405</>) readily available to extension Makefiles,
1457 as a variable named <varname>VERSION_NUM</> (Michael Paquier)
1463 Update time zone data files to <application>tzdata</> release 2015g for
1464 DST law changes in Cayman Islands, Fiji, Moldova, Morocco, Norfolk
1465 Island, North Korea, Turkey, and Uruguay. There is a new zone name
1466 <literal>America/Fort_Nelson</> for the Canadian Northern Rockies.
1475 <sect1 id="release-9-3-9">
1476 <title>Release 9.3.9</title>
1479 <title>Release Date</title>
1480 <simpara>2015-06-12</simpara>
1484 This release contains a small number of fixes from 9.3.8.
1485 For information about new features in the 9.3 major release, see
1486 <xref linkend="release-9-3">.
1490 <title>Migration to Version 9.3.9</title>
1493 A dump/restore is not required for those running 9.3.X.
1497 However, if you are upgrading an installation that was previously
1498 upgraded using a <application>pg_upgrade</> version between 9.3.0 and
1499 9.3.4 inclusive, see the first changelog entry below.
1503 Also, if you are upgrading from a version earlier than 9.3.7,
1504 see <xref linkend="release-9-3-7">.
1510 <title>Changes</title>
1516 Fix possible failure to recover from an inconsistent database state
1521 Recent <productname>PostgreSQL</> releases introduced mechanisms to
1522 protect against multixact wraparound, but some of that code did not
1523 account for the possibility that it would need to run during crash
1524 recovery, when the database may not be in a consistent state. This
1525 could result in failure to restart after a crash, or failure to start
1526 up a secondary server. The lingering effects of a previously-fixed
1527 bug in <application>pg_upgrade</> could also cause such a failure, in
1528 installations that had used <application>pg_upgrade</> versions
1529 between 9.3.0 and 9.3.4.
1533 The <application>pg_upgrade</> bug in question was that it would
1534 set <literal>oldestMultiXid</> to 1 in <filename>pg_control</> even
1535 if the true value should be higher. With the fixes introduced in
1536 this release, such a situation will result in immediate emergency
1537 autovacuuming until a correct <literal>oldestMultiXid</> value can be
1538 determined. If that would pose a hardship, users can avoid it by
1539 doing manual vacuuming <emphasis>before</> upgrading to this release.
1545 Check whether <application>pg_controldata</> reports <quote>Latest
1546 checkpoint's oldestMultiXid</> to be 1. If not, there's nothing
1552 Look in <filename>PGDATA/pg_multixact/offsets</> to see if there's a
1553 file named <filename>0000</>. If there is, there's nothing to do.
1558 Otherwise, for each table that has
1559 <structname>pg_class</>.<structfield>relminmxid</> equal to 1,
1560 <command>VACUUM</> that table with
1561 both <xref linkend="guc-vacuum-multixact-freeze-min-age">
1562 and <xref linkend="guc-vacuum-multixact-freeze-table-age"> set to
1563 zero. (You can use the vacuum cost delay parameters described
1564 in <xref linkend="runtime-config-resource-vacuum-cost"> to reduce
1565 the performance consequences for concurrent sessions.) You must
1566 use <productname>PostgreSQL</> 9.3.5 or later to perform this step.
1575 Fix rare failure to invalidate relation cache init file (Tom Lane)
1579 With just the wrong timing of concurrent activity, a <command>VACUUM
1580 FULL</> on a system catalog might fail to update the <quote>init file</>
1581 that's used to avoid cache-loading work for new sessions. This would
1582 result in later sessions being unable to access that catalog at all.
1583 This is a very ancient bug, but it's so hard to trigger that no
1584 reproducible case had been seen until recently.
1590 Avoid deadlock between incoming sessions and <literal>CREATE/DROP
1591 DATABASE</> (Tom Lane)
1595 A new session starting in a database that is the target of
1596 a <command>DROP DATABASE</> command, or is the template for
1597 a <command>CREATE DATABASE</> command, could cause the command to wait
1598 for five seconds and then fail, even if the new session would have
1605 Improve planner's cost estimates for semi-joins and anti-joins with
1606 inner indexscans (Tom Lane, Tomas Vondra)
1610 This type of plan is quite cheap when all the join clauses are used
1611 as index scan conditions, even if the inner scan would nominally
1612 fetch many rows, because the executor will stop after obtaining one
1613 row. The planner only partially accounted for that effect, and would
1614 therefore overestimate the cost, leading it to possibly choose some
1615 other much less efficient plan type.
1624 <sect1 id="release-9-3-8">
1625 <title>Release 9.3.8</title>
1628 <title>Release Date</title>
1629 <simpara>2015-06-04</simpara>
1633 This release contains a small number of fixes from 9.3.7.
1634 For information about new features in the 9.3 major release, see
1635 <xref linkend="release-9-3">.
1639 <title>Migration to Version 9.3.8</title>
1642 A dump/restore is not required for those running 9.3.X.
1646 However, if you are upgrading from a version earlier than 9.3.7,
1647 see <xref linkend="release-9-3-7">.
1653 <title>Changes</title>
1659 Avoid failures while <function>fsync</>'ing data directory during
1660 crash restart (Abhijit Menon-Sen, Tom Lane)
1664 In the previous minor releases we added a patch to <function>fsync</>
1665 everything in the data directory after a crash. Unfortunately its
1666 response to any error condition was to fail, thereby preventing the
1667 server from starting up, even when the problem was quite harmless.
1668 An example is that an unwritable file in the data directory would
1669 prevent restart on some platforms; but it is common to make SSL
1670 certificate files unwritable by the server. Revise this behavior so
1671 that permissions failures are ignored altogether, and other types of
1672 failures are logged but do not prevent continuing.
1676 Also apply the same rules in <literal>initdb --sync-only</>.
1677 This case is less critical but it should act similarly.
1683 Fix <function>pg_get_functiondef()</> to show
1684 functions' <literal>LEAKPROOF</> property, if set (Jeevan Chalke)
1690 Remove <application>configure</>'s check prohibiting linking to a
1691 threaded <application>libpython</>
1692 on <systemitem class="osname">OpenBSD</> (Tom Lane)
1696 The failure this restriction was meant to prevent seems to not be a
1697 problem anymore on current <systemitem class="osname">OpenBSD</>
1703 Author: Tom Lane <tgl@sss.pgh.pa.us>
1704 Branch: REL9_3_STABLE [c6b7b9a9c] 2015-05-21 20:41:55 -0400
1705 Branch: REL9_2_STABLE [b78fbfe65] 2015-05-21 20:41:55 -0400
1706 Branch: REL9_1_STABLE [2c2c5f0e0] 2015-05-21 20:41:55 -0400
1707 Branch: REL9_0_STABLE [4dddf8552] 2015-05-21 20:41:55 -0400
1712 Allow <application>libpq</> to use TLS protocol versions beyond v1
1717 For a long time, <application>libpq</> was coded so that the only SSL
1718 protocol it would allow was TLS v1. Now that newer TLS versions are
1719 becoming popular, allow it to negotiate the highest commonly-supported
1720 TLS version with the server. (<productname>PostgreSQL</> servers were
1721 already capable of such negotiation, so no change is needed on the
1722 server side.) This is a back-patch of a change already released in
1732 <sect1 id="release-9-3-7">
1733 <title>Release 9.3.7</title>
1736 <title>Release Date</title>
1737 <simpara>2015-05-22</simpara>
1741 This release contains a variety of fixes from 9.3.6.
1742 For information about new features in the 9.3 major release, see
1743 <xref linkend="release-9-3">.
1747 <title>Migration to Version 9.3.7</title>
1750 A dump/restore is not required for those running 9.3.X.
1754 However, if you use <filename>contrib/citext</>'s
1755 <function>regexp_matches()</> functions, see the changelog entry below
1760 Also, if you are upgrading from a version earlier than 9.3.6,
1761 see <xref linkend="release-9-3-6">.
1767 <title>Changes</title>
1773 Avoid possible crash when client disconnects just before the
1774 authentication timeout expires (Benkocs Norbert Attila)
1778 If the timeout interrupt fired partway through the session shutdown
1779 sequence, SSL-related state would be freed twice, typically causing a
1780 crash and hence denial of service to other sessions. Experimentation
1781 shows that an unauthenticated remote attacker could trigger the bug
1782 somewhat consistently, hence treat as security issue.
1789 Improve detection of system-call failures (Noah Misch)
1793 Our replacement implementation of <function>snprintf()</> failed to
1794 check for errors reported by the underlying system library calls;
1795 the main case that might be missed is out-of-memory situations.
1796 In the worst case this might lead to information exposure, due to our
1797 code assuming that a buffer had been overwritten when it hadn't been.
1798 Also, there were a few places in which security-relevant calls of other
1799 system library functions did not check for failure.
1803 It remains possible that some calls of the <function>*printf()</>
1804 family of functions are vulnerable to information disclosure if an
1805 out-of-memory error occurs at just the wrong time. We judge the risk
1806 to not be large, but will continue analysis in this area.
1813 In <filename>contrib/pgcrypto</>, uniformly report decryption failures
1814 as <quote>Wrong key or corrupt data</> (Noah Misch)
1818 Previously, some cases of decryption with an incorrect key could report
1819 other error message texts. It has been shown that such variance in
1820 error reports can aid attackers in recovering keys from other systems.
1821 While it's unknown whether <filename>pgcrypto</>'s specific behaviors
1822 are likewise exploitable, it seems better to avoid the risk by using a
1823 one-size-fits-all message.
1830 Protect against wraparound of multixact member IDs
1831 (Álvaro Herrera, Robert Haas, Thomas Munro)
1835 Under certain usage patterns, the existing defenses against this might
1836 be insufficient, allowing <filename>pg_multixact/members</> files to be
1837 removed too early, resulting in data loss.
1838 The fix for this includes modifying the server to fail transactions
1839 that would result in overwriting old multixact member ID data, and
1840 improving autovacuum to ensure it will act proactively to prevent
1841 multixact member ID wraparound, as it does for transaction ID
1848 Fix incorrect declaration of <filename>contrib/citext</>'s
1849 <function>regexp_matches()</> functions (Tom Lane)
1853 These functions should return <type>setof text[]</>, like the core
1854 functions they are wrappers for; but they were incorrectly declared as
1855 returning just <type>text[]</>. This mistake had two results: first,
1856 if there was no match you got a scalar null result, whereas what you
1857 should get is an empty set (zero rows). Second, the <literal>g</> flag
1858 was effectively ignored, since you would get only one result array even
1859 if there were multiple matches.
1863 While the latter behavior is clearly a bug, there might be applications
1864 depending on the former behavior; therefore the function declarations
1865 will not be changed by default until <productname>PostgreSQL</> 9.5.
1866 In pre-9.5 branches, the old behavior exists in version 1.0 of
1867 the <literal>citext</> extension, while we have provided corrected
1868 declarations in version 1.1 (which is <emphasis>not</> installed by
1869 default). To adopt the fix in pre-9.5 branches, execute
1870 <literal>ALTER EXTENSION citext UPDATE TO '1.1'</> in each database in
1871 which <literal>citext</> is installed. (You can also <quote>update</>
1872 back to 1.0 if you need to undo that.) Be aware that either update
1873 direction will require dropping and recreating any views or rules that
1874 use <filename>citext</>'s <function>regexp_matches()</> functions.
1880 Fix incorrect checking of deferred exclusion constraints after a HOT
1885 If a new row that potentially violates a deferred exclusion constraint
1886 is HOT-updated (that is, no indexed columns change and the row can be
1887 stored back onto the same table page) later in the same transaction,
1888 the exclusion constraint would be reported as violated when the check
1889 finally occurred, even if the row(s) the new row originally conflicted
1890 with had been deleted.
1896 Fix planning of star-schema-style queries (Tom Lane)
1900 Sometimes, efficient scanning of a large table requires that index
1901 parameters be provided from more than one other table (commonly,
1902 dimension tables whose keys are needed to index a large fact table).
1903 The planner should be able to find such plans, but an overly
1904 restrictive search heuristic prevented it.
1910 Prevent improper reordering of antijoins (NOT EXISTS joins) versus
1911 other outer joins (Tom Lane)
1915 This oversight in the planner has been observed to cause <quote>could
1916 not find RelOptInfo for given relids</> errors, but it seems possible
1917 that sometimes an incorrect query plan might get past that consistency
1918 check and result in silently-wrong query output.
1924 Fix incorrect matching of subexpressions in outer-join plan nodes
1929 Previously, if textually identical non-strict subexpressions were used
1930 both above and below an outer join, the planner might try to re-use
1931 the value computed below the join, which would be incorrect because the
1932 executor would force the value to NULL in case of an unmatched outer row.
1938 Fix GEQO planner to cope with failure of its join order heuristic
1943 This oversight has been seen to lead to <quote>failed to join all
1944 relations together</> errors in queries involving <literal>LATERAL</>,
1945 and that might happen in other cases as well.
1951 Fix possible deadlock at startup
1952 when <literal>max_prepared_transactions</> is too small
1953 (Heikki Linnakangas)
1959 Don't archive useless preallocated WAL files after a timeline switch
1960 (Heikki Linnakangas)
1966 Recursively <function>fsync()</> the data directory after a crash
1967 (Abhijit Menon-Sen, Robert Haas)
1971 This ensures consistency if another crash occurs shortly later. (The
1972 second crash would have to be a system-level crash, not just a database
1973 crash, for there to be a problem.)
1979 Fix autovacuum launcher's possible failure to shut down, if an error
1980 occurs after it receives SIGTERM (Álvaro Herrera)
1986 Cope with unexpected signals in <function>LockBufferForCleanup()</>
1991 This oversight could result in spurious errors about <quote>multiple
1992 backends attempting to wait for pincount 1</>.
1998 Fix crash when doing <literal>COPY IN</> to a table with check
1999 constraints that contain whole-row references (Tom Lane)
2003 The known failure case only crashes in 9.4 and up, but there is very
2004 similar code in 9.3 and 9.2, so back-patch those branches as well.
2010 Avoid waiting for WAL flush or synchronous replication during commit of
2011 a transaction that was read-only so far as the user is concerned
2016 Previously, a delay could occur at commit in transactions that had
2017 written WAL due to HOT page pruning, leading to undesirable effects
2018 such as sessions getting stuck at startup if all synchronous replicas
2019 are down. Sessions have also been observed to get stuck in catchup
2020 interrupt processing when using synchronous replication; this will fix
2021 that problem as well.
2027 Fix crash when manipulating hash indexes on temporary tables
2028 (Heikki Linnakangas)
2034 Fix possible failure during hash index bucket split, if other processes
2035 are modifying the index concurrently (Tom Lane)
2041 Check for interrupts while analyzing index expressions (Jeff Janes)
2045 <command>ANALYZE</> executes index expressions many times; if there are
2046 slow functions in such an expression, it's desirable to be able to
2047 cancel the <command>ANALYZE</> before that loop finishes.
2053 Ensure <structfield>tableoid</> of a foreign table is reported
2054 correctly when a <literal>READ COMMITTED</> recheck occurs after
2055 locking rows in <command>SELECT FOR UPDATE</>, <command>UPDATE</>,
2056 or <command>DELETE</> (Etsuro Fujita)
2062 Add the name of the target server to object description strings for
2063 foreign-server user mappings (Álvaro Herrera)
2069 Include the schema name in object identity strings for conversions
2070 (Álvaro Herrera)
2076 Recommend setting <literal>include_realm</> to 1 when using
2077 Kerberos/GSSAPI/SSPI authentication (Stephen Frost)
2081 Without this, identically-named users from different realms cannot be
2082 distinguished. For the moment this is only a documentation change, but
2083 it will become the default setting in <productname>PostgreSQL</> 9.5.
2089 Remove code for matching IPv4 <filename>pg_hba.conf</> entries to
2090 IPv4-in-IPv6 addresses (Tom Lane)
2094 This hack was added in 2003 in response to a report that some Linux
2095 kernels of the time would report IPv4 connections as having
2096 IPv4-in-IPv6 addresses. However, the logic was accidentally broken in
2097 9.0. The lack of any field complaints since then shows that it's not
2098 needed anymore. Now we have reports that the broken code causes
2099 crashes on some systems, so let's just remove it rather than fix it.
2100 (Had we chosen to fix it, that would make for a subtle and potentially
2101 security-sensitive change in the effective meaning of
2102 IPv4 <filename>pg_hba.conf</> entries, which does not seem like a good
2103 thing to do in minor releases.)
2109 Report WAL flush, not insert, position in <literal>IDENTIFY_SYSTEM</>
2110 replication command (Heikki Linnakangas)
2114 This avoids a possible startup failure
2115 in <application>pg_receivexlog</>.
2121 While shutting down service on Windows, periodically send status
2122 updates to the Service Control Manager to prevent it from killing the
2123 service too soon; and ensure that <application>pg_ctl</> will wait for
2124 shutdown (Krystian Bigaj)
2130 Reduce risk of network deadlock when using <application>libpq</>'s
2131 non-blocking mode (Heikki Linnakangas)
2135 When sending large volumes of data, it's important to drain the input
2136 buffer every so often, in case the server has sent enough response data
2137 to cause it to block on output. (A typical scenario is that the server
2138 is sending a stream of NOTICE messages during <literal>COPY FROM
2139 STDIN</>.) This worked properly in the normal blocking mode, but not
2140 so much in non-blocking mode. We've modified <application>libpq</>
2141 to opportunistically drain input when it can, but a full defense
2142 against this problem requires application cooperation: the application
2143 should watch for socket read-ready as well as write-ready conditions,
2144 and be sure to call <function>PQconsumeInput()</> upon read-ready.
2150 In <application>libpq</>, fix misparsing of empty values in URI
2151 connection strings (Thomas Fanghaenel)
2157 Fix array handling in <application>ecpg</> (Michael Meskes)
2163 Fix <application>psql</> to sanely handle URIs and conninfo strings as
2164 the first parameter to <command>\connect</>
2165 (David Fetter, Andrew Dunstan, Álvaro Herrera)
2169 This syntax has been accepted (but undocumented) for a long time, but
2170 previously some parameters might be taken from the old connection
2171 instead of the given string, which was agreed to be undesirable.
2177 Suppress incorrect complaints from <application>psql</> on some
2178 platforms that it failed to write <filename>~/.psql_history</> at exit
2183 This misbehavior was caused by a workaround for a bug in very old
2184 (pre-2006) versions of <application>libedit</>. We fixed it by
2185 removing the workaround, which will cause a similar failure to appear
2186 for anyone still using such versions of <application>libedit</>.
2187 Recommendation: upgrade that library, or use <application>libreadline</>.
2193 Fix <application>pg_dump</>'s rule for deciding which casts are
2194 system-provided casts that should not be dumped (Tom Lane)
2200 In <application>pg_dump</>, fix failure to honor <literal>-Z</>
2201 compression level option together with <literal>-Fd</>
2208 Make <application>pg_dump</> consider foreign key relationships
2209 between extension configuration tables while choosing dump order
2210 (Gilles Darold, Michael Paquier, Stephen Frost)
2214 This oversight could result in producing dumps that fail to reload
2215 because foreign key constraints are transiently violated.
2221 Avoid possible <application>pg_dump</> failure when concurrent sessions
2222 are creating and dropping temporary functions (Tom Lane)
2228 Fix dumping of views that are just <literal>VALUES(...)</> but have
2229 column aliases (Tom Lane)
2235 In <application>pg_upgrade</>, force timeline 1 in the new cluster
2240 This change prevents upgrade failures caused by bogus complaints about
2241 missing WAL history files.
2247 In <application>pg_upgrade</>, check for improperly non-connectable
2248 databases before proceeding
2255 In <application>pg_upgrade</>, quote directory paths
2256 properly in the generated <literal>delete_old_cluster</> script
2263 In <application>pg_upgrade</>, preserve database-level freezing info
2269 This oversight could cause missing-clog-file errors for tables within
2270 the <literal>postgres</> and <literal>template1</> databases.
2276 Run <application>pg_upgrade</> and <application>pg_resetxlog</> with
2277 restricted privileges on Windows, so that they don't fail when run by
2278 an administrator (Muhammad Asif Naeem)
2284 Improve handling of <function>readdir()</> failures when scanning
2285 directories in <application>initdb</> and <application>pg_basebackup</>
2292 Fix slow sorting algorithm in <filename>contrib/intarray</> (Tom Lane)
2298 Fix compile failure on Sparc V8 machines (Rob Rowan)
2304 Silence some build warnings on OS X (Tom Lane)
2310 Update time zone data files to <application>tzdata</> release 2015d
2311 for DST law changes in Egypt, Mongolia, and Palestine, plus historical
2312 changes in Canada and Chile. Also adopt revised zone abbreviations for
2313 the America/Adak zone (HST/HDT not HAST/HADT).
2322 <sect1 id="release-9-3-6">
2323 <title>Release 9.3.6</title>
2326 <title>Release Date</title>
2327 <simpara>2015-02-05</simpara>
2331 This release contains a variety of fixes from 9.3.5.
2332 For information about new features in the 9.3 major release, see
2333 <xref linkend="release-9-3">.
2337 <title>Migration to Version 9.3.6</title>
2340 A dump/restore is not required for those running 9.3.X.
2344 However, if you are a Windows user and are using the <quote>Norwegian
2345 (Bokmål)</> locale, manual action is needed after the upgrade to
2346 replace any <quote>Norwegian (Bokmål)_Norway</> locale names stored
2347 in <productname>PostgreSQL</> system catalogs with the plain-ASCII
2348 alias <quote>Norwegian_Norway</>. For details see
2349 <ulink url="http://wiki.postgresql.org/wiki/Changes_To_Norwegian_Locale"></>
2353 Also, if you are upgrading from a version earlier than 9.3.5,
2354 see <xref linkend="release-9-3-5">.
2360 <title>Changes</title>
2365 Author: Bruce Momjian <bruce@momjian.us>
2366 Branch: master [0150ab567] 2015-02-02 10:00:44 -0500
2367 Branch: REL9_4_STABLE [1628a0bbf] 2015-02-02 10:00:49 -0500
2368 Branch: REL9_3_STABLE [b8b580147] 2015-02-02 10:00:50 -0500
2369 Branch: REL9_2_STABLE [5ae3bf1af] 2015-02-02 10:00:50 -0500
2370 Branch: REL9_1_STABLE [037529a11] 2015-02-02 10:00:51 -0500
2371 Branch: REL9_0_STABLE [611e110aa] 2015-02-02 10:00:52 -0500
2372 Author: Bruce Momjian <bruce@momjian.us>
2373 Branch: master [9241c84cb] 2015-02-02 10:00:45 -0500
2374 Branch: REL9_4_STABLE [56d2bee9d] 2015-02-02 10:00:49 -0500
2375 Branch: REL9_3_STABLE [fe2526990] 2015-02-02 10:00:50 -0500
2376 Branch: REL9_2_STABLE [e09651e9d] 2015-02-02 10:00:50 -0500
2377 Branch: REL9_1_STABLE [2ceb63deb] 2015-02-02 10:00:51 -0500
2378 Branch: REL9_0_STABLE [56b970f2e] 2015-02-02 10:00:52 -0500
2383 Fix buffer overruns in <function>to_char()</>
2388 When <function>to_char()</> processes a numeric formatting template
2389 calling for a large number of digits, <productname>PostgreSQL</>
2390 would read past the end of a buffer. When processing a crafted
2391 timestamp formatting template, <productname>PostgreSQL</> would write
2392 past the end of a buffer. Either case could crash the server.
2393 We have not ruled out the possibility of attacks that lead to
2394 privilege escalation, though they seem unlikely.
2400 Author: Bruce Momjian <bruce@momjian.us>
2401 Branch: master [29725b3db] 2015-02-02 10:00:45 -0500
2402 Branch: REL9_4_STABLE [2ac95c83c] 2015-02-02 10:00:49 -0500
2403 Branch: REL9_3_STABLE [bc4d5f2e5] 2015-02-02 10:00:50 -0500
2404 Branch: REL9_2_STABLE [c6c6aa288] 2015-02-02 10:00:51 -0500
2405 Branch: REL9_1_STABLE [98f2479d8] 2015-02-02 10:00:51 -0500
2406 Branch: REL9_0_STABLE [9e05c5063] 2015-02-02 10:00:52 -0500
2411 Fix buffer overrun in replacement <function>*printf()</> functions
2416 <productname>PostgreSQL</> includes a replacement implementation
2417 of <function>printf</> and related functions. This code will overrun
2418 a stack buffer when formatting a floating point number (conversion
2419 specifiers <literal>e</>, <literal>E</>, <literal>f</>, <literal>F</>,
2420 <literal>g</> or <literal>G</>) with requested precision greater than
2421 about 500. This will crash the server, and we have not ruled out the
2422 possibility of attacks that lead to privilege escalation.
2423 A database user can trigger such a buffer overrun through
2424 the <function>to_char()</> SQL function. While that is the only
2425 affected core <productname>PostgreSQL</> functionality, extension
2426 modules that use printf-family functions may be at risk as well.
2430 This issue primarily affects <productname>PostgreSQL</> on Windows.
2431 <productname>PostgreSQL</> uses the system implementation of these
2432 functions where adequate, which it is on other modern platforms.
2438 Author: Noah Misch <noah@leadboat.com>
2439 Branch: master [1dc755158] 2015-02-02 10:00:45 -0500
2440 Branch: REL9_4_STABLE [82806cf4e] 2015-02-02 10:00:49 -0500
2441 Branch: REL9_3_STABLE [6994f0790] 2015-02-02 10:00:50 -0500
2442 Branch: REL9_2_STABLE [d95ebe0ac] 2015-02-02 10:00:51 -0500
2443 Branch: REL9_1_STABLE [11f738a8a] 2015-02-02 10:00:51 -0500
2444 Branch: REL9_0_STABLE [ce6f261cd] 2015-02-02 10:00:52 -0500
2445 Author: Noah Misch <noah@leadboat.com>
2446 Branch: master [8b59672d8] 2015-02-02 10:00:45 -0500
2447 Branch: REL9_4_STABLE [258e294db] 2015-02-02 10:00:49 -0500
2448 Branch: REL9_3_STABLE [a558ad3a7] 2015-02-02 10:00:50 -0500
2449 Branch: REL9_2_STABLE [d1972da8c] 2015-02-02 10:00:51 -0500
2450 Branch: REL9_1_STABLE [8d412e02e] 2015-02-02 10:00:52 -0500
2451 Branch: REL9_0_STABLE [0a3ee8a5f] 2015-02-02 10:00:52 -0500
2456 Fix buffer overruns in <filename>contrib/pgcrypto</>
2457 (Marko Tiikkaja, Noah Misch)
2461 Errors in memory size tracking within the <filename>pgcrypto</>
2462 module permitted stack buffer overruns and improper dependence on the
2463 contents of uninitialized memory. The buffer overrun cases can
2464 crash the server, and we have not ruled out the possibility of
2465 attacks that lead to privilege escalation.
2471 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2472 Branch: master [2b3a8b20c] 2015-02-02 17:09:53 +0200
2473 Branch: REL9_4_STABLE [57ec87c6b] 2015-02-02 17:09:46 +0200
2474 Branch: REL9_3_STABLE [cd19848bd] 2015-02-02 17:09:40 +0200
2475 Branch: REL9_2_STABLE [289592b23] 2015-02-02 17:09:35 +0200
2476 Branch: REL9_1_STABLE [af9c5c074] 2015-02-02 17:09:31 +0200
2477 Branch: REL9_0_STABLE [47ba0fbd7] 2015-02-02 17:09:25 +0200
2482 Fix possible loss of frontend/backend protocol synchronization after
2484 (Heikki Linnakangas)
2488 If any error occurred while the server was in the middle of reading a
2489 protocol message from the client, it could lose synchronization and
2490 incorrectly try to interpret part of the message's data as a new
2491 protocol message. An attacker able to submit crafted binary data
2492 within a command parameter might succeed in injecting his own SQL
2493 commands this way. Statement timeout and query cancellation are the
2494 most likely sources of errors triggering this scenario. Particularly
2495 vulnerable are applications that use a timeout and also submit
2496 arbitrary user-crafted data as binary query parameters. Disabling
2497 statement timeout will reduce, but not eliminate, the risk of
2498 exploit. Our thanks to Emil Lenngren for reporting this issue.
2504 Author: Stephen Frost <sfrost@snowman.net>
2505 Branch: master [804b6b6db] 2015-01-28 12:31:30 -0500
2506 Branch: REL9_4_STABLE [3cc74a3d6] 2015-01-28 12:32:06 -0500
2507 Branch: REL9_3_STABLE [4b9874216] 2015-01-28 12:32:39 -0500
2508 Branch: REL9_2_STABLE [d49f84b08] 2015-01-28 12:32:56 -0500
2509 Branch: REL9_1_STABLE [9406884af] 2015-01-28 12:33:15 -0500
2510 Branch: REL9_0_STABLE [3a2063369] 2015-01-28 12:33:29 -0500
2515 Fix information leak via constraint-violation error messages
2520 Some server error messages show the values of columns that violate
2521 a constraint, such as a unique constraint. If the user does not have
2522 <literal>SELECT</> privilege on all columns of the table, this could
2523 mean exposing values that the user should not be able to see. Adjust
2524 the code so that values are displayed only when they came from the SQL
2525 command or could be selected by the user.
2531 Author: Noah Misch <noah@leadboat.com>
2532 Branch: master [f6dc6dd5b] 2014-12-17 22:48:40 -0500
2533 Branch: REL9_4_STABLE [6b87d423d] 2014-12-17 22:48:45 -0500
2534 Branch: REL9_3_STABLE [442dc2c35] 2014-12-17 22:48:46 -0500
2535 Branch: REL9_2_STABLE [0046f651d] 2014-12-17 22:48:47 -0500
2536 Branch: REL9_1_STABLE [6aa98e957] 2014-12-17 22:48:47 -0500
2537 Branch: REL9_0_STABLE [6d45ee572] 2014-12-17 22:48:48 -0500
2542 Lock down regression testing's temporary installations on Windows
2547 Use SSPI authentication to allow connections only from the OS user
2548 who launched the test suite. This closes on Windows the same
2549 vulnerability previously closed on other platforms, namely that other
2550 users might be able to connect to the test postmaster.
2556 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2557 Branch: REL9_3_STABLE [8f80dcf3c] 2014-10-24 19:59:49 +0300
2558 Branch: REL9_2_STABLE [d440c4b55] 2014-10-24 19:59:52 +0300
2559 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2560 Branch: REL9_3_STABLE [2a1b34959] 2014-10-24 19:36:28 +0300
2561 Branch: REL9_2_STABLE [737ae3fc7] 2014-10-24 19:53:27 +0300
2562 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2563 Branch: master [aa1d2fc5e] 2015-01-16 13:28:19 +0200
2564 Branch: REL9_4_STABLE [2049a7d82] 2015-01-16 13:10:06 +0200
2565 Branch: REL9_3_STABLE [1619442a1] 2015-01-16 13:10:15 +0200
2566 Branch: REL9_2_STABLE [6bf343c6e] 2015-01-16 13:10:23 +0200
2571 Cope with the Windows locale named <quote>Norwegian (Bokmål)</>
2572 (Heikki Linnakangas)
2576 Non-ASCII locale names are problematic since it's not clear what
2577 encoding they should be represented in. Map the troublesome locale
2578 name to a plain-ASCII alias, <quote>Norwegian_Norway</>.
2583 Author: Tom Lane <tgl@sss.pgh.pa.us>
2584 Branch: REL9_3_STABLE [f88300168] 2014-11-04 13:24:14 -0500
2585 Branch: REL9_2_STABLE [db72ad02e] 2014-11-04 13:24:17 -0500
2586 Branch: REL9_1_STABLE [7c6f55e9e] 2014-11-04 13:24:22 -0500
2587 Branch: REL9_0_STABLE [45a607d5c] 2014-11-04 13:24:26 -0500
2592 Avoid possible data corruption if <command>ALTER DATABASE SET
2593 TABLESPACE</> is used to move a database to a new tablespace and then
2594 shortly later move it back to its original tablespace (Tom Lane)
2599 Author: Tom Lane <tgl@sss.pgh.pa.us>
2600 Branch: REL9_3_STABLE [81f0a5e38] 2014-10-29 18:12:08 -0400
2601 Branch: REL9_2_STABLE [40058fbce] 2014-10-29 18:12:11 -0400
2602 Branch: REL9_1_STABLE [6ec1c3ef8] 2014-10-29 18:12:17 -0400
2603 Branch: REL9_0_STABLE [9d06da58e] 2014-10-29 18:12:20 -0400
2604 Author: Tom Lane <tgl@sss.pgh.pa.us>
2605 Branch: REL9_3_STABLE [e65b550b3] 2014-10-30 13:03:28 -0400
2606 Branch: REL9_2_STABLE [38cb8687a] 2014-10-30 13:03:31 -0400
2607 Branch: REL9_1_STABLE [fcf0246b2] 2014-10-30 13:03:34 -0400
2608 Branch: REL9_0_STABLE [73f950fc8] 2014-10-30 13:03:39 -0400
2613 Avoid corrupting tables when <command>ANALYZE</> inside a transaction
2614 is rolled back (Andres Freund, Tom Lane, Michael Paquier)
2618 If the failing transaction had earlier removed the last index, rule, or
2619 trigger from the table, the table would be left in a corrupted state
2620 with the relevant <structname>pg_class</> flags not set though they
2626 Author: Andres Freund <andres@anarazel.de>
2627 Branch: REL9_3_STABLE [d7624e562] 2014-10-20 23:45:31 +0200
2628 Branch: REL9_2_STABLE [fd29810d1] 2014-10-20 23:47:00 +0200
2629 Branch: REL9_1_STABLE [d5fef87e9] 2014-10-20 23:47:45 +0200
2634 Ensure that unlogged tables are copied correctly
2635 during <command>CREATE DATABASE</> or <command>ALTER DATABASE SET
2636 TABLESPACE</> (Pavan Deolasee, Andres Freund)
2641 Author: Robert Haas <rhaas@postgresql.org>
2642 Branch: REL9_3_STABLE [e35db342a] 2014-09-22 16:19:59 -0400
2647 Fix incorrect processing
2648 of <structname>CreateEventTrigStmt</>.<structfield>eventname</> (Petr
2653 This could result in misbehavior if <command>CREATE EVENT TRIGGER</>
2654 were executed as a prepared query, or via extended query protocol.
2659 Author: Tom Lane <tgl@sss.pgh.pa.us>
2660 Branch: REL9_3_STABLE [2a83e0349] 2014-11-11 17:00:21 -0500
2661 Branch: REL9_2_STABLE [1c2f9a4f6] 2014-11-11 17:00:25 -0500
2662 Branch: REL9_1_STABLE [94d5d57d5] 2014-11-11 17:00:28 -0500
2667 Fix <command>DROP</>'s dependency searching to correctly handle the
2668 case where a table column is recursively visited before its table
2669 (Petr Jelinek, Tom Lane)
2673 This case is only known to arise when an extension creates both a
2674 datatype and a table using that datatype. The faulty code might
2675 refuse a <command>DROP EXTENSION</> unless <literal>CASCADE</> is
2676 specified, which should not be required.
2681 Author: Tom Lane <tgl@sss.pgh.pa.us>
2682 Branch: master [c480cb9d2] 2015-01-15 18:52:58 -0500
2683 Branch: REL9_4_STABLE [b75d18bd4] 2015-01-15 18:53:05 -0500
2684 Branch: REL9_3_STABLE [34668c8ec] 2015-01-15 18:52:28 -0500
2685 Branch: REL9_2_STABLE [0acb32efb] 2015-01-15 18:52:31 -0500
2686 Branch: REL9_1_STABLE [450530fce] 2015-01-15 18:52:34 -0500
2687 Branch: REL9_0_STABLE [5308e085b] 2015-01-15 18:52:38 -0500
2692 Fix use-of-already-freed-memory problem in EvalPlanQual processing
2697 In <literal>READ COMMITTED</> mode, queries that lock or update
2698 recently-updated rows could crash as a result of this bug.
2703 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2704 Branch: master [0e5680f47] 2014-12-26 13:52:27 -0300
2705 Branch: REL9_4_STABLE [0e3a1f71d] 2014-12-26 13:52:27 -0300
2706 Branch: REL9_3_STABLE [048912386] 2014-12-26 13:52:27 -0300
2711 Avoid possible deadlock while trying to acquire tuple locks
2712 in EvalPlanQual processing (Álvaro Herrera, Mark Kirkwood)
2717 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
2718 Branch: master [d5e3d1e96] 2015-01-04 15:48:29 -0300
2719 Branch: REL9_4_STABLE [51742063b] 2015-01-04 15:48:29 -0300
2720 Branch: REL9_3_STABLE [54a8abc2b] 2015-01-04 15:48:29 -0300
2725 Fix failure to wait when a transaction tries to acquire a <literal>FOR
2726 NO KEY EXCLUSIVE</> tuple lock, while multiple other transactions
2727 currently hold <literal>FOR SHARE</> locks (Álvaro Herrera)
2732 Author: Tom Lane <tgl@sss.pgh.pa.us>
2733 Branch: REL9_3_STABLE [2ae8a01ca] 2014-12-11 21:02:31 -0500
2734 Branch: REL9_2_STABLE [cd63c57e5] 2014-12-11 21:02:34 -0500
2735 Branch: REL9_1_STABLE [bca39b578] 2014-12-11 21:02:38 -0500
2736 Branch: REL9_0_STABLE [662eebdc6] 2014-12-11 21:02:41 -0500
2741 Fix planning of <command>SELECT FOR UPDATE</> when using a partial
2742 index on a child table (Kyotaro Horiguchi)
2746 In <literal>READ COMMITTED</> mode, <command>SELECT FOR UPDATE</> must
2747 also recheck the partial index's <literal>WHERE</> condition when
2748 rechecking a recently-updated row to see if it still satisfies the
2749 query's <literal>WHERE</> condition. This requirement was missed if the
2750 index belonged to an inheritance child table, so that it was possible
2751 to incorrectly return rows that no longer satisfy the query condition.
2756 Author: Tom Lane <tgl@sss.pgh.pa.us>
2757 Branch: REL9_3_STABLE [f14196c35] 2014-12-11 19:37:07 -0500
2758 Branch: REL9_2_STABLE [deadbf4f3] 2014-12-11 19:37:10 -0500
2759 Branch: REL9_1_STABLE [21946ac9b] 2014-12-11 19:37:14 -0500
2760 Branch: REL9_0_STABLE [f5e4e92fb] 2014-12-11 19:37:17 -0500
2765 Fix corner case wherein <command>SELECT FOR UPDATE</> could return a row
2766 twice, and possibly miss returning other rows (Tom Lane)
2770 In <literal>READ COMMITTED</> mode, a <command>SELECT FOR UPDATE</>
2771 that is scanning an inheritance tree could incorrectly return a row
2772 from a prior child table instead of the one it should return from a
2778 Author: Tom Lane <tgl@sss.pgh.pa.us>
2779 Branch: master [a5cd70dcb] 2015-01-15 13:18:12 -0500
2780 Branch: REL9_4_STABLE [d25192892] 2015-01-15 13:18:16 -0500
2781 Branch: REL9_3_STABLE [939f0fb67] 2015-01-15 13:18:19 -0500
2786 Improve performance of <command>EXPLAIN</> with large range tables
2792 Author: Tom Lane <tgl@sss.pgh.pa.us>
2793 Branch: REL9_3_STABLE [7a9c8cefb] 2014-08-09 13:46:42 -0400
2794 Branch: REL9_2_STABLE [b4dacab12] 2014-08-09 13:46:45 -0400
2795 Branch: REL9_1_STABLE [bbe826f21] 2014-08-09 13:46:48 -0400
2796 Branch: REL9_0_STABLE [4ff49746e] 2014-08-09 13:46:52 -0400
2801 Reject duplicate column names in the referenced-columns list of
2802 a <literal>FOREIGN KEY</> declaration (David Rowley)
2806 This restriction is per SQL standard. Previously we did not reject
2807 the case explicitly, but later on the code would fail with
2808 bizarre-looking errors.
2813 Author: Tom Lane <tgl@sss.pgh.pa.us>
2814 Branch: REL9_3_STABLE [6306d0712] 2014-07-22 13:30:14 -0400
2819 Re-enable error for <literal>SELECT ... OFFSET -1</> (Tom Lane)
2823 A negative offset value has been an error since 8.4, but an
2824 optimization added in 9.3 accidentally turned the case into a no-op.
2825 Restore the expected behavior.
2830 Author: Tom Lane <tgl@sss.pgh.pa.us>
2831 Branch: REL9_3_STABLE [8b65e0a33] 2014-08-09 18:40:34 -0400
2832 Branch: REL9_2_STABLE [15026ab97] 2014-08-09 18:40:38 -0400
2837 Restore previous behavior of conversion of domains to JSON
2842 This change causes domains over numeric and boolean to be treated
2843 like their base types for purposes of conversion to JSON. It worked
2844 like that before 9.3.5 and 9.2.9, but was unintentionally changed
2845 while fixing a related problem.
2850 Author: Tom Lane <tgl@sss.pgh.pa.us>
2851 Branch: REL9_3_STABLE [8571ecb24] 2014-12-02 15:02:43 -0500
2856 Fix <function>json_agg()</> to not return extra trailing right
2857 brackets in its result (Tom Lane)
2862 Author: Tom Lane <tgl@sss.pgh.pa.us>
2863 Branch: REL9_3_STABLE [25bf13fe1] 2014-09-11 23:30:57 -0400
2864 Branch: REL9_2_STABLE [228ed4370] 2014-09-11 23:31:00 -0400
2865 Branch: REL9_1_STABLE [cf5c20b06] 2014-09-11 23:31:03 -0400
2866 Branch: REL9_0_STABLE [26f8a4691] 2014-09-11 23:31:06 -0400
2871 Fix bugs in raising a <type>numeric</> value to a large integral power
2876 The previous code could get a wrong answer, or consume excessive
2877 amounts of time and memory before realizing that the answer must
2883 Author: Tom Lane <tgl@sss.pgh.pa.us>
2884 Branch: REL9_3_STABLE [10b81fbdc] 2014-12-01 15:25:08 -0500
2885 Branch: REL9_2_STABLE [e640042e9] 2014-12-01 15:25:12 -0500
2886 Branch: REL9_1_STABLE [2e3cc3955] 2014-12-01 15:25:15 -0500
2887 Branch: REL9_0_STABLE [e6550626c] 2014-12-01 15:25:18 -0500
2892 In <function>numeric_recv()</>, truncate away any fractional digits
2893 that would be hidden according to the value's <literal>dscale</> field
2898 A <type>numeric</> value's display scale (<literal>dscale</>) should
2899 never be less than the number of nonzero fractional digits; but
2900 apparently there's at least one broken client application that
2901 transmits binary <type>numeric</> values in which that's true.
2902 This leads to strange behavior since the extra digits are taken into
2903 account by arithmetic operations even though they aren't printed.
2904 The least risky fix seems to be to truncate away such <quote>hidden</>
2905 digits on receipt, so that the value is indeed what it prints as.
2910 Author: Tom Lane <tgl@sss.pgh.pa.us>
2911 Branch: REL9_3_STABLE [bbfdf5d75] 2014-09-23 20:25:36 -0400
2912 Branch: REL9_2_STABLE [3359a818c] 2014-09-23 20:25:39 -0400
2917 Fix incorrect search for shortest-first regular expression matches
2922 Matching would often fail when the number of allowed iterations is
2923 limited by a <literal>?</> quantifier or a bound expression.
2928 Author: Tom Lane <tgl@sss.pgh.pa.us>
2929 Branch: REL9_3_STABLE [7672bbca0] 2014-07-21 22:41:27 -0400
2930 Branch: REL9_2_STABLE [f54d97c5e] 2014-07-21 22:41:30 -0400
2931 Branch: REL9_1_STABLE [124331b61] 2014-07-21 22:41:33 -0400
2932 Branch: REL9_0_STABLE [6e5a39c9e] 2014-07-21 22:41:36 -0400
2937 Reject out-of-range numeric timezone specifications (Tom Lane)
2941 Simple numeric timezone specifications exceeding +/- 168 hours (one
2942 week) would be accepted, but could then cause null-pointer dereference
2943 crashes in certain operations. There's no use-case for such large UTC
2944 offsets, so reject them.
2949 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
2950 Branch: REL9_3_STABLE [1aa526f3f] 2014-10-27 10:51:29 +0200
2951 Branch: REL9_2_STABLE [604d94d4c] 2014-10-27 10:51:33 +0200
2952 Branch: REL9_1_STABLE [4d1c738d1] 2014-10-27 10:51:36 +0200
2953 Branch: REL9_0_STABLE [10059c2da] 2014-10-27 10:51:38 +0200
2958 Fix bugs in <type>tsquery</> <literal>@></> <type>tsquery</>
2959 operator (Heikki Linnakangas)
2963 Two different terms would be considered to match if they had the same
2964 CRC. Also, if the second operand had more terms than the first, it
2965 would be assumed not to be contained in the first; which is wrong
2966 since it might contain duplicate terms.
2971 Author: Tom Lane <tgl@sss.pgh.pa.us>
2972 Branch: REL9_3_STABLE [385f0d98a] 2014-10-23 13:11:34 -0400
2973 Branch: REL9_2_STABLE [f09369da8] 2014-10-23 13:11:37 -0400
2974 Branch: REL9_1_STABLE [94de3a679] 2014-10-23 13:11:41 -0400
2975 Branch: REL9_0_STABLE [21fa26b65] 2014-10-23 13:11:45 -0400
2980 Improve ispell dictionary's defenses against bad affix files (Tom Lane)
2985 Author: Tom Lane <tgl@sss.pgh.pa.us>
2986 Branch: REL9_3_STABLE [5a74ff373] 2014-11-06 20:52:52 -0500
2987 Branch: REL9_2_STABLE [0bb318595] 2014-11-06 20:52:57 -0500
2988 Branch: REL9_1_STABLE [076688084] 2014-11-06 20:53:02 -0500
2989 Branch: REL9_0_STABLE [39493e4d9] 2014-11-06 20:53:07 -0500
2994 Allow more than 64K phrases in a thesaurus dictionary (David Boutin)
2998 The previous coding could crash on an oversize dictionary, so this was
2999 deemed a back-patchable bug fix rather than a feature addition.
3004 Author: Peter Eisentraut <peter_e@gmx.net>
3005 Branch: master [79af9a1d2] 2015-01-06 23:06:13 -0500
3006 Branch: REL9_4_STABLE [6bbf75192] 2015-01-17 22:11:20 -0500
3007 Branch: REL9_3_STABLE [e32cb8d0e] 2015-01-17 22:13:27 -0500
3008 Branch: REL9_2_STABLE [c8ef5b1ac] 2015-01-17 22:14:21 -0500
3009 Branch: REL9_1_STABLE [c975fa471] 2015-01-17 22:37:07 -0500
3010 Branch: REL9_0_STABLE [cebb3f032] 2015-01-17 22:37:32 -0500
3015 Fix namespace handling in <function>xpath()</> (Ali Akbar)
3019 Previously, the <type>xml</> value resulting from
3020 an <function>xpath()</> call would not have namespace declarations if
3021 the namespace declarations were attached to an ancestor element in the
3022 input <type>xml</> value, rather than to the specific element being
3023 returned. Propagate the ancestral declaration so that the result is
3024 correct when considered in isolation.
3029 Author: Tom Lane <tgl@sss.pgh.pa.us>
3030 Branch: REL9_3_STABLE [07ab4ec4c] 2014-11-10 15:21:20 -0500
3031 Branch: REL9_2_STABLE [19ccaf9d4] 2014-11-10 15:21:26 -0500
3036 Ensure that whole-row variables expose nonempty column names
3037 to functions that pay attention to column names within composite
3038 arguments (Tom Lane)
3042 In some contexts, constructs like <literal>row_to_json(tab.*)</> may
3043 not produce the expected column names. This is fixed properly as of
3044 9.4; in older branches, just ensure that we produce some nonempty
3045 name. (In some cases this will be the underlying table's column name
3046 rather than the query-assigned alias that should theoretically be
3052 Author: Tom Lane <tgl@sss.pgh.pa.us>
3053 Branch: REL9_3_STABLE [c57cdc9c1] 2014-11-22 16:01:12 -0500
3054 Branch: REL9_2_STABLE [906599f65] 2014-11-22 16:01:15 -0500
3059 Fix mishandling of system columns,
3060 particularly <structfield>tableoid</>, in FDW queries (Etsuro Fujita)
3065 Author: Tom Lane <tgl@sss.pgh.pa.us>
3066 Branch: master [3d660d33a] 2015-01-30 12:30:59 -0500
3067 Branch: REL9_4_STABLE [b6a164e5c] 2015-01-30 12:31:08 -0500
3068 Branch: REL9_3_STABLE [527ff8baf] 2015-01-30 12:30:43 -0500
3073 Fix assorted oversights in range-operator selectivity estimation
3078 This patch fixes corner-case <quote>unexpected operator NNNN</> planner
3079 errors, and improves the selectivity estimates for some other cases.
3084 Author: Tom Lane <tgl@sss.pgh.pa.us>
3085 Branch: REL9_3_STABLE [f6abf8f08] 2014-10-26 16:12:29 -0400
3086 Branch: REL9_2_STABLE [4586572d7] 2014-10-26 16:12:32 -0400
3091 Avoid doing <literal><replaceable>indexed_column</> = ANY
3092 (<replaceable>array</>)</literal> as an index qualifier if that leads
3093 to an inferior plan (Andrew Gierth)
3097 In some cases, <literal>= ANY</> conditions applied to non-first index
3098 columns would be done as index conditions even though it would be
3099 better to use them as simple filter conditions.
3104 Author: Tom Lane <tgl@sss.pgh.pa.us>
3105 Branch: REL9_3_STABLE [4e54685d0] 2014-10-20 12:23:48 -0400
3110 Fix <quote>variable not found in subplan target list</> planner
3111 failure when an inline-able SQL function taking a composite argument
3112 is used in a <literal>LATERAL</> subselect and the composite argument
3113 is a lateral reference (Tom Lane)
3118 Author: Tom Lane <tgl@sss.pgh.pa.us>
3119 Branch: REL9_3_STABLE [b2b95de61] 2014-10-01 19:30:30 -0400
3120 Branch: REL9_2_STABLE [71b88cf52] 2014-10-01 19:30:34 -0400
3121 Branch: REL9_1_STABLE [477023e94] 2014-10-01 19:30:38 -0400
3122 Branch: REL9_0_STABLE [288f15b7c] 2014-10-01 19:30:41 -0400
3127 Fix planner problems with nested append relations, such as inherited
3128 tables within <literal>UNION ALL</> subqueries (Tom Lane)
3133 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3134 Branch: REL9_3_STABLE [ef8ac584e] 2014-10-03 14:50:29 +0300
3135 Branch: REL9_2_STABLE [8e137b075] 2014-10-03 14:50:40 +0300
3136 Branch: REL9_1_STABLE [f270a1611] 2014-10-03 14:50:46 +0300
3137 Branch: REL9_0_STABLE [f04b112d5] 2014-10-03 14:50:58 +0300
3142 Fail cleanly when a GiST index tuple doesn't fit on a page, rather
3143 than going into infinite recursion (Andrew Gierth)
3148 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
3149 Branch: REL9_3_STABLE [67ed9d531] 2014-10-03 13:01:27 -0300
3150 Branch: REL9_2_STABLE [769d6815e] 2014-10-03 13:01:27 -0300
3151 Branch: REL9_1_STABLE [06646f52e] 2014-10-03 13:01:27 -0300
3152 Branch: REL9_0_STABLE [50a757698] 2014-10-03 13:01:27 -0300
3157 Exempt tables that have per-table <varname>cost_limit</>
3158 and/or <varname>cost_delay</> settings from autovacuum's global cost
3159 balancing rules (Álvaro Herrera)
3163 The previous behavior resulted in basically ignoring these per-table
3164 settings, which was unintended. Now, a table having such settings
3165 will be vacuumed using those settings, independently of what is going
3166 on in other autovacuum workers. This may result in heavier total I/O
3167 load than before, so such settings should be re-examined for sanity.
3172 Author: Tom Lane <tgl@sss.pgh.pa.us>
3173 Branch: REL9_3_STABLE [4cbecdaaa] 2014-07-30 14:41:49 -0400
3174 Branch: REL9_2_STABLE [c83aed34b] 2014-07-30 14:41:53 -0400
3175 Branch: REL9_1_STABLE [f21afe421] 2014-07-30 14:41:58 -0400
3176 Branch: REL9_0_STABLE [91b4a881c] 2014-07-30 14:42:12 -0400
3181 Avoid wholesale autovacuuming when autovacuum is nominally off
3186 Even when autovacuum is nominally off, we will still launch autovacuum
3187 worker processes to vacuum tables that are at risk of XID wraparound.
3188 However, such a worker process then proceeded to vacuum all tables in
3189 the target database, if they met the usual thresholds for
3190 autovacuuming. This is at best pretty unexpected; at worst it delays
3191 response to the wraparound threat. Fix it so that if autovacuum is
3192 turned off, workers <emphasis>only</> do anti-wraparound vacuums and
3198 Author: Andres Freund <andres@anarazel.de>
3199 Branch: REL9_3_STABLE [2c3ebfd1a] 2014-11-15 01:21:07 +0100
3200 Branch: REL9_2_STABLE [ea8b3833e] 2014-11-15 01:21:45 +0100
3201 Branch: REL9_1_STABLE [d85b646d0] 2014-11-15 01:22:32 +0100
3202 Author: Andres Freund <andres@anarazel.de>
3203 Branch: REL9_3_STABLE [672b43e68] 2014-11-15 01:21:02 +0100
3204 Branch: REL9_2_STABLE [c5baa708f] 2014-11-15 01:21:40 +0100
3205 Branch: REL9_1_STABLE [fde9994bc] 2014-11-15 01:22:32 +0100
3206 Author: Andres Freund <andres@anarazel.de>
3207 Branch: REL9_3_STABLE [c7299d32f] 2014-11-15 01:20:29 +0100
3208 Branch: REL9_2_STABLE [86673a44a] 2014-11-15 01:21:30 +0100
3209 Branch: REL9_1_STABLE [b0a48e996] 2014-11-15 01:22:32 +0100
3214 During crash recovery, ensure that unlogged relations are rewritten as
3215 empty and are synced to disk before recovery is considered complete
3216 (Abhijit Menon-Sen, Andres Freund)
3220 This prevents scenarios in which unlogged relations might contain
3221 garbage data following database crash recovery.
3226 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3227 Branch: REL9_3_STABLE [861d3aa43] 2014-11-13 20:01:55 +0200
3228 Branch: REL9_2_STABLE [7eab804c2] 2014-11-13 20:01:18 +0200
3229 Branch: REL9_1_STABLE [5f1d931cf] 2014-11-13 20:01:09 +0200
3230 Branch: REL9_0_STABLE [681dbe7d4] 2014-11-13 20:00:51 +0200
3235 Fix race condition between hot standby queries and replaying a
3236 full-page image (Heikki Linnakangas)
3240 This mistake could result in transient errors in queries being
3241 executed in hot standby.
3246 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3247 Branch: REL9_3_STABLE [a2a718b22] 2014-07-29 11:57:52 +0300
3248 Branch: REL9_2_STABLE [1578d13dc] 2014-07-29 11:58:01 +0300
3249 Branch: REL9_1_STABLE [de88ec6bf] 2014-07-29 11:58:09 +0300
3250 Branch: REL9_0_STABLE [804983961] 2014-07-29 11:58:17 +0300
3255 Fix several cases where recovery logic improperly ignored WAL records
3256 for <literal>COMMIT/ABORT PREPARED</> (Heikki Linnakangas)
3260 The most notable oversight was
3261 that <varname>recovery_target_xid</> could not be used to stop at
3267 Author: Fujii Masao <fujii@postgresql.org>
3268 Branch: REL9_3_STABLE [d45cd9e19] 2014-10-23 16:22:46 +0900
3269 Branch: REL9_2_STABLE [f904e9afd] 2014-10-23 16:31:44 +0900
3274 Prevent latest WAL file from being archived a second time at completion
3275 of crash recovery (Fujii Masao)
3280 Author: Fujii Masao <fujii@postgresql.org>
3281 Branch: REL9_3_STABLE [3a3b7e316] 2014-11-06 21:25:18 +0900
3282 Branch: REL9_2_STABLE [38eb5d9e8] 2014-11-06 21:25:45 +0900
3283 Branch: REL9_1_STABLE [4e7468074] 2014-11-06 21:26:15 +0900
3284 Branch: REL9_0_STABLE [83c7bfb9a] 2014-11-06 21:26:21 +0900
3289 Avoid creating unnecessary <filename>.ready</> marker files for
3290 timeline history files (Fujii Masao)
3295 Author: Fujii Masao <fujii@postgresql.org>
3296 Branch: REL9_3_STABLE [52eed3d42] 2014-09-05 02:19:29 +0900
3297 Branch: REL9_2_STABLE [78b1228ef] 2014-09-05 02:19:45 +0900
3298 Branch: REL9_1_STABLE [81bffe63c] 2014-09-05 02:19:50 +0900
3299 Branch: REL9_0_STABLE [857a5d6b5] 2014-09-05 02:19:57 +0900
3304 Fix possible null pointer dereference when an empty prepared statement
3305 is used and the <varname>log_statement</> setting is <literal>mod</>
3306 or <literal>ddl</> (Fujii Masao)
3311 Author: Tom Lane <tgl@sss.pgh.pa.us>
3312 Branch: master [75b48e1ff] 2015-01-19 23:01:33 -0500
3313 Branch: REL9_4_STABLE [3387cbbcb] 2015-01-19 23:01:36 -0500
3314 Branch: REL9_3_STABLE [19794e997] 2015-01-19 23:01:39 -0500
3315 Branch: REL9_2_STABLE [33b723538] 2015-01-19 23:01:41 -0500
3316 Branch: REL9_1_STABLE [b87c1dcef] 2015-01-19 23:01:44 -0500
3317 Branch: REL9_0_STABLE [a1a8d0249] 2015-01-19 23:01:46 -0500
3322 Change <quote>pgstat wait timeout</> warning message to be LOG level,
3323 and rephrase it to be more understandable (Tom Lane)
3327 This message was originally thought to be essentially a can't-happen
3328 case, but it occurs often enough on our slower buildfarm members to be
3329 a nuisance. Reduce it to LOG level, and expend a bit more effort on
3330 the wording: it now reads <quote>using stale statistics instead of
3331 current ones because stats collector is not responding</>.
3336 Author: Andres Freund <andres@anarazel.de>
3337 Branch: REL9_3_STABLE [cbd9619ac] 2014-10-01 14:34:06 +0200
3342 Fix possible corruption of postmaster's list of dynamic background
3343 workers (Andres Freund)
3348 Author: Andres Freund <andres@anarazel.de>
3349 Branch: REL9_3_STABLE [27ef6b653] 2014-09-09 23:37:33 +0200
3350 Branch: REL9_2_STABLE [d0b7ffc0f] 2014-09-09 23:37:50 +0200
3351 Branch: REL9_1_STABLE [5af508f66] 2014-09-09 23:45:07 +0200
3352 Branch: REL9_0_STABLE [f25e89601] 2014-09-09 23:48:03 +0200
3357 Fix SPARC spinlock implementation to ensure correctness if the CPU is
3358 being run in a non-TSO coherency mode, as some non-Solaris kernels do
3364 Author: Noah Misch <noah@leadboat.com>
3365 Branch: master [894459e59] 2015-01-07 22:35:44 -0500
3366 Branch: REL9_4_STABLE [83fb1ca5c] 2015-01-07 22:36:35 -0500
3367 Branch: REL9_3_STABLE [1a366d51e] 2015-01-07 22:40:40 -0500
3368 Branch: REL9_2_STABLE [5ca4e444c] 2015-01-07 22:41:49 -0500
3369 Branch: REL9_1_STABLE [8dc83104e] 2015-01-07 22:42:42 -0500
3370 Branch: REL9_0_STABLE [2e4946169] 2015-01-07 22:46:20 -0500
3375 Warn if OS X's <function>setlocale()</> starts an unwanted extra
3376 thread inside the postmaster (Noah Misch)
3381 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3382 Branch: REL9_3_STABLE [08cd4d9a6] 2014-11-25 17:39:00 +0200
3383 Branch: REL9_2_STABLE [9b468bcec] 2014-11-25 17:39:04 +0200
3384 Branch: REL9_1_STABLE [95be34362] 2014-11-25 17:39:07 +0200
3385 Branch: REL9_0_STABLE [9880fea4f] 2014-11-25 17:39:09 +0200
3390 Fix processing of repeated <literal>dbname</> parameters
3391 in <function>PQconnectdbParams()</> (Alex Shulgin)
3395 Unexpected behavior ensued if the first occurrence
3396 of <literal>dbname</> contained a connection string or URI to be
3402 Author: Tom Lane <tgl@sss.pgh.pa.us>
3403 Branch: REL9_3_STABLE [52ef33f72] 2014-10-22 18:41:51 -0400
3404 Branch: REL9_2_STABLE [6fa31d8d1] 2014-10-22 18:41:54 -0400
3405 Branch: REL9_1_STABLE [98144378c] 2014-10-22 18:41:57 -0400
3406 Branch: REL9_0_STABLE [ac6e87537] 2014-10-22 18:42:01 -0400
3411 Ensure that <application>libpq</> reports a suitable error message on
3412 unexpected socket EOF (Marko Tiikkaja, Tom Lane)
3416 Depending on kernel behavior, <application>libpq</> might return an
3417 empty error string rather than something useful when the server
3418 unexpectedly closed the socket.
3423 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3424 Branch: REL9_3_STABLE [1325b239b] 2014-10-29 14:40:47 +0200
3425 Branch: REL9_2_STABLE [1a27fbd07] 2014-10-29 14:39:10 +0200
3426 Branch: REL9_1_STABLE [8f7bd8e91] 2014-10-29 14:36:19 +0200
3427 Branch: REL9_0_STABLE [49ef4eba2] 2014-10-29 14:35:39 +0200
3432 Clear any old error message during <function>PQreset()</>
3433 (Heikki Linnakangas)
3437 If <function>PQreset()</> is called repeatedly, and the connection
3438 cannot be re-established, error messages from the failed connection
3439 attempts kept accumulating in the <structname>PGconn</>'s error
3445 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3446 Branch: REL9_3_STABLE [d3b162a3d] 2014-11-25 14:10:29 +0200
3447 Branch: REL9_2_STABLE [abcab2a64] 2014-11-25 14:10:43 +0200
3448 Branch: REL9_1_STABLE [5053ad206] 2014-11-25 14:10:48 +0200
3449 Branch: REL9_0_STABLE [1f3517039] 2014-11-25 14:10:54 +0200
3454 Properly handle out-of-memory conditions while parsing connection
3455 options in <application>libpq</> (Alex Shulgin, Heikki Linnakangas)
3460 Author: Tom Lane <tgl@sss.pgh.pa.us>
3461 Branch: REL9_3_STABLE [d3cfe20c6] 2014-10-06 21:23:35 -0400
3462 Branch: REL9_2_STABLE [b513205bc] 2014-10-06 21:23:39 -0400
3463 Branch: REL9_1_STABLE [037b912ec] 2014-10-06 21:23:45 -0400
3464 Branch: REL9_0_STABLE [d9a1e9de5] 2014-10-06 21:23:50 -0400
3469 Fix array overrun in <application>ecpg</>'s version
3470 of <function>ParseDateTime()</> (Michael Paquier)
3475 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3476 Branch: REL9_3_STABLE [2df66f01a] 2014-12-05 14:31:51 +0200
3477 Branch: REL9_2_STABLE [2b53d583d] 2014-12-05 14:31:45 +0200
3478 Branch: REL9_1_STABLE [729202754] 2014-12-05 14:31:37 +0200
3479 Branch: REL9_0_STABLE [d67be559e] 2014-12-05 14:30:55 +0200
3484 In <application>initdb</>, give a clearer error message if a password
3485 file is specified but is empty (Mats Erik Andersson)
3490 Author: Tom Lane <tgl@sss.pgh.pa.us>
3491 Branch: REL9_3_STABLE [b0fd5c552] 2014-09-08 16:09:52 -0400
3492 Branch: REL9_2_STABLE [886b58b47] 2014-09-08 16:09:56 -0400
3493 Branch: REL9_1_STABLE [440fcc568] 2014-09-08 16:10:01 -0400
3494 Branch: REL9_0_STABLE [44c518328] 2014-09-08 16:10:05 -0400
3499 Fix <application>psql</>'s <command>\s</> command to work nicely with
3500 libedit, and add pager support (Stepan Rutz, Tom Lane)
3504 When using libedit rather than readline, <command>\s</> printed the
3505 command history in a fairly unreadable encoded format, and on recent
3506 libedit versions might fail altogether. Fix that by printing the
3507 history ourselves rather than having the library do it. A pleasant
3508 side-effect is that the pager is used if appropriate.
3512 This patch also fixes a bug that caused newline encoding to be applied
3513 inconsistently when saving the command history with libedit.
3514 Multiline history entries written by older <application>psql</>
3515 versions will be read cleanly with this patch, but perhaps not
3516 vice versa, depending on the exact libedit versions involved.
3521 Author: Tom Lane <tgl@sss.pgh.pa.us>
3522 Branch: master [28551797a] 2014-12-31 12:18:50 -0500
3523 Branch: REL9_4_STABLE [c35249939] 2014-12-31 12:16:57 -0500
3524 Branch: REL9_3_STABLE [7582cce56] 2014-12-31 12:17:00 -0500
3525 Branch: REL9_2_STABLE [64c506535] 2014-12-31 12:17:04 -0500
3526 Branch: REL9_1_STABLE [1773e0702] 2014-12-31 12:17:08 -0500
3527 Branch: REL9_0_STABLE [2600e4436] 2014-12-31 12:17:12 -0500
3532 Improve consistency of parsing of <application>psql</>'s special
3533 variables (Tom Lane)
3537 Allow variant spellings of <literal>on</> and <literal>off</> (such
3538 as <literal>1</>/<literal>0</>) for <literal>ECHO_HIDDEN</>
3539 and <literal>ON_ERROR_ROLLBACK</>. Report a warning for unrecognized
3540 values for <literal>COMP_KEYWORD_CASE</>, <literal>ECHO</>,
3541 <literal>ECHO_HIDDEN</>, <literal>HISTCONTROL</>,
3542 <literal>ON_ERROR_ROLLBACK</>, and <literal>VERBOSITY</>. Recognize
3543 all values for all these variables case-insensitively; previously
3544 there was a mishmash of case-sensitive and case-insensitive behaviors.
3549 Author: Fujii Masao <fujii@postgresql.org>
3550 Branch: REL9_3_STABLE [4b1953079] 2014-11-28 02:44:40 +0900
3555 Make <application>psql</>'s <command>\watch</> command display
3556 nulls as specified by <command>\pset null</> (Fujii Masao)
3561 Author: Stephen Frost <sfrost@snowman.net>
3562 Branch: REL9_3_STABLE [7ec399094] 2014-09-12 11:24:28 -0400
3563 Branch: REL9_2_STABLE [5d63f2159] 2014-09-12 11:24:32 -0400
3564 Branch: REL9_1_STABLE [4d96e93cb] 2014-09-12 11:24:36 -0400
3565 Branch: REL9_0_STABLE [1f89fc218] 2014-09-12 11:24:39 -0400
3570 Fix <application>psql</>'s expanded-mode display to work
3571 consistently when using <literal>border</> = 3
3572 and <literal>linestyle</> = <literal>ascii</> or <literal>unicode</>
3578 Author: Tom Lane <tgl@sss.pgh.pa.us>
3579 Branch: master [adfc157dd] 2015-01-05 19:27:04 -0500
3580 Branch: REL9_4_STABLE [c99e41f68] 2015-01-05 19:27:06 -0500
3581 Branch: REL9_3_STABLE [bb1e2426b] 2015-01-05 19:27:09 -0500
3586 Fix <application>pg_dump</> to handle comments on event triggers
3587 without failing (Tom Lane)
3592 Author: Kevin Grittner <kgrittn@postgresql.org>
3593 Branch: master [cff1bd2a3] 2015-01-30 08:57:24 -0600
3594 Branch: REL9_4_STABLE [cb0168528] 2015-01-30 08:57:53 -0600
3595 Branch: REL9_3_STABLE [cc609c46f] 2015-01-30 09:01:36 -0600
3600 Allow parallel <application>pg_dump</> to
3601 use <option>--serializable-deferrable</> (Kevin Grittner)
3606 Author: Tom Lane <tgl@sss.pgh.pa.us>
3607 Branch: REL9_3_STABLE [51fc61334] 2014-07-25 19:48:48 -0400
3608 Branch: REL9_2_STABLE [a6c567437] 2014-07-25 19:48:51 -0400
3609 Branch: REL9_1_STABLE [40c333c39] 2014-07-25 19:48:54 -0400
3614 Improve performance of <application>pg_dump</> when the database
3615 contains many instances of multiple dependency paths between the same
3616 two objects (Tom Lane)
3621 Author: Tom Lane <tgl@sss.pgh.pa.us>
3622 Branch: REL9_3_STABLE [9fc887121] 2014-11-13 18:19:32 -0500
3623 Branch: REL9_2_STABLE [3c5ce5102] 2014-11-13 18:19:35 -0500
3628 Fix <application>pg_dumpall</> to restore its ability to dump from
3629 pre-8.1 servers (Gilles Darold)
3634 Author: Robert Haas <rhaas@postgresql.org>
3635 Branch: REL9_3_STABLE [d72ecc91c] 2014-09-26 11:23:43 -0400
3636 Branch: REL9_2_STABLE [a97c8c393] 2014-09-26 11:25:57 -0400
3637 Branch: REL9_1_STABLE [d1844c21b] 2014-09-26 11:36:25 -0400
3638 Branch: REL9_0_STABLE [bbe3c069a] 2014-09-26 11:43:56 -0400
3643 Fix possible deadlock during parallel restore of a schema-only dump
3644 (Robert Haas, Tom Lane)
3649 Author: Tom Lane <tgl@sss.pgh.pa.us>
3650 Branch: REL9_3_STABLE [9a540c1ef] 2014-10-17 12:49:06 -0400
3651 Branch: REL9_2_STABLE [787e20bd4] 2014-10-17 12:49:09 -0400
3652 Branch: REL9_1_STABLE [0c9391e52] 2014-10-17 12:49:11 -0400
3653 Branch: REL9_0_STABLE [31021e7ba] 2014-10-17 12:49:15 -0400
3658 Fix core dump in <literal>pg_dump --binary-upgrade</> on zero-column
3659 composite type (Rushabh Lathia)
3664 Author: Andres Freund <andres@anarazel.de>
3665 Branch: REL9_3_STABLE [26a4e0ed7] 2014-11-15 01:21:11 +0100
3670 Fix failure to fsync tables in nondefault tablespaces
3671 during <application>pg_upgrade</> (Abhijit Menon-Sen, Andres Freund)
3675 With an operating system crash and some bad luck, this could result in
3676 data loss during an upgrade.
3681 Author: Bruce Momjian <bruce@momjian.us>
3682 Branch: REL9_3_STABLE [fca9f349b] 2014-08-07 14:56:13 -0400
3687 In <application>pg_upgrade</>, cope with cases where the new cluster
3688 creates a TOAST table for a table that didn't previously have one
3693 Previously this could result in failures due to OID conflicts.
3698 Author: Bruce Momjian <bruce@momjian.us>
3699 Branch: REL9_3_STABLE [24ae44914] 2014-08-04 11:45:45 -0400
3704 In <application>pg_upgrade</>, don't try to
3705 set <literal>autovacuum_multixact_freeze_max_age</> for the old cluster
3710 This could result in failure because not all 9.3.X versions have that
3711 parameter. Fortunately, we don't actually need to set it at all.
3716 Author: Bruce Momjian <bruce@momjian.us>
3717 Branch: REL9_3_STABLE [5724f491d] 2014-09-11 18:39:46 -0400
3722 In <application>pg_upgrade</>, preserve the transaction ID epoch
3727 This oversight did not bother <productname>PostgreSQL</> proper,
3728 but could confuse some external replication tools.
3733 Author: Andres Freund <andres@anarazel.de>
3734 Branch: master [2c0a48589] 2015-01-03 20:54:12 +0100
3735 Branch: REL9_4_STABLE [90e4a2bf9] 2015-01-03 20:54:13 +0100
3736 Branch: REL9_3_STABLE [f6cea4502] 2015-01-03 20:54:13 +0100
3737 Branch: REL9_2_STABLE [f961ad479] 2015-01-03 20:54:13 +0100
3738 Branch: REL9_1_STABLE [2a0bfa4d6] 2015-01-03 20:54:13 +0100
3743 Prevent WAL files created by <literal>pg_basebackup -x/-X</> from
3744 being archived again when the standby is promoted (Andres Freund)
3749 Author: Fujii Masao <fujii@postgresql.org>
3750 Branch: REL9_3_STABLE [9747a9898] 2014-08-02 15:19:45 +0900
3755 Fix memory leak in <application>pg_receivexlog</> (Fujii Masao)
3760 Author: Fujii Masao <fujii@postgresql.org>
3761 Branch: REL9_3_STABLE [39217ce41] 2014-08-02 14:59:10 +0900
3766 Fix unintended suppression of <application>pg_receivexlog</> verbose
3767 messages (Fujii Masao)
3772 Author: Tom Lane <tgl@sss.pgh.pa.us>
3773 Branch: REL9_3_STABLE [9474c9d81] 2014-09-19 13:19:02 -0400
3774 Branch: REL9_2_STABLE [5ff8c2d7d] 2014-09-19 13:19:05 -0400
3779 Fix failure of <filename>contrib/auto_explain</> to print per-node
3780 timing information when doing <command>EXPLAIN ANALYZE</> (Tom Lane)
3785 Author: Tom Lane <tgl@sss.pgh.pa.us>
3786 Branch: REL9_3_STABLE [0ad403c98] 2014-08-28 18:21:14 -0400
3787 Branch: REL9_2_STABLE [f3998521f] 2014-08-28 18:21:17 -0400
3788 Branch: REL9_1_STABLE [9807c8220] 2014-08-28 18:21:20 -0400
3793 Fix upgrade-from-unpackaged script for <filename>contrib/citext</>
3799 Author: Tom Lane <tgl@sss.pgh.pa.us>
3800 Branch: REL9_3_STABLE [f44290b7b] 2014-11-04 16:54:59 -0500
3805 Avoid integer overflow and buffer overrun
3806 in <filename>contrib/hstore</>'s <function>hstore_to_json()</>
3807 (Heikki Linnakangas)
3812 Author: Andrew Dunstan <andrew@dunslane.net>
3813 Branch: REL9_3_STABLE [55c880797] 2014-12-01 11:44:48 -0500
3818 Fix recognition of numbers in <function>hstore_to_json_loose()</>,
3819 so that JSON numbers and strings are correctly distinguished
3825 Author: Tom Lane <tgl@sss.pgh.pa.us>
3826 Branch: REL9_3_STABLE [f59c8eff7] 2014-07-22 11:45:53 -0400
3827 Branch: REL9_2_STABLE [810f0d2a2] 2014-07-22 11:45:57 -0400
3828 Branch: REL9_1_STABLE [3c5232ae8] 2014-07-22 11:46:00 -0400
3829 Branch: REL9_0_STABLE [9dc2a3fd0] 2014-07-22 11:46:04 -0400
3834 Fix block number checking
3835 in <filename>contrib/pageinspect</>'s <function>get_raw_page()</>
3840 The incorrect checking logic could prevent access to some pages in
3841 non-main relation forks.
3846 Author: Tom Lane <tgl@sss.pgh.pa.us>
3847 Branch: REL9_3_STABLE [419de696a] 2014-11-11 17:22:38 -0500
3848 Branch: REL9_2_STABLE [4a9710e6e] 2014-11-11 17:22:44 -0500
3849 Branch: REL9_1_STABLE [4ddd9e72f] 2014-11-11 17:22:51 -0500
3850 Branch: REL9_0_STABLE [ef5a3b957] 2014-11-11 17:22:58 -0500
3855 Fix <filename>contrib/pgcrypto</>'s <function>pgp_sym_decrypt()</>
3856 to not fail on messages whose length is 6 less than a power of 2
3862 Author: Robert Haas <rhaas@postgresql.org>
3863 Branch: REL9_3_STABLE [8cf825974] 2014-11-19 12:14:22 -0500
3864 Branch: REL9_2_STABLE [57ce74661] 2014-11-19 12:20:47 -0500
3865 Branch: REL9_1_STABLE [a855c90a7] 2014-11-19 12:26:06 -0500
3870 Fix file descriptor leak in <filename>contrib/pg_test_fsync</>
3875 This could cause failure to remove temporary files on Windows.
3880 Author: Tom Lane <tgl@sss.pgh.pa.us>
3881 Branch: master [37507962c] 2015-01-29 20:18:33 -0500
3882 Branch: REL9_4_STABLE [202621d04] 2015-01-29 20:18:37 -0500
3883 Branch: REL9_3_STABLE [53ae24692] 2015-01-29 20:18:40 -0500
3884 Branch: REL9_2_STABLE [66cc74680] 2015-01-29 20:18:42 -0500
3885 Branch: REL9_1_STABLE [290c2daad] 2015-01-29 20:18:44 -0500
3886 Branch: REL9_0_STABLE [dc9a506e6] 2015-01-29 20:18:46 -0500
3891 Handle unexpected query results, especially NULLs, safely in
3892 <filename>contrib/tablefunc</>'s <function>connectby()</>
3897 <function>connectby()</> previously crashed if it encountered a NULL
3898 key value. It now prints that row but doesn't recurse further.
3903 Author: Tom Lane <tgl@sss.pgh.pa.us>
3904 Branch: REL9_3_STABLE [c393847a1] 2014-11-27 11:12:51 -0500
3905 Branch: REL9_2_STABLE [a1cd04cd0] 2014-11-27 11:12:55 -0500
3906 Branch: REL9_1_STABLE [168636a99] 2014-11-27 11:12:59 -0500
3907 Branch: REL9_0_STABLE [6a694bbab] 2014-11-27 11:13:03 -0500
3912 Avoid a possible crash in <filename>contrib/xml2</>'s
3913 <function>xslt_process()</> (Mark Simonetti)
3917 <application>libxslt</> seems to have an undocumented dependency on
3918 the order in which resources are freed; reorder our calls to avoid a
3924 Author: Tom Lane <tgl@sss.pgh.pa.us>
3925 Branch: REL9_3_STABLE [0247935c7] 2014-11-05 11:34:19 -0500
3926 Branch: REL9_2_STABLE [0ef754cad] 2014-11-05 11:34:22 -0500
3927 Branch: REL9_1_STABLE [7225abf00] 2014-11-05 11:34:25 -0500
3932 Mark some <filename>contrib</> I/O functions with correct volatility
3933 properties (Tom Lane)
3937 The previous over-conservative marking was immaterial in normal use,
3938 but could cause optimization problems or rejection of valid index
3939 expression definitions. Since the consequences are not large, we've
3940 just adjusted the function definitions in the extension modules'
3941 scripts, without changing version numbers.
3946 Author: Tom Lane <tgl@sss.pgh.pa.us>
3947 Branch: master [a59ee8819] 2015-01-30 13:05:30 -0500
3948 Branch: REL9_4_STABLE [70da7aeba] 2015-01-30 13:04:59 -0500
3949 Branch: REL9_3_STABLE [f08cf8ad9] 2015-01-30 13:05:01 -0500
3950 Branch: REL9_2_STABLE [a97dfdfd9] 2015-01-30 13:05:04 -0500
3951 Branch: REL9_1_STABLE [8f51c432c] 2015-01-30 13:05:07 -0500
3952 Branch: REL9_0_STABLE [7c41a32b3] 2015-01-30 13:05:09 -0500
3953 Author: Tom Lane <tgl@sss.pgh.pa.us>
3954 Branch: REL9_3_STABLE [8824bae87] 2014-11-18 13:28:13 -0500
3955 Author: Robert Haas <rhaas@postgresql.org>
3956 Branch: master [0b49642b9] 2015-01-15 09:26:03 -0500
3957 Branch: REL9_4_STABLE [7b65f194e] 2015-01-15 09:29:41 -0500
3958 Branch: REL9_3_STABLE [ebbef4f39] 2015-01-15 09:29:55 -0500
3959 Branch: REL9_2_STABLE [d452bfd1b] 2015-01-15 09:42:21 -0500
3960 Branch: REL9_1_STABLE [151fb75b0] 2015-01-15 09:42:33 -0500
3961 Branch: REL9_0_STABLE [0a67c0018] 2015-01-15 09:42:47 -0500
3962 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
3963 Branch: master [e37d474f9] 2015-01-13 14:33:05 +0200
3964 Branch: REL9_4_STABLE [4ebb3494e] 2015-01-13 16:01:04 +0200
3965 Author: Andres Freund <andres@anarazel.de>
3966 Branch: master [8cadeb792] 2015-01-04 15:44:49 +0100
3967 Branch: REL9_4_STABLE [7ced1b6c5] 2015-01-04 15:52:52 +0100
3968 Branch: REL9_3_STABLE [a68b8aec7] 2015-01-04 15:53:08 +0100
3969 Branch: REL9_2_STABLE [6f9b84a40] 2015-01-04 15:55:00 +0100
3970 Author: Andres Freund <andres@anarazel.de>
3971 Branch: master [58bc4747b] 2015-01-04 15:35:46 +0100
3972 Branch: REL9_4_STABLE [2d8411a0a] 2015-01-04 15:35:46 +0100
3973 Branch: REL9_3_STABLE [d33f36f16] 2015-01-04 15:35:47 +0100
3974 Branch: REL9_2_STABLE [029e41afd] 2015-01-04 15:35:47 +0100
3975 Branch: REL9_1_STABLE [39cdf365a] 2015-01-04 15:35:47 +0100
3976 Branch: REL9_0_STABLE [17797e18d] 2015-01-04 15:35:48 +0100
3977 Author: Andres Freund <andres@anarazel.de>
3978 Branch: master [0398ece4c] 2015-01-04 14:36:21 +0100
3979 Branch: REL9_4_STABLE [ff7d46b85] 2015-01-04 14:36:21 +0100
3980 Branch: REL9_3_STABLE [ec14f1601] 2015-01-04 14:36:22 +0100
3981 Branch: REL9_2_STABLE [f4060db11] 2015-01-04 14:36:22 +0100
3982 Author: Tatsuo Ishii <ishii@postgresql.org>
3983 Branch: master [3b5a89c48] 2014-12-30 20:33:01 +0900
3984 Branch: REL9_4_STABLE [458e8bc65] 2014-12-30 20:27:26 +0900
3985 Branch: REL9_3_STABLE [ed0e03283] 2014-12-30 20:20:56 +0900
3986 Branch: REL9_2_STABLE [4db7eaae0] 2014-12-30 19:59:26 +0900
3987 Branch: REL9_1_STABLE [4c136b0b6] 2014-12-30 19:48:53 +0900
3988 Branch: REL9_0_STABLE [9b74f3574] 2014-12-30 19:37:55 +0900
3989 Author: Tom Lane <tgl@sss.pgh.pa.us>
3990 Branch: master [66709133c] 2014-12-16 15:35:33 -0500
3991 Branch: REL9_4_STABLE [383d224a0] 2014-12-16 15:35:36 -0500
3992 Branch: REL9_3_STABLE [53960e7eb] 2014-12-16 15:35:40 -0500
3993 Branch: REL9_2_STABLE [e92c67ddc] 2014-12-16 15:35:43 -0500
3994 Branch: REL9_1_STABLE [5c784d96a] 2014-12-16 15:35:46 -0500
3995 Branch: REL9_0_STABLE [a2969bd72] 2014-12-16 15:35:49 -0500
3996 Author: Tom Lane <tgl@sss.pgh.pa.us>
3997 Branch: master [d38e8d30c] 2014-12-16 13:31:42 -0500
3998 Branch: REL9_4_STABLE [6c75384ee] 2014-12-16 13:31:57 -0500
3999 Branch: REL9_3_STABLE [3b750ec15] 2014-12-16 13:32:02 -0500
4000 Branch: REL9_2_STABLE [5b2c8f04a] 2014-12-16 13:32:15 -0500
4001 Branch: REL9_1_STABLE [926da211a] 2014-12-16 13:32:25 -0500
4002 Branch: REL9_0_STABLE [961df1853] 2014-12-16 13:32:38 -0500
4003 Author: Tom Lane <tgl@sss.pgh.pa.us>
4004 Branch: master [586dd5d6a] 2015-01-24 13:05:42 -0500
4005 Branch: REL9_4_STABLE [d51d4ff31] 2015-01-24 13:05:45 -0500
4006 Branch: REL9_3_STABLE [7240f9200] 2015-01-24 13:05:49 -0500
4007 Branch: REL9_2_STABLE [502e5f9c3] 2015-01-24 13:05:53 -0500
4008 Branch: REL9_1_STABLE [b00a08859] 2015-01-24 13:05:56 -0500
4009 Branch: REL9_0_STABLE [3a3ee655c] 2015-01-24 13:05:58 -0500
4014 Numerous cleanups of warnings from Coverity static code analyzer
4015 (Andres Freund, Tatsuo Ishii, Marko Kreen, Tom Lane, Michael Paquier)
4019 These changes are mostly cosmetic but in some cases fix corner-case
4020 bugs, for example a crash rather than a proper error report after an
4021 out-of-memory failure. None are believed to represent security
4027 Author: Robert Haas <rhaas@postgresql.org>
4028 Branch: REL9_3_STABLE [05c0059b3] 2014-07-30 12:10:20 -0400
4033 Fix setup of background workers in EXEC_BACKEND builds, eg Windows
4039 Author: Noah Misch <noah@leadboat.com>
4040 Branch: REL9_3_STABLE [07115248f] 2014-07-22 11:01:41 -0400
4041 Branch: REL9_2_STABLE [cec0c2182] 2014-07-22 11:01:51 -0400
4042 Branch: REL9_1_STABLE [81af4185a] 2014-07-22 11:02:00 -0400
4043 Branch: REL9_0_STABLE [4c6d0abde] 2014-07-22 11:02:25 -0400
4048 Detect incompatible OpenLDAP versions during build (Noah Misch)
4052 With OpenLDAP versions 2.4.24 through 2.4.31,
4053 inclusive, <productname>PostgreSQL</> backends can crash at exit.
4054 Raise a warning during <application>configure</> based on the
4055 compile-time OpenLDAP version number, and test the crashing scenario
4056 in the <filename>contrib/dblink</> regression test.
4061 Author: Noah Misch <noah@leadboat.com>
4062 Branch: REL9_3_STABLE [318fe2321] 2014-08-18 23:01:04 -0400
4063 Branch: REL9_2_STABLE [ebd4d9cdd] 2014-08-18 23:01:09 -0400
4064 Branch: REL9_1_STABLE [ba72fc054] 2014-08-18 23:01:13 -0400
4065 Branch: REL9_0_STABLE [e6841c4d6] 2014-08-18 23:01:23 -0400
4070 In non-MSVC Windows builds, ensure <filename>libpq.dll</> is installed
4071 with execute permissions (Noah Misch)
4076 Author: Tom Lane <tgl@sss.pgh.pa.us>
4077 Branch: master [aa719391d] 2015-01-19 23:44:19 -0500
4078 Branch: REL9_4_STABLE [3de9f22ac] 2015-01-19 23:44:22 -0500
4079 Branch: REL9_3_STABLE [1681e2f74] 2015-01-19 23:44:24 -0500
4080 Branch: REL9_2_STABLE [89b6a19e1] 2015-01-19 23:44:28 -0500
4081 Branch: REL9_1_STABLE [f4f522deb] 2015-01-19 23:44:30 -0500
4082 Branch: REL9_0_STABLE [338ff75fc] 2015-01-19 23:44:33 -0500
4087 Make <application>pg_regress</> remove any temporary installation it
4088 created upon successful exit (Tom Lane)
4092 This results in a very substantial reduction in disk space usage
4093 during <literal>make check-world</>, since that sequence involves
4094 creation of numerous temporary installations.
4099 Author: Tom Lane <tgl@sss.pgh.pa.us>
4100 Branch: REL9_3_STABLE [137e7c164] 2014-10-16 15:22:17 -0400
4101 Branch: REL9_2_STABLE [7c67b9365] 2014-10-16 15:22:20 -0400
4102 Branch: REL9_1_STABLE [2784b68b3] 2014-10-16 15:22:23 -0400
4103 Branch: REL9_0_STABLE [870a980aa] 2014-10-16 15:22:26 -0400
4108 Support time zone abbreviations that change UTC offset from time to
4113 Previously, <productname>PostgreSQL</> assumed that the UTC offset
4114 associated with a time zone abbreviation (such as <literal>EST</>)
4115 never changes in the usage of any particular locale. However this
4116 assumption fails in the real world, so introduce the ability for a
4117 zone abbreviation to represent a UTC offset that sometimes changes.
4118 Update the zone abbreviation definition files to make use of this
4119 feature in timezone locales that have changed the UTC offset of their
4120 abbreviations since 1970 (according to the IANA timezone database).
4121 In such timezones, <productname>PostgreSQL</> will now associate the
4122 correct UTC offset with the abbreviation depending on the given date.
4127 Author: Tom Lane <tgl@sss.pgh.pa.us>
4128 Branch: REL9_3_STABLE [9701f238b] 2014-10-03 17:44:56 -0400
4129 Branch: REL9_2_STABLE [d7d546bbc] 2014-10-03 17:44:59 -0400
4130 Branch: REL9_1_STABLE [252af79d9] 2014-10-03 17:45:03 -0400
4131 Branch: REL9_0_STABLE [cc7bad30c] 2014-10-03 17:45:07 -0400
4132 Author: Tom Lane <tgl@sss.pgh.pa.us>
4133 Branch: REL9_3_STABLE [0190f0a76] 2014-12-24 16:35:40 -0500
4134 Branch: REL9_2_STABLE [5c8665892] 2014-12-24 16:35:44 -0500
4135 Branch: REL9_1_STABLE [310597e31] 2014-12-24 16:35:48 -0500
4136 Branch: REL9_0_STABLE [8b70023af] 2014-12-24 16:35:54 -0500
4141 Update time zone abbreviations lists (Tom Lane)
4145 Add CST (China Standard Time) to our lists.
4146 Remove references to ADT as <quote>Arabia Daylight Time</>, an
4147 abbreviation that's been out of use since 2007; therefore, claiming
4148 there is a conflict with <quote>Atlantic Daylight Time</> doesn't seem
4150 Fix entirely incorrect GMT offsets for CKT (Cook Islands), FJT, and FJST
4151 (Fiji); we didn't even have them on the proper side of the date line.
4156 Author: Tom Lane <tgl@sss.pgh.pa.us>
4157 Branch: REL9_3_STABLE [8470cd473] 2015-01-30 22:46:05 -0500
4158 Branch: REL9_2_STABLE [c9048d353] 2015-01-30 22:46:12 -0500
4159 Branch: REL9_1_STABLE [cb24cd3f4] 2015-01-30 22:46:17 -0500
4160 Branch: REL9_0_STABLE [3553d9c6e] 2015-01-30 22:46:22 -0500
4161 Author: Tom Lane <tgl@sss.pgh.pa.us>
4162 Branch: REL9_3_STABLE [ab45d907b] 2014-11-17 12:08:25 -0500
4163 Branch: REL9_2_STABLE [b1e996035] 2014-11-17 12:08:32 -0500
4164 Branch: REL9_1_STABLE [b96c47a3d] 2014-11-17 12:08:39 -0500
4165 Branch: REL9_0_STABLE [92979576e] 2014-11-17 12:08:46 -0500
4166 Author: Tom Lane <tgl@sss.pgh.pa.us>
4167 Branch: REL9_3_STABLE [c66199151] 2014-10-04 14:18:33 -0400
4168 Branch: REL9_2_STABLE [8f75d7a25] 2014-10-04 14:18:36 -0400
4169 Branch: REL9_1_STABLE [745723c9e] 2014-10-04 14:18:39 -0400
4170 Branch: REL9_0_STABLE [b6391f587] 2014-10-04 14:18:43 -0400
4175 Update time zone data files to <application>tzdata</> release 2015a.
4179 The IANA timezone database has adopted abbreviations of the form
4180 <literal>A<replaceable>x</>ST</literal>/<literal>A<replaceable>x</>DT</literal>
4181 for all Australian time zones, reflecting what they believe to be
4182 current majority practice Down Under. These names do not conflict
4183 with usage elsewhere (other than ACST for Acre Summer Time, which has
4184 been in disuse since 1994). Accordingly, adopt these names into
4185 our <quote>Default</> timezone abbreviation set.
4186 The <quote>Australia</> abbreviation set now contains only CST, EAST,
4187 EST, SAST, SAT, and WST, all of which are thought to be mostly
4188 historical usage. Note that SAST has also been changed to be South
4189 Africa Standard Time in the <quote>Default</> abbreviation set.
4193 Also, add zone abbreviations SRET (Asia/Srednekolymsk) and XJT
4194 (Asia/Urumqi), and use WSST/WSDT for western Samoa. Also, there were
4195 DST law changes in Chile, Mexico, the Turks & Caicos Islands
4196 (America/Grand_Turk), and Fiji. There is a new zone
4197 Pacific/Bougainville for portions of Papua New Guinea. Also, numerous
4198 corrections for historical (pre-1970) time zone data.
4207 <sect1 id="release-9-3-5">
4208 <title>Release 9.3.5</title>
4211 <title>Release Date</title>
4212 <simpara>2014-07-24</simpara>
4216 This release contains a variety of fixes from 9.3.4.
4217 For information about new features in the 9.3 major release, see
4218 <xref linkend="release-9-3">.
4222 <title>Migration to Version 9.3.5</title>
4225 A dump/restore is not required for those running 9.3.X.
4229 However, this release corrects a logic error
4230 in <application>pg_upgrade</>, as well as an index corruption problem in
4231 some GiST indexes. See the first two changelog entries below to find out
4232 whether your installation has been affected and what steps you should take
4237 Also, if you are upgrading from a version earlier than 9.3.4,
4238 see <xref linkend="release-9-3-4">.
4244 <title>Changes</title>
4249 Author: Bruce Momjian <bruce@momjian.us>
4250 Branch: master [0f7482733] 2014-06-24 16:11:06 -0400
4251 Branch: REL9_4_STABLE [dd5369047] 2014-06-24 16:11:06 -0400
4252 Branch: REL9_3_STABLE [cc5841809] 2014-06-24 16:11:06 -0400
4257 In <application>pg_upgrade</>, remove <filename>pg_multixact</> files
4258 left behind by <application>initdb</> (Bruce Momjian)
4262 If you used a pre-9.3.5 version of <application>pg_upgrade</> to
4263 upgrade a database cluster to 9.3, it might have left behind a file
4264 <filename>$PGDATA/pg_multixact/offsets/0000</> that should not be
4265 there and will eventually cause problems in <command>VACUUM</>.
4266 <emphasis>However, in common cases this file is actually valid and
4267 must not be removed.</emphasis>
4268 To determine whether your installation has this problem, run this
4269 query as superuser, in any database of the cluster:
4271 WITH list(file) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets'))
4272 SELECT EXISTS (SELECT * FROM list WHERE file = '0000') AND
4273 NOT EXISTS (SELECT * FROM list WHERE file = '0001') AND
4274 NOT EXISTS (SELECT * FROM list WHERE file = 'FFFF') AND
4275 EXISTS (SELECT * FROM list WHERE file != '0000')
4276 AS file_0000_removal_required;
4278 If this query returns <literal>t</>, manually remove the file
4279 <filename>$PGDATA/pg_multixact/offsets/0000</>.
4280 Do nothing if the query returns <literal>f</>.
4285 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4286 Branch: master Release: REL9_4_BR [540ac7cea] 2014-05-13 15:15:13 +0300
4287 Branch: REL9_3_STABLE [d5b912c90] 2014-05-13 15:27:14 +0300
4288 Branch: REL9_2_STABLE [0d8d0d027] 2014-05-13 15:27:21 +0300
4289 Branch: REL9_1_STABLE [1913d0f28] 2014-05-13 15:27:28 +0300
4290 Branch: REL9_0_STABLE [c87c43f08] 2014-05-13 15:27:36 +0300
4291 Branch: REL8_4_STABLE [e31d77c96] 2014-05-13 15:27:43 +0300
4296 Correctly initialize padding bytes in <filename>contrib/btree_gist</>
4297 indexes on <type>bit</> columns (Heikki Linnakangas)
4301 This error could result in incorrect query results due to values that
4302 should compare equal not being seen as equal.
4303 Users with GiST indexes on <type>bit</> or <type>bit varying</>
4304 columns should <command>REINDEX</> those indexes after installing this
4310 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4311 Branch: master Release: REL9_4_BR [4f7bb4b2a] 2014-05-08 14:50:22 +0300
4312 Branch: REL9_3_STABLE [34572920c] 2014-05-08 14:43:04 +0300
4313 Branch: REL9_2_STABLE [31633f992] 2014-05-08 14:43:39 +0300
4314 Branch: REL9_1_STABLE [686a7194e] 2014-05-08 14:43:58 +0300
4315 Branch: REL9_0_STABLE [8b4efe1f3] 2014-05-08 14:44:06 +0300
4316 Branch: REL8_4_STABLE [be7830596] 2014-05-08 14:46:43 +0300
4321 Protect against torn pages when deleting GIN list pages (Heikki
4326 This fix prevents possible index corruption if a system crash occurs
4327 while the page update is being written to disk.
4332 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4333 Branch: master Release: REL9_4_BR [7ca32e255] 2014-04-08 14:51:40 +0300
4334 Branch: REL9_3_STABLE [601c01e08] 2014-04-08 14:51:49 +0300
4335 Branch: REL9_2_STABLE [02b9fd73e] 2014-04-08 14:51:56 +0300
4336 Branch: REL9_1_STABLE [ac0078c1d] 2014-04-08 14:52:01 +0300
4337 Branch: REL9_0_STABLE [d034e9b3b] 2014-04-08 14:52:07 +0300
4342 Don't clear the right-link of a GiST index page while replaying
4343 updates from WAL (Heikki Linnakangas)
4347 This error could lead to transiently wrong answers from GiST index
4348 scans performed in Hot Standby.
4353 Author: Tom Lane <tgl@sss.pgh.pa.us>
4354 Branch: master Release: REL9_4_BR [c170655cc] 2014-06-09 16:31:11 -0400
4355 Branch: REL9_3_STABLE [717c116f1] 2014-06-09 16:31:16 -0400
4356 Branch: REL9_2_STABLE [93328b2df] 2014-06-09 16:30:46 -0400
4361 Fix corner-case infinite loop during insertion into an SP-GiST text
4367 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4368 Branch: master [1264ef31a] 2014-07-16 09:19:06 +0300
4369 Branch: REL9_4_STABLE [9b3ef66af] 2014-07-16 09:20:20 +0300
4370 Branch: REL9_3_STABLE [a4867d041] 2014-07-16 09:20:31 +0300
4375 Fix incorrect answers from SP-GiST index searches
4376 with <literal>-|-</literal> (range adjacency) operator
4377 (Heikki Linnakangas)
4382 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4383 Branch: master Release: REL9_4_BR [b0b263baa] 2014-06-09 15:17:23 -0400
4384 Branch: REL9_3_STABLE [167a2535f] 2014-06-09 15:17:23 -0400
4389 Fix wraparound handling for <filename>pg_multixact/members</>
4390 (Álvaro Herrera)
4395 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4396 Branch: master [f741300c9] 2014-06-27 14:43:53 -0400
4397 Branch: REL9_4_STABLE [56f86bb76] 2014-06-27 14:43:52 -0400
4398 Branch: REL9_3_STABLE [9a28c3752] 2014-06-27 14:43:52 -0400
4403 Truncate <structname>pg_multixact</> during checkpoints, not
4404 during <command>VACUUM</> (Álvaro Herrera)
4408 This change ensures that <structname>pg_multixact</> segments can't be
4409 removed if they'd still be needed during WAL replay after a crash.
4414 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4415 Branch: master Release: REL9_4_BR [2a8e1ac59] 2014-04-17 17:47:50 +0300
4416 Branch: REL9_3_STABLE [95aa823eb] 2014-04-17 17:47:58 +0300
4421 Fix possible inconsistency of all-visible flags after WAL recovery
4422 (Heikki Linnakangas)
4427 Author: Tom Lane <tgl@sss.pgh.pa.us>
4428 Branch: master Release: REL9_4_BR [0f928a85e] 2014-05-05 14:43:39 -0400
4429 Branch: REL9_3_STABLE [4f4ef042f] 2014-05-05 14:43:42 -0400
4430 Branch: REL9_2_STABLE [c8fbeeb45] 2014-05-05 14:43:46 -0400
4431 Branch: REL9_1_STABLE [2f4ee3a2f] 2014-05-05 14:43:49 -0400
4432 Branch: REL9_0_STABLE [7d5b68621] 2014-05-05 14:43:52 -0400
4433 Branch: REL8_4_STABLE [3ada1fab8] 2014-05-05 14:43:55 -0400
4438 Fix possibly-incorrect cache invalidation during nested calls
4439 to <function>ReceiveSharedInvalidMessages</> (Andres Freund)
4444 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4445 Branch: master Release: REL9_4_BR [1a917ae86] 2014-04-24 15:41:55 -0300
4446 Branch: REL9_3_STABLE [c0bd128c8] 2014-04-24 15:41:55 -0300
4451 Fix race condition when updating a tuple concurrently locked by
4452 another process (Andres Freund, Álvaro Herrera)
4457 Author: Tom Lane <tgl@sss.pgh.pa.us>
4458 Branch: REL9_3_STABLE [a2db7b7d0] 2014-06-26 10:41:59 -0700
4459 Branch: REL9_2_STABLE [0cf16686b] 2014-06-26 10:42:03 -0700
4460 Branch: REL9_1_STABLE [555d0b200] 2014-06-26 10:42:08 -0700
4465 Fix <quote>could not find pathkey item to sort</> planner failures
4466 with <literal>UNION ALL</> over subqueries reading from tables with
4467 inheritance children (Tom Lane)
4472 Author: Tom Lane <tgl@sss.pgh.pa.us>
4473 Branch: master [9e2f2d7a0] 2014-07-08 14:03:56 -0400
4474 Branch: REL9_4_STABLE [ac45aa1dd] 2014-07-08 14:03:45 -0400
4475 Branch: REL9_3_STABLE [6d36aee5b] 2014-07-08 14:03:19 -0400
4476 Branch: REL9_2_STABLE [189bd09cb] 2014-07-08 14:03:23 -0400
4477 Branch: REL9_1_STABLE [fa21a760b] 2014-07-08 14:03:26 -0400
4478 Branch: REL9_0_STABLE [2865d5952] 2014-07-08 14:03:30 -0400
4479 Branch: REL8_4_STABLE [2e7469dc8] 2014-07-08 14:03:32 -0400
4484 Don't assume a subquery's output is unique if there's a set-returning
4485 function in its targetlist (David Rowley)
4489 This oversight could lead to misoptimization of constructs
4490 like <literal>WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP
4496 Author: Tom Lane <tgl@sss.pgh.pa.us>
4497 Branch: master Release: REL9_4_BR [95811032d] 2014-04-29 13:12:46 -0400
4498 Branch: REL9_3_STABLE [150a44e83] 2014-04-29 13:12:29 -0400
4499 Branch: REL9_2_STABLE [0901dbab3] 2014-04-29 13:12:33 -0400
4504 Improve planner to drop constant-NULL inputs
4505 of <literal>AND</>/<literal>OR</> when possible (Tom Lane)
4509 This change fixes some cases where the more aggressive parameter
4510 substitution done by 9.2 and later can lead to a worse plan than
4511 older versions produced.
4516 Author: Tom Lane <tgl@sss.pgh.pa.us>
4517 Branch: master Release: REL9_4_BR [c7b353959] 2014-04-03 22:02:24 -0400
4518 Branch: REL9_3_STABLE [d359f71ac] 2014-04-03 22:02:27 -0400
4523 Ensure that the planner sees equivalent <literal>VARIADIC</> and
4524 non-<literal>VARIADIC</> function calls as equivalent (Tom Lane)
4528 This bug could for example result in failure to use expression indexes
4529 involving variadic functions. It might be necessary to re-create such
4530 indexes, and/or re-create views including variadic function calls that
4531 should match the indexes, for the fix to be effective for existing 9.3
4537 Author: Tom Lane <tgl@sss.pgh.pa.us>
4538 Branch: master [57d8c1270] 2014-06-24 21:22:40 -0700
4539 Branch: REL9_4_STABLE [a331512de] 2014-06-24 21:22:43 -0700
4540 Branch: REL9_3_STABLE [a1fc36495] 2014-06-24 21:22:47 -0700
4545 Fix handling of nested <type>JSON</> objects
4546 in <function>json_populate_recordset()</> and friends
4547 (Michael Paquier, Tom Lane)
4551 A nested <type>JSON</> object could result in previous fields of the
4552 parent object not being shown in the output.
4557 Author: Tom Lane <tgl@sss.pgh.pa.us>
4558 Branch: master Release: REL9_4_BR [0ca6bda8e] 2014-05-09 12:55:31 -0400
4559 Branch: REL9_3_STABLE [13c679995] 2014-05-09 12:55:03 -0400
4560 Branch: REL9_2_STABLE [25c933c5c] 2014-05-09 12:55:06 -0400
4565 Fix identification of input type category in <function>to_json()</>
4566 and friends (Tom Lane)
4570 This is known to have led to inadequate quoting of <type>money</>
4571 fields in the <type>JSON</> result, and there may have been wrong
4572 results for other data types as well.
4577 Author: Tom Lane <tgl@sss.pgh.pa.us>
4578 Branch: master Release: REL9_4_BR [3f8c8e3c6] 2014-05-01 15:19:06 -0400
4579 Branch: REL9_3_STABLE [b72e90bc3] 2014-05-01 15:19:10 -0400
4580 Branch: REL9_2_STABLE [8c43980a1] 2014-05-01 15:19:14 -0400
4581 Branch: REL9_1_STABLE [db1fdc945] 2014-05-01 15:19:17 -0400
4582 Branch: REL9_0_STABLE [7a4f114f3] 2014-05-01 15:19:20 -0400
4583 Branch: REL8_4_STABLE [70debcf09] 2014-05-01 15:19:23 -0400
4588 Fix failure to detoast fields in composite elements of structured
4593 This corrects cases where TOAST pointers could be copied into other
4594 tables without being dereferenced. If the original data is later
4595 deleted, it would lead to errors like <quote>missing chunk number 0
4596 for toast value ...</> when the now-dangling pointer is used.
4601 Author: Tom Lane <tgl@sss.pgh.pa.us>
4602 Branch: master [d68581483] 2014-07-11 19:12:35 -0400
4603 Branch: REL9_4_STABLE [f280eff94] 2014-07-11 19:12:38 -0400
4604 Branch: REL9_3_STABLE [b77e6b959] 2014-07-11 19:12:42 -0400
4605 Branch: REL9_2_STABLE [261f954e7] 2014-07-11 19:12:45 -0400
4606 Branch: REL9_1_STABLE [c45841f9e] 2014-07-11 19:12:48 -0400
4607 Branch: REL9_0_STABLE [cd8ba91a0] 2014-07-11 19:12:51 -0400
4608 Branch: REL8_4_STABLE [a81fbcfb3] 2014-07-11 19:12:56 -0400
4613 Fix <quote>record type has not been registered</> failures with
4614 whole-row references to the output of Append plan nodes (Tom Lane)
4619 Author: Tom Lane <tgl@sss.pgh.pa.us>
4620 Branch: master Release: REL9_4_BR [04e5025be] 2014-05-07 14:25:11 -0400
4621 Branch: REL9_3_STABLE [fc58c39d4] 2014-05-07 14:25:13 -0400
4622 Branch: REL9_2_STABLE [022b5f2b2] 2014-05-07 14:25:17 -0400
4623 Branch: REL9_1_STABLE [229101db4] 2014-05-07 14:25:22 -0400
4624 Branch: REL9_0_STABLE [7f66ade71] 2014-05-07 14:25:25 -0400
4625 Branch: REL8_4_STABLE [2a527baa3] 2014-05-07 14:25:28 -0400
4630 Fix possible crash when invoking a user-defined function while
4631 rewinding a cursor (Tom Lane)
4636 Author: Tom Lane <tgl@sss.pgh.pa.us>
4637 Branch: master [45b0f3572] 2014-06-19 22:14:26 -0400
4638 Branch: REL9_4_STABLE [1044e79a0] 2014-06-19 22:13:44 -0400
4639 Branch: REL9_3_STABLE [c1f8fb9bf] 2014-06-19 22:13:47 -0400
4640 Branch: REL9_2_STABLE [b568d3836] 2014-06-19 22:13:51 -0400
4641 Branch: REL9_1_STABLE [06d5eacbc] 2014-06-19 22:13:54 -0400
4642 Branch: REL9_0_STABLE [83131e634] 2014-06-19 22:13:58 -0400
4643 Branch: REL8_4_STABLE [d297c91d4] 2014-06-19 22:14:00 -0400
4648 Fix query-lifespan memory leak while evaluating the arguments for a
4649 function in <literal>FROM</> (Tom Lane)
4654 Author: Tom Lane <tgl@sss.pgh.pa.us>
4655 Branch: master [1567e659a] 2014-07-18 13:00:27 -0400
4656 Branch: REL9_4_STABLE [4a66f0f2d] 2014-07-18 13:00:39 -0400
4657 Branch: REL9_3_STABLE [5ef588b22] 2014-07-18 13:00:43 -0400
4658 Branch: REL9_2_STABLE [a223b9e36] 2014-07-18 13:00:48 -0400
4659 Branch: REL9_1_STABLE [8a817785a] 2014-07-18 13:00:52 -0400
4660 Branch: REL9_0_STABLE [b8c24f7ab] 2014-07-18 13:00:57 -0400
4661 Branch: REL8_4_STABLE [e0a233744] 2014-07-18 13:01:04 -0400
4666 Fix session-lifespan memory leaks in regular-expression processing
4667 (Tom Lane, Arthur O'Dwyer, Greg Stark)
4672 Author: Tom Lane <tgl@sss.pgh.pa.us>
4673 Branch: master [fd90b5d57] 2014-06-10 22:48:16 -0400
4674 Branch: REL9_4_STABLE [7f9fbb842] 2014-06-10 22:48:31 -0400
4675 Branch: REL9_3_STABLE [87db9534a] 2014-06-10 22:48:39 -0400
4676 Branch: REL9_2_STABLE [802323535] 2014-06-10 22:48:45 -0400
4677 Branch: REL9_1_STABLE [62f134954] 2014-06-10 22:48:52 -0400
4678 Branch: REL9_0_STABLE [4d5ea4290] 2014-06-10 22:48:59 -0400
4679 Branch: REL8_4_STABLE [f3f40434b] 2014-06-10 22:49:08 -0400
4684 Fix data encoding error in <filename>hungarian.stop</> (Tom Lane)
4689 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4690 Branch: master [a87a7dc8b] 2014-06-24 13:27:18 +0300
4691 Branch: REL9_4_STABLE [1818ae0a7] 2014-06-24 13:31:06 +0300
4692 Branch: REL9_3_STABLE [2a7512bc7] 2014-06-24 13:31:00 +0300
4693 Branch: REL9_2_STABLE [1c9f9e888] 2014-06-24 13:30:54 +0300
4694 Branch: REL9_1_STABLE [dd1a5b09b] 2014-06-24 13:30:41 +0300
4699 Prevent foreign tables from being created with OIDS
4700 when <xref linkend="guc-default-with-oids"> is true
4706 Author: Andres Freund <andres@anarazel.de>
4707 Branch: master Release: REL9_4_BR [621a99a66] 2014-06-04 21:36:19 +0200
4708 Branch: REL9_3_STABLE [edde59db1] 2014-06-04 23:26:08 +0200
4709 Branch: REL9_2_STABLE [315442c01] 2014-06-04 23:25:52 +0200
4710 Branch: REL9_1_STABLE [6bf6e528a] 2014-06-04 23:26:30 +0200
4711 Branch: REL9_0_STABLE [037c6fb9f] 2014-06-04 23:27:10 +0200
4712 Branch: REL8_4_STABLE [80d45ae4e] 2014-06-04 23:27:38 +0200
4717 Fix liveness checks for rows that were inserted in the current
4718 transaction and then deleted by a now-rolled-back subtransaction
4723 This could cause problems (at least spurious warnings, and at worst an
4724 infinite loop) if <command>CREATE INDEX</> or <command>CLUSTER</> were
4725 done later in the same transaction.
4730 Author: Tom Lane <tgl@sss.pgh.pa.us>
4731 Branch: master Release: REL9_4_BR [d19bd29f0] 2014-04-24 13:29:48 -0400
4732 Branch: REL9_3_STABLE [12e41a5d7] 2014-04-24 13:29:56 -0400
4733 Branch: REL9_2_STABLE [ea9ac7741] 2014-04-24 13:30:00 -0400
4734 Branch: REL9_1_STABLE [70e7be264] 2014-04-24 13:30:04 -0400
4735 Branch: REL9_0_STABLE [b7a3e1173] 2014-04-24 13:30:08 -0400
4736 Branch: REL8_4_STABLE [82fbd88a7] 2014-04-24 13:30:14 -0400
4741 Clear <structname>pg_stat_activity</>.<structfield>xact_start</>
4742 during <command>PREPARE TRANSACTION</> (Andres Freund)
4746 After the <command>PREPARE</>, the originating session is no longer in
4747 a transaction, so it should not continue to display a transaction
4753 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4754 Branch: master [6bdf4b9c7] 2014-07-15 13:24:07 -0400
4755 Branch: REL9_4_STABLE [e45229bb6] 2014-07-15 13:24:07 -0400
4756 Branch: REL9_3_STABLE [12c5bbdcb] 2014-07-15 13:24:07 -0400
4757 Branch: REL9_2_STABLE [b42f09fc8] 2014-07-15 13:24:07 -0400
4758 Branch: REL9_1_STABLE [a41dc7321] 2014-07-15 13:24:07 -0400
4759 Branch: REL9_0_STABLE [bf08864b8] 2014-07-15 13:24:07 -0400
4760 Branch: REL8_4_STABLE [4b767789d] 2014-07-15 13:24:07 -0400
4765 Fix <command>REASSIGN OWNED</> to not fail for text search objects
4766 (Álvaro Herrera)
4771 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
4772 Branch: master [b7e51d9c0] 2014-06-27 14:43:46 -0400
4773 Branch: REL9_4_STABLE [9eecc8a7c] 2014-06-27 14:43:46 -0400
4774 Branch: REL9_3_STABLE [e86cfc4bb] 2014-06-27 14:43:45 -0400
4779 Prevent <structname>pg_class</>.<structfield>relminmxid</> values from
4780 going backwards during <command>VACUUM FULL</> (Álvaro Herrera)
4785 Author: Tom Lane <tgl@sss.pgh.pa.us>
4786 Branch: master Release: REL9_4_BR [41de93c53] 2014-04-30 13:26:26 -0400
4787 Branch: REL9_3_STABLE [0652d77fb] 2014-04-30 13:26:29 -0400
4792 Reduce indentation in rule/view dumps to improve readability and avoid
4793 excessive whitespace (Greg Stark, Tom Lane)
4797 This change reduces the amount of indentation applied to nested
4798 constructs, including some cases that the user probably doesn't think
4799 of as nested, such as UNION lists. Previously, deeply nested
4800 constructs were printed with an amount of whitespace growing as
4801 O(N^2), which created a performance problem and even risk of
4802 out-of-memory failures. Now the indentation is reduced modulo 40,
4803 which is initially odd to look at but seems to preserve readability
4804 better than simply limiting the indentation would do.
4805 Redundant parenthesization of UNION lists has been reduced as well.
4810 Author: Tom Lane <tgl@sss.pgh.pa.us>
4811 Branch: master Release: REL9_4_BR [91e16b980] 2014-05-01 20:22:37 -0400
4812 Branch: REL9_3_STABLE [e31193d49] 2014-05-01 20:22:39 -0400
4817 Fix dumping of rules/views when subsequent addition of a column has
4818 resulted in multiple input columns matching a <literal>USING</>
4819 specification (Tom Lane)
4824 Author: Tom Lane <tgl@sss.pgh.pa.us>
4825 Branch: master [9b35ddce9] 2014-07-19 14:28:52 -0400
4826 Branch: REL9_4_STABLE [f0a497e4c] 2014-07-19 14:29:00 -0400
4827 Branch: REL9_3_STABLE [b978ab5f6] 2014-07-19 14:29:05 -0400
4832 Repair view printing for some cases involving functions
4833 in <literal>FROM</> that return a composite type containing dropped
4839 Author: Tom Lane <tgl@sss.pgh.pa.us>
4840 Branch: master Release: REL9_4_BR [5d8117e1f] 2014-04-05 18:16:08 -0400
4841 Branch: REL9_3_STABLE [21aa47d01] 2014-04-05 18:16:11 -0400
4842 Branch: REL9_2_STABLE [53463e247] 2014-04-05 18:16:14 -0400
4843 Branch: REL9_1_STABLE [093d3da1d] 2014-04-05 18:16:17 -0400
4844 Branch: REL9_0_STABLE [5c26ab659] 2014-04-05 18:16:20 -0400
4845 Branch: REL8_4_STABLE [969735cf1] 2014-04-05 18:16:24 -0400
4850 Block signals during postmaster startup (Tom Lane)
4854 This ensures that the postmaster will properly clean up after itself
4855 if, for example, it receives <systemitem>SIGINT</> while still
4861 Author: Tom Lane <tgl@sss.pgh.pa.us>
4862 Branch: master Release: REL9_4_BR [fc752505a] 2014-04-02 17:11:24 -0400
4863 Branch: REL9_3_STABLE [65183fb78] 2014-04-02 17:11:27 -0400
4864 Branch: REL9_2_STABLE [029decfec] 2014-04-02 17:11:31 -0400
4865 Branch: REL9_1_STABLE [b7a424371] 2014-04-02 17:11:34 -0400
4870 Fix client host name lookup when processing <filename>pg_hba.conf</>
4871 entries that specify host names instead of IP addresses (Tom Lane)
4875 Ensure that reverse-DNS lookup failures are reported, instead of just
4876 silently not matching such entries. Also ensure that we make only
4877 one reverse-DNS lookup attempt per connection, not one per host name
4878 entry, which is what previously happened if the lookup attempts failed.
4883 Author: Tom Lane <tgl@sss.pgh.pa.us>
4884 Branch: master Release: REL9_4_BR [b203c57bb] 2014-04-04 22:03:35 -0400
4885 Branch: REL9_3_STABLE [7d1a0f585] 2014-04-04 22:03:38 -0400
4886 Branch: REL9_2_STABLE [6d25eb314] 2014-04-04 22:03:42 -0400
4891 Allow the root user to use <literal>postgres -C variable</> and
4892 <literal>postgres --describe-config</> (MauMau)
4896 The prohibition on starting the server as root does not need to extend
4897 to these operations, and relaxing it prevents failure
4898 of <application>pg_ctl</> in some scenarios.
4903 Author: Noah Misch <noah@leadboat.com>
4904 Branch: master [be76a6d39] 2014-06-14 09:41:13 -0400
4905 Branch: REL9_4_STABLE [6583a75b2] 2014-06-14 09:41:16 -0400
4906 Branch: REL9_3_STABLE [1442b426e] 2014-06-14 09:41:17 -0400
4907 Branch: REL9_2_STABLE [453a5d91d] 2014-06-14 09:41:17 -0400
4908 Branch: REL9_1_STABLE [481831b43] 2014-06-14 09:41:18 -0400
4909 Branch: REL9_0_STABLE [5f09c583c] 2014-06-14 09:41:18 -0400
4910 Branch: REL8_4_STABLE [95cefd30e] 2014-06-14 09:41:18 -0400
4915 Secure Unix-domain sockets of temporary postmasters started during
4916 <literal>make check</> (Noah Misch)
4920 Any local user able to access the socket file could connect as the
4921 server's bootstrap superuser, then proceed to execute arbitrary code as
4922 the operating-system user running the test, as we previously noted in
4923 CVE-2014-0067. This change defends against that risk by placing the
4924 server's socket in a temporary, mode 0700 subdirectory
4925 of <filename>/tmp</>. The hazard remains however on platforms where
4926 Unix sockets are not supported, notably Windows, because then the
4927 temporary postmaster must accept local TCP connections.
4931 A useful side effect of this change is to simplify
4932 <literal>make check</> testing in builds that
4933 override <literal>DEFAULT_PGSOCKET_DIR</>. Popular non-default values
4934 like <filename>/var/run/postgresql</> are often not writable by the
4935 build user, requiring workarounds that will no longer be necessary.
4940 Author: Tom Lane <tgl@sss.pgh.pa.us>
4941 Branch: master Release: REL9_4_BR [abe075dff] 2014-04-04 23:09:35 -0400
4942 Branch: REL9_3_STABLE [84520f91c] 2014-04-04 23:09:38 -0400
4943 Branch: REL9_2_STABLE [1a496a12b] 2014-04-04 23:09:41 -0400
4944 Branch: REL9_1_STABLE [af7738fe6] 2014-04-04 23:09:45 -0400
4945 Branch: REL9_0_STABLE [634056567] 2014-04-04 23:09:49 -0400
4950 Fix tablespace creation WAL replay to work on Windows (MauMau)
4955 Author: Bruce Momjian <bruce@momjian.us>
4956 Branch: master Release: REL9_4_BR [418093465] 2014-04-16 10:45:48 -0400
4957 Branch: REL9_3_STABLE [f716c3250] 2014-04-16 10:45:48 -0400
4958 Branch: REL9_2_STABLE [966f015b6] 2014-04-16 10:45:48 -0400
4959 Branch: REL9_1_STABLE [bed499ed1] 2014-04-16 10:45:48 -0400
4960 Branch: REL9_0_STABLE [a86b2daff] 2014-04-16 10:45:48 -0400
4965 Fix detection of socket creation failures on Windows (Bruce Momjian)
4970 Author: Tom Lane <tgl@sss.pgh.pa.us>
4971 Branch: master Release: REL9_4_BR [6862ca697] 2014-04-05 12:41:25 -0400
4972 Branch: REL9_3_STABLE [18db2150c] 2014-04-05 12:41:28 -0400
4973 Branch: REL9_2_STABLE [bdc3e95c2] 2014-04-05 12:41:31 -0400
4974 Branch: REL9_1_STABLE [cb11f4d8d] 2014-04-05 12:41:34 -0400
4975 Branch: REL9_0_STABLE [9500d8f89] 2014-04-05 12:41:38 -0400
4976 Branch: REL8_4_STABLE [30e434bdf] 2014-04-05 12:41:40 -0400
4981 On Windows, allow new sessions to absorb values of PGC_BACKEND
4982 parameters (such as <xref linkend="guc-log-connections">) from the
4983 configuration file (Amit Kapila)
4987 Previously, if such a parameter were changed in the file post-startup,
4988 the change would have no effect.
4993 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
4994 Branch: master Release: REL9_4_BR [503de5462] 2014-04-30 10:35:52 +0300
4995 Branch: REL9_3_STABLE [8a90a39b4] 2014-04-30 10:35:46 +0300
4996 Branch: REL9_2_STABLE [e2558e016] 2014-04-30 10:36:31 +0300
4997 Branch: REL9_1_STABLE [94095e341] 2014-04-30 10:36:41 +0300
4998 Branch: REL9_0_STABLE [c06b7219a] 2014-04-30 10:38:32 +0300
4999 Branch: REL8_4_STABLE [e3f273ff6] 2014-04-30 10:39:03 +0300
5004 Properly quote executable path names on Windows (Nikhil Deshpande)
5008 This oversight could cause <application>initdb</>
5009 and <application>pg_upgrade</> to fail on Windows, if the installation
5010 path contained both spaces and <literal>@</> signs.
5015 Author: Tom Lane <tgl@sss.pgh.pa.us>
5016 Branch: master Release: REL9_4_BR [20561acf9] 2014-05-30 18:19:06 -0400
5017 Branch: REL9_3_STABLE [4f5f4da79] 2014-05-30 18:19:14 -0400
5018 Branch: REL9_2_STABLE [83ed4598b] 2014-05-30 18:18:20 -0400
5019 Branch: REL9_1_STABLE [a784a39c4] 2014-05-30 18:18:24 -0400
5020 Branch: REL9_0_STABLE [4f725bbc4] 2014-05-30 18:18:28 -0400
5021 Branch: REL8_4_STABLE [ae41bb4be] 2014-05-30 18:18:32 -0400
5026 Fix linking of <application>libpython</> on OS X (Tom Lane)
5030 The method we previously used can fail with the Python library
5031 supplied by Xcode 5.0 and later.
5036 Author: Tom Lane <tgl@sss.pgh.pa.us>
5037 Branch: master Release: REL9_4_BR [2f557167b] 2014-05-07 21:39:13 -0400
5038 Branch: REL9_3_STABLE [b4f9c93ce] 2014-05-07 21:38:38 -0400
5039 Branch: REL9_2_STABLE [f7672c8ce] 2014-05-07 21:38:41 -0400
5040 Branch: REL9_1_STABLE [86888054a] 2014-05-07 21:38:44 -0400
5041 Branch: REL9_0_STABLE [77e662827] 2014-05-07 21:38:47 -0400
5042 Branch: REL8_4_STABLE [664ac3de7] 2014-05-07 21:38:50 -0400
5047 Avoid buffer bloat in <application>libpq</> when the server
5048 consistently sends data faster than the client can absorb it
5049 (Shin-ichi Morita, Tom Lane)
5053 <application>libpq</> could be coerced into enlarging its input buffer
5054 until it runs out of memory (which would be reported misleadingly
5055 as <quote>lost synchronization with server</>). Under ordinary
5056 circumstances it's quite far-fetched that data could be continuously
5057 transmitted more quickly than the <function>recv()</> loop can
5058 absorb it, but this has been observed when the client is artificially
5059 slowed by scheduler constraints.
5064 Author: Magnus Hagander <magnus@hagander.net>
5065 Branch: master Release: REL9_4_BR [585bca393] 2014-04-16 18:58:10 +0200
5066 Branch: REL9_3_STABLE [cc269272c] 2014-04-16 18:58:55 +0200
5067 Branch: REL9_2_STABLE [b764080ee] 2014-04-16 18:59:11 +0200
5068 Branch: REL9_1_STABLE [c4bf15b9c] 2014-04-16 18:59:28 +0200
5069 Branch: REL9_0_STABLE [96752b02d] 2014-04-16 18:59:37 +0200
5070 Branch: REL8_4_STABLE [b4ae2e37d] 2014-04-16 18:59:48 +0200
5075 Ensure that LDAP lookup attempts in <application>libpq</> time out as
5076 intended (Laurenz Albe)
5081 Author: Michael Meskes <meskes@postgresql.org>
5082 Branch: master Release: REL9_4_BR [8d6a07fa0] 2014-05-06 13:09:51 +0200
5083 Branch: REL9_3_STABLE [b4eeb9d58] 2014-05-06 13:04:30 +0200
5084 Branch: REL9_2_STABLE [3a024c110] 2014-05-06 13:14:01 +0200
5085 Branch: REL9_1_STABLE [fb66e88cf] 2014-05-06 13:20:22 +0200
5086 Branch: REL9_0_STABLE [91c8c106f] 2014-05-06 13:24:13 +0200
5088 Author: Michael Meskes <meskes@postgresql.org>
5089 Branch: master Release: REL9_4_BR [f91796853] 2014-04-09 11:23:38 +0200
5090 Branch: REL9_3_STABLE [3b8fda676] 2014-04-09 11:38:40 +0200
5091 Branch: REL9_2_STABLE [2b3136de9] 2014-04-09 11:43:13 +0200
5092 Branch: REL9_1_STABLE [0de106836] 2014-04-09 12:04:33 +0200
5093 Branch: REL9_0_STABLE [0c2eb989e] 2014-04-09 12:12:32 +0200
5098 Fix <application>ecpg</> to do the right thing when an array
5099 of <type>char *</> is the target for a FETCH statement returning more
5100 than one row, as well as some other array-handling fixes
5106 Author: Tom Lane <tgl@sss.pgh.pa.us>
5107 Branch: master Release: REL9_4_BR [62215de29] 2014-03-29 17:34:00 -0400
5108 Branch: REL9_3_STABLE [3080bbaa9] 2014-03-29 17:34:03 -0400
5113 Fix <application>pg_dump</> to cope with a materialized view that
5114 depends on a table's primary key (Tom Lane)
5118 This occurs if the view's query relies on functional dependency to
5119 abbreviate a <literal>GROUP BY</> list. <application>pg_dump</> got
5120 sufficiently confused that it dumped the materialized view as a
5126 Author: Tom Lane <tgl@sss.pgh.pa.us>
5127 Branch: master Release: REL9_4_BR [19f2d6cda] 2014-03-18 10:38:25 -0400
5128 Branch: REL9_3_STABLE [63817f86b] 2014-03-18 10:38:38 -0400
5133 Fix parsing of <application>pg_dumpall</>'s <option>-i</> switch
5139 Author: Tom Lane <tgl@sss.pgh.pa.us>
5140 Branch: master [c81e63d85] 2014-06-12 20:14:32 -0400
5141 Branch: REL9_4_STABLE [c3c1401ca] 2014-06-12 20:14:36 -0400
5142 Branch: REL9_3_STABLE [a11577f47] 2014-06-12 20:14:39 -0400
5143 Branch: REL9_2_STABLE [ce7fc4fbb] 2014-06-12 20:14:46 -0400
5144 Branch: REL9_1_STABLE [294a48985] 2014-06-12 20:14:49 -0400
5145 Branch: REL9_0_STABLE [3fec825f9] 2014-06-12 20:14:52 -0400
5146 Branch: REL8_4_STABLE [6adddac8a] 2014-06-12 20:14:55 -0400
5151 Fix <application>pg_restore</>'s processing of old-style large object
5156 A direct-to-database restore from an archive file generated by a
5157 pre-9.0 version of <application>pg_dump</> would usually fail if the
5158 archive contained more than a few comments for large objects.
5163 Author: Bruce Momjian <bruce@momjian.us>
5164 Branch: master [3088cc370] 2014-07-07 13:24:08 -0400
5165 Branch: REL9_4_STABLE [f64fe2cbe] 2014-07-07 13:24:08 -0400
5166 Branch: REL9_3_STABLE [f1d7ff5bb] 2014-07-07 13:24:08 -0400
5167 Branch: REL9_2_STABLE [759c9fb63] 2014-07-07 13:24:08 -0400
5172 Fix <application>pg_upgrade</> for cases where the new server creates
5173 a TOAST table but the old version did not (Bruce Momjian)
5177 This rare situation would manifest as <quote>relation OID mismatch</>
5183 Author: Bruce Momjian <bruce@momjian.us>
5184 Branch: master [a61daa14d] 2014-07-02 15:29:38 -0400
5185 Branch: REL9_4_STABLE [b446a384b] 2014-07-02 15:29:38 -0400
5186 Branch: REL9_3_STABLE [3d2e18510] 2014-07-02 15:29:38 -0400
5188 Author: Tom Lane <tgl@sss.pgh.pa.us>
5189 Branch: master [78db307bb] 2014-07-21 11:41:53 -0400
5190 Branch: REL9_4_STABLE [d122387d7] 2014-07-21 11:42:00 -0400
5191 Branch: REL9_3_STABLE [e7984cca0] 2014-07-21 11:42:05 -0400
5196 In <application>pg_upgrade</>,
5197 preserve <structname>pg_database</>.<structfield>datminmxid</>
5198 and <structname>pg_class</>.<structfield>relminmxid</> values from the
5199 old cluster, or insert reasonable values when upgrading from pre-9.3;
5200 also defend against unreasonable values in the core server
5201 (Bruce Momjian, Álvaro Herrera, Tom Lane)
5205 These changes prevent scenarios in which autovacuum might insist on
5206 scanning the entire cluster's contents immediately upon starting the
5207 new cluster, or in which tracking of unfrozen MXID values might be
5208 disabled completely.
5213 Author: Tom Lane <tgl@sss.pgh.pa.us>
5214 Branch: master Release: REL9_4_BR [e416830a2] 2014-05-20 12:20:47 -0400
5215 Branch: REL9_3_STABLE [0266a9c78] 2014-05-20 12:20:52 -0400
5216 Branch: REL9_2_STABLE [31f579f09] 2014-05-20 12:20:57 -0400
5221 Prevent <filename>contrib/auto_explain</> from changing the output of
5222 a user's <command>EXPLAIN</> (Tom Lane)
5226 If <filename>auto_explain</> is active, it could cause
5227 an <literal>EXPLAIN (ANALYZE, TIMING OFF)</> command to nonetheless
5228 print timing information.
5233 Author: Joe Conway <mail@joeconway.com>
5234 Branch: master [1dde5782e] 2014-06-20 12:24:59 -0700
5235 Branch: REL9_4_STABLE [9d884a34c] 2014-06-20 12:26:26 -0700
5236 Branch: REL9_3_STABLE [b3a3f3d2f] 2014-06-20 12:26:43 -0700
5237 Branch: REL9_2_STABLE [3e2cfa42f] 2014-06-20 12:27:04 -0700
5242 Fix query-lifespan memory leak in <filename>contrib/dblink</>
5243 (MauMau, Joe Conway)
5248 Author: Bruce Momjian <bruce@momjian.us>
5249 Branch: master Release: REL9_4_BR [9fe55259f] 2014-04-17 12:37:53 -0400
5250 Branch: REL9_3_STABLE [fc72e94a1] 2014-04-17 12:37:53 -0400
5251 Branch: REL9_2_STABLE [ea8725a8b] 2014-04-17 12:37:53 -0400
5252 Branch: REL9_1_STABLE [fc02b87e2] 2014-04-17 12:37:53 -0400
5253 Branch: REL9_0_STABLE [a1b9c4630] 2014-04-17 12:37:53 -0400
5254 Branch: REL8_4_STABLE [df2e62603] 2014-04-17 12:37:53 -0400
5259 In <filename>contrib/pgcrypto</> functions, ensure sensitive
5260 information is cleared from stack variables before returning
5266 Author: Noah Misch <noah@leadboat.com>
5267 Branch: master [9d0826c59] 2014-06-30 16:59:19 -0400
5268 Branch: REL9_4_STABLE [37a4d3d70] 2014-06-30 16:59:44 -0400
5269 Branch: REL9_3_STABLE [f14e40852] 2014-06-30 17:00:22 -0400
5270 Branch: REL9_2_STABLE [f6d6b7b1e] 2014-06-30 17:00:40 -0400
5275 Prevent use of already-freed memory in
5276 <filename>contrib/pgstattuple</>'s <function>pgstat_heap()</>
5282 Author: Tom Lane <tgl@sss.pgh.pa.us>
5283 Branch: master Release: REL9_4_BR [c941aed96] 2014-05-29 13:51:02 -0400
5284 Branch: REL9_3_STABLE [961dd203a] 2014-05-29 13:51:05 -0400
5285 Branch: REL9_2_STABLE [2fb9fb661] 2014-05-29 13:51:09 -0400
5286 Branch: REL9_1_STABLE [3606754da] 2014-05-29 13:51:12 -0400
5287 Branch: REL9_0_STABLE [b2f6754d2] 2014-05-29 13:51:15 -0400
5288 Branch: REL8_4_STABLE [fd785441f] 2014-05-29 13:51:18 -0400
5293 In <filename>contrib/uuid-ossp</>, cache the state of the OSSP UUID
5294 library across calls (Tom Lane)
5298 This improves the efficiency of UUID generation and reduces the amount
5299 of entropy drawn from <filename>/dev/urandom</>, on platforms that
5305 Author: Tom Lane <tgl@sss.pgh.pa.us>
5306 Branch: master [b1864fabf] 2014-07-19 15:00:50 -0400
5307 Branch: REL9_4_STABLE [e5ea60e80] 2014-07-19 15:01:05 -0400
5308 Branch: REL9_3_STABLE [bd5458f52] 2014-07-19 15:01:12 -0400
5309 Branch: REL9_2_STABLE [7d09e4854] 2014-07-19 15:01:18 -0400
5310 Branch: REL9_1_STABLE [40ccb6530] 2014-07-19 15:01:28 -0400
5311 Branch: REL9_0_STABLE [7659b6913] 2014-07-19 15:01:38 -0400
5312 Branch: REL8_4_STABLE [c51da696b] 2014-07-19 15:01:45 -0400
5317 Update time zone data files to <application>tzdata</> release 2014e
5318 for DST law changes in Crimea, Egypt, and Morocco.
5327 <sect1 id="release-9-3-4">
5328 <title>Release 9.3.4</title>
5331 <title>Release Date</title>
5332 <simpara>2014-03-20</simpara>
5336 This release contains a variety of fixes from 9.3.3.
5337 For information about new features in the 9.3 major release, see
5338 <xref linkend="release-9-3">.
5342 <title>Migration to Version 9.3.4</title>
5345 A dump/restore is not required for those running 9.3.X.
5349 However, the error fixed in the first changelog entry below could have
5350 resulted in corrupt data on standby servers. It may be prudent to
5351 reinitialize standby servers from fresh base backups after installing
5356 Also, if you are upgrading from a version earlier than 9.3.3,
5357 see <xref linkend="release-9-3-3">.
5363 <title>Changes</title>
5368 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5369 Branch: master [6bfa88acd] 2014-02-27 11:13:39 -0300
5370 Branch: REL9_3_STABLE [9a57858f1] 2014-02-27 11:23:24 -0300
5375 Fix WAL replay of locking an already-updated tuple (Andres Freund,
5376 Álvaro Herrera)
5380 This error caused updated rows to not be found by index scans, resulting
5381 in inconsistent query results depending on whether an index scan was
5382 used. Subsequent processing could result in constraint violations,
5383 since the previously updated row would not be found by later index
5384 searches, thus possibly allowing conflicting rows to be inserted.
5385 Since this error is in WAL replay, it would only manifest during crash
5386 recovery or on standby servers. The improperly-replayed case most
5387 commonly arises when a table row that is referenced by a foreign-key
5388 constraint is updated concurrently with creation of a referencing row.
5393 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5394 Branch: master [fecfc2b91] 2014-03-12 10:04:57 +0200
5395 Branch: REL9_3_STABLE [4738cc356] 2014-03-12 10:05:46 +0200
5396 Branch: REL9_2_STABLE [91f932cf4] 2014-03-12 10:07:22 +0200
5397 Branch: REL9_1_STABLE [63e59c259] 2014-03-12 10:09:22 +0200
5398 Branch: REL9_0_STABLE [9954e1f03] 2014-03-12 10:09:43 +0200
5399 Branch: REL8_4_STABLE [e2bccdfcc] 2014-03-12 10:10:04 +0200
5404 Restore GIN metapages unconditionally to avoid torn-page risk
5405 (Heikki Linnakangas)
5409 Although this oversight could theoretically result in a corrupted
5410 index, it is unlikely to have caused any problems in practice, since
5411 the active part of a GIN metapage is smaller than a standard 512-byte
5417 Author: Tom Lane <tgl@sss.pgh.pa.us>
5418 Branch: master [7bae0284e] 2014-03-13 12:02:54 -0400
5419 Branch: REL9_3_STABLE [0d11fed8e] 2014-03-13 12:02:56 -0400
5420 Branch: REL9_2_STABLE [bbe9621a9] 2014-03-13 12:03:00 -0400
5421 Branch: REL9_1_STABLE [7bfdf10f5] 2014-03-13 12:03:03 -0400
5422 Branch: REL9_0_STABLE [7aea1050e] 2014-03-13 12:03:07 -0400
5427 Avoid race condition in checking transaction commit status during
5428 receipt of a <command>NOTIFY</> message (Marko Tiikkaja)
5432 This prevents a scenario wherein a sufficiently fast client might
5433 respond to a notification before database updates made by the
5434 notifier have become visible to the recipient.
5439 Author: Tom Lane <tgl@sss.pgh.pa.us>
5440 Branch: master [bf4052faa] 2014-03-06 11:37:02 -0500
5441 Branch: REL9_3_STABLE [3973034e6] 2014-03-06 11:37:04 -0500
5446 Allow materialized views to be referenced in <command>UPDATE</>
5447 and <command>DELETE</> commands (Michael Paquier)
5451 Previously such queries failed with a complaint about not being able
5452 to lock rows in the materialized view.
5457 Author: Tom Lane <tgl@sss.pgh.pa.us>
5458 Branch: master [9662143f0] 2014-03-01 15:20:56 -0500
5459 Branch: REL9_3_STABLE [f5f21315d] 2014-03-01 15:21:00 -0500
5460 Branch: REL9_2_STABLE [03e6423fc] 2014-03-01 15:21:04 -0500
5461 Branch: REL9_1_STABLE [a9eb4924a] 2014-03-01 15:21:07 -0500
5462 Branch: REL9_0_STABLE [43af0e8c6] 2014-03-01 15:21:11 -0500
5463 Branch: REL8_4_STABLE [b6e143458] 2014-03-01 15:21:13 -0500
5468 Allow regular-expression operators to be terminated early by query
5469 cancel requests (Tom Lane)
5473 This prevents scenarios wherein a pathological regular expression
5474 could lock up a server process uninterruptably for a long time.
5479 Author: Tom Lane <tgl@sss.pgh.pa.us>
5480 Branch: master [a222f7fda] 2014-02-18 12:44:20 -0500
5481 Branch: REL9_3_STABLE [0aaa42241] 2014-02-18 12:44:24 -0500
5482 Branch: REL9_2_STABLE [d7cd6a9d5] 2014-02-18 12:44:27 -0500
5483 Branch: REL9_1_STABLE [e6f7fe983] 2014-02-18 12:44:30 -0500
5484 Branch: REL9_0_STABLE [19d66ab05] 2014-02-18 12:44:33 -0500
5485 Branch: REL8_4_STABLE [dd378dd1e] 2014-02-18 12:44:36 -0500
5490 Remove incorrect code that tried to allow <literal>OVERLAPS</> with
5491 single-element row arguments (Joshua Yanovski)
5495 This code never worked correctly, and since the case is neither
5496 specified by the SQL standard nor documented, it seemed better to
5497 remove it than fix it.
5502 Author: Tom Lane <tgl@sss.pgh.pa.us>
5503 Branch: master [7c3187494] 2014-03-06 19:31:05 -0500
5504 Branch: REL9_3_STABLE [f557826f8] 2014-03-06 19:31:09 -0500
5505 Branch: REL9_2_STABLE [5ec41e345] 2014-03-06 19:31:12 -0500
5506 Branch: REL9_1_STABLE [f3e3f6c5b] 2014-03-06 19:31:16 -0500
5507 Branch: REL9_0_STABLE [bed1259e5] 2014-03-06 19:31:19 -0500
5508 Branch: REL8_4_STABLE [f043bddfe] 2014-03-06 19:31:22 -0500
5513 Avoid getting more than <literal>AccessShareLock</> when de-parsing a
5514 rule or view (Dean Rasheed)
5518 This oversight resulted in <application>pg_dump</> unexpectedly
5519 acquiring <literal>RowExclusiveLock</> locks on tables mentioned as
5520 the targets of <literal>INSERT</>/<literal>UPDATE</>/<literal>DELETE</>
5521 commands in rules. While usually harmless, that could interfere with
5522 concurrent transactions that tried to acquire, for example,
5523 <literal>ShareLock</> on those tables.
5528 Author: Tom Lane <tgl@sss.pgh.pa.us>
5529 Branch: master [fccebe421] 2014-02-25 16:04:06 -0500
5530 Branch: REL9_3_STABLE [4162a55c7] 2014-02-25 16:04:09 -0500
5531 Branch: REL9_2_STABLE [00283cae1] 2014-02-25 16:04:12 -0500
5532 Branch: REL9_1_STABLE [3e2db4c80] 2014-02-25 16:04:16 -0500
5533 Branch: REL9_0_STABLE [1e0fb6a2c] 2014-02-25 16:04:20 -0500
5538 Improve performance of index endpoint probes during planning (Tom Lane)
5542 This change fixes a significant performance problem that occurred
5543 when there were many not-yet-committed rows at the end of the index,
5544 which is a common situation for indexes on sequentially-assigned
5545 values such as timestamps or sequence-generated identifiers.
5550 Author: Tom Lane <tgl@sss.pgh.pa.us>
5551 Branch: master [77585bce0] 2014-02-21 17:10:46 -0500
5552 Branch: REL9_3_STABLE [e8655a77f] 2014-02-21 17:10:49 -0500
5557 Use non-default selectivity estimates for
5558 <literal><replaceable>value</> IN (<replaceable>list</>)</literal> and
5559 <literal><replaceable>value</> <replaceable>operator</> ANY
5560 (<replaceable>array</>)</literal>
5561 expressions when the righthand side is a stable expression (Tom Lane)
5566 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5567 Branch: master [2b4f2ab33] 2014-03-05 13:03:29 -0300
5568 Branch: REL9_3_STABLE [13ea43ab8] 2014-03-05 13:03:29 -0300
5573 Remove the correct per-database statistics file during <command>DROP
5574 DATABASE</> (Tomas Vondra)
5578 This fix prevents a permanent leak of statistics file space.
5579 Users who have done many <command>DROP DATABASE</> commands since
5580 upgrading to <productname>PostgreSQL</> 9.3 may wish to check their
5581 statistics directory and delete statistics files that do not
5582 correspond to any existing database. Please note
5583 that <filename>db_0.stat</> should not be removed.
5588 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5589 Branch: master [94ae6ba74] 2014-03-06 21:38:51 +0200
5590 Branch: REL9_3_STABLE [dcd1131c8] 2014-03-06 21:40:50 +0200
5595 Fix <application>walsender</> ping logic to avoid inappropriate
5596 disconnects under continuous load (Andres Freund, Heikki Linnakangas)
5600 <application>walsender</> failed to send ping messages to the client
5601 if it was constantly busy sending WAL data; but it expected to see
5602 ping responses despite that, and would therefore disconnect
5603 once <xref linkend="guc-wal-sender-timeout"> elapsed.
5608 Author: Fujii Masao <fujii@postgresql.org>
5609 Branch: master [5c6d9fc4b] 2014-03-17 20:37:50 +0900
5610 Branch: REL9_3_STABLE [385723405] 2014-03-17 20:41:12 +0900
5611 Branch: REL9_2_STABLE [7899aa356] 2014-03-17 20:41:52 +0900
5612 Branch: REL9_1_STABLE [65e8dbb18] 2014-03-17 20:42:35 +0900
5617 Fix <application>walsender</>'s failure to shut down cleanly when client
5618 is <application>pg_receivexlog</> (Fujii Masao)
5623 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5624 Branch: master [956685f82] 2014-03-05 14:48:14 +0200
5625 Branch: REL9_3_STABLE [a5363a696] 2014-03-05 14:46:56 +0200
5626 Branch: REL9_2_STABLE [e7ec05562] 2014-03-05 14:45:55 +0200
5631 Check WAL level and hot standby parameters correctly when doing crash
5632 recovery that will be followed by archive recovery (Heikki Linnakangas)
5637 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5638 Branch: master [af246c37c] 2014-03-05 13:51:19 +0200
5639 Branch: REL9_3_STABLE [2cd72ba42] 2014-03-05 13:52:21 +0200
5640 Branch: REL9_2_STABLE [931dc26b0] 2014-03-05 13:57:32 +0200
5641 Branch: REL9_1_STABLE [7552d3d1a] 2014-03-05 13:58:14 +0200
5642 Branch: REL9_0_STABLE [4521cc850] 2014-03-05 13:58:22 +0200
5647 Fix test to see if hot standby connections can be allowed immediately
5648 after a crash (Heikki Linnakangas)
5653 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
5654 Branch: REL9_3_STABLE [5a7e75849] 2014-02-20 10:46:54 +0200
5659 Add read-only <xref linkend="guc-data-checksums"> parameter to
5660 display whether page checksums are enabled (Heikki Linnakangas)
5664 Without this parameter, determining the state of checksum
5665 processing was difficult.
5670 Author: Tom Lane <tgl@sss.pgh.pa.us>
5671 Branch: master [6c461cb92] 2014-03-13 20:59:42 -0400
5672 Branch: REL9_3_STABLE [41bd2cf55] 2014-03-13 20:59:45 -0400
5673 Branch: REL9_2_STABLE [7a289bb6d] 2014-03-13 20:59:48 -0400
5674 Branch: REL9_1_STABLE [f16ca9755] 2014-03-13 20:59:51 -0400
5675 Branch: REL9_0_STABLE [dad55e1e9] 2014-03-13 20:59:55 -0400
5676 Branch: REL8_4_STABLE [172c53e92] 2014-03-13 20:59:57 -0400
5681 Prevent interrupts while reporting non-<literal>ERROR</> messages
5686 This guards against rare server-process freezeups due to recursive
5687 entry to <function>syslog()</>, and perhaps other related problems.
5692 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
5693 Branch: master [bd1154ede] 2014-03-16 23:22:21 -0300
5694 Branch: REL9_3_STABLE [60829079d] 2014-03-16 23:22:22 -0300
5695 Branch: REL9_2_STABLE [ba5946e86] 2014-03-16 23:22:22 -0300
5696 Branch: REL9_1_STABLE [f84997c7e] 2014-03-16 23:22:22 -0300
5701 Fix memory leak in PL/Perl when returning a composite result, including
5702 multiple-OUT-parameter cases (Alex Hunsaker)
5707 Author: Tom Lane <tgl@sss.pgh.pa.us>
5708 Branch: master [e85a5ffba] 2014-03-10 15:47:40 -0400
5709 Branch: REL9_3_STABLE [f64f4c370] 2014-03-10 15:47:09 -0400
5710 Branch: REL9_2_STABLE [b315b767f] 2014-03-10 15:47:13 -0400
5715 Fix tracking of <application>psql</> script line numbers
5716 during <literal>\copy</> from out-of-line data
5717 (Kumar Rajeev Rastogi, Amit Khandekar)
5721 <literal>\copy ... from</> incremented the script file line number
5722 for each data line, even if the data was not coming from the script
5723 file. This mistake resulted in wrong line numbers being reported for
5724 any errors occurring later in the same script file.
5729 Author: Tom Lane <tgl@sss.pgh.pa.us>
5730 Branch: master [83204e100] 2014-03-07 16:36:40 -0500
5731 Branch: REL9_3_STABLE [73f0483fd] 2014-03-07 16:36:50 -0500
5736 Fix <application>contrib/postgres_fdw</> to handle multiple join
5737 conditions properly (Tom Lane)
5741 This oversight could result in sending <literal>WHERE</> clauses to
5742 the remote server for execution even though the clauses are not known
5743 to have the same semantics on the remote server (for example, clauses
5744 that use non-built-in operators). The query might succeed anyway,
5745 but it could also fail with errors from the remote server, or worse
5746 give silently wrong answers.
5751 Author: Magnus Hagander <magnus@hagander.net>
5752 Branch: master [7f3e17b48] 2014-02-18 14:45:58 +0100
5753 Branch: REL9_3_STABLE [b88ecb002] 2014-02-18 14:49:41 +0100
5754 Branch: REL9_2_STABLE [062deb313] 2014-02-18 14:50:19 +0100
5755 Branch: REL9_1_STABLE [fae12f331] 2014-03-16 11:46:20 +0100
5756 Branch: REL9_0_STABLE [665515539] 2014-03-16 11:47:37 +0100
5761 Prevent intermittent <quote>could not reserve shared memory region</>
5762 failures on recent Windows versions (MauMau)
5767 Author: Tom Lane <tgl@sss.pgh.pa.us>
5768 Branch: master [aba7f5677] 2014-03-15 13:36:07 -0400
5769 Branch: REL9_3_STABLE [b5de16997] 2014-03-15 13:36:24 -0400
5770 Branch: REL9_2_STABLE [f2063b379] 2014-03-15 13:36:32 -0400
5771 Branch: REL9_1_STABLE [2df1bf21c] 2014-03-15 13:36:41 -0400
5772 Branch: REL9_0_STABLE [0033f5324] 2014-03-15 13:36:49 -0400
5773 Branch: REL8_4_STABLE [6e6c2c2e1] 2014-03-15 13:36:57 -0400
5778 Update time zone data files to <application>tzdata</> release 2014a
5779 for DST law changes in Fiji and Turkey, plus historical changes in
5789 <sect1 id="release-9-3-3">
5790 <title>Release 9.3.3</title>
5793 <title>Release Date</title>
5794 <simpara>2014-02-20</simpara>
5798 This release contains a variety of fixes from 9.3.2.
5799 For information about new features in the 9.3 major release, see
5800 <xref linkend="release-9-3">.
5804 <title>Migration to Version 9.3.3</title>
5807 A dump/restore is not required for those running 9.3.X.
5811 However, several of the issues corrected in this release could have
5812 resulted in corruption of foreign-key constraints; that is, there
5813 might now be referencing rows for which there is no matching row in
5814 the referenced table. It may be worthwhile to recheck such
5815 constraints after installing this update. The simplest way to do that
5816 is to drop and recreate each suspect constraint; however, that will
5817 require taking an exclusive lock on both tables, so it is unlikely to
5818 be acceptable in production databases. Alternatively, you can do a
5819 manual join query between the two tables to look for unmatched rows.
5823 Note also the requirement for replication standby servers to be
5824 upgraded before their master server is upgraded.
5828 Also, if you are upgrading from a version earlier than 9.3.2,
5829 see <xref linkend="release-9-3-2">.
5835 <title>Changes</title>
5840 Author: Noah Misch <noah@leadboat.com>
5841 Branch: master [fea164a72] 2014-02-17 09:33:31 -0500
5842 Branch: REL9_3_STABLE [475a1fbc4] 2014-02-17 09:33:32 -0500
5843 Branch: REL9_2_STABLE [15a8f97b9] 2014-02-17 09:33:33 -0500
5844 Branch: REL9_1_STABLE [5d320a16c] 2014-02-17 09:33:33 -0500
5845 Branch: REL9_0_STABLE [789063697] 2014-02-17 09:33:37 -0500
5846 Branch: REL8_4_STABLE [ff35425c8] 2014-02-17 09:33:38 -0500
5851 Shore up <literal>GRANT ... WITH ADMIN OPTION</> restrictions
5856 Granting a role without <literal>ADMIN OPTION</> is supposed to
5857 prevent the grantee from adding or removing members from the granted
5858 role, but this restriction was easily bypassed by doing <literal>SET
5859 ROLE</> first. The security impact is mostly that a role member can
5860 revoke the access of others, contrary to the wishes of his grantor.
5861 Unapproved role member additions are a lesser concern, since an
5862 uncooperative role member could provide most of his rights to others
5863 anyway by creating views or <literal>SECURITY DEFINER</> functions.
5869 Author: Noah Misch <noah@leadboat.com>
5870 Branch: master [537cbd35c] 2014-02-17 09:33:31 -0500
5871 Branch: REL9_3_STABLE [fc4a04a3c] 2014-02-17 09:33:32 -0500
5872 Branch: REL9_2_STABLE [1d701d28a] 2014-02-17 09:33:33 -0500
5873 Branch: REL9_1_STABLE [23b5a85e6] 2014-02-17 09:33:36 -0500
5874 Branch: REL9_0_STABLE [c0ac4c75f] 2014-02-17 09:33:37 -0500
5875 Branch: REL8_4_STABLE [823b9dc25] 2014-02-17 09:33:38 -0500
5880 Prevent privilege escalation via manual calls to PL validator
5881 functions (Andres Freund)
5885 The primary role of PL validator functions is to be called implicitly
5886 during <command>CREATE FUNCTION</>, but they are also normal SQL
5887 functions that a user can call explicitly. Calling a validator on
5888 a function actually written in some other language was not checked
5889 for and could be exploited for privilege-escalation purposes.
5890 The fix involves adding a call to a privilege-checking function in
5891 each validator function. Non-core procedural languages will also
5892 need to make this change to their own validator functions, if any.
5898 Author: Robert Haas <rhaas@postgresql.org>
5899 Branch: master [5f173040e] 2014-02-17 09:33:31 -0500
5900 Branch: REL9_3_STABLE [e1e0a4d79] 2014-02-17 09:33:32 -0500
5901 Branch: REL9_2_STABLE [820ab11fb] 2014-02-17 09:33:33 -0500
5902 Branch: REL9_1_STABLE [b5c574399] 2014-02-17 09:33:36 -0500
5903 Branch: REL9_0_STABLE [43d4e965e] 2014-02-17 09:33:37 -0500
5904 Branch: REL8_4_STABLE [e46476133] 2014-02-17 09:33:38 -0500
5909 Avoid multiple name lookups during table and index DDL
5910 (Robert Haas, Andres Freund)
5914 If the name lookups come to different conclusions due to concurrent
5915 activity, we might perform some parts of the DDL on a different table
5916 than other parts. At least in the case of <command>CREATE INDEX</>,
5917 this can be used to cause the permissions checks to be performed
5918 against a different table than the index creation, allowing for a
5919 privilege escalation attack.
5925 Author: Noah Misch <noah@leadboat.com>
5926 Branch: master [4318daecc] 2014-02-17 09:33:31 -0500
5927 Branch: REL9_3_STABLE [e4a4fa223] 2014-02-17 09:33:32 -0500
5928 Branch: REL9_2_STABLE [f416622be] 2014-02-17 09:33:33 -0500
5929 Branch: REL9_1_STABLE [6a10e57b0] 2014-02-17 09:33:37 -0500
5930 Branch: REL9_0_STABLE [b9c3bb1b3] 2014-02-17 09:33:38 -0500
5931 Branch: REL8_4_STABLE [d0ed1a6c0] 2014-02-17 09:33:39 -0500
5936 Prevent buffer overrun with long datetime strings (Noah Misch)
5940 The <literal>MAXDATELEN</> constant was too small for the longest
5941 possible value of type <type>interval</>, allowing a buffer overrun
5942 in <function>interval_out()</>. Although the datetime input
5943 functions were more careful about avoiding buffer overrun, the limit
5944 was short enough to cause them to reject some valid inputs, such as
5945 input containing a very long timezone name. The <application>ecpg</>
5946 library contained these vulnerabilities along with some of its own.
5952 Author: Noah Misch <noah@leadboat.com>
5953 Branch: master [31400a673] 2014-02-17 09:33:31 -0500
5954 Branch: REL9_3_STABLE [7a362a176] 2014-02-17 09:33:32 -0500
5955 Branch: REL9_2_STABLE [12bbce15d] 2014-02-17 09:33:33 -0500
5956 Branch: REL9_1_STABLE [0b7026d96] 2014-02-17 09:33:37 -0500
5957 Branch: REL9_0_STABLE [2c3203e18] 2014-02-17 09:33:38 -0500
5958 Branch: REL8_4_STABLE [98be8a6ea] 2014-02-17 09:33:39 -0500
5963 Prevent buffer overrun due to integer overflow in size calculations
5964 (Noah Misch, Heikki Linnakangas)
5968 Several functions, mostly type input functions, calculated an
5969 allocation size without checking for overflow. If overflow did
5970 occur, a too-small buffer would be allocated and then written past.
5976 Author: Tom Lane <tgl@sss.pgh.pa.us>
5977 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
5978 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
5979 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
5980 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
5981 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
5982 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
5987 Prevent overruns of fixed-size buffers
5988 (Peter Eisentraut, Jozef Mlich)
5992 Use <function>strlcpy()</> and related functions to provide a clear
5993 guarantee that fixed-size buffers are not overrun. Unlike the
5994 preceding items, it is unclear whether these cases really represent
5995 live issues, since in most cases there appear to be previous
5996 constraints on the size of the input string. Nonetheless it seems
5997 prudent to silence all Coverity warnings of this type.
6003 Author: Tom Lane <tgl@sss.pgh.pa.us>
6004 Branch: master [01824385a] 2014-02-17 11:20:21 -0500
6005 Branch: REL9_3_STABLE [e3208fec3] 2014-02-17 11:20:24 -0500
6006 Branch: REL9_2_STABLE [655b665f7] 2014-02-17 11:20:27 -0500
6007 Branch: REL9_1_STABLE [4741e3160] 2014-02-17 11:20:31 -0500
6008 Branch: REL9_0_STABLE [45bf2404a] 2014-02-17 11:20:35 -0500
6009 Branch: REL8_4_STABLE [69d2bc14a] 2014-02-17 11:20:38 -0500
6014 Avoid crashing if <function>crypt()</> returns NULL (Honza Horak,
6019 There are relatively few scenarios in which <function>crypt()</>
6020 could return NULL, but <filename>contrib/chkpass</> would crash
6021 if it did. One practical case in which this could be an issue is
6022 if <application>libc</> is configured to refuse to execute unapproved
6023 hashing algorithms (e.g., <quote>FIPS mode</>).
6029 Author: Tom Lane <tgl@sss.pgh.pa.us>
6030 Branch: master [6ef325429] 2014-02-17 11:24:32 -0500
6031 Branch: REL9_3_STABLE [1ec5988f3] 2014-02-17 11:24:38 -0500
6032 Branch: REL9_2_STABLE [ff3d533e5] 2014-02-17 11:24:42 -0500
6033 Branch: REL9_1_STABLE [800a3744b] 2014-02-17 11:24:45 -0500
6034 Branch: REL9_0_STABLE [369c229d2] 2014-02-17 11:24:48 -0500
6035 Branch: REL8_4_STABLE [f58663ab1] 2014-02-17 11:24:51 -0500
6040 Document risks of <literal>make check</> in the regression testing
6041 instructions (Noah Misch, Tom Lane)
6045 Since the temporary server started by <literal>make check</>
6046 uses <quote>trust</> authentication, another user on the same machine
6047 could connect to it as database superuser, and then potentially
6048 exploit the privileges of the operating-system user who started the
6049 tests. A future release will probably incorporate changes in the
6050 testing procedure to prevent this risk, but some public discussion is
6051 needed first. So for the moment, just warn people against using
6052 <literal>make check</> when there are untrusted users on the
6059 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6060 Branch: master [3b97e6823] 2013-12-16 11:29:50 -0300
6061 Branch: REL9_3_STABLE [8e9a16ab8] 2013-12-16 11:29:51 -0300
6066 Rework tuple freezing protocol
6067 (Álvaro Herrera, Andres Freund)
6071 The logic for tuple freezing was unable to handle some cases involving
6073 <link linkend="vacuum-for-multixact-wraparound"><firstterm>multixact</>
6074 IDs</link>, with the practical effect that shared row-level locks
6075 might be forgotten once old enough.
6079 Fixing this required changing the WAL record format for tuple
6080 freezing. While this is no issue for standalone servers, when using
6081 replication it means that <emphasis>standby servers must be upgraded
6082 to 9.3.3 or later before their masters are</>. An older standby will
6083 be unable to interpret freeze records generated by a newer master, and
6084 will fail with a PANIC message. (In such a case, upgrading the
6085 standby should be sufficient to let it resume execution.)
6090 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6091 Branch: master [801c2dc72] 2014-02-13 19:36:31 -0300
6092 Branch: REL9_3_STABLE [fb47de2be] 2014-02-13 19:30:30 -0300
6097 Create separate GUC parameters to control multixact freezing
6098 (Álvaro Herrera)
6102 9.3 requires multixact tuple labels to be frozen before
6103 they grow too old, in the same fashion as plain transaction ID labels
6104 have been frozen for some time. Previously, the transaction ID
6105 freezing parameters were used for multixact IDs too; but since
6106 the consumption rates of transaction IDs and multixact IDs can be
6107 quite different, this did not work very well. Introduce new settings
6108 <xref linkend="guc-vacuum-multixact-freeze-min-age">,
6109 <xref linkend="guc-vacuum-multixact-freeze-table-age">, and
6110 <xref linkend="guc-autovacuum-multixact-freeze-max-age">
6111 to control when to freeze multixacts.
6116 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6117 Branch: master [11ac4c73c] 2013-12-18 13:45:51 -0300
6118 Branch: REL9_3_STABLE [db1014bc4] 2013-12-18 13:31:27 -0300
6123 Account for remote row locks propagated by local updates
6124 (Álvaro Herrera)
6128 If a row was locked by transaction A, and transaction B updated it,
6129 the new version of the row created by B would be locked by A, yet
6130 visible only to B. If transaction B then again updated the row, A's
6131 lock wouldn't get checked, thus possibly allowing B to complete when
6132 it shouldn't. This case is new in 9.3 since prior versions did not
6133 have any types of row locking that would permit another transaction
6134 to update the row at all.
6138 This oversight could allow referential integrity checks to give false
6139 positives (for instance, allow deletes that should have been rejected).
6140 Applications using the new commands <literal>SELECT FOR KEY SHARE</>
6141 and <literal>SELECT FOR NO KEY UPDATE</> might also have suffered
6142 locking failures of this kind.
6147 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6148 Branch: master [07aeb1fec] 2013-12-05 12:21:55 -0300
6149 Branch: REL9_3_STABLE [c6cd27e36] 2013-12-05 12:21:55 -0300
6154 Prevent <quote>forgetting</> valid row locks when one of several
6155 holders of a row lock aborts (Álvaro Herrera)
6159 This was yet another mechanism by which a shared row lock could be
6160 lost, thus possibly allowing updates that should have been prevented
6161 by foreign-key constraints.
6166 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6167 Branch: master [312bde3d4] 2013-12-05 17:47:51 -0300
6168 Branch: REL9_3_STABLE [2dcc48c35] 2013-12-05 17:47:51 -0300
6173 Fix incorrect logic during update chain locking
6174 (Álvaro Herrera)
6178 This mistake could result in spurious <quote>could not serialize access
6179 due to concurrent update</> errors in <literal>REPEATABLE READ</>
6180 and <literal>SERIALIZABLE</> transaction isolation modes.
6185 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6186 Branch: master [a50d97625] 2014-01-02 18:17:07 -0300
6187 Branch: REL9_3_STABLE [03db79459] 2014-01-02 18:17:07 -0300
6192 Handle wraparound correctly during extension or truncation
6193 of <filename>pg_multixact/members</>
6194 (Andres Freund, Álvaro Herrera)
6199 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6200 Branch: master [638cf09e7] 2014-01-02 18:17:29 -0300
6201 Branch: REL9_3_STABLE [948a3dfbb] 2014-01-02 18:17:29 -0300
6206 Fix handling of 5-digit filenames in <filename>pg_multixact/members</>
6207 (Álvaro Herrera)
6211 As of 9.3, these names can be more than 4 digits, but the directory
6212 cleanup code ignored such files.
6217 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6218 Branch: master [d881dd623] 2013-12-13 17:16:25 -0300
6219 Branch: REL9_3_STABLE [0bc00363b] 2013-12-13 17:16:25 -0300
6224 Improve performance of multixact cache code
6225 (Álvaro Herrera)
6230 Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
6231 Branch: master [13aa62443] 2013-12-19 16:53:49 -0300
6232 Branch: REL9_3_STABLE [85d3b3c3a] 2013-12-19 16:39:59 -0300
6237 Optimize updating a row that's already locked by the same transaction
6238 (Andres Freund, Álvaro Herrera)
6242 This fixes a performance regression from pre-9.3 versions when doing
6243 <literal>SELECT FOR UPDATE</> followed by <literal>UPDATE/DELETE</>.
6248 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6249 Branch: master [4d894b41c] 2014-02-14 15:15:09 +0200
6250 Branch: REL9_3_STABLE [762bd379a] 2014-02-14 15:18:34 +0200
6255 During archive recovery, prefer highest timeline number when WAL
6256 segments with the same ID are present in both the archive
6257 and <filename>pg_xlog/</> (Kyotaro Horiguchi)
6261 Previously, not-yet-archived segments could get ignored during
6262 recovery. This reverts an undesirable behavioral change in 9.3.0
6263 back to the way things worked pre-9.3.
6268 Author: Tom Lane <tgl@sss.pgh.pa.us>
6269 Branch: master [6f2aead1f] 2014-02-12 14:52:16 -0500
6270 Branch: REL9_3_STABLE [7190f7a34] 2014-02-12 14:52:20 -0500
6271 Branch: REL9_2_STABLE [bc7ab301a] 2014-02-12 14:52:23 -0500
6272 Branch: REL9_1_STABLE [a69cc9b2c] 2014-02-12 14:52:26 -0500
6273 Branch: REL9_0_STABLE [7fedd79b7] 2014-02-12 14:52:29 -0500
6274 Branch: REL8_4_STABLE [9620fede9] 2014-02-12 14:52:32 -0500
6279 Fix possible mis-replay of WAL records when some segments of a
6280 relation aren't full size (Greg Stark, Tom Lane)
6284 The WAL update could be applied to the wrong page, potentially many
6285 pages past where it should have been. Aside from corrupting data,
6286 this error has been observed to result in significant <quote>bloat</>
6287 of standby servers compared to their masters, due to updates being
6288 applied far beyond where the end-of-file should have been. This
6289 failure mode does not appear to be a significant risk during crash
6290 recovery, only when initially synchronizing a standby created from a
6291 base backup taken from a quickly-changing master.
6296 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6297 Branch: master [d59ff6c11] 2014-01-08 15:03:09 +0200
6298 Branch: REL9_3_STABLE [425bef6ee] 2014-01-08 14:32:22 +0200
6299 Branch: REL9_2_STABLE [82c75f9dd] 2014-01-08 14:28:55 +0200
6300 Branch: REL9_1_STABLE [e56430c62] 2014-01-08 14:33:58 +0200
6301 Branch: REL9_0_STABLE [5301c8395] 2014-01-08 14:34:21 +0200
6306 Fix bug in determining when recovery has reached consistency
6307 (Tomonari Katsumata, Heikki Linnakangas)
6311 In some cases WAL replay would mistakenly conclude that the database
6312 was already consistent at the start of replay, thus possibly allowing
6313 hot-standby queries before the database was really consistent. Other
6314 symptoms such as <quote>PANIC: WAL contains references to invalid
6315 pages</> were also possible.
6320 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6321 Branch: master [a49633d8d] 2013-12-13 14:15:04 +0200
6322 Branch: REL9_3_STABLE [615299cf6] 2013-12-13 14:23:02 +0200
6327 Fix WAL logging of visibility map changes (Heikki Linnakangas)
6332 Author: Tom Lane <tgl@sss.pgh.pa.us>
6333 Branch: master [061b079f8] 2014-01-14 17:35:21 -0500
6334 Branch: REL9_3_STABLE [ebde6c401] 2014-01-14 17:34:51 -0500
6335 Branch: REL9_2_STABLE [ad2e041a3] 2014-01-14 17:34:54 -0500
6336 Branch: REL9_1_STABLE [ab4bb5c47] 2014-01-14 17:34:57 -0500
6337 Branch: REL9_0_STABLE [5d742b9ce] 2014-01-14 17:35:00 -0500
6342 Fix improper locking of btree index pages while replaying
6343 a <literal>VACUUM</> operation in hot-standby mode (Andres Freund,
6344 Heikki Linnakangas, Tom Lane)
6348 This error could result in <quote>PANIC: WAL contains references to
6349 invalid pages</> failures.
6354 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6355 Branch: master [22122c83f] 2013-12-03 23:16:01 +0200
6356 Branch: REL9_3_STABLE [8fd04cb32] 2013-12-03 22:13:16 +0200
6357 Branch: REL9_2_STABLE [06df57ac6] 2013-12-03 22:34:31 +0200
6358 Branch: REL9_1_STABLE [e6acb956a] 2013-12-03 22:34:43 +0200
6359 Branch: REL9_0_STABLE [760606dc5] 2013-12-03 23:01:31 +0200
6360 Branch: REL8_4_STABLE [67fc33d3a] 2013-12-03 22:53:26 +0200
6365 Ensure that insertions into non-leaf GIN index pages write a full-page
6366 WAL record when appropriate (Heikki Linnakangas)
6370 The previous coding risked index corruption in the event of a
6371 partial-page write during a system crash.
6376 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6377 Branch: master [3739e5ab9] 2014-01-08 23:28:52 +0200
6378 Branch: REL9_3_STABLE [3aefff422] 2014-01-08 23:30:46 +0200
6379 Branch: REL9_2_STABLE [3bd8987ef] 2014-01-08 23:30:55 +0200
6380 Branch: REL9_1_STABLE [0402f2441] 2014-01-08 23:31:01 +0200
6385 When <literal>pause_at_recovery_target</>
6386 and <literal>recovery_target_inclusive</> are both set, ensure the
6387 target record is applied before pausing, not after (Heikki
6393 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6394 Branch: master [a472ae1e4] 2014-01-16 23:15:41 +0200
6395 Branch: REL9_3_STABLE [e34acac62] 2014-01-16 23:14:57 +0200
6400 Ensure walreceiver sends hot-standby feedback messages on time even
6401 when there is a continuous stream of data (Andres Freund, Amit
6407 Author: Tom Lane <tgl@sss.pgh.pa.us>
6408 Branch: master [e8312b4f0] 2013-12-13 11:50:15 -0500
6409 Branch: REL9_3_STABLE [478af9b79] 2013-12-13 11:50:25 -0500
6414 Prevent timeout interrupts from taking control away from mainline
6415 code unless <varname>ImmediateInterruptOK</> is set
6416 (Andres Freund, Tom Lane)
6420 This is a serious issue for any application making use of statement
6421 timeouts, as it could cause all manner of strange failures after a
6422 timeout occurred. We have seen reports of <quote>stuck</> spinlocks,
6423 ERRORs being unexpectedly promoted to PANICs, unkillable backends,
6424 and other misbehaviors.
6429 Author: Robert Haas <rhaas@postgresql.org>
6430 Branch: master [d1981719a] 2014-01-31 21:31:08 -0500
6431 Branch: REL9_3_STABLE [5d807a74b] 2014-01-31 21:34:44 -0500
6432 Branch: REL9_2_STABLE [ebe334463] 2014-01-31 21:35:32 -0500
6433 Branch: REL9_1_STABLE [8e6bfc9eb] 2014-01-31 21:36:23 -0500
6434 Branch: REL9_0_STABLE [798243a81] 2014-01-31 21:40:20 -0500
6435 Branch: REL8_4_STABLE [458b20f2d] 2014-01-31 21:41:09 -0500
6440 Fix race conditions during server process exit (Robert Haas)
6444 Ensure that signal handlers don't attempt to use the
6445 process's <varname>MyProc</> pointer after it's no longer valid.
6450 Author: Tom Lane <tgl@sss.pgh.pa.us>
6451 Branch: master [214c7a4f0] 2014-02-01 16:21:23 -0500
6452 Branch: REL9_3_STABLE [6f1a40773] 2014-02-01 16:21:30 -0500
6453 Branch: REL9_2_STABLE [81b116d98] 2014-02-01 16:21:33 -0500
6454 Branch: REL9_1_STABLE [03f06ff38] 2014-02-01 16:21:38 -0500
6459 Fix race conditions in walsender shutdown logic and walreceiver
6460 SIGHUP signal handler (Tom Lane)
6465 Author: Tom Lane <tgl@sss.pgh.pa.us>
6466 Branch: master [571addd72] 2014-01-29 20:04:43 -0500
6467 Branch: REL9_3_STABLE [bf8ee6f15] 2014-01-29 20:04:01 -0500
6468 Branch: REL9_2_STABLE [3e71ce1e9] 2014-01-29 20:04:05 -0500
6469 Branch: REL9_1_STABLE [af259c691] 2014-01-29 20:04:08 -0500
6470 Branch: REL9_0_STABLE [d17a667e8] 2014-01-29 20:04:11 -0500
6471 Branch: REL8_4_STABLE [01b882fd8] 2014-01-29 20:04:14 -0500
6476 Fix unsafe references to <varname>errno</> within error reporting
6477 logic (Christian Kruse)
6481 This would typically lead to odd behaviors such as missing or
6482 inappropriate <literal>HINT</> fields.
6487 Author: Tom Lane <tgl@sss.pgh.pa.us>
6488 Branch: master [910bac595] 2014-01-11 16:36:07 -0500
6489 Branch: REL9_3_STABLE [5bfcc9ec5] 2014-01-11 16:35:30 -0500
6490 Branch: REL9_2_STABLE [2de905186] 2014-01-11 16:35:34 -0500
6491 Branch: REL9_1_STABLE [3f721588a] 2014-01-11 16:35:37 -0500
6492 Branch: REL9_0_STABLE [d9c4442b8] 2014-01-11 16:35:41 -0500
6493 Branch: REL8_4_STABLE [d0070ac81] 2014-01-11 16:35:44 -0500
6498 Fix possible crashes from using <function>ereport()</> too early
6499 during server startup (Tom Lane)
6503 The principal case we've seen in the field is a crash if the server
6504 is started in a directory it doesn't have permission to read.
6509 Author: Tom Lane <tgl@sss.pgh.pa.us>
6510 Branch: master [74242c23c] 2013-12-05 12:48:28 -0500
6511 Branch: REL9_3_STABLE [2a6e1a554] 2013-12-05 12:48:31 -0500
6512 Branch: REL9_2_STABLE [41042970b] 2013-12-05 12:48:35 -0500
6513 Branch: REL9_1_STABLE [ad910ccdc] 2013-12-05 12:48:37 -0500
6514 Branch: REL9_0_STABLE [36352ceb4] 2013-12-05 12:48:41 -0500
6515 Branch: REL8_4_STABLE [7635dae55] 2013-12-05 12:48:44 -0500
6520 Clear retry flags properly in OpenSSL socket write
6521 function (Alexander Kukushkin)
6525 This omission could result in a server lockup after unexpected loss
6526 of an SSL-encrypted connection.
6531 Author: Tom Lane <tgl@sss.pgh.pa.us>
6532 Branch: master [44c216330] 2014-02-13 14:24:42 -0500
6533 Branch: REL9_3_STABLE [ca1c17181] 2014-02-13 14:24:45 -0500
6534 Branch: REL9_2_STABLE [8439ee415] 2014-02-13 14:24:49 -0500
6535 Branch: REL9_1_STABLE [170590261] 2014-02-13 14:24:52 -0500
6536 Branch: REL9_0_STABLE [148052d25] 2014-02-13 14:24:55 -0500
6537 Branch: REL8_4_STABLE [a8a46d846] 2014-02-13 14:24:58 -0500
6542 Fix length checking for Unicode identifiers (<literal>U&"..."</>
6543 syntax) containing escapes (Tom Lane)
6547 A spurious truncation warning would be printed for such identifiers
6548 if the escaped form of the identifier was too long, but the
6549 identifier actually didn't need truncation after de-escaping.
6554 Author: Tom Lane <tgl@sss.pgh.pa.us>
6555 Branch: master [0c2338abb] 2014-02-03 19:47:57 -0500
6556 Branch: REL9_3_STABLE [4c70cb1d3] 2014-02-03 19:48:00 -0500
6561 Fix parsing of Unicode literals and identifiers just before the end
6562 of a command string or function body (Tom Lane)
6567 Author: Stephen Frost <sfrost@snowman.net>
6568 Branch: master [6c36f383d] 2014-01-21 22:49:22 -0500
6569 Branch: REL9_3_STABLE [d1e3070f0] 2014-01-21 22:56:30 -0500
6570 Branch: REL9_2_STABLE [c0e6169e1] 2014-01-21 22:56:34 -0500
6571 Branch: REL9_1_STABLE [cbd850bf6] 2014-01-21 23:00:58 -0500
6572 Branch: REL9_0_STABLE [f2eede9b5] 2014-01-21 23:01:40 -0500
6577 Allow keywords that are type names to be used in lists of roles
6582 A previous patch allowed such keywords to be used without quoting
6583 in places such as role identifiers; but it missed cases where a
6584 list of role identifiers was permitted, such as <literal>DROP ROLE</>.
6589 Author: Tom Lane <tgl@sss.pgh.pa.us>
6590 Branch: master [7ab321404] 2013-12-02 20:28:45 -0500
6591 Branch: REL9_3_STABLE [b44ae4893] 2013-12-02 20:28:49 -0500
6592 Branch: REL9_2_STABLE [6698782f1] 2013-12-02 20:28:53 -0500
6593 Branch: REL9_1_STABLE [f67b8aeab] 2013-12-02 20:28:56 -0500
6598 Fix parser crash for <literal>EXISTS(SELECT * FROM
6599 zero_column_table)</literal> (Tom Lane)
6604 Author: Tom Lane <tgl@sss.pgh.pa.us>
6605 Branch: master [9ec6199d1] 2013-12-10 16:10:17 -0500
6606 Branch: REL9_3_STABLE [9d2e07fec] 2013-12-10 16:10:20 -0500
6607 Branch: REL9_2_STABLE [f5d9fdcc7] 2013-12-10 16:10:24 -0500
6608 Branch: REL9_1_STABLE [48e5cfde8] 2013-12-10 16:10:28 -0500
6609 Branch: REL9_0_STABLE [41e9990cd] 2013-12-10 16:10:31 -0500
6610 Branch: REL8_4_STABLE [884c6384a] 2013-12-10 16:10:36 -0500
6615 Fix possible crash due to invalid plan for nested sub-selects, such
6616 as <literal>WHERE (... x IN (SELECT ...) ...) IN (SELECT ...)</>
6622 Author: Tom Lane <tgl@sss.pgh.pa.us>
6623 Branch: master [043f6ff05] 2014-01-30 14:51:16 -0500
6624 Branch: REL9_3_STABLE [a4aa854ca] 2014-01-30 14:51:19 -0500
6629 Fix mishandling of <literal>WHERE</> conditions pulled up from
6630 a <literal>LATERAL</> subquery (Tom Lane)
6634 The typical symptom of this bug was a <quote>JOIN qualification
6635 cannot refer to other relations</> error, though subtle logic
6636 errors in created plans seem possible as well.
6641 Author: Tom Lane <tgl@sss.pgh.pa.us>
6642 Branch: master [158b7fa6a] 2014-01-11 19:03:12 -0500
6643 Branch: REL9_3_STABLE [27ff4cfe7] 2014-01-11 19:03:15 -0500
6648 Disallow <literal>LATERAL</> references to the target table of
6649 an <literal>UPDATE/DELETE</> (Tom Lane)
6653 While this might be allowed in some future release, it was
6654 unintentional in 9.3, and didn't work quite right anyway.
6659 Author: Tom Lane <tgl@sss.pgh.pa.us>
6660 Branch: master [c03ad5602] 2013-12-14 17:33:53 -0500
6661 Branch: REL9_3_STABLE [324577f39] 2013-12-14 17:33:56 -0500
6662 Branch: REL9_2_STABLE [5d545b7ed] 2013-12-14 17:34:00 -0500
6667 Fix <literal>UPDATE/DELETE</> of an inherited target table
6668 that has <literal>UNION ALL</> subqueries (Tom Lane)
6672 Without this fix, <literal>UNION ALL</> subqueries aren't correctly
6673 inserted into the update plans for inheritance child tables after the
6674 first one, typically resulting in no update happening for those child
6680 Author: Tom Lane <tgl@sss.pgh.pa.us>
6681 Branch: master [4eeda92d8] 2013-12-23 22:18:48 -0500
6682 Branch: REL9_3_STABLE [663f8419b] 2013-12-23 22:18:23 -0500
6687 Fix <command>ANALYZE</> to not fail on a column that's a domain over
6688 a range type (Tom Lane)
6693 Author: Tom Lane <tgl@sss.pgh.pa.us>
6694 Branch: master [628652620] 2014-01-11 13:42:42 -0500
6695 Branch: REL9_3_STABLE [36785a21b] 2014-01-11 13:41:51 -0500
6696 Branch: REL9_2_STABLE [f0381680f] 2014-01-11 13:41:56 -0500
6697 Branch: REL9_1_STABLE [9387f4e1b] 2014-01-11 13:42:00 -0500
6698 Branch: REL9_0_STABLE [2d76d75d9] 2014-01-11 13:42:05 -0500
6699 Branch: REL8_4_STABLE [00b77771a] 2014-01-11 13:42:11 -0500
6704 Ensure that <command>ANALYZE</> creates statistics for a table column
6705 even when all the values in it are <quote>too wide</> (Tom Lane)
6709 <command>ANALYZE</> intentionally omits very wide values from its
6710 histogram and most-common-values calculations, but it neglected to do
6711 something sane in the case that all the sampled entries are too wide.
6716 Author: Stephen Frost <sfrost@snowman.net>
6717 Branch: master [6f25c62d7] 2014-01-18 18:41:52 -0500
6718 Branch: REL9_3_STABLE [86e58ae02] 2014-01-18 18:49:08 -0500
6719 Branch: REL9_2_STABLE [1fe06595a] 2014-01-18 18:49:41 -0500
6720 Branch: REL9_1_STABLE [d2636486b] 2014-01-18 18:50:09 -0500
6721 Branch: REL9_0_STABLE [e70c42821] 2014-01-18 18:50:29 -0500
6722 Branch: REL8_4_STABLE [0fb4e3ceb] 2014-01-18 18:50:47 -0500
6727 In <literal>ALTER TABLE ... SET TABLESPACE</>, allow the database's
6728 default tablespace to be used without a permissions check
6733 <literal>CREATE TABLE</> has always allowed such usage,
6734 but <literal>ALTER TABLE</> didn't get the memo.
6739 Author: Tom Lane <tgl@sss.pgh.pa.us>
6740 Branch: master [c01bc51f8] 2013-12-30 14:00:02 -0500
6741 Branch: REL9_3_STABLE [9a6e2b150] 2013-12-30 14:00:05 -0500
6746 Fix support for extensions containing event triggers (Tom Lane)
6751 Author: Tom Lane <tgl@sss.pgh.pa.us>
6752 Branch: master [080b7db72] 2014-01-08 20:18:58 -0500
6753 Branch: REL9_3_STABLE [47ac4473a] 2014-01-08 20:18:10 -0500
6754 Branch: REL9_2_STABLE [97a39f295] 2014-01-08 20:18:13 -0500
6755 Branch: REL9_1_STABLE [6c6c53d0b] 2014-01-08 20:18:17 -0500
6756 Branch: REL9_0_STABLE [6ca712fb9] 2014-01-08 20:18:20 -0500
6757 Branch: REL8_4_STABLE [57ac7d8a7] 2014-01-08 20:18:24 -0500
6762 Fix <quote>cannot accept a set</> error when some arms of
6763 a <literal>CASE</> return a set and others don't (Tom Lane)
6768 Author: Andrew Dunstan <andrew@dunslane.net>
6769 Branch: master [d3ee45152] 2014-02-03 10:40:12 -0500
6770 Branch: REL9_3_STABLE [cdfbb78f0] 2014-02-03 10:39:13 -0500
6775 Fix memory leakage in JSON functions (Craig Ringer)
6780 Author: Andrew Dunstan <andrew@dunslane.net>
6781 Branch: master [29dcf7ded] 2013-12-27 17:04:00 -0500
6782 Branch: REL9_3_STABLE [7dfd9f6f5] 2013-12-27 17:21:04 -0500
6783 Branch: REL9_2_STABLE [4825a9e95] 2013-12-27 17:21:27 -0500
6788 Properly distinguish numbers from non-numbers when generating JSON
6789 output (Andrew Dunstan)
6794 Author: Kevin Grittner <kgrittn@postgresql.org>
6795 Branch: master [a133bf703] 2013-12-27 15:26:24 -0600
6796 Branch: REL9_3_STABLE [28b60aa23] 2013-12-27 15:40:51 -0600
6797 Branch: REL9_2_STABLE [150a30e19] 2013-12-27 15:41:02 -0600
6798 Branch: REL9_1_STABLE [1f069d21d] 2013-12-27 15:41:18 -0600
6799 Branch: REL9_0_STABLE [918d74a07] 2013-12-27 15:41:32 -0600
6800 Branch: REL8_4_STABLE [b2d80147d] 2013-12-27 15:41:46 -0600
6805 Fix checks for all-zero client addresses in pgstat functions (Kevin
6811 Author: Tom Lane <tgl@sss.pgh.pa.us>
6812 Branch: master [082c0dfa1] 2014-02-01 18:27:34 -0500
6813 Branch: REL9_3_STABLE [9beffdcc3] 2014-02-01 18:27:40 -0500
6814 Branch: REL9_2_STABLE [8be095cea] 2014-02-01 18:27:44 -0500
6815 Branch: REL9_1_STABLE [399d23e19] 2014-02-01 18:27:48 -0500
6816 Branch: REL9_0_STABLE [3c7b4ef70] 2014-02-01 18:27:54 -0500
6817 Branch: REL8_4_STABLE [56f5d3424] 2014-02-01 18:27:12 -0500
6822 Fix possible misclassification of multibyte characters by the text
6823 search parser (Tom Lane)
6827 Non-ASCII characters could be misclassified when using C locale with
6828 a multibyte encoding. On Cygwin, non-C locales could fail as well.
6833 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
6834 Branch: master [6c2744f1d] 2014-02-10 09:57:59 +0200
6835 Branch: REL9_3_STABLE [928aec71c] 2014-02-10 09:59:49 +0200
6836 Branch: REL9_2_STABLE [f3807106b] 2014-02-10 10:00:04 +0200
6837 Branch: REL9_1_STABLE [5f778e644] 2014-02-10 10:00:23 +0200
6838 Branch: REL9_0_STABLE [fe8a6f53e] 2014-02-10 10:00:36 +0200
6839 Branch: REL8_4_STABLE [6141983fb] 2014-02-10 10:00:50 +0200
6844 Fix possible misbehavior in <function>plainto_tsquery()</>
6845 (Heikki Linnakangas)
6849 Use <function>memmove()</> not <function>memcpy()</> for copying
6850 overlapping memory regions. There have been no field reports of
6851 this actually causing trouble, but it's certainly risky.
6856 Author: Magnus Hagander <magnus@hagander.net>
6857 Branch: master [9544cc0d6] 2014-01-07 17:50:56 +0100
6858 Branch: REL9_3_STABLE [91c2755fc] 2014-01-07 17:51:02 +0100
6859 Branch: REL9_2_STABLE [61d4d14ee] 2014-01-07 17:53:00 +0100
6860 Branch: REL9_1_STABLE [026a91f86] 2014-01-07 18:00:36 +0100
6865 Fix placement of permissions checks in <function>pg_start_backup()</>
6866 and <function>pg_stop_backup()</> (Andres Freund, Magnus Hagander)
6870 The previous coding might attempt to do catalog access when it
6876 Author: Tatsuo Ishii <ishii@postgresql.org>
6877 Branch: master [1f0626ee4] 2013-12-15 11:09:05 +0900
6878 Branch: REL9_3_STABLE [8122e6f85] 2013-12-15 11:10:41 +0900
6879 Branch: REL9_2_STABLE [0c07ef1ad] 2013-12-15 11:10:49 +0900
6880 Branch: REL9_1_STABLE [035226c61] 2013-12-15 11:10:56 +0900
6881 Branch: REL9_0_STABLE [7016d970d] 2013-12-15 11:11:02 +0900
6882 Branch: REL8_4_STABLE [69f77d756] 2013-12-15 11:11:11 +0900
6887 Accept <literal>SHIFT_JIS</> as an encoding name for locale checking
6888 purposes (Tatsuo Ishii)
6893 Author: Tom Lane <tgl@sss.pgh.pa.us>
6894 Branch: master [0def2573c] 2014-02-03 14:47:17 -0500
6895 Branch: REL9_3_STABLE [641c08041] 2014-02-03 14:46:54 -0500
6896 Branch: REL9_2_STABLE [888b56570] 2014-02-03 14:46:57 -0500
6901 Fix <literal>*</>-qualification of named parameters in SQL-language
6902 functions (Tom Lane)
6906 Given a composite-type parameter
6907 named <literal>foo</>, <literal>$1.*</> worked fine,
6908 but <literal>foo.*</> not so much.
6913 Author: Fujii Masao <fujii@postgresql.org>
6914 Branch: master [77035fa8a] 2014-01-23 22:58:58 +0900
6915 Branch: REL9_3_STABLE [be5d49974] 2014-01-23 23:00:30 +0900
6916 Branch: REL9_2_STABLE [ea311bfdf] 2014-01-23 23:01:06 +0900
6917 Branch: REL9_1_STABLE [1b384aff1] 2014-01-23 23:01:34 +0900
6918 Branch: REL9_0_STABLE [996b21cbf] 2014-01-23 23:02:03 +0900
6919 Branch: REL8_4_STABLE [5525529db] 2014-01-23 23:02:30 +0900
6924 Fix misbehavior of <function>PQhost()</> on Windows (Fujii Masao)
6928 It should return <literal>localhost</> if no host has been specified.
6933 Author: Tom Lane <tgl@sss.pgh.pa.us>
6934 Branch: master [b8f00a46b] 2014-02-13 18:45:58 -0500
6935 Branch: REL9_3_STABLE [f208fb436] 2014-02-13 18:46:03 -0500
6936 Branch: REL9_2_STABLE [2573f08a1] 2014-02-13 18:45:20 -0500
6937 Branch: REL9_1_STABLE [7182bd239] 2014-02-13 18:45:23 -0500
6938 Branch: REL9_0_STABLE [218dd205b] 2014-02-13 18:45:27 -0500
6939 Branch: REL8_4_STABLE [7644a7bd8] 2014-02-13 18:45:32 -0500
6944 Improve error handling in <application>libpq</> and <application>psql</>
6945 for failures during <literal>COPY TO STDOUT/FROM STDIN</> (Tom Lane)
6949 In particular this fixes an infinite loop that could occur in 9.2 and
6950 up if the server connection was lost during <literal>COPY FROM
6951 STDIN</>. Variants of that scenario might be possible in older
6952 versions, or with other client applications.
6957 Author: Tom Lane <tgl@sss.pgh.pa.us>
6958 Branch: master [92459e7a7] 2014-01-04 16:05:16 -0500
6959 Branch: REL9_3_STABLE [341f0bc49] 2014-01-04 16:05:20 -0500
6960 Branch: REL9_2_STABLE [fa28f9cba] 2014-01-04 16:05:23 -0500
6965 Fix incorrect translation handling in
6966 some <application>psql</> <literal>\d</> commands
6967 (Peter Eisentraut, Tom Lane)
6972 Author: Magnus Hagander <magnus@hagander.net>
6973 Branch: master [63ab2befe] 2014-02-12 18:45:18 +0100
6974 Branch: REL9_3_STABLE [c90204c60] 2014-02-12 18:46:04 +0100
6975 Branch: REL9_2_STABLE [0ae288d2d] 2014-02-12 14:51:00 +0100
6980 Ensure <application>pg_basebackup</>'s background process is killed
6981 when exiting its foreground process (Magnus Hagander)
6986 Author: Magnus Hagander <magnus@hagander.net>
6987 Branch: master [01025d80a] 2014-02-09 12:05:14 +0100
6988 Branch: REL9_3_STABLE [680baa8d2] 2014-02-09 12:09:18 +0100
6989 Branch: REL9_2_STABLE [165aa1da5] 2014-02-09 12:09:39 +0100
6990 Branch: REL9_1_STABLE [c6e5c4dd1] 2014-02-09 12:09:55 +0100
6995 Fix possible incorrect printing of filenames
6996 in <application>pg_basebackup</>'s verbose mode (Magnus Hagander)
7001 Author: Magnus Hagander <magnus@hagander.net>
7002 Branch: master [b168c5ef2] 2014-01-07 17:11:32 +0100
7003 Branch: REL9_3_STABLE [0463b9419] 2014-01-07 17:11:51 +0100
7004 Branch: REL9_2_STABLE [2edf3e82c] 2014-01-07 17:22:36 +0100
7005 Branch: REL9_1_STABLE [773e4d5e4] 2014-01-07 17:18:02 +0100
7010 Avoid including tablespaces inside PGDATA twice in base backups
7011 (Dimitri Fontaine, Magnus Hagander)
7016 Author: Michael Meskes <meskes@postgresql.org>
7017 Branch: master [d685e2424] 2014-01-09 16:20:19 +0100
7018 Branch: REL9_3_STABLE [28fff0ef8] 2014-01-09 15:41:51 +0100
7019 Branch: REL9_2_STABLE [799728b0b] 2014-01-09 15:50:51 +0100
7020 Branch: REL9_1_STABLE [9f5b3a1a1] 2014-01-09 15:51:11 +0100
7021 Branch: REL9_0_STABLE [a29b6c342] 2014-01-09 15:51:23 +0100
7022 Branch: REL8_4_STABLE [d68a65b01] 2014-01-09 15:58:37 +0100
7027 Fix misaligned descriptors in <application>ecpg</> (MauMau)
7032 Author: Michael Meskes <meskes@postgresql.org>
7033 Branch: master [7c957ec83] 2014-01-01 12:39:31 +0100
7034 Branch: REL9_3_STABLE [8404037d8] 2014-01-01 12:40:28 +0100
7035 Branch: REL9_2_STABLE [119a59879] 2014-01-01 12:40:42 +0100
7036 Branch: REL9_1_STABLE [948498274] 2014-01-01 12:44:15 +0100
7037 Branch: REL9_0_STABLE [17bcdd01f] 2014-01-01 12:44:44 +0100
7038 Branch: REL8_4_STABLE [96de4939c] 2014-01-01 12:44:58 +0100
7043 In <application>ecpg</>, handle lack of a hostname in the connection
7044 parameters properly (Michael Meskes)
7049 Author: Joe Conway <mail@joeconway.com>
7050 Branch: master [d6ca510d9] 2013-12-07 17:00:26 -0800
7051 Branch: REL9_3_STABLE [0ec530625] 2013-12-07 17:00:10 -0800
7052 Branch: REL9_2_STABLE [7f4ef622f] 2013-12-07 16:59:35 -0800
7053 Branch: REL9_1_STABLE [70165f25b] 2013-12-07 16:59:16 -0800
7054 Branch: REL9_0_STABLE [9057adc23] 2013-12-07 16:58:41 -0800
7055 Branch: REL8_4_STABLE [6c8b16e30] 2013-12-07 16:56:34 -0800
7060 Fix performance regression in <filename>contrib/dblink</> connection
7061 startup (Joe Conway)
7065 Avoid an unnecessary round trip when client and server encodings match.
7070 Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
7071 Branch: master [866a1f092] 2014-01-13 15:43:29 +0200
7072 Branch: REL9_3_STABLE [50c5770ec] 2014-01-13 15:43:59 +0200
7073 Branch: REL9_2_STABLE [f6d6b42f2] 2014-01-13 15:44:02 +0200
7074 Branch: REL9_1_STABLE [5143dfd57] 2014-01-13 15:44:04 +0200
7075 Branch: REL9_0_STABLE [6c3f040be] 2014-01-13 15:44:12 +0200
7076 Branch: REL8_4_STABLE [492b68541] 2014-01-13 15:44:14 +0200
7081 In <filename>contrib/isn</>, fix incorrect calculation of the check
7082 digit for ISMN values (Fabien Coelho)
7087 Author: Tatsuo Ishii <ishii@postgresql.org>
7088 Branch: master [841a65482] 2013-12-12 19:10:35 +0900
7089 Branch: REL9_3_STABLE [27902bc91] 2013-12-12 19:07:53 +0900
7094 Fix <filename>contrib/pgbench</>'s progress logging to avoid overflow
7095 when the scale factor is large (Tatsuo Ishii)
7100 Author: Tom Lane <tgl@sss.pgh.pa.us>
7101 Branch: master [69c7a9838] 2014-01-21 16:34:28 -0500
7102 Branch: REL9_3_STABLE [0950d67ee] 2014-01-21 16:34:31 -0500
7103 Branch: REL9_2_STABLE [27ab1eb7e] 2014-01-21 16:34:35 -0500
7108 Fix <filename>contrib/pg_stat_statement</>'s handling
7109 of <literal>CURRENT_DATE</> and related constructs (Kyotaro
7115 Author: Tom Lane <tgl@sss.pgh.pa.us>
7116 Branch: master [00d4f2af8] 2014-02-03 21:30:20 -0500
7117 Branch: REL9_3_STABLE [eb3d350db] 2014-02-03 21:30:28 -0500
7122 Improve lost-connection error handling
7123 in <filename>contrib/postgres_fdw</> (Tom Lane)
7128 Author: Peter Eisentraut <peter_e@gmx.net>
7129 Branch: master [ad6bf0291] 2014-01-17 23:08:22 -0500
7130 Branch: REL9_3_STABLE [586bea612] 2014-01-17 23:11:02 -0500
7131 Branch: REL9_2_STABLE [526e38751] 2014-01-17 23:12:50 -0500
7132 Branch: REL9_1_STABLE [6d969b000] 2014-01-17 23:14:21 -0500
7133 Branch: REL9_0_STABLE [2346c383a] 2014-01-17 23:15:00 -0500
7134 Branch: REL8_4_STABLE [15699d9bf] 2014-01-17 23:17:59 -0500
7139 Ensure client-code-only installation procedure works as documented
7145 Author: Andrew Dunstan <andrew@dunslane.net>
7146 Branch: master [d587298b8] 2014-02-01 15:11:13 -0500
7147 Branch: REL9_3_STABLE [1e9876c3b] 2014-02-01 15:16:06 -0500
7148 Branch: REL9_2_STABLE [6e96d4db8] 2014-02-01 15:16:18 -0500
7149 Branch: REL9_1_STABLE [dfb4a1a21] 2014-02-01 15:16:29 -0500
7150 Branch: REL9_0_STABLE [59d64e7f3] 2014-02-01 15:16:40 -0500
7151 Branch: REL8_4_STABLE [ae3c98b9b] 2014-02-01 15:16:52 -0500
7156 In Mingw and Cygwin builds, install the <application>libpq</> DLL
7157 in the <filename>bin</> directory (Andrew Dunstan)
7161 This duplicates what the MSVC build has long done. It should fix
7162 problems with programs like <application>psql</> failing to start
7163 because they can't find the DLL.
7168 Author: Andrew Dunstan <andrew@dunslane.net>
7169 Branch: master [7e1531a45] 2014-02-01 16:08:33 -0500
7170 Branch: REL9_3_STABLE [27942baf4] 2014-02-01 16:13:32 -0500
7171 Branch: REL9_2_STABLE [fad443753] 2014-02-01 16:13:46 -0500
7172 Branch: REL9_1_STABLE [e5c22c15d] 2014-02-01 16:14:01 -0500
7173 Branch: REL9_0_STABLE [1c0bf372f] 2014-02-01 16:14:15 -0500
7178 Avoid using the deprecated <literal>dllwrap</> tool in Cygwin builds
7184 Author: Andrew Dunstan <andrew@dunslane.net>
7185 Branch: master [cec8394b5] 2014-01-26 09:49:10 -0500
7186 Branch: REL9_3_STABLE [56c08df55] 2014-01-26 09:45:43 -0500
7191 Enable building with Visual Studio 2013 (Brar Piening)
7196 Author: Tom Lane <tgl@sss.pgh.pa.us>
7197 Branch: master [289541520] 2014-02-10 20:48:04 -0500
7198 Branch: REL9_3_STABLE [f1e522696] 2014-02-10 20:48:12 -0500
7199 Branch: REL9_2_STABLE [dd5605104] 2014-02-10 20:48:20 -0500
7200 Branch: REL9_1_STABLE [3bf5c16f1] 2014-02-10 20:48:23 -0500
7201 Branch: REL9_0_STABLE [e1e7642bd] 2014-02-10 20:48:27 -0500
7202 Branch: REL8_4_STABLE [432735cbf] 2014-02-10 20:48:30 -0500
7207 Don't generate plain-text <filename>HISTORY</>
7208 and <filename>src/test/regress/README</> files anymore (Tom Lane)
7212 These text files duplicated the main HTML and PDF documentation
7213 formats. The trouble involved in maintaining them greatly outweighs
7214 the likely audience for plain-text format. Distribution tarballs
7215 will still contain files by these names, but they'll just be stubs
7216 directing the reader to consult the main documentation.
7217 The plain-text <filename>INSTALL</> file will still be maintained, as
7218 there is arguably a use-case for that.
7223 Author: Tom Lane <tgl@sss.pgh.pa.us>
7224 Branch: master [e04641f4b] 2014-02-14 21:59:13 -0500
7225 Branch: REL9_3_STABLE [46cbcd50e] 2014-02-14 21:59:37 -0500
7226 Branch: REL9_2_STABLE [4f975b68b] 2014-02-14 21:59:42 -0500
7227 Branch: REL9_1_STABLE [3212ba534] 2014-02-14 21:59:46 -0500
7228 Branch: REL9_0_STABLE [cb84fddd9] 2014-02-14 21:59:50 -0500
7229 Branch: REL8_4_STABLE [c0c2d62ac] 2014-02-14 21:59:56 -0500
7234 Update time zone data files to <application>tzdata</> release 2013i
7235 for DST law changes in Jordan and historical changes in Cuba.
7239 In addition, the zones <literal>Asia/Riyadh87</>,
7240 <literal>Asia/Riyadh88</>, and <literal>Asia/Riyadh89</> have been
7241 removed, as they are no longer maintained by IANA, and never
7242 represented actual civil timekeeping practice.
7251 <sect1 id="release-9-3-2">
7252 <title>Release 9.3.2</title>
7255 <title>Release Date</title>
7256 <simpara>2013-12-05</simpara>
7260 This release contains a variety of fixes from 9.3.1.
7261 For information about new features in the 9.3 major release, see
7262 <xref linkend="release-9-3">.
7266 <title>Migration to Version 9.3.2</title>
7269 A dump/restore is not required for those running 9.3.X.
7273 However, this release corrects a number of potential data corruption
7274 issues. See the first three changelog entries below to find out whether
7275 your installation has been affected and what steps you can take if so.
7279 Also, if you are upgrading from a version earlier than 9.3.1,
7280 see <xref linkend="release-9-3-1">.
7286 <title>Changes</title>
7292 Fix <command>VACUUM</>'s tests to see whether it can
7293 update <structfield>relfrozenxid</> (Andres Freund)
7297 In some cases <command>VACUUM</> (either manual or autovacuum) could
7298 incorrectly advance a table's <structfield>relfrozenxid</> value,
7299 allowing tuples to escape freezing, causing those rows to become
7300 invisible once 2^31 transactions have elapsed. The probability of
7301 data loss is fairly low since multiple incorrect advancements would
7302 need to happen before actual loss occurs, but it's not zero. In 9.2.0
7303 and later, the probability of loss is higher, and it's also possible
7304 to get <quote>could not access status of transaction</> errors as a
7305 consequence of this bug. Users upgrading from releases 9.0.4 or 8.4.8
7306 or earlier are not affected, but all later versions contain the bug.
7310 The issue can be ameliorated by, after upgrading, vacuuming all tables
7311 in all databases while having <link
7312 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
7313 set to zero. This will fix any latent corruption but will not be able
7314 to fix all pre-existing data errors. However, an installation can be
7315 presumed safe after performing this vacuuming if it has executed fewer
7316 than 2^31 update transactions in its lifetime (check this with
7317 <literal>SELECT txid_current() < 2^31</>).
7323 Fix multiple bugs in MultiXactId freezing (Andres Freund,
7324 Álvaro Herrera)
7328 These bugs could lead to <quote>could not access status of
7329 transaction</> errors, or to duplicate or vanishing rows.
7330 Users upgrading from releases prior to 9.3.0 are not affected.
7334 The issue can be ameliorated by, after upgrading, vacuuming all tables
7335 in all databases while having <link
7336 linkend="guc-vacuum-freeze-table-age"><varname>vacuum_freeze_table_age</></link>
7337 set to zero. This will fix latent corruption but will not be able to
7338 fix all pre-existing data errors.
7342 As a separate issue, these bugs can also cause standby servers to get
7343 out of sync with the primary, thus exhibiting data errors that are not
7344 in the primary. Therefore, it's recommended that 9.3.0 and 9.3.1
7345 standby servers be re-cloned from the primary (e.g., with a new base
7346 backup) after upgrading.
7352 Fix initialization of <filename>pg_clog</> and <filename>pg_subtrans</>
7353 during hot standby startup (Andres Freund, Heikki Linnakangas)
7357 This bug can cause data loss on standby servers at the moment they
7358 start to accept hot-standby queries, by marking committed transactions
7359 as uncommitted. The likelihood of such corruption is small unless, at
7360 the time of standby startup, the primary server has executed many
7361 updating transactions since its last checkpoint. Symptoms include
7362 missing rows, rows that should have been deleted being still visible,
7363 and obsolete versions of updated rows being still visible alongside
7364 their newer versions.
7368 This bug was introduced in versions 9.3.0, 9.2.5, 9.1.10, and 9.0.14.
7369 Standby servers that have only been running earlier releases are not
7370 at risk. It's recommended that standby servers that have ever run any
7371 of the buggy releases be re-cloned from the primary (e.g., with a new
7372 base backup) after upgrading.
7378 Fix multiple bugs in update chain traversal (Andres Freund,
7379 Álvaro Herrera)
7383 These bugs could result in incorrect behavior, such as locking or even
7384 updating the wrong row, in the presence of concurrent updates.
7385 Spurious <quote>unable to fetch updated version of tuple</> errors
7392 Fix dangling-pointer problem in fast-path locking (Tom Lane)
7396 This could lead to corruption of the lock data structures in shared
7397 memory, causing <quote>lock already held</> and other odd errors.
7403 Fix assorted race conditions in timeout management (Tom Lane)
7407 These errors could result in a server process becoming unresponsive
7408 because it had blocked SIGALRM and/or SIGINT.
7414 Truncate <filename>pg_multixact</> contents during WAL replay
7419 This avoids ever-increasing disk space consumption in standby servers.
7425 Ensure an anti-wraparound <command>VACUUM</> counts a page as scanned
7426 when it's only verified that no tuples need freezing (Sergey
7427 Burladyan, Jeff Janes)
7431 This bug could result in failing to
7432 advance <structfield>relfrozenxid</>, so that the table would still be
7433 thought to need another anti-wraparound vacuum. In the worst case the
7434 database might even shut down to prevent wraparound.
7440 Fix full-table-vacuum request mechanism for MultiXactIds (Andres Freund)
7444 This bug could result in large amounts of useless autovacuum activity.
7450 Fix race condition in GIN index posting tree page deletion (Heikki
7455 This could lead to transient wrong answers or query failures.
7461 Fix <quote>unexpected spgdoinsert() failure</> error during SP-GiST
7462 index creation (Teodor Sigaev)
7468 Fix assorted bugs in materialized views (Kevin Grittner, Andres Freund)
7474 Re-allow duplicate table aliases if they're within aliased JOINs
7479 Historically <productname>PostgreSQL</> has accepted queries like
7481 SELECT ... FROM tab1 x CROSS JOIN (tab2 x CROSS JOIN tab3 y) z
7483 although a strict reading of the SQL standard would forbid the
7484 duplicate usage of table alias <literal>x</>. A misguided change in
7485 9.3.0 caused it to reject some such cases that were formerly accepted.
7486 Restore the previous behavior.
7492 Avoid flattening a subquery whose <literal>SELECT</> list contains a
7493 volatile function wrapped inside a sub-<literal>SELECT</> (Tom Lane)
7497 This avoids unexpected results due to extra evaluations of the
7504 Fix planner's processing of non-simple-variable subquery outputs
7505 nested within outer joins (Tom Lane)
7509 This error could lead to incorrect plans for queries involving
7510 multiple levels of subqueries within <literal>JOIN</> syntax.
7516 Fix incorrect planning in cases where the same non-strict expression
7517 appears in multiple <literal>WHERE</> and outer <literal>JOIN</>
7518 equality clauses (Tom Lane)
7524 Fix planner crash with whole-row reference to a subquery (Tom Lane)
7530 Fix incorrect generation of optimized MIN()/MAX() plans for
7531 inheritance trees (Tom Lane)
7535 The planner could fail in cases where the MIN()/MAX() argument was an
7536 expression rather than a simple variable.
7542 Fix premature deletion of temporary files (Andres Freund)
7548 Prevent intra-transaction memory leak when printing range values
7553 This fix actually cures transient memory leaks in any datatype output
7554 function, but range types are the only ones known to have had a
7555 significant problem.
7561 Fix memory leaks when reloading configuration files (Heikki
7562 Linnakangas, Hari Babu)
7568 Prevent incorrect display of dropped columns in NOT NULL and CHECK
7569 constraint violation messages (Michael Paquier and Tom Lane)
7575 Allow default arguments and named-argument notation for window
7576 functions (Tom Lane)
7580 Previously, these cases were likely to crash.
7586 Suppress trailing whitespace on each line when pretty-printing rules
7587 and views (Tom Lane)
7591 9.3.0 generated such whitespace in many more cases than previous
7592 versions did. To reduce unexpected behavioral changes, suppress
7593 unnecessary whitespace in all cases.
7599 Fix possible read past end of memory in rule printing (Peter Eisentraut)
7605 Fix array slicing of <type>int2vector</> and <type>oidvector</> values
7610 Expressions of this kind are now implicitly promoted to
7611 regular <type>int2</> or <type>oid</> arrays.
7617 Return a valid JSON value when converting an empty <type>hstore</> value
7625 Fix incorrect behaviors when using a SQL-standard, simple GMT offset
7630 In some cases, the system would use the simple GMT offset value when
7631 it should have used the regular timezone setting that had prevailed
7632 before the simple offset was selected. This change also causes
7633 the <function>timeofday</> function to honor the simple GMT offset
7640 Prevent possible misbehavior when logging translations of Windows
7641 error codes (Tom Lane)
7647 Properly quote generated command lines in <application>pg_ctl</>
7648 (Naoya Anzai and Tom Lane)
7652 This fix applies only to Windows.
7658 Fix <application>pg_dumpall</> to work when a source database
7660 linkend="guc-default-transaction-read-only"><varname>default_transaction_read_only</></link>
7661 via <command>ALTER DATABASE SET</> (Kevin Grittner)
7665 Previously, the generated script would fail during restore.
7671 Fix <application>pg_isready</> to handle its <option>-d</> option
7672 properly (Fabrízio de Royes Mello and Fujii Masao)
7678 Fix parsing of WAL file names in <application>pg_receivexlog</>
7679 (Heikki Linnakangas)
7683 This error made <application>pg_receivexlog</> unable to restart
7684 streaming after stopping, once at least 4 GB of WAL had been written.
7690 Report out-of-disk-space failures properly
7691 in <application>pg_upgrade</> (Peter Eisentraut)
7697 Make <application>ecpg</> search for quoted cursor names
7698 case-sensitively (Zoltán Böszörményi)
7704 Fix <application>ecpg</>'s processing of lists of variables
7705 declared <type>varchar</> (Zoltán Böszörményi)
7711 Make <filename>contrib/lo</> defend against incorrect trigger definitions
7718 Update time zone data files to <application>tzdata</> release 2013h
7719 for DST law changes in Argentina, Brazil, Jordan, Libya,
7720 Liechtenstein, Morocco, and Palestine. Also, new timezone
7721 abbreviations WIB, WIT, WITA for Indonesia.
7730 <sect1 id="release-9-3-1">
7731 <title>Release 9.3.1</title>
7734 <title>Release Date</title>
7735 <simpara>2013-10-10</simpara>
7739 This release contains a variety of fixes from 9.3.0.
7740 For information about new features in the 9.3 major release, see
7741 <xref linkend="release-9-3">.
7745 <title>Migration to Version 9.3.1</title>
7748 A dump/restore is not required for those running 9.3.X.
7752 However, if you use the <literal>hstore</> extension, see the
7753 first changelog entry.
7759 <title>Changes</title>
7765 Ensure new-in-9.3 JSON functionality is added to the <literal>hstore</>
7766 extension during an update (Andrew Dunstan)
7770 Users who upgraded a pre-9.3 database containing <literal>hstore</>
7773 ALTER EXTENSION hstore UPDATE;
7775 after installing 9.3.1, to add two new JSON functions and a cast.
7776 (If <literal>hstore</> is already up to date, this command does
7783 Fix memory leak when creating B-tree indexes on range columns
7784 (Heikki Linnakangas)
7790 Fix memory leak caused by <function>lo_open()</function> failure
7791 (Heikki Linnakangas)
7797 Serializable snapshot fixes (Kevin Grittner, Heikki Linnakangas)
7803 Fix deadlock bug in libpq when using SSL (Stephen Frost)
7809 Fix timeline handling bugs in <application>pg_receivexlog</>
7810 (Heikki Linnakangas, Andrew Gierth)
7816 Prevent <command>CREATE FUNCTION</> from checking <command>SET</>
7817 variables unless function body checking is enabled (Tom Lane)
7823 Remove rare inaccurate warning during vacuum of index-less tables
7824 (Heikki Linnakangas)
7833 <sect1 id="release-9-3">
7834 <title>Release 9.3</title>
7837 <title>Release Date</title>
7838 <simpara>2013-09-09</simpara>
7842 <title>Overview</title>
7845 Major enhancements in <productname>PostgreSQL</> 9.3 include:
7848 <!-- This list duplicates items below, but without authors or details-->
7854 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
7861 Make simple views <link
7862 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
7868 Add many features for the <type>JSON</> data type,
7869 including <link linkend="functions-json">operators and functions</link>
7870 to extract elements from <type>JSON</> values
7876 Implement <acronym>SQL</>-standard <link
7877 linkend="queries-lateral"><literal>LATERAL</></link> option for
7878 <literal>FROM</>-clause subqueries and function calls
7884 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
7885 wrappers</link> to support writes (inserts/updates/deletes) on foreign
7892 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
7893 data wrapper</link> to allow access to
7894 other <productname>Postgres</> servers
7900 Add support for <link linkend="event-triggers">event triggers</link>
7906 Add optional ability to <link
7907 linkend="app-initdb-data-checksums">checksum</link> data pages and
7914 Prevent non-key-field row updates from blocking foreign key checks
7920 Greatly reduce System V <link linkend="sysvipc">shared
7921 memory</link> requirements
7928 The above items are explained in more detail in the sections below.
7935 <title>Migration to Version 9.3</title>
7938 A dump/restore using <link
7939 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, or use
7940 of <link linkend="pgupgrade"><application>pg_upgrade</></link>, is
7941 required for those wishing to migrate data from any previous release.
7945 Version 9.3 contains a number of changes that may affect compatibility
7946 with previous releases. Observe the following incompatibilities:
7950 <title>Server Settings</title>
7956 Rename <varname>replication_timeout</> to <link
7957 linkend="guc-wal-sender-timeout"><varname>wal_sender_timeout</></link>
7962 This setting controls the <link
7963 linkend="wal"><acronym>WAL</></link> sender timeout.
7969 Require superuser privileges to set <link
7970 linkend="guc-commit-delay"><varname>commit_delay</></link>
7971 because it can now potentially delay other sessions (Simon Riggs)
7977 Allow in-memory sorts to use their full memory allocation (Jeff Janes)
7981 Users who have set <link
7982 linkend="guc-work-mem"><varname>work_mem</></link> based on the
7983 previous behavior may need to revisit that setting.
7992 <title>Other</title>
7998 Throw an error if a tuple to be updated or deleted has already been
7999 updated or deleted by a <literal>BEFORE</> trigger (Kevin Grittner)
8003 Formerly, the originally-intended update was silently skipped,
8004 resulting in logical inconsistency since the trigger might have
8005 propagated data to other places based on the intended update.
8006 Now an error is thrown to prevent the inconsistent results from being
8007 committed. If this change affects your application, the best solution
8008 is usually to move the data-propagation actions to
8009 an <literal>AFTER</> trigger.
8013 This error will also be thrown if a query invokes a volatile function
8014 that modifies rows that are later modified by the query itself.
8015 Such cases likewise previously resulted in silently skipping updates.
8021 Change multicolumn <link linkend="SQL-CREATETABLE"><literal>ON UPDATE
8022 SET NULL/SET DEFAULT</></link> foreign key actions to affect
8023 all columns of the constraint, not just those changed in the
8024 <command>UPDATE</> (Tom Lane)
8028 Previously, we would set only those referencing columns that
8029 correspond to referenced columns that were changed by
8030 the <command>UPDATE</>. This was what was required by SQL-92,
8031 but more recent editions of the SQL standard specify the new behavior.
8037 Force cached plans to be replanned if the <link
8038 linkend="guc-search-path"><varname>search_path</></link> changes
8043 Previously, cached plans already generated in the current session were
8044 not redone if the query was re-executed with a
8045 new <varname>search_path</> setting, resulting in surprising behavior.
8052 linkend="functions-formatting-table"><function>to_number()</></link>
8053 to properly handle a period used as a thousands separator (Tom Lane)
8057 Previously, a period was considered to be a decimal point even when
8058 the locale says it isn't and the <literal>D</> format code is used to
8059 specify use of the locale-specific decimal point. This resulted in
8060 wrong answers if <literal>FM</> format was also used.
8066 Fix <literal>STRICT</> non-set-returning functions that have
8067 set-returning functions in their arguments to properly return null
8072 A null value passed to the strict function should result in a null
8073 output, but instead, that output row was suppressed entirely.
8079 Store <link linkend="wal"><acronym>WAL</></link> in a continuous
8080 stream, rather than skipping the last 16MB segment every 4GB
8081 (Heikki Linnakangas)
8085 Previously, <acronym>WAL</> files with names ending in <literal>FF</>
8086 were not used because of this skipping. If you have <acronym>WAL</>
8087 backup or restore scripts that took this behavior into account, they
8088 will need to be adjusted.
8095 linkend="catalog-pg-constraint"><structname>pg_constraint.confmatchtype</></link>,
8096 store the default foreign key match type (non-<literal>FULL</>,
8097 non-<literal>PARTIAL</>) as <literal>s</> for <quote>simple</>
8102 Previously this case was represented by <literal>u</>
8103 for <quote>unspecified</>.
8114 <title>Changes</title>
8117 Below you will find a detailed account of the changes between
8118 <productname>PostgreSQL</productname> 9.3 and the previous major
8123 <title>Server</title>
8126 <title>Locking</title>
8132 Prevent non-key-field row updates from blocking foreign key checks
8133 (Álvaro Herrera, Noah Misch, Andres Freund, Alexander
8134 Shulgin, Marti Raudsepp, Alexander Shulgin)
8138 This change improves concurrency and reduces the probability of
8139 deadlocks when updating tables involved in a foreign-key constraint.
8140 <command>UPDATE</>s that do not change any columns referenced in a
8141 foreign key now take the new <literal>NO KEY UPDATE</> lock mode on
8142 the row, while foreign key checks use the new <literal>KEY SHARE</>
8143 lock mode, which does not conflict with <literal>NO KEY UPDATE</>.
8144 So there is no blocking unless a foreign-key column is changed.
8150 Add configuration variable <link
8151 linkend="guc-lock-timeout"><varname>lock_timeout</></link> to
8152 allow limiting how long a session will wait to acquire any one lock
8153 (Zoltán Böszörményi)
8162 <title>Indexes</title>
8168 Add <link linkend="rangetypes-indexing"><acronym>SP-GiST</></link>
8169 support for range data types (Alexander Korotkov)
8175 Allow <link linkend="GiST"><acronym>GiST</></link> indexes to be
8176 unlogged (Jeevan Chalke)
8182 Improve performance of <acronym>GiST</> index insertion by randomizing
8183 the choice of which page to descend to when there are multiple equally
8184 good alternatives (Heikki Linnakangas)
8190 Improve concurrency of hash index operations (Robert Haas)
8199 <title>Optimizer</title>
8205 Collect and use histograms of upper and lower bounds, as well as range
8206 lengths, for <link linkend="rangetypes">range types</link>
8207 (Alexander Korotkov)
8213 Improve optimizer's cost estimation for index access (Tom Lane)
8219 Improve optimizer's hash table size estimate for
8220 doing <literal>DISTINCT</> via hash aggregation (Tom Lane)
8226 Suppress no-op Result and Limit plan nodes
8227 (Kyotaro Horiguchi, Amit Kapila, Tom Lane)
8233 Reduce optimizer overhead by not keeping plans on the basis of cheap
8234 startup cost when the optimizer only cares about total cost overall
8244 <title>General Performance</title>
8250 Add <link linkend="SQL-COPY"><command>COPY FREEZE</></link>
8251 option to avoid the overhead of marking tuples as frozen later
8252 (Simon Riggs, Jeff Davis)
8258 Improve performance of <link
8259 linkend="datatype-numeric"><type>NUMERIC</></link> calculations
8266 Improve synchronization of sessions waiting for <link
8267 linkend="guc-commit-delay"><varname>commit_delay</></link>
8272 This greatly improves the usefulness of <varname>commit_delay</>.
8278 Improve performance of the <link
8279 linkend="SQL-CREATETABLE"><command>CREATE TEMPORARY TABLE ... ON
8280 COMMIT DELETE ROWS</></link> option by not truncating such temporary
8281 tables in transactions that haven't touched any temporary tables
8282 (Heikki Linnakangas)
8288 Make vacuum recheck visibility after it has removed expired tuples
8293 This increases the chance of a page being marked as all-visible.
8299 Add per-resource-owner lock caches (Jeff Janes)
8303 This speeds up lock bookkeeping at statement completion in
8304 multi-statement transactions that hold many locks; it is particularly
8305 useful for <application>pg_dump</>.
8311 Avoid scanning the entire relation cache at commit of a transaction
8312 that creates a new relation (Jeff Janes)
8316 This speeds up sessions that create many tables in successive
8317 small transactions, such as a <application>pg_restore</> run.
8323 Improve performance of transactions that drop many relations
8333 <title>Monitoring</title>
8339 Add optional ability to <link
8340 linkend="app-initdb-data-checksums">checksum</link> data pages and
8341 report corruption (Simon Riggs, Jeff Davis, Greg Smith, Ants Aasma)
8345 The checksum option can be set during <link
8346 linkend="APP-INITDB">initdb</link>.
8352 Split the <link linkend="monitoring-stats">statistics collector's</link>
8353 data file into separate global and per-database files (Tomas Vondra)
8357 This reduces the I/O required for statistics tracking.
8363 Fix the statistics collector to operate properly in cases where the
8364 system clock goes backwards (Tom Lane)
8368 Previously, statistics collection would stop until the time again
8369 reached the latest time previously recorded.
8375 Emit an informative message to postmaster standard error when we
8376 are about to stop logging there
8381 This should help reduce user confusion about where to look for log
8382 output in common configurations that log to standard error only during
8392 <title>Authentication</title>
8398 When an authentication failure occurs, log the relevant
8399 <link linkend="auth-pg-hba-conf"><filename>pg_hba.conf</></link>
8400 line, to ease debugging of unintended failures
8407 Improve <link linkend="auth-ldap"><acronym>LDAP</></link> error
8408 reporting and documentation (Peter Eisentraut)
8414 Add support for specifying <acronym>LDAP</> authentication parameters
8415 in <acronym>URL</> format, per RFC 4516 (Peter Eisentraut)
8422 linkend="guc-ssl-ciphers"><varname>ssl_ciphers</></link> parameter
8423 to start with <literal>DEFAULT</>, rather than <literal>ALL</>,
8424 then remove insecure ciphers (Magnus Hagander)
8428 This should yield a more appropriate SSL cipher set.
8434 Parse and load <link
8435 linkend="auth-username-maps"><filename>pg_ident.conf</></link>
8436 once, not during each connection (Amit Kapila)
8440 This is similar to how <filename>pg_hba.conf</> is processed.
8449 <title>Server Settings</title>
8455 Greatly reduce System V <link linkend="sysvipc">shared
8456 memory</link> requirements (Robert Haas)
8460 On Unix-like systems, <function>mmap()</> is now used for most
8461 of <productname>PostgreSQL</>'s shared memory. For most users, this
8462 will eliminate any need to adjust kernel parameters for shared memory.
8468 Allow the postmaster to listen on multiple Unix-domain sockets
8469 (Honza Horák)
8473 The configuration parameter
8474 <varname>unix_socket_directory</> is replaced by <link
8475 linkend="guc-unix-socket-directories"><varname>unix_socket_directories</></link>,
8476 which accepts a list of directories.
8482 Allow a directory of configuration files to be processed (Magnus
8483 Hagander, Greg Smith, Selena Deckelmann)
8487 Such a directory is specified with <link
8488 linkend="config-includes"><varname>include_dir</></link> in the server
8495 Increase the maximum <link
8496 linkend="APP-INITDB">initdb</link>-configured value for <link
8497 linkend="guc-shared-buffers"><varname>shared_buffers</></link>
8498 to 128MB (Robert Haas)
8502 This is the maximum value that initdb will attempt to set in <link
8503 linkend="config-setting-configuration-file"><filename>postgresql.conf</></link>;
8504 the previous maximum was 32MB.
8510 Remove the <link linkend="guc-external-pid-file">external
8511 <acronym>PID</> file</link>, if any, on postmaster exit
8523 <title>Replication and Recovery</title>
8529 Allow a streaming replication standby to <link
8530 linkend="protocol-replication">follow a timeline switch</link>
8531 (Heikki Linnakangas)
8535 This allows streaming standby servers to receive WAL data from a slave
8536 newly promoted to master status. Previously, other standbys would
8537 require a resync to begin following the new master.
8543 Add <acronym>SQL</> functions <link
8544 linkend="functions-admin-backup"><function>pg_is_in_backup()</></link>
8546 linkend="functions-admin-backup"><function>pg_backup_start_time()</></link>
8551 These functions report the status of base backups.
8557 Improve performance of streaming log shipping with <link
8558 linkend="guc-synchronous-commit"><varname>synchronous_commit</></link>
8559 disabled (Andres Freund)
8565 Allow much faster promotion of a streaming standby to primary (Simon
8566 Riggs, Kyotaro Horiguchi)
8572 Add the last checkpoint's redo location to <link
8573 linkend="APP-PGCONTROLDATA"><application>pg_controldata</></link>'s
8574 output (Fujii Masao)
8578 This information is useful for determining which <acronym>WAL</>
8579 files are needed for restore.
8585 Allow tools like <link
8586 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
8587 to run on computers with different architectures (Heikki
8592 WAL files can still only be replayed on servers with the same
8593 architecture as the primary; but they can now be transmitted to and
8594 stored on machines of any architecture, since the
8595 streaming replication protocol is now machine-independent.
8602 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
8603 <option>--write-recovery-conf</> output a
8604 minimal <filename>recovery.conf</> file (Zoltán
8605 Böszörményi, Magnus Hagander)
8609 This simplifies setting up a standby server.
8616 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
8618 linkend="app-pgbasebackup"><application>pg_basebackup</></link>
8619 <option>--xlog-method</> to handle streaming timeline switches
8620 (Heikki Linnakangas)
8627 linkend="guc-wal-receiver-timeout"><varname>wal_receiver_timeout</></link>
8628 parameter to control the <acronym>WAL</> receiver's timeout
8633 This allows more rapid detection of connection failure.
8639 Change the <link linkend="wal"><acronym>WAL</></link> record format to
8640 allow splitting the record header across pages (Heikki Linnakangas)
8644 The new format is slightly more compact, and is more efficient to
8654 <title>Queries</title>
8660 Implement <acronym>SQL</>-standard <link
8661 linkend="queries-lateral"><literal>LATERAL</></link> option for
8662 <literal>FROM</>-clause subqueries and function calls (Tom Lane)
8666 This feature allows subqueries and functions in <literal>FROM</> to
8667 reference columns from other tables in the <literal>FROM</>
8668 clause. The <literal>LATERAL</> keyword is optional for functions.
8674 Add support for piping <link
8675 linkend="SQL-COPY"><command>COPY</></link> and <link
8676 linkend="APP-PSQL"><application>psql</></link> <command>\copy</>
8677 data to/from an external program (Etsuro Fujita)
8683 Allow a multirow <link
8684 linkend="SQL-VALUES"><literal>VALUES</></link> clause in a rule
8685 to reference <literal>OLD</>/<literal>NEW</> (Tom Lane)
8694 <title>Object Manipulation</title>
8700 Add support for <link linkend="event-triggers">event triggers</link>
8701 (Dimitri Fontaine, Robert Haas, Álvaro Herrera)
8705 This allows server-side functions written in event-enabled
8706 languages to be called when DDL commands are run.
8712 Allow <link linkend="SQL-CREATEFOREIGNDATAWRAPPER">foreign data
8713 wrappers</link> to support writes (inserts/updates/deletes) on foreign
8714 tables (KaiGai Kohei)
8720 Add <link linkend="SQL-CREATESCHEMA"><command>CREATE SCHEMA ... IF
8721 NOT EXISTS</></link> clause (Fabrízio de Royes Mello)
8727 Make <link linkend="SQL-REASSIGN-OWNED"><command>REASSIGN
8728 OWNED</></link> also change ownership of shared objects
8729 (Álvaro Herrera)
8735 Make <link linkend="sql-createaggregate"><command>CREATE
8736 AGGREGATE</></link> complain if the given initial value string is not
8737 valid input for the transition datatype (Tom Lane)
8743 Suppress <link linkend="SQL-CREATETABLE"><command>CREATE
8744 TABLE</></link>'s messages about implicit index and sequence creation
8749 These messages now appear at <literal>DEBUG1</> verbosity, so that
8750 they will not be shown by default.
8756 Allow <link linkend="SQL-DROPTABLE"><command>DROP TABLE IF
8757 EXISTS</></link> to succeed when a non-existent schema is specified
8758 in the table name (Bruce Momjian)
8762 Previously, it threw an error if the schema did not exist.
8768 Provide clients with <link
8769 linkend="libpq-pqresulterrorfield">constraint violation details</link>
8770 as separate fields (Pavel Stehule)
8774 This allows clients to retrieve table, column, data type, or
8775 constraint name error details. Previously such information had to be
8776 extracted from error strings. Client library support is required to
8777 access these fields.
8784 <title><command>ALTER</></title>
8790 Support <literal>IF NOT EXISTS</> option in <link
8791 linkend="SQL-ALTERTYPE"><command>ALTER TYPE ... ADD VALUE</></link>
8796 This is useful for conditionally adding values to enumerated types.
8802 Add <link linkend="SQL-ALTERROLE"><command>ALTER ROLE ALL
8803 SET</></link> to establish settings for all users (Peter Eisentraut)
8807 This allows settings to apply to all users in all databases. <link
8808 linkend="SQL-ALTERDATABASE"><command>ALTER DATABASE SET</></link>
8809 already allowed addition of settings for all users in a single
8810 database. <filename>postgresql.conf</> has a similar effect.
8816 Add support for <link linkend="SQL-ALTERRULE"><command>ALTER RULE
8817 ... RENAME</></link> (Ali Dar)
8826 <title><link linkend="rules-views"><command>VIEWs</></link></title>
8832 Add <link linkend="SQL-CREATEMATERIALIZEDVIEW">materialized
8833 views</link> (Kevin Grittner)
8837 Unlike ordinary views, where the base tables are read on every access,
8838 materialized views create physical tables at creation or refresh time.
8839 Access to the materialized view then reads from its physical
8840 table. There is not yet any facility for incrementally refreshing
8841 materialized views or auto-accessing them via base table access.
8847 Make simple views <link
8848 linkend="SQL-CREATEVIEW-updatable-views">auto-updatable</link>
8853 Simple views that reference some or all columns from a
8854 single base table are now updatable by default. More
8855 complex views can be made updatable using <link
8856 linkend="SQL-CREATETRIGGER"><literal>INSTEAD OF</></link> triggers
8857 or <link linkend="SQL-CREATERULE"><literal>INSTEAD</></link> rules.
8863 Add <link linkend="SQL-CREATEVIEW"><command>CREATE RECURSIVE
8864 VIEW</></link> syntax (Peter Eisentraut)
8868 Internally this is translated into <command>CREATE VIEW ... WITH
8875 Improve view/rule printing code to handle cases where referenced
8876 tables are renamed, or columns are renamed, added, or dropped
8881 Table and column renamings can produce cases where, if we merely
8882 substitute the new name into the original text of a rule or view, the
8883 result is ambiguous. This change fixes the rule-dumping code to insert
8884 manufactured table and column aliases when needed to preserve the
8896 <title>Data Types</title>
8902 Increase the maximum size of <link linkend="largeObjects">large
8903 objects</link> from 2GB to 4TB (Nozomi Anzai, Yugo Nagata)
8907 This change includes adding 64-bit-capable large object access
8908 functions, both in the server and in libpq.
8914 Allow text <link linkend="datatype-timezones">timezone
8915 designations</link>, e.g. <quote>America/Chicago</>, in the
8916 <quote>T</> field of <acronym>ISO</>-format <type>timestamptz</type>
8917 input (Bruce Momjian)
8924 <title><link linkend="datatype-json"><type>JSON</></link></title>
8930 Add <link linkend="functions-json">operators and functions</link>
8931 to extract elements from <type>JSON</> values (Andrew Dunstan)
8937 Allow <type>JSON</> values to be <link
8938 linkend="functions-json">converted into records</link>
8945 Add <link linkend="functions-json">functions</link> to convert
8946 scalars, records, and <type>hstore</> values to <type>JSON</> (Andrew
8959 <title>Functions</title>
8966 linkend="array-functions-table"><function>array_remove()</></link>
8968 linkend="array-functions-table"><function>array_replace()</></link>
8969 functions (Marco Nenciarini, Gabriele Bartolini)
8976 linkend="functions-string-other"><function>concat()</></link>
8978 linkend="functions-string-format"><function>format()</></link>
8979 to properly expand <literal>VARIADIC</>-labeled arguments
8987 linkend="functions-string-format"><function>format()</></link>
8988 to provide field width and left/right alignment options (Pavel Stehule)
8995 linkend="functions-formatting-table"><function>to_char()</></link>,
8997 linkend="functions-formatting-table"><function>to_date()</></link>,
8999 linkend="functions-formatting-table"><function>to_timestamp()</></link>
9000 handle negative (BC) century values properly
9005 Previously the behavior was either wrong or inconsistent
9006 with positive/<acronym>AD</> handling, e.g. with the format mask
9007 <quote>IYYY-IW-DY</>.
9014 linkend="functions-formatting-table"><function>to_date()</></link>
9016 linkend="functions-formatting-table"><function>to_timestamp()</></link>
9017 return proper results when mixing <acronym>ISO</> and Gregorian
9018 week/day designations (Bruce Momjian)
9025 linkend="functions-info-catalog-table"><function>pg_get_viewdef()</></link>
9026 to start a new line by default after each <literal>SELECT</> target
9027 list entry and <literal>FROM</> entry (Marko Tiikkaja)
9031 This reduces line length in view printing, for instance in <link
9032 linkend="APP-PGDUMP"><application>pg_dump</></link> output.
9038 Fix <function>map_sql_value_to_xml_value()</> to print values of
9039 domain types the same way their base type would be printed
9044 There are special formatting rules for certain built-in types such as
9045 <type>boolean</>; these rules now also apply to domains over these
9055 <title>Server-Side Languages</title>
9058 <title><link linkend="plpgsql">PL/pgSQL</link> Server-Side Language</title>
9064 Allow PL/pgSQL to use <literal>RETURN</> with a composite-type
9065 expression (Asif Rehman)
9069 Previously, in a function returning a composite type,
9070 <literal>RETURN</> could only reference a variable of that type.
9076 Allow PL/pgSQL to access <link
9077 linkend="plpgsql-exception-diagnostics">constraint violation
9078 details</link> as separate fields (Pavel Stehule)
9084 Allow PL/pgSQL to access the number of rows processed by
9085 <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
9089 A <command>COPY</> executed in a PL/pgSQL function now updates the
9090 value retrieved by <link
9091 linkend="plpgsql-statements-diagnostics"><command>GET DIAGNOSTICS
9092 x = ROW_COUNT</></link>.
9098 Allow unreserved keywords to be used as identifiers everywhere in
9103 In certain places in the PL/pgSQL grammar, keywords had to be quoted
9104 to be used as identifiers, even if they were nominally unreserved.
9113 <title><link linkend="plpython">PL/Python</link> Server-Side Language</title>
9119 Add PL/Python result object string handler (Peter Eisentraut)
9123 This allows <literal>plpy.debug(rv)</literal> to output something reasonable.
9129 Make PL/Python convert OID values to a proper Python numeric type
9136 Handle <link linkend="spi"><acronym>SPI</></link> errors raised
9137 explicitly (with PL/Python's <literal>RAISE</>) the same as
9138 internal <acronym>SPI</> errors (Oskari Saarenmaa and Jan Urbanski)
9149 <title>Server Programming Interface (<link linkend="spi">SPI</link>)</title>
9155 Prevent leakage of <acronym>SPI</> tuple tables during subtransaction
9160 At the end of any failed subtransaction, the core SPI code now
9161 releases any SPI tuple tables that were created during that
9162 subtransaction. This avoids the need for SPI-using code to keep track
9163 of such tuple tables and release them manually in error-recovery code.
9164 Failure to do so caused a number of transaction-lifespan memory leakage
9165 issues in PL/pgSQL and perhaps other SPI clients. <link
9166 linkend="spi-spi-freetupletable"><function>SPI_freetuptable()</></link>
9167 now protects itself against multiple freeing requests, so any existing
9168 code that did take care to clean up shouldn't be broken by this change.
9174 Allow <acronym>SPI</> functions to access the number of rows processed
9175 by <link linkend="SQL-COPY"><command>COPY</></link> (Pavel Stehule)
9184 <title>Client Applications</title>
9190 Add command-line utility <link
9191 linkend="app-pg-isready"><application>pg_isready</></link> to
9192 check if the server is ready to accept connections (Phil Sorber)
9198 Support multiple <option>--table</> arguments for <link
9199 linkend="APP-PGRESTORE"><application>pg_restore</></link>,
9200 <link linkend="APP-CLUSTERDB"><application>clusterdb</></link>,
9201 <link linkend="APP-REINDEXDB"><application>reindexdb</></link>,
9202 and <link linkend="APP-VACUUMDB"><application>vacuumdb</></link>
9207 This is similar to the way <link
9208 linkend="APP-PGDUMP"><application>pg_dump</></link>'s
9209 <option>--table</> option works.
9215 Add <option>--dbname</> option to <link
9216 linkend="APP-PG-DUMPALL"><application>pg_dumpall</></link>, <link
9217 linkend="app-pgbasebackup"><application>pg_basebackup</></link>, and
9219 linkend="app-pgreceivexlog"><application>pg_receivexlog</></link>
9220 to allow specifying a connection string (Amit Kapila)
9226 Add libpq function <link
9227 linkend="libpq-pqconninfo"><function>PQconninfo()</></link>
9228 to return connection information (Zoltán
9229 Böszörményi, Magnus Hagander)
9236 <title><link linkend="APP-PSQL"><application>psql</></link></title>
9242 Adjust function cost settings so <application>psql</> tab
9243 completion and pattern searching are more efficient (Tom Lane)
9249 Improve <application>psql</>'s tab completion coverage (Jeff Janes,
9250 Dean Rasheed, Peter Eisentraut, Magnus Hagander)
9256 Allow the <application>psql</> <option>--single-transaction</>
9257 mode to work when reading from standard input (Fabien Coelho,
9262 Previously this option only worked when reading from a file.
9268 Remove <application>psql</> warning when connecting to an older
9269 server (Peter Eisentraut)
9273 A warning is still issued when connecting to a server of a newer major
9274 version than <application>psql</>'s.
9281 <title><link linkend="APP-PSQL-meta-commands">Backslash Commands</link></title>
9287 Add <application>psql</> command <command>\watch</> to repeatedly
9288 execute a SQL command (Will Leinweber)
9294 Add <application>psql</> command <command>\gset</> to store query
9295 results in <application>psql</> variables (Pavel Stehule)
9301 Add <acronym>SSL</> information to <application>psql</>'s
9302 <command>\conninfo</> command (Alastair Turner)
9308 Add <quote>Security</> column to <application>psql</>'s
9309 <command>\df+</> output (Jon Erdman)
9315 Allow <application>psql</> command <command>\l</> to accept a database
9316 name pattern (Peter Eisentraut)
9322 In <application>psql</>, do not allow <command>\connect</> to
9323 use defaults if there is no active connection (Bruce Momjian)
9327 This might be the case if the server had crashed.
9333 Properly reset state after failure of a SQL command executed with
9334 <application>psql</>'s <literal>\g</> <replaceable>file</>
9339 Previously, the output from subsequent SQL commands would unexpectedly
9340 continue to go to the same file.
9349 <title>Output</title>
9355 Add a <literal>latex-longtable</> output format to
9356 <application>psql</> (Bruce Momjian)
9360 This format allows tables to span multiple pages.
9366 Add a <literal>border=3</> output mode to the <application>psql</>
9367 <literal>latex</> format (Bruce Momjian)
9373 In <application>psql</>'s tuples-only and expanded output modes, no
9374 longer emit <quote>(No rows)</> for zero rows (Peter Eisentraut)
9380 In <application>psql</>'s unaligned, expanded output mode, no longer
9381 print an empty line for zero rows (Peter Eisentraut)
9392 <title><link linkend="APP-PGDUMP"><application>pg_dump</></link></title>
9398 Add <application>pg_dump</> <option>--jobs</> option to dump tables in
9399 parallel (Joachim Wieland)
9405 Make <application>pg_dump</> output functions in a more predictable
9406 order (Joel Jacobson)
9412 Fix tar files emitted by <application>pg_dump</>
9413 to be <acronym>POSIX</> conformant (Brian Weaver, Tom Lane)
9419 Add <option>--dbname</> option to <application>pg_dump</>, for
9420 consistency with other client commands (Heikki Linnakangas)
9424 The database name could already be supplied last without a flag.
9433 <title><link linkend="APP-INITDB"><application>initdb</></link></title>
9439 Make initdb fsync the newly created data directory (Jeff Davis)
9443 This insures data integrity in event of a system crash shortly after
9444 initdb. This can be disabled by using <option>--nosync</>.
9450 Add initdb <option>--sync-only</> option to sync the data directory to durable
9451 storage (Bruce Momjian)
9455 This is used by <link
9456 linkend="pgupgrade"><application>pg_upgrade</></link>.
9462 Make initdb issue a warning about placing the data directory at the
9463 top of a file system mount point (Bruce Momjian)
9474 <title>Source Code</title>
9480 Add infrastructure to allow plug-in <link
9481 linkend="bgworker">background worker processes</link>
9482 (Álvaro Herrera)
9488 Create a centralized timeout <acronym>API</> (Zoltán
9489 Böszörményi)
9495 Create libpgcommon and move <function>pg_malloc()</> and other
9496 functions there (Álvaro Herrera, Andres Freund)
9500 This allows libpgport to be used solely for portability-related code.
9506 Add support for list links embedded in larger structs (Andres Freund)
9512 Use <literal>SA_RESTART</> for all signals,
9513 including <literal>SIGALRM</> (Tom Lane)
9519 Ensure that the correct text domain is used when
9520 translating <function>errcontext()</> messages
9521 (Heikki Linnakangas)
9527 Standardize naming of client-side memory allocation functions (Tom Lane)
9533 Provide support for <quote>static assertions</> that will fail at
9534 compile time if some compile-time-constant condition is not met
9535 (Andres Freund, Tom Lane)
9541 Support <function>Assert()</> in client-side code (Andrew Dunstan)
9547 Add decoration to inform the C compiler that some <function>ereport()</>
9548 and <function>elog()</> calls do not return (Peter Eisentraut,
9549 Andres Freund, Tom Lane, Heikki Linnakangas)
9555 Allow options to be passed to the regression
9556 test output comparison utility via <link
9557 linkend="regress-evaluation"><envar>PG_REGRESS_DIFF_OPTS</></link>
9564 Add isolation tests for <link
9565 linkend="SQL-CREATEINDEX"><command>CREATE INDEX
9566 CONCURRENTLY</></link> (Abhijit Menon-Sen)
9572 Remove typedefs for <type>int2</>/<type>int4</> as they are better
9573 represented as <type>int16</>/<type>int32</> (Peter Eisentraut)
9579 Fix <link linkend="install">install-strip</link> on Mac <productname>OS
9580 X</> (Peter Eisentraut)
9586 Remove <link linkend="configure">configure</link> flag
9587 <option>--disable-shared</>, as it is no longer supported
9594 Rewrite pgindent in <application>Perl</> (Andrew Dunstan)
9600 Provide Emacs macro to set Perl formatting to
9601 match <productname>PostgreSQL</>'s perltidy settings (Peter Eisentraut)
9607 Run tool to check the keyword list whenever the backend grammar is
9614 Change the way <literal>UESCAPE</> is lexed, to significantly reduce
9615 the size of the lexer tables (Heikki Linnakangas)
9621 Centralize <application>flex</> and <application>bison</>
9622 <application>make</> rules (Peter Eisentraut)
9626 This is useful for <application>pgxs</> authors.
9632 Change many internal backend functions to return object <type>OID</>s
9633 rather than void (Dimitri Fontaine)
9637 This is useful for event triggers.
9643 Invent pre-commit/pre-prepare/pre-subcommit events for transaction
9644 callbacks (Tom Lane)
9648 Loadable modules that use transaction callbacks might need modification
9649 to handle these new event types.
9656 linkend="functions-info-catalog-table"><function>pg_identify_object()</></link>
9657 to produce a machine-readable description of a database object
9658 (Álvaro Herrera)
9664 Add post-<command>ALTER</>-object server hooks (KaiGai Kohei)
9670 Implement a generic binary heap and use it for Merge-Append
9671 operations (Abhijit Menon-Sen)
9677 Provide a tool to help detect timezone abbreviation changes when
9678 updating the <filename>src/timezone/data</> files
9685 Add <application>pkg-config</> support for <application>libpq</>
9686 and <application>ecpg</> libraries (Peter Eisentraut)
9692 Remove <filename>src/tool/backend</>, now that the content is on
9693 the <productname>PostgreSQL</> wiki (Bruce Momjian)
9699 Split out <link linkend="wal"><acronym>WAL</></link> reading as
9700 an independent facility (Heikki Linnakangas, Andres Freund)
9706 Use a 64-bit integer to represent <link
9707 linkend="wal"><acronym>WAL</></link> positions
9708 (<structname>XLogRecPtr</>) instead of two 32-bit integers
9709 (Heikki Linnakangas)
9713 Generally, tools that need to read the <acronym>WAL</> format
9714 will need to be adjusted.
9720 Allow <link linkend="plpython">PL/Python</link> to support
9721 platform-specific include directories (Peter Eisentraut)
9727 Allow <link linkend="plpython">PL/Python</link> on <productname>OS
9728 X</> to build against custom versions of <application>Python</>
9738 <title>Additional Modules</title>
9744 Add a <link linkend="postgres-fdw"><productname>Postgres</> foreign
9745 data wrapper</link> contrib module to allow access to
9746 other <productname>Postgres</> servers (Shigeru Hanada)
9750 This foreign data wrapper supports writes.
9756 Add <link linkend="pgxlogdump"><application>pg_xlogdump</></link>
9757 contrib program (Andres Freund)
9763 Add support for indexing of regular-expression searches in
9764 <link linkend="pgtrgm"><productname>pg_trgm</></link>
9765 (Alexander Korotkov)
9771 Improve <link linkend="pgtrgm"><productname>pg_trgm</></link>'s
9772 handling of multibyte characters (Tom Lane)
9776 On a platform that does not have the wcstombs() or towlower() library
9777 functions, this could result in an incompatible change in the contents
9778 of <productname>pg_trgm</> indexes for non-ASCII data. In such cases,
9779 <command>REINDEX</> those indexes to ensure correct search results.
9785 Add a <link linkend="pgstattuple">pgstattuple</link> function to report
9786 the size of the pending-insertions list of a <acronym>GIN</> index
9793 Make <link linkend="oid2name"><application>oid2name</></link>,
9794 <link linkend="pgbench"><application>pgbench</></link>, and
9795 <link linkend="vacuumlo"><application>vacuumlo</></link> set
9796 <varname>fallback_application_name</> (Amit Kapila)
9802 Improve output of <link
9803 linkend="pgtesttiming"><application>pg_test_timing</></link>
9810 Improve output of <link
9811 linkend="pgtestfsync"><application>pg_test_fsync</></link>
9818 Create a dedicated foreign data wrapper, with its own option validator
9819 function, for <link linkend="dblink">dblink</link> (Shigeru Hanada)
9823 When using this FDW to define the target of a <application>dblink</>
9824 connection, instead of using a hard-wired list of connection options,
9825 the underlying <application>libpq</> library is consulted to see what
9826 connection options it supports.
9833 <title><link linkend="pgupgrade"><application>pg_upgrade</></link></title>
9839 Allow <application>pg_upgrade</> to do dumps and restores in
9840 parallel (Bruce Momjian, Andrew Dunstan)
9844 This allows parallel schema dump/restore of databases, as well as
9845 parallel copy/link of data files per tablespace. Use the
9846 <option>--jobs</> option to specify the level of parallelism.
9852 Make <application>pg_upgrade</> create Unix-domain sockets in
9853 the current directory (Bruce Momjian, Tom Lane)
9857 This reduces the possibility that someone will accidentally connect
9864 Make <application>pg_upgrade</> <option>--check</> mode properly
9865 detect the location of non-default socket directories (Bruce
9872 Improve performance of <application>pg_upgrade</> for databases
9873 with many tables (Bruce Momjian)
9879 Improve <application>pg_upgrade</>'s logs by showing
9880 executed commands (Álvaro Herrera)
9886 Improve <application>pg_upgrade</>'s status display during
9887 copy/link (Bruce Momjian)
9896 <title><link linkend="pgbench"><application>pgbench</></link></title>
9902 Add <option>--foreign-keys</> option to <application>pgbench</>
9907 This adds foreign key constraints to the standard tables created by
9908 <application>pgbench</>, for use in foreign key performance testing.
9914 Allow <application>pgbench</> to aggregate performance statistics
9915 and produce output every <option>--aggregate-interval</>
9916 seconds (Tomas Vondra)
9922 Add <application>pgbench</> <option>--sampling-rate</> option
9923 to control the percentage of transactions logged (Tomas Vondra)
9929 Reduce and improve the status message output of
9930 <application>pgbench</>'s initialization mode (Robert Haas,
9937 Add <application>pgbench</> <option>-q</> mode to print one output
9938 line every five seconds (Tomas Vondra)
9944 Output <application>pgbench</> elapsed and estimated remaining
9945 time during initialization (Tomas Vondra)
9951 Allow <application>pgbench</> to use much larger scale factors,
9952 by changing relevant columns from <type>integer</> to <type>bigint</>
9953 when the requested scale factor exceeds 20000
9965 <title>Documentation</title>
9971 Allow <productname>EPUB</>-format documentation to be created
9978 Update <productname>FreeBSD</> kernel configuration documentation
9985 Improve <link linkend="tutorial-window"><literal>WINDOW</>
9986 function</link> documentation (Bruce Momjian, Florian Pflug)
9992 Add <link linkend="docguide-toolsets">instructions</link> for setting
9993 up the documentation tool chain on Mac <productname>OS X</>
10001 linkend="guc-commit-delay"><varname>commit_delay</></link>
10002 documentation (Peter Geoghegan)