== PostgreSQL Weekly News - January 12, 2020 ==
От | David Fetter |
---|---|
Тема | == PostgreSQL Weekly News - January 12, 2020 == |
Дата | |
Msg-id | 20200112205824.GA24917@fetter.org обсуждение исходный текст |
Список | pgsql-announce |
== PostgreSQL Weekly News - January 12, 2020 == == PostgreSQL Product News == psqlODBC 12.01.0000 released. https://odbc.postgresql.org/docs/release.html pgmetrics 1.8, a command-line tool for PostgreSQL metrics, released. https://pgmetrics.io/ pgAdmin4 4.17, a web- and native GUI control center for PostgreSQL, released. https://www.pgadmin.org/docs/pgadmin4/dev/release_notes_4_17.html == PostgreSQL Jobs for January == http://archives.postgresql.org/pgsql-jobs/2020-01/ == PostgreSQL Local == Postgres@CERN will be on January 17, 2020. https://indico.cern.ch/e/PGCERN2020 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. https://2020.pgday.paris/ Nordic PGDay 2020 will be held in Helsinki, Finland at the Hilton Helsinki Strand Hotel on March 24, 2020. 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. PGCon 2019 will take place in Ottawa on May 26-29, 2020. The CfP is open through January 19, 2020 at http://www.pgcon.org/2020/papers.php https://www.pgcon.org/2020/ == 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 == Peter Geoghegan pushed: - Remove redundant incomplete split assertion. The fastpath insert optimization's incomplete split flag Assert() is redundant. We'll reach the more general Assert() within _bt_findinsertloc() in all cases. (Besides, Assert()'ing that the rightmost page doesn't have the flag set never made much sense.) https://git.postgresql.org/pg/commitdiff/fc3100112395485f1c65848b273b3235de4aad07 - nbtree: BTREE_[MIN|NOVAC]_VERSION comment tweaks. Author: Peter Geoghegan Reviewed-By: Heikki Linnakangas https://git.postgresql.org/pg/commitdiff/a0dc3c19ed1cffed6616f8b8b5f21ad7d6830045 - nbtree: Rename BT_HEAP_TID_ATTR. Author: Peter Geoghegan Reviewed-By: Heikki Linnakangas https://git.postgresql.org/pg/commitdiff/1a4a0329650b0545a54afb3c317aa289fd817f8a Michaël Paquier pushed: - Remove support for OpenSSL 0.9.8 and 1.0.0. Support is out of scope from all the major vendors for these versions (for example RHEL5 uses a version based on 0.9.8, and RHEL6 uses 1.0.1), and it created some extra maintenance work. Upstream has stopped support of 0.9.8 in December 2015 and of 1.0.0 in February 2016. Since b1abfec, note that the default SSL protocol version set with ssl_min_protocol_version is TLSv1.2, whose support was added in OpenSSL 1.0.1, so there is no point to enforce ssl_min_protocol_version to TLSv1 in the SSL tests. Author: Michael Paquier Reviewed-by: Daniel Gustafsson, Tom Lane Discussion: https://postgr.es/m/20191205083252.GE5064@paquier.xyz https://git.postgresql.org/pg/commitdiff/7b283d0e1d1d79bf1c962d790c94d2a53f3bb38a - Remove dependency to system calls for memory allocation in refint. Failures in allocations could lead to crashes with NULL pointer dereferences . Memory context TopMemoryContext is used instead to keep alive the plans allocated in the session. A more specific context could be used here, but this is left for later. Reported-by: Jian Zhang Author: Michael Paquier Reviewed-by: Tom Lane, Andres Freund Discussion: https://postgr.es/m/16190-70181c803641c3dc@postgresql.org https://git.postgresql.org/pg/commitdiff/b0b6196386681383b8f0cb76df4fd35178a7371e - Revert "Forbid DROP SCHEMA on temporary namespaces". This reverts commit a052f6c, following complains from Robert Haas and Tom Lane. Backpatch down to 9.4, like the previous commit. Discussion: https://postgr.es/m/CA+TgmobL4npEX5=E5h=5Jm_9mZun3MT39Kq2suJFVeamc9skSQ@mail.gmail.com Backpatch-through: 9.4 https://git.postgresql.org/pg/commitdiff/65192e02441cedd106b6abebe0036fb8cc124fb3 - pgbench: Make more debug messages use common logging API. This is a follow-up of 30a3e772, making the output more consistent when using --debug for meta-command execution. Author: Michael Paquier Reviewed-by: Fabien Coelho Discussion: https://postgr.es/m/alpine.DEB.2.21.1912241100390.3339@pseudo https://git.postgresql.org/pg/commitdiff/39a5f2a94f8a3bcfdb3da7391427a63f8f88b210 - doc: Fix naming of SELinux. Reported-by: Tham Nguyen Discussion: https://postgr.es/m/157851402876.29175.12977878383183540468@wrigleys.postgresql.org Backpatch-through: 9.4 https://git.postgresql.org/pg/commitdiff/00b047fa67e9f4428a682bd90d5e6b08d2f8a87b - Remove incorrect assertion for INSERT in logical replication's publisher. On the publisher, it was assumed that an INSERT change cannot happen for a relation with no replica identity. However this is true only for a change that needs references to old rows, aka UPDATE or DELETE, so trying to use logical replication with a relation that has no replica identity led to an assertion failure in the publisher when issuing an INSERT. This commit removes the incorrect assertion, and adds more regression tests to provide coverage for relations without replica identity. Reported-by: Neha Sharma Author: Dilip Kumar, Michael Paquier Reviewed-by: Andres Freund Discussion: https://postgr.es/m/CANiYTQsL1Hb8_Km08qd32svrqNumXLJeoGo014O7VZymgOhZEA@mail.gmail.com Backpatch-through: 10 https://git.postgresql.org/pg/commitdiff/1088729e84cc382270c592ac8c57c323836f40ca Peter Eisentraut pushed: - Have logical replication subscriber fire column triggers. The logical replication apply worker did not fire per-column update triggers because the updatedCols bitmap in the RTE was not populated. This fixes that. Reviewed-by: Euler Taveira <euler@timbira.com.br> Discussion: https://www.postgresql.org/message-id/flat/21673e2d-597c-6afe-637e-e8b10425b240%402ndquadrant.com https://git.postgresql.org/pg/commitdiff/b9c130a1fdf16cd99afb390c186d19acaea7d132 - pgbench: Use common logging API. Author: Fabien COELHO <coelho@cri.ensmp.fr> Reviewed-by: Michael Paquier <michael@paquier.xyz> Reviewed-by: Peter Eisentraut <peter.eisentraut@2ndquadrant.com> Discussion: https://www.postgresql.org/message-id/flat/alpine.DEB.2.21.1912241100390.3339@pseudo https://git.postgresql.org/pg/commitdiff/30a3e772b4013d6593e4141cebd5ebfaff4d71a8 - Remove support for Python older than 2.6. Supporting very old Python versions is a maintenance burden, especially with the several variant test files to maintain for Python <2.6. Since we have dropped support for older OpenSSL versions in 7b283d0e1d1d79bf1c962d790c94d2a53f3bb38a, RHEL 5 is now effectively desupported, and that was also the only mainstream operating system still using Python versions before 2.6, so it's a good time to drop those as well. Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://www.postgresql.org/message-id/flat/98b69261-298c-13d2-f34d-836fd9c29b21%402ndquadrant.com https://git.postgresql.org/pg/commitdiff/37f21ed132d1c5aee88e81fee0a0b7e735673d35 - Modernize Python exception syntax in tests. Change the exception syntax used in the tests to use the more current except Exception as ex: rather than the old except Exception, ex: Since support for Python <2.6 has been removed, all supported versions now support the new style, and we can save one step in the Python 3 compatibility conversion. Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://www.postgresql.org/message-id/flat/98b69261-298c-13d2-f34d-836fd9c29b21%402ndquadrant.com https://git.postgresql.org/pg/commitdiff/45223fd9cefe483daa4af7740f15c004486636eb - Add support for automatically updating Unicode derived files. We currently have several sets of files generated from data provided by Unicode. These all have ad hoc rules and instructions for updating when new Unicode versions appear, and it's not done consistently. This patch centralizes and automates the process and makes it part of the release checklist. The Unicode and CLDR versions are specified in Makefile.global.in. There is a new make target "update-unicode" that downloads all the relevant files and runs the generation script. There is also a new script for generating the table of combining characters for ucs_wcwidth(). That table is now in a separate include file rather than hardcoded into the middle of other code. This is based on the script that was used for generating d8594d123c155aeecd47fc2450f62f5100b2fbf0, but the script itself wasn't committed at that time. Reviewed-by: John Naylor <john.naylor@2ndquadrant.com> Discussion: https://www.postgresql.org/message-id/flat/c8d05f42-443e-6c23-819b-05b31759a37c@2ndquadrant.com https://git.postgresql.org/pg/commitdiff/f85a485f89e2eb38499558c7489f108994410952 - Remove STATUS_FOUND. Replace the solitary use with a bool. Reviewed-by: Michael Paquier <michael@paquier.xyz> Discussion: https://www.postgresql.org/message-id/flat/a6f91ead-0ce4-2a34-062b-7ab9813ea308%402ndquadrant.com https://git.postgresql.org/pg/commitdiff/c096a804d9dcc46f1a8ebf2742696aca90b2dfcf - Make lsn argument of walrcv_create_slot() optional. Some callers are not using it, so it's wasteful to have to specify it. Reviewed-by: Masahiko Sawada <masahiko.sawada@2ndquadrant.com> Discussion: https://www.postgresql.org/message-id/CA+fd4k4BcYrYucNfTnK-CQX3+jsG+PRPEhHAUSo-W4P0Lec57A@mail.gmail.com https://git.postgresql.org/pg/commitdiff/c67a55da4ea0caa18547fd1533110e9126ba8d47 Tom Lane pushed: - Add functions min_scale(numeric) and trim_scale(numeric). These allow better control of trailing zeroes in numeric values. Pavel Stehule, based on an old proposal of Marko Tiikkaja's; review by Karl Pinc Discussion: https://postgr.es/m/CAFj8pRDjs-navGASeF0Wk74N36YGFJ+v=Ok9_knRa7vDc-qugg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/20d6225d1656102534a73d9675bc531ff0e5203b - Reduce the number of GetFlushRecPtr() calls done by walsenders. Since the WAL flush position only moves forward, it's safe to cache its previous value within each walsender process, and update from shared memory only once we've caught up to the previously-seen value. When there are many active walsenders, this makes for a very significant reduction in the amount of contention on the XLogCtl->info_lck spinlock. This patch also adjusts the logic so that we update our idea of the flush position after processing a WAL record, rather than beforehand. This may cause us to realize we're not caught up when the preceding coding would've thought that we were, but that seems all to the good; it may avoid a useless sleep-and-wakeup cycle. Back-patch to v12. The contention problem exists in prior branches, but it's much less severe (due to inefficiencies elsewhere) so there seems no need to take any risk of back-patching further. Pierre Ducroquet, reviewed by Julien Rouhaud Discussion: https://postgr.es/m/2931018.Vxl9zapr77@pierred-pdoc https://git.postgresql.org/pg/commitdiff/e369f3708636c66718796fc8269d253432410392 - Clean up management of IP addresses in our SSL tests. Instead of hard-wiring the netmask as /32, allow it to be specified where we specify the server address. This will ease changing the test to use IPv6, when/if somebody wants to do that. Also remove the hard-wired pg_hba.conf entries for IPv6 (::1/128). These have never had any usefulness, because the client side of the tests has always explicitly connected to $SERVERHOSTADDR which has always been set to IPv4 (127.0.0.1). All they accomplish is to break the test on non-IPv6-supporting hosts, and besides that they violate the express intent of the code to minimize the server's range of allowed connections. This could be back-patched, perhaps, but for now I don't see a need to. Discussion: https://postgr.es/m/1899.1578356089@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/2bd0735b954b14dcfab85d57fc4a0c7f9826fbb1 - Fix handling of generated columns in ALTER TABLE. ALTER TABLE failed if a column referenced in a GENERATED expression had been added or changed in type earlier in the ALTER command. That's because the GENERATED expression needs to be evaluated against the table's updated tuples, but it was being evaluated against the original tuples. (Fortunately the executor has adequate cross-checks to notice the mismatch, so we just got an obscure error message and not anything more dangerous.) Per report from Andreas Joseph Krogh. Back-patch to v12 where GENERATED was added. Discussion: https://postgr.es/m/VisenaEmail.200.231b0a41523275d0.16ea7f800c7@tc7-visena https://git.postgresql.org/pg/commitdiff/4ac8aaa36fa24639989849c8109f8b52e9544fd1 - Improve the handling of result type coercions in SQL functions. Use the parser's standard type coercion machinery to convert the output column(s) of a SQL function's final SELECT or RETURNING to the type(s) they should have according to the function's declared result type. We'll allow any case where an assignment-level coercion is available. Previously, we failed unless the required coercion was a binary-compatible one (and the documentation ignored this, falsely claiming that the types must match exactly). Notably, the coercion now accounts for typmods, so that cases where a SQL function is declared to return a composite type whose columns are typmod-constrained now behave as one would expect. Arguably this aspect is a bug fix, but the overall behavioral change here seems too large to consider back-patching. A nice side-effect is that functions can now be inlined in a few cases where we previously failed to do so because of type mismatches. Discussion: https://postgr.es/m/18929.1574895430@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/913bbd88dc6b859c70ebb48107b38d693c4c6673 - Reconsider the representation of join alias Vars. The core idea of this patch is to make the parser generate join alias Vars (that is, ones with varno pointing to a JOIN RTE) only when the alias Var is actually different from any raw join input, that is a type coercion and/or COALESCE is necessary to generate the join output value. Otherwise just generate varno/varattno pointing to the relevant join input column. In effect, this means that the planner's flatten_join_alias_vars() transformation is already done in the parser, for all cases except (a) columns that are merged by JOIN USING and are transformed in the process, and (b) whole-row join Vars. In principle that would allow us to skip doing flatten_join_alias_vars() in many more queries than we do now, but we don't have quite enough infrastructure to know that we can do so --- in particular there's no cheap way to know whether there are any whole-row join Vars. I'm not sure if it's worth the trouble to add a Query-level flag for that, and in any case it seems like fit material for a separate patch. But even without skipping the work entirely, this should make flatten_join_alias_vars() faster, particularly where there are nested joins that it previously had to flatten recursively. An essential part of this change is to replace Var nodes' varnoold/varoattno fields with varnosyn/varattnosyn, which have considerably more tightly-defined meanings than the old fields: when they differ from varno/varattno, they identify the Var's position in an aliased JOIN RTE, and the join alias is what ruleutils.c should print for the Var. This is necessary because the varno change destroyed ruleutils.c's ability to find the JOIN RTE from the Var's varno. Another way in which this change broke ruleutils.c is that it's no longer feasible to determine, from a JOIN RTE's joinaliasvars list, which join columns correspond to which columns of the join's immediate input relations. (If those are sub-joins, the joinaliasvars entries may point to columns of their base relations, not the sub-joins.) But that was a horrid mess requiring a lot of fragile assumptions already, so let's just bite the bullet and add some more JOIN RTE fields to make it more straightforward to figure that out. I added two integer-List fields containing the relevant column numbers from the left and right input rels, plus a count of how many merged columns there are. This patch depends on the ParseNamespaceColumn infrastructure that I added in commit 5815696bc. The biggest bit of code change is restructuring transformFromClauseItem's handling of JOINs so that the ParseNamespaceColumn data is propagated upward correctly. Other than that and the ruleutils fixes, everything pretty much just works, though some processing is now inessential. I grabbed two pieces of low-hanging fruit in that line: 1. In find_expr_references, we don't need to recurse into join alias Vars anymore. There aren't any except for references to merged USING columns, which are more properly handled when we scan the join's RTE. This change actually fixes an edge-case issue: we will now record a dependency on any type-coercion function present in a USING column's joinaliasvar, even if that join column has no references in the query text. The odds of the missing dependency causing a problem seem quite small: you'd have to posit somebody dropping an implicit cast between two data types, without removing the types themselves, and then having a stored rule containing a whole-row Var for a join whose USING merge depends on that cast. So I don't feel a great need to change this in the back branches. But in theory this way is more correct. 2. markRTEForSelectPriv and markTargetListOrigin don't need to recurse into join alias Vars either, because the cases they care about don't apply to alias Vars for USING columns that are semantically distinct from the underlying columns. This removes the only case in which markVarForSelectPriv could be called with NULL for the RTE, so adjust the comments to describe that hack as being strictly internal to markRTEForSelectPriv. catversion bump required due to changes in stored rules. Discussion: https://postgr.es/m/7115.1577986646@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/9ce77d75c5ab094637cc4a446296dc3be6e3c221 - Skip tab-completion tests if envar SKIP_READLINE_TESTS is defined. Experience so far suggests that getting these tests to pass on all libedit versions that are out there may be impossible, or require dumbing down the tests to the point of uselessness. So we need to provide a way to skip them when the user knows they'll fail. An environment variable is probably the most convenient way to deal with this; it's easy for, e.g., a buildfarm animal's configuration to set up. Discussion: https://postgr.es/m/9594.1578586797@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/e7ee433137b6eb3678deeebc68be53d58aa1e5d3 - Extensive code review for GSSAPI encryption mechanism. Fix assorted bugs in handling of non-blocking I/O when using GSSAPI encryption. The encryption layer could return the wrong status information to its caller, resulting in effectively dropping some data (or possibly in aborting a not-broken connection), or in a "livelock" situation where data remains to be sent but the upper layers think transmission is done and just go to sleep. There were multiple small thinkos contributing to that, as well as one big one (failure to think through what to do when a send fails after having already transmitted data). Note that these errors could cause failures whether the client application asked for non-blocking I/O or not, since both libpq and the backend always run things in non-block mode at this level. Also get rid of use of static variables for GSSAPI inside libpq; that's entirely not okay given that multiple connections could be open at once inside a single client process. Also adjust a bunch of random small discrepancies between the frontend and backend versions of the send/receive functions -- except for error handling, they should be identical, and now they are. Also extend the Kerberos TAP tests to exercise cases where nontrivial amounts of data need to be pushed through encryption. Before, those tests didn't provide any useful coverage at all for the cases of interest here. (They still might not, depending on timing, but at least there's a chance.) Per complaint from pmc@citylink and subsequent investigation. Back-patch to v12 where this code was introduced. Discussion: https://postgr.es/m/20200109181822.GA74698@gate.oper.dinoex.org https://git.postgresql.org/pg/commitdiff/2c0cdc8183654c090c9a1e2f1b5e96ba4634e16a Robert Haas pushed: - Increase the maximum value of track_activity_query_size. This one-line change provoked a lot of discussion, but ultimately the consensus seems to be that allowing a larger value might be useful to somebody, and probably won't hurt anyone who chooses not to take advantage of the higher maximum limit. Vyacheslav Makarov, reviewed by many people. Discussion: http://postgr.es/m/7b5ecc5a9991045e2f13c84e3047541d@postgrespro.ru https://git.postgresql.org/pg/commitdiff/814727858918154bdde9dbdfb99c544b52eb8818 - tableam: Allow choice of toast AM. Previously, the toast table had to be implemented by the same AM that was used for the main table, which was bad, because the detoasting code won't work with anything but heap. This commit doesn't fix the latter problem, although there's another patch coming which does, but it does let you pick something that works (i.e. heap, right now). Patch by me, reviewed by Andres Freund. Discussion: http://postgr.es/m/CA+TgmoZv-=2iWM4jcw5ZhJeL18HF96+W1yJeYrnGMYdkFFnEpQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/83322e38da1aa054e1b144cb37e6074a86854199 - tableam: New callback relation_fetch_toast_slice. Instead of always calling heap_fetch_toast_slice during detoasting, invoke a table AM callback which, when the toast table is a heap table, will be heap_fetch_toast_slice. This makes it possible for a table AM other than heap to be used as a TOAST table. It also completes the series of commits intended to improve the interaction of tableam with TOAST that began with commit 8b94dab06617ef80a0901ab103ebd8754427ef5a; detoast.c is now, hopefully, fully AM-independent. Patch by me, reviewed by Andres Freund and Peter Eisentraut. Discussion: http://postgr.es/m/CA+TgmoZv-=2iWM4jcw5ZhJeL18HF96+W1yJeYrnGMYdkFFnEpQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/ce242ae154dde3217971c6f262705d80999f4e00 - Remove bogus 'return'. Per the buildfarm, via Michael Paquier. Discussion: http://postgr.es/m/20200108032648.GE3413@paquier.xyz https://git.postgresql.org/pg/commitdiff/5acf6d8bb4ec23349604c7c15111959e657ff294 - Add pg_shmem_allocations view. This tells you about allocations that have been made from the main shared memory segment. The original patch also tried to show information about dynamic shared memory allocation as well, but I decided to leave that problem for another time. Andres Freund and Robert Haas, reviewed by Michael Paquier, Marti Raudsepp, Tom Lane, Álvaro Herrera, and Kyotaro Horiguchi. Discussion: http://postgr.es/m/20140504114417.GM12715@awork2.anarazel.de https://git.postgresql.org/pg/commitdiff/ed10f32e37e9a16814c25e400d7826745ae3c797 Álvaro Herrera pushed: - pg_stat_activity: show NULL stmt start time for walsenders. Returning a non-NULL time is pointless, sinc a walsender is not a process that would be running normal transactions anyway, but the code was unintentionally exposing the process start time intermittently, which was not only bogus but it also confused monitoring systems looking for idle transactions. Fix by avoiding all updates in walsenders. Backpatch to 11, where walsenders started appearing in pg_stat_activity. Reported-by: Tomas Vondra Discussion: https://postgr.es/m/20191209234409.exe7osmyalwkt5j4@development https://git.postgresql.org/pg/commitdiff/b175bd59fa54a90d21bc541f812643ac45281b98 - Reimplement nullification of walsender timestamp. Make the value null only at pg_stat_activity-output time, as suggested by Tom Lane, instead of messing with the internal state. This should appease buildfarm members with force_parallel_mode=regress, which are running parallel queries on logical replication walsenders. The fact that walsenders can run parallel queries should perhaps be studied more carefully, but for the moment let's get rid of the red blots in buildfarm. Backpatch to pg10, like the previous commit. Discussion: https://postgr.es/m/30804.1578438763@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/f5d28710c707ad602cd869602e092cc9d538cbb9 - Clean up representation of flags in struct ReorderBufferTXN. This simplifies addition of further flags. Author: Nikhil Sontakke Discussion: https://postgr.es/m/CAMGcDxeViP+R-OL7QhzUV9eKCVjURobuY1Zijik4Ay_Ddwo4Cg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/a7b6ab5db1d35438112f74f3531354ddd61970b5 Stephen Frost pushed: - Improve GSSAPI Encryption startup comment in libpq. The original comment was a bit confusing, pointed out by Alvaro Herrera. Thread: https://postgr.es/m/20191224151520.GA16435%40alvherre.pgsql https://git.postgresql.org/pg/commitdiff/8dd1511e39acd729020e151deb15a958300ebff5 Andrew Dunstan pushed: - Allow 'sslkey' and 'sslcert' in postgres_fdw user mappings. This allows different users to authenticate with different certificates. Author: Craig Ringer https://git.postgresql.org/pg/commitdiff/f5fd995a1a24e6571d26b1e29c4dc179112b1003 Magnus Hagander pushed: - Clarify that pg_trgm is used in example. Reported-by: Octopus ZHANG Author: Daniel Gustafsson https://git.postgresql.org/pg/commitdiff/e3019f631d1f2e21667ad05f903c52d904b9048c Noah Misch pushed: - Maintain valid md.c state when FileClose() fails. FileClose() failure ordinarily causes a PANIC. Suppose the user disables that PANIC via data_sync_retry=on. After mdclose() issued a FileClose() that failed, calls into md.c raised SIGSEGV. This fix adds repalloc() calls during mdclose(); update a comment about ignoring repalloc() cost. The rate of relation segment count change is a minor factor; more relevant to overall performance is the rate of mdclose() and subsequent re-opening of segments. Back-patch to v10, where commit 45e191e3aa62d47a8bc1a33f784286b2051f45cb introduced the bug. Reviewed by Kyotaro Horiguchi. Discussion: https://postgr.es/m/20191222091930.GA1280238@rfd.leadboat.com https://git.postgresql.org/pg/commitdiff/38fc056074e034087af8a1589507631682a279d1 == Pending Patches == Justin Pryzby sent in a patch to fix the documentation for ALTER TABLE so it doesn't mention table-specific planner parameters. Peter Eisentraut sent in a patch to propagate ALTER TABLE ... SET STORAGE to indexes. Pierre Ducroquet and Marc Cousin traded patches to speed up XLogSendLogical. Justin Pryzby sent in a patch to use correlation statistic in costing bitmap scans. Andrew Dunstan and Pavel Stěhule traded patches to implement jsonb_set_lax(). Karl O. Pinc sent in two more revisions of a patch to document base64 encoding. Peter Eisentraut sent in a patch to fix base backup with database OIDs larger than INT32_MAX. Dean Rasheed sent in a patch to make the rewriter prevent auto-updates on views with conditional INSTEAD rules. Amit Langote sent in another revision of a patch to support adding partitioned tables to PUBLICATIONs. Amit Langote sent in a patch to avoid checking child truncate permissions for partition hierarchies. Richard Guo sent in another revision of a patch to add support for parallel grouping sets. Adam Lee sent in a patch to use the logical tape APIs for hash agg spilling. Álvaro Herrera sent in a patch to fix a bug which manifested as xact_start for walsender & logical decoding not updated. Dagfinn Ilmari Mannsåker sent in a patch to fix the parallel make of libpq. Heikki Linnakangas and Peter Geoghegan traded patches to add deduplication to nbtree. Michaël Paquier sent in four more revisions of a patch to fix a bug that manifested as an Assert failure due to "drop schema pg_temp_3 cascade" for temporary tables. Amit Kapila and Mahendra Singh traded patches to implement block-level parallel VACUUM. Alexander Korotkov sent in two more revisions of a patch to avoid GIN full scans when possible. Robert Haas sent in three revisions of a patch to do better checking for read-only queries and refactor the code to disentangle other checks. Kyotaro HORIGUCHI sent in another revision of a patch to make sure to save updated physical slot. godjan sent in a patch to verify true root on replicas with amcheck. Fabien COELHO sent in another revision of a patch to pgbench to refactor init functions with buffers. Álvaro Herrera sent in a patch to fix the coding in WalSndWaitForWal. Fabien COELHO sent in another revision of a patch to pgbench to rework variable management. Gang Deng sent in a patch to fix a parallel hash join performance issue. Fujii Masao sent in two more revisions of a patch to add pg_file_sync() to adminpack. Mark Lorenz sent in a patch to add a feature for to_date() conversion using patterns 'YYYY-WW', 'YYYY-WW-D', 'YYYY-MM-W' and 'YYYY-MM-W-D'. Álvaro Herrera sent in a patch to fix replay of create database records on standby. Álvaro Herrera sent in a patch to implement standby apply lag on inactive servers. Dilip Kumar and Álvaro Herrera traded patches to fix an infelicity between logical_work_mem and logical streaming of large in-progress transactions. Daniel Gustafsson sent in another revision of a patch to enable setting min/max TLS protocol in clientside libpq. Michaël Paquier sent in a patch to remove an Assert from logicalrep_write_insert(). Peter Eisentraut sent in another revision of a patch to implement ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION. Peter Eisentraut sent in a patch to expose PQbackendPID() through the walreceiver API, and ensure that walreceiver uses a temporary replication slot by default. Amit Kapila sent in a patch to revert the test added by commit d207038053. David Fetter sent in a patch to micro-optimize pq_begintypsend() and appendStringInfoSpaces(), as these appeared to be in hot paths. Tomáš Vondra sent in another revision of a patch to fix a patch which implemented DECLARE STATEMENT in ECPG.
В списке pgsql-announce по дате отправления: