== PostgreSQL Weekly News - May 03 2015 == == PostgreSQL Product News ==
Consistent State's PG Admin class will take place in Denver, CO on May 18th till May 21st. Signups are open until May 14th. http://www.consistentstate.com/store/c1/Featured_Products.html PGConf Silicon Valley 2015 is November 17-18 at the South San Francisco Convention Center. The CfP is open through June 15 http://www.pgconfsv.com pg_fkpart 1.0, an extension that partitions database tables following a foreign key, released. https://github.com/lemoineat/pg_fkpart == PostgreSQL Jobs for May == http://archives.postgresql.org/pgsql-jobs/2015-05/threads.php == PostgreSQL Local == The 4th Turkish PostgreSQL Conference will be held on May 9, 2015 in Istanbul. http://pgday.postgresql.org.tr/en/index.html The second Swiss Postgres Conference will be held June 25-26, 2015 at HSR Rapperswil. http://www.postgres-conference.ch/ There is a Postgres track in a database technology conference(DTCC) in April 18, 2015 in Beijing, China. http://dtcc.it168.com/list_jiabin.html pgDay Paris will be held in Paris France on April 21, 2015. http://pgday.paris/ Call for Papers for PGDay in Belfort, France ends April 13, 2015. The conference will be held June 2, 2015. http://select-2-6-2015-as-pgday.org PGCon 2015 is June 16-20 in Ottawa, Canada. http://www.pgcon.org/2015/ PGDay UK, Conference will be taking place on 7th July 2015 – it is aimed at the UK PostgreSQL Community. The CfP is open until 13 April 2015. http://www.postgresqlusergroup.org.uk PGDay Campinas 2015 will take place in Campinas on August 7. The CfP is open through May 31. http://pgdaycampinas.com.br/english/ The Call For Papers for PostgresOpen 2015, being held in Dallas, Texas from September 16th to 18th, is now open. http://2015.postgresopen.org/callforpapers/ The CfP for PostgreSQL Session #7, September 24th, 2015 in Paris, Francisc, is open until June 15, 2015. call-for-paper <AT> postgresql-sessions <DOT> org. http://www.postgresql-sessions.org/7/about == 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 Pacific time. Please send English language ones to da...@fetter.org, German language to p...@pgug.de, Italian language to p...@itpug.org. Spanish language to p...@arpug.com.ar. == Applied Patches == Andrew Dunstan pushed: - fix escaping of brackets for m4 broken in b6b2149e48aa61981ae0199c963d5145a37c258c http://git.postgresql.org/pg/commitdiff/f707b53449f3ab6998c615b746ad01f5775723a3 - Enable transforms modules to build and run with Mingw builds. These modules were all missing essential Windows scaffolding, including resources files and descriptions, and links to the relevant library import files. This latter item means that the modules can't be built with pgxs on Windows, as we don't install the import files. If we ever decide to install them this restriction could probably be removed. Also, as with plperl we need to make sure that perl's CORE directory is last on the include list, as on Windows it appears to contain some headers with names that clash with names of some headers we include. http://git.postgresql.org/pg/commitdiff/f802c6ddba143bd88512b5fc34e84ae0b4883284 - Fix python_includespec on Windows at configure time. By converting to using forward slashes at configure time we avoid having to repeat the logic anywhere that this is needed, such as in transforms modules for plpython. http://git.postgresql.org/pg/commitdiff/b6b2149e48aa61981ae0199c963d5145a37c258c - Make hstore_plperl's build more like plperl's. This involves moving perl's CORE library to the end of the include list, and adding other compilation settings that plperl uses. This won't completely fix the breakage currently being seen by gcc builds on Windows, but it will let the build get further, and should be wholly benign, if not beneficial, on *nix. http://git.postgresql.org/pg/commitdiff/77477e745be534c5925cf7cb8b9c6a7698c575a3 - Enable transforms tests for python 2 on MSVC builds. Currently regression tests for python 3 are disabled on MSVC, and these tests fail with python 3, too, so we have some work to do to enable both. Meanwhile, all the buildfarm hosts seem to be building with python 2 anyway, so this at least gets us some coverage. Original patch from Michael Paquier, significantly modified by me. http://git.postgresql.org/pg/commitdiff/eb010637dd47be65e5d8b22d6965c2e96f6937b8 - Fix MSVC builds for contrib transforms modules. With this patch the MSVC build and installation will work correctly with the transforms. However the python transform tests for hstore and ltree are still disabled pending some further adjustments. Michael Paquier with some tweaks from me. http://git.postgresql.org/pg/commitdiff/cbf9f0ec312e54481e777ffbe941b548d909081e - Fix vcbuild failures and chkpass dependency caused by 854adb8. Switching the Windows build scripts to use forward slashes instead of backslashes has caused a couple of issues in VC builds: - The file tree list was not correctly generated, build script generating vcproj file missing tree dependencies when listing items in Filter. - VC builds do not accept file paths with forward slashes, perhaps it could be possible to use a Condition but it seems safer to simply enforce the file paths to use backslashes in the vcproj files. - chkpass had an unneeded dependency with libpgport and libpgcommon to make build succeed but actually it is not necessary as crypt.c is already listed for this project and should be replaced with a fake name as it is a unique file. Michael Paquier http://git.postgresql.org/pg/commitdiff/06ca28d5ab2f810ef25e718e0d71f2233542c151 Stephen Frost pushed: - Improve qual pushdown for RLS and SB views. The original security barrier view implementation, on which RLS is built, prevented all non-leakproof functions from being pushed down to below the view, even when the function was not receiving any data from the view. This optimization improves on that situation by, instead of checking strictly for non-leakproof functions, it checks for Vars being passed to non-leakproof functions and allows functions which do not accept arguments or whose arguments are not from the current query level (eg: constants can be particularly useful) to be pushed down. As discussed, this does mean that a function which is pushed down might gain some idea that there are rows meeting a certain criteria based on the number of times the function is called, but this isn't a particularly new issue and the documentation in rules.sgml already addressed similar covert-channel risks. That documentation is updated to reflect that non-leakproof functions may be pushed down now, if they meet the above-described criteria. Author: Dean Rasheed, with a bit of rework to make things clearer, along with comment and documentation updates from me. http://git.postgresql.org/pg/commitdiff/dcbf5948e12aa60b4d6ab65b6445897dfc971e01 Andres Freund pushed: - Use a fd opened for read/write when syncing slots during startup. Some operating systems, including the reporter's windows, return EBADFD or similar when fsync() is invoked on a O_RDONLY file descriptor. Unfortunately RestoreSlotFromDisk() does exactly that; which causes failures after restarts in at least some scenarios. If you hit the bug the error message will be something like ERROR: could not fsync file "pg_replslot/$name/state": Bad file descriptor Simply use O_RDWR instead of O_RDONLY when opening the relevant file descriptor to fix the bug. Unfortunately I have no way of verifying the fix, but we've seen similar problems in the past. This bug goes back to 9.4 where slots were introduced. Backpatch accordingly. Reported-By: Patrice Drolet Bug: #13143: Discussion: 20150424101006.2556.60...@wrigleys.postgresql.org http://git.postgresql.org/pg/commitdiff/dfbaed459754e71e01bb0cc90a12802bba3f9786 - Correct replication origin's use of UINT16_MAX to PG_UINT16_MAX. We can't rely on UINT16_MAX being present, which is why we introduced PG_UINT16_MAX... Buildfarm animal bowerbird via Andrew Gierth. http://git.postgresql.org/pg/commitdiff/e0f26fc76532defd06caf79d711fa99cea83c532 - Fix unaligned memory access in xlog parsing due to replication origin patch. ParseCommitRecord() accessed xl_xact_origin directly. But the chunks in the commit record's data only have 4 byte alignment, whereas xl_xact_origin's members require 8 byte alignment on some platforms. Update comments to make not of that and copy the record to stack local storage before reading. With help from Stefan Kaltenbrunner in pinning down the buildfarm and verifying the fix. http://git.postgresql.org/pg/commitdiff/1db12da85bee7a01abfbbf2798904347e4d9515a - Introduce replication progress tracking infrastructure. When implementing a replication solution ontop of logical decoding, two related problems exist: * How to safely keep track of replication progress * How to change replication behavior, based on the origin of a row; e.g. to avoid loops in bi-directional replication setups The solution to these problems, as implemented here, consist out of three parts: 1) 'replication origins', which identify nodes in a replication setup. 2) 'replication progress tracking', which remembers, for each replication origin, how far replay has progressed in a efficient and crash safe manner. 3) The ability to filter out changes performed on the behest of a replication origin during logical decoding; this allows complex replication topologies. E.g. by filtering all replayed changes out. Most of this could also be implemented in "userspace", e.g. by inserting additional rows contain origin information, but that ends up being much less efficient and more complicated. We don't want to require various replication solutions to reimplement logic for this independently. The infrastructure is intended to be generic enough to be reusable. This infrastructure also replaces the 'nodeid' infrastructure of commit timestamps. It is intended to provide all the former capabilities, except that there's only 2^16 different origins; but now they integrate with logical decoding. Additionally more functionality is accessible via SQL. Since the commit timestamp infrastructure has also been introduced in 9.5 (commit 73c986add) changing the API is not a problem. For now the number of origins for which the replication progress can be tracked simultaneously is determined by the max_replication_slots GUC. That GUC is not a perfect match to configure this, but there doesn't seem to be sufficient reason to introduce a separate new one. Bumps both catversion and wal page magic. Author: Andres Freund, with contributions from Petr Jelinek and Craig Ringer Reviewed-By: Heikki Linnakangas, Petr Jelinek, Robert Haas, Steve Singer Discussion: 20150216002155.gi15...@awork2.anarazel.de, 20140923182422.ga15...@alap3.anarazel.de, 20131114172632.ge7...@alap2.anarazel.de http://git.postgresql.org/pg/commitdiff/5aa2350426c4fdb3d04568b65aadac397012bbcb - Copy editing of the replication origins patch. Michael Paquier and myself. http://git.postgresql.org/pg/commitdiff/2b22795b32576fa7173b501b646581a17de35902 Álvaro Herrera pushed: - Protect against multixact members wraparound. Multixact member files are subject to early wraparound overflow and removal: if the average multixact size is above a certain threshold (see note below) the protections against offset overflow are not enough: during multixact truncation at checkpoint time, some pg_multixact/members files would be removed because the server considers them to be old and not needed anymore. This leads to loss of files that are critical to interpret existing tuples's Xmax values. To protect against this, since we don't have enough info in pg_control and we can't modify it in old branches, we maintain shared memory state about the oldest value that we need to keep; we use this during new multixact creation to abort if an old still-needed file would get overwritten. This value is kept up to date by checkpoints, which makes it not completely accurate but should be good enough. We start emitting warnings sometime earlier, so that the eventual multixact-shutdown doesn't take DBAs completely by surprise (more precisely: once 20 members SLRU segments are remaining before shutdown.) On troublesome average multixact size: The threshold size depends on the multixact freeze parameters. The oldest age is related to the greater of multixact_freeze_table_age and multixact_freeze_min_age: anything older than that should be removed promptly by autovacuum. If autovacuum is keeping up with multixact freezing, the troublesome multixact average size is (2^32-1) / Max(freeze table age, freeze min age) or around 28 members per multixact. Having an average multixact size larger than that will eventually cause new multixact data to overwrite the data area for older multixacts. (If autovacuum is not able to keep up, or there are errors in vacuuming, the actual maximum is multixact_freeeze_max_age instead, at which point multixact generation is stopped completely. The default value for this limit is 400 million, which means that the multixact size that would cause trouble is about 10 members). Initial bug report by Timothy Garnett, bug #12990 Backpatch to 9.3, where the problem was introduced. Authors: Álvaro Herrera, Thomas Munro Reviews: Thomas Munro, Amit Kapila, Robert Haas, Kevin Grittner http://git.postgresql.org/pg/commitdiff/b69bf30b9bfacafc733a9ba77c9587cf54d06c0c - Code review for multixact bugfix. Reword messages, rename a confusingly named function. Per Robert Haas. http://git.postgresql.org/pg/commitdiff/d3821e70c9b6d76083f4eb0f4cc25716e961c89d - Fix pg_upgrade's multixact handling (again) We need to create the pg_multixact/offsets file deleted by pg_upgrade much earlier than we originally were: it was in TrimMultiXact(), which runs after we exit recovery, but it actually needs to run earlier than the first call to SetMultiXactIdLimit (before recovery), because that routine already wants to read the first offset segment. Per pg_upgrade trouble report from Jeff Janes. While at it, silence a compiler warning about a pointless assert that an unsigned variable was being tested non-negative. This was a signed constant in Thomas Munro's patch which I changed to unsigned before commit. Pointed out by Andres Freund. http://git.postgresql.org/pg/commitdiff/669c7d20e6374850593cb430d332e11a3992bbcf - Fix up some loose ends for CURRENT_USER as RoleSpec. In commit 31eae6028eca4, some documents were not updated to show the new capability; fix that. Also, the error message you get when CURRENT_USER and SESSION_USER are used in a context that doesn't accept them could be clearer about it being a problem only in those contexts; so add the word "here". Author: Kyotaro HORIGUCHI His patch submission also included changes to GRANT/REVOKE, but those seemed more controversial, so I left them out. We can reconsider these changes later. http://git.postgresql.org/pg/commitdiff/9d396af46357df1243aff4a9ca4f4987e4fe6024 Tom Lane pushed: - Fix ATSimpleRecursion() to allow recursion from a foreign table. This is necessary in view of the changes to allow foreign tables to be full members of inheritance hierarchies, but I (tgl) unaccountably missed it in commit cb1ca4d800621dcae67ca6c799006de99fa4f0a5. Noted by Amit Langote, patch by Etsuro Fujita http://git.postgresql.org/pg/commitdiff/ad9f08f70636051b5d5fe8d57062994b7335a960 - Fix another test for RELKIND_RELATION that should allow foreign tables now. I thought I'd gone through all of these before, but a fresh review found this one too. (Perhaps it would be better to just delete this test and let the failure occur later, but for the moment I'll preserve the logic.) The case that this was rejecting is like CREATE FOREIGN TABLE ft (f1 int ...) ...; CREATE TABLE c1 (UNIQUE(f1)) INHERITS(ft); http://git.postgresql.org/pg/commitdiff/290713e31a1ee04eed7877985a4c28a30fd0d1db - Fix overlooked relcache invalidation in ALTER TABLE ... ALTER CONSTRAINT. When altering the deferredness state of a foreign key constraint, we correctly updated the catalogs and then invalidated the relcache state for the target relation ... but that's not the only relation with relevant triggers. Must invalidate the other table as well, or the state change fails to take effect promptly for operations triggered on the other table. Per bug #13224 from Christian Ullrich. In passing, reorganize regression test case for this feature so that it isn't randomly injected into the middle of an unrelated test sequence. Oversight in commit f177cbfe676dc2c7ca2b206c54d6bf819feeea8b. Back-patch to 9.4 where the faulty code was added. http://git.postgresql.org/pg/commitdiff/a4820434c1a62e0c5f4051a31ad8b4a11f0a6ad7 Bruce Momjian pushed: - Warn about tablespace creation in PGDATA. Also add warning to pg_upgrade. Report by Josh Berkus http://git.postgresql.org/pg/commitdiff/33cb8ff6aa1159f0a359691ca563c98b85d3d723 - pg_basebackup: canonicalize old and new tablespace paths. This avoids problems with double-slash-specified paths. Patch by Ian Barwick http://git.postgresql.org/pg/commitdiff/f19d8f14c776b0fa144227ecb2fc17e868a2cc5c - doc: recommend use of GUC server_version_num for version checks. Patch by Craig Ringer http://git.postgresql.org/pg/commitdiff/5086dfceba79ecd5d1eb28b8f4ed5221838ff3a6 - to_char(): have format 'OF' only show the leading negative sign. Previously both hours and minutes displayed as negative. Report by David Pozsar http://git.postgresql.org/pg/commitdiff/9b43d73b3f9bef276a46660920a01f0421c4323a - Mark views created from tables as replication identity 'nothing'. pg_dump turns tables into views using a method that was not setting pg_class.relreplident properly. Patch by Marko Tiikkaja. Backpatch through 9.4 http://git.postgresql.org/pg/commitdiff/b2f95c34f4e6ab1585af6f10d9d1351978ef15f7 Robert Haas pushed: - psql: Improve tab completion for ALTER FOREIGN TABLE. Etsuro Fujita http://git.postgresql.org/pg/commitdiff/c6e96a2f986e4dad72c14b14d4cc17d02b2a6aad - Attempt to fix some compiler warnings. http://git.postgresql.org/pg/commitdiff/ef3f9e642d2b2bba8933b4cff4039ce0d354ce08 - Remove enum-related special cases for catalog scans. When this code was written, catalog scans were normally performed using SnapshotNow, making special handling necessary here. Now, however, all catalog scans use MVCC snapshots, so we can change these cases to look more like what we do for catalog scans elsewhere in the code. Per discussion with Tom Lane and a reminder from Bruce Momjian. http://git.postgresql.org/pg/commitdiff/9b6a0ce5f060315f900de7b398d5197a2e42f2f2 - Update .gitignore for new rmgr, changed paths. http://git.postgresql.org/pg/commitdiff/fe72c4c55bd65772aa5a4130309150ffca1749ab - Add <literal> markup, for consistency. This file isn't entirely consistent about whether "on" and "off" should be marked up with <literal>, but it doesn't make much sense to be inconsistent within a single sentence. Etsuro Fujita http://git.postgresql.org/pg/commitdiff/49601ab1a6df9059f7000f78af43f2e74afefa59 - Create an infrastructure for parallel computation in PostgreSQL. This does four basic things. First, it provides convenience routines to coordinate the startup and shutdown of parallel workers. Second, it synchronizes various pieces of state (e.g. GUCs, combo CID mappings, transaction snapshot) from the parallel group leader to the worker processes. Third, it prohibits various operations that would result in unsafe changes to that state while parallelism is active. Finally, it propagates events that would result in an ErrorResponse, NoticeResponse, or NotifyResponse message being sent to the client from the parallel workers back to the master, from which they can then be sent on to the client. Robert Haas, Amit Kapila, Noah Misch, Rushabh Lathia, Jeevan Chalke. Suggestions and review from Andres Freund, Heikki Linnakangas, Noah Misch, Simon Riggs, Euler Taveira, and Jim Nasby. http://git.postgresql.org/pg/commitdiff/924bcf4f16d54c55310b28f77686608684734f42 - Allow FDWs and custom scan providers to replace joins with scans. Foreign data wrappers can use this capability for so-called "join pushdown"; that is, instead of executing two separate foreign scans and then joining the results locally, they can generate a path which performs the join on the remote server and then is scanned locally. This commit does not extend postgres_fdw to take advantage of this capability; it just provides the infrastructure. Custom scan providers can use this in a similar way. Previously, it was only possible for a custom scan provider to scan a single relation. Now, it can scan an entire join tree, provided of course that it knows how to produce the same results that the join would have produced if executed normally. KaiGai Kohei, reviewed by Shigeru Hanada, Ashutosh Bapat, and me. http://git.postgresql.org/pg/commitdiff/e7cb7ee14555cc9c5773e2c102efd6371f6f2005 - Deparse named arguments to use the new => operator instead of :=. Tom Lane pointed out that this wasn't done, and asked whether that was intentional. Subsequent discussion was in favor of making the change, so here we go. http://git.postgresql.org/pg/commitdiff/e044a44949c5b9c9f548e8a1cd4bf0b50fb2a1cc Peter Eisentraut pushed: - Fix parallel make risk with new check temp-install setup. The "check" target no longer needs to depend on "all", because it now runs "install" directly, which in turn depends on "all". Doing both will cause problems with parallel make, because two builds will run next to each other. Also remove the redirection of the temp-install output into a log file. This was appropriate when this was done from within pg_regress, but now it's just a regular make run, and especially with the above changes this will now take the place of running the "all" target before the test suites. problem report by Jeff Janes, patch in part by Michael Paquier http://git.postgresql.org/pg/commitdiff/dbf2ec1a1c053379e2f9a5913979a1ca4dccbd43 - Fix shared libpython detection on OS X. Apparently, looking for an appropriately named file doesn't work on some older versions, so put the back the explicit platform detection. http://git.postgresql.org/pg/commitdiff/010aa420b9dd5393490c8793f43949dca269a753 - hstore_plperl: Move port-specific parts to later in the makefile. PORTNAME isn't set until the global makefiles have been included. http://git.postgresql.org/pg/commitdiff/e30a864963c5f98bafeaf3005f258ff90916da7c - Windows also needs an override of the shared libpython detection http://git.postgresql.org/pg/commitdiff/67df9782e94765a281a82a7672d39ebb4bf58828 - Move interpreter shared library detection to configure. For building PL/Perl, PL/Python, and PL/Tcl, we need a shared library of libperl, libpython, and libtcl, respectively. Previously, this was checked in the makefiles, skipping the PL build with a warning if no shared library was available. Now this is checked in configure, with an error if no shared library is available. The previous situation arose because in the olden days, the configure options --with-perl, --with-python, and --with-tcl controlled whether frontend interfaces for those languages would be built. The procedural languages were added later, and shared libraries were often not available in the beginning. So it was decided skip the builds of the procedural languages in those cases. The frontend interfaces have since been removed from the tree, and shared libraries are now available most of the time, so that setup makes much less sense now. Also, the new setup allows contrib modules and pgxs users to rely on the respective PLs being available based on configure flags. http://git.postgresql.org/pg/commitdiff/d664a10f9623fd2198b257e513bce849d439a773 - Make hstore_plperl's build even more like plperl's. Combine the two places that set CPPFLAGS into one. Also, some settings should be restricted to Windows only. More precisely, -Wno-comment is a GCC-only option, but Windows in a makefile implies GCC at the moment. Also, since -Wno-comment is more properly a preprocessor option, move it to CPPFLAGS to simplify things a bit. http://git.postgresql.org/pg/commitdiff/0fd764647a9910a340359bb319929b70317b2ae4 Magnus Hagander pushed: - Fix typo. Amit Langote http://git.postgresql.org/pg/commitdiff/da114099afd47b95831514d3a8785c7726eefe03 Heikki Linnakangas pushed: - Fix pg_rewind regression failure after "fast promotion". pg_rewind looks at the control file to determine the server's timeline. If the standby performs a "fast promotion", the timeline ID in the control file is not updated until the next checkpoint. The startup process requests a checkpoint immediately after promotion, so this is unlikely to be an issue in the real world, but the regression suite ran pg_rewind so quickly after promotion that the checkpoint had not yet completed. Reported by Stephen Frost http://git.postgresql.org/pg/commitdiff/484a848a73fc5a76c16bc73626b290154b6a57b4 Noah Misch pushed: - Fix one more TAP test to use standard command-line argument ordering. Commit c67a86f7da90c30b81f91957023fb752f06f0598 caught most of these, but this negative test escaped notice. The test did pass, for the wrong reason, under affected configurations. Michael Paquier http://git.postgresql.org/pg/commitdiff/84c08a7649b8c6dd488dfe0e37ab017e8059cd33 - Combine initdb tests that successfully create a data directory. This eliminates many seconds of test duration and the cause to invoke "rm -rf", which is typically unavailable on Windows. Michael Paquier and Noah Misch http://git.postgresql.org/pg/commitdiff/1a629c1b161a2b43a2f81241a8f4c5f79e5b8ecf - Rename coerce_type() local variable. coerce_type() has local variables named targetTypeId, baseTypeId, and targetType. targetType has been the Type structure for baseTypeId, so rename it to baseType. http://git.postgresql.org/pg/commitdiff/b339a5cf900bb3e72f58a7a96903e3a0d557a85a == Rejected Patches (for now) == No one was disappointed this week :-) == Pending Patches == Etsuro Fujita sent in two revisions of a patch to allow postgres_fdw option to control whether check constraints on remote tables are included in the definitions of foreign tables imported from a remote PG server when performing IMPORT FOREIGN SCHEMA. Fabien COELHO sent in a patch to remove nclients/nthreads constraint from pgbench. Petr Jelinek sent in another revision of a patch to implement a sequence access method. Stephen Frost sent in another revision of a patch to change default for include_realm to 0. Fabien COELHO sent in a patch to remove the pgbench thread fork-emulation code and simplify things where possible, especially around pthread_create and pthread_join. Jim Nasby sent in a patch to allow SQL/plpgsql functions to accept record. Bruce Momjian sent in two more revisions of a patch to make tables created by CREATE TABLE (...LIKE...) have OIDs if any of its parents did. SAWADA Masahiko sent in six more revisions of a patch to create a pg_file_settings view. Pavel Stehule sent in two more revisions of a patch to control context of RAISE in PL/pgsql. Shigeru HANADA sent in another revision of a patch to add foreign joins. Jeff Janes sent in a patch to support contrib extensions in the upcoming multivariate statistics patch. Tomas Vondra sent in a patch to teach the expression walker about RestrictInfo. Fabrízio de Royes Mello sent in a patch to implement COMMENT ON CURRENT DATABASE IS... Jeff Janes sent in a patch to fix a compiler warning in the recent transforms feature. Alexander Korotkov sent in a patch to add selectivity estimation functions to &&, @>, <@ operators in the intarray contrib extension. David Rowley sent in a patch to fix some issues that came up with the new replication identifiers. Petr Jelinek sent in another revision of a patch to add mogrify and indent features for the jsonb data type. John Gorman sent in a patch to rectify some incompatible trig error handling. Denis Kirjanov sent in a patch to enforce access control on security labels defined by admin and prohibit users from relabeling the objects. Bruce Momjian sent in a patch to pg_upgrade to quote directory names in delete_old_cluster script. Kyotaro HORIGUCHI sent in another revision of a patch to add regrole. Pavel Stehule sent in a patch to fix a bug in the implementation of errhidecontext(). SAWADA Masahiko sent in a patch to add a bit indicating frozen-ness to the visibility map. Robert Haas sent in another revision of a patch to allow making vacuum failures not fatal in pgbench. SAWADA Masahiko sent in two more revisions of a patch to implement REINDEX ... VERBOSE. Qingqing Zhou sent in two more revisions of a patch to use outerPlanState() consistently in the executor code. David Steele sent in another revision of a patch to implement pg_audit. Abhijit Menon-Sen and Robert Haas traded patches to recursively fsync PGDATA at startup after a crash. Bruce Momjian and Tom Lane traded patches to add a procost for to_tsvector. Emre Hasegeli sent in another revision of a patch to add a BRIN range operator class. -- Sent via pgsql-announce mailing list (pgsql-announce@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-announce