Person of the week: https://postgresql.life/post/dave_page/
pgBackRest 2.33, a backup and restore system for PostgreSQL, released. https://pgbackrest.org/release.html#2.33
pg_probackup 2.4.15, a utility to manage backup and recovery of PostgreSQL database clusters, released. https://github.com/postgrespro/pg_probackup/releases/tag/2.4.15
Planet PostgreSQL: https://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 firstname.lastname@example.org.
Alexander Korotkov pushed:
Make websearch_to_tsquery() parse text in quotes as a single token. websearch_to_tsquery() splits text in quotes into tokens and connects them with phrase operator on its own. However, that leads to surprising results when the token contains no words. For instance, websearch_to_tsquery('"aaa: bbb"') is 'aaa <2> bbb', because it is equivalent of to_tsquery(E'aaa <-> \':\' <-> bbb'). But websearch_to_tsquery('"aaa: bbb"') has to be 'aaa <-> bbb' in order to match to_tsvector('aaa: bbb'). Since 0c4f355c6a, we anyway connect lexemes of complex tokens with phrase operators. Thus, let's just websearch_to_tsquery() parse text in quotes as a single token. Therefore, websearch_to_tsquery() should process the quoted text in the same way phraseto_tsquery() does. This solution is what we exactly need and also simplifies the code. This commit is an incompatible change, so we don't backpatch it. Reported-by: Valentin Gatien-Baron Discussion: https://postgr.es/m/CA%2B0DEqiZs7gdOd4ikmg%3D0UWG%2BSwWOLxPsk_JW-sx9WNOyrb0KQ%40mail.gmail.com Author: Alexander Korotkov Reviewed-by: Tom Lane, Zhihong Yu https://git.postgresql.org/pg/commitdiff/eb086056fec44516efdd5db71244a079fed65c7f
Remove mention of the version number from pg_trgm docs. We don't usually mention the version number in similar situations. So, neither mention it here. Reported-by: Bruce Momjian Discussion: https://postgr.es/m/20210503234914.GO6180%40momjian.us https://git.postgresql.org/pg/commitdiff/ae9492a61bbf575e2862cf9323c7f02806382093
Amit Kapila pushed:
Fix the computation of slot stats for 'total_bytes'. Previously, we were using the size of all the changes present in ReorderBuffer to compute total_bytes after decoding a transaction and that can lead to counting some of the transactions' changes more than once. Fix it by using the size of the changes decoded for a transaction to compute 'total_bytes'. Author: Sawada Masahiko Reviewed-by: Vignesh C, Amit Kapila Discussion: https://email@example.com https://git.postgresql.org/pg/commitdiff/205f466282be11ec97506f73341e47b72e0aee5d
Tighten the concurrent abort check during decoding. During decoding of an in-progress or prepared transaction, we detect concurrent abort with an error code ERRCODE_TRANSACTION_ROLLBACK. That is not sufficient because a callback can decide to throw that error code at other times as well. Reported-by: Tom Lane Author: Amit Kapila Reviewed-by: Dilip Kumar Discussion: https://postgr.es/m/CAA4eK1KCjPRS4aZHB48QMM4J8XOC1+TD8jo-4Yu84E+MjwqVhA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/2ce353fc19024d62e59ad99850d7592ebc9abecf
Update replication statistics after every stream/spill. Currently, replication slot statistics are updated at prepare, commit, and rollback. Now, if the transaction is interrupted the stats might not get updated. Fixed this by updating replication statistics after every stream/spill. In passing update the docs to change the description of some of the slot stats. Author: Vignesh C, Sawada Masahiko Reviewed-by: Amit Kapila Discussion: https://firstname.lastname@example.org https://git.postgresql.org/pg/commitdiff/592f00f8dec68038301467a904ac514eddabf6cd
Peter Eisentraut pushed:
Factor out system call names from error messages. One more that ought to have been part of 82c3cd974131d7fa1cfcd07cebfb04fffe26ee35. https://git.postgresql.org/pg/commitdiff/853c8c75571558f4b474eeac3ef9e6fcf9be62ba
libpq: Refactor some error messages for easier translation. https://git.postgresql.org/pg/commitdiff/ced12b73a9bc76b887cb7137df3d56222e2b5263
Remove unused function argument. became unused by 04942bffd0aa9bd0d143d99b473342eb9ecee88b https://git.postgresql.org/pg/commitdiff/c285babf8f44d86b7fd1e73e9e4f94456b825bfb
Prevent lwlock dtrace probes from unnecessary work. If dtrace is compiled in
but disabled, the lwlock dtrace probes still evaluate their arguments. Since
PostgreSQL 13, T_NAME(lock) does nontrivial work, so it should be avoided if
not needed. To fix, make these calls conditional on the
corresponding to each probe. Reviewed-by: Craig Ringer
doc: Add index entry for "multirange type". Before now, looking up "multirange" in the index only led to the multirange() function. To make this more useful, also add an entry pointing to the range types section. https://git.postgresql.org/pg/commitdiff/5df6aeab42279eaea8e9ff92744645b155c85b03
Fix ALTER TABLE / INHERIT with generated columns. When running ALTER TABLE t2 INHERIT t1, we must check that columns in t2 that correspond to a generated column in t1 are also generated and have the same generation expression. Otherwise, this would allow creating setups that a normal CREATE TABLE sequence would not allow. Discussion: https://email@example.com https://git.postgresql.org/pg/commitdiff/a970edbed306354b0079bdcdc2fc74312122ad89
pg_dump: Fix dump of generated columns in partitions. The previous fix for dumping of inherited generated columns (0bf83648a52df96f7c8677edbbdf141bfa0cf32b) must not be applied to partitions, since, unlike normal inherited tables, they are always dumped separately and reattached. Reported-by: Santosh Udupi firstname.lastname@example.org Discussion: https://www.postgresql.org/message-id/flat/CACLRvHZ4a-%2BSM_159%2BtcrHdEqxFrG%3DW4gwTRnwf7Oj0UNj5R2A%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/feb270d1005f3d7b3705dec9e04c9a205750ea97
doc: Fix typos. https://git.postgresql.org/pg/commitdiff/c98a6d7887ea6588b4e9797903182312a2b46f67
GUC description improvements for clarity. https://git.postgresql.org/pg/commitdiff/38f36aad8c55c8f91e3fb8720fae1847c8fa0552
Fix typo. https://git.postgresql.org/pg/commitdiff/9f989a8581cc37879d493a5a78b0f01ec0e3245a
Tom Lane pushed:
Fix performance issue in new regex match-all detection code. Commit 824bf7190 introduced a new search of the NFAs generated by regex compilation. I failed to think hard about the performance characteristics of that search, with the predictable outcome that it's bad: weird regexes can trigger exponential search time. Worse, there's no check-for-interrupt in that code, so you can't even cancel the query if this happens. Fix by introducing memo-ization of the search results, so that any one NFA state need be examined in detail just once. This potentially uses a lot of memory, but we can bound the memory usage by putting a limit on the number of states for which we'll try to prove match-all-ness. That is sane because we already have a limit (DUPINF) on the maximum finite string length that a matchall regex can match; and patterns that involve much more than DUPINF states would probably exceed that limit anyway. Also, rearrange the logic so that we check the basic is-the-graph- all-RAINBOW-arcs property before we start the recursive search to determine path lengths. This will ensure that we fall out quickly whenever the NFA couldn't possibly be matchall. Also stick in a check-for-interrupt, just in case these measures don't completely eliminate the risk of slowness. Discussion: https://email@example.com https://git.postgresql.org/pg/commitdiff/f68970e33f4dc48094c24c78c452ad730ae9ae12
Disable cache clobber to avoid breaking postgres_fdw termination test. Commit 93f414614 improved a pre-existing test case so that it would show whether or not termination of the "remote" worker process happened. This soon exposed that, when debug_invalidate_system_caches_always (nee CLOBBER_CACHE_ALWAYS) is enabled, no such termination occurs. That's because cache invalidation forces postgres_fdw connections to be dropped at end of transaction, so that there's no worker to terminate. There's a race condition as to whether the worker will manage to get out of the BackendStatusArray before we look, but at least on buildfarm member hyrax, it's failed twice in two attempts. Rather than re-lobotomizing the test, let's fix this by transiently disabling debug_invalidate_system_caches_always. (Hooray for that being just a GUC nowadays, rather than a compile-time option.) If this proves not to be enough to make the test stable, we can do the other thing instead. Discussion: https://firstname.lastname@example.org https://git.postgresql.org/pg/commitdiff/1273a15bf91fa322915e32d3b6dc6ec916397268
Doc: improve and centralize the documentation for OID alias types. Previously,
a lot of information about type regclass existed only in the discussion of the
sequence functions. Maybe that made sense in the beginning, because I think
originally those were the only functions taking regclass. But it doesn't make
sense anymore. Move that material to the "Object Identifier Types" section in
datatype.sgml, generalize it to talk about the other
reg* types as well, and
add more examples. Per bug #16991 from Federico Caselli. Discussion:
Doc: update RELEASE_CHANGES checklist. Update checklist to reflect current practice: The platform-specific FAQ files are long gone. We've never routinely updated the libbind code we borrowed, either, and there seems no reason to start now. Explain current practice of running pgindent twice per cycle. Discussion: https://email@example.com https://git.postgresql.org/pg/commitdiff/e8ce68b0b9ae2757c6153a88bf869904d2d5ac0b
Doc: trivial wording adjustment. Improve self-referential foreign key example, per suggestion from David Johnston. Discussion: https://postgr.es/m/CAKFQuwZTke7+HUn4YUGqu2+gAPi4Cy18TXMrg_Z5nADkxfPNMw@mail.gmail.com https://git.postgresql.org/pg/commitdiff/c38cadc0907a8d071b043b2b32b83efa09db38ea
Doc: copy-editing for debug_invalidate_system_caches_always description. I came to fix "useful only useful", but the more I looked at the text the more things I thought could be improved. https://git.postgresql.org/pg/commitdiff/f9b809e7fbe36cd3fe1ce33edb277288a31da386
Sync guc.c and postgresql.conf.sample with the SGML docs. It seems that various people have moved GUCs around in the config.sgml listing without bothering to make the code agree. Ensure that the config_group codes assigned to GUCs match where they are listed in config.sgml. Likewise ensure that postgresql.conf.sample lists GUCs in the same sub-section and same ordering as they appear in config.sgml. (I've got some doubts about some of these choices, but for the purposes of this patch, we'll treat config.sgml as gospel.) Notably, this requires adding a WAL_RECOVERY config_group value, because 1d257577e didn't. As long as we're renumbering that enum anyway, let's take out the values corresponding to major groups that are divided into sub-groups. No GUC should be assigned to the major group itself, so those values just create a temptation to do the wrong thing, while adding work for translators. In passing, adjust the short_desc strings for PRESET_OPTIONS GUCs to uniformly use the phrasing "Shows XYZ.", removing the impression some of these strings left that you can set the value. While some of these errors are old, no back-patch, as changing the contents of the pg_settings view in stable branches seems more likely to be seen as a compatibility break than anything helpful. Bharath Rupireddy, Justin Pryzby, Tom Lane Discussion: https://firstname.lastname@example.org Discussion: https://postgr.es/m/20210413123139.GE6091@telsasoft.com https://git.postgresql.org/pg/commitdiff/a55a98477b690dedb9b4368d7e5710c8e7fa534e
Robert Haas pushed:
amcheck: Improve some confusing reports about TOAST problems. Don't phrase reports in terms of the number of tuples thus-far returned by the index scan, but rather in terms of the chunk_seq values found inside the tuples. Patch by me, reviewed by Mark Dilger. Discussion: http://postgr.es/m/CA+TgmoZUONCkdcdR778EKuE+f1r5Obieu63db2OgMPHaEvEPTQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/50529e5b4e39ad80a637ba0905277f9691eb4a15
docs: Clarify how ALTER TABLE .. SET COMPRESSION works. Justin Pryzby, per a complaint from Michael Paquier. Reviewed by Dilip Kumar and by me. Discussion: http://postgr.es/m/20210429040132.GF27406@telsasoft.com https://git.postgresql.org/pg/commitdiff/2d0f662402635d591cac9f1daae5e81e7c4374fc
Additional doc fixes for configurable TOAST compression. The grammar changes in commit bbe0a81db69bd10bd166907c3701492a29aca294 allow SET COMPRESSION to be used with ALTER MATERIALIZED VIEW as well as with ALTER TABLE, so update those docs to say that it works. Also, update the documentation for the pg_column_compression() to explain that it will return NULL when there's no relevant value. Patch by me, per concerns from Michael Paquier. Discussion: http://postgr.es/m/CA+Tgmob9h5u4iNL9KM0drZgkY-JL4oCVW0dWrMqtLPQ1zHkquA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/448b02c00515ba9d6683a8a97fe4305604d80028
Bruce Momjian pushed:
Álvaro Herrera pushed:
Fix OID passed to object-alter hook during ALTER CONSTRAINT. The OID of the constraint is used instead of the OID of the trigger -- an easy mistake to make. Apparently the object-alter hooks are not very well tested :-( Backpatch to 12, where this typo was introduced by 578b229718e8 Discussion: https://postgr.es/m/20210503231633.GA6994@alvherre.pgsql https://git.postgresql.org/pg/commitdiff/e798d095da3a4a4bb5c50bb3dff886f07ef52f55
Have ALTER CONSTRAINT recurse on partitioned tables. When ALTER TABLE .. ALTER
CONSTRAINT changes deferrability properties changed in a partitioned table, we
failed to propagate those changes correctly to partitions and to triggers.
Repair by adding a recursion mechanism to affect all derived constraints and
all derived triggers. (In particular, recurse to partitions even if their
respective parents are already in the desired state: it is possible for the
partitions to have been altered individually.) Because foreign keys involve
tables in two sides, we cannot use the standard ALTER TABLE recursion
mechanism, so we invent our own by following pg_constraint.conparentid down.
When ALTER TABLE .. ALTER CONSTRAINT is invoked on the derived pg_constraint
object that's automaticaly created in a partition as a result of a constraint
added to its parent, raise an error instead of pretending to work and then
failing to modify all the affected triggers. Before this commit such a command
would be allowed but failed to affect all triggers, so it would silently
misbehave. (Restoring dumps of existing databases is not affected, because
pg_dump does not produce anything for such a derived constraint anyway.) Add
some tests for the case. Backpatch to 11, where foreign key support was added
to partitioned tables by commit 3de241dba86f. (A related change is commit
f56f8f8da6af in pg12 which added support for FKs
tables; this is what forces us to use an ad-hoc recursion mechanism for this.)
Diagnosed by Tom Lane from bug report from Ron L Johnson. As of this writing,
no reviews were offered. Discussion:
Remove unused argument of ATAddForeignConstraint. Commit 0325d7a5957b made this unused but forgot to remove it. Do so now. Author: Amit Langote email@example.com Discussion: https://firstname.lastname@example.org https://git.postgresql.org/pg/commitdiff/c250062df42ffd3e252471f6205bfb6cbef67b7b
Track detached partitions more accurately in partdescs. In d6b8d29419df I (Álvaro) was sloppy about recording whether a partition descripor does or does not include detached partitions, when the snapshot checking does not see the pg_inherits row marked detached. In that case no partition was omitted, yet in the relcache entry we were saving the partdesc as omitting partitions. Flip that (so we save it as a partdesc not omitting partitions, which indeed it doesn't), which hopefully makes the code easier to reason about. Author: Amit Langote email@example.com Discussion: https://postgr.es/m/CA+HiwqE7GxGU4VdzwZzfiz+Ont5SsopoFkgtrZGEdPqWRL+biA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/3fe773b149755977d2ffde2afd89557b39d0afd9
Improve documentation on DETACH PARTITION lock levels. This was forgotten in 71f4c8c6f74b. Reported-by: Pavel Luzanov firstname.lastname@example.org Author: Amit Langote email@example.com Discussion: https://firstname.lastname@example.org https://git.postgresql.org/pg/commitdiff/db6e1aeb952e9aed26ba2a56b4145293c72b8068
Document lock level used by ALTER TABLE VALIDATE CONSTRAINT. Backpatch all the way back to 9.6. Author: Simon Riggs email@example.com Discussion: https://postgr.es/m/CANbhV-EwxvdhHuOLdfG2ciYrHOHXV=mm6=fD5aMhqcH09Li3Tg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/469116389e18dbf6be0bd555bc2055a26be91a48
Remove redundant variable. Author: Amul Sul firstname.lastname@example.org Reviewed-by: Jeevan Ladhe email@example.com Reviewed-by: Bharath Rupireddy firstname.lastname@example.org Reviewed-by: Justin Pryzby email@example.com Discussion: https://postgr.es/m/CAAJ_b94HaNcrPVREUuB9-qUn2uB+gfcoX3FG_Vx0S6aFsefirstname.lastname@example.org https://git.postgresql.org/pg/commitdiff/a288d94c91e345ebeb10ac30f247270c8c8e380a
AlterSubscription_refresh: avoid stomping on global variable. This patch replaces use of the global "wrconn" variable in AlterSubscription_refresh with a local variable of the same name, making it consistent with other functions in subscriptioncmds.c (e.g. DropSubscription). The global wrconn is only meant to be used for logical apply/tablesync worker. Abusing it this way is known to cause trouble if an apply worker manages to do a subscription refresh, such as reported by Jeremy Finzel and diagnosed by Andres Freund back in November 2020, at https://email@example.com Backpatch to 10. In branch master, also move the connection establishment to occur outside the PG_TRY block; this way we can remove a test for NULL in PG_FINALLY, and it also makes the code more consistent with similar code in the same file. Author: Peter Smith firstname.lastname@example.org Reviewed-by: Bharath Rupireddy email@example.com Reviewed-by: Japin Li firstname.lastname@example.org Discussion: https://postgr.es/m/CAHut+Pu7Jv9L2BOEx_Z0UtJxfDevQSAUW2mJqWU+CtmDrEZVAg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/4e8c0f1a0d0d095a749a329a216c88a340a455b6
Andres Freund pushed:
Peter Geoghegan pushed:
Thomas Munro pushed:
Revert per-index collation version tracking feature. Design problems were discovered in the handling of composite types and record types that would cause some relevant versions not to be recorded. Misgivings were also expressed about the use of the pg_depend catalog for this purpose. We're out of time for this release so we'll revert and try again. Commits reverted: 1bf946bd: Doc: Document known problem with Windows collation versions. cf002008: Remove no-longer-relevant test case. ef387bed: Fix bogus collation-version-recording logic. 0fb0a050: Hide internal error for pg_collation_actual_version(<bad OID>). ff942057: Suppress "warning: variable 'collcollate' set but not used". d50e3b1f: Fix assertion in collation version lookup. f24b1569: Rethink extraction of collation dependencies. 257836a7: Track collation versions for indexes. cd6f479e: Add pg_depend.refobjversion. 7d1297df: Remove pg_collation.collversion. Discussion: https://postgr.es/m/CA%2BhUKGLhj5t1fcjqAu8iD9B3ixJtsTNqyCCD4V0aTO9kAKAjjA%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/ec48314708262d8ea6cdcb83f803fc83dd89e721
Doc: Update notes about libc collation versions. The per-index collation version tracking feature was reverted, but we still have the ability to ask Windows (352f6f2d) and FreeBSD (ca051d8b) for collation versions to store in pg_collation.collversion. So, from the reverted patch, take a few words of documentation about libc on all three supported OSes to replace the pre-existing note that mentioned only glibc. Discussion: https://postgr.es/m/CA%2BhUKGLhj5t1fcjqAu8iD9B3ixJtsTNqyCCD4V0aTO9kAKAjjA%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/b65431ca5e12a475ba7cf68afb63edb070c2ce08
Tomáš Vondra pushed:
Make pg_get_statisticsobjdef_expressions return NULL. The usual behavior for functions in ruleutils.c is to return NULL when the object does not exist. pg_get_statisticsobjdef_expressions raised an error instead, so correct that. Reported-by: Justin Pryzby Discussion: https://postgr.es/m/20210505210947.GA27406%40telsasoft.com https://git.postgresql.org/pg/commitdiff/8d4b311d2494ca592e30aed03b29854d864eb846
Fix typos in comments about extended statistics. Reported-by: Justin Pryzby Discussion: https://postgr.es/m/20210505210947.GA27406%40telsasoft.com https://git.postgresql.org/pg/commitdiff/93f9af138795a7d12366187de95f4961fb07ed98
Mention statistics objects in maintenance.sgml. The docs mentioned expression indexes as a way to improve selectivity estimates for functions, but we have a second option to improve that by creating extended statistics. So mention that too. Reported-by: Justin Pryzby Discussion: https://postgr.es/m/20210505210947.GA27406%40telsasoft.com https://git.postgresql.org/pg/commitdiff/44f90ad092f95fe19bebb51465193bc63849c15f
Copy the INSERT query in postgres_fdw. When executing the INSERT with batching, we may need to rebuild the query when the batch size changes, in which case we pfree the current string. We must not release the original string, stored in fdw_private, because that may be needed in EXPLAIN ANALYZE. So make copy of the SQL, but only for INSERT queries. Reported-by: Pavel Stehule Discussion: https://postgr.es/m/CAFj8pRCL_Rjw-MCR6J7VX9OF7MR6PA5K8qUbrMvprW_e-aHkfQ%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/c6a01d924939306e95c8deafd09352be6a955648
Andrew Dunstan pushed:
Add a copyright notice to perl files lacking one. https://git.postgresql.org/pg/commitdiff/8fa6e6919c1aaa6f74c74e16452aaf0b5f3b4cd5
Remove extraneous newlines added by perl copyright patch. https://git.postgresql.org/pg/commitdiff/8b82de0164c13eb3b113a525dc7eda7887f5238b
Add a README and Makefile recipe for Gen_dummy_probes.pl. Discussion: https://email@example.com https://git.postgresql.org/pg/commitdiff/8292c0675a793a5afd0a8eedbeb0db7abfb844f3
Michaël Paquier pushed:
David Rowley pushed:
Aleksander Alekseev sent in another revision of a patch to allow CustomScan nodes to signal projection support.
Melanie Plageman sent in another revision of a patch to avoid an immediate fsync for just-built indexes.
Dilip Kumar sent in two revisions of a patch to add TOAST compression method options.
Vigneshwaran C sent in four more revisions of a patch to identify missing publications from publisher during CREATE/ALTER SUBSCRIPTION.
Bertrand Drouvot sent in a patch to intended to fix a bug that manifested as pg_upgrade can result in early wraparound on databases with high transaction load by exactly copying the oldestXid limit from the source database.
Bertrand Drouvot sent in a patch to intended to fix a bug that manifested as orphaned dependencies by adding a new catalog snapshot is DirtyCatalogSnapshot controlled by a new UseDirtyCatalogSnapshot variable, and using it to check for in-flight dependencies and get the objects' description to generate the error messages.
Thomas Munro sent in another revision of a patch to add a new TAP test under src/test/recovery to run the standard regression tests with a streaming replica replaying the WAL. This provides a basic workout for WAL decoding and redo code.
Mark Dilger sent in two revisions of a patch to extend amcheck to check TOAST size and compression.
Jeff Davis sent in a patch to bound ItemPointers in table AMs in a way that other parts of the system expect.
Dilip Kumar and Kyotaro HORIGUCHI traded patches to intended to fix a bug that manifested as a race condition in recovery.
Craig Ringer sent in another revision of a patch to make Valgrind runs simpler with make USE_VALGRIND=1.
David Fetter sent in a patch to clarify some column descriptions in pg_constraint.
Vigneshwaran C sent in two more revisions of a patch to print the backtrace of a specified postgres process.
Craig Ringer sent in a patch to emit dummy statements for probes.d probes when disabled.
Jeff Davis sent in another revision of a patch to implement ALTER TABLE ... SET ACCESS METHOD.
Amit Langote sent in a patch to clarify the documentation of ALTER TABLE ... DETACH PARTITION CONCURRENTLY.
Etsuro Fujita sent in a patch to fix EXPLAIN ANALYZE for async capable nodes.
Etsuro Fujita sent in a patch to describe the way asynchronous execution works for FDWs.
Nitin Jadhav sent in a patch to implement list partitioning for multiple columns.
Yugo Nagata sent in another revision of a patch to implement incremental view maintenance.
Konstantin Knizhnik sent in another revision of a patch to remove unneeded self-joins.
Andrey Borodin sent in another revision of a patch to speed up GiST index builds.
Etsuro Fujita sent in a patch to fix an infelicity between inherited UPDATE/DELETE and async execution by modifying postgresPlanDirectModify() so that it clears the async-capable flag if it is set.
James Coleman sent in a patch to parallelize correlated subqueries that execute within each worker.
Jeff Janes sent in a patch to add configure cache checkpoints before fatal checks.
Hou Zhijie sent in another revision of a patch to fix EXPLAIN's information about FDW batch inserts.
Erik Rijkers and Alexander Korotkov traded patches to improve the example in JSON path queries to highlight what's actually happening.
Bruce Momjian sent in another revision of a patch to fix a misbehavior in interval arithmetic.
Hou Zhijie sent in a patch to fix a bug where there was an inaccurate error message when fdw batch_size was set to 0.
David Rowley sent in another revision of a patch to speed up NOT IN() with a set of Consts.
Andrew Dunstan sent in another revision of a patch to implement the JSON_TABLE part of SQL/JSON.
Andrew Dunstan sent in another revision of a patch to implement the functions from SQL/JSON.
Tom Lane sent in a patch to make a binary-coercible C function in order to reduce opr_sanity test's runtime under CLOBBER_CACHE_ALWAYS.
David Rowley sent in a patch to only validate resultcache memory on plan shutdown.
Vigneshwaran C sent in a patch to correct the data type for the logical replication message formats.