== PostgreSQL Weekly News - September 15, 2019 ==
От | David Fetter |
---|---|
Тема | == PostgreSQL Weekly News - September 15, 2019 == |
Дата | |
Msg-id | 20190915222829.GA23074@fetter.org обсуждение исходный текст |
Список | pgsql-announce |
== PostgreSQL Weekly News - September 15, 2019 == PostgreSQL 12 Beta 4 released. Test! https://www.postgresql.org/about/news/1972 PGConf India 2020 will be on February 26-28, 2020 in Bengaluru, Karnataka. The CfP is open until November 15, 2019. http://pgconf.in/ PGDay Down Under 2019 will be held on December 15, 2019 in Sydney, Australia. The CfP is open until 5pm AEST AEST on October 5th, 2019. https://pgdu.org/ == PostgreSQL Product News == Pgpool-II 4.1 beta1 released. https://www.pgpool.net/docs/41/en/html/ pgcrockford, a Crockford Base 32 encoding for unsigned ints, released. https://github.com/grzm/pgcrockford == PostgreSQL Jobs for September == http://archives.postgresql.org/pgsql-jobs/2019-09/ == PostgreSQL Local == PostgresConf South Africa 2019 will take place in Johannesburg on October 8-9, 2019 https://postgresconf.org/conferences/SouthAfrica2019 PostgreSQL Conference Europe 2019 will be held on October 15-18, 2019 in Milan, Italy. https://2019.pgconf.eu/ 2Q PGConf 2019 will be held December 4 & 5 in Chicago. The CFP is open through August 30, 2019. https://www.2qpgconf.com/ pgDay Paris 2020 will be held in Paris, France on March 26, 2020 at Espace Saint-Martin. http://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 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 == Alexander Korotkov pushed: - Fix handling Inf and Nan values in GiST pairing heap comparator. Previously plain float comparison was used in GiST pairing heap. Such comparison doesn't provide proper ordering for value sets containing Inf and Nan values. This commit fixes that by usage of float8_cmp_internal(). Note, there is remaining problem with NULL distances, which are represented as Inf in pairing heap. It would be fixes in subsequent commit. Backpatch to all supported versions. Reported-by: Andrey Borodin Discussion: https://postgr.es/m/CAPpHfdsNvNdA0DBS%2BwMpFrgwT6C3-q50sFVGLSiuWnV3FqOJuQ%40mail.gmail.com Author: Alexander Korotkov Reviewed-by: Heikki Linnakangas Backpatch-through: 9.4 https://git.postgresql.org/pg/commitdiff/e5d8f3596100da0d38a38513c69e803b7fe7041a - Fix handling of NULL distances in KNN-GiST. In order to implement NULL LAST semantic GiST previously assumed distance to the NULL value to be Inf. However, our distance functions can return Inf and NaN for non-null values. In such cases, NULL LAST semantic appears to be broken. This commit fixes that by introducing separate array of null flags for distances. Backpatch to all supported versions. Discussion: https://postgr.es/m/CAPpHfdsNvNdA0DBS%2BwMpFrgwT6C3-q50sFVGLSiuWnV3FqOJuQ%40mail.gmail.com Author: Alexander Korotkov Backpatch-through: 9.4 https://git.postgresql.org/pg/commitdiff/02f90879e75b3d4ccdba1ec7c3cad6af08dff77d - Fix handling of non-key columns get_index_column_opclass(). f2e40380 introduces support of non-key attributes in GiST indexes. Then if get_index_column_opclass() is asked by gistproperty() to get an opclass of non-key column, it returns garbage past oidvector value. This commit fixes that by making get_index_column_opclass() return InvalidOid in this case. Discussion: https://postgr.es/m/20190902231948.GA5343%40alvherre.pgsql Author: Nikita Glukhov, Alexander Korotkov Backpatch-through: 12 https://git.postgresql.org/pg/commitdiff/7e04160390464cd39690d36054e0ac5e4f1bf227 - Documentation improvements to jsonpath. Besides cosmetic improvements it removes statement that operators necessary need to be separated from operands with spaces, which is not really true. Discussion: https://postgr.es/m/CAEkD-mDUZrRE%3Dk-FznEg4Ed2VdjpZCyHoyo%2Bp0%2B8KvHqR%3DpNVQ%40mail.gmail.com Author: Liudmila Mantrova, Alexander Lakhin Reviewed-by: Alexander Korotkov, Alvaro Herrera Backpatch-through: 12 https://git.postgresql.org/pg/commitdiff/c30fc9ddd596f7981555318d1c236fc55279cac8 - Typo fixes for documentation. Discussion: https://postgr.es/m/CAEkD-mDUZrRE%3Dk-FznEg4Ed2VdjpZCyHoyo%2Bp0%2B8KvHqR%3DpNVQ%40mail.gmail.com Author: Liudmila Mantrova, Alexander Lakhin Reviewed-by: Alexander Korotkov, Alvaro Herrera Backpatch-through: 12 https://git.postgresql.org/pg/commitdiff/eb57bd9c1d83a20eaff559a53b2f584dcd0668a8 Tom Lane pushed: - Fix RelationIdGetRelation calls that weren't bothering with error checks. Some of these are quite old, but that doesn't make them not bugs. We'd rather report a failure via elog than SIGSEGV. While at it, uniformly spell the error check as !RelationIsValid(rel) rather than a bare rel == NULL test. The machine code is the same but it seems better to be consistent. Coverity complained about this today, not sure why, because the mistake is in fact old. https://git.postgresql.org/pg/commitdiff/1192e3fb54ce57f57399490d70af617ebc12605c - Be more careful about port selection in src/test/ldap/. Don't just assume that the next port is free; it might not be, or if we're really unlucky it might even be out of the TCP range. Do it honestly with two get_free_port() calls instead. This is surely a pretty low-probability problem, but I think it explains a buildfarm failure seen today, so let's fix it. Back-patch to v11 where this script was added. Discussion: https://postgr.es/m/25124.1568052346@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/3146f5257f16d34c95163974f42a13d99141b977 - Reduce overhead of scanning the backend[] array in LISTEN/NOTIFY. Up to now, async.c scanned its whole array of per-backend state whenever it needed to find listening backends. That's expensive if MaxBackends is large, so extend the data structure with list links that thread the active entries together. A downside of this change is that asyncQueueUnregister (unregister a listening backend at backend exit) now requires exclusive not shared lock, and it can take awhile if there are many other listening backends. We could improve the latter issue by using a doubly- not singly-linked list, but it's probably not worth the storage space; typical usage patterns for LISTEN/NOTIFY have fairly long-lived listeners. In return for that, Exec_ListenPreCommit (initially register a listening backend), SignalBackends, and asyncQueueAdvanceTail get significantly faster when MaxBackends is much larger than the number of listening backends. If most of the potential backend slots are listening, we don't win, but that's a case where the actual interprocess-signal overhead is going to swamp these considerations anyway. Martijn van Oosterhout, hacked a bit more by me Discussion: https://postgr.es/m/CADWG95vtRBFDdrx1JdT1_9nhOFw48KaeTev6F_LtDQAFVpSPhA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/bca6e64354a2b8ed56751eb12bbf9429490c0811 - Rearrange postmaster's startup sequence for better syslogger results. This is a second try at what commit 57431a911 tried to do, namely, launch the syslogger before we open postmaster sockets so that our messages about the sockets end up in the syslogger files. That commit fell foul of a bunch of subtle issues caused by trying to launch a postmaster child process before creating shared memory. Rather than messing with that interaction, let's postpone opening the sockets till after we launch the syslogger. This would not have been terribly safe before commit 7de19fbc0, because we relied on socket opening to detect whether any competing postmasters were using the same port number. But now that we choose IPC keys without regard to the port number, there's no interaction to worry about. Also delay creation of the external PID file (if requested) till after the sockets are open, since external code could plausibly be relying on that ordering of events. And postpone most of the work of RemovePgTempFiles() so that that potentially-slow processing still happens after we make the external PID file. We have to be a bit careful about that last though: as noted in the discussion subsequent to bug #15804, EXEC_BACKEND builds still have to clear the parameter-file temp dir before launching the syslogger. Patch by me; thanks to Michael Paquier for review/testing. Discussion: https://postgr.es/m/15804-3721117bf40fb654@postgresql.org https://git.postgresql.org/pg/commitdiff/9a86f03b4e8c8f16eca7faebcb4a46330e431102 - Fix usage of whole-row variables in WCO and RLS policy expressions. Since WITH CHECK OPTION was introduced, ExecInitModifyTable has initialized WCO expressions with the wrong plan node as parent -- that is, it passed its input subplan not the ModifyTable node itself. Up to now we thought this was harmless, but bug #16006 from Vinay Banakar shows it's not: if the input node is a SubqueryScan then ExecInitWholeRowVar can get confused into doing the wrong thing. (The fact that ExecInitWholeRowVar contains such logic is certainly a horrid kluge that doesn't deserve to live, but figuring out another way to do that is a task for some other day.) Andres had already noticed the wrong-parent mistake and fixed it in commit 148e632c0, but not being aware of any user-visible consequences, he quite reasonably didn't back-patch. This patch is simply a back-patch of 148e632c0, plus addition of a test case based on bug #16006. I also added the test case to v12/HEAD, even though the bug is already fixed there. Back-patch to all supported branches. 9.4 lacks RLS policies so the new test case doesn't work there, but I'm pretty sure a test could be devised based on using a whole-row Var in a plain WITH CHECK OPTION condition. (I lack the cycles to do so myself, though.) Andres Freund and Tom Lane Discussion: https://postgr.es/m/16006-99290d2e4642cbd5@postgresql.org Discussion: https://postgr.es/m/20181205225213.hiwa3kgoxeybqcqv@alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/7f1f72c44400e6fef3436b05f1ad0f6bacd03d96 - Make tuplesort_set_bound() assertions more comprehensible, hopefully. Add the comments that I griped were missing. Also re-order tests so that parallelism-related tests aren't randomly separated from each other. Discussion: https://postgr.es/m/CAAaqYe9GD__4Crm=ddz+-XXcNhfY_V5gFYdLdmkFNq=2VHO56Q@mail.gmail.com https://git.postgresql.org/pg/commitdiff/b360e0fcd7dcffe3238187209911a6f523057b0c - Fix bogus sizeof calculations. Noted by Coverity. Typo in 27cc7cd2b, so back-patch to v12 as that was. https://git.postgresql.org/pg/commitdiff/d8122578098d3ff20a9a12d25807e56cecac673c Peter Eisentraut pushed: - Improve new AND CHAIN tests. Tweak the tests so that we're not just testing the default setting of transaction_read_only. Reported-by: fn ln <emuser20140816@gmail.com> https://git.postgresql.org/pg/commitdiff/89b160c32045dd85cc6f9ae6248e34a72931ac67 Andres Freund pushed: - Reorder EPQ work, to fix rowmark related bugs and improve efficiency. In ad0bda5d24ea I changed the EvalPlanQual machinery to store substitution tuples in slot, instead of using plain HeapTuples. The main motivation for that was that using HeapTuples will be inefficient for future tableams. But it turns out that that conversion was buggy for non-locking rowmarks - the wrong tuple descriptor was used to create the slot. As a secondary issue 5db6df0c0 changed ExecLockRows() to begin EPQ earlier, to allow to fetch the locked rows directly into the EPQ slots, instead of having to copy tuples around. Unfortunately, as Tom complained, that forces some expensive initialization to happen earlier. As a third issue, the test coverage for EPQ was clearly insufficient. Fixing the first issue is unfortunately not trivial: Non-locked row marks were fetched at the start of EPQ, and we don't have the type information for the rowmarks available at that point. While we could change that, it's not easy. It might be worthwhile to change that at some point, but to fix this bug, it seems better to delay fetching non-locking rowmarks when they're actually needed, rather than eagerly. They're referenced at most once, and in cases where EPQ fails, might never be referenced. Fetching them when needed also increases locality a bit. To be able to fetch rowmarks during execution, rather than initialization, we need to be able to access the active EPQState, as that contains necessary data. To do so move EPQ related data from EState to EPQState, and, only for EStates creates as part of EPQ, reference the associated EPQState from EState. To fix the second issue, change EPQ initialization to allow use of EvalPlanQualSlot() to be used before EvalPlanQualBegin() (but obviously still requiring EvalPlanQualInit() to have been done). As these changes made struct EState harder to understand, e.g. by adding multiple EStates, significantly reorder the members, and add a lot more comments. Also add a few more EPQ tests, including one that fails for the first issue above. More is needed. Reported-By: yi huang Author: Andres Freund Reviewed-By: Tom Lane Discussion: https://postgr.es/m/CAHU7rYZo_C4ULsAx_LAj8az9zqgrD8WDd4hTegDTMM1LMqrBsg@mail.gmail.com https://postgr.es/m/24530.1562686693@sss.pgh.pa.us Backpatch: 12-, where the EPQ changes were introduced https://git.postgresql.org/pg/commitdiff/27cc7cd2bc8a5e8efc8279bc5d2a8ae42fd8ad33 Andrew Dunstan pushed: - Prevent msys2 conversion of "cmd /c" switch to a file path. Modern versions of msys2 have changed the treatment of "cmd /c" so that the runtime will try to convert the switch to a native file path. This patch adds a setting to inhibit that behaviour. Discussion: https://postgr.es/m/3227042f-cfcc-745a-57dd-fb8c471f8ddf@2ndQuadrant.com Backpatch to all live branches. https://git.postgresql.org/pg/commitdiff/73ff3a0abbbcb2c623731b88f2d1334bc67e5820 Peter Geoghegan pushed: - Add _bt_binsrch() scantid assertion to nbtree. Assert that _bt_binsrch() binary searches with scantid set in insertion scankey cannot be performed on leaf pages. Leaf-level binary searches where scantid is set must use _bt_binsrch_insert() instead. _bt_binsrch_insert() is likely to have additional responsibilities in the future, such as searching within GIN-style posting lists using scantid. It seems like a good idea to tighten things up now. https://git.postgresql.org/pg/commitdiff/55d015bde05311cbaaf16424e3aa05c37946cd8a - Remove redundant _bt_truncate() comment paragraph. https://git.postgresql.org/pg/commitdiff/1b9becd43ccb7d48243882c021738c60d32c55aa - Reorder two nbtree.h function prototypes. Make the function prototype order consistent with the definition order in nbtinsert.c. https://git.postgresql.org/pg/commitdiff/614cdeaa8908f69ab0b97b688e9785147575c01f - Fix nbtree page split rmgr desc routine. Include newitemoff in rmgr desc output for nbtree page split records. In passing, correct an obsolete comment that claimed that newitemoff is only logged for _L variant nbtree page split WAL records. Both issues were oversights in commit 2c03216d831, which revamped the WAL format. Author: Peter Geoghegan Backpatch: 9.5-, where the WAL format was revamped. https://git.postgresql.org/pg/commitdiff/3b6b54f178d7539354064727cca9b4ff2eca0fce Álvaro Herrera pushed: - Restructure libpq code to remove some duplicity. There was some duplicate code to run SHOW transaction_read_only to determine whether the server is read-write or read-only. Reduce it by adding another state to the state machine. Author: Hari Babu Kommi Reviewed-by: Takayuki Tsunakawa, Álvaro Herrera Discussion: https://postgr.es/m/CAJrrPGe_qgdbbN+yBgEVpd+YLHXXjTruzk6RmTMhqrFig+32ag@mail.gmail.com https://git.postgresql.org/pg/commitdiff/b438e7e7a1c58e0c20b5f46e73cbd713e8033c69 - Fix unaccent generation script in Windows. As originally coded, the script would fail on Windows 10 and Python 3 because stdout would not be switched to UTF-8 only for Python 2. This patch makes that apply to both versions. Also add python 2 compatibility markers so that we know what to remove once we drop support for that. Also use a "with" clause to ensure file descriptor is closed promptly. Author: Hugh Ranalli, Ramanarayana Reviewed-by: Kyotaro Horiguchi Discussion: https://postgr.es/m/CAKm4Xs7_61XMyOWmHs3n0mmkS0O4S0pvfWk=7cQ5P0gs177f7A@mail.gmail.com Discussion: https://postgr.es/m/15548-cef1b3f8de190d4f@postgresql.org https://git.postgresql.org/pg/commitdiff/0afc0a7841889c6221fd47430e72f4fe570833f4 - libpq docs: be clearer about conninfo's 'hostaddr'. The previous wording was a bit too terse, too vague on the subject of 'host' and 'hostaddr' in connection specifications, which has caused people to waste time trying to conform to rules because of misunderstanding the whole thing; this small change should make things clearer. Author: Robert Haas, stemming from Fabien Coelho's complaints Discussion: https://postgr.es/m/alpine.DEB.2.21.1808201323020.13832@lancre https://git.postgresql.org/pg/commitdiff/75f46eaee20c38b2a04f569e8a5fed4f63091bd3 - Merge two assertions to make comment clearer. Authored by Tom Lane, after a gripe from James Coleman. Discussion: https://postgr.es/m/CAAaqYe9GD__4Crm=ddz+-XXcNhfY_V5gFYdLdmkFNq=2VHO56Q@mail.gmail.com https://git.postgresql.org/pg/commitdiff/bc98e1ea64627183746ecffcb957db147038134e - Fix progress reporting of CLUSTER / VACUUM FULL. The progress state was being clobbered once the first index completed being rebuilt, causing the final phases of the operation not show anything in the progress view. This was inadvertently broken in 03f9e5cba0ee, which added progress tracking for REINDEX. (The reason this bugfix is this small is that I had already noticed this problem when writing monitoring for CREATE INDEX, and had already worked around it, as can be seen in discussion starting at https://postgr.es/m/20190329150218.GA25010@alvherre.pgsql Fixing the problem is just a matter of fixing one place touched by the REINDEX monitoring.) Reported by: Álvaro Herrera Author: Álvaro Herrera Discussion: https://postgr.es/m/20190801184333.GA21369@alvherre.pgsql https://git.postgresql.org/pg/commitdiff/6212276e4343f729b0152e81824f850d1a21d57e - Fix under-parenthesized macro definitions. Lack of parens in the definitions could cause a statement using these macros to have unexpected semantics. In current code no bug is apparent, but best to fix the definitions to avoid problems down the line. Reported-by: Tom Lane Discussion: https://postgr.es/m/19795.1568400476@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/ce5d04b6463d9f642e30d1f6abf45846e1255be0 - logical decoding: process ASSIGNMENT during snapshot build. Most WAL records are ignored in early SnapBuild snapshot build phases. But it's critical to process some of them, so that later messages have the correct transaction state after the snapshot is completely built; in particular, XLOG_XACT_ASSIGNMENT messages are critical in order for sub-transactions to be correctly assigned to their parent transactions, or at least one assert misbehaves, as reported by Ildar Musin. Diagnosed-by: Masahiko Sawada Author: Masahiko Sawada Discussion: https://postgr.es/m/CAONYFtOv+Er1p3WAuwUsy1zsCFrSYvpHLhapC_fMD-zNaRWxYg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/bac2fae05c7737530a6fe8276cd27d210d25c6ac Tomáš Vondra pushed: - Allow setting statistics target for extended statistics. When building statistics, we need to decide how many rows to sample and how accurate the resulting statistics should be. Until now, it was not possible to explicitly define statistics target for extended statistics objects, the value was always computed from the per-attribute targets with a fallback to the system-wide default statistics target. That's a bit inconvenient, as it ties together the statistics target set for per-column and extended statistics. In some cases it may be useful to require larger sample / higher accuracy for extended statics (or the other way around), but with this approach that's not possible. So this commit introduces a new command, allowing to specify statistics target for individual extended statistics objects, overriding the value derived from per-attribute targets (and the system default). ALTER STATISTICS stat_name SET STATISTICS target_value; When determining statistics target for an extended statistics object we first look at this explicitly set value. When this value is -1, we fall back to the old formula, looking at the per-attribute targets first and then the system default. This means the behavior is backwards compatible with older PostgreSQL releases. Author: Tomas Vondra Discussion: https://postgr.es/m/20190618213357.vli3i23vpkset2xd@development Reviewed-by: Kirk Jamison, Dean Rasheed https://git.postgresql.org/pg/commitdiff/d06215d03b50c264a0f31e335b895ee1b6753e68 Michaël Paquier pushed: - Expand properly list of TAP tests used for prove in vcregress.pl. Depending on the system used, t/*.pl may not be expanded into a list of tests which can be consumed by prove when attempting to run TAP tests on a given path. Fix that by using glob() directly in the script, to make sure that a complete list of tests is provided. This has not proved to be an issue with MSVC as the list was properly expanded, but it is on Linux with perl's system(). This is extracted from a larger patch. Author: Tom Lane Discussion: https://postgr.es/m/6628.1567958876@sss.pgh.pa.us Backpatch-through: 9.4 https://git.postgresql.org/pg/commitdiff/9d6e1ec5ceed1b7871fc2afd68898f0e876b60b9 - Fix comment in psql's describe.c. Procedures are supported since v11 and \dfp can be used since this version, but it was not mentioned as a supported option in the description of describeFunctions() which handles \df in psql. Extracted from a larger patch. Author: Fabien Coelho Discussion: https://postgr.es/m/alpine.DEB.2.21.1908281618520.28828@lancre https://git.postgresql.org/pg/commitdiff/8a0deae8d9b6861265cf4ebf25a9e4385f4c7672 - Improve coverage of psql for backslash commands with \if and \elif. This adds tests to cover more code paths to ignore backslash commands in false branches when using \if|\elif|\else, and improves the coverage of \elif. Author: Fabien Coelho Discussion: https://postgr.es/m/alpine.DEB.2.21.1908281618520.28828@lancre https://git.postgresql.org/pg/commitdiff/aafe2762b152ffd4cb839d2a01df6cfcc3c6df6c - Add to pageinspect function to make t_infomask/t_infomask2 human-readable. Flags of t_infomask and t_infomask2 for each tuple are already included in the information returned by heap_page_items as integers, and we lacked a way to make that information human-readable. Per discussion, the function includes an option which controls if combined flags should be decomposed or not. The default is false, to not decompose combined flags. The module is bumped to version 1.8. Author: Craig Ringer, Sawada Masahiko Reviewed-by: Peter Geoghegan, Robert Haas, Álvaro Herrera, Moon Insung, Amit Kapila, Michael Paquier, Tomas Vondra Discussion: https://postgr.es/m/CAMsr+YEY7jeaXOb+oX+RhDyOFuTMdmHjGsBxL=igCm03J0go9Q@mail.gmail.com https://git.postgresql.org/pg/commitdiff/ddbd5d8731619ad3ab47ce325e8605422297a613 Amit Kapila pushed: - Doc: Update PL/pgSQL sample function in plpgsql.sgml. The example used to explain 'Looping Through Query Results' uses pseudo-materialized views. Replace it with a more up-to-date example which does the same thing with actual materialized views, which have been available since PostgreSQL 9.3. In the passing, change '%' as format specifier instead of '%s' as is used in other examples in plpgsql.sgml. Reported-by: Ian Barwick Author: Ian Barwick Reviewed-by: Amit Kapila Backpatch-through: 9.4 Discussion: https://postgr.es/m/9a70d393-7904-4918-c97c-649f6d114b6a@2ndquadrant.com https://git.postgresql.org/pg/commitdiff/9b3c8f07ff3f7938696723405dc9c7b43dde4252 Fujii Masao pushed: - Add tab completion for CREATE OR REPLACE in psql. Author: Shenhao Wang Discussion: https://postgr.es/m/63580B24E208E3429D94153A03C68E0901AA8002D5@G08CNEXMBPEKD02.g08.fujitsu.local https://git.postgresql.org/pg/commitdiff/fc16778873d081b07930d642622ee0cf22c3f9b7 Noah Misch pushed: - Test pg_atomic_fetch_add_ with variable addend and 16-bit edge cases. Back-patch to 9.5, which introduced these functions. Reviewed by Tom Lane. Discussion: https://postgr.es/m/20190831071157.GA3251746@rfd.leadboat.com https://git.postgresql.org/pg/commitdiff/f380c5190134a4e928bf30a4ff9fec775cdcc692 - Replace xlc __fetch_and_add() with inline asm. PostgreSQL has been unusable when built with xlc 13 and newer, which are incompatible with our use of __fetch_and_add(). Back-patch to 9.5, which introduced pg_atomic_fetch_add_u32(). Reviewed by Tom Lane. Discussion: https://postgr.es/m/20190831071157.GA3251746@rfd.leadboat.com https://git.postgresql.org/pg/commitdiff/dd50f1a43290bb3c67e24e808d4d8656e9532c9a - For all ppc compilers, implement pg_atomic_fetch_add_ with inline asm. This is more like how we handle s_lock.h and arch-x86.h. This does not materially affect code generation for gcc 7.2.0 or xlc 13.1.3. Reviewed by Tom Lane. Discussion: https://postgr.es/m/20190831071157.GA3251746@rfd.leadboat.com https://git.postgresql.org/pg/commitdiff/e7ff59686eacf5021fb84be921116986c3828d8a - Revert "For all ppc compilers, implement pg_atomic_fetch_add_ with inline asm.". This reverts commit e7ff59686eacf5021fb84be921116986c3828d8a. It defined pg_atomic_fetch_add_u32_impl() without defining pg_atomic_compare_exchange_u32_impl(), which is incompatible with src/include/port/atomics/fallback.h. Per buildfarm member prairiedog. Discussion: https://postgr.es/m/7517.1568470247@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/87e9fae0696d9e3ff70a1438775ad9f786b854a5 Dean Rasheed pushed: - Fix intermittent self-test failures caused by the stats_ext test. Commit d7f8d26d9 added new tests to the stats_ext regression test that included creating a view in the public schema, without realising that the stats_ext test runs in the same parallel group as the rules test, which makes doing that unsafe. This led to intermittent failures of the rules test on the buildfarm, although I wasn't able to reproduce that locally. Fix by creating the view in a different schema. Tomas Vondra and Dean Rasheed, report and diagnosis by Thomas Munro. Discussion: https://postgr.es/m/CA+hUKGKX9hFZrYA7rQzAMRE07L4hziCc-nO_b3taJpiuKyLLxg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/3d9a3ef5cbfc70bd2802c3f0da3fbc4e5abdf377 == Pending Patches == Pavel Stěhule sent in a patch to add a final_spaces setting to psql. Antonin Houska sent in another revision of a patch to consolidate reading of xlog pages to a single code path. Paul Guo sent in another revision of a patch to implement batch inserts for CTAS and materialized views. Alexander Korotkov sent in another revision of a patch to implement kNN searches for B-tree indexes. Álvaro Herrera sent in two more revisions of a patch to make it possible to determine via libpq whether a server allows writes. Konstantin Knizhnik sent in two more revisions of a patch to implement a built-in connection pooler. Yuli Khodorkovskiy sent in another revision of a patch to add a MAC for TRUNCATE. Kirk Jamison sent in another revision of a patch to speed up truncates of relation forks. Jeevan Chalke sent in another revision of a patch to implement incremental backups. Michaël Paquier and Fabien COELHO traded patches to unify the str2*int64 functions. Peter Geoghegan and Anastasia Lubennikova traded patches to add deduplication to B-trees. Thomas Munro sent in another revision of a patch to add huge page support for AIX. Thomas Munro sent in another revision of a patch to consolidate the code that makes a sorted array unique. Thomas Munro sent in another revision of a patch to add a SQL type xid8 to expose FullTransactionId to users, and introduce xid8 variants of the txid_XXX() fmgr functions. Kyotaro HORIGUCHI sent in another revision of a patch to move the callback-call from ReadPageInternal to XLogReadRecord, move the page-reader out of XLogReadRecord, remove the readSegNo, readOff, and readLen globals, and make callers of XLogReadRecord responsible for Xlog read-buffer allocation. Kyotaro HORIGUCHI sent in another revision of a patch to implement a shared-memory-based stats collector. Surafel Temesgen sent in another revision of a patch to implement FETCH FIRST ... WITH TIES. Noah Misch sent in another revision of a patch to test WAL optimizations. Binguo Bao sent in another revision of a patch to de-TOAST using an iterator. Patrick Novotny sent in a patch to move the user options to the end of the pg_upgrade command. Álvaro Herrera sent in a patch to fix an issue in the unaccent extension python script on Windows. Takayuki Tsunakawa sent in another revision of a patch to ensure that a crash dump is produced on Windows. Joe Nelson sent in another revision of a patch to change some instances of atoi to strtol. Nikita Glukhov sent in another revision of a patch to introduce opclass parameters. Peter Eisentraut sent in a patch to make temp install tests work with macOS SIP. Álvaro Herrera sent in a patch to fix a bug that manifested as duplicate LSNs in ReorderBuffer by assigning the subxid to the top-level xid on NEW_CID. Kyotaro HORIGUCHI sent in a patch to replace SIGQUIT with SIGKILL in the archiver. Álvaro Herrera sent in another revision of a patch to fix a delay in PostgreSQL shutdown caused by logical replication. Robert Haas sent in a patch to remove AtSubStart_Notify. Nikita Glukhov sent in two more revisions of a patch to fix a bug in the GiST paring heap comparator. Fabien COELHO and Amit Kapila traded patches to make it possible for pgbench to create partitioned tables. Martijn van Oosterhout and Tom Lane traded patches to improve the performance of NOTIFY over many databases. Daniel Vérité sent in a patch to ensure that ICU's collation gets reported when ICU is the collation provider. Álvaro Herrera sent in another revision of a patch to do runtime pruning for ModifyTable. Thomas Munro sent in a patch to enable parallel full hash joins. Asim R P sent in a patch to create a restartpoint when replaying drop database. Andrey Borodin sent in a patch to do rightlink verification with lock coupling in amcheck nbtree. Antonin Houska sent in a patch to ensure that the JSON parser keeps the values of string tokens. Álvaro Herrera sent in another revision of a patch to make psql show the results of multiple commands in one go. Robert Haas sent in a patch to improve the handling of portals after (sub)transaction abort. Fabien COELHO sent in three more revisions of a patch to improve psql's test coverage. Sviatoslav Ermilin sent in a patch to close stderr and stdout in syslogger. Arseny Sher sent in a patch to avoid touching user indexes while they are being (re)built. Takayuki Tsunakawa sent in a patch to un-mix-up source and destination slots in execTuples.c Amit Khandekar sent in another revision of a patch to implement minimal logical decoding on standbys. Álvaro Herrera sent in another revision of a patch to add backtrace support. James Coleman sent in another revision of a patch to document autovacuum interruption. Alexander Korotkov sent in another revision of a patch to write to the visibility map during CLUSTER/VACUUM FULL. Nikolay Shaplov sent in another revision of a patch to add an enum relation type. James Coleman sent in two revisions of a patch to fix the documentation for pg_rewind. Jeff Davis sent in another revision of a patch to add a 'channel_binding' libpq parameter. Amit Khandekar sent in another revision of a patch to use the VFD API for log reporting. Tomáš Vondra sent in another revision of a patch to implement BRIN multi-range indexes. Alexander Korotkov sent in another revision of a patch to add support for the JSONPATH .datetime() method. Tattsu Yamada and Masahiko Sawada traded patches to fix the CLUSTER command progress monitor. Tom Lane sent in another revision of a patch to ensure that any optional support function for an opclass should have a soft not hard dependency. Tomáš Vondra sent in a patch to fix a bug that manifested as "could not open relation with OID XXXX" while querying pg_views. David Fetter sent in a patch to make integer outputs more efficient.
В списке pgsql-announce по дате отправления: