{"push_id":2046387439,"size":22,"distinct_size":1,"ref":"refs/heads/commitfest/15/1199","head":"443705512d431c74c8a258c0cd52904abeb415a8","before":"51edec2ddd46682b448f63eb3abc1d5bda9b7e55","commits":[{"sha":"44b3230e821e7a0cc4e9438d1c27305d533edacc","author":{"name":"Peter Eisentraut","email":"2f47089682e4afbd5de3eea4edffc95dfc1eb9de@gmx.net"},"message":"Use lower-case SGML attribute values\n\nfor DocBook XML compatibility","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/44b3230e821e7a0cc4e9438d1c27305d533edacc"},{"sha":"fa5e119dc71ada8d023deadcb36dbfae328f8902","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Add missing clean step to src/test/modules/brin/Makefile.\n\nI noticed the tmp_check subdirectory wasn't getting cleaned up\nafter a check-world run.  Apparently pgxs.mk will only do this\nfor you if you've defined REGRESS.  The only other src/test/modules\nMakefile that does not set that is snapshot_too_old, and it\ndoes it like this.","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/fa5e119dc71ada8d023deadcb36dbfae328f8902"},{"sha":"fffd651e83ccbd6191a76be6ec7c6b1b27888fde","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Rewrite strnlen replacement implementation from 8a241792f96.\n\nThe previous placement of the fallback implementation in libpgcommon\nwas problematic, because libpqport functions need strnlen\nfunctionality.\n\nMove replacement into libpgport. Provide strnlen() under its posix\nname, instead of pg_strnlen(). Fix stupid configure bug, executing the\ntest only when compiled with threading support.\n\nAuthor: Andres Freund\nDiscussion: https://postgr.es/m/E1e1gR2-0005fB-SI@gemulon.postgresql.org","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/fffd651e83ccbd6191a76be6ec7c6b1b27888fde"},{"sha":"f4128ab466aac639387a5dade6647621c87bbb3f","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Regenerate configure script.\n\nNot sure how fffd651e83ccbd6191a76be6ec7c6b1b27888fde ended up\nprobing for \"strnlenfrak\" rather than \"strnlen\".\nMy autoconf doesn't do that ...","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/f4128ab466aac639387a5dade6647621c87bbb3f"},{"sha":"e9e0f78bdeaee6e1e24544fd564cf0907f6a2134","author":{"name":"Peter Eisentraut","email":"2f47089682e4afbd5de3eea4edffc95dfc1eb9de@gmx.net"},"message":"Fix whitespace","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/e9e0f78bdeaee6e1e24544fd564cf0907f6a2134"},{"sha":"46912d9b1504cfaede1b22811039028a75f76ab8","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Add port/strnlen support to libpq and ecpg Makefiles.\n\nIn the wake of fffd651e8, any makefile that pulls in snprintf.c\nfrom src/port/ needs to be prepared to pull in strnlen.c as well.\nPer buildfarm.","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/46912d9b1504cfaede1b22811039028a75f76ab8"},{"sha":"118e99c3d71efbea85341697a447d84bbfb54f18","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Fix low-probability loss of NOTIFY messages due to XID wraparound.\n\nUp to now async.c has used TransactionIdIsInProgress() to detect whether\na notify message's source transaction is still running.  However, that\nfunction has a quick-exit path that reports that XIDs before RecentXmin\nare no longer running.  If a listening backend is doing nothing but\nlistening, and not running any queries, there is nothing that will advance\nits value of RecentXmin.  Once 2 billion transactions elapse, the\nRecentXmin check causes active transactions to be reported as not running.\nIf they aren't committed yet according to CLOG, async.c decides they\naborted and discards their messages.  The timing for that is a bit tight\nbut it can happen when multiple backends are sending notifies concurrently.\nThe net symptom therefore is that a sufficiently-long-surviving\nlisten-only backend starts to miss some fraction of NOTIFY traffic,\nbut only under heavy load.\n\nThe only function that updates RecentXmin is GetSnapshotData().\nA brute-force fix would therefore be to take a snapshot before\nprocessing incoming notify messages.  But that would add cycles,\nas well as contention for the ProcArrayLock.  We can be smarter:\nhaving taken the snapshot, let's use that to check for running\nXIDs, and not call TransactionIdIsInProgress() at all.  In this\nway we reduce the number of ProcArrayLock acquisitions from one\nper message to one per notify interrupt; that's the same under\nlight load but should be a benefit under heavy load.  Light testing\nsays that this change is a wash performance-wise for normal loads.\n\nI looked around for other callers of TransactionIdIsInProgress()\nthat might be at similar risk, and didn't find any; all of them\nare inside transactions that presumably have already taken a\nsnapshot.\n\nProblem report and diagnosis by Marko Tiikkaja, patch by me.\nBack-patch to all supported branches, since it's been like this\nsince 9.0.\n\nDiscussion: https://postgr.es/m/20170926182935.14128.65278@wrigleys.postgresql.org","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/118e99c3d71efbea85341697a447d84bbfb54f18"},{"sha":"20d210bf5bb0d5ae37c727d364cfd810c367704a","author":{"name":"Robert Haas","email":"93159bdbbeed5b47be970d58edfbdf1c3ce55e4c@postgresql.org"},"message":"Fix mistakes in comments.\n\nMasahiko Sawada\n\nDiscussion: http://postgr.es/m/CAD21AoBsfYsMHD6_SL9iN3n_Foaa+oPbL5jG55DxU1ChaujqwQ@mail.gmail.com","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/20d210bf5bb0d5ae37c727d364cfd810c367704a"},{"sha":"28605968322b70a7efe1cc89595d1cfc557d80b9","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Doc: fix missing explanation of default object privileges.\n\nThe GRANT reference page, which lists the default privileges for new\nobjects, failed to mention that USAGE is granted by default for data\ntypes and domains.  As a lesser sin, it also did not specify anything\nabout the initial privileges for sequences, FDWs, foreign servers,\nor large objects.  Fix that, and add a comment to acldefault() in the\nprobably vain hope of getting people to maintain this list in future.\n\nNoted by Laurenz Albe, though I editorialized on the wording a bit.\nBack-patch to all supported branches, since they all have this behavior.\n\nDiscussion: https://postgr.es/m/1507620895.4152.1.camel@cybertec.at","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/28605968322b70a7efe1cc89595d1cfc557d80b9"},{"sha":"f676616651c83b14e1d879fbfabdd3ab2dc70bbe","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Prevent idle in transaction session timeout from sometimes being ignored.\n\nThe previous coding in ProcessInterrupts() could lead to\nidle_in_transaction_session_timeout being ignored, when\nstatement_timeout occurred earlier.\n\nThe problem was that ProcessInterrupts() would return before\nprocessing the transaction timeout if QueryCancelPending was set while\nQueryCancelHoldoffCount != 0 - which is the case when reading new\ncommands from the client. Ergo when the idle transaction timeout would\nhit.\n\nFix that by removing the early return. Alternatively the transaction\ntimeout code could have been moved up, but that early return seems\nlike an issue that could hit other cases too.\n\nAuthor: Lukas Fittl\nBug: #14821\nDiscussion:\n    https://www.postgresql.org/message-id/20170921010956.17345.61461%40wrigleys.postgresql.org\n    https://www.postgresql.org/message-id/CAP53PkxQnv3OWJpyNPGJYT62uY=n1=2CF_Lpc6gVOFnc0-gazw@mail.gmail.com\nBackpatch: 9.6-, where idle_in_transaction_session_timeout was introduced.","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/f676616651c83b14e1d879fbfabdd3ab2dc70bbe"},{"sha":"5fa6b0d102eb8ccd15c4963ee9841baec50df45e","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Remove unnecessary PG_TRY overhead for CurrentResourceOwner changes.\n\nresowner/README contained advice to use a PG_TRY block to restore the\nold CurrentResourceOwner value anywhere that that variable is transiently\nchanged.  That advice was only inconsistently followed, however, and\non reflection it seems like unnecessary overhead.  We don't bother\nwith such a convention for transient CurrentMemoryContext changes,\non the grounds that any (sub)transaction abort will start out by\nresetting CurrentMemoryContext to what it wants.  But the same is\ntrue of CurrentResourceOwner, so there seems no need to treat it\ndifferently.\n\nHence, remove PG_TRY blocks that exist only to restore CurrentResourceOwner\nbefore re-throwing the error.  There are a couple of places that restore\nit along with some other actions, and I left those alone; the restore is\nprobably unnecessary but no noticeable gain will result from removing it.\n\nDiscussion: https://postgr.es/m/5236.1507583529@sss.pgh.pa.us","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/5fa6b0d102eb8ccd15c4963ee9841baec50df45e"},{"sha":"0b974dba2d6b5581ce422ed883209de46f313fb6","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Add configure infrastructure to detect support for C99's restrict.\n\nWill be used in later commits improving performance for a few key\nroutines where information about aliasing allows for significantly\nbetter code generation.\n\nThis allows to use the C99 'restrict' keyword without breaking C89, or\nfor that matter C++, compilers. If not supported it's defined to be\nempty.\n\nAuthor: Andres Freund\nDiscussion: https://postgr.es/m/20170914063418.sckdzgjfrsbekae4@alap3.anarazel.de","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/0b974dba2d6b5581ce422ed883209de46f313fb6"},{"sha":"70c2d1be2b1e1efa8ef38a92b443fa290a9558dd","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Allow to avoid NUL-byte management for stringinfos and use in format.c.\n\nIn a lot of the places having appendBinaryStringInfo() maintain a\ntrailing NUL byte wasn't actually meaningful, e.g. when appending an\ninteger which can contain 0 in one of its bytes.\n\nRemoving this yields some small speedup, but more importantly will be\nmore consistent when providing faster variants of pq_sendint etc.\n\nAuthor: Andres Freund\nDiscussion: https://postgr.es/m/20170914063418.sckdzgjfrsbekae4@alap3.anarazel.de","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/70c2d1be2b1e1efa8ef38a92b443fa290a9558dd"},{"sha":"1de09ad8eb1fa673ee7899d6dfbb2b49ba204818","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Add more efficient functions to pqformat API.\n\nThere's three prongs to achieve greater efficiency here:\n\n1) Allow reusing a stringbuffer across pq_beginmessage/endmessage,\n   with the new pq_beginmessage_reuse/endmessage_reuse. This can be\n   beneficial both because it avoids allocating the initial buffer,\n   and because it's more likely to already have an correctly sized\n   buffer.\n\n2) Replacing pq_sendint() with pq_sendint$width() inline\n   functions. Previously unnecessary and unpredictable branches in\n   pq_sendint() were needed. Additionally the replacement functions\n   are implemented more efficiently.  pq_sendint is now deprecated, a\n   separate commit will convert all in-tree callers.\n\n3) Add pq_writeint$width(), pq_writestring(). These rely on sufficient\n   space in the StringInfo's buffer, avoiding individual space checks\n   & potential individual resizing.  To allow this to be used for\n   strings, expose mbutil.c's MAX_CONVERSION_GROWTH.\n\nFollowup commits will make use of these facilities.\n\nAuthor: Andres Freund\nDiscussion: https://postgr.es/m/20170914063418.sckdzgjfrsbekae4@alap3.anarazel.de","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/1de09ad8eb1fa673ee7899d6dfbb2b49ba204818"},{"sha":"f2dec34e19d3969ddd616e671fe9a7b968bec812","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Use one stringbuffer for all rows printed in printtup.c.\n\nThis avoids newly allocating, and then possibly growing, the\nstringbuffer for every row. For wide rows this can substantially\nreduce memory allocator overhead, at the price of not immediately\nreducing memory usage after outputting an especially wide row.\n\nAuthor: Andres Freund\nDiscussion: https://postgr.es/m/20170914063418.sckdzgjfrsbekae4@alap3.anarazel.de","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/f2dec34e19d3969ddd616e671fe9a7b968bec812"},{"sha":"cff440d368690f94fbda1a475277e90ea2263843","author":{"name":"Robert Haas","email":"93159bdbbeed5b47be970d58edfbdf1c3ce55e4c@postgresql.org"},"message":"pg_stat_statements: Widen query IDs from 32 bits to 64 bits.\n\nThis takes advantage of the infrastructure introduced by commit\n81c5e46c490e2426db243eada186995da5bb0ba7 to greatly reduce the\nlikelihood that two different queries will end up with the same query\nID.  It's still possible, of course, but whereas before it the chances\nof a collision reached 25% around 50,000 queries, it will now take\nmore than 3 billion queries.\n\nBackward incompatibility: Because the type exposed at the SQL level is\nint8, users may now see negative query IDs in the pg_stat_statements\nview (and also, query IDs more than 4 billion, which was the old\nlimit).\n\nPatch by me, reviewed by Michael Paquier and Peter Geoghegan.\n\nDiscussion: http://postgr.es/m/CA+TgmobG_Kp4cBKFmsznUAaM1GWW6hhRNiZC0KjRMOOeYnz5Yw@mail.gmail.com","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/cff440d368690f94fbda1a475277e90ea2263843"},{"sha":"4c119fbcd49ba882791c7b99a1e934b985468e9f","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Improve performance of SendRowDescriptionMessage.\n\nThere's three categories of changes leading to better performance:\n- Splitting the per-attribute part of SendRowDescriptionMessage into a\n  v2 and a v3 version allows avoiding branches for every attribute.\n- Preallocating the size of the buffer to be big enough for all\n  attributes and then using pq_write* avoids unnecessary buffer\n  size checks & resizing.\n- Reusing a persistently allocated StringInfo for all\n  SendRowDescriptionMessage() invocations avoids repeated allocations\n  & reallocations.\n\nAuthor: Andres Freund\nDiscussion: https://postgr.es/m/20170914063418.sckdzgjfrsbekae4@alap3.anarazel.de","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/4c119fbcd49ba882791c7b99a1e934b985468e9f"},{"sha":"060b069984a69ff0255ce318f10681c553613bef","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Work around overly strict restrict checks by MSVC.\n\nApparently MSVC requires a * before a restrict in a variable\ndeclaration, even if the adorned type already is a pointer, just via\ntypedef.\n\nAs reported by buildfarm animal woodlouse.\n\nAuthor: Andres Freund\nDiscussion: https://postgr.es/m/20171012001320.4putagiruuehtvb6@alap3.anarazel.de","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/060b069984a69ff0255ce318f10681c553613bef"},{"sha":"36b4b91ba07843406d5a30106facb59d8275c6de","author":{"name":"Andres Freund","email":"c6cbfe878b4ee67646e7630734db67f536518d54@anarazel.de"},"message":"Temporary attempt at a workaround for further MSVC restrict build failures.\n\nIt appears some versions of msvc use __declspec(restrict) in stdlib.h\nand subsidiary headers. Including those after defining 'restrict' to\n'__restrict' doesn't work.  Try to get the buildfarm green to see\nwhether there's further problems, by including stdlib.h just before\nsaid define.","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/36b4b91ba07843406d5a30106facb59d8275c6de"},{"sha":"52328727bea4d9f95af9622e4624b9d1492df88e","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Prevent sharing transition states between ordered-set aggregates.\n\nThis ought to work, but the built-in OSAs are not capable of coping,\nbecause their final-functions destructively modify their transition\nstate (specifically, the contained tuplesort object).  That was fine\nwhen those functions were written, but commit 804163bc2 moved the\ngoalposts without telling orderedsetaggs.c.\n\nWe should fix the built-in OSAs to support this, but it will take\na little work, especially if we don't want to sacrifice performance\nin the normal non-shared-state case.  Given that it took a year after\n9.6 release for anyone to notice this bug, we should not prioritize\nsharable-state over nonsharable-state performance.  And a proper fix\nis likely to be more complicated than we'd want to back-patch, too.\n\nTherefore, let's just put in this stop-gap patch to prevent nodeAgg.c\nfrom choosing to use shared state for OSAs.  We can revert it in HEAD\nwhen we get a better fix.\n\nReport from Lukas Eder, diagnosis by me, patch by David Rowley.\nBack-patch to 9.6 where the problem was introduced.\n\nDiscussion: https://postgr.es/m/CAB4ELO5RZhOamuT9Xsf72ozbenDLLXZKSk07FiSVsuJNZB861A@mail.gmail.com","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/52328727bea4d9f95af9622e4624b9d1492df88e"}]}
{"actor":{"display_login":"postgresql-cfbot"}}