PostgreSQL Weekly News - April 25, 2021PostgreSQL Weekly News - April 25, 2021Person of the week: https://postgresql.life/post/pavlo_golub/ PostgreSQL Product NewsJDBC 42.2.20 released https://jdbc.postgresql.org/documentation/changelog.html#version_42.2.20 kubgres 1.1, a Kubernetes operator which makes it possible to deploy a cluster of PostgreSQL pods with replication and failover configured, released. https://github.com/reactive-tech/kubegres/releases/tag/v1.1 pspg 4.6.1 a pager designed for PostgreSQL, released. https://github.com/okbob/pspg/releases/tag/4.6.1 pgAdmin4 5.2, a web- and native GUI control center for PostgreSQL, released. https://www.pgadmin.org/docs/pgadmin4/5.2/release_notes_5_2.html pg_log_statements 0.2, an extension that makes is possible to log statements for specific server processes, released. https://github.com/pierreforstmann/pg_log_statements/releases PostgreSQL Jobs for Aprilhttps://archives.postgresql.org/pgsql-jobs/2021-04/ PostgreSQL in the NewsPlanet 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 david@fetter.org. Applied PatchesThomas Munro pushed: Michaël Paquier pushed: Replace magic constants for seek() calls in perl scripts. A couple of tests have been using 0 as magic constant while SEEK_SET can be used instead. This makes the code easier to understand, and more consistent with the changes done in 3c5b068. Per discussion with Andrew Dunstan. Discussion: https://postgr.es/m/YHrc24AgJQ6tQ1q0@paquier.xyz https://git.postgresql.org/pg/commitdiff/c731f9187b5fd7038b04ba60703d3cace1806366 Fix typos and grammar in comments and docs. Author: Justin Pryzby Discussion: https://postgr.es/m/20210416070310.GG3315@telsasoft.com https://git.postgresql.org/pg/commitdiff/7ef8b52cf079ef3ace4575f7b97c2d6f80463b4f Add CURRENT_ROLE to list of roles for tab completion of GRANT in psql. This compatibility has been added in 45b9805, but psql forgot the call. Author: Wei Wang Reviewed-by: Aleksander Alekseev Discussion: https://postgr.es/m/OS3PR01MB6275935F62E161BCD393D6559E489@OS3PR01MB6275.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/22b2dec31b2ef4dfee299290b16375e9fa6e6932 doc: List compute_query_id in required config for pg_stat_statements. Not enabling compute_query_id would disable pg_stat_statements even if the module is listed in shared_preload_libraries, so add it to the minimum configuration set as listed in its documentation. Author: Greg Nancarrow Reviewed-by: Julien Rouhaud, Bharath Rupireddy Discussion: https://postgr.es/m/CAJcOf-fXyb2QiDbwftD813UF70w-+BsK-03bFp1GrijXU9GQYQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/64087eb5def7786bd49e60eb5d984ec6e4a872a9 doc: Move parallel_leader_participation to its correct category. parallel_leader_participation got introduced in e5253fd, where it was listed under RESOURCES_ASYNCHRONOUS in guc.c, but the documentation did not reflect that and listed it with the other planner-related options. This commit fixes this inconsistency as the parameter is intended to be an asynchronous one. While on it, reorganize a bit the section dedicated to asynchronous parameters, backend_flush_after being moved first to do better in terms of alphabetical order of the options listed. Reported-by: Yanliang Lei Author: Bharath Rupireddy Discussion: https://postgr.es/m/16972-42d4b0c15aa1d5f5@postgresql.org https://git.postgresql.org/pg/commitdiff/1599e7b375127cac81b539d2c69d3faf7598509b Fix relation leak for subscribers firing triggers in logical replication. Creating a trigger on a relation to which an apply operation is triggered would cause a relation leak once the change gets committed, as the executor would miss that the relation needs to be closed beforehand. This issue got introduced with the refactoring done in 1375422c, where it becomes necessary to track relations within es_opened_result_relations to make sure that they are closed. We have discussed using ExecInitResultRelation() coupled with ExecCloseResultRelations() for the relations in need of tracking by the apply operations in the subscribers, which would simplify greatly the opening and closing of indexes, but this requires a larger rework and reorganization of the worker code, particularly for the tuple routing part. And that's not really welcome post feature freeze. So, for now, settle down to the same solution as TRUNCATE which is to fill in es_opened_result_relations with the relation opened, to make sure that ExecGetTriggerResultRel() finds them and that they get closed. The code is lightly refactored so as a relation is not registered three times for each DML code path, making the whole a bit easier to follow. Reported-by: Tang Haiying, Shi Yu, Hou Zhijie Author: Amit Langote, Masahiko Sawada, Hou Zhijie Reviewed-by: Amit Kapila, Michael Paquier Discussion: https://postgr.es/m/OS0PR01MB611383FA0FE92EB9DE21946AFB769@OS0PR01MB6113.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/f3b141c482552a57866c72919007d6481cd59ee3 Remove use of [U]INT64_FORMAT in some translatable strings. %lld with (long long), or %llu with (unsigned long long) are more adapted. This is similar to Author: Kyotaro Horiguchi Discussion: https://postgr.es/m/20210421.200000.1462448394029407895.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/62aa2bb293148c13851484e63db4835e3c53147f Fix some comments in fmgr.c. Oversight in 2a0faed. Author: Hou Zhijie Discussion: https://postgr.es/m/OS0PR01MB5716405E2464D85E6DB6DC0794469@OS0PR01MB5716.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/45c0c5f70eb5e22d31be8bb9a8b4d9c66a3e9b37 Add some forgotten LSN_FORMAT_ARGS() in xlogreader.c. 6f6f284 has introduced a specific macro to make printf()-ing of LSNs easier. This takes care of what looks like the remaining code paths that did not get the call. Author: Michael Paquier Reviewed-by: Kyotaro Horiguchi, Tom Lane Discussion: https://postgr.es/m/YIJS9x6K8ruizN7j@paquier.xyz https://git.postgresql.org/pg/commitdiff/4aba61b87026b43fb37fc8e9ec5d9ae208e07b6b Doc: Remove extraneous whitespaces with some tags. Author: Justin Pryzby Discussion: https://postgr.es/m/20210423184338.GL7256@telsasoft.com https://git.postgresql.org/pg/commitdiff/0d0049c58b4970183a102fc1f7dc1e9bef2a7149 Fix come comments in execMain.c. 1375422 has refactored this area of the executor code, and some comments went out-of-sync. Author: Yukun Wang Reviewed-by: Amul Sul Discussion: https://postgr.es/m/OS0PR01MB60033394FCAEF79B98F078F5B4459@OS0PR01MB6003.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/9b5558e7ad4706bbd53947e5b4d7c06e150390a5
Amit Kapila pushed: Peter Eisentraut pushed: Use correct format placeholder for pids. Should be signed, not unsigned. https://git.postgresql.org/pg/commitdiff/640b91c3ed24002b34c7226fb51ef9176fb72713 Don't use INT64_FORMAT inside message strings. Use %lld and cast to long long int instead. https://git.postgresql.org/pg/commitdiff/3286065651477c2060910dfb42b3cedbd79a7980 Fix typo. https://git.postgresql.org/pg/commitdiff/f0ec598b4323d8b29df5c67f2cd0000547a507ed doc: Improve hyphenation consistency. https://git.postgresql.org/pg/commitdiff/544b28088f9d41750ccf193812da62bdfe4bd98a Use correct format placeholder for timeline IDs. Should be %u rather than %d. https://git.postgresql.org/pg/commitdiff/39d0928a0e88426ee64189898565c40d4af9ad96 Add DISTINCT to information schema usage views. Since pg_depend can contain duplicate entries, we need to eliminate those in information schema views that build on pg_depend, using DISTINCT. Some of the older views already did that correctly, but some of the more recently added ones didn't. (In some of these views, it might not be possible to reproduce the issue because of how the implementation happens to deduplicate dependencies while recording them, but it seems better to keep this consistent in all cases.) https://git.postgresql.org/pg/commitdiff/d84ffffe582b8e036a14c6bc2378df29167f3a00 Update config.guess and config.sub. https://git.postgresql.org/pg/commitdiff/26ac261ee4033710cad44f7924d53753129b60c7 Fix some trailing whitespace in documentation files. https://git.postgresql.org/pg/commitdiff/197d33ccbe888fc84ae4e49bb241e88ea3c81f15 Fix incorrect format placeholder. https://git.postgresql.org/pg/commitdiff/7776a23a4bdeb7215e4f8ddea5989cb143becc12 doc: Fix typos. Author: Justin Pryzby pryzby@telsasoft.com https://git.postgresql.org/pg/commitdiff/9bd563aa9f0694994a6640946a7ee3dc0431d507 pg_amcheck: Use logging functions. This was already mostly done, but some error messages were printed the long way. https://git.postgresql.org/pg/commitdiff/add5fad78aac8da96aeeb730155d35b16ff9b55a Use correct format placeholder for WSAGetLastError(). Some code thought this was unsigned, but it's signed int. https://git.postgresql.org/pg/commitdiff/9486844f301e265a3ad11b612decaba2462c3c15 Factor out system call names from error messages. Instead, put them in via a format placeholder. This reduces the number of distinct translatable messages and also reduces the chances of typos during translation. We already did this for the system call arguments in a number of cases, so this is just the same thing taken a bit further. Discussion: https://www.postgresql.org/message-id/flat/92d6f545-5102-65d8-3c87-489f71ea0a37%40enterprisedb.com https://git.postgresql.org/pg/commitdiff/82c3cd974131d7fa1cfcd07cebfb04fffe26ee35
Peter Geoghegan pushed: Document LP_DEAD accounting issues in VACUUM. Document VACUUM's soft assumption that any LP_DEAD items encountered during pruning will become LP_UNUSED items before VACUUM finishes up. This is integral to the accounting used by VACUUM to generate its final report on the table to the stats collector. It also affects how VACUUM determines which heap pages are truncatable. In both cases VACUUM is concerned with the likely contents of the page in the near future, not the current contents of the page. This state of affairs created the false impression that VACUUM's dead tuple accounting had significant difference with similar accounting used during ANALYZE. There were and are no substantive differences, at least when the soft assumption completely works out. This is far clearer now. Also document cases where things don't quite work out for VACUUM's dead tuple accounting. It's possible that a significant number of LP_DEAD items will be left behind by VACUUM, and won't be recorded as remaining dead tuples in VACUUM's statistics collector report. This behavior dates back to commit a96c41fe, which taught VACUUM to run without index and heap vacuuming at the user's request. The failsafe mechanism added to VACUUM more recently by commit 1e55e7d1 takes the same approach to dead tuple accounting. Reported-By: Masahiko Sawada sawada.mshk@gmail.com Discussion: https://postgr.es/m/CAH2-Wz=Jmtu18PrsYq3EvvZJGOmZqSO2u3bvKpx9xJa5uhNp=Q@mail.gmail.com https://git.postgresql.org/pg/commitdiff/7136bf34f28892362144ae2e350714836a5c0c0c amcheck: MAXALIGN() nbtree special area offset. This isn't strictly necessary, but in theory it might matter if in the future the width of the nbtree special area changes -- its total size might not be an even number of MAXALIGN() quantums, even with padding. PageInit() MAXALIGN()s all special area offsets, but amcheck uses the offset to perform initial basic validation of line pointers, so we don't rely on the offset from the page header. The real reason to do this is to set a good example for new code that adds amcheck coverage for other index AMs. Reported-By: Bharath Rupireddy bharath.rupireddyforpostgres@gmail.com Discussion: https://postgr.es/m/CALj2ACUMqTR9nErh99FbOBmzCXE9=gXNqhBiwYOhejJJS1LXqQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/bb3ecc8c961896ecb2ad3d5ba705c2877b933945
Magnus Hagander pushed: Andrew Dunstan pushed: Tom Lane pushed: Fix planner failure in some cases of sorting by an aggregate. An oversight introduced by the incremental-sort patches caused "could not find pathkey item to sort" errors in some situations where a sort key involves an aggregate or window function. The basic problem here is that find_em_expr_usable_for_sorting_rel isn't properly modeling what prepare_sort_from_pathkeys will do later. Rather than hoping we can keep those functions in sync, let's refactor so that they actually share the code for identifying a suitable sort expression. With this refactoring, tlist.c's tlist_member_ignore_relabel is unused. I removed it in HEAD but left it in place in v13, in case any extensions are using it. Per report from Luc Vlaming. Back-patch to v13 where the problem arose. James Coleman and Tom Lane Discussion: https://postgr.es/m/91f3ec99-85a4-fa55-ea74-33f85a5c651f@swarm64.com https://git.postgresql.org/pg/commitdiff/375398244168add84a884347625d14581a421e71 Rename find_em_expr_usable_for_sorting_rel. I didn't particularly like this function name, as it fails to express what's going on. Also, returning the sort expression alone isn't too helpful --- typically, a caller would also need some other fields of the EquivalenceMember. But the sole caller really only needs a bool result, so let's make it "bool relation_can_be_sorted_early()". Discussion: https://postgr.es/m/91f3ec99-85a4-fa55-ea74-33f85a5c651f@swarm64.com https://git.postgresql.org/pg/commitdiff/7645376774c8532159f5f0f905e5e734d4ccbb18 Fix under-parenthesized XLogRecHasBlockRef() macro. Commit f003d9f87 left this macro with inadequate (or, one could say, too much) parenthesization. Which was catastrophic to the correctness of calls such as "if (!XLogRecHasBlockRef(record, 1)) ...". There are only a few of those, which perhaps explains why we didn't notice immediately (with our general weakness of WAL replay testing being another factor). I found it by debugging intermittent replay failures like 2021-04-08 14:33:30.191 EDT [29463] PANIC: failed to locate backup block with ID 1 2021-04-08 14:33:30.191 EDT [29463] CONTEXT: WAL redo at 0/95D3438 for SPGist/ADD_NODE: off 1; blkref #0: rel 1663/16384/25998, blk 1 https://git.postgresql.org/pg/commitdiff/9e41148229192dccc4bcc40f53af588b73d8ffea Improve WAL record descriptions for SP-GiST records. While tracking down the bug fixed in the preceding commit, I got quite annoyed by the low quality of spg_desc's output. Add missing fields, try to make the formatting consistent. https://git.postgresql.org/pg/commitdiff/783be78ca91166ac7f80c953f2bbc5af1f61c6cd Doc: document the tie-breaking behavior of the round() function. Back-patch to v13; the table layout in older branches is unfriendly to adding such details. Laurenz Albe Discussion: https://postgr.es/m/161881920775.685.12293798764864559341@wrigleys.postgresql.org https://git.postgresql.org/pg/commitdiff/82b13dbc4d4b46f71ca95ce1cc15c425deff5957 Don't crash on reference to an un-available system column. Adopt a more consistent policy about what slot-type-specific getsysattr functions should do when system attributes are not available. To wit, they should all throw the same user-oriented error, rather than variously crashing or emitting developer-oriented messages. This closes a identifiable problem in commits a71cfc56b and 3fb93103a (in v13 and v12), so back-patch into those branches, along with a test case to try to ensure we don't break it again. It is not known that any of the former crash cases are reachable in HEAD, but this seems like a good safety improvement in any case. Discussion: https://postgr.es/m/141051591267657@mail.yandex.ru https://git.postgresql.org/pg/commitdiff/d479d00285255d422a2b38f1cfaa35808968a08c
Bruce Momjian pushed: Álvaro Herrera pushed: Don't add a redundant constraint when detaching a partition. On ALTER TABLE .. DETACH CONCURRENTLY, we add a new table constraint that duplicates the partition constraint. But if the partition already has another constraint that implies that one, then that's unnecessary. We were already avoiding the addition of a duplicate constraint if there was an exact 'equal' match -- this just improves the quality of the check. Author: Justin Pryzby pryzby@telsasoft.com Reviewed-by: Álvaro Herrera alvherre@alvh.no-ip.org Discussion: https://postgr.es/m/20210410184226.GY6592@telsasoft.com https://git.postgresql.org/pg/commitdiff/7b357cc6ae553c0ecacdc11b2e5278b7bf477dba Add comment about extract_autovac_opts not holding lock. Per observation from Tom Lane. Discussion: https://postgr.es/m/1901125.1617904665@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/7c298c6573a0f181963ddcb40c850fa9c7da0ada Fix relcache inconsistency hazard in partition detach. During queries coming from ri_triggers.c, we need to omit partitions that are marked pending detach -- otherwise, the RI query is tricked into allowing a row into the referencing table whose corresponding row is in the detached partition. Which is bogus: once the detach operation completes, the row becomes an orphan. However, the code was not doing that in repeatable-read transactions, because relcache kept a copy of the partition descriptor that included the partition, and used it in the RI query. This commit changes the partdesc cache code to only keep descriptors that aren't dependent on a snapshot (namely: those where no detached partition exist, and those where detached partitions are included). When a partdesc-without- detached-partitions is requested, we create one afresh each time; also, those partdescs are stored in PortalContext instead of CacheMemoryContext. find_inheritance_children gets a new output *detached_exist boolean, which indicates whether any partition marked pending-detach is found. Its "include_detached" input flag is changed to "omit_detached", because that name captures desired the semantics more naturally. CreatePartitionDirectory() and RelationGetPartitionDesc() arguments are identically renamed. This was noticed because a buildfarm member that runs with relcache clobbering, which would not keep the improperly cached partdesc, broke one test, which led us to realize that the expected output of that test was bogus. This commit also corrects that expected output. Author: Amit Langote amitlangote09@gmail.com Author: Álvaro Herrera alvherre@alvh.no-ip.org Discussion: https://postgr.es/m/3269784.1617215412@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/8aba9322511f718f12b618470d8c07f0ee5f0700 Fix uninitialized memory bug. Have interested callers of find_inheritance_children set the detached_exist value to false prior to calling it, so that that routine only has to set it true in the rare cases where it is necessary. Don't touch it otherwise. Per buildfarm member thorntail (which reported a UBSan failure here). https://git.postgresql.org/pg/commitdiff/43b55ec4bc3bc06596d966391f16defe016310ec
Etsuro Fujita pushed: Fujii Masao pushed: doc: Fix obsolete description about pg_basebackup. Previously it was documented that if using "-X none" option there was no guarantee that all required WAL files were archived at the end of pg_basebackup when taking a backup from the standby. But this limitation was removed by commit 52f8a59dd9. Now, even when taking a backup from the standby, pg_basebackup can wait for all required WAL files to be archived. Therefore this commit removes such obsolete description from the docs. Also this commit adds new description about the limitation when taking a backup from the standby, into the docs. The limitation is that pg_basebackup cannot force the standbfy to switch to a new WAL file at the end of backup, which may cause pg_basebackup to wait a long time for the last required WAL file to be switched and archived, especially when write activity on the primary is low. Back-patch to v10 where the issue was introduced. Reported-by: Kyotaro Horiguchi Author: Kyotaro Horiguchi, Fujii Masao Reviewed-by: Kyotaro Horiguchi, Fujii Masao Discussion: https://postgr.es/m/20210420.133235.1342729068750553399.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/eaec48b3c54eec222d64468b57af80ee4ddf76a9 Reorder COMPRESSION option in gram.y and parsenodes.h into alphabetical order. Commit bbe0a81db6 introduced "INCLUDING COMPRESSION" option in CREATE TABLE command, but previously TableLikeOption in gram.y and parsenodes.h didn't classify this new option in alphabetical order with the rest. Author: Fujii Masao Reviewed-by: Michael Paquier Discussion: https://postgr.es/m/YHerAixOhfR1ryXa@paquier.xyz https://git.postgresql.org/pg/commitdiff/3f20d5f37086e548c32ddb9d6ae09c2e1ce300ce
Alexander Korotkov pushed: Noah Misch pushed: Pending PatchesPeter Smith sent in a patch to rearrange the option list for CREATE SUBSCRIPTION. Bharath Rupireddy sent in another revision of a patch to add new table AMs for multi- and single- inserts, and use same for CTAS, REFRESH MATERIALIZED VIEW, and COPY. Amul Sul sent in two more revisions of a patch to remove a redundant variable from transformCreateStmt. Pavel Stěhule sent in another revision of a patch to make it possible to log seqscans in auto_explain. David Rowley sent in another revision of a patch to reduce the number of contrib build special cases on Windows. Amul Sul sent in two more revisions of a patch to add a RelationGetSmgr inline function. Masahiko Sawada sent in two more revisions of a patch to skip vmbuffer for frozen tuple insertion. Dagfinn Ilmari Mannsåker sent in a patch to create a function for stripping RelabelType nodes off an expression, consolidating many repetitions of the same pattern into one. Masahiko Sawada and Amit Kapila traded patches to use HTAB for replication slot statistics. Vigneshwaran C and Amit Kapila traded patches to update decoding stats during replication slot release. Bharath Rupireddy sent in a patch to use WaitLatches for lock waiting in lazy_truncate_heap, in do_pg_stop_backup instead of a pg_usleep(), and for pre- and post- auth delay. Bharath Rupireddy sent in a patch to move the parallel_leader_participation GUC to the resource consumption category. Peter Smith sent in two more revisions of a patch to add support for prepared transactions to built-in logical replication, and add prepare API support for streaming transactions. Dan Carter sent in a patch to add a GSSAPI ccache_name option to libpq. Takamichi Osumi and Amit Kapila traded patches to fix an infelicity between TRUNCATE and synchronous logical replication. Amit Langote sent in a patch to fix a tupdesc leak in the pgoutput plugin. Bharath Rupireddy sent in a patch to skip VACUUM/ANALYZE of repeated relations. Pavel Stěhule sent in another revision of a patch to add a PSQL_WATCH_PAGER setting to psql. Masahiro Ikeda sent in another revision of a patch to make some performance improvements in reporting WAL stats without introducing a new variable. Fujii Masao sent in four more revisions of a patch to document the way TRUNCATE works on foreign tables, and ensure that any ONLY clauses in the original query not be passed to same. Hou Zhijie sent in a patch to fix a test case with the wrong parallel safety flag. Zeng Wenjing sent in another revision of a patch to implement global temporary tables. Simon Riggs sent in a patch to document the fact that altering a constraint to VALIDATE it requires a SHARE UPDATE EXCLUSIVE lock. Simon Riggs sent in a patch to reduce the lock level for CHECK constraints when allowing them to be NOT VALID. Daniil Zakhlystov sent in another revision of a patch to add zlib and zstd streaming compression, and implement libpq compression. Tom Lane sent in a patch to document Julian dates better. Álvaro Herrera sent in a patch to add tab-complete for ALTER TABLE .. DETACH PARTITION CONCURRENTLY to psql. Tom Stellard sent in a patch to jit to work around a potential data layout mismatch on s390x. Justin Pryzby sent in a patch to add COMPRESSION as a possibility when executing CREATE TABLE ... LIKE. Kyotaro HORIGUCHI sent in a patch to fix up some dubious messages. Tang sent in a patch to use pg_strncasecmp to replace strncmp when comparing things "pg_" in psql. Tang sent in another revision of a patch to support tab completion for upper case character inputs in psql. Hou Zhijie sent in another revision of a patch to make it possible to execute INSERT SELECT in parallel. Mark Dilger and Robert Haas traded patches to add toast pointer corruption checks to pg_amcheck. Bharath Rupireddy sent in a patch to MAXALIGN sizeof(BTPageOpaqueData) in PageGetItemIdCareful. Ajin Cherian sent in another revision of a patch to skip empty transactions for logical replication. Alexander Pyhalov sent in another revision of a patch to push down restrictinfos to CTEs, and attempt to prune partitions in the process. Thomas Munro sent in a patch to add a new TAP test under src/test/recovery that runs the regression tests with wal_consistency_checking=all. Joel Jacobson sent in a patch to fix pg_identify_object_as_address for event triggers. Takamichi Osumi sent in a patch to replace the check of RelationIsLogicallyLogged in ReorderBufferProcessTXN with an Assert to the same effect. David Rowley sent in another revision of a patch to speed up NOT IN() with a set of Consts by allowing hash tables to be used. David Rowley and Yura Sokolov traded patches to use simplehash.h instead of dynahash in SMgr. Julien Rouhaud sent in a patch to fix some oversights in query_id calculation. Tom Lane sent in a patch to make it required for callers of pq_getmessage to provide an upper length bound, and installs the same sort of short-vs-long message heuristic as libpq has in the server. |