== PostgreSQL Weekly News - August 12 2018 == - Mailing list pgsql-announce
From | David Fetter |
---|---|
Subject | == PostgreSQL Weekly News - August 12 2018 == |
Date | |
Msg-id | 20180812210606.GA13586@fetter.org Whole thread Raw |
List | pgsql-announce |
== PostgreSQL Weekly News - August 12 2018 == PostgreSQL security releases 10.5, 9.6.10, 9.5.14, 9.4.19, 9.3.24, and 11 Beta 3 are out. Please read the announcement below and upgrade as soon as possible. https://www.postgresql.org/about/news/1878/ == PostgreSQL Product News == PostGIS 2.5.0beta2 the industry standard geographic information system package for PostgreSQL, released. https://postgis.net/2018/08/11/postgis-2.5.0beta2/ pgmetrics 1.4, a command-line tool to extract and display metrics from a PostgreSQL server, released. https://pgmetrics.io/ == PostgreSQL Jobs for August == http://archives.postgresql.org/pgsql-jobs/2018-08/ == PostgreSQL Local == PostgreOpen Silicon Valley 2018 will be held in San Francisco on September 5-7, 2018. https://2018.postgresopen.org/ The Portland PostgreSQL Users Group will be holding a PGDay on September 10, 2018 in Portland, OR. The CfP is open at https://goo.gl/forms/E0CiUQGSZGMYwh922 https://pdx.postgresql.us/pdxpgday2018 PostgresConf South Africa 2018 will take place in Johannesburg on October 9, 2018 https://postgresconf.org/conferences/SouthAfrica2018 PostgreSQL Conference Europe 2018 will be held on October 23-26, 2018 at the Lisbon Marriott Hotel in Lisbon, Portugal. https://2017.pgconf.eu/ 2Q PGConf will be on December 4-5, 2018 in Chicago, IL. The CfP is open through August 27, 2018 at midnight Pacific Time at http://www.2qpgconf.com/#cfp http://www.2qpgconf.com/ PGConf.ASIA 2018 will take place on December 10-12, 2018 in Akihabara, Tokyo, Japan. http://www.pgconf.asia/EN/2018/ == 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 == Tom Lane pushed: - Ensure pg_dump_sort.c sorts null vs non-null namespace consistently. The original coding here (which is, I believe, my fault) supposed that it didn't need to concern itself with the possibility that one object of a given type-priority has a namespace while another doesn't. But that's not reliably true anymore, if it ever was; and if it does happen then it's possible that DOTypeNameCompare returns self-inconsistent comparison results. That leads to unspecified behavior in qsort() and a resultant weird output order from pg_dump. This should end up being only a cosmetic problem, because any ordering constraints that actually matter should be enforced by the later dependency-based sort. Still, it's a bug, so back-patch. Report and fix by Jacob Champion, though I editorialized on his patch to the extent of making NULL sort after non-NULL, for consistency with our usual sorting definitions. Discussion: https://postgr.es/m/CABAq_6Hw+V-Kj7PNfD5tgOaWT_-qaYkc+SRmJkPLeUjYXLdxwQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/5b5ed4756c9b3efff787f4921659a9d4d51726e5 - Fix pg_upgrade to handle event triggers in extensions correctly. pg_dump with --binary-upgrade must emit ALTER EXTENSION ADD commands for all objects that are members of extensions. It forgot to do so for event triggers, as per bug #15310 from Nick Barnes. Back-patch to 9.3 where event triggers were introduced. Haribabu Kommi Discussion: https://postgr.es/m/153360083872.1395.4593932457718151600@wrigleys.postgresql.org https://git.postgresql.org/pg/commitdiff/03838b804905e3fd26ec648c7df1505cf0d8e413 - Fix incorrect initialization of BackendActivityBuffer. Since commit c8e8b5a6e, this has been zeroed out using the wrong length. In practice the length would always be too small, leading to not zeroing the whole buffer rather than clobbering additional memory; and that's pretty harmless, both because shmem would likely start out as zeroes and because we'd reinitialize any given entry before use. Still, it's bogus, so fix it. Reported by Petru-Florin Mihancea (bug #15312) Discussion: https://postgr.es/m/153363913073.1303.6518849192351268091@wrigleys.postgresql.org https://git.postgresql.org/pg/commitdiff/41db97399d6b5492cb4538680531f81f4711b0f4 - Don't record FDW user mappings as members of extensions. CreateUserMapping has a recordDependencyOnCurrentExtension call that's been there since extensions were introduced (very possibly my fault). However, there's no support anywhere else for user mappings as members of extensions, nor are they listed as a possible member object type in the documentation. Nor does it really seem like a good idea for user mappings to belong to extensions when roles don't. Hence, remove the bogus call. (As we saw in bug #15310, the lack of any pg_dump support for this case ensures that any such membership record would silently disappear during pg_upgrade. So there's probably no need for us to do anything else about cleaning up after this mistake.) Discussion: https://postgr.es/m/27952.1533667213@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/9b7c56d6cba9d23318d98af58f0c1adc85869bbf - Match RelOptInfos by relids not pointer equality. Commit 1c2cb2744 added some code that tried to detect whether two RelOptInfos were the "same" rel by pointer comparison; but it turns out that inheritance_planner breaks that, through its shenanigans with copying some relations forward into new subproblems. Compare relid sets instead. Add a regression test case to exercise this area. Problem reported by Rushabh Lathia; diagnosis and fix by Amit Langote, modified a bit by me. Discussion: https://postgr.es/m/CAGPqQf3anJGj65bqAQ9edDr8gF7qig6_avRgwMT9MsZ19COUPw@mail.gmail.com https://git.postgresql.org/pg/commitdiff/11e22e486d8da6cef4d954c6f2952097df276fa7 - Remove unwanted "garbage cleanup" logic in Makefiles. GNUmakefile.in defined a macro "garbage" that seems to have been meant as a suitable target for automatic "rm -rf" treatment, but it isn't actually used anywhere (and indeed never was, AFAICT). Moreover, we have concluded that the Makefiles shouldn't take it upon themselves to remove files that aren't expected by-products of building, so that doing anything like that would be against project policy anyway. Hence, just remove the macro. Grepping around finds another violation of that policy in ecpg/preproc, so clean that up too. Daniel Gustafsson (ecpg change by me) Discussion: https://postgr.es/m/AFBEF63E-E19D-4EBB-9F08-4617CDC751ED@yesql.se https://git.postgresql.org/pg/commitdiff/1eee8d4994fe0b93ac02c613c1e955680e3a5ce3 - Remove bogus Assert in make_partitionedrel_pruneinfo(). This Assert thought that a given rel couldn't be both leaf and non-leaf, but it turns out that in some unusual plan trees that's wrong, so remove it. The lack of testing for cases like that is quite concerning --- there is little reason for confidence that there aren't other bugs in the area. But developing a stable test case seems rather difficult, and in any case we don't need this Assert. David Rowley Discussion: https://postgr.es/m/CAJGNTeOkdk=UVuMugmKL7M=owgt4nNr1wjxMg1F+mHsXyLCzFA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/59ef49d26d2f8724d0788fea0774f786a22ca63d - Fix failure to reset libpq's state fully between connection attempts. The logic in PQconnectPoll() did not take care to ensure that all of a PGconn's internal state variables were reset before trying a new connection attempt. If we got far enough in the connection sequence to have changed any of these variables, and then decided to try a new server address or server name, the new connection might be completed with some state that really only applied to the failed connection. While this has assorted bad consequences, the only one that is clearly a security issue is that password_needed didn't get reset, so that if the first server asked for a password and the second didn't, PQconnectionUsedPassword() would return an incorrect result. This could be leveraged by unprivileged users of dblink or postgres_fdw to allow them to use server-side login credentials that they should not be able to use. Other notable problems include the possibility of forcing a v2-protocol connection to a server capable of supporting v3, or overriding "sslmode=prefer" to cause a non-encrypted connection to a server that would have accepted an encrypted one. Those are certainly bugs but it's harder to paint them as security problems in themselves. However, forcing a v2-protocol connection could result in libpq having a wrong idea of the server's standard_conforming_strings setting, which opens the door to SQL-injection attacks. The extent to which that's actually a problem, given the prerequisite that the attacker needs control of the client's connection parameters, is unclear. These problems have existed for a long time, but became more easily exploitable in v10, both because it introduced easy ways to force libpq to abandon a connection attempt at a late stage and then try another one (rather than just giving up), and because it provided an easy way to specify multiple target hosts. Fix by rearranging PQconnectPoll's state machine to provide centralized places to reset state properly when moving to a new target host or when dropping and retrying a connection to the same host. Tom Lane, reviewed by Noah Misch. Our thanks to Andrew Krasichkov for finding and reporting the problem. Security: CVE-2018-10915 https://git.postgresql.org/pg/commitdiff/d1c6a14bacfa5fe7690e2c71b1626dbc87a57355 - Last-minute updates for release notes. Security: CVE-2018-10915, CVE-2018-10925 https://git.postgresql.org/pg/commitdiff/e0ee93053998b159e395deed7c42e02b1f921552 - Document need to clear MAKELEVEL when invoking PG build from a makefile. Since commit 3b8f6e75f, failure to do this would lead to submake-generated-headers not doing anything, so that references to generated or symlinked headers would fail. Previous to that, the omission only led to temp-install not doing anything, which apparently affects many fewer people (doesn't anybody use "make check" in their build rules??). Hence, backpatch to v11 but not further. Per complaints from Christoph Berg, Jakob Egger, and others. https://git.postgresql.org/pg/commitdiff/8694a1ce406d58873e7332fa725baeeff18f57b2 - Cosmetic cleanups in initdb.c. Commit bcbd94080 didn't bother to fix up a comment it had falsified. Also, const-ify choose_dsm_implementation(), since what it's returning is always a constant string; pickier compilers would warn about this. https://git.postgresql.org/pg/commitdiff/d4a900458e505092a8013eb77c9631d58c3c2a0a - Distinguish printf-like functions that support %m from those that don't. The elog/ereport family of functions certainly support the %m format spec, because they implement it "by hand". But elsewhere we have printf wrappers that might or might not allow it depending on whether the platform's printf does. (Most non-glibc versions don't, and notably, src/port/snprintf.c doesn't.) Hence, rather than using the gnu_printf format archetype interchangeably for all these functions, use it only for elog/ereport. This will allow us to get compiler warnings for mistakes like the ones fixed in commit a13b47a59, at least on platforms where printf doesn't take %m and gcc is correctly configured to know it. (Unfortunately, that won't happen on Linux, nor on macOS according to my testing. It remains to be seen what the buildfarm's gcc-on-Windows animals will think of this, but we may well have to rely on less-popular platforms to warn us about unportable code of this kind.) Discussion: https://postgr.es/m/2975.1526862605@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/3a60c8ff892a8242b907f44702bfd9f1ff877d45 - Produce compiler errors if errno is referenced inside elog/ereport calls. It's often unsafe to reference errno within an elog/ereport call, because there are a lot of sub-functions involved and they might not all preserve errno. (This is why we support the %m format spec: it works off a value of errno captured before we execute any potentially-unsafe functions in the arguments.) Therefore, we have a project policy not to use errno there. This patch adds a hack to cause an (admittedly obscure) compiler error for such unsafe usages. With the current code, the error will only be seen on Linux, macOS, and FreeBSD, but that should certainly be enough to catch mistakes in the buildfarm if they somehow get missed earlier. In addition, fix some places in src/common/exec.c that trip the error. I think these places are actually all safe, but it's simple enough to avoid the error by capturing errno manually, and doing so is good future-proofing in case these call sites get any more complicated. Thomas Munro (exec.c fixes by me) Discussion: https://postgr.es/m/2975.1526862605@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/a2a8acd15217b1e355c083a41da4dc5c7f35b30b - Fix wrong order of operations in inheritance_planner. When considering a partitioning parent rel, we should stop processing that subroot as soon as we've done adjust_appendrel_attrs and any securityQuals updates. The rest of this is unnecessary, and indeed adding duplicate subquery RTEs to the subroot is *wrong*. As the code stood, the children of that partition ended up with two sets of copied subquery RTEs, confusing matters greatly. Even more hilarity ensued if all of the children got excluded by constraint exclusion, so that the extra RTEs didn't make it back into the parent rtable. Per fuzz testing by Andreas Seltenreich. Back-patch to v11 where this got broken (by commit 0a480502b, it looks like). Discussion: https://postgr.es/m/87va8g7vq0.fsf@ansel.ydns.eu https://git.postgresql.org/pg/commitdiff/4a2994f055be9405a254b22de6cd2107a0f46563 Heikki Linnakangas pushed: - Don't run atexit callbacks in quickdie signal handlers. exit() is not async-signal safe. Even if the libc implementation is, 3rd party libraries might have installed unsafe atexit() callbacks. After receiving SIGQUIT, we really just want to exit as quickly as possible, so we don't really want to run the atexit() callbacks anyway. The original report by Jimmy Yih was a self-deadlock in startup_die(). However, this patch doesn't address that scenario; the signal handling while waiting for the startup packet is more complicated. But at least this alleviates similar problems in the SIGQUIT handlers, like that reported by Asim R P later in the same thread. Backpatch to 9.3 (all supported versions). Discussion: https://www.postgresql.org/message-id/CAOMx_OAuRUHiAuCg2YgicZLzPVv5d9_H4KrL_OFsFP%3DVPekigA%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/8e19a82640d3fa2350db146ec72916856dd02f0a - Spell "partitionwise" consistently. I'm not sure which spelling is better, "partitionwise" or "partition-wise", but everywhere else we spell it "partitionwise", so be consistent. Tatsuro Yamada reported the one in README, I found the other one with grep. Discussion: https://www.postgresql.org/message-id/d25ebf36-5a6d-8b2c-1ff3-d6f022a56000@lab.ntt.co.jp https://git.postgresql.org/pg/commitdiff/31380bc7c204e7cfa9c9e1c62947909e2b38577c Peter Geoghegan pushed: - Doc: Correct description of amcheck example query. The amcheck documentation incorrectly claimed that its example query verifies every catalog index in the database. In fact, the query only verifies the 10 largest indexes (as determined by pg_class.relpages). Adjust the description accordingly. Backpatch: 10-, where contrib/amcheck was introduced. https://git.postgresql.org/pg/commitdiff/313cbdc7f666a5af2c977463faf8a0eb06011b98 - Handle parallel index builds on mapped relations. Commit 9da0cc35284, which introduced parallel CREATE INDEX, failed to propagate relmapper.c backend local cache state to parallel worker processes. This could result in parallel index builds against mapped catalog relations where the leader process (participating as a worker) scans the new, pristine relfilenode, while worker processes scan the obsolescent relfilenode. When this happened, the final index structure was typically not consistent with the owning table's structure. The final index structure could contain entries formed from both heap relfilenodes. Only rebuilds on mapped catalog relations that occur as part of a VACUUM FULL or CLUSTER could become corrupt in practice, since their mapped relation relfilenode swap is what allows the inconsistency to arise. On master, fix the problem by propagating the required relmapper.c backend state as part of standard parallel initialization (Cf. commit 29d58fd3). On v11, simply disallow builds against mapped catalog relations by deeming them parallel unsafe. Author: Peter Geoghegan Reported-By: "death lock" Reviewed-By: Tom Lane, Amit Kapila Bug: #15309 Discussion: https://postgr.es/m/153329671686.1405.18298309097348420351@wrigleys.postgresql.org Backpatch: 11-, where parallel CREATE INDEX was introduced. https://git.postgresql.org/pg/commitdiff/4974d7f87e62a58e80c6524e49677cb25cc10e12 Michaël Paquier pushed: - Restrict access to reindex of shared catalogs for non-privileged users. A database owner running a database-level REINDEX has the possibility to also do the operation on shared system catalogs without being an owner of them, which allows him to block resources it should not have access to. The same goes for a schema owner. For example, PostgreSQL would go unresponsive and even block authentication if a lock is waited for pg_authid. This commit makes sure that a user running a REINDEX SYSTEM, DATABASE or SCHEMA only works on the following relations: * The user is a superuser * The user is the table owner * The user is the database/schema owner, only if the relation worked on is not shared. Robert has worded most the documentation changes, and I have coded the core part. Reported-by: Lloyd Albin, Jeremy Schneider Author: Michael Paquier, Robert Haas Reviewed by: Nathan Bossart, Kyotaro Horiguchi Discussion: https://postgr.es/m/152512087100.19803.12733865831237526317@wrigleys.postgresql.org Discussion: https://postgr.es/m/20180805211059.GA2185@paquier.xyz Backpatch-through: 11- as the current behavior has been around for a very long time and could be disruptive for already released branches. https://git.postgresql.org/pg/commitdiff/661dd23950f2e64646404605e99315d2379de0e5 - Improve TRUNCATE by avoiding early lock queue. A caller of TRUNCATE could previously queue for an access exclusive lock on a relation it may not have permission to truncate, potentially interfering with users authorized to work on it. This can be very intrusive depending on the lock attempted to be taken. For example, pg_authid could be blocked, preventing any authentication attempt to happen on a PostgreSQL instance. This commit fixes the case of TRUNCATE so as RangeVarGetRelidExtended is used with a callback doing the necessary ACL checks at an earlier stage, avoiding lock queuing issues, so as an immediate failure happens for unprivileged users instead of waiting on a lock that would not be taken. This is rather similar to the type of work done in cbe24a6 for CLUSTER, and the code of TRUNCATE is this time refactored so as there is no user-facing changes. As the commit for CLUSTER, no back-patch is done. Reported-by: Lloyd Albin, Jeremy Schneider Author: Michael Paquier Reviewed by: Nathan Bossart, Kyotaro Horiguchi Discussion: https://postgr.es/m/152512087100.19803.12733865831237526317@wrigleys.postgresql.org Discussion: https://postgr.es/m/20180806165816.GA19883@paquier.xyz https://git.postgresql.org/pg/commitdiff/f841ceb26d701e7f5f48190bf7290c400cba30a2 Bruce Momjian pushed: - docs: Only first instance of a PREPARE parameter sets data type. If the first reference to $1 is "($1 = col) or ($1 is null)", the data type can be determined, but not for "($1 is null) or ($1 = col)". This change documents this. Reported-by: Morgan Owens Discussion: https://postgr.es/m/153233728858.1404.15268121695358514937@wrigleys.postgresql.org Backpatch-through: 9.3 https://git.postgresql.org/pg/commitdiff/b284262e40424daa1c546ad76f365b31304d7944 Álvaro Herrera pushed: - Add RECURSIVE to documentation index. Author: Daniel Vérité <daniel@manitou-mail.org> Reviewed-by: Fabien COELHO <coelho@cri.ensmp.fr> Discussion: https://postgr.es/m/76d905d7-7eb7-4574-b6ec-a0ca3a1523c0@manitou-mail.org https://git.postgresql.org/pg/commitdiff/a5db27418e222a930cd39f48907e58a13837b331 Alexander Korotkov pushed: - Fix misspelled pg_trgm contrib name in PostgreSQL 11 release notes. Author: Masahiko Sawada Discussion: https://postgr.es/m/CAD21AoD0Eii9y9f3cQV9AsaUF%3DMmOrQuZLHqoobFp%3DmSKEx1CA%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/3abc5a67edfdc568ef1b68845b29c3aa5c03b852 - Add missing documentation for argument of amcostestimate(). 5262f7a4fc44 have introduced parallel index scan. In order to estimate the number of parallel workers, it adds extra argument to amcostestimate() index access method API function. However, this extra argument was missed in the documentation. This commit fixes that. Discussion: https://postgr.es/m/4128fdb4-8b63-2e05-38f6-3125f8c27263%40lab.ntt.co.jp Author: Tatsuro Yamada, Alexander Korotkov Backpatch-through: 10 https://git.postgresql.org/pg/commitdiff/e01d3477e7486b0bbc6591be67675962218245b2 - Fix typo in SP-GiST error message. Error message didn't match the actual check. Fix that. Compression of leaf SP-GiST values was introduced in 11. So, backpatch. Discussion: https://postgr.es/m/20180810.100742.15469435.horiguchi.kyotaro%40lab.ntt.co.jp Author: Kyotaro Horiguchi Backpatch-through: 11 https://git.postgresql.org/pg/commitdiff/2b13702d5c7e879bdd0587a80d5cfaeb5206f4ea Andrew Dunstan pushed: - Revert changes in execMain.c from commit 16828d5c0273b. These changes were put in at some stage of the development process, but are unnecessary and should not have made it into the final patch. Mea culpa. Per gripe from Andreas Freund Backpatch to REL_11_STABLE https://git.postgresql.org/pg/commitdiff/5c047fd709ae274d5d543b250c70cc2b15e4fe65 == Pending Patches == Etsuro Fujita sent in another revision of a patch to prevent doing partition-wise joins when whole-row vars are involved. Laurenz Albe sent in another revision of a patch to use pgwin32_open in frontend code on Windows. Jeremy Evans, Peter Eisentraut, and Amit Langote traded patches to improve error messages for CREATE OR REPLACE PROCEDURE. Andrey Borodin sent in another revision of a patch to implement GiST VACUUM. Paul Guo sent in another revision of a patch to create a new session for postmaster in pg_ctl by calling setsid(). Jeremy Evans sent in a patch to have hint use DROP ROUTINE instead of DROP FUNCTION when erroring out of CREATE PROCEDURE. Amit Langote sent in a patch to fix a bug regarding partition column option inheritance. Don Seiler sent in a patch to add application_name to the Port struct to enable displaying the application name in "connection authorized" log messages. Andrey V. Lepikhov sent in another revision of a patch to implement retail IndexTuple deletion. Amit Langote sent in two more revisions of a patch to add some partition tree inspection functions. Marina Polyakova sent in another revision of a patch to add error handling and retrying of transactions with serialization/deadlock failures in pgbench. Peter Eisentraut sent in a patch to remove dead foreign key optimization code and apply RI trigger skipping tests also for DELETE. Asim Praveen sent in a patch to mark a shared buffer as read-write or read-only using mprotect(). The idea is to catch violations of shared buffer access rules. Amit Langote sent in a patch to add a test case that would actually use run-time pruning. This would help prevent regressions of the recent patch to match RelOptInfos by relids instead of pointer equality. Ashutosh Bapat sent in two more revisions of a patch to implement the TupleTableSlot abstraction. Kyotaro HORIGUCHI sent in a patch to fix foreign update on remote partitioned tables. Simon Muller sent in another revision of a patch to add an option to COPY's 'text' format to output a header. Tom Lane sent in a PoC patch to implement a function trust mechanism. Pavel Stěhule sent in five more revisions of a patch to implement schema variables. Peter Eisentraut sent in a patch to remove the ancient pre-dlopen dynloader code. Michaël Paquier sent in a patch to make autovacuum more aggressive to remove orphaned temp tables. Andrew Dunstan sent in two more revisions of a patch to add an option to build pgbench using ppoll() for larger connection counts. David G. Johnston sent in another revision of a patch to clarify the fact that PostgreSQL does not yet consider CHECK constraints as capable of seeing other tables. Peter Eisentraut sent in a patch to ensure that pgbench returns non-zero if during the run, any error has occurred. Kyotaro HORIGUCHI sent in a patch to implement a new New pg_ctl subcommand: "logrotate". Ivan Kartyshov and Alexander Korotkov traded patches to add a new lock mode: ACCESS EXCLUSIVE LOCAL, then use same to help deal with situations where a long-running transaction could hold up replication. Tom Lane sent in a patch to libpq to improve the handling of multiple addresses in connection information by looking up each hostname as needed, and proceeding on to the next hostname if it gets a DNS lookup failure. David Rowley sent in a patch to refrain from destroying the original partdesc on rel invalidation. Kyotaro HORIGUCHI sent in a patch to fix a dubious message related to the SP-GiST compress method. Fabien COELHO sent in another revision of a patch to handle overflows better in pgbench. Thomas Munro sent in a patch to use portable close-on-exec syscalls, fix a deadlock in AbsorbAllFsyncRequests(), handle postmaster death and check-for-interrupts, and handle EMSGSIZE on macOS. Alexandra Ryzhevich sent in another revision of a patch to make it possible for non-superusers to create extensions. Tom Lane sent in another revision of a patch to check the /etc/localtime symlink for time zone names. Kyotaro HORIGUCHI sent in a patch to fix some infelicities in NLS handling. Daniel Vérité sent in another revision of a patch to implement a CSV output format for psql. Tom Lane sent in a patch to ensure that libpq appends to errors instead of overwriting them. David Rowley sent in a patch to fix a partition missing from subplans error. Fabien COELHO sent in another revision of a patch to pgbench to clean up doCustom. Tomáš Vondra and Andres Freund traded patches to fix an infelicity between logical decoding / rewrite map and maxAllocatedDescs. Nico Williams sent in a patch to keep rpath et. al. from xml2-config --libs. Noah Misch sent in a patch to help make postmaster.pid less of a breaking dependency. Edmund Horner sent in a patch to add a new plan type: TidRangeScan, which, as implied by the name, speeds up tid scans.
pgsql-announce by date: