commit : ca3f8299ef4e02efb821f082519ea4ca680e4fc1 author : Tom Lane <firstname.lastname@example.org> date : Mon, 28 Aug 2017 17:26:11 -0400 committer: Tom Lane <email@example.com> date : Mon, 28 Aug 2017 17:26:11 -0400
Doc: adjust release-note credit for parallel pg_restore fix.
commit : d25183c4e3dadd573935a2ed1a2cbb103fa162db author : Tom Lane <firstname.lastname@example.org> date : Mon, 28 Aug 2017 11:40:48 -0400 committer: Tom Lane <email@example.com> date : Mon, 28 Aug 2017 11:40:48 -0400
commit : 71ebf9b6bc217fc780b6104973e815d5ca3717d0 author : Peter Eisentraut <firstname.lastname@example.org> date : Mon, 28 Aug 2017 10:13:34 -0400 committer: Peter Eisentraut <email@example.com> date : Mon, 28 Aug 2017 10:13:34 -0400
Source-Git-URL: git://git.postgresql.org/git/pgtranslation/messages.git Source-Git-Hash: 2561773c3baa001b5f30ba5ff1b1d7304f1ba4fc
Release notes for 9.6.5, 9.5.9, 9.4.14, 9.3.19, 9.2.23.
commit : f30fc7aa9ac58b6a446f73467be3d313de204fa0 author : Tom Lane <firstname.lastname@example.org> date : Sun, 27 Aug 2017 17:35:04 -0400 committer: Tom Lane <email@example.com> date : Sun, 27 Aug 2017 17:35:04 -0400
Fix bug that can cause walsender not to terminating at shutdown.
commit : b51c8efc6aff292912d8e77235eae8eef7ec909c author : Andres Freund <firstname.lastname@example.org> date : Thu, 24 Aug 2017 15:21:32 -0700 committer: Andres Freund <email@example.com> date : Thu, 24 Aug 2017 15:21:32 -0700
When backpatching c6c333436 I (Andres Freund) mis-resolved a conflict in the 9.4 branch. Unfortunately that leads to walsenders waiting forever when shutting down with connected standbys, unless immediate mode is used, or the standbys are forced to disconnect by other means. Author: Marco Nenciarini Reported-By: Abhijit Gharami, Marco Nenciarini Discussion: http://firstname.lastname@example.org http://postgr.es/m/CAA5_DuD0O1XyM8OnOzhRepyPU-t8nZKLzs1pT2JpzP0NS+vVNA@mail.gmail.com Backpatch: 9.4 only
Fix outdated comment
commit : fe4c6582465719efc7534ae184fcc4b9dd6b1660 author : Peter Eisentraut <email@example.com> date : Wed, 23 Aug 2017 14:19:35 -0400 committer: Peter Eisentraut <firstname.lastname@example.org> date : Wed, 23 Aug 2017 14:19:35 -0400
Author: Thomas Munro <email@example.com>
Backpatch introduction of TupleDescAttr(tupdesc, i).
commit : 3d58994eccb77b7ff07398049cd2eb129bb5c943 author : Andres Freund <firstname.lastname@example.org> date : Tue, 22 Aug 2017 07:46:05 -0700 committer: Andres Freund <email@example.com> date : Tue, 22 Aug 2017 07:46:05 -0700
2cd70845240 / c6293249d change the way individual attributes in a TupleDesc are stored / accessed. To reduce the effort of making extensions compatible with postgresql 11, and to ease future backpatching, backpatch introduction of TupleDescAttr() to all releases. Do not backpatch change in storage, as that'd be a breaking change for existing and working extensions. Author: Andres Freund Discussion: https://firstname.lastname@example.org Backpatch: 9.2-
Fix possible core dump in parallel restore when using a TOC list.
commit : 59dde9fed40022b33b6d2568ec251aa7755a76db author : Tom Lane <email@example.com> date : Sat, 19 Aug 2017 13:39:38 -0400 committer: Tom Lane <firstname.lastname@example.org> date : Sat, 19 Aug 2017 13:39:38 -0400
Commit 3eb9a5e7c unintentionally introduced an ordering dependency into restore_toc_entries_prefork(). The existing coding of reduce_dependencies() contains a check to skip moving a TOC entry to the ready_list if it wasn't initially in the pending_list. This used to suffice to prevent reduce_dependencies() from trying to move anything into the ready_list during restore_toc_entries_prefork(), because the pending_list stayed empty throughout that phase; but it no longer does. The problem doesn't manifest unless the TOC has been reordered by SortTocFromFile, which is how I missed it in testing. To fix, just add a test for ready_list == NULL, converting the call with NULL from a poor man's sanity check into an explicit command not to touch TOC items' list membership. Clarify some of the comments around this; in particular, note the primary purpose of the check for pending_list membership, which is to ensure that we can't try to restore the same item twice, in case a TOC list forces it to be restored before its dependency count goes to zero. Per report from Fabrízio de Royes Mello. Back-patch to 9.3, like the previous commit. Discussion: https://postgr.es/m/CAFcNs+pjuv0JL_x4+=71TPUPjdLHOXA4YfT32myj_OrrZb4ohA@mail.gmail.com
Further tweaks to compiler flags for PL/Perl on Windows.
commit : 4f862351d20bb1c592aa76cfa692e4e8c51b4123 author : Tom Lane <email@example.com> date : Thu, 17 Aug 2017 13:15:15 -0400 committer: Tom Lane <firstname.lastname@example.org> date : Thu, 17 Aug 2017 13:15:15 -0400
It now emerges that we can only rely on Perl to tell us we must use -D_USE_32BIT_TIME_T if it's Perl 5.13.4 or later. For older versions, revert to our previous practice of assuming we need that symbol in all 32-bit Windows builds. This is not ideal, but inquiring into which compiler version Perl was built with seems far too fragile. In any case, we had not previously had complaints about these old Perl versions, so let's assume this is Good Enough. (It's still better than the situation ante commit 5a5c2feca, in that at least the effects are confined to PL/Perl rather than the whole PG build.) Back-patch to all supported versions, like 5a5c2feca and predecessors. Discussion: https://postgr.es/m/CANFyU97OVQ3+Mzfmt3MhuUm5NwPU=-FtbNH5Eb7nZL9ua8=rcA@mail.gmail.com
Changed ecpg parser to allow RETURNING clauses without attached C variables.
commit : bd502753af5d4cc7be58a8e3fea6bc55d1e7b3a5 author : Michael Meskes <email@example.com> date : Mon, 14 Aug 2017 11:29:34 +0200 committer: Michael Meskes <firstname.lastname@example.org> date : Mon, 14 Aug 2017 11:29:34 +0200
Initialize replication_slot_catalog_xmin in procarray
commit : 76447fe3244142724b4b651bf6824989c6a16379 author : Peter Eisentraut <email@example.com> date : Tue, 15 Aug 2017 21:05:21 -0400 committer: Peter Eisentraut <firstname.lastname@example.org> date : Tue, 15 Aug 2017 21:05:21 -0400
Although not confirmed and probably rare, if the newly allocated memory is not already zero, this could possibly have caused some problems. Also reorder the initializations slightly so they match the order of the struct definition. Author: Wong, Yi Wen <email@example.com> Reviewed-by: Masahiko Sawada <firstname.lastname@example.org>
Include foreign tables in information_schema.table_privileges
commit : 52427015ad8fcef1a5803db2c032847e82eca26e author : Peter Eisentraut <email@example.com> date : Tue, 15 Aug 2017 19:27:22 -0400 committer: Peter Eisentraut <firstname.lastname@example.org> date : Tue, 15 Aug 2017 19:27:22 -0400
This appears to have been an omission in the original commit 0d692a0dc9f. All related information_schema views already include foreign tables. Reported-by: Nicolas Thauvin <email@example.com>
Handle elog(FATAL) during ROLLBACK more robustly.
commit : daafb11ff539da49506aa363034efc0026a5ab66 author : Tom Lane <firstname.lastname@example.org> date : Mon, 14 Aug 2017 15:43:20 -0400 committer: Tom Lane <email@example.com> date : Mon, 14 Aug 2017 15:43:20 -0400
Stress testing by Andreas Seltenreich disclosed longstanding problems that occur if a FATAL exit (e.g. due to receipt of SIGTERM) occurs while we are trying to execute a ROLLBACK of an already-failed transaction. In such a case, xact.c is in TBLOCK_ABORT state, so that AbortOutOfAnyTransaction would skip AbortTransaction and go straight to CleanupTransaction. This led to an assert failure in an assert-enabled build (due to the ROLLBACK's portal still having a cleanup hook) or without assertions, to a FATAL exit complaining about "cannot drop active portal". The latter's not disastrous, perhaps, but it's messy enough to want to improve it. We don't really want to run all of AbortTransaction in this code path. The minimum required to clean up the open portal safely is to do AtAbort_Memory and AtAbort_Portals. It seems like a good idea to do AtAbort_Memory unconditionally, to be entirely sure that we are starting with a safe CurrentMemoryContext. That means that if the main loop in AbortOutOfAnyTransaction does nothing, we need an extra step at the bottom to restore CurrentMemoryContext = TopMemoryContext, which I chose to do by invoking AtCleanup_Memory. This'll result in calling AtCleanup_Memory twice in many of the paths through this function, but that seems harmless and reasonably inexpensive. The original motivation for the assertion in AtCleanup_Portals was that we wanted to be sure that any user-defined code executed as a consequence of the cleanup hook runs during AbortTransaction not CleanupTransaction. That still seems like a valid concern, and now that we've seen one case of the assertion firing --- which means that exactly that would have happened in a production build --- let's replace the Assert with a runtime check. If we see the cleanup hook still set, we'll emit a WARNING and just drop the hook unexecuted. This has been like this a long time, so back-patch to all supported branches. Discussion: https://firstname.lastname@example.org
Absorb -D_USE_32BIT_TIME_T switch from Perl, if relevant.
commit : 01de7ea85378798f2ce5da93fc5ebf5c81c2453f author : Tom Lane <email@example.com> date : Mon, 14 Aug 2017 11:48:59 -0400 committer: Tom Lane <firstname.lastname@example.org> date : Mon, 14 Aug 2017 11:48:59 -0400
Commit 3c163a7fc's original choice to ignore all #define symbols whose names begin with underscore turns out to be too simplistic. On Windows, some Perl installations are built with -D_USE_32BIT_TIME_T, and we must absorb that or we get the wrong result for sizeof(PerlInterpreter). This effectively re-reverts commit ef58b87df, which injected that symbol in a hacky way, making it apply to all of Postgres not just PL/Perl. More significantly, it did so on *all* 32-bit Windows builds, even when the Perl build to be used did not select this option; so that it fails to work properly with some newer Perl builds. By making this change, we would be introducing an ABI break in 32-bit Windows builds; but fortunately we have not used type time_t in any exported Postgres APIs in a long time. So it should be OK, both for PL/Perl itself and for third-party extensions, if an extension library is built with a different _USE_32BIT_TIME_T setting than the core code. Patch by me, based on research by Ashutosh Sharma and Robert Haas. Back-patch to all supported branches, as commit 3c163a7fc was. Discussion: https://postgr.es/m/CANFyU97OVQ3+Mzfmt3MhuUm5NwPU=-FtbNH5Eb7nZL9ua8=rcA@mail.gmail.com
commit : 5a3688dc88ec9ea52bb81711235f9de42d13677d author : Tom Lane <email@example.com> date : Sun, 13 Aug 2017 16:15:14 -0400 committer: Tom Lane <firstname.lastname@example.org> date : Sun, 13 Aug 2017 16:15:14 -0400
The sole useful effect of this function, to check that no catcache entries have positive refcounts at transaction end, has really been obsolete since we introduced ResourceOwners in PG 8.1. We reduced the checks to assertions years ago, so that the function was a complete no-op in production builds. There have been previous discussions about removing it entirely, but consensus up to now was that it had some small value as a cross-check for bugs in the ResourceOwner logic. However, it now emerges that it's possible to trigger these assertions if you hit an assert-enabled backend with SIGTERM during a call to SearchCatCacheList, because that function temporarily increases the refcounts of entries it's intending to add to a catcache list construct. In a normal ERROR scenario, the extra refcounts are cleaned up by SearchCatCacheList's PG_CATCH block; but in a FATAL exit we do a transaction abort and exit without ever executing PG_CATCH handlers. There's a case to be made that this is a generic hazard and we should consider restructuring elog(FATAL) handling so that pending PG_CATCH handlers do get run. That's pretty scary though: it could easily create more problems than it solves. Preliminary stress testing by Andreas Seltenreich suggests that there are not many live problems of this ilk, so we rejected that idea. There are more-localized ways to fix the problem; the most principled one would be to use PG_ENSURE_ERROR_CLEANUP instead of plain PG_TRY. But adding cycles to SearchCatCacheList isn't very appealing. We could also weaken the assertions in AtEOXact_CatCache in some more or less ad-hoc way, but that just makes its raison d'etre even less compelling. In the end, the most reasonable solution seems to be to just remove AtEOXact_CatCache altogether, on the grounds that it's not worth trying to fix it. It hasn't found any bugs for us in many years. Per report from Jeevan Chalke. Back-patch to all supported branches. Discussion: https://postgr.es/m/CAM2+6=VEE30YtRQCZX7_sCFsEpoUkFBV1gZazL70fqLn8rcvBA@mail.gmail.com
Fix handling of container types in find_composite_type_dependencies.
commit : 95a0a8d2ab1007672d6954b34c8fc53c19b04edf author : Tom Lane <email@example.com> date : Wed, 9 Aug 2017 17:03:09 -0400 committer: Tom Lane <firstname.lastname@example.org> date : Wed, 9 Aug 2017 17:03:09 -0400
find_composite_type_dependencies correctly found columns that are of the specified type, and columns that are of arrays of that type, but not columns that are domains or ranges over the given type, its array type, etc. The most general way to handle this seems to be to assume that any type that is directly dependent on the specified type can be treated as a container type, and processed recursively (allowing us to handle nested cases such as ranges over domains over arrays ...). Since a type's array type already has such a dependency, we can drop the existing special case for the array type. The very similar logic in get_rels_with_domain was likewise a few bricks shy of a load, as it supposed that a directly dependent type could *only* be a sub-domain. This is already wrong for ranges over domains, and it'll someday be wrong for arrays over domains. Add test cases illustrating the problems, and back-patch to all supported branches. Discussion: https://email@example.com
Reword some unclear comments
commit : e829db0b19bda06996a1c7104ca1251c8eacaa2c author : Alvaro Herrera <firstname.lastname@example.org> date : Tue, 8 Aug 2017 18:46:16 -0400 committer: Alvaro Herrera <email@example.com> date : Tue, 8 Aug 2017 18:46:16 -0400