Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lBcfk-0003sB-4E for pgsql-announce@arkaria.postgresql.org; Mon, 15 Feb 2021 12:08:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lBcfj-00037o-3u for pgsql-announce@arkaria.postgresql.org; Mon, 15 Feb 2021 12:08:11 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lBcfi-00035J-3g for pgsql-announce@lists.postgresql.org; Mon, 15 Feb 2021 12:08:10 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lBcfd-0005Ha-Cm for pgsql-announce@lists.postgresql.org; Mon, 15 Feb 2021 12:08:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Message-ID:Date:Reply-To:From:To:Subject: MIME-Version:Content-Type:Sender:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=BAWp/HN5R5NhWvWL3BL2eQ7hvlykJ3u+6geqRQTUATg=; b=FL5Ppt3zanO5S8vRvDg3VVA6H1 ukGZ38jxytlSEle1dZ1lF9zoXyvRuL/4LsFNJhil9bUC5CC1vMU1ASzb+XgAQzOfsWdCDgJzGIofm 7oIA3sEfnKoyZDJunXY4dr3ek1dVs+Wlrpl8OdGdn5QcJaLmp8Nu0XCow46l1zDsVfRMQlcZtNQcH tJsg3BIzz/axJovvg2+3vKzSSzND7OCM48zS7VCZm+LUKBYfpgBaA1x7zdqUhST0jgg0oZeOkWAKy mtTVSsL30/HerZx9vMEIpTK4qY9dvDJXDaviQb0yzi3uWhFUmc6g3cYGeEKzsost2zdLsy1+ycH9n CGzJJ6lA==; Received: from wrigleys.postgresql.org ([2a02:c0:301:0:ffff::34]) by mahout.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lBcfc-0001xR-Pb for pgsql-announce@lists.postgresql.org; Mon, 15 Feb 2021 12:08:05 +0000 Received: from localhost ([127.0.0.1] helo=wrigleys.postgresql.org) by wrigleys.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lBcfa-0000xr-Bo for pgsql-announce@lists.postgresql.org; Mon, 15 Feb 2021 12:08:02 +0000 Content-Type: multipart/mixed; boundary="===============3855055157543084883==" MIME-Version: 1.0 Subject: PostgreSQL Weekly News - February 14, 2021 To: PostgreSQL Announce From: PWN via PostgreSQL Announce Reply-To: david@fetter.org Date: Mon, 15 Feb 2021 12:07:27 +0000 Message-ID: <161339084784.3457.18035230229949486250@wrigleys.postgresql.org> X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-pglister-tags: pwn X-pglister-tagsig: d5f4563b061d6c6f4eb8f20151fa974210d7f5a676e88f3e33c4710b7e70518a List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --===============3855055157543084883== Content-Type: multipart/alternative; boundary="===============4642656674590390216==" MIME-Version: 1.0 --===============4642656674590390216== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable # PostgreSQL Weekly News - February 14, 2021 Security releases 13.2, 12.6, 11.11, 10.16, 9.6.21, and 9.5.25 are out. Ple= ase upgrade ASAP. 9.2.25 is the last release of PostgreSQL 9.5. https://www.postgresql.org/about/news/postgresql-132-126-1111-1016-9621-and= -9525-released-2165/ Person of the week: https://postgresql.life/post/hubert_lubaczewski/ # PostgreSQL Product News check_pgbackrest 2.0, a Nagios-compatible monitor for pgBackRest, released. https://github.com/dalibo/check_pgbackrest/releases AGE 0.3.0, a PostgreSQL extension that provides graph database functionalit= y, released. https://github.com/apache/incubator-age/releases/tag/v0.3.0.rc0-incubating # PostgreSQL Jobs for February [https://archives.postgresql.org/pgsql-jobs/2021-02/](https://archives.post= gresql.org/pgsql-jobs/2021-02/) # PostgreSQL in the News Planet PostgreSQL: [https://planet.postgresql.org/](https://planet.postgres= ql.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.o= rg. # Applied Patches Heikki Linnakangas pushed: - Fix permission checks on constraint violation errors on partitions. If a cross-partition UPDATE violates a constraint on the target partition, and= the columns in the new partition are in different physical order than in the parent, the error message can reveal columns that the user does not have SELECT permission on. A similar bug was fixed earlier in commit 804b6b6db= 4. The cause of the bug is that the callers of the ExecBuildSlotValueDescription() function got confused when constructing t= he list of modified columns. If the tuple was routed from a parent, we conve= rted the tuple to the parent's format, but the list of modified columns was gr= abbed directly from the child's RTE entry. ExecUpdateLockMode() had a similar issue. That lead to confusion on which columns are key columns, leading to wrong tuple lock being taken on tables referenced by foreign keys, when a= row is updated with INSERT ON CONFLICT UPDATE. A new isolation test is added = for that corner case. With this patch, the ri_RangeTableIndex field is no lo= nger set for partitions that don't have an entry in the range table. Previousl= y, it was set to the RTE entry of the parent relation, but that was confusing. NOTE: This modifies the ResultRelInfo struct, replacing the ri_PartitionR= oot field with ri_RootResultRelInfo. That's a bit risky to backpatch, because= it breaks any extensions accessing the field. The change that ri_RangeTableI= ndex is not set for partitions could potentially break extensions, too. The ResultRelInfos are visible to FDWs at least, and this patch required small changes to postgres_fdw. Nevertheless, this seem like the least bad optio= n. I don't think these fields widely used in extensions; I don't think there a= re FDWs out there that uses the FDW "direct update" API, other than postgres= _fdw. If there is, you will get a compilation error, so hopefully it is caught quickly. Backpatch to 11, where support for both cross-partition UPDATEs= , and unique indexes on partitioned tables, were added. Reviewed-by: Amit Lang= ote Security: CVE-2021-3393 [https://git.postgresql.org/pg/commitdiff/6214e2b2280462cbc3aa1986e350e16= 7651b3905](https://git.postgresql.org/pg/commitdiff/6214e2b2280462cbc3aa198= 6e350e167651b3905) Tom Lane pushed: - Fix mishandling of column-level SELECT privileges for join aliases. scanNSItemForColumn, expandNSItemAttrs, and ExpandSingleTable would pass = the wrong RTE to markVarForSelectPriv when dealing with a join ParseNamespace= Item: they'd pass the join RTE, when what we need to mark is the base table tha= t the join column came from. The end result was to not fill the base table's selectedCols bitmap correctly, resulting in an understatement of the set = of columns that are read by the query. The executor would still insist on t= here being at least one selectable column; but with a correctly crafted query,= a user having SELECT privilege on just one column of a table would nonethel= ess be allowed to read all its columns. To fix, make markRTEForSelectPriv fe= tch the correct RTE for itself, ignoring the possibly-mismatched RTE passed b= y the caller. Later, we'll get rid of some now-unused RTE arguments, but that = risks API breaks so we won't do it in released branches. This problem was introduced by commit 9ce77d75c, so back-patch to v13 where that came in. Thanks to Sven Klemm for reporting the problem. Security: CVE-2021-20229 [https://git.postgresql.org/pg/commitdiff/c028faf2a62ce476c8d689a33b12471= dc98b80f2](https://git.postgresql.org/pg/commitdiff/c028faf2a62ce476c8d689a= 33b12471dc98b80f2) - Remove no-longer-used RTE argument of markVarForSelectPriv(). In the wake= of c028faf2a, this is no longer needed. I left it out of that patch since t= he API change would be undesirable in a released branch; but there's no reas= on not to do it in HEAD. [https://git.postgresql.org/pg/commitdiff/d4c746516b8b4eb0bf993e3729ccc04= d1febdb1e](https://git.postgresql.org/pg/commitdiff/d4c746516b8b4eb0bf993e3= 729ccc04d1febdb1e) - Simplify jsonfuncs.c code by using strtoint() not strtol(). Explicitly te= sting for INT_MIN and INT_MAX isn't particularly good style; it's tedious and m= ay draw useless compiler warnings on machines where int and long are the same width. We invented strtoint() precisely for this usage, so use that inst= ead. While here, remove gratuitous variations in the way the tests for did-strtoint-succeed were spelled. Also, avoid attempting to negate INT_= MIN; that would probably work given that the result is implicitly cast to uint= 32, but I think it's nominally undefined behavior. Per gripe from Ranier Vil= ela, though this isn't his proposed patch. Discussion: [https://postgr.es/m/CAEudQAqge3QfzoBRhe59QrB_5g+NmQUj2QpzqZ9Nc7QepXGAEw@= mail.gmail.com](https://postgr.es/m/CAEudQAqge3QfzoBRhe59QrB_5g+NmQUj2QpzqZ= 9Nc7QepXGAEw@mail.gmail.com) [https://git.postgresql.org/pg/commitdiff/69036aafb9a8f425fb489125b5075ba= 7719d20d0](https://git.postgresql.org/pg/commitdiff/69036aafb9a8f425fb48912= 5b5075ba7719d20d0) - Remove dead code in ECPGconnect(), and improve documentation. The stanza = in ECPGconnect() that intended to allow specification of a Unix socket direc= tory path in place of a port has never executed since it was committed, nearly= two decades ago; the preceding strrchr() already found the last colon so there cannot be another one. The lack of complaints about that is doubtless re= lated to the fact that no user-facing documentation suggested it was possible. Rather than try to fix that up, let's just remove the unreachable code, a= nd instead document the way that does work to write a socket directory path, namely specifying it as a "host" option. In support of that, make another pass at clarifying the syntax documentation for ECPG connection targets, particularly documenting which things are parsed as identifiers and where= to use double quotes. Rearrange some things that seemed poorly ordered, and = fix a couple of minor doc errors. Kyotaro Horiguchi, per gripe from Shenhao Wa= ng (docs changes mostly by me) Discussion: [https://postgr.es/m/ae52a416bbbf459c96bab30b3038e06c@G08CNEXMBPEKD06.g08= .fujitsu.local](https://postgr.es/m/ae52a416bbbf459c96bab30b3038e06c@G08CNE= XMBPEKD06.g08.fujitsu.local) [https://git.postgresql.org/pg/commitdiff/62535cae9723afc48173ba1be65f1c7= 491813fc2](https://git.postgresql.org/pg/commitdiff/62535cae9723afc48173ba1= be65f1c7491813fc2) - Avoid divide-by-zero in regex_selectivity() with long fixed prefix. Given= a regex pattern with a very long fixed prefix (approaching 500 characters),= the result of pow(FIXED_CHAR_SEL, fixed_prefix_len) can underflow to zero. Typically the preceding selectivity calculation would have underflowed as well, so that we compute 0/0 and get NaN. In released branches this leads= to an assertion failure later on. That doesn't happen in HEAD, for reasons I= 've not explored yet, but it's surely still a bug. To fix, just skip the div= ision when the pow() result is zero, so that we'll (most likely) return a zero selectivity estimate. In the edge cases where "sel" didn't yet underflow, perhaps this isn't desirable, but I'm not sure that the case is worth spe= nding a lot of effort on. The results of regex_selectivity_sub() are barely wo= rth the electrons they're written on anyway :-( Per report from Alexander La= khin. Back-patch to all supported versions. Discussion: [https://postgr.es/m/6de0a0c3-ada9-cd0c-3e4e-2fa9964b41e3@gmail.com](http= s://postgr.es/m/6de0a0c3-ada9-cd0c-3e4e-2fa9964b41e3@gmail.com) [https://git.postgresql.org/pg/commitdiff/ae4867ec749671dadb5eb49a1158ded= 9b8ca0b29](https://git.postgresql.org/pg/commitdiff/ae4867ec749671dadb5eb49= a1158ded9b8ca0b29) - Tweak compiler version cutoff for no_sanitize("alignment") support. Build= farm results show that gcc up through 7.x produces annoying warnings for this construct (and, presumably, wouldn't do the right thing anyway). clang s= eems okay with the cutoff we have, though. Discussion: [https://postgr.es/m/CAPpHfdsne3%3DT%3DfMNU45PtxdhSL_J2PjLTeS8rwKnJzUR4YN= d4w%40mail.gmail.com](https://postgr.es/m/CAPpHfdsne3%3DT%3DfMNU45PtxdhSL_J= 2PjLTeS8rwKnJzUR4YNd4w%40mail.gmail.com) Discussion: [https://postgr.es/m/475514.1612745257%40sss.pgh.pa.us](https://postgr.es= /m/475514.1612745257%40sss.pgh.pa.us) [https://git.postgresql.org/pg/commitdiff/ad2ad698ac16f36a9784bc98f312cf5= b5266c6aa](https://git.postgresql.org/pg/commitdiff/ad2ad698ac16f36a9784bc9= 8f312cf5b5266c6aa) Peter Geoghegan pushed: - Correct pgstattuple B-Tree page comments. [https://git.postgresql.org/pg/commitdiff/5fd590021d268190e4c8f377370c7e7= f1e7d9229](https://git.postgresql.org/pg/commitdiff/5fd590021d268190e4c8f37= 7370c7e7f1e7d9229) - Fix obsolete FSM remarks in nbtree README. The free space map has used a dedicated relation fork rather than shared memory segments for over a dec= ade. [https://git.postgresql.org/pg/commitdiff/31c7fb41e26bf03dae231c7165a1a16= 388b2e366](https://git.postgresql.org/pg/commitdiff/31c7fb41e26bf03dae231c7= 165a1a16388b2e366) - Remove obsolete IndexBulkDeleteResult stats field. The pages_removed fiel= d is no longer used for anything. It hasn't been possible for an index to physically shrink since old-style VACUUM FULL was removed by commit 0a469= c87. [https://git.postgresql.org/pg/commitdiff/3063eb17593c3ad498ce4e89db33588= 62ea2dbb6](https://git.postgresql.org/pg/commitdiff/3063eb17593c3ad498ce4e8= 9db3358862ea2dbb6) Micha=C3=ABl Paquier pushed: - Add option PROCESS_TOAST to VACUUM. This option controls if toast tables associated with a relation are vacuumed or not when running a manual VACU= UM. It was already possible to trigger a manual VACUUM on a toast relation wi= thout processing its main relation, but a manual vacuum on a main relation alwa= ys forced a vacuum on its toast table. This is useful in scenarios where the level of bloat or transaction age of the main and toast relations differs= a lot. This option is an extension of the existing VACOPT_SKIPTOAST that w= as used by autovacuum to control if toast relations should be skipped or not. This internal flag is renamed to VACOPT_PROCESS_TOAST for consistency wit= h the new option. A new option switch, called --no-process-toast, is added to vacuumdb. Author: Nathan Bossart Reviewed-by: Kirk Jamison, Michael Paqu= ier, Justin Pryzby Discussion: [https://postgr.es/m/BA8951E9-1524-48C5-94AF-73B1F0D7857F@amazon.com](htt= ps://postgr.es/m/BA8951E9-1524-48C5-94AF-73B1F0D7857F@amazon.com) [https://git.postgresql.org/pg/commitdiff/7cb3048f38e26b39dd5fd412ed8a498= 1b6809b35](https://git.postgresql.org/pg/commitdiff/7cb3048f38e26b39dd5fd41= 2ed8a4981b6809b35) - Preserve pg_attribute.attstattarget across REINDEX CONCURRENTLY. For an i= ndex, attstattarget can be updated using ALTER INDEX SET STATISTICS. This data= was lost on the new index after REINDEX CONCURRENTLY. The update of this fie= ld is done when the old and new indexes are swapped to make the fix back-patcha= ble. Another approach we could look after in the long-term is to change index_create() to pass the wanted values of attstattarget when creating t= he new relation, but, as this would cause an ABI breakage this can be done o= nly on HEAD. Reported-by: Ronan Dunklau Author: Michael Paquier Reviewed-by: Ronan Dunklau, Tomas Vondra Discussion: [https://postgr.es/m/16628084.uLZWGnKmhe@laptop-ronand](https://postgr.es= /m/16628084.uLZWGnKmhe@laptop-ronand) Backpatch-through: 12 [https://git.postgresql.org/pg/commitdiff/bd12080980297dbc8ae926a3bd5b2ef= 9cc47932b](https://git.postgresql.org/pg/commitdiff/bd12080980297dbc8ae926a= 3bd5b2ef9cc47932b) - Simplify code related to compilation of SSL and OpenSSL. This commit makes more generic some comments and code related to the compilation with OpenS= SL and SSL in general to ease the addition of more SSL implementations in the future. In libpq, some OpenSSL-only code is moved under USE_OPENSSL and = not USE_SSL. While on it, make a comment more consistent in libpq-fe.h. Aut= hor: Daniel Gustafsson Discussion: [https://postgr.es/m/5382CB4A-9CF3-4145-BA46-C802615935E0@yesql.se](https= ://postgr.es/m/5382CB4A-9CF3-4145-BA46-C802615935E0@yesql.se) [https://git.postgresql.org/pg/commitdiff/092b785fad3de3f81355a4b2420aa39= a1bc0ccd5](https://git.postgresql.org/pg/commitdiff/092b785fad3de3f81355a4b= 2420aa39a1bc0ccd5) - Fix ORDER BY clause in new regression test of REINDEX CONCURRENTLY. Overs= ight in bd12080. Reported-by: Justin Pryzby Discussion: [https://postgr.es/m/20210210065805.GG20012@telsasoft.com](https://postgr= .es/m/20210210065805.GG20012@telsasoft.com) Backpatch-through: 12 [https://git.postgresql.org/pg/commitdiff/4f4726005082c07c004506a1ddfca29= 896375206](https://git.postgresql.org/pg/commitdiff/4f4726005082c07c004506a= 1ddfca29896375206) - Fix copy-paste error with SHA256 digest length in checksum_helper.c. Issue introduced by 87ae969, noticed while working on the area. While on it, f= ix some grammar in the surrounding static assertions. [https://git.postgresql.org/pg/commitdiff/42d74e0c443760af91875af99d2655c= 9eb4c40df](https://git.postgresql.org/pg/commitdiff/42d74e0c443760af91875af= 99d2655c9eb4c40df) - doc: Mention NO DEPENDS ON EXTENSION in its supported ALTER commands. This grammar flavor has been added by 5fc7039. Author: Ian Lawrence Barwick Discussion: [https://postgr.es/m/CAB8KJ=3Dii6JScodxkA6-DO8bjatsMYU3OcewnL0mdN9geR+tTa= w@mail.gmail.com](https://postgr.es/m/CAB8KJ=3Dii6JScodxkA6-DO8bjatsMYU3Oce= wnL0mdN9geR+tTaw@mail.gmail.com) Backpatch-through: 13 [https://git.postgresql.org/pg/commitdiff/8063d0f6f56e53edd991f53aadc8cb7= f8d3fdd8f](https://git.postgresql.org/pg/commitdiff/8063d0f6f56e53edd991f53= aadc8cb7f8d3fdd8f) Fujii Masao pushed: - Display the time when the process started waiting for the lock, in pg_loc= ks. This commit adds new column "waitstart" into pg_locks view. This column reports the time when the server process started waiting for the lock if = the lock is not held. This information is useful, for example, when examining= the amount of time to wait on a lock by subtracting "waitstart" in pg_locks f= rom the current time, and identify the lock that the processes are waiting for very long. This feature uses the current time obtained for the deadlock timeout timer as "waitstart" (i.e., the time when this process started wa= iting for the lock). Since getting the current time newly can cause overhead, we reuse the already-obtained time to avoid that overhead. Note that "waits= tart" is updated without holding the lock table's partition lock, to avoid the overhead by additional lock acquisition. This can cause "waitstart" in pg_locks to become NULL for a very short period of time after the wait st= arted even though "granted" is false. This is OK in practice because we can ass= ume that users are likely to look at "waitstart" when waiting for the lock fo= r a long time. Bump catalog version. Author: Atsushi Torikoshi Reviewed-by:= Ian Lawrence Barwick, Robert Haas, Justin Pryzby, Fujii Masao Discussion: [https://postgr.es/m/a96013dc51cdc56b2a2b84fa8a16a993@oss.nttdata.com](ht= tps://postgr.es/m/a96013dc51cdc56b2a2b84fa8a16a993@oss.nttdata.com) [https://git.postgresql.org/pg/commitdiff/3b733fcd04195399db56f73f0616b4f= 5c6828e18](https://git.postgresql.org/pg/commitdiff/3b733fcd04195399db56f73= f0616b4f5c6828e18) - Revert "Display the time when the process started waiting for the lock, in pg_locks.". This reverts commit 3b733fcd04195399db56f73f0616b4f5c6828e18.= Per buildfarm members prion and rorqual. [https://git.postgresql.org/pg/commitdiff/890d2182a2c425aaa80f9bf9f7116d3= 1e0c6538e](https://git.postgresql.org/pg/commitdiff/890d2182a2c425aaa80f9bf= 9f7116d31e0c6538e) Amit Kapila pushed: - Make pg_replication_origin_drop safe against concurrent drops. Currently,= we get the origin id from the name and then drop the origin by taking ExclusiveLock on ReplicationOriginRelationId. So, two concurrent sessions= can get the id from the name at the same time and then when they try to drop = the origin, one of the sessions will get the either "tuple concurrently delet= ed" or "cache lookup failed for replication origin ..". To prevent this race condition we do the entire operation under lock. This obviates the need f= or replorigin_drop() API and we have removed it so if any extension authors = are using it they need to instead use replorigin_drop_by_name. See it's usage= in pg_replication_origin_drop(). Author: Peter Smith Reviewed-by: Amit Kapi= la, Euler Taveira, Petr Jelinek, and Alvaro Herrera Discussion: [https://www.postgresql.org/message-id/CAHut%2BPuW8DWV5fskkMWWMqzt-x7RPcN= QOtJQBp6SdwyRghCk7A%40mail.gmail.com](https://www.postgresql.org/message-id= /CAHut%2BPuW8DWV5fskkMWWMqzt-x7RPcNQOtJQBp6SdwyRghCk7A%40mail.gmail.com) [https://git.postgresql.org/pg/commitdiff/cd142e032ebd50ec7974b3633269477= c2c72f1cc](https://git.postgresql.org/pg/commitdiff/cd142e032ebd50ec7974b36= 33269477c2c72f1cc) - Allow multiple xacts during table sync in logical replication. For the in= itial table data synchronization in logical replication, we use a single transa= ction to copy the entire table and then synchronize the position in the stream = with the main apply worker. There are multiple downsides of this approach: (a= ) We have to perform the entire copy operation again if there is any error (ne= twork breakdown, error in the database operation, etc.) while we synchronize th= e WAL position between tablesync worker and apply worker; this will be onerous especially for large copies, (b) Using a single transaction in the synchronization-phase (where we can receive WAL from multiple transaction= s) will have the risk of exceeding the CID limit, (c) The slot will hold the= WAL till the entire sync is complete because we never commit till the end. T= his patch solves all the above downsides by allowing multiple transactions du= ring the tablesync phase. The initial copy is done in a single transaction and after that, we commit each transaction as we receive. To allow recovery a= fter any error or crash, we use a permanent slot and origin to track the progr= ess. The slot and origin will be removed once we finish the synchronization of= the table. We also remove slot and origin of tablesync workers if the user performs DROP SUBSCRIPTION .. or ALTER SUBSCRIPTION .. REFERESH and some = of the table syncs are still not finished. The commands ALTER SUBSCRIPTION = ... REFRESH PUBLICATION and ALTER SUBSCRIPTION ... SET PUBLICATION ... with refresh option as true cannot be executed inside a transaction block beca= use they can now drop the slots for which we have no provision to rollback. = This will also open up the path for logical replication of 2PC transactions on= the subscriber side. Previously, we can't do that because of the requirement = of maintaining a single transaction in tablesync workers. Bump catalog vers= ion due to change of state in the catalog (pg_subscription_rel). Author: Pet= er Smith, Amit Kapila, and Takamichi Osumi Reviewed-by: Ajin Cherian, Petr Jelinek, Hou Zhijie and Amit Kapila Discussion: [https://postgr.es/m/CAA4eK1KHJxaZS-fod-0fey=3D0tq3=3DGkn4ho=3D8N4-5HWiCf= u0H1A@mail.gmail.com](https://postgr.es/m/CAA4eK1KHJxaZS-fod-0fey=3D0tq3=3D= Gkn4ho=3D8N4-5HWiCfu0H1A@mail.gmail.com) [https://git.postgresql.org/pg/commitdiff/ce0fdbfe9722867b7fad4d3ede9b6a6= bfc51fb4e](https://git.postgresql.org/pg/commitdiff/ce0fdbfe9722867b7fad4d3= ede9b6a6bfc51fb4e) - Fix Subscription test added by commit ce0fdbfe97. We want to test the var= iants of Alter Subscription that are not allowed in the transaction block but f= or that, we don't need to create a subscription that tries to connect to the publisher. As such, there is no problem with this test but it is good to = allow such tests to run with wal_level =3D minimal and max_wal_senders =3D 0 so= as to keep them consistent with other tests. Reported by buildfarm. Author: A= mit Kapila Reviewed-by: Ajin Cherian Discussion: [https://postgr.es/m/CAA4eK1Lw0V+e1JPGHDq=3D+hVACv=3D14H8sR+2eJ1k3PEgwKmU= -jQ@mail.gmail.com](https://postgr.es/m/CAA4eK1Lw0V+e1JPGHDq=3D+hVACv=3D14H= 8sR+2eJ1k3PEgwKmU-jQ@mail.gmail.com) [https://git.postgresql.org/pg/commitdiff/c8b21b0378141948a2dc0ddde6f5740= 7321787ea](https://git.postgresql.org/pg/commitdiff/c8b21b0378141948a2dc0dd= de6f57407321787ea) Peter Eisentraut pushed: - Fix lack of message pluralization. [https://git.postgresql.org/pg/commitdiff/4ad5611055c8381d6a9b54fc1183841= 8a1f14bc9](https://git.postgresql.org/pg/commitdiff/4ad5611055c8381d6a9b54f= c11838418a1f14bc9) - pg_dump: Add const decorations. Add const decorations to the *info argume= nts of the dump* functions, to clarify that they don't modify that argument. = Many other nearby functions modify their arguments, so this can help clarify t= hese different APIs a bit. Discussion: [https://www.postgresql.org/message-id/flat/012d3030-9a2c-99a1-ed2d-98897= 8b5632f%40enterprisedb.com](https://www.postgresql.org/message-id/flat/012d= 3030-9a2c-99a1-ed2d-988978b5632f%40enterprisedb.com) [https://git.postgresql.org/pg/commitdiff/64990081504661ff5c04dbf20cc4252= be66ab149](https://git.postgresql.org/pg/commitdiff/64990081504661ff5c04dbf= 20cc4252be66ab149) - Add test case for abbrev(cidr). This will in particular add some good test coverage for inet_cidr_ntop.c, which was previously completely uncovered. Reviewed-by: Tom Lane Discussion: [https://www.postgresql.org/message-id/flat/cb0c4662-4596-dab4-7f64-839c5= e8582c8%40enterprisedb.com](https://www.postgresql.org/message-id/flat/cb0c= 4662-4596-dab4-7f64-839c5e8582c8%40enterprisedb.com) [https://git.postgresql.org/pg/commitdiff/69273c8f88d7e6295ed7b38114969fa= 3ea03eff2](https://git.postgresql.org/pg/commitdiff/69273c8f88d7e6295ed7b38= 114969fa3ea03eff2) Magnus Hagander pushed: - Remove extra Success message at the end of initdb. This was accidentally included in e09155bd62 and is redundant with the lines right above it. Reported-By: Peter Eisentraut Discussion: [https://postgr.es/m/455845d1-441d-cc40-d2a7-b47f4e422489@2ndquadrant.com= ](https://postgr.es/m/455845d1-441d-cc40-d2a7-b47f4e422489@2ndquadrant.com) [https://git.postgresql.org/pg/commitdiff/e7f42914854926c2afbb89b9cd0e381= fd90766be](https://git.postgresql.org/pg/commitdiff/e7f42914854926c2afbb89b= 9cd0e381fd90766be) Alexander Korotkov pushed: - pg_attribute_no_sanitize_alignment() macro. Modern gcc and clang compilers offer alignment sanitizers, which help to detect pointer misalignment. However, our codebase already contains x86-specific crc32 computation cod= e, which uses unalignment access. Thankfully, those compilers also support = the attribute, which disables alignment sanitizers at the function level. Th= is commit adds pg_attribute_no_sanitize_alignment(), which wraps this attrib= ute, and applies it to pg_comp_crc32c_sse42() function. Discussion: [https://postgr.es/m/CAPpHfdsne3%3DT%3DfMNU45PtxdhSL_J2PjLTeS8rwKnJzUR4YN= d4w%40mail.gmail.com](https://postgr.es/m/CAPpHfdsne3%3DT%3DfMNU45PtxdhSL_J= 2PjLTeS8rwKnJzUR4YNd4w%40mail.gmail.com) Discussion: [https://postgr.es/m/475514.1612745257%40sss.pgh.pa.us](https://postgr.es= /m/475514.1612745257%40sss.pgh.pa.us) Author: Alexander Korotkov, revised by Tom Lane Reviewed-by: Tom Lane [https://git.postgresql.org/pg/commitdiff/993bdb9f935a751935a03c80d308571= 50ba2b645](https://git.postgresql.org/pg/commitdiff/993bdb9f935a751935a03c8= 0d30857150ba2b645) Bruce Momjian pushed: - README/C-comment: document GiST's NSN value. [https://git.postgresql.org/pg/commitdiff/8facf1ea00b7a0c08c755a0392212b8= 3e04ae28a](https://git.postgresql.org/pg/commitdiff/8facf1ea00b7a0c08c755a0= 392212b83e04ae28a) # Pending Patches Tang Haiying sent in another revision of a patch to support tab completion = for upper case inputs in psql when using set/reset/show. Pavel Borisov sent in three revisions of a patch to make amcheck check the UNIQUE constraint for btree indexes. Vigneshwaran C sent in three more revisions of a patch to make the libpq connection parameter "target_session_attrs" support new values: read-only, primary, standby, and prefer-standby. Iwata Aya sent in two more revisions of a patch to add tracing to libpq. Amit Langote, Greg Nancarrow, and Hou Zhijie traded patches to implement parallel execution for INSERT ... SELECT. Scott Mead sent in another revision of a patch to make autovacuum dynamical= ly decrease cost_limit and cost_delay. Matthias van de Meent and Josef =C5=A0im=C3=A1nek traded patches to enhance= COPY progress reporting. Heikki Linnakangas and John Naylor traded patches to speed up utf-8 checking with SIMD instructions. Mark Rofail and Joel Jacobson traded patches to implement foreign key array= s. Amit Langote sent in another revision of a patch to set ForeignScanState.resultRelInfo and initialize result relation information lazily. Peter Eisentraut sent in a patch to add routine usage information schema ta= bles. Heikki Linnakangas sent in another revision of a patch to add a 'noError' argument to encoding conversion functions, and use same to do COPY FROM enc= oding conversion/verification in larger chunks. Alexey Bashtanov sent in a patch to add a bit_xor aggregate. Daniel Gustafsson sent in another revision of a patch to make it possible t= o use NSS for libpq's TLS implementation. Jacob Champion sent in two more revisions of a patch to log authenticated identity from all auth backends. Kyotaro HORIGUCHI and Dilip Kumar traded patches to provide a new interface= to get the recovery pause status. Tom Lane sent in a patch to disallow some bug-prone characters from being u= sed as the names of custom GUCs. Nathan Bossart sent in a patch to broaden the scope of the heap-only tuples (HOT) optimization be more discerning about updating only indexes where the indexed value actually changed. Before this, HOT could only work on complet= ely unindexed columns, as the alternative was to update all indexes regardless = of whether anything in them had actually changed. Peter Geoghegan sent in three revisions of a patch to use 64-bit XIDs in de= leted nbtree pages, and add pages_newly_deleted to VACUUM VERBOSE. Takayuki Tsunakawa sent in another revision of a patch to speed up COPY FROM when the target table has remote partitions. Justin Pryzby sent in another revision of a patch to make CLUSTER work on partitioned tables. Stephen Frost sent in another revision of a patch to include the I/O timing if track_io_timing is enabled in logs for autovacuum and autoanalyze along with the read rate and the dirty rate for autoanalyze. Peter Smith sent in two more revisions of a patch to implement logical deco= ding of two-phase transactions. Andy Fan sent in a patch to Introduce notnullattrs field in RelOptInfo to indicate which attributes are not null in current query. Etsuro Fujita sent in two more revisions of a patch to implement synchronous append on PostgreSQL FDW nodes. Ranier Vilela and Micha=C3=ABl Paquier traded patches to fix a possible out= -of-bounds access in pg_cryptohash_final by adding a length argument to same. Dilip Kumar, Robert Haas, and Justin Pryzby traded patches to add custom compression methods for tables. Michail Nikolaev sent in another revision of a patch to add full support for index LP_DEAD hint bits on standbys. Justin Pryzby sent in a patch to touch up the documentation for 14. Peter Eisentraut sent in another revision of a patch to implement SQL stand= ard function bodies for SQL functions. Peter Eisentraut sent in a patch to add tests for the bytea LIKE operator. Fujii Masao sent in a patch to intended to fix a bug that manifested as ERR= OR: invalid spinlock number: 0 by moving the assignment of written_lsn to a pla= ce where it can use pg_atomic_read_u64(&WalRcv->writtenUpto) better. Tom=C3=A1=C5=A1 Vondra sent in another revision of a patch to implement BRI= N multi-range indexes. Anastasia Lubennikova sent in another revision of a patch to intended to fi= x a bug that manifested as pg_upgrade fails with non-standard ACL. Melanie Plageman sent in another revision of a patch to update comments and phase naming for parallel hash joins. Noah Misch sent in two more revisions of a patch to dump public schema owne= rship and security labels, and dump COMMENT ON SCHEMA public. Zhihong Yu and Ranier Vilela traded patches to fix a possible dereference n= ull return in src/backend/replication/logical/reorderbuffer.c. Tom Lane sent in two revisions of a patch to invent rainbow arcs for regexe= s and short-circuit character-by-character scanning when matching a sub-NFA that = is like `"."` or `".*"` or variants of that, ie it will match any sequence of = some number of characters. Thomas Munro sent in a patch to try to hold onto buffers between WAL record= s, which if successful amortizes the cost of looking up, pinning, locking, unlocking and unpinning said buffers over multiple executions. Erik Rijkers and Amit Kapila traded patches to fix a recent breakage of log= ical replication. Bharath Rupireddy sent in a patch to emove unnecessary wrapping of MakeTupleTableSlot in MakeSingleTupleTableSlot. Li Japin sent in another revision of a patch to implement ALTER SUBSCRIPTIO= N ... ADD/DROP PUBLICATION. Noah Misch sent in a patch to add a public schema default ACL. --===============4642656674590390216== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable PostgreSQL Weekly News - February 14, 2021
 

PostgreSQL Weekly News - February 14, 2021

PostgreSQL Weekly News - February 14, 2021

Security releases 13.2, 12.6, 11.11, 10.16,= 9.6.21, and 9.5.25 are out. Please upgrade ASAP. 9.2.25 is the last release of PostgreSQL 9.5. https://www.postgresql.org/about/news/postgresql-132-126-1111-1016-9621-and= -9525-released-2165/

Person of the week: https://postgresql.life= /post/hubert_lubaczewski/

PostgreSQL Product News

check_pgbackrest 2.0, a Nagios-compatible m= onitor for pgBackRest, released. https://github.com/dalibo/check_pgbackrest/releases

AGE 0.3.0, a PostgreSQL extension that prov= ides graph database functionality, released. https://github.com/apache/incubator-age/releases/tag/v0.3.0.rc0-incubating<= /p>

PostgreSQL Jobs for February

h= ttps://archives.postgresql.org/pgsql-jobs/2021-02/

PostgreSQL in the News

Planet PostgreSQL: htt= ps://planet.postgresql.org/

PostgreSQL Weekly News is brought to you th= is week by David Fetter

Submit news and announcements by Sunday at = 3:00pm PST8PDT to david@fetter.org.

Applied Patches

Heikki Linnakangas pushed:

  • Fix permission = checks on constraint violation errors on partitions. If a cross-partition UPDATE violates a constraint on the target partition, and= the columns in the new partition are in different physical order than in the parent, the error message can reveal columns that the user does not have SELECT permission on. A similar bug was fixed earlier in commit 804b6b6db= 4. The cause of the bug is that the callers of the ExecBuildSlotValueDescription() function got confused when constructing t= he list of modified columns. If the tuple was routed from a parent, we conve= rted the tuple to the parent's format, but the list of modified columns was gr= abbed directly from the child's RTE entry. ExecUpdateLockMode() had a similar issue. That lead to confusion on which columns are key columns, leading to wrong tuple lock being taken on tables referenced by foreign keys, when a= row is updated with INSERT ON CONFLICT UPDATE. A new isolation test is added = for that corner case. With this patch, the ri_RangeTableIndex field is no lo= nger set for partitions that don't have an entry in the range table. Previousl= y, it was set to the RTE entry of the parent relation, but that was confusing. NOTE: This modifies the ResultRelInfo struct, replacing the ri_PartitionR= oot field with ri_RootResultRelInfo. That's a bit risky to backpatch, because= it breaks any extensions accessing the field. The change that ri_RangeTableI= ndex is not set for partitions could potentially break extensions, too. The ResultRelInfos are visible to FDWs at least, and this patch required small changes to postgres_fdw. Nevertheless, this seem like the least bad optio= n. I don't think these fields widely used in extensions; I don't think there a= re FDWs out there that uses the FDW "direct update" API, other than postgres= _fdw. If there is, you will get a compilation error, so hopefully it is caught quickly. Backpatch to 11, where support for both cross-partition UPDATEs= , and unique indexes on partitioned tables, were added. Reviewed-by: Amit Lang= ote Security: CVE-2021-3393 h= ttps://git.postgresql.org/pg/commitdiff/6214e2b2280462cbc3aa1986e350e167651= b3905

Tom Lane pushed:

  • Fix mishandling of column-level SELECT priv= ileges for join aliases. scanNSItemForColumn, expandNSItemAttrs, and ExpandSingleTable would pass = the wrong RTE to markVarForSelectPriv when dealing with a join ParseNamespace= Item: they'd pass the join RTE, when what we need to mark is the base table tha= t the join column came from. The end result was to not fill the base table's selectedCols bitmap correctly, resulting in an understatement of the set = of columns that are read by the query. The executor would still insist on t= here being at least one selectable column; but with a correctly crafted query,= a user having SELECT privilege on just one column of a table would nonethel= ess be allowed to read all its columns. To fix, make markRTEForSelectPriv fe= tch the correct RTE for itself, ignoring the possibly-mismatched RTE passed b= y the caller. Later, we'll get rid of some now-unused RTE arguments, but that = risks API breaks so we won't do it in released branches. This problem was introduced by commit 9ce77d75c, so back-patch to v13 where that came in. Thanks to Sven Klemm for reporting the problem. Security: CVE-2021-20229 h= ttps://git.postgresql.org/pg/commitdiff/c028faf2a62ce476c8d689a33b12471dc98= b80f2

  • Remove no-longer-used RTE argument of markV= arForSelectPriv(). In the wake of c028faf2a, this is no longer needed. I left it out of that patch since t= he API change would be undesirable in a released branch; but there's no reas= on not to do it in HEAD. h= ttps://git.postgresql.org/pg/commitdiff/d4c746516b8b4eb0bf993e3729ccc04d1fe= bdb1e

  • Simplify jsonfuncs.c code by using strtoint= () not strtol(). Explicitly testing for INT_MIN and INT_MAX isn't particularly good style; it's tedious and m= ay draw useless compiler warnings on machines where int and long are the same width. We invented strtoint() precisely for this usage, so use that inst= ead. While here, remove gratuitous variations in the way the tests for did-strtoint-succeed were spelled. Also, avoid attempting to negate INT_= MIN; that would probably work given that the result is implicitly cast to uint= 32, but I think it's nominally undefined behavior. Per gripe from Ranier Vil= ela, though this isn't his proposed patch. Discussion: https://postgr.es/m/CAEudQAqge3QfzoBRhe59QrB_5g+NmQUj2QpzqZ9Nc7QepXGAEw= @mail.gmail.com htt= ps://git.postgresql.org/pg/commitdiff/69036aafb9a8f425fb489125b5075ba7719d2= 0d0

  • Remove dead code in ECPGconnect(), and impr= ove documentation. The stanza in ECPGconnect() that intended to allow specification of a Unix socket direc= tory path in place of a port has never executed since it was committed, nearly= two decades ago; the preceding strrchr() already found the last colon so there cannot be another one. The lack of complaints about that is doubtless re= lated to the fact that no user-facing documentation suggested it was possible. Rather than try to fix that up, let's just remove the unreachable code, a= nd instead document the way that does work to write a socket directory path, namely specifying it as a "host" option. In support of that, make another pass at clarifying the syntax documentation for ECPG connection targets, particularly documenting which things are parsed as identifiers and where= to use double quotes. Rearrange some things that seemed poorly ordered, and = fix a couple of minor doc errors. Kyotaro Horiguchi, per gripe from Shenhao Wa= ng (docs changes mostly by me) Discussion: https://postgr.es/m/ae52a416bbbf459c96bab30b3038e06c@G08CNEXMBPEKD06.g0= 8.fujitsu.local htt= ps://git.postgresql.org/pg/commitdiff/62535cae9723afc48173ba1be65f1c7491813= fc2

  • Avoid divide-by-zero in regex_selectivity()= with long fixed prefix. Given a regex pattern with a very long fixed prefix (approaching 500 characters),= the result of pow(FIXED_CHAR_SEL, fixed_prefix_len) can underflow to zero. Typically the preceding selectivity calculation would have underflowed as well, so that we compute 0/0 and get NaN. In released branches this leads= to an assertion failure later on. That doesn't happen in HEAD, for reasons I= 've not explored yet, but it's surely still a bug. To fix, just skip the div= ision when the pow() result is zero, so that we'll (most likely) return a zero selectivity estimate. In the edge cases where "sel" didn't yet underflow, perhaps this isn't desirable, but I'm not sure that the case is worth spe= nding a lot of effort on. The results of regex_selectivity_sub() are barely wo= rth the electrons they're written on anyway :-( Per report from Alexander La= khin. Back-patch to all supported versions. Discussion: https://postgr.e= s/m/6de0a0c3-ada9-cd0c-3e4e-2fa9964b41e3@gmail.com htt= ps://git.postgresql.org/pg/commitdiff/ae4867ec749671dadb5eb49a1158ded9b8ca0= b29

  • Tweak compiler version cutoff for no_saniti= ze("alignment") support. Buildfarm results show that gcc up through 7.x produces annoying warnings for this construct (and, presumably, wouldn't do the right thing anyway). clang s= eems okay with the cutoff we have, though. Discussion: https://postgr.es/m/CAPpHfdsne3%3DT%3DfMNU45PtxdhSL_J2PjLTeS8rwKn= JzUR4YNd4w%40mail.gmail.com Discussion: https://postgr.es/m/475514.= 1612745257%40sss.pgh.pa.us htt= ps://git.postgresql.org/pg/commitdiff/ad2ad698ac16f36a9784bc98f312cf5b5266c= 6aa

Peter Geoghegan pushed:

Micha=C3=ABl Paquier pushed:

Fujii Masao pushed:

  • Display the time when the process started w= aiting for the lock, in pg_locks. This commit adds new column "waitstart" into pg_locks view. This column reports the time when the server process started waiting for the lock if = the lock is not held. This information is useful, for example, when examining= the amount of time to wait on a lock by subtracting "waitstart" in pg_locks f= rom the current time, and identify the lock that the processes are waiting for very long. This feature uses the current time obtained for the deadlock timeout timer as "waitstart" (i.e., the time when this process started wa= iting for the lock). Since getting the current time newly can cause overhead, we reuse the already-obtained time to avoid that overhead. Note that "waits= tart" is updated without holding the lock table's partition lock, to avoid the overhead by additional lock acquisition. This can cause "waitstart" in pg_locks to become NULL for a very short period of time after the wait st= arted even though "granted" is false. This is OK in practice because we can ass= ume that users are likely to look at "waitstart" when waiting for the lock fo= r a long time. Bump catalog version. Author: Atsushi Torikoshi Reviewed-by:= Ian Lawrence Barwick, Robert Haas, Justin Pryzby, Fujii Masao Discussion: https://postgr= .es/m/a96013dc51cdc56b2a2b84fa8a16a993@oss.nttdata.com htt= ps://git.postgresql.org/pg/commitdiff/3b733fcd04195399db56f73f0616b4f5c6828= e18

  • Revert "Display the time when the process s= tarted waiting for the lock, in pg_locks.". This reverts commit 3b733fcd04195399db56f73f0616b4f5c6828e18.= Per buildfarm members prion and rorqual. h= ttps://git.postgresql.org/pg/commitdiff/890d2182a2c425aaa80f9bf9f7116d31e0c= 6538e

Amit Kapila pushed:

  • Make pg_replication_origin_drop safe agains= t concurrent drops. Currently, we get the origin id from the name and then drop the origin by taking ExclusiveLock on ReplicationOriginRelationId. So, two concurrent sessions= can get the id from the name at the same time and then when they try to drop = the origin, one of the sessions will get the either "tuple concurrently delet= ed" or "cache lookup failed for replication origin ..". To prevent this race condition we do the entire operation under lock. This obviates the need f= or replorigin_drop() API and we have removed it so if any extension authors = are using it they need to instead use replorigin_drop_by_name. See it's usage= in pg_replication_origin_drop(). Author: Peter Smith Reviewed-by: Amit Kapi= la, Euler Taveira, Petr Jelinek, and Alvaro Herrera Discussion: https://www.postgresql.org/message-id/CAHut%2BPuW= 8DWV5fskkMWWMqzt-x7RPcNQOtJQBp6SdwyRghCk7A%40mail.gmail.com htt= ps://git.postgresql.org/pg/commitdiff/cd142e032ebd50ec7974b3633269477c2c72f= 1cc

  • Allow multiple xacts during table sync in l= ogical replication. For the initial table data synchronization in logical replication, we use a single transa= ction to copy the entire table and then synchronize the position in the stream = with the main apply worker. There are multiple downsides of this approach: (a= ) We have to perform the entire copy operation again if there is any error (ne= twork breakdown, error in the database operation, etc.) while we synchronize th= e WAL position between tablesync worker and apply worker; this will be onerous especially for large copies, (b) Using a single transaction in the synchronization-phase (where we can receive WAL from multiple transaction= s) will have the risk of exceeding the CID limit, (c) The slot will hold the= WAL till the entire sync is complete because we never commit till the end. T= his patch solves all the above downsides by allowing multiple transactions du= ring the tablesync phase. The initial copy is done in a single transaction and after that, we commit each transaction as we receive. To allow recovery a= fter any error or crash, we use a permanent slot and origin to track the progr= ess. The slot and origin will be removed once we finish the synchronization of= the table. We also remove slot and origin of tablesync workers if the user performs DROP SUBSCRIPTION .. or ALTER SUBSCRIPTION .. REFERESH and some = of the table syncs are still not finished. The commands ALTER SUBSCRIPTION = ... REFRESH PUBLICATION and ALTER SUBSCRIPTION ... SET PUBLICATION ... with refresh option as true cannot be executed inside a transaction block beca= use they can now drop the slots for which we have no provision to rollback. = This will also open up the path for logical replication of 2PC transactions on= the subscriber side. Previously, we can't do that because of the requirement = of maintaining a single transaction in tablesync workers. Bump catalog vers= ion due to change of state in the catalog (pg_subscription_rel). Author: Pet= er Smith, Amit Kapila, and Takamichi Osumi Reviewed-by: Ajin Cherian, Petr Jelinek, Hou Zhijie and Amit Kapila Discussion: https://postgr.es/m/CAA4eK1KHJxaZS-fod-0fey=3D0tq3=3DGkn4ho=3D8N4= -5HWiCfu0H1A@mail.gmail.com htt= ps://git.postgresql.org/pg/commitdiff/ce0fdbfe9722867b7fad4d3ede9b6a6bfc51f= b4e

  • Fix Subscription test added by commit ce0fd= bfe97. We want to test the variants of Alter Subscription that are not allowed in the transaction block but f= or that, we don't need to create a subscription that tries to connect to the publisher. As such, there is no problem with this test but it is good to = allow such tests to run with wal_level =3D minimal and max_wal_senders =3D 0 so= as to keep them consistent with other tests. Reported by buildfarm. Author: A= mit Kapila Reviewed-by: Ajin Cherian Discussion: https://postgr.es/m/CAA4eK1Lw0V+e1JPGHDq=3D+hVACv=3D14H8sR+2eJ1k3PE= gwKmU-jQ@mail.gmail.com htt= ps://git.postgresql.org/pg/commitdiff/c8b21b0378141948a2dc0ddde6f5740732178= 7ea

Peter Eisentraut pushed:

Magnus Hagander pushed:

Alexander Korotkov pushed:

Bruce Momjian pushed:

Pending Patches

Tang Haiying sent in another revision of a = patch to support tab completion for upper case inputs in psql when using set/reset/show.

Pavel Borisov sent in three revisions of a = patch to make amcheck check the UNIQUE constraint for btree indexes.

Vigneshwaran C sent in three more revisions= of a patch to make the libpq connection parameter "target_session_attrs" support new values: read-only, primary, standby, and prefer-standby.

Iwata Aya sent in two more revisions of a p= atch to add tracing to libpq.

Amit Langote, Greg Nancarrow, and Hou Zhiji= e traded patches to implement parallel execution for INSERT ... SELECT.

Scott Mead sent in another revision of a pa= tch to make autovacuum dynamically decrease cost_limit and cost_delay.

Matthias van de Meent and Josef =C5=A0im=C3= =A1nek traded patches to enhance COPY progress reporting.

Heikki Linnakangas and John Naylor traded p= atches to speed up utf-8 checking with SIMD instructions.

Mark Rofail and Joel Jacobson traded patche= s to implement foreign key arrays.

Amit Langote sent in another revision of a = patch to set ForeignScanState.resultRelInfo and initialize result relation information lazily.

Peter Eisentraut sent in a patch to add rou= tine usage information schema tables.

Heikki Linnakangas sent in another revision= of a patch to add a 'noError' argument to encoding conversion functions, and use same to do COPY FROM enc= oding conversion/verification in larger chunks.

Alexey Bashtanov sent in a patch to add a b= it_xor aggregate.

Daniel Gustafsson sent in another revision = of a patch to make it possible to use NSS for libpq's TLS implementation.

Jacob Champion sent in two more revisions o= f a patch to log authenticated identity from all auth backends.

Kyotaro HORIGUCHI and Dilip Kumar traded pa= tches to provide a new interface to get the recovery pause status.

Tom Lane sent in a patch to disallow some b= ug-prone characters from being used as the names of custom GUCs.

Nathan Bossart sent in a patch to broaden t= he scope of the heap-only tuples (HOT) optimization be more discerning about updating only indexes where the indexed value actually changed. Before this, HOT could only work on complet= ely unindexed columns, as the alternative was to update all indexes regardless = of whether anything in them had actually changed.

Peter Geoghegan sent in three revisions of = a patch to use 64-bit XIDs in deleted nbtree pages, and add pages_newly_deleted to VACUUM VERBOSE.

Takayuki Tsunakawa sent in another revision= of a patch to speed up COPY FROM when the target table has remote partitions.

Justin Pryzby sent in another revision of a= patch to make CLUSTER work on partitioned tables.

Stephen Frost sent in another revision of a= patch to include the I/O timing if track_io_timing is enabled in logs for autovacuum and autoanalyze along with the read rate and the dirty rate for autoanalyze.

Peter Smith sent in two more revisions of a= patch to implement logical decoding of two-phase transactions.

Andy Fan sent in a patch to Introduce notnu= llattrs field in RelOptInfo to indicate which attributes are not null in current query.

Etsuro Fujita sent in two more revisions of= a patch to implement synchronous append on PostgreSQL FDW nodes.

Ranier Vilela and Micha=C3=ABl Paquier trad= ed patches to fix a possible out-of-bounds access in pg_cryptohash_final by adding a length argument to same.

Dilip Kumar, Robert Haas, and Justin Pryzby= traded patches to add custom compression methods for tables.

Michail Nikolaev sent in another revision o= f a patch to add full support for index LP_DEAD hint bits on standbys.

Justin Pryzby sent in a patch to touch up t= he documentation for 14.

Peter Eisentraut sent in another revision o= f a patch to implement SQL standard function bodies for SQL functions.

Peter Eisentraut sent in a patch to add tes= ts for the bytea LIKE operator.

Fujii Masao sent in a patch to intended to = fix a bug that manifested as ERROR: invalid spinlock number: 0 by moving the assignment of written_lsn to a pla= ce where it can use pg_atomic_read_u64(&WalRcv->writtenUpto) better.

Tom=C3=A1=C5=A1 Vondra sent in another revi= sion of a patch to implement BRIN multi-range indexes.

Anastasia Lubennikova sent in another revis= ion of a patch to intended to fix a bug that manifested as pg_upgrade fails with non-standard ACL.

Melanie Plageman sent in another revision o= f a patch to update comments and phase naming for parallel hash joins.

Noah Misch sent in two more revisions of a = patch to dump public schema ownership and security labels, and dump COMMENT ON SCHEMA public.

Zhihong Yu and Ranier Vilela traded patches= to fix a possible dereference null return in src/backend/replication/logical/reorderbuffer.c.

Tom Lane sent in two revisions of a patch t= o invent rainbow arcs for regexes and short-circuit character-by-character scanning when matching a sub-NFA that = is like "." or ".*" or variants of that, ie it will = match any sequence of some number of characters.

Thomas Munro sent in a patch to try to hold= onto buffers between WAL records, which if successful amortizes the cost of looking up, pinning, locking, unlocking and unpinning said buffers over multiple executions.

Erik Rijkers and Amit Kapila traded patches= to fix a recent breakage of logical replication.

Bharath Rupireddy sent in a patch to emove = unnecessary wrapping of MakeTupleTableSlot in MakeSingleTupleTableSlot.

Li Japin sent in another revision of a patc= h to implement ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION.

Noah Misch sent in a patch to add a public = schema default ACL.

This email was sent to you from PWN. It was delivered on their behalf by the PostgreSQL project. Any questions about the content of the message shou= ld be sent to PWN.

You were sent this email as a subscriber of the pgsql-announce mai= linglist, for the content tag PWN. To unsubscribe from further emails, or change which emails you want to receive, please click th= e personal unsubscribe link that you can find in the headers of this email, or visit https://lists.postgresql.org/unsubscribe/.
 
--===============4642656674590390216==-- --===============3855055157543084883==--