== PostgreSQL Weekly News - May 3, 2020 == - Mailing list pgsql-announce
From | David Fetter |
---|---|
Subject | == PostgreSQL Weekly News - May 3, 2020 == |
Date | |
Msg-id | 20200503215658.GA21958@fetter.org Whole thread Raw |
List | pgsql-announce |
== PostgreSQL Weekly News - May 3, 2020 == == PostgreSQL Product News == pgAdmin4 4.21, a web- and native GUI control center for PostgreSQL, released. https://www.pgadmin.org/docs/pgadmin4/dev/release_notes_4_21.html InfluxDB fdw 0.2 released https://github.com/pgspider/influxdb_fdw pgbouncer 1.13.0, a connection pooler and more for PostgreSQL, released. https://pgbouncer.github.io/2020/04/pgbouncer-1-13-0 DBD::Pg 3.11.1, a Perl driver for PostgreSQL, released. https://github.com/bucardo/dbdpg griddb_fdw 1.2 released. https://github.com/pgspider/griddb_fdw == PostgreSQL Local == PGCon 2020 will take place online on May 26-29, 2020. https://www.pgcon.org/2020/ PostgresLondon 2020 will be July 7-8, 2020 with an optional training day on July 6. http://postgreslondon.org PG Day Russia will take place in Saint Petersburg on July 10, 2020. https://pgday.ru/en/2020/ FOSS4G 2020, will take place in Calgary, Alberta, Canada August 24-29 2020. the Call for Papers is currently open at https://2020.foss4g.org/speakers/ https://2020.foss4g.org/ PGDay Ukraine will take place September 5th, 2020 in Lviv at the Bank Hotel. https://pgday.org.ua/ pgDay Israel 2020 will take place on September 10, 2020 in Tel Aviv. http://pgday.org.il/ PGDay Austria will take place September 18, 2020 at Schloss Schoenbrunn (Apothekertrakt) in Vienna. The CfP is open through May 17, 2020. https://pgday.at/en/ == PostgreSQL in the News == Planet PostgreSQL: http://planet.postgresql.org/ PostgreSQL Weekly News is brought to you this week by David Fetter Submit news and announcements by Sunday at 3:00pm PST8PDT to david@fetter.org. == Applied Patches == Michaël Paquier pushed: - Fix some typos. Author: Justin Pryzby Discussion: https://postgr.es/m/20200408165653.GF2228@telsasoft.com https://git.postgresql.org/pg/commitdiff/641b76d9d12fd728f71f61e8a2b2bb2bedab021b - Add more TAP coverage for archive status with crash recovery of standbys. This part of the test was included originally in 4e87c48, but got reverted as of f9c1b8d because of timing issues in the test, where, after more analysis, we found that the standbys may not have recovered from the archives all the segments needed by the test. This stabilizes the test by making sure that standbys replay up to the position returned by pg_switch_wal(), meaning that all segments are recovered before the manual checkpoint that tests WAL segment recycling and its interactions with archive status files. Author: Jehan-Guillaume de Rorthais Reviewed-by: Kyotaro Horiguchi, Michael Paquier Discussion: https://postgr.es/m/20200424034248.GL33034@paquier.xyz https://git.postgresql.org/pg/commitdiff/ebf6de8692766177a36e7f5fb7545a52a0d5d881 - Fix check for conflicting SSL min/max protocol settings. Commit 79dfa8a has introduced a check to catch when the minimum protocol version was set higher than the maximum version, however an error was getting generated when both bounds are set even if they are able to work, causing a backend to not use a new SSL context but keep the old one. Author: Daniel Gustafsson Discussion: https://postgr.es/m/14BFD060-8C9D-43B4-897D-D5D9AA6FC92B@yesql.se https://git.postgresql.org/pg/commitdiff/e30b0b5cfaeb4f1f739f82c34c5ae2773852a088 - Rename connection parameters to control min/max SSL protocol version in libpq. The libpq parameters ssl{max|min}protocolversion are renamed to use underscores, to become ssl_{max|min}_protocol_version. The related environment variables still use the names introduced in commit ff8ca5f that added the feature. Per complaint from Peter Eisentraut (this was also mentioned by me in the original patch review but the issue got discarded). Author: Daniel Gustafsson Reviewed-by: Peter Eisentraut, Michael Paquier Discussion: https://postgr.es/m/b319e449-318d-e691-4997-1327e166fcc4@2ndquadrant.com https://git.postgresql.org/pg/commitdiff/401aad67045b2d467571b54abe229fdd115a228c - Improve various aspects of pg_rewind documentation. The pg_rewind docs currently assert that the state of the target's data directory after rewind is equivalent to the source's data directory. This clarifies the documentation to describe that the base state is further back in time and that the target's data directory will include the current state from the source of any copied blocks since the point of divergence. This commit also improves the section "How It Works": - Describe the update of the pg_control file. - Reorganize the list of files and directories ignored during the rewind. Author: James Coleman Discussion: https://postgr.es/m/CAAaqYe-sgqCos7MXF4XiY8rUPy3CEmaCY9EvfhX-DhPhPBF5_A@mail.gmail.com https://git.postgresql.org/pg/commitdiff/78bad97faa160c292ea91a0ea8f081907903ee79 Peter Eisentraut pushed: - pg_dump: Replace can't-happen error with assertion. https://git.postgresql.org/pg/commitdiff/d51f704fd8cbae03cd9b29fe103dd027d521ff04 - Add missing gettext triggers. Some translatable strings have been moved to scanner_yyerror(), so we need to add that, too. https://git.postgresql.org/pg/commitdiff/6baa17fbd1a76cd4056168fa718b7e7fd65748ec - Fix typo. from 927474ce1a2 https://git.postgresql.org/pg/commitdiff/fef819ac534d6efb9608fa0bbb93c6fe6c87440e - Update config.guess and config.sub. https://git.postgresql.org/pg/commitdiff/7462c1d78cd8bc1cfca352cef0e3e234b9d3b62b - Make SQL/JSON error code names match SQL standard. see also a00c53b0cb https://git.postgresql.org/pg/commitdiff/eb892102e01a2073df9250d65e33ec1ed21798df - Put new command-line options into alphabetical order in help output. https://git.postgresql.org/pg/commitdiff/3c800ae0b931c85f6ae949bc468fa3e51f9d5716 - Add NLS to pg_verifybackup. https://git.postgresql.org/pg/commitdiff/747134838870b842c5aae673065da7227517e5b5 - Add missing newlines in error messages. https://git.postgresql.org/pg/commitdiff/7dd777938bbeae8113f73849920a5b19bef723d9 Tom Lane pushed: - Doc: render π more nicely in PDF output. We need to select symbol font explicitly, or it comes out misaligned. Alexander Lakhin, Tom Lane Discussion: https://postgr.es/m/10598.1587928415@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/5ac24755485a5c1cc1cef084f08706246ee4f66c - Fix full text search to handle NOT above a phrase search correctly. Queries such as '!(foo<->bar)' failed to find matching rows when implemented as a GiST or GIN index search. That's because of failing to handle phrase searches as tri-valued when considering a query without any position information for the target tsvector. We can only say that the phrase operator might match, not that it does match; and therefore its NOT also might match. The previous coding incorrectly inverted the approximate phrase result to decide that there was certainly no match. To fix, we need to make TS_phrase_execute return a real ternary result, and then bubble that up accurately in TS_execute. As long as we have to do that anyway, we can simplify the baroque things TS_phrase_execute was doing internally to manage tri-valued searching with only a bool as explicit result. For now, I left the externally-visible result of TS_execute as a plain bool. There do not appear to be any outside callers that need to distinguish a three-way result, given that they passed in a flag saying what to do in the absence of position data. This might need to change someday, but we wouldn't want to back-patch such a change. Although tsginidx.c has its own TS_execute_ternary implementation for use at upper index levels, that sadly managed to get this case wrong as well :-(. Fixing it is a lot easier fortunately. Per bug #16388 from Charles Offenbacher. Back-patch to 9.6 where phrase search was introduced. Discussion: https://postgr.es/m/16388-98cffba38d0b7e6e@postgresql.org https://git.postgresql.org/pg/commitdiff/e81e5741a6c5d2000b70ea4d5aeceb7669fbccbf - Doc: re-re-revise markup for tables of functions. Make the markup a bit less ad-hoc. A function-table cell now contains several <para> units, and we label the ones that contain function signatures with role="func_signature". The CSS or FO stylesheets then key off of that to decide how to set the indentation. A very useful win from this approach is that we can have more than one signature entry per table cell, simplifying the documentation of closely-related operators and functions. This patch mostly just replaces the markup in the tables I converted so far. But I did alter a couple of places where multiple signatures were helpful. Discussion: https://postgr.es/m/5561.1587922854@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/4ad047a6eac356436b88681a9383a52cde2ffe9c - Doc: update sections 9.14 - 9.16 for new function table layout. Minor editorial changes in the first two sections; larger ones in the JSON section. https://git.postgresql.org/pg/commitdiff/30e82f1bc9888d7f84bdcad33f460dd8db752b08 - Doc: update sections 9.17 - 9.21 for new function table layout. With the usual quota of minor editorial changes. https://git.postgresql.org/pg/commitdiff/d66935448f41b1e0af11a939b6c5aaa9a619524a - Get rid of trailing semicolons in C macro definitions. Writing a trailing semicolon in a macro is almost never the right thing, because you almost always want to write a semicolon after each macro call instead. (Even if there was some reason to prefer not to, pgindent would probably make a hash of code formatted that way; so within PG the rule should basically be "don't do it".) Thus, if we have a semi inside the macro, the compiler sees "something;;". Much of the time the extra empty statement is harmless, but it could lead to mysterious syntax errors at call sites. In perhaps an overabundance of neatnik-ism, let's run around and get rid of the excess semicolons whereever possible. The only thing worse than a mysterious syntax error is a mysterious syntax error that only happens in the back branches; therefore, backpatch these changes where relevant, which is most of them because most of these mistakes are old. (The lack of reported problems shows that this is largely a hypothetical issue, but still, it could bite us in some future patch.) John Naylor and Tom Lane Discussion: https://postgr.es/m/CACPNZCs0qWTqJ2QUSGJ07B7uvAvzMb-KbG2q+oo+J3tsWN5cqw@mail.gmail.com https://git.postgresql.org/pg/commitdiff/0da06d9faf9e865c7d16a358a30ebe1a0014a709 Robert Haas pushed: - Fix bogus tar-file padding logic for standby.signal. When pg_basebackup -R is used, we inject standby.signal into the tar file for the main tablespace. The proper thing to do is to pad each file injected into the tar file out to a 512-byte boundary by appending nulls, but here the file is of length 0 and we add 511 zero bytes. Since 0 is already a multiple of 512, we should not add any zero bytes. Do that instead. Patch by me, reviewed by Tom Lane. Discussion: http://postgr.es/m/CA+TgmobWbfReO9-XFk8urR1K4wTNwqoHx_v56t7=T8KaiEoKNw@mail.gmail.com https://git.postgresql.org/pg/commitdiff/0278d3f79a30cd9ccd6646b8447b25c60ae7d01d Alexander Korotkov pushed: - Fix definition of pg_statio_all_tables view. pg_statio_all_tables view appears to have a wrong grouping. As the result numbers of toast index blocks read and hit were multiplied to the number of table indexes. This commit fixes the view definition. Backpatching this appears difficult. We don't have a mechanism to patch a system catalog of existing instances in minor upgrade. We can write a release notes instruction to do this manually. But per discussion this is probably not so critical bug for doing such an intrusive fix. Reported-by: Andrei Zubkov Discussion: https://postgr.es/m/CAPpHfdtMYkkNudLMG9G0dxX_B%3Dn5sfKzOyxxrvWYtSicaGW0Lw%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/ef11051bbe96ea2d06583e4b3b9daaa02657dd42 - Fix typo in comment. Reported-by: Oleg Bartunov https://git.postgresql.org/pg/commitdiff/9f87ae38eaffcc7f72c45bfeb79e09dd6e8c2f48 Peter Geoghegan pushed: - Add LP_DEAD deletion of a posting list tuple test. Make sure that we have test coverage of the posting list tuple path within _bt_xid_horizon(). Per off-list complaint from Andres Freund. https://git.postgresql.org/pg/commitdiff/52b164c5a00095a34685e66bf64b009578b9cfda - Remove redundant _bt_killitems() buffer check. _bt_getbuf() cannot return an invalid buffer. Oversight in commit 2ed5b87f96d. https://git.postgresql.org/pg/commitdiff/ab2343d4cb806c43e8a7269d38b3bdddea185213 - Fix AddressSanitizer use-after-scope complaint. XLogRegisterBufData() does not copy data pointed to by caller's pointer argument. Oversight in commit 0d861bbb702. Author: Peter Eisentraut Reported-By: Peter Eisentraut Discussion: https://postgr.es/m/21800dbe-a13e-22f7-d423-b81db9d249f5@2ndquadrant.com https://git.postgresql.org/pg/commitdiff/dd1f645cc8831f55591e466c56b3953b9d100993 - Add nbtree ScalarArrayOpExpr tests. Add test coverage for the nbtutils.c routines concerned with IndexScans that have native ScalarArrayOpExpr quals. The ScalarArrayOpExpr specialized mark and restore routines, and the "find extreme element" routine now have some test coverage. These functions are probably infrequently exercised by real world queries, so having some coverage seems like a good idea. The mark and restore routines were originally added by a bugfix that came several weeks after the first stable release of Postgres 9.2 (see commit 70bc5833195). https://git.postgresql.org/pg/commitdiff/d9c501da70b079a7138f8b339339169d5bd24143 - Fix bug in nbtree VACUUM "skip full scan" feature. Commit 857f9c36cda (which taught nbtree VACUUM to skip a scan of the index from btcleanup in situations where it doesn't seem worth it) made VACUUM maintain the oldest btpo.xact among all deleted pages for the index as a whole. It failed to handle all the details surrounding pages that are deleted by the current VACUUM operation correctly (though pages deleted by some previous VACUUM operation were processed correctly). The most immediate problem was that the special area of the page was examined without a buffer pin at one point. More fundamentally, the handling failed to account for the full range of _bt_pagedel() behaviors. For example, _bt_pagedel() sometimes deletes internal pages in passing, as part of deleting an entire subtree with btvacuumpage() caller's page as the leaf level page. The original leaf page passed to _bt_pagedel() might not be the page that it deletes first in cases where deletion can take place. It's unclear how disruptive this bug may have been, or what symptoms users might want to look out for. The issue was spotted during unrelated code review. To fix, push down the logic for maintaining the oldest btpo.xact to _bt_pagedel(). btvacuumpage() is now responsible for pages that were fully deleted by a previous VACUUM operation, while _bt_pagedel() is now responsible for pages that were deleted by the current VACUUM operation (this includes half-dead pages from a previous interrupted VACUUM operation that become fully deleted in _bt_pagedel()). Note that _bt_pagedel() should never encounter an existing deleted page. This commit theoretically breaks the ABI of a stable release by changing the signature of _bt_pagedel(). However, if any third party extension is actually affected by this, then it must already be completely broken (since there are numerous assumptions made in _bt_pagedel() that cannot be met outside of VACUUM). It seems highly unlikely that such an extension actually exists, in any case. Author: Peter Geoghegan Reviewed-By: Masahiko Sawada Discussion: https://postgr.es/m/CAH2-WzkrXBcMQWAYUJMFTTvzx_r4q=pYSjDe07JnUXhe+OZnJA@mail.gmail.com Backpatch: 11-, where the "skip full scan" feature was introduced. https://git.postgresql.org/pg/commitdiff/b0229f26da753688af586580707facc29616f97c - Fix undercounting in VACUUM VERBOSE output. The logic for determining how many nbtree pages in an index are deleted pages sometimes undercounted pages. Pages that were deleted by the current VACUUM operation (as opposed to some previous VACUUM operation whose deleted pages have yet to be reused) were sometimes overlooked. The final count is exposed to users through VACUUM VERBOSE's "%u index pages have been deleted" output. btvacuumpage() avoided double-counting when _bt_pagedel() deleted more than one page by assuming that only one page was deleted, and that the additional deleted pages would get picked up during a future call to btvacuumpage() by the same VACUUM operation. _bt_pagedel() can legitimately delete pages that the btvacuumscan() scan will not visit again, though, so that assumption was slightly faulty. Fix the accounting by teaching _bt_pagedel() about its caller's requirements. It now only reports on pages that it knows btvacuumscan() won't visit again (including the current btvacuumpage() page), so everything works out in the end. This bug has been around forever. Only backpatch to v11, though, to keep _bt_pagedel() is sync on the branches that have today's bugfix commit b0229f26da. Note that this commit changes the signature of _bt_pagedel(), just like commit b0229f26da. Author: Peter Geoghegan Reviewed-By: Masahiko Sawada Discussion: https://postgr.es/m/CAH2-WzkrXBcMQWAYUJMFTTvzx_r4q=pYSjDe07JnUXhe+OZnJA@mail.gmail.com Backpatch: 11- https://git.postgresql.org/pg/commitdiff/73a076b03f1cf0761329ace55ec3601d47f04075 - Reorder function prototypes for consistency. https://git.postgresql.org/pg/commitdiff/4e21f8b63354323897fa2ab778bfe003c44df75b - Clear up issue with FSM and oldest bpto.xact. On further reflection, code comments added by commit b0229f26 slightly misrepresented how we determine the oldest bpto.xact for the index. btvacuumpage() does not treat the bpto.xact of a page that it put in the FSM as a candidate to be the oldest deleted page (the delete-marked page that has the oldest bpto.xact XID among all pages encountered). The definition of a deleted page for the purposes of the bpto.xact calculation is different from the definition used by the bulk delete statistics. The bulk delete statistics don't distinguish between pages that were deleted by the current VACUUM, pages deleted by a previous VACUUM operation but not yet recyclable/reusable, and pages that are reusable (though reusable pages are counted separately). Backpatch: 11-, just like commit b0229f26. https://git.postgresql.org/pg/commitdiff/69cf853fe798c6d590db892d80677e45609e3395 - Refactor btvacuumpage(). Remove one of the arguments to btvacuumpage(), and give up on the idea that it's a recursive function. We now use the term "backtracking" to refer to the case where an earlier block must be visited to make sure no tuples that need to be removed were missed. Advertising btvacuumpage() as a recursive function was unhelpful. In reality the function always simulates recursion with a loop (it doesn't actually call itself). This wasn't just necessary as a precaution (per the comments mentioning tail recursion), though. There is no reliable natural limit on the number of times we can backtrack. There are important behavioral difference when "recursing"/backtracking, mostly related to page deletion. We don't perform page deletion when backtracking due to the extra complexity. And when we recurse, we're not performing a physical order scan anymore, so we expect fairly different conditions to hold for the page. Structuring the code like this makes it clearer how _bt_pagedel() cooperates with btvacuumpage() and btvacuumscan() (as established in commit b0229f26 and commit 73a076b0). Author: Peter Geoghegan Reviewed-By: Masahiko Sawada Discussion: https://postgr.es/m/CAH2-WzmRGMDWiLMcb+zagG9652PboNN4Gfcq1Gc_wJL6A716MA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/9dc72514179d85e81ea594130ff0eb655188f225 Álvaro Herrera pushed: - Check slot->restart_lsn validity in a few more places. Lack of these checks could cause visible misbehavior, including assertion failures. This was missed in commit c6550776394e, whereby restart_lsn becomes invalid when the size limit is exceeded. Also reword some existing error messages, and add errdetail(), so that the reported errors all match in spirit. Author: Kyotaro Horiguchi <horikyota.ntt@gmail.com> Reviewed-by: Álvaro Herrera <alvherre@alvh.no-ip.org> Discussion: https://postgr.es/m/20200408.093710.447591748588426656.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/d0abe78d84274cc203f3d117b8006dc2164ca31a - Fix checkpoint signalling. Checkpointer uses its MyLatch to wake up when a checkpoint request is received. But before commit c6550776394e the latch was not used for anything else, so the code could just go to sleep after each loop without rechecking the sleeping condition. That commit added a separate ResetLatch in its code path[1], which can cause a checkpoint to go unnoticed for potentially a long time. Fix by skipping sleep if any checkpoint flags are set. Also add a test to verify this; authored by Kyotaro Horiguchi. [1] CreateCheckPoint -> InvalidateObsoleteReplicationSlots -> ConditionVariableTimeSleep Report and diagnosis by Kyotaro Horiguchi. Co-authored-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com> Co-authored-by: Álvaro Herrera <alvherre@alvh.no-ip.org> Discussion: https://postgr.es/m/20200408.141956.891237856186513376.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/1816a1c6ffe46782eee9a16a974b4aa3f4b8457b Tomáš Vondra pushed: - Remove pg_xact entry from SLRU stats. The "pg_xact" entry was duplicate with "clog" and was added by mistake. Reported-by: Fujii Masao Discussion: https://postgr.es/m/20200119143707.gyinppnigokesjok@development https://git.postgresql.org/pg/commitdiff/2e08d314ed07363636a5da65f2a3abf7135f8ba8 - Simplify cost_incremental_sort a bit. Commit de0dc1a847 added code to cost_incremental_sort to handle varno 0. Explicitly removing the RelabelType is not really necessary, because the pull_varnos handles that just fine, which simplifies the code a bit. Author: Richard Guo Discussion: https://postgr.es/m/CAMbWs4_3_D2J5XxOuw68hvn0-gJsw9FXNSGcZka9aTymn9UJ8A%40mail.gmail.com Discussion: https://postgr.es/m/20200411214639.GK2228%40telsasoft.com https://git.postgresql.org/pg/commitdiff/60fbb4d762506c352c1af1229288a0753742cd95 - Remove pg_xact from pg_stat_reset_slru docs. This should have been included in 2e08d314ed. Reported-by: Fujii Masao Discussion: https://postgr.es/m/20200119143707.gyinppnigokesjok@development https://git.postgresql.org/pg/commitdiff/e685ca63ca4f5d6c9c27499d94fc71d2065b55d9 - Remove superfluous memset from pgstat_recv_resetslrucounter. The extra memset meant pg_stat_reset_slru() always reset all the entries even when reset of a single entry was requested, but the timestamp was left uninitialized. Reported-by: Atsushi Torikoshi Discussion: https://postgr.es/m/CACZ0uYFe16pjZxQYaTn53mspyM7dgMPYL3DJLjjPw69GMCC2Ow%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/d5d09692ea6b96944d24c44db1451f085b64ba09 Stephen Frost pushed: - Fix GSS client to non-GSS server connection. If the client is compiled with GSSAPI support and tries to start up GSS with the server, but the server is not compiled with GSSAPI support, we would mistakenly end up falling through to call ProcessStartupPacket with secure_done = true, but the client might then try to perform SSL, which the backend wouldn't understand and we'd end up failing the connection with: FATAL: unsupported frontend protocol 1234.5679: server supports 2.0 to 3.0 Fix by arranging to track ssl_done independently from gss_done, instead of trying to use the same boolean for both. Author: Andrew Gierth Discussion: https://postgr.es/m/87h82kzwqn.fsf@news-spur.riddles.org.uk Backpatch: 12-, where GSSAPI encryption was added. https://git.postgresql.org/pg/commitdiff/b68a560f8ebfc7eed679d09facdce5512a38c9c2 == Pending Patches == Robert Haas sent in a patch to improve server code to read files as part of a base backup. Zeng Wenjing sent in four more revisions of a patch to implement global temporary tables. Amit Kapila and Juan José Santamaría Flecha traded patches to fix a problem with compilation on Microsoft Visual Studio 2015/2017/2019. Dilip Kumar and Mahendra Singh traded patches to fix an infelicity between logical_work_mem and logical streaming of large in-progress transactions. Muhammad Usama sent in another revision of a patch to fix a bug that manifested as problems with transactions involving multiple foreign PostgreSQL servers. Jonah Harris sent in a patch to implement WITH ITERATIVE, a construct like WITH RECURSIVE which overwrites (or discards) the previous working set rather than keeping it as WITH RECURSIVE does. James Coleman sent in two more revisions of a patch to make ScalarArrayOpExpr for OR'd constant arrays more efficient. Masahiro Ikeda and Fujii Masao traded patches to ensure that wait events about the timeline history file are reported. Fujii Masao sent in another revision of a patch to make it possible to add and subtract NUMERICs from LSNs. Antonin Houska sent in a patch to remove a misplaced check for PVC_RECURSE_WINDOWFUNCS from make_partial_grouping_target in planner.c. Robert Haas sent in a patch to stop exporting basebackup.c's sendTablespace(), and merge two calls to sendDir() that are exactly the same except for the fifth argument in perform_base_backup(). Mark Dilger sent in another revision of a patch to add verify_heapam to the amcheck contrib module. Melanie Plageman and David Kimura traded patches to implement adaptive hashjoins. Andy Fan sent in a patch to remove the other_rels_list from make_rels_by_clause_joins for better semantic clearly. Kyotaro HORIGUCHI sent in another revision of a patch to implement the stats collector based on shared memory. Krasiyan Andreev sent in another revision of a patch to add RESPECT/IGNORE NULLS and FROM FIRST/LAST options. Julien Rouhaud sent in another revision of a patch to fix the WAL usage calculation. Victor Wagner sent in a patch to ensure that a path is properly quoted in Mkvcbuild.pm. James Coleman sent in a patch to summarize the trade-offs between simplehash and dynahash, improve the simplehash usage notes, and show simplehash method signatures. Victor Wagner sent in a patch to fix the way PL/Perl handles locales on Windows using a more modern idiom. Jonah Harris sent in a PoC patch to implement direct- and asynchronous I/O. Peter Eisentraut sent in a patch to unify the drop-by-OID functions. Cary Huang sent in another revision of a patch to document key management systems. Noah Misch sent in another revision of a patch to ensure that PGRES_COPY_OUT ends cleanly in pg_recvlogical. Justin Pryzby sent in another revision of a patch to ensure that the pg_ls_* functions show directories and shared filesets.
pgsql-announce by date: