8000 Commits · postgres/postgres · GitHub
[go: up one dir, main page]

Skip to content
{"payload":{"commitGroups":[{"title":"Jan 22, 2015","commits":[{"oid":"59367fdf97cc1875b053ebf87cd1e071dc7f3640","url":"/postgres/postgres/commit/59367fdf97cc1875b053ebf87cd1e071dc7f3640","authoredDate":"2015-01-22T12:36:34.000-05:00","committedDate":"2015-01-22T12:36:55.000-05:00","shortMessage":"adjust ACL owners for REASSIGN and ALTER OWNER TO","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"adjust ACL owners for REASSIGN and ALTER OWNER TO\n\nWhen REASSIGN and ALTER OWNER TO are used, both the object owner and ACL\nlist should be changed from the old owner to the new owner. This patch\nfixes types, foreign data wrappers, and foreign servers to change their\nACL list properly; they already changed owners properly.\n\nBACKWARD INCOMPATIBILITY?\n\nReport by Alexey Bashtanov\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/59367fdf97cc1875b053ebf87cd1e071dc7f3640\"\u003eadjust ACL owners for REASSIGN and ALTER OWNER TO\u003c/a\u003e","bodyMessageHtml":"When REASSIGN and ALTER OWNER TO are used, both the object owner and ACL\nlist should be changed from the old owner to the new owner. This patch\nfixes types, foreign data wrappers, and foreign servers to change their\nACL list properly; they already changed owners properly.\n\nBACKWARD INCOMPATIBILITY?\n\nReport by Alexey Bashtanov","authors":[{"login":"bmomjian","displayName":"Bruce Momjian","avatarUrl":"https://avatars.githubusercontent.com/u/412153?v=4","path":"/bmomjian","isGitHub":false}],"committerAttribution":false,"committer":{"login":"bmomjian","displayName":"Bruce Momjian","avatarUrl":"https://avatars.githubusercontent.com/u/412153?v=4","path":"/bmomjian","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"b181a91981203f6ec9403115a2917bd3f9473707","url":"/postgres/postgres/commit/b181a91981203f6ec9403115a2917bd3f9473707","authoredDate":"2015-01-22T11:58:58.000-05:00","committedDate":"2015-01-22T11:58:58.000-05:00","shortMessage":"More fixes for abbreviated keys infrastructure.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"More fixes for abbreviated keys infrastructure.\n\nFirst, when LC_COLLATE = C, bttext_abbrev_convert should use memcpy()\nrather than strxfrm() to construct the abbreviated key, because the\nauthoritative comparator uses memcpy(). If we do anything else here,\nwe might get inconsistent answers, and the buildfarm says this risk\nis not theoretical. It should be faster this way, too.\n\nSecond, while I\u0026#39;m looking at bttext_abbrev_convert, convert a needless\nuse of goto into the loop it\u0026#39;s trying to implement into an actual\nloop.\n\nBoth of the above problems date to the original commit of abbreviated\nkeys, commit 4ea51cdfe85ceef8afabceb03c446574daa0ac23.\n\nThird, fix a bogus assignment to tss-\u0026gt;locale before tss is set up.\nThat\u0026#39;s a new goof in commit b529b65d1bf8537ca7fa024760a9782d7c8b66e5.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/b181a91981203f6ec9403115a2917bd3f9473707\"\u003eMore fixes for abbreviated keys infrastructure.\u003c/a\u003e","bodyMessageHtml":"First, when LC_COLLATE = C, bttext_abbrev_convert should use memcpy()\nrather than strxfrm() to construct the abbreviated key, because the\nauthoritative comparator uses memcpy(). If we do anything else here,\nwe might get inconsistent answers, and the buildfarm says this risk\nis not theoretical. It should be faster this way, too.\n\nSecond, while I'm looking at bttext_abbrev_convert, convert a needless\nuse of goto into the loop it's trying to implement into an actual\nloop.\n\nBoth of the above problems date to the original commit of abbreviated\nkeys, commit \u003ca class=\"commit-link\" data-hovercard-type=\"commit\" data-hovercard-url=\"https://github.com/postgres/postgres/commit/4ea51cdfe85ceef8afabceb03c446574daa0ac23/hovercard\" href=\"https://github.com/postgres/postgres/commit/4ea51cdfe85ceef8afabceb03c446574daa0ac23\"\u003e\u003ctt\u003e4ea51cd\u003c/tt\u003e\u003c/a\u003e.\n\nThird, fix a bogus assignment to tss-\u0026gt;locale before tss is set up.\nThat's a new goof in commit \u003ca class=\"commit-link\" data-hovercard-type=\"commit\" data-hovercard-url=\"https://github.com/postgres/postgres/commit/b529b65d1bf8537ca7fa024760a9782d7c8b66e5/hovercard\" href=\"https://github.com/postgres/postgres/commit/b529b65d1bf8537ca7fa024760a9782d7c8b66e5\"\u003e\u003ctt\u003eb529b65\u003c/tt\u003e\u003c/a\u003e.","authors":[{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false}],"committerAttribution":false,"committer":{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"b529b65d1bf8537ca7fa024760a9782d7c8b66e5","url":"/postgres/postgres/commit/b529b65d1bf8537ca7fa024760a9782d7c8b66e5","authoredDate":"2015-01-22T10:46:42.000-05:00","committedDate":"2015-01-22T10:54:16.000-05:00","shortMessage":"Heavily refactor btsortsupport_worker.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Heavily refactor btsortsupport_worker.\n\nPrior to commit 4ea51cdfe85ceef8afabceb03c446574daa0ac23, this function\nonly had one job, which was to decide whether we could avoid trampolining\nthrough the fmgr layer when performing sort comparisons. As of that\ncommit, it has a second job, which is to decide whether we can use\nabbreviated keys. Unfortunately, those two tasks are somewhat intertwined\nin the existing coding, which is likely why neither Peter Geoghegan nor\nI noticed prior to commit that this calls pg_newlocale_from_collation() in\ncases where it didn\u0026#39;t previously. The buildfarm noticed, though.\n\nTo fix, rewrite the logic so that the decision as to which comparator to\nuse is more cleanly separated from the decision about abbreviation.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/b529b65d1bf8537ca7fa024760a9782d7c8b66e5\"\u003eHeavily refactor btsortsupport_worker.\u003c/a\u003e","bodyMessageHtml":"Prior to commit \u003ca class=\"commit-link\" data-hovercard-type=\"commit\" data-hovercard-url=\"https://github.com/postgres/postgres/commit/4ea51cdfe85ceef8afabceb03c446574daa0ac23/hovercard\" href=\"https://github.com/postgres/postgres/commit/4ea51cdfe85ceef8afabceb03c446574daa0ac23\"\u003e\u003ctt\u003e4ea51cd\u003c/tt\u003e\u003c/a\u003e, this function\nonly had one job, which was to decide whether we could avoid trampolining\nthrough the fmgr layer when performing sort comparisons. As of that\ncommit, it has a second job, which is to decide whether we can use\nabbreviated keys. Unfortunately, those two tasks are somewhat intertwined\nin the existing coding, which is likely why neither Peter Geoghegan nor\nI noticed prior to commit that this calls pg_newlocale_from_collation() in\ncases where it didn't previously. The buildfarm noticed, though.\n\nTo fix, rewrite the logic so that the decision as to which comparator to\nuse is more cleanly separated from the decision about abbreviation.","authors":[{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false}],"committerAttribution":false,"committer":{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"813ffc0ef9f3c19dc01de19b1a718f2dda495f4f","url":"/postgres/postgres/commit/813ffc0ef9f3c19dc01de19b1a718f2dda495f4f","authoredDate":"2015-01-22T12:26:51.000-03:00","committedDate":"2015-01-22T12:26:51.000-03:00","shortMessage":"reinit.h: Fix typo in identification comment","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"reinit.h: Fix typo in identification comment\n\nAuthor: Sawada Masahiko\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/813ffc0ef9f3c19dc01de19b1a718f2dda495f4f\"\u003ereinit.h: Fix typo in identification comment\u003c/a\u003e","bodyMessageHtml":"Author: Sawada Masahiko","authors":[{"login":"alvherre","displayName":"Alvaro Herrera","avatarUrl":"https://avatars.githubusercontent.com/u/340005?v=4","path":"/alvherre","isGitHub":false}],"committerAttribution":false,"committer":{"login":"alvherre","displayName":"Alvaro Herrera","avatarUrl":"https://avatars.githubusercontent.com/u/340005?v=4","path":"/alvherre","isGitHub":false},"pusher":null,"pushedDate":null}]},{"title":"Jan 21, 2015","commits":[{"oid":"1be4eb1b2d436d1375899c74e4c74486890d8777","url":"/postgres/postgres/commit/1be4eb1b2d436d1375899c74e4c74486890d8777","authoredDate":"2015-01-20T20:32:21.000-05:00","committedDate":"2015-01-20T20:32:21.000-05:00","shortMessage":"Disable abbreviated keys on Windows.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Disable abbreviated keys on Windows.\n\nMost of the Windows buildfarm members (bowerbird, hamerkop, currawong,\njacana, brolga) are unhappy with yesterday\u0026#39;s abbreviated keys patch,\nalthough there are some (narwhal, frogmouth) that seem OK with it.\nSince there\u0026#39;s no obvious pattern to explain why some are working and\nothers are failing, just disable this across-the-board on Windows for\nnow. This is a bit unfortunate since the optimization will be a big\nwin in some cases, but we can\u0026#39;t leave the buildfarm broken.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/1be4eb1b2d436d1375899c74e4c74486890d8777\"\u003eDisable abbreviated keys on Windows.\u003c/a\u003e","bodyMessageHtml":"Most of the Windows buildfarm members (bowerbird, hamerkop, currawong,\njacana, brolga) are unhappy with yesterday's abbreviated keys patch,\nalthough there are some (narwhal, frogmouth) that seem OK with it.\nSince there's no obvious pattern to explain why some are working and\nothers are failing, just disable this across-the-board on Windows for\nnow. This is a bit unfortunate since the optimization will be a big\nwin in some cases, but we can't leave the buildfarm broken.","authors":[{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false}],"committerAttribution":false,"committer":{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false},"pusher":null,"pushedDate":null}]},{"title":"Jan 20, 2015","commits":[{"oid":"f259e71dbe98f653182f0c710143487a0188fbc5","url":"/postgres/postgres/commit/f259e71dbe98f653182f0c710143487a0188fbc5","authoredDate":"2015-01-20T13:02:35.000-05:00","committedDate":"2015-01-20T13:02:58.000-05:00","shortMessage":"tools/ccsym: update for modern versions of gcc","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"tools/ccsym: update for modern versions of gcc\n\nThis dumps the predefined preprocessor macros\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/f259e71dbe98f653182f0c710143487a0188fbc5\"\u003etools/ccsym: update for modern versions of gcc\u003c/a\u003e","bodyMessageHtml":"This dumps the predefined preprocessor macros","authors":[{"login":"bmomjian","displayName":"Bruce Momjian","avatarUrl":"https://avatars.githubusercontent.com/u/412153?v=4","path":"/bmomjian","isGitHub":false}],"committerAttribution":false,"committer":{"login":"bmomjian","displayName":"Bruce Momjian","avatarUrl":"https://avatars.githubusercontent.com/u/412153?v=4","path":"/bmomjian","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"f32a1fa462c88676105445f26885d7a0656b6806","url":"/postgres/postgres/commit/f32a1fa462c88676105445f26885d7a0656b6806","authoredDate":"2015-01-20T10:52:01.000-05:00","committedDate":"2015-01-20T10:52:01.000-05:00","shortMessage":"Add strxfrm_l to list of functions where Windows adds an underscore.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Add strxfrm_l to list of functions where Windows adds an underscore.\n\nPer buildfarm failure on bowerbird after last night\u0026#39;s commit\n4ea51cdfe85ceef8afabceb03c446574daa0ac23.\n\nPeter Geoghegan\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/f32a1fa462c88676105445f26885d7a0656b6806\"\u003eAdd strxfrm_l to list of functions where Windows adds an underscore.\u003c/a\u003e","bodyMessageHtml":"Per buildfarm failure on bowerbird after last night's commit\n\u003ca class=\"commit-link\" data-hovercard-type=\"commit\" data-hovercard-url=\"https://github.com/postgres/postgres/commit/4ea51cdfe85ceef8afabceb03c446574daa0ac23/hovercard\" href=\"https://github.com/postgres/postgres/commit/4ea51cdfe85ceef8afabceb03c446574daa0ac23\"\u003e\u003ctt\u003e4ea51cd\u003c/tt\u003e\u003c/a\u003e.\n\nPeter Geoghegan","authors":[{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false}],"committerAttribution":false,"committer":{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"aa719391d5537d30068109e1f96991d0e2c7dfc5","url":"/postgres/postgres/commit/aa719391d5537d30068109e1f96991d0e2c7dfc5","authoredDate":"2015-01-19T23:44:19.000-05:00","committedDate":"2015-01-19T23:44:19.000-05:00","shortMessage":"In pg_regress, remove the temporary installation upon successful exit.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"In pg_regress, remove the temporary installation upon successful exit.\n\nThis results in a very substantial reduction in disk space usage during\n\u0026quot;make check-world\u0026quot;, since that sequence involves creation of numerous\ntemporary installations. It should also help a bit in the buildfarm, even\nthough the buildfarm script doesn\u0026#39;t create as many temp installations,\nbecause the current script misses deleting some of them; and anyway it\nseems better to do this once in one place rather than expecting that\nscript to get it right every time.\n\nIn 9.4 and HEAD, also undo the unwise choice in commit b1aebbb6a86e96d7\nto report strerror(errno) after a rmtree() failure. rmtree has already\nreported that, possibly for multiple failures with distinct errnos; and\nwhat\u0026#39;s more, by the time it returns there is no good reason to assume\nthat errno still reflects the last reportable error. So reporting errno\nhere is at best redundant and at worst badly misleading.\n\nBack-patch to all supported branches, so that future revisions of the\nbuildfarm script can rely on this behavior.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/aa719391d5537d30068109e1f96991d0e2c7dfc5\"\u003eIn pg_regress, remove the temporary installation upon successful exit.\u003c/a\u003e","bodyMessageHtml":"This results in a very substantial reduction in disk space usage during\n\"make check-world\", since that sequence involves creation of numerous\ntemporary installations. It should also help a bit in the buildfarm, even\nthough the buildfarm script doesn't create as many temp installations,\nbecause the current script misses deleting some of them; and anyway it\nseems better to do this once in one place rather than expecting that\nscript to get it right every time.\n\nIn 9.4 and HEAD, also undo the unwise choice in commit \u003ca class=\"commit-link\" data-hovercard-type=\"commit\" data-hovercard-url=\"https://github.com/postgres/postgres/commit/b1aebbb6a86e96d7b8f3035ac730dfc24652496c/hovercard\" href=\"https://github.com/postgres/postgres/commit/b1aebbb6a86e96d7b8f3035ac730dfc24652496c\"\u003e\u003ctt\u003eb1aebbb\u003c/tt\u003e\u003c/a\u003e\nto report strerror(errno) after a rmtree() failure. rmtree has already\nreported that, possibly for multiple failures with distinct errnos; and\nwhat's more, by the time it returns there is no good reason to assume\nthat errno still reflects the last reportable error. So reporting errno\nhere is at best redundant and at worst badly misleading.\n\nBack-patch to all supported branches, so that future revisions of the\nbuildfarm script can rely on this behavior.","authors":[{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false}],"committerAttribution":false,"committer":{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"75b48e1fff8a4dedd3ddd7b76f6360b5cc9bb741","url":"/postgres/postgres/commit/75b48e1fff8a4dedd3ddd7b76f6360b5cc9bb741","authoredDate":"2015-01-19T23:01:33.000-05:00","committedDate":"2015-01-19T23:01:33.000-05:00","shortMessage":"Adjust \"pgstat wait timeout\" message to be a translatable LOG message.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Adjust \u0026quot;pgstat wait timeout\u0026quot; message to be a translatable LOG message.\n\nPer discussion, change the log level of this message to be LOG not WARNING.\nThe main point of this change is to avoid causing buildfarm run failures\nwhen the stats collector is exceptionally slow to respond, which it not\ninfrequently is on some of the smaller/slower buildfarm members.\n\nThis change does lose notice to an interactive user when his stats query\nis looking at out-of-date stats, but the majority opinion (not necessarily\nthat of yours truly) is that WARNING messages would probably not get\nnoticed anyway on heavily loaded production systems. A LOG message at\nleast ensures that the problem is recorded somewhere where bulk auditing\nfor the issue is possible.\n\nAlso, instead of an untranslated \u0026quot;pgstat wait timeout\u0026quot; message, provide\na translatable and hopefully more understandable message \u0026quot;using stale\nstatistics instead of current ones because stats collector is not\nresponding\u0026quot;. The original text was written hastily under the assumption\nthat it would never really happen in practice, which we now know to be\nunduly optimistic.\n\nBack-patch to all active branches, since we\u0026#39;ve seen the buildfarm issue\nin all branches.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/75b48e1fff8a4dedd3ddd7b76f6360b5cc9bb741\"\u003eAdjust \"pgstat wait timeout\" message to be a translatable LOG message.\u003c/a\u003e","bodyMessageHtml":"Per discussion, change the log level of this message to be LOG not WARNING.\nThe main point of this change is to avoid causing buildfarm run failures\nwhen the stats collector is exceptionally slow to respond, which it not\ninfrequently is on some of the smaller/slower buildfarm members.\n\nThis change does lose notice to an interactive user when his stats query\nis looking at out-of-date stats, but the majority opinion (not necessarily\nthat of yours truly) is that WARNING messages would probably not get\nnoticed anyway on heavily loaded production systems. A LOG message at\nleast ensures that the problem is recorded somewhere where bulk auditing\nfor the issue is possible.\n\nAlso, instead of an untranslated \"pgstat wait timeout\" message, provide\na translatable and hopefully more understandable message \"using stale\nstatistics instead of current ones because stats collector is not\nresponding\". The original text was written hastily under the assumption\nthat it would never really happen in practice, which we now know to be\nunduly optimistic.\n\nBack-patch to all active branches, since we've seen the buildfarm issue\nin all branches.","authors":[{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false}],"committerAttribution":false,"committer":{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false},"pusher":null,"pushedDate":null}]},{"title":"Jan 19, 2015","commits":[{"oid":"2d115e47c861878669ba0814b3d97a4e4c347e8b","url":"/postgres/postgres/commit/2d115e47c861878669ba0814b3d97a4e4c347e8b","authoredDate":"2015-01-19T18:28:11.000+01:00","committedDate":"2015-01-19T23:59:41.000+01:00","shortMessage":"Fix various shortcomings of the new PrivateRefCount infrastructure.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Fix various shortcomings of the new PrivateRefCount infrastructure.\n\nAs noted by Tom Lane the improvements in 4b4b680c3d6 had the problem\nthat in some situations we searched, entered and modified entries in\nthe private refcount hash while holding a spinlock. I had tried to\nkeep the logic entirely local to PinBuffer_Locked(), but that\u0026#39;s not\nreally possible given it\u0026#39;s called with a spinlock held...\n\nBesides being disadvantageous from a performance point of view, this\nalso has problems with error handling safety. If we failed inserting\nan entry into the hashtable due to an out of memory error, we\u0026#39;d error\nout with a held spinlock. Not good.\n\nChange the way private refcounts are manipulated: Before a buffer can\nbe tracked an entry has to be reserved using\nReservePrivateRefCountEntry(); then, if a entry is not found using\nGetPrivateRefCountEntry(), it can be entered with\nNewPrivateRefCountEntry().\n\nAlso take advantage of the fact that PinBuffer_Locked() currently is\nnever called for buffers that already have been pinned by the current\nbackend and don\u0026#39;t search the private refcount entries for preexisting\nlocal pins. That results in a small, but measurable, performance\nimprovement.\n\nAdditionally make ReleaseBuffer() always call UnpinBuffer() for shared\nbuffers. That avoids duplicating work in an eventual UnpinBuffer()\ncall that already has been done in ReleaseBuffer() and also saves some\ncode.\n\nPer discussion with Tom Lane.\n\nDiscussion: 15028.1418772313@sss.pgh.pa.us\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/2d115e47c861878669ba0814b3d97a4e4c347e8b\"\u003eFix various shortcomings of the new PrivateRefCount infrastructure.\u003c/a\u003e","bodyMessageHtml":"As noted by Tom Lane the improvements in \u003ca class=\"commit-link\" data-hovercard-type=\"commit\" data-hovercard-url=\"https://github.com/postgres/postgres/commit/4b4b680c3d6d8485155d4d4bf0a92d3a874b7a65/hovercard\" href=\"https://github.com/postgres/postgres/commit/4b4b680c3d6d8485155d4d4bf0a92d3a874b7a65\"\u003e\u003ctt\u003e4b4b680\u003c/tt\u003e\u003c/a\u003e had the problem\nthat in some situations we searched, entered and modified entries in\nthe private refcount hash while holding a spinlock. I had tried to\nkeep the logic entirely local to PinBuffer_Locked(), but that's not\nreally possible given it's called with a spinlock held...\n\nBesides being disadvantageous from a performance point of view, this\nalso has problems with error handling safety. If we failed inserting\nan entry into the hashtable due to an out of memory error, we'd error\nout with a held spinlock. Not good.\n\nChange the way private refcounts are manipulated: Before a buffer can\nbe tracked an entry has to be reserved using\nReservePrivateRefCountEntry(); then, if a entry is not found using\nGetPrivateRefCountEntry(), it can be entered with\nNewPrivateRefCountEntry().\n\nAlso take advantage of the fact that PinBuffer_Locked() currently is\nnever called for buffers that already have been pinned by the current\nbackend and don't search the private refcount entries for preexisting\nlocal pins. That results in a small, but measurable, performance\nimprovement.\n\nAdditionally make ReleaseBuffer() always call UnpinBuffer() for shared\nbuffers. That avoids duplicating work in an eventual UnpinBuffer()\ncall that already has been done in ReleaseBuffer() and also saves some\ncode.\n\nPer discussion with Tom Lane.\n\nDiscussion: 15028.1418772313@sss.pgh.pa.us","authors":[{"login":"anarazel","displayName":"Andres Freund","avatarUrl":"https://avatars.githubusercontent.com/u/1598211?v=4","path":"/anarazel","isGitHub":false}],"committerAttribution":false,"committer":{"login":"anarazel","displayName":"Andres Freund","avatarUrl":"https://avatars.githubusercontent.com/u/1598211?v=4","path":"/anarazel","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"4ea51cdfe85ceef8afabceb03c446574daa0ac23","url":"/postgres/postgres/commit/4ea51cdfe85ceef8afabceb03c446574daa0ac23","authoredDate":"2015-01-19T15:20:31.000-05:00","committedDate":"2015-01-19T15:28:27.000-05:00","shortMessage":"Use abbreviated keys for faster sorting of text datums.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Use abbreviated keys for faster sorting of text datums.\n\nThis commit extends the SortSupport infrastructure to allow operator\nclasses the option to provide abbreviated representations of Datums;\nin the case of text, we abbreviate by taking the first few characters\nof the strxfrm() blob. If the abbreviated comparison is insufficent\nto resolve the comparison, we fall back on the normal comparator.\nThis can be much faster than the old way of doing sorting if the\nfirst few bytes of the string are usually sufficient to resolve the\ncomparison.\n\nThere is the potential for a performance regression if all of the\nstrings to be sorted are identical for the first 8+ characters and\ndiffer only in later positions; therefore, the SortSupport machinery\nnow provides an infrastructure to abort the use of abbreviation if\nit appears that abbreviation is producing comparatively few distinct\nkeys. HyperLogLog, a streaming cardinality estimator, is included in\nthis commit and used to make that determination for text.\n\nPeter Geoghegan, reviewed by me.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/4ea51cdfe85ceef8afabceb03c446574daa0ac23\"\u003eUse abbreviated keys for faster sorting of text datums.\u003c/a\u003e","bodyMessageHtml":"This commit extends the SortSupport infrastructure to allow operator\nclasses the option to provide abbreviated representations of Datums;\nin the case of text, we abbreviate by taking the first few characters\nof the strxfrm() blob. If the abbreviated comparison is insufficent\nto resolve the comparison, we fall back on the normal comparator.\nThis can be much faster than the old way of doing sorting if the\nfirst few bytes of the string are usually sufficient to resolve the\ncomparison.\n\nThere is the potential for a performance regression if all of the\nstrings to be sorted are identical for the first 8+ characters and\ndiffer only in later positions; therefore, the SortSupport machinery\nnow provides an infrastructure to abort the use of abbreviation if\nit appears that abbreviation is producing comparatively few distinct\nkeys. HyperLogLog, a streaming cardinality estimator, is included in\nthis commit and used to make that determination for text.\n\nPeter Geoghegan, reviewed by me.","authors":[{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false}],"committerAttribution":false,"committer":{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"1605291b6c14be92915948d17f5509191632c97f","url":"/postgres/postgres/commit/1605291b6c14be92915948d17f5509191632c97f","authoredDate":"2015-01-19T11:36:22.000-05:00","committedDate":"2015-01-19T11:36:48.000-05:00","shortMessage":"Typo fix.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Typo fix.\n\nEtsuro Fujita\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/1605291b6c14be92915948d17f5509191632c97f\"\u003eTypo fix.\u003c/a\u003e","bodyMessageHtml":"Etsuro Fujita","authors":[{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false}],"committerAttribution":false,"committer":{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"412f604adbf025618f1338ea6fed0330bc6a610d","url":"/postgres/postgres/commit/412f604adbf025618f1338ea6fed0330bc6a610d","authoredDate":"2015-01-19T12:43:58.000-03:00","committedDate":"2015-01-19T12:43:58.000-03:00","shortMessage":"doc: Fix typos in make_timestamp{,tz} examples","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"doc: Fix typos in make_timestamp{,tz} examples\n\nPointed out by Alan Mogi (bug #12571)\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/412f604adbf025618f1338ea6fed0330bc6a610d\"\u003edoc: Fix typos in make_timestamp{,tz} examples\u003c/a\u003e","bodyMessageHtml":"Pointed out by Alan Mogi (bug #12571)","authors":[{"login":"alvherre","displayName":"Alvaro Herrera","avatarUrl":"https://avatars.githubusercontent.com/u/340005?v=4","path":"/alvherre","isGitHub":false}],"committerAttribution":false,"committer":{"login":"alvherre","displayName":"Alvaro Herrera","avatarUrl":"https://avatars.githubusercontent.com/u/340005?v=4","path":"/alvherre","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"9d54b93239040dab49111b6d7e9d6bfe9c71f419","url":"/postgres/postgres/commit/9d54b93239040dab49111b6d7e9d6bfe9c71f419","authoredDate":"2015-01-19T08:34:29.000-05:00","committedDate":"2015-01-19T08:34:29.000-05:00","shortMessage":"BRIN typo fix.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"BRIN typo fix.\n\nAmit Langote\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/9d54b93239040dab49111b6d7e9d6bfe9c71f419\"\u003eBRIN typo fix.\u003c/a\u003e","bodyMessageHtml":"Amit Langote","authors":[{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false}],"committerAttribution":false,"committer":{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"cb4a3b0410d3ba19e4524fceee99fb9b10a5e08a","url":"/postgres/postgres/commit/cb4a3b0410d3ba19e4524fceee99fb9b10a5e08a","authoredDate":"2015-01-18T22:36:40.000-05:00","committedDate":"2015-01-18T22:36:40.000-05:00","shortMessage":"Install shared libraries also in bin on cygwin, mingw","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Install shared libraries also in bin on cygwin, mingw\n\nThis was previously only done for libpq, not it\u0026#39;s done for all shared\nlibraries.\n\nReviewed-by: Michael Paquier \u0026lt;michael.paquier@gmail.com\u0026gt;\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/cb4a3b0410d3ba19e4524fceee99fb9b10a5e08a\"\u003eInstall shared libraries also in bin on cygwin, mingw\u003c/a\u003e","bodyMessageHtml":"This was previously only done for libpq, not it's done for all shared\nlibraries.\n\nReviewed-by: Michael Paquier \u0026lt;michael.paquier@gmail.com\u0026gt;","authors":[{"login":"petere","displayName":"Peter Eisentraut","avatarUrl":"https://avatars.githubusercontent.com/u/105543?v=4","path":"/petere","isGitHub":false}],"committerAttribution":false,"committer":{"login":"petere","displayName":"Peter Eisentraut","avatarUrl":"https://avatars.githubusercontent.com/u/105543?v=4","path":"/petere","isGitHub":false},"pusher":null,"pushedDate":null}]},{"title":"Jan 18, 2015","commits":[{"oid":"75df6dc083f7a989697b5002a421fb204f2eeddb","url":"/postgres/postgres/commit/75df6dc083f7a989697b5002a421fb204f2eeddb","authoredDate":"2015-01-18T17:04:11.000-05:00","committedDate":"2015-01-18T17:04:11.000-05:00","shortMessage":"Fix ancient thinko in default table rowcount estimation.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Fix ancient thinko in default table rowcount estimation.\n\nThe code used sizeof(ItemPointerData) where sizeof(ItemIdData) is correct,\nsince we\u0026#39;re trying to account for a tuple\u0026#39;s line pointer. Spotted by\nTomonari Katsumata (bug #12584).\n\nAlthough this mistake is of very long standing, no back-patch, since it\u0026#39;s\na relatively harmless error and changing it would risk changing default\nplanner behavior in stable branches. (I don\u0026#39;t see any change in regression\ntest outputs here, but the buildfarm may think differently.)\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/75df6dc083f7a989697b5002a421fb204f2eeddb\"\u003eFix ancient thinko in default table rowcount estimation.\u003c/a\u003e","bodyMessageHtml":"The code used sizeof(ItemPointerData) where sizeof(ItemIdData) is correct,\nsince we're trying to account for a tuple's line pointer. Spotted by\nTomonari Katsumata (bug #12584).\n\nAlthough this mistake is of very long standing, no back-patch, since it's\na relatively harmless error and changing it would risk changing default\nplanner behavior in stable branches. (I don't see any change in regression\ntest outputs here, but the buildfarm may think differently.)","authors":[{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false}],"committerAttribution":false,"committer":{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"4c34dcf97f70fa5c3d5fbf70caff12032a27a7dd","url":"/postgres/postgres/commit/4c34dcf97f70fa5c3d5fbf70caff12032a27a7dd","authoredDate":"2015-01-18T14:08:09.000-05:00","committedDate":"2015-01-18T14:08:09.000-05:00","shortMessage":"Activate low-volume optional logging during regression test runs.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Activate low-volume optional logging during regression test runs.\n\nElaborated from an idea by Andres Freund.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/4c34dcf97f70fa5c3d5fbf70caff12032a27a7dd\"\u003eActivate low-volume optional logging during regression test runs.\u003c/a\u003e","bodyMessageHtml":"Elaborated from an idea by Andres Freund.","authors":[{"login":"nmisch","displayName":"Noah Misch","avatarUrl":"https://avatars.githubusercontent.com/u/5084293?v=4","path":"/nmisch","isGitHub":false}],"committerAttribution":false,"committer":{"login":"nmisch","displayName":"Noah Misch","avatarUrl":"https://avatars.githubusercontent.com/u/5084293?v=4","path":"/nmisch","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"525b84c576e119de7f2b0d00e3a99d559771aa7b","url":"/postgres/postgres/commit/525b84c576e119de7f2b0d00e3a99d559771aa7b","authoredDate":"2015-01-18T15:57:55.000+01:00","committedDate":"2015-01-18T16:04:10.000+01:00","shortMessage":"Fix use of already freed memory when dumping a database's security label.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Fix use of already freed memory when dumping a database\u0026#39;s security label.\n\npg_dump.c:dumDatabase() called ArchiveEntry() with the results of a a\nquery that was PQclear()ed a couple lines earlier.\n\nBackpatch to 9.2 where security labels for shared objects where\nintroduced.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/525b84c576e119de7f2b0d00e3a99d559771aa7b\"\u003eFix use of already freed memory when dumping a database's security label.\u003c/a\u003e","bodyMessageHtml":"pg_dump.c:dumDatabase() called ArchiveEntry() with the results of a a\nquery that was PQclear()ed a couple lines earlier.\n\nBackpatch to 9.2 where security labels for shared objects where\nintroduced.","authors":[{"login":"anarazel","displayName":"Andres Freund","avatarUrl":"https://avatars.githubusercontent.com/u/1598211?v=4","path":"/anarazel","isGitHub":false}],"committerAttribution":false,"committer":{"login":"anarazel","displayName":"Andres Freund","avatarUrl":"https://avatars.githubusercontent.com/u/1598211?v=4","path":"/anarazel","isGitHub":false},"pusher":null,"pushedDate":null}]},{"title":"Jan 17, 2015","commits":[{"oid":"ff44fba46c09c37dd9e60da1cb0b3a9339eb085f","url":"/postgres/postgres/commit/ff44fba46c09c37dd9e60da1cb0b3a9339eb085f","authoredDate":"2015-01-17T13:00:42.000+01:00","committedDate":"2015-01-17T13:00:42.000+01:00","shortMessage":"Replace walsender's latch with the general shared latch.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Replace walsender\u0026#39;s latch with the general shared latch.\n\nRelying on the normal shared latch simplifies interrupt/signal\nhandling because we can rely on all signal handlers setting the proc\nlatch. That in turn allows us to avoid the use of\nImmediateInterruptOK, which arguably isn\u0026#39;t correct because\nWaitLatchOrSocket isn\u0026#39;t declared to be immediately interruptible.\n\nAlso change sections that wait on the walsender\u0026#39;s latch to notice\ninterrupts quicker/more reliably and make them more consistent with\neach other.\n\nThis is part of a larger \u0026quot;get rid of ImmediateInterruptOK\u0026quot; series.\n\nDiscussion: 20150115020335.GZ5245@awork2.anarazel.de\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/ff44fba46c09c37dd9e60da1cb0b3a9339eb085f\"\u003eReplace walsender's latch with the general shared latch.\u003c/a\u003e","bodyMessageHtml":"Relying on the normal shared latch simplifies interrupt/signal\nhandling because we can rely on all signal handlers setting the proc\nlatch. That in turn allows us to avoid the use of\nImmediateInterruptOK, which arguably isn't correct because\nWaitLatchOrSocket isn't declared to be immediately interruptible.\n\nAlso change sections that wait on the walsender's latch to notice\ninterrupts quicker/more reliably and make them more consistent with\neach other.\n\nThis is part of a larger \"get rid of ImmediateInterruptOK\" series.\n\nDiscussion: 20150115020335.GZ5245@awork2.anarazel.de","authors":[{"login":"anarazel","displayName":"Andres Freund","avatarUrl":"https://avatars.githubusercontent.com/u/1598211?v=4","path":"/anarazel","isGitHub":false}],"committerAttribution":false,"committer":{"login":"anarazel","displayName":"Andres Freund","avatarUrl":"https://avatars.githubusercontent.com/u/1598211?v=4","path":"/anarazel","isGitHub":false},"pusher":null,"pushedDate":null}]},{"title":"Jan 16, 2015","commits":[{"oid":"20af53d7191f84d0f5b86da4362e481b7e85d52a","url":"/postgres/postgres/commit/20af53d7191f84d0f5b86da4362e481b7e85d52a","authoredDate":"2015-01-16T18:18:52.000-05:00","committedDate":"2015-01-16T18:19:00.000-05:00","shortMessage":"Show sort ordering options in EXPLAIN output.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Show sort ordering options in EXPLAIN output.\n\nUp to now, EXPLAIN has contented itself with printing the sort expressions\nin a Sort or Merge Append plan node. This patch improves that by\nannotating the sort keys with COLLATE, DESC, USING, and/or NULLS FIRST/LAST\nwhenever nondefault sort ordering options are used. The output is now a\nreasonably close approximation of an ORDER BY clause equivalent to the\nplan\u0026#39;s ordering.\n\nMarius Timmer, Lukas Kreft, and Arne Scheffer; reviewed by Mike Blackwell.\nSome additional hacking by me.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/20af53d7191f84d0f5b86da4362e481b7e85d52a\"\u003eShow sort ordering options in EXPLAIN output.\u003c/a\u003e","bodyMessageHtml":"Up to now, EXPLAIN has contented itself with printing the sort expressions\nin a Sort or Merge Append plan node. This patch improves that by\nannotating the sort keys with COLLATE, DESC, USING, and/or NULLS FIRST/LAST\nwhenever nondefault sort ordering options are used. The output is now a\nreasonably close approximation of an ORDER BY clause equivalent to the\nplan's ordering.\n\nMarius Timmer, Lukas Kreft, and Arne Scheffer; reviewed by Mike Blackwell.\nSome additional hacking by me.","authors":[{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false}],"committerAttribution":false,"committer":{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"94028691609f8e148bd4ce72c46163f018832a5b","url":"/postgres/postgres/commit/94028691609f8e148bd4ce72c46163f018832a5b","authoredDate":"2015-01-17T01:14:32.000+02:00","committedDate":"2015-01-17T01:15:23.000+02:00","shortMessage":"Advance backend's advertised xmin more aggressively.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Advance backend\u0026#39;s advertised xmin more aggressively.\n\nCurrently, a backend will reset it\u0026#39;s PGXACT-\u0026gt;xmin value when it doesn\u0026#39;t\nhave any registered snapshots left. That covered the common case that a\ntransaction in read committed mode runs several queries, one after each\nother, as there would be no snapshots active between those queries.\nHowever, if you hold cursors across each of the query, we didn\u0026#39;t get a\nchance to reset xmin.\n\nTo make that better, keep all the registered snapshots in a pairing heap,\nordered by xmin so that it\u0026#39;s always quick to find the snapshot with the\nsmallest xmin. That allows us to advance PGXACT-\u0026gt;xmin whenever the oldest\nsnapshot is deregistered, even if there are others still active.\n\nPer discussion originally started by Jeff Davis back in 2009 and more\nrecently by Robert Haas.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/94028691609f8e148bd4ce72c46163f018832a5b\"\u003eAdvance backend's advertised xmin more aggressively.\u003c/a\u003e","bodyMessageHtml":"Currently, a backend will reset it's PGXACT-\u0026gt;xmin value when it doesn't\nhave any registered snapshots left. That covered the common case that a\ntransaction in read committed mode runs several queries, one after each\nother, as there would be no snapshots active between those queries.\nHowever, if you hold cursors across each of the query, we didn't get a\nchance to reset xmin.\n\nTo make that better, keep all the registered snapshots in a pairing heap,\nordered by xmin so that it's always quick to find the snapshot with the\nsmallest xmin. That allows us to advance PGXACT-\u0026gt;xmin whenever the oldest\nsnapshot is deregistered, even if there are others still active.\n\nPer discussion originally started by Jeff Davis back in 2009 and more\nrecently by Robert Haas.","authors":[{"login":"hlinnaka","displayName":"Heikki Linnakangas","avatarUrl":"https://avatars.githubusercontent.com/u/191602?v=4","path":"/hlinnaka","isGitHub":false}],"committerAttribution":false,"committer":{"login":"hlinnaka","displayName":"Heikki Linnakangas","avatarUrl":"https://avatars.githubusercontent.com/u/191602?v=4","path":"/hlinnaka","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"779fdcdeeeb9cdbfd271f8dc5bde76ed0c7b0813","url":"/postgres/postgres/commit/779fdcdeeeb9cdbfd271f8dc5bde76ed0c7b0813","authoredDate":"2015-01-16T13:28:30.000-05:00","committedDate":"2015-01-16T13:28:30.000-05:00","shortMessage":"Improve new caching logic in tbm_add_tuples().","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Improve new caching logic in tbm_add_tuples().\n\nFor no significant extra complexity, we can cache knowledge that the\ntarget page is lossy, and save a hash_search per iteration in that\ncase as well. This probably makes little difference, since the extra\nrechecks that must occur when pages are lossy are way more expensive\nthan anything we can save here ... but we might as well do it if we\u0026#39;re\ngoing to cache anything.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/779fdcdeeeb9cdbfd271f8dc5bde76ed0c7b0813\"\u003eImprove new caching logic in tbm_add_tuples().\u003c/a\u003e","bodyMessageHtml":"For no significant extra complexity, we can cache knowledge that the\ntarget page is lossy, and save a hash_search per iteration in that\ncase as well. This probably makes little difference, since the extra\nrechecks that must occur when pages are lossy are way more expensive\nthan anything we can save here ... but we might as well do it if we're\ngoing to cache anything.","authors":[{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false}],"committerAttribution":false,"committer":{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"f5ae3ba4828ece02bae2d16b4cbce847fbcea850","url":"/postgres/postgres/commit/f5ae3ba4828ece02bae2d16b4cbce847fbcea850","authoredDate":"2015-01-16T17:47:59.000+01:00","committedDate":"2015-01-16T17:47:59.000+01:00","shortMessage":"Make tbm_add_tuples more efficient by caching the last acccessed page.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Make tbm_add_tuples more efficient by caching the last acccessed page.\n\nWhen adding a large number of tuples to a TID bitmap using\ntbm_add_tuples() sometimes a lot of time was spent looking up a page\u0026#39;s\nentry in the bitmap\u0026#39;s internal hashtable.\n\nImprove efficiency by caching the last accessed page, while iterating\nover the passed in tuples, hoping consecutive tuples will often be on\nthe same page. In many cases that\u0026#39;s a good bet, and in the rest the\nadded overhead isn\u0026#39;t big.\n\nDiscussion: 54479A85.8060309@sigaev.ru\n\nAuthor: Teodor Sigaev\nReviewed-By: David Rowley\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/f5ae3ba4828ece02bae2d16b4cbce847fbcea850\"\u003eMake tbm_add_tuples more efficient by caching the last acccessed page.\u003c/a\u003e","bodyMessageHtml":"When adding a large number of tuples to a TID bitmap using\ntbm_add_tuples() sometimes a lot of time was spent looking up a page's\nentry in the bitmap's internal hashtable.\n\nImprove efficiency by caching the last accessed page, while iterating\nover the passed in tuples, hoping consecutive tuples will often be on\nthe same page. In many cases that's a good bet, and in the rest the\nadded overhead isn't big.\n\nDiscussion: 54479A85.8060309@sigaev.ru\n\nAuthor: Teodor Sigaev\nReviewed-By: David Rowley","authors":[{"login":"anarazel","displayName":"Andres Freund","avatarUrl":"https://avatars.githubusercontent.com/u/1598211?v=4","path":"/anarazel","isGitHub":false}],"committerAttribution":false,"committer":{"login":"anarazel","displayName":"Andres Freund","avatarUrl":"https://avatars.githubusercontent.com/u/1598211?v=4","path":"/anarazel","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"aa1d2fc5e91e396bec5bf8a8d10b6cc4af0b0fff","url":"/postgres/postgres/commit/aa1d2fc5e91e396bec5bf8a8d10b6cc4af0b0fff","authoredDate":"2015-01-16T12:12:49.000+02:00","committedDate":"2015-01-16T13:28:19.000+02:00","shortMessage":"Another attempt at fixing Windows Norwegian locale.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Another attempt at fixing Windows Norwegian locale.\n\nPrevious fix mapped \u0026quot;Norwegian (Bokmål)\u0026quot; locale, which contains a non-ASCII\ncharacter, to the pure ASCII alias \u0026quot;norwegian-bokmal\u0026quot;. However, it turns\nout that more recent versions of the CRT library, in particular MSVCR110\n(Visual Studio 2012), changed the behaviour of setlocale() so that if\nyou pass \u0026quot;norwegian-bokmal\u0026quot; to setlocale, it returns \u0026quot;Norwegian_Norway\u0026quot;.\n\nThat meant trouble, when setlocale(..., NULL) first returned\n\u0026quot;Norwegian (Bokmål)_Norway\u0026quot;, which we mapped to \u0026quot;norwegian-bokmal_Norway\u0026quot;,\nbut another call to setlocale(..., \u0026quot;norwegian-bokmal_Norway\u0026quot;) returned\n\u0026quot;Norwegian_Norway\u0026quot;. That caused PostgreSQL to think that they are different\nlocales, and therefore not compatible. That caused initdb to fail at\nCREATE DATABASE.\n\nOlder CRT versions seem to accept \u0026quot;Norwegian_Norway\u0026quot; too, so change the\nmapping to return \u0026quot;Norwegian_Norway\u0026quot; instead of \u0026quot;norwegian-bokmal\u0026quot;.\n\nBackpatch to 9.2 like the previous attempt. We haven\u0026#39;t made a release that\nincludes the previous fix yet, so we don\u0026#39;t need to worry about changing the\nlocale of existing clusters from \u0026quot;norwegian-bokmal\u0026quot; to \u0026quot;Norwegian_Norway\u0026quot;.\n(Doing any mapping like this at all requires changing the locale of\nexisting databases; the release notes need to include instructions for\nthat).\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/aa1d2fc5e91e396bec5bf8a8d10b6cc4af0b0fff\"\u003eAnother attempt at fixing Windows Norwegian locale.\u003c/a\u003e","bodyMessageHtml":"Previous fix mapped \"Norwegian (Bokmål)\" locale, which contains a non-ASCII\ncharacter, to the pure ASCII alias \"norwegian-bokmal\". However, it turns\nout that more recent versions of the CRT library, in particular MSVCR110\n(Visual Studio 2012), changed the behaviour of setlocale() so that if\nyou pass \"norwegian-bokmal\" to setlocale, it returns \"Norwegian_Norway\".\n\nThat meant trouble, when setlocale(..., NULL) first returned\n\"Norwegian (Bokmål)_Norway\", which we mapped to \"norwegian-bokmal_Norway\",\nbut another call to setlocale(..., \"norwegian-bokmal_Norway\") returned\n\"Norwegian_Norway\". That caused PostgreSQL to think that they are different\nlocales, and therefore not compatible. That caused initdb to fail at\nCREATE DATABASE.\n\nOlder CRT versions seem to accept \"Norwegian_Norway\" too, so change the\nmapping to return \"Norwegian_Norway\" instead of \"norwegian-bokmal\".\n\nBackpatch to 9.2 like the previous attempt. We haven't made a release that\nincludes the previous fix yet, so we don't need to worry about changing the\nlocale of existing clusters from \"norwegian-bokmal\" to \"Norwegian_Norway\".\n(Doing any mapping like this at all requires changing the locale of\nexisting databases; the release notes need to include instructions for\nthat).","authors":[{"login":"hlinnaka","displayName":"Heikki Linnakangas","avatarUrl":"https://avatars.githubusercontent.com/u/191602?v=4","path":"/hlinnaka","isGitHub":false}],"committerAttribution":false,"committer":{"login":"hlinnaka","displayName":"Heikki Linnakangas","avatarUrl":"https://avatars.githubusercontent.com/u/191602?v=4","path":"/hlinnaka","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"28df6a0df0a78360629163c3df5b073ea6deeca6","url":"/postgres/postgres/commit/28df6a0df0a78360629163c3df5b073ea6deeca6","authoredDate":"2015-01-16T01:27:31.000-05:00","committedDate":"2015-01-16T01:27:31.000-05:00","shortMessage":"Update \"pg_regress --no-locale\" for Darwin and Windows.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Update \u0026quot;pg_regress --no-locale\u0026quot; for Darwin and Windows.\n\nCommit 894459e59ffa5c7fee297b246c17e1f72564db1d revealed this option to\nbe broken for NLS builds on Darwin, but \u0026quot;make -C contrib/unaccent check\u0026quot;\nand the buildfarm client rely on it. Fix that configuration by\nredefining the option to imply LANG=C on Darwin. In passing, use LANG=C\ninstead of LANG=en on Windows; since only postmaster startup uses that\nvalue, testers are unlikely to notice the change. Back-patch to 9.0,\nlike the predecessor commit.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/28df6a0df0a78360629163c3df5b073ea6deeca6\"\u003eUpdate \"pg_regress --no-locale\" for Darwin and Windows.\u003c/a\u003e","bodyMessageHtml":"Commit \u003ca class=\"commit-link\" data-hovercard-type=\"commit\" data-hovercard-url=\"https://github.com/postgres/postgres/commit/894459e59ffa5c7fee297b246c17e1f72564db1d/hovercard\" href=\"https://github.com/postgres/postgres/commit/894459e59ffa5c7fee297b246c17e1f72564db1d\"\u003e\u003ctt\u003e894459e\u003c/tt\u003e\u003c/a\u003e revealed this option to\nbe broken for NLS builds on Darwin, but \"make -C contrib/unaccent check\"\nand the buildfarm client rely on it. Fix that configuration by\nredefining the option to imply LANG=C on Darwin. In passing, use LANG=C\ninstead of LANG=en on Windows; since only postmaster startup uses that\nvalue, testers are unlikely to notice the change. Back-patch to 9.0,\nlike the predecessor commit.","authors":[{"login":"nmisch","displayName":"Noah Misch","avatarUrl":"https://avatars.githubusercontent.com/u/5084293?v=4","path":"/nmisch","isGitHub":false}],"committerAttribution":false,"committer":{"login":"nmisch","displayName":"Noah Misch","avatarUrl":"https://avatars.githubusercontent.com/u/5084293?v=4","path":"/nmisch","isGitHub":false},"pusher":null,"pushedDate":null}]},{"title":"Jan 15, 2015","commits":[{"oid":"c480cb9d246cec5e1dd7d72956e792df16e5445d","url":"/postgres/postgres/commit/c480cb9d246cec5e1dd7d72956e792df16e5445d","authoredDate":"2015-01-15T18:52:22.000-05:00","committedDate":"2015-01-15T18:52:58.000-05:00","shortMessage":"Fix use-of-already-freed-memory problem in EvalPlanQual processing.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Fix use-of-already-freed-memory problem in EvalPlanQual processing.\n\nUp to now, the \u0026quot;child\u0026quot; executor state trees generated for EvalPlanQual\nrechecks have simply shared the ResultRelInfo arrays used for the original\nexecution tree. However, this leads to dangling-pointer problems, because\nExecInitModifyTable() is all too willing to scribble on some fields of the\nResultRelInfo(s) even when it\u0026#39;s being run in one of those child trees.\nThis trashes those fields from the perspective of the parent tree, because\neven if the generated subtree is logically identical to what was in use in\nthe parent, it\u0026#39;s in a memory context that will go away when we\u0026#39;re done\nwith the child state tree.\n\nWe do however want to share information in the direction from the parent\ndown to the children; in particular, fields such as es_instrument *must*\nbe shared or we\u0026#39;ll lose the stats arising from execution of the children.\nSo the simplest fix is to make a copy of the parent\u0026#39;s ResultRelInfo array,\nbut not copy any fields back at end of child execution.\n\nPer report from Manuel Kniep. The added isolation test is based on his\nexample. In an unpatched memory-clobber-enabled build it will reliably\nfail with \u0026quot;ctid is NULL\u0026quot; errors in all branches back to 9.1, as a\nconsequence of junkfilter-\u0026gt;jf_junkAttNo being overwritten with $7f7f.\nThis test cannot be run as-is before that for lack of WITH syntax; but\nI have no doubt that some variant of this problem can arise in older\nbranches, so apply the code change all the way back.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/c480cb9d246cec5e1dd7d72956e792df16e5445d\"\u003eFix use-of-already-freed-memory problem in EvalPlanQual processing.\u003c/a\u003e","bodyMessageHtml":"Up to now, the \"child\" executor state trees generated for EvalPlanQual\nrechecks have simply shared the ResultRelInfo arrays used for the original\nexecution tree. However, this leads to dangling-pointer problems, because\nExecInitModifyTable() is all too willing to scribble on some fields of the\nResultRelInfo(s) even when it's being run in one of those child trees.\nThis trashes those fields from the perspective of the parent tree, because\neven if the generated subtree is logically identical to what was in use in\nthe parent, it's in a memory context that will go away when we're done\nwith the child state tree.\n\nWe do however want to share information in the direction from the parent\ndown to the children; in particular, fields such as es_instrument *must*\nbe shared or we'll lose the stats arising from execution of the children.\nSo the simplest fix is to make a copy of the parent's ResultRelInfo array,\nbut not copy any fields back at end of child execution.\n\nPer report from Manuel Kniep. The added isolation test is based on his\nexample. In an unpatched memory-clobber-enabled build it will reliably\nfail with \"ctid is NULL\" errors in all branches back to 9.1, as a\nconsequence of junkfilter-\u0026gt;jf_junkAttNo being overwritten with $7f7f.\nThis test cannot be run as-is before that for lack of WITH syntax; but\nI have no doubt that some variant of this problem can arise in older\nbranches, so apply the code change all the way back.","authors":[{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false}],"committerAttribution":false,"committer":{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"49b04188f83fb8cacf925978989bc20399e76786","url":"/postgres/postgres/commit/49b04188f83fb8cacf925978989bc20399e76786","authoredDate":"2015-01-15T20:48:48.000+02:00","committedDate":"2015-01-15T20:52:41.000+02:00","shortMessage":"Fix thinko in re-setting wal_log_hints flag from a parameter-change record.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Fix thinko in re-setting wal_log_hints flag from a parameter-change record.\n\nThe flag is supposed to be copied from the record. Same issue with\ntrack_commit_timestamps, but that\u0026#39;s master-only.\n\nReport and fix by Petr Jalinek. Backpatch to 9.4, where wal_log_hints was\nadded.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/49b04188f83fb8cacf925978989bc20399e76786\"\u003eFix thinko in re-setting wal_log_hints flag from a parameter-change record.\u003c/a\u003e","bodyMessageHtml":"The flag is supposed to be copied from the record. Same issue with\ntrack_commit_timestamps, but that's master-only.\n\nReport and fix by Petr Jalinek. Backpatch to 9.4, where wal_log_hints was\nadded.","authors":[{"login":"hlinnaka","displayName":"Heikki Linnakangas","avatarUrl":"https://avatars.githubusercontent.com/u/191602?v=4","path":"/hlinnaka","isGitHub":false}],"committerAttribution":false,"committer":{"login":"hlinnaka","displayName":"Heikki Linnakangas","avatarUrl":"https://avatars.githubusercontent.com/u/191602?v=4","path":"/hlinnaka","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"8e166e164c7c4531d7eb150d836aa2357989237a","url":"/postgres/postgres/commit/8e166e164c7c4531d7eb150d836aa2357989237a","authoredDate":"2015-01-15T13:39:33.000-05:00","committedDate":"2015-01-15T13:39:33.000-05:00","shortMessage":"Rearrange explain.c's API so callers need not embed sizeof(ExplainState).","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Rearrange explain.c\u0026#39;s API so callers need not embed sizeof(ExplainState).\n\nThe folly of the previous arrangement was just demonstrated: there\u0026#39;s no\nconvenient way to add fields to ExplainState without breaking ABI, even\nif callers have no need to touch those fields. Since we might well need\nto do that again someday in back branches, let\u0026#39;s change things so that\nonly explain.c has to have sizeof(ExplainState) compiled into it. This\ncosts one extra palloc() per EXPLAIN operation, which is surely pretty\nnegligible.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/8e166e164c7c4531d7eb150d836aa2357989237a\"\u003eRearrange explain.c's API so callers need not embed sizeof(ExplainState).\u003c/a\u003e","bodyMessageHtml":"The folly of the previous arrangement was just demonstrated: there's no\nconvenient way to add fields to ExplainState without breaking ABI, even\nif callers have no need to touch those fields. Since we might well need\nto do that again someday in back branches, let's change things so that\nonly explain.c has to have sizeof(ExplainState) compiled into it. This\ncosts one extra palloc() per EXPLAIN operation, which is surely pretty\nnegligible.","authors":[{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false}],"committerAttribution":false,"committer":{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"a5cd70dcbc268381e13cb0b2973b5732856d186f","url":"/postgres/postgres/commit/a5cd70dcbc268381e13cb0b2973b5732856d186f","authoredDate":"2015-01-15T13:18:12.000-05:00","committedDate":"2015-01-15T13:18:12.000-05:00","shortMessage":"Improve performance of EXPLAIN with large range tables.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Improve performance of EXPLAIN with large range tables.\n\nAs of 9.3, ruleutils.c goes to some lengths to ensure that table and column\naliases used in its output are unique. Of course this takes more time than\nwas required before, which in itself isn\u0026#39;t fatal. However, EXPLAIN was set\nup so that recalculation of the unique aliases was repeated for each\nsubexpression printed in a plan. That results in O(N^2) time and memory\nconsumption for large plan trees, which did not happen in older branches.\n\nFortunately, the expensive work is the same across a whole plan tree,\nso there is no need to repeat it; we can do most of the initialization\njust once per query and re-use it for each subexpression. This buys\nback most (not all) of the performance loss since 9.2.\n\nWe need an extra ExplainState field to hold the precalculated deparse\ncontext. That\u0026#39;s no problem in HEAD, but in the back branches, expanding\nsizeof(ExplainState) seems risky because third-party extensions might\nhave local variables of that struct type. So, in 9.4 and 9.3, introduce\nan auxiliary struct to keep sizeof(ExplainState) the same. We should\nrefactor the APIs to avoid such local variables in future, but that\u0026#39;s\nmaterial for a separate HEAD-only commit.\n\nPer gripe from Alexey Bashtanov. Back-patch to 9.3 where the issue\nwas introduced.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/a5cd70dcbc268381e13cb0b2973b5732856d186f\"\u003eImprove performance of EXPLAIN with large range tables.\u003c/a\u003e","bodyMessageHtml":"As of 9.3, ruleutils.c goes to some lengths to ensure that table and column\naliases used in its output are unique. Of course this takes more time than\nwas required before, which in itself isn't fatal. However, EXPLAIN was set\nup so that recalculation of the unique aliases was repeated for each\nsubexpression printed in a plan. That results in O(N^2) time and memory\nconsumption for large plan trees, which did not happen in older branches.\n\nFortunately, the expensive work is the same across a whole plan tree,\nso there is no need to repeat it; we can do most of the initialization\njust once per query and re-use it for each subexpression. This buys\nback most (not all) of the performance loss since 9.2.\n\nWe need an extra ExplainState field to hold the precalculated deparse\ncontext. That's no problem in HEAD, but in the back branches, expanding\nsizeof(ExplainState) seems risky because third-party extensions might\nhave local variables of that struct type. So, in 9.4 and 9.3, introduce\nan auxiliary struct to keep sizeof(ExplainState) the same. We should\nrefactor the APIs to avoid such local variables in future, but that's\nmaterial for a separate HEAD-only commit.\n\nPer gripe from Alexey Bashtanov. Back-patch to 9.3 where the issue\nwas introduced.","authors":[{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false}],"committerAttribution":false,"committer":{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"0b49642b99ca2818bb8bfcaddf522b2e36a5b350","url":"/postgres/postgres/commit/0b49642b99ca2818bb8bfcaddf522b2e36a5b350","authoredDate":"2015-01-15T09:26:03.000-05:00","committedDate":"2015-01-15T09:26:03.000-05:00","shortMessage":"pg_standby: Avoid writing one byte beyond the end of the buffer.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"pg_standby: Avoid writing one byte bey 10000 ond the end of the buffer.\n\nPreviously, read() might have returned a length equal to the buffer\nlength, and then the subsequent store to buf[len] would write a\nzero-byte one byte past the end. This doesn\u0026#39;t seem likely to be\na security issue, but there\u0026#39;s some chance it could result in\npg_standby misbehaving.\n\nSpotted by Coverity; patch by Michael Paquier, reviewed by me.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/0b49642b99ca2818bb8bfcaddf522b2e36a5b350\"\u003epg_standby: Avoid writing one byte beyond the end of the buffer.\u003c/a\u003e","bodyMessageHtml":"Previously, read() might have returned a length equal to the buffer\nlength, and then the subsequent store to buf[len] would write a\nzero-byte one byte past the end. This doesn't seem likely to be\na security issue, but there's some chance it could result in\npg_standby misbehaving.\n\nSpotted by Coverity; patch by Michael Paquier, reviewed by me.","authors":[{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false}],"committerAttribution":false,"committer":{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"6cfd5086e140b365086d61f25c519d046dfcf7f0","url":"/postgres/postgres/commit/6cfd5086e140b365086d61f25c519d046dfcf7f0","authoredDate":"2015-01-15T13:10:24.000+01:00","committedDate":"2015-01-15T13:26:25.000+01:00","shortMessage":"Blindly try to fix a warning in s_lock.h when compiling with gcc on HPPA.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Blindly try to fix a warning in s_lock.h when compiling with gcc on HPPA.\n\nThe possibly, depending on compiler settings, generated warning was\n\u0026quot;warning: `S_UNLOCK\u0026#39; redefined\u0026quot;.\n\nThe hppa spinlock implementation doesn\u0026#39;t follow the rules of s_lock.h\nand provides a gcc specific implementation outside of the the part of\nthe file that\u0026#39;s supposed to do that. It does so to avoid duplication\nbetween the HP compiler and gcc. That unfortunately means that\nS_UNLOCK is already defined when the HPPA specific section is reached.\n\nUndefine the generic fallback S_UNLOCK definition inside the HPPA\nsection. That\u0026#39;s far from pretty, but has the big advantage of being\nsimple. If somebody is interested to fix this in a prettier way...\n\nThis presumably got broken in the course of 0709b7ee72.\n\nDiscussion: 20150114225919.GY5245@awork2.anarazel.de\n\nPer complaint from Tom Lane.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/6cfd5086e140b365086d61f25c519d046dfcf7f0\"\u003eBlindly try to fix a warning in s_lock.h when compiling with gcc on HPPA.\u003c/a\u003e","bodyMessageHtml":"The possibly, depending on compiler settings, generated warning was\n\"warning: `S_UNLOCK' redefined\".\n\nThe hppa spinlock implementation doesn't follow the rules of s_lock.h\nand provides a gcc specific implementation outside of the the part of\nthe file that's supposed to do that. It does so to avoid duplication\nbetween the HP compiler and gcc. That unfortunately means that\nS_UNLOCK is already defined when the HPPA specific section is reached.\n\nUndefine the generic fallback S_UNLOCK definition inside the HPPA\nsection. That's far from pretty, but has the big advantage of being\nsimple. If somebody is interested to fix this in a prettier way...\n\nThis presumably got broken in the course of \u003ca class=\"commit-link\" data-hovercard-type=\"commit\" data-hovercard-url=\"https://github.com/postgres/postgres/commit/0709b7ee72e4bc71ad07b7120acd117265ab51d0/hovercard\" href=\"https://github.com/postgres/postgres/commit/0709b7ee72e4bc71ad07b7120acd117265ab51d0\"\u003e\u003ctt\u003e0709b7e\u003c/tt\u003e\u003c/a\u003e.\n\nDiscussion: 20150114225919.GY5245@awork2.anarazel.de\n\nPer complaint from Tom Lane.","authors":[{"login":"anarazel","displayName":"Andres Freund","avatarUrl":"https://avatars.githubusercontent.com/u/1598211?v=4","path":"/anarazel","isGitHub":false}],"committerAttribution":false,"committer":{"login":"anarazel","displayName":"Andres Freund","avatarUrl":"https://avatars.githubusercontent.com/u/1598211?v=4","path":"/anarazel","isGitHub":false},"pusher":null,"pushedDate":null}]},{"title":"Jan 14, 2015","commits":[{"oid":"73a8f5176ad980d1d2c265649757af3391079318","url":"/postgres/postgres/commit/73a8f5176ad980d1d2c265649757af3391079318","authoredDate":"2015-01-14T16:40:58.000-05:00","committedDate":"2015-01-14T16:40:58.000-05:00","shortMessage":"docs: Add missing \u003cliteral\u003e markup.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"docs: Add missing \u0026lt;literal\u0026gt; markup.\n\nMichael Paquier\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/73a8f5176ad980d1d2c265649757af3391079318\"\u003edocs: Add missing \u0026lt;literal\u0026gt; markup.\u003c/a\u003e","bodyMessageHtml":"Michael Paquier","authors":[{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false}],"committerAttribution":false,"committer":{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"4a0a5f21fa05070295557ad6ac9b9bbe247938ad","url":"/postgres/postgres/commit/4a0a5f21fa05070295557ad6ac9b9bbe247938ad","authoredDate":"2015-01-14T15:14:20.000-05:00","committedDate":"2015-01-14T15:14:20.000-05:00","shortMessage":"vacuumlo: Avoid unlikely memory leak.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"vacuumlo: Avoid unlikely memory leak.\n\nSpotted by Coverity. This isn\u0026#39;t likely to matter in practice, but\nthere\u0026#39;s no harm in fixing it.\n\nMichael Paquier\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/4a0a5f21fa05070295557ad6ac9b9bbe247938ad\"\u003evacuumlo: Avoid unlikely memory leak.\u003c/a\u003e","bodyMessageHtml":"Spotted by Coverity. This isn't likely to matter in practice, but\nthere's no harm in fixing it.\n\nMichael Paquier","authors":[{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false}],"committerAttribution":false,"committer":{"login":"robertmhaas","displayName":"Robert Haas","avatarUrl":"https://avatars.githubusercontent.com/u/886678?v=4","path":"/robertmhaas","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"59f71a0d0b56b2df48db4bf1738aece5551f7a47","url":"/postgres/postgres/commit/59f71a0d0b56b2df48db4bf1738aece5551f7a47","authoredDate":"2015-01-14T18:45:22.000+01:00","committedDate":"2015-01-14T18:45:22.000+01:00","shortMessage":"Add a default local latch for use in signal handlers.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Add a default local latch for use in signal handlers.\n\nTo do so, move InitializeLatchSupport() into the new common process\ninitialization functions, and add a new global variable MyLatch.\n\nMyLatch is usable as soon InitPostmasterChild() has been called\n(i.e. very early during startup). Initially it points to a process\nlocal latch that exists in all processes. InitProcess/InitAuxiliaryProcess\nthen replaces that local latch with PGPROC-\u0026gt;procLatch. During shutdown\nthe reverse happens.\n\nThis is primarily advantageous for two reasons: For one it simplifies\ndealing with the shared process latch, especially in signal handlers,\nbecause instead of having to check for MyProc, MyLatch can be used\nunconditionally. For another, a later patch that makes FEs/BE\ncommunication use latches, now can rely on the existence of a latch,\neven before having gone through InitProcess.\n\nDiscussion: 20140927191243.GD5423@alap3.anarazel.de\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/59f71a0d0b56b2df48db4bf1738aece5551f7a47\"\u003eAdd a default local latch for use in signal handlers.\u003c/a\u003e","bodyMessageHtml":"To do so, move InitializeLatchSupport() into the new common process\ninitialization functions, and add a new global variable MyLatch.\n\nMyLatch is usable as soon InitPostmasterChild() has been called\n(i.e. very early during startup). Initially it points to a process\nlocal latch that exists in all processes. InitProcess/InitAuxiliaryProcess\nthen replaces that local latch with PGPROC-\u0026gt;procLatch. During shutdown\nthe reverse happens.\n\nThis is primarily advantageous for two reasons: For one it simplifies\ndealing with the shared process latch, especially in signal handlers,\nbecause instead of having to check for MyProc, MyLatch can be used\nunconditionally. For another, a later patch that makes FEs/BE\ncommunication use latches, now can rely on the existence of a latch,\neven before having gone through InitProcess.\n\nDiscussion: 20140927191243.GD5423@alap3.anarazel.de","authors":[{"login":"anarazel","displayName":"Andres Freund","avatarUrl":"https://avatars.githubusercontent.com/u/1598211?v=4","path":"/anarazel","isGitHub":false}],"committerAttribution":false,"committer":{"login":"anarazel","displayName":"Andres Freund","avatarUrl":"https://avatars.githubusercontent.com/u/1598211?v=4","path":"/anarazel","isGitHub":false},"pusher":null,"pushedDate":null},{"oid":"85a2a8903f7e9151793308d0638621003aded5ae","url":"/postgres/postgres/commit/85a2a8903f7e9151793308d0638621003aded5ae","authoredDate":"2015-01-14T11:08:13.000-05:00","committedDate":"2015-01-14T11:08:13.000-05:00","shortMessage":"Allow CFLAGS from configure's environment to override automatic CFLAGS.","shortMessageMarkdown":null,"shortMessageMarkdownLink":"\u003ca data-pjax=\"true\" title=\"Allow CFLAGS from configure\u0026#39;s environment to override automatic CFLAGS.\n\nPreviously, configure would add any switches that it chose of its own\naccord to the end of the user-specified CFLAGS string. Since most\ncompilers process these left-to-right, this meant that configure\u0026#39;s choices\nwould override the user-specified flags in case of conflicts. We\u0026#39;d rather\nthat worked the other way around, so adjust the logic to put the user\u0026#39;s\nstring at the end not the beginning.\n\nThere does not seem to be a need for a similar behavior change for CPPFLAGS\nor LDFLAGS: in those, the earlier switches tend to win (think -I or -L\nbehavior) so putting the user\u0026#39;s string at the front is fine.\n\nBackpatch to 9.4 but not earlier. I\u0026#39;m not planning to run buildfarm member\nguar on older branches, and it seems a bit risky to change this behavior\nin long-stable branches.\" class=\"color-fg-default\" href=\"/postgres/postgres/commit/85a2a8903f7e9151793308d0638621003aded5ae\"\u003eAllow CFLAGS from configure's environment to override automatic CFLAGS.\u003c/a\u003e","bodyMessageHtml":"Previously, configure would add any switches that it chose of its own\naccord to the end of the user-specified CFLAGS string. Since most\ncompilers process these left-to-right, this meant that configure's choices\nwould override the user-specified flags in case of conflicts. We'd rather\nthat worked the other way around, so adjust the logic to put the user's\nstring at the end not the beginning.\n\nThere does not seem to be a need for a similar behavior change for CPPFLAGS\nor LDFLAGS: in those, the earlier switches tend to win (think -I or -L\nbehavior) so putting the user's string at the front is fine.\n\nBackpatch to 9.4 but not earlier. I'm not planning to run buildfarm member\nguar on older branches, and it seems a bit risky to change this behavior\nin long-stable branches.","authors":[{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false}],"committerAttribution":false,"committer":{"login":"tglsfdc","displayName":"Tom Lane","avatarUrl":"https://avatars.githubusercontent.com/u/8755309?v=4","path":"/tglsfdc","isGitHub":false},"pusher":null,"pushedDate":null}]}],"currentCommit":{"oid":"59367fdf97cc1875b053ebf87cd1e071dc7f3640"},"filters":{"since":null,"until":null,"author":null,"newPath":null,"originalBranch":null,"currentBlobPath":null,"pagination":{"startCursor":"59367fdf97cc1875b053ebf87cd1e071dc7f3640 0","endCursor":"59367fdf97cc1875b053ebf87cd1e071dc7f3640 34","hasNextPage":true,"hasPreviousPage":false}},"metadata":{"browsingRenameHistory":null,"showProfileHelp":false,"deferredDataUrl":"/postgres/postgres/commits/deferred_commit_data/59367fdf97cc1875b053ebf87cd1e071dc7f3640?original_branch=59367fdf97cc1875b053ebf87cd1e071dc7f3640","deferredContributorUrl":"/postgres/postgres/commits/deferred_commit_contributors","softNavToCommit":true},"repo":{"id":927442,"defaultBranch":"master","name":"postgres","ownerLogin":"postgres","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-09-21T11:35:45.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/177543?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"59367fdf97cc1875b053ebf87cd1e071dc7f3640","listCacheKey":"v0:1752611535.0","refType":"tree","currentOid":"59367fdf97cc1875b053ebf87cd1e071dc7f3640"},"timedOutMessage":""},"title":"Commits · postgres/postgres","appPayload":{"helpUrl":"https://docs.github.com"}}

Commits

Branch selector

User selector

Datepicker

Commit History

Commits on Jan 22, 2015

Commits on Jan 21, 2015

Commits on Jan 20, 2015

Commits on Jan 19, 2015

Commits on Jan 18, 2015

Commits on Jan 17, 2015

Commits on Jan 16, 2015

Commits on Jan 15, 2015

Commits on Jan 14, 2015

Pagination

0