== PostgreSQL Weekly News - December 8, 2019 ==
От | David Fetter |
---|---|
Тема | == PostgreSQL Weekly News - December 8, 2019 == |
Дата | |
Msg-id | 20191208112142.GA15566@fetter.org обсуждение исходный текст |
Список | pgsql-announce |
== PostgreSQL Weekly News - December 8, 2019 == The latest releases of PostgreSQL packages from apt.postgresql.org, debian.org, and ubuntu.com closed a vulnerability (CVE-2019-3466) in which the PostgreSQL superuser could escalate to root using a deficiency in the `pg_ctlcluster` command. Please follow the mitigation steps detailed below. https://www.postgresql.org/about/news/1998/ == PostgreSQL Local == PGDay SF will take place on January 21, 2020 at the Swedish American Hall in San Francisco. https://2020.pgdaysf.org/ pgDay Israel 2020 will take place on March 19, 2020 in Tel Aviv. The CfP is open through January 15, 2020. http://pgday.org.il/ pgDay Paris 2020 will be held in Paris, France on March 26, 2020 at Espace Saint-Martin. The CfP is open through December 31, 2019 at midnight, Paris time at https://2020.pgday.paris/callforpapers/ https://2020.pgday.paris/ Nordic PGDay 2020 will be held in Helsinki, Finland at the Hilton Helsinki Strand Hotel on March 24, 2020. The CfP is open through December 31, 2019 at https://2020.nordicpgday.org/cfp/ PGConf India 2020 will be on February 26-28, 2020 in Bengaluru, Karnataka. http://pgconf.in/ PostgreSQL@SCaLE is a two day, two track event which takes place on March 5-6, 2020, at Pasadena Convention Center, as part of SCaLE 18X. https://www.socallinuxexpo.org/scale/18x/postgresscale The German-speaking PostgreSQL Conference 2020 will take place on May 15, 2019 in Stuttgart. == PostgreSQL in the News == Planet PostgreSQL: http://planet.postgresql.org/ PostgreSQL Weekly News is brought to you this week by David Fetter Submit news and announcements by Sunday at 3:00pm PST8PDT to david@fetter.org. == Applied Patches == Andrew Dunstan pushed: - Add dummy versions of new SSL functions for non-SSL builds. This rectifies an oversight in commit 4dc6355210, which caused certain builds to fail, especially on Windows. https://git.postgresql.org/pg/commitdiff/c01ac6dcba0aa65ad237c3af4a67bc70da8e4b0e - Remove PQsslpassword function. This partially reverts commit 4dc6355210. The information returned by the function can be obtained by calling PQconninfo(), so the function is redundant. https://git.postgresql.org/pg/commitdiff/e75b1e33710249d1699850920c0390fb08ea5673 Michaël Paquier pushed: - Refactor query cancellation code into src/fe_utils/. Originally, this code was duplicated in src/bin/psql/ and src/bin/scripts/, but it can be useful for other frontend applications, like pgbench. This refactoring offers the possibility to setup a custom callback which would get called in the signal handler for SIGINT or when the interruption console events happen on Windows. Author: Fabien Coelho, with contributions from Michael Paquier Reviewed-by: Álvaro Herrera, Ibrar Ahmed Discussion: https://postgr.es/m/alpine.DEB.2.21.1910311939430.27369@lancre https://git.postgresql.org/pg/commitdiff/a4fd3aa719e8f97299dfcf1a8f79b3017e2b8d8b - Add query cancellation capabilities in pgbench init phase. This can be useful to stop data generation happening on the server for long-running queries caused by large scale factors. This cannot happen by default as data is generated on the client, but it is possible to control the initialization steps of pgbench to do that. Reported-by: Fujii Masao Author: Fabien Coelho Discussion: https://postgr.es/m/alpine.DEB.2.21.1910311939430.27369@lancre Discussion: https://postgr.es/m/CAHGQGwHWEyTXxZh46qgFY8a2bDF_EYeUdp3+_Hy=qLZSzwVPKg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/1d468b9ad81b9139b4a0b16b416c3597925af4b0 - Fix failures with TAP tests of pg_ctl on Windows. On Windows, all the hosts spawned by the TAP tests bind to 127.0.0.1. Hence, if there is a port conflict, starting a cluster would immediately fail. One of the test scripts of pg_ctl initializes a node without PostgresNode.pm, using the default port 5432. This could cause unexpected startup failures in the tests if an independent server was up and running on the same host (the reverse is also possible, though more unlikely). Fix this issue by assigning properly a free port to the node configured, in the same range used as for the other nodes part of the tests. Author: Michael Paquier Reviewed-by: Andrew Dunstan Discussion: https://postgr.es/m/20191202031444.GC1696@paquier.xyz Backpatch-through: 11 https://git.postgresql.org/pg/commitdiff/e5532f194c18e6c12c3aa9cb07291973dc8adb39 - Remove XLogFileNameP() from the tree. XLogFileNameP() is a wrapper routine able to build a palloc'd string for a WAL segment name, which is used for error string generation. There were several code paths where it gets called in a critical section, where memory allocation is not allowed. This results in triggering an assertion failure instead of generating the wanted error message. Another, more annoying, problem is that if the allocation to generate the WAL segment name fails on OOM, then the failure would be escalated to a PANIC. This removes the routine and all its callers are replaced with a logic using a fixed-size buffer. This way, all the existing mistakes are fixed and future ones are prevented. Author: Masahiko Sawada Reviewed-by: Michael Paquier, Álvaro Herrera Discussion: https://postgr.es/m/CA+fd4k5gC9H4uoWMLg9K_QfNrnkkdEw+-AFveob9YX7z8JnKTA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/9989d37d1c8dff12f20a1de8e1f470093136c893 - Fix thinkos from commit 9989d37. Error messages referring to incorrect WAL segment names could have been generated for a fsync() failure or when creating a new segment at the end of recovery. https://git.postgresql.org/pg/commitdiff/68ab982906187fba3530a01b01eb065ea9134298 - Remove unnecessary definition of CancelRequested in bin/scripts/. This variable is now part of the refactored code for query cancellation in fe_utils. This fixes an oversight in commit a4fd3aa. While on it, improve some header includes in bin/scripts/. Author: Michael Paquier Reviewed-by: Fabien Coelho Discussion: https://postgr.es/m/20191203101625.GF1634@paquier.xyz https://git.postgresql.org/pg/commitdiff/85b9ef5fe7533e5d07dcf2a2b67c8855a34e5125 - Use carriage returns for data insertion logs in pgbench on terminal. This is similar to what pg_basebackup and pg_rewind do when reporting cumulative data, and that's more user-friendly. Carriage returns are now used when stderr points to a terminal, and newlines are used in other cases, like a redirection to a log file. Author: Amit Langote Reviewed-by: Fabien Coelho Discussion: https://postgr.es/m/CA+HiwqFNwEjPeVaQsp2L7DyCPv1Eg1guwhrVhzMYqUJUk8ULKg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/d37ddb745be07502814635585cbf935363c8a33d - Remove configure check for OpenSSL's SSL_get_current_compression(). This function has been added in OpenSSL 0.9.8, which is the oldest version supported on HEAD, so checking for it at configure time is useless. Both the frontend and backend code did not even bother to use it. Reported-by: Daniel Gustafsson Author: Michael Paquier Reviewed-by: Daniel Gustafsson, Tom Lane Discussion: https://postgr.es/m/20191205083252.GE5064@paquier.xyz Discussion: https://postgr.es/m/98F7F99E-1129-41D8-B86B-FE3B1E286881@yesql.se https://git.postgresql.org/pg/commitdiff/28f4bba66b572d6b3b8dc4fcf4e585821e0a5363 - Improve some comments in pg_upgrade.c. When restoring database schemas on a new cluster, database "template1" is processed first, followed by all other databases in parallel, including "postgres". Both "postgres" and "template1" have some extra handling to propagate each one's properties, but comments were confusing regarding which one is processed where. Author: Julien Rouhaud Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/CAOBaU_a2iviTG7FE10yO_gcW+zQCHNFhRA_NDiktf3UR65BHdw@mail.gmail.com https://git.postgresql.org/pg/commitdiff/690c880269bf08dfb3f5bffb02be67e7e2a6c0f3 - Fix handling of OpenSSL's SSL_clear_options. This function is supported down to OpenSSL 0.9.8, which is the oldest version supported since 593d4e4 (from Postgres 10 onwards), and is used since e3bdb2d (from 11 onwards). It is defined as a macro from OpenSSL 0.9.8 to 1.0.2, and as a function in 1.1.0 and newer versions. However, the configure check present is only adapted for functions. So, even if the code would be able to compile, configure fails to detect the macro, causing it to be ignored when compiling the code with OpenSSL from 0.9.8 to 1.0.2. The code needs a configure check as per a364dfa, which has fixed a compilation issue with a past version of LibreSSL in NetBSD 5.1. On HEAD, just remove the configure check as the last release of NetBSD 5 is from 2014 (and we have no more buildfarm members for it). In 11 and 12, improve the configure logic so as both macros and functions are correctly detected. This makes NetBSD 5 still work on already-released branches, but not for 13 onwards. The patch for HEAD is from me, and Daniel has written the version to use for the back-branches. Author: Michael Paquier, Daniel Gustaffson Reviewed-by: Tom Lane Discussion: https://postgr.es/m/20191205083252.GE5064@paquier.xyz Discussion: https://postgr.es/m/98F7F99E-1129-41D8-B86B-FE3B1E286881@yesql.se Backpatch-through: 11 https://git.postgresql.org/pg/commitdiff/7d0bcb04771764aa3023e5a5089459d40dbd5e65 Tom Lane pushed: - Make postgres_fdw's "Relations" output agree with the rest of EXPLAIN. The relation aliases shown in the "Relations" line for a foreign scan didn't always agree with those used in the rest of EXPLAIN's output. The regression test result changes appearing here provide examples. It's really impossible for postgres_fdw to duplicate EXPLAIN's alias assignment logic during postgresGetForeignRelSize(), because of the de-duplication that EXPLAIN does on a global basis --- and anyway, trying to duplicate that would be unmaintainable. Instead, just put numeric rangetable indexes into the string, and convert those to table names/aliases in postgresExplainForeignScan, which does have access to the results of ruleutils.c's alias assignment logic. Aside from being more reliable, this shifts some work from planning to EXPLAIN, which is a good tradeoff for performance. (I also changed from using StringInfo to using psprintf, which makes the code slightly simpler and reduces its memory consumption.) A kluge required by this solution is that we have to reverse-engineer the rtoffset applied by setrefs.c. If that logic ever fails (presumably because the member tables of a join got offset by different amounts), we'll need some more cooperation with setrefs.c to keep things straight. But for now, there's no need for that. Arguably this is a back-patchable bug fix, but since this is a mostly cosmetic issue and there have been no field complaints, I'll refrain for now. Discussion: https://postgr.es/m/12424.1575168015@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/4526951d564a7eed512b4a0ac3b5893e0a115690 - Add a reverse-translation column number array to struct AppendRelInfo. This provides for cheaper mapping of child columns back to parent columns. The one existing use-case in examine_simple_variable() would hardly justify this by itself; but an upcoming bug fix will make use of this array in a mainstream code path, and it seems likely that we'll find other uses for it as we continue to build out the partitioning infrastructure. Discussion: https://postgr.es/m/12424.1575168015@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/ce76c0ba53e4bd0daf3db7a703671b27797b7244 - Fix EXPLAIN's column alias output for mismatched child tables. If an inheritance/partitioning parent table is assigned some column alias names in the query, EXPLAIN mapped those aliases onto the child tables' columns by physical position, resulting in bogus output if a child table's columns aren't one-for-one with the parent's. To fix, make expand_single_inheritance_child() generate a correctly re-mapped column alias list, rather than just copying the parent RTE's alias node. (We have to fill the alias field, not just adjust the eref field, because ruleutils.c will ignore eref in favor of looking at the real column names.) This means that child tables will now always have alias fields in plan rtables, where before they might not have. That results in a rather substantial set of regression test output changes: EXPLAIN will now always show child tables with aliases that match the parent table (usually with "_N" appended for uniqueness). But that seems like a net positive for understandability, since the parent alias corresponds to something that actually appeared in the original query, while the child table names didn't. (Note that this does not change anything for cases where an explicit table alias was written in the query for the parent table; it just makes cases without such aliases behave similarly to that.) Hence, while we could avoid these subsidiary changes if we made inherit.c more complicated, we choose not to. Discussion: https://postgr.es/m/12424.1575168015@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/55a1954da16e041f895e5c3a6abff13c5e3a4a2f - Further sync postgres_fdw's "Relations" output with the rest of EXPLAIN. EXPLAIN generally only adds schema qualifications to table names when VERBOSE is specified. In postgres_fdw's "Relations" output, table names were always so qualified, but that was an implementation restriction: in the original coding, we didn't have access to the verbose flag at the time the string was generated. After the code rearrangement of commit 4526951d5, we do have that info available at the right time, so make this output follow the normal rule. Discussion: https://postgr.es/m/12424.1575168015@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/bf39b3af6a9c6a036aae0742cf339fce662eee3a - Disallow non-default collation in ADD PRIMARY KEY/UNIQUE USING INDEX. When creating a uniqueness constraint using a pre-existing index, we have always required that the index have the same properties you'd get if you just let a new index get built. However, when collations were added, we forgot to add the index's collation to that check. It's hard to trip over this without intentionally trying to break it: you'd have to explicitly specify a different collation in CREATE INDEX, then convert it to a pkey or unique constraint. Still, if you did that, pg_dump would emit a script that fails to reproduce the index's collation. The main practical problem is that after a pg_upgrade the index would be corrupt, because its actual physical order wouldn't match what pg_index says. A more theoretical issue, which is new as of v12, is that if you create the index with a nondeterministic collation then it wouldn't be enforcing the normal notion of uniqueness, causing the constraint to mean something different from a normally-created constraint. To fix, just add collation to the conditions checked for index acceptability in ADD PRIMARY KEY/UNIQUE USING INDEX. We won't try to clean up after anybody who's already created such a situation; it seems improbable enough to not be worth the effort involved. (If you do get into trouble, a REINDEX should be enough to fix it.) In principle this is a long-standing bug, but I chose not to back-patch --- the odds of causing trouble seem about as great as the odds of preventing it, and both risks are very low anyway. Per report from Alexey Bashtanov, though this is not his preferred fix. Discussion: https://postgr.es/m/b05ce36a-cefb-ca5e-b386-a400535b1c0b@imap.cc https://git.postgresql.org/pg/commitdiff/fbbf68094c5ff3d513969d072126c92932e484da - Improve test coverage of ruleutils.c. While fooling around with the EXPLAIN improvements I've been working on, I noticed that there were some large gaps in our test coverage of ruleutils.c, according to the code coverage report. This commit just adds a few test cases to improve coverage of: get_name_for_var_field() get_update_query_targetlist_def() isSimpleNode() get_sublink_expr() https://git.postgresql.org/pg/commitdiff/830d1c73b3f4524bc897ddab5c6c3b47840c915a Peter Eisentraut pushed: - Fix alter_system_table test. Add workaround for disabling ENFORCE_REGRESSION_TEST_NAME_RESTRICTIONS warning for the test that tries to create a tablespace with a reserved name. Discussion: https://www.postgresql.org/message-id/flat/E1iacW7-0003h6-6U%40gemulon.postgresql.org https://git.postgresql.org/pg/commitdiff/88d45ac752ae49dbfafeb163b07381d3b8a6b601 - Update minimum SSL version. Change default of ssl_min_protocol_version to TLSv1.2 (from TLSv1, which means 1.0). Older versions are still supported, just not by default. TLS 1.0 is widely deprecated, and TLS 1.1 only slightly less so. All OpenSSL versions that support TLS 1.1 also support TLS 1.2, so there would be very little reason to, say, set the default to TLS 1.1 instead on grounds of better compatibility. The test suite overrides this new setting, so it can still run with older OpenSSL versions. Discussion: https://www.postgresql.org/message-id/flat/b327f8df-da98-054d-0cc5-b76a857cfed9%402ndquadrant.com https://git.postgresql.org/pg/commitdiff/b1abfec825472434ea445b9700eaa80cde9da86a Tomáš Vondra pushed: - Ensure maxlen is at leat 1 in dict_int. The dict_int text search dictionary template accepts maxlen parameter, which is then used to cap the length of input strings. The value was not properly checked, and the code simply does txt[d->maxlen] = '\0'; to insert a terminator, leading to segfaults with negative values. This commit simply rejects values less than 1. The issue was there since dct_int was introduced in 9.3, so backpatch all the way back to 9.4 which is the oldest supported version. Reported-by: cili Discussion: https://postgr.es/m/16144-a36a5bef7657047d@postgresql.org Backpatch-through: 9.4 https://git.postgresql.org/pg/commitdiff/b5273943679d22f58f1e1e269ad75e791172f557 Etsuro Fujita pushed: - Fix whitespace. https://git.postgresql.org/pg/commitdiff/4af77aa797d95f9f77d7b88a41b4e02bc62d8975 Álvaro Herrera pushed: - Offer pnstrdup to frontend code. We already had it on the backend. Frontend can also use it now. Discussion: https://postgr.es/m/20191204144021.GA17976@alvherre.pgsql https://git.postgresql.org/pg/commitdiff/0b9466fce2cf4f8c32b3a9170ca272829aa11e66 - Blind attempt at fixing ecpg/compatlib's build. It now needs libpgcommon in order to get pnstrdup. Per buildfarm. https://git.postgresql.org/pg/commitdiff/9a798234963cd1f746ded41453392c257a4f9fdd Robert Haas pushed: - Minor comment improvements for instrumentation.h. Remove a duplicated word. Add "of" or "# of" in a couple places for clarity and consistency. Start comments with a lower case letter as we do elsewhere in this file. Rafia Sabih https://git.postgresql.org/pg/commitdiff/42f362967d9f82043608610c689c24046e07497c - pg_basebackup: Refactor code for reading COPY and tar data. Add a new function ReceiveCopyData that does just that, taking a callback as an argument to specify what should be done with each chunk as it is received. This allows a single copy of the logic to be shared between ReceiveTarFile and ReceiveAndUnpackTarFile, and eliminates a few #ifdef conditions based on HAVE_LIBZ. While this is slightly more code, it's arguably clearer, and there is a pending patch that introduces additional calls to ReceiveCopyData. This commit is not intended to result in any functional change. Discussion: http://postgr.es/m/CA+TgmoYZDTHbSpwZtW=JDgAhwVAYvmdSrRUjOd+AYdfNNXVBDg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/431ba7bebf139b6edf5544ce18f39a1a4dcb8110 Jeff Davis pushed: - Fix comments in execGrouping.c. Commit 5dfc1981 missed updating some comments. Also, fix a comment typo found in passing. Author: Jeff Davis Discussion: https://postgr.es/m/9723131d247b919f94699152647fa87ee0bc02c2.camel%40j-davis.com https://git.postgresql.org/pg/commitdiff/30d47723fd151641e89d18ce775f1a102ff07ae2 == Pending Patches == Takamichi Osumi sent in another revision of a patch to implement CREATE OR REPLACE TRIGGER. Haozhou Wang sent in another revision of a patch to add smgr hooks to extend the logic of storage management. Dilip Kumar sent in another revision of a patch to fix an infelicity between logical_work_mem and logical streaming of large in-progress transactions. Michaël Paquier sent in another revision of a patch to allow CLUSTER, VACUUM FULL and REINDEX to change tablespace on the fly. Yuzuko Hosoya sent in a patch to fix a bug where autovacuum was failing to update the statistics of partitioned tables when it updated those of the partitions. Konstantin Knizhnik sent in another revision of a patch to implement global temporary tables. Konstantin Knizhnik sent in another revision of a patch to implement autoprepare. Fabien COELHO sent in another revision of a patch to psql to add a SHOW_ALL_RESULTS option. Zheng Li sent in another revision of a patch to transform NOT IN to ANTI JOIN. David Cramer sent in another revision of a patch to implement binary support for the pgoutput plugin. Peter Eisentraut sent in a patch to simplify passing of configure arguments to pg_config. Takuma Hoshiai sent in another revision of a patch to implement incremental maintenance for materialized views. Robert Haas sent in another revision of a patch to move the interrupting- handling code into subroutines, use PostgresSigHupHandler in more places, partially deduplicate interrupt handling for background processes, and extend the ProcSignal mechanism to support barriers. Alexey Bashtanov and Álvaro Herrera traded patches to log bind parameter values on error. Alexander Korotkov sent in another revision of a patch to implement KNN for B-Tree. Kyotaro HORIGUCHI sent in another revision of a patch to implement a shared-memory-based stats collector. Aleksey Kondratov sent in another revision of a patch to pg_rewind to add options to use restore_command from the command line or from the cluster configuration. Gareth Palmer sent in another revision of a patch to implement INSERT ... SET. John Naylor sent in another revision of a patch to handle UESCAPEs in the parser. Pengzhou Tang sent in a patch to rewrite the target view if it has a conditional-INSTEAD rule. Daniel Gustafsson sent in a patch to enable setting min/max TLS protocol in clientside libpq. Karl O. Pinc sent in another revision of a patch to clarify the documentation around SQL-callable base64. Amit Langote sent in another revision of a patch to compactify pgbench init progress output. Amit Kapila sent in another revision of a patch to implement block-level parallel VACUUM. Konstantin Knizhnik sent in a patch to add a view that tracks WAL per session. Amit Khandekar sent in another revision of a patch to use vfd for logrep. Guram Duka sent in a patch to fix server build and install problems under MSYS2. Peter Eisentraut sent in a patch to fix dumping of inherited generated columns. Peter Eisentraut sent in a patch to print backtrace on SIGABRT, SIGBUS, SIGSEGV. Peter Eisentraut sent in a patch to remove an obsolete comment about SET STATISTICS on system tables. Artur Zakirov sent in another revision of a patch to fix a bug that manifested as pg_upgrade fails with non-standard ACL. Daniel Gustafsson sent in another revision of a patch to implement online checksums. Tom Lane sent in two WIP revisions of a patch to make ruleutils deal in plans instead of planstates. Michaël Paquier sent in another revision of a patch to rework the manipulation and structure of attribute mappings. Rushabh Lathia sent in three more revisions of a patch to implement backup manifests. Andrew Gierth and Jakob Egger traded patches to fix a protocol problem with GSSAPI encryption. Michaël Paquier sent in another revision of a patch to remove uses of XLogFileNameP() in error string generation. Pengzhou Tang sent in a patch to extend TableAM routines to support ANALYZE scans. Jehan-Guillaume de Rorthais sent in a patch to merge parallel infos for each worker in EXPLAIN. Tomáš Vondra sent in another revision of a patch to apply multiple multivariate MCV lists when possible, and apply all available functional dependencies. Jeff Davis sent in another revision of a patch to implement memory-bounded hash aggregation. Julien Rouhaud sent in a patch to fix a misleading comment in pg_upgrade.c. Daniel Gustafsson sent in a patch to fix the autoconf check for SSL_clear_options. Michaël Paquier sent in another revision of a patch to remove support for OpenSSL 0.9.8 and 1.0.0. Michaël Paquier sent in another revision of a patch to replace strerror() with %m in pg_waldump. Amit Langote sent in another revision of a patch to support adding partitioned tables to a publication. Kyotaro HORIGUCHI sent in a patch to Allow wait event set to be registered to resource owner, infrastructure for asynchronous execution, and enable async operations in the PostgreSQL FDW. Kyotaro HORIGUCHI sent in another revision of a patch to keep track of writing on non-temporary relations, support atomic commit among multiple foreign servers, support same in the PostgreSQL FDW, and add documentation and regression tests for those things. Julien Rouhaud sent in another revision of a patch to remove pg_collation.collversion, add pg_depend.refobjversion, track collation versions for indexes, add a regcollation type, and preserve index dependencies on collation during pg_upgrade. Craig Ringer sent in a patch to print help in psql when users try to run pg_dump, etc. Julien Rouhaud sent in a patch to enable checksum verification in the backend. Nikolay Shaplov sent in a patch to split StdRdOptions into HeapOptions and ToastOptions. Justin Pryzby sent in another revision of a patch to ensure that vacuum errcontext shows the block being processed, and rename buf to avoid shadowing buf of another type. Jakob Egger sent in a patch to allow multiple ssl/gss negotiation attempts on the server, and ensure that libpq retries after failed ssl/gss negotiation. Noriyoshi Shinoda sent in a patch to insert a space into PROMPT2 in psql. Ranier Vilela sent in a patch to raise warnings to Level4 on Windows and corresponding settings in GCC to warn about shadow variables. Grigory Smolkin sent in another revision of a patch to add a 'latest' recovery target. Pavel Stěhule sent in another revision of a patch to add minscale and trim_scale functions for NUMERIC. Hadi Moshayedi sent in a patch to fix a comment in CreateLockFile.
В списке pgsql-announce по дате отправления: