== PostgreSQL Weekly News - August 16 2015 == - Mailing list pgsql-announce
From | David Fetter |
---|---|
Subject | == PostgreSQL Weekly News - August 16 2015 == |
Date | |
Msg-id | 20150817004748.GA9362@fetter.org Whole thread Raw |
List | pgsql-announce |
== PostgreSQL Weekly News - August 16 2015 == == PostgreSQL Jobs for August == http://archives.postgresql.org/pgsql-jobs/2015-08/ == PostgreSQL Local == PostgresOpen 2015 will being held in Dallas, Texas September 16-18. http://2015.postgresopen.org/ PostgreSQL Session #7, will be held September 24th, 2015 in Paris, France, http://www.postgresql-sessions.org/7/about PGDay.IT 2015 will take place in Prato on October 23, 2015. http://pgday.it PostgreSQL Conference Europe 2015 will be held on October 27-30 in the Vienna Marriott Hotel, in Vienna, Austria. http://2015.pgconf.eu/ PGConf Silicon Valley 2015 is November 17-18 at the South San Francisco Convention Center. http://www.pgconfsv.com PGBR2015 (The Brazilian PostgreSQL Conference) will take place in Porto Alegre, Rio Grande do Sul, on November 18, 19 and 20. The CfP is open until August 31. http://pgbr.postgresql.org.br/2015/en/#call-for-papers == 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 david@fetter.org, German language to pwn@pgug.de, Italian language to pwn@itpug.org. Spanish language to pwn@arpug.com.ar. == Applied Patches == Andres Freund pushed: - Fix copy & paste mistake in pg_get_replication_slots(). XLogRecPtr was compared with InvalidTransactionId instead of InvalidXLogRecPtr. As both are defined to the same value this doesn't cause any actual problems, but it's still wrong. Backpatch: 9.4-master, bug was introduced in 9.4 http://git.postgresql.org/pg/commitdiff/5c4b25accebb5d35358bb0c19b841d8d9b064e46 - Don't start to stream after pg_receivexlog --create-slot. Immediately starting to stream after --create-slot is inconvenient in a number of situations (e.g. when configuring a slot for use in recovery.conf) and it's easy to just call pg_receivexlog twice in the rest of the cases. Author: Michael Paquier Discussion: CAB7nPqQ9qEtuDiKY3OpNzHcz5iUA+DUX9FcN9K8GUkCZvG7+Ew@mail.gmail.com Backpatch: 9.5, where the option was introduced http://git.postgresql.org/pg/commitdiff/70fd0e14e806a4d0ed31b19d92e1f9f140ef686d - Add confirmed_flush column to pg_replication_slots. There's no reason not to expose both restart_lsn and confirmed_flush since they have rather distinct meanings. The former is the oldest WAL still required and valid for both physical and logical slots, whereas the latter is the location up to which a logical slot's consumer has confirmed receiving data. Most of the time a slot will require older WAL (i.e. restart_lsn) than the confirmed position (i.e. confirmed_flush_lsn). Author: Marko Tiikkaja, editorialized by me Discussion: 559D110B.1020109@joh.to http://git.postgresql.org/pg/commitdiff/3f811c2d6f51b13b71adff99e82894dd48cee055 - Minor cleanups in slot related code. Fix a bunch of typos, and remove two superflous includes. Author: Gurjeet Singh Discussion: CABwTF4Wh_dBCzTU=49pFXR6coR4NW1ynb+vBqT+Po=7fuq5iCw@mail.gmail.com Backpatch: 9.4 http://git.postgresql.org/pg/commitdiff/3b425b7c02ccdabe3fb3a538d9174273a15f1e2e - Introduce macros determining if a replication slot is physical or logical. These make the code a bit easier to read, and make it easier to add a more explicit notion of a slot's type at some point in the future. Author: Gurjeet Singh Discussion: CABwTF4Wh_dBCzTU=49pFXR6coR4NW1ynb+vBqT+Po=7fuq5iCw@mail.gmail.com http://git.postgresql.org/pg/commitdiff/093d0c83c1d210167d122da92459a0677e04ffc9 - Handle PQresultErrorField(PG_DIAG_SQLSTATE) returning NULL in streamutil.c. In ff27db5d I missed that PQresultErrorField() may return NULL if there's no sqlstate associated with an error. Spotted-By: Coverity Reported-By: Michael Paquier Discussion: CAB7nPqQ3o10SY6NVdU4pjq85GQTN5tbbkq2gnNUh2fBNU3rKyQ@mail.gmail.com Backpatch: 9.5, like ff27db5d http://git.postgresql.org/pg/commitdiff/7685963eeb16c377c2e0ff7b1852b7a8bc527270 - Fix two off-by-one errors in bufmgr.c. In 4b4b680c I passed a buffer index number (starting from 0) instead of a proper Buffer id (which start from 1 for shared buffers) in two places. This wasn't noticed so far as one of those locations isn't compiled at all (PrintPinnedBufs) and the other one (InvalidBuffer) requires a unlikely, but possible, set of circumstances to trigger a symptom. To reduce the likelihood of such incidents a bit also convert existing open coded mappings from buffer descriptors to buffer ids with BufferDescriptorGetBuffer(). Author: Qingqing Zhou Reported-By: Qingqing Zhou Discussion: CAJjS0u2ai9ooUisKtkV8cuVUtEkMTsbK8c7juNAjv8K11zeCQg@mail.gmail.com Backpatch: 9.5 where the private ref count infrastructure was introduced http://git.postgresql.org/pg/commitdiff/d25fbf9f3ecffb5c80a9201a6310e74da24556a4 - Remove duplicated assignment in pg_create_physical_replication_slot. Reported-By: Gurjeet Singh http://git.postgresql.org/pg/commitdiff/a4b059fddecefd5f473e539b28277874ab83f32f - Allow pg_create_physical_replication_slot() to reserve WAL. When creating a physical slot it's often useful to immediately reserve the current WAL position instead of only doing after the first feedback message arrives. That e.g. allows slots to guarantee that all the WAL for a base backup will be available afterwards. Logical slots already have to reserve WAL during creation, so generalize that logic into being usable for both physical and logical slots. Catversion bump because of the new parameter. Author: Gurjeet Singh Reviewed-By: Andres Freund Discussion: CABwTF4Wh_dBCzTU=49pFXR6coR4NW1ynb+vBqT+Po=7fuq5iCw@mail.gmail.com http://git.postgresql.org/pg/commitdiff/6fcd88511f8e69e38defb1272e0042ef4bab2feb - Use the correct type for TableInfo->relreplident. Mistakenly relreplident was stored as a bool. That works today as c.h typedefs bool to a char, but isn't very future proof. Discussion: 20150812084351.GD8470@awork2.anarazel.de Backpatch: 9.4 where replica identity was introduced. http://git.postgresql.org/pg/commitdiff/a8015fe7f54c6410866d3751783c48e0dabfacde - Don't use 'bool' as a struct member name in help_config.c. Doing so doesn't work if bool is a macro rather than a typedef. Although c.h spends some effort to support configurations where bool is a preexisting macro, help_config.c has existed this way since 2003 (b700a6), and there have not been any reports of problems. Backpatch anyway since this is as riskless as it gets. Discussion: 20150812084351.GD8470@awork2.anarazel.de Backpatch: 9.0-master http://git.postgresql.org/pg/commitdiff/6c772c7453e3e1fa97e3ef0d7e90b22c7f4ea721 - vacuumdb: Don't assign negative values to a boolean. Since a17923204736 (vacuumdb: enable parallel mode) -1 has been assigned to a boolean. That can, justifiedly, trigger compiler warnings. There's also no need for ternary logic, result was only ever set to 0 or -1. So don't. Discussion: 20150812084351.GD8470@awork2.anarazel.de Backpatch: 9.5 http://git.postgresql.org/pg/commitdiff/1d4bd77568493309914217251dce5bd51f4a72b7 - Correct type of waitMode variable in ExecInsertIndexTuples(). It was a bool, even though it should be CEOUC_WAIT_MODE. That's unlikely to have a negative effect with the current definition of bool (char), but it's definitely wrong. Discussion: 20150812084351.GD8470@awork2.anarazel.de Backpatch: 9.5, where ON CONFLICT was merged http://git.postgresql.org/pg/commitdiff/f9dec81a5493bc31fdbbf69b5fafe0d4452a38f1 - Don't use function definitions looking like old-style ones. This fixes a bunch of somewhat pedantic warnings with new compilers. Since by far the majority of other functions definitions use the (void) style it just seems to be consistent to do so as well in the remaining few places. http://git.postgresql.org/pg/commitdiff/e95126cf048b08d7ff5eb72ec33737e9e27c08f8 Andrew Dunstan pushed: - Work around an apparent bug in the Msys DTK perl's regex engine. Several versions of the perl that comes with the Msys DTK have been found to have a bug that fails to recognize a ' before a multiline $ in some circumstances. To work around the problem, use a character class for the '. Another solution would have been to use \n instead of $, but that would have changed the test semantics very slightly. http://git.postgresql.org/pg/commitdiff/e7293e3271bf618eeb2d4779a15fc516a69fe463 - More fixes to allow pg_rewind tests to run on Msys. http://git.postgresql.org/pg/commitdiff/15c3a1b45b480f6478555e9ddbc6093bd031d12c Tom Lane pushed: - Temporarily(?) remove BRIN isolation test. Commit 2834855cb added a not-very-carefully-thought-out isolation test to check a BRIN index bug fix. The test depended on the availability of the pageinspect contrib module, which meant it did not work in several common testing scenarios such as "make check-world". It's not clear whether we want a core test depending on a contrib module like that, but in any case, failing to deal with the possibility that the module isn't present in the installation-under-test is not acceptable. Remove that test pending some better solution. http://git.postgresql.org/pg/commitdiff/6a1e14c62b739a754335c088474e12f42a6763bd - Further mucking with PlaceHolderVar-related restrictions on join order. Commit 85e5e222b1dd02f135a8c3bf387d0d6d88e669bd turns out not to have taken care of all cases of the partially-evaluatable-PlaceHolderVar problem found by Andreas Seltenreich's fuzz testing. I had set it up to check for risky PHVs only in the event that we were making a star-schema-based exception to the param_source_rels join ordering heuristic. However, it turns out that the problem can occur even in joins that satisfy the param_source_rels heuristic, in which case allow_star_schema_join() isn't consulted. Refactor so that we check for risky PHVs whenever the proposed join has any remaining parameterization. Back-patch to 9.2, like the previous patch (except for the regression test case, which only works back to 9.3 because it uses LATERAL). Note that this discovery implies that problems of this sort could've occurred in 9.2 and up even before the star-schema patch; though I've not tried to prove that experimentally. http://git.postgresql.org/pg/commitdiff/4200a92862604d6fcb726fbe7a3e2b38c1dc6837 - Accept alternate spellings of __sparcv7 and __sparcv8. Apparently some versions of gcc prefer __sparc_v7__ and __sparc_v8__. Per report from Waldemar Brodkorb. http://git.postgresql.org/pg/commitdiff/1f64ec6fd28bcd2be9b6b0ad3a5a630e117db601 - Fix privilege dumping from servers too old to have that type of privilege. pg_dump produced fairly silly GRANT/REVOKE commands when dumping types from pre-9.2 servers, and when dumping functions or procedural languages from pre-7.3 servers. Those server versions lack the typacl, proacl, and/or lanacl columns respectively, and pg_dump substituted default values that were in fact incorrect. We ended up revoking all the owner's own privileges for the object while granting all privileges to PUBLIC. Of course the owner would then have those privileges again via PUBLIC, so long as she did not try to revoke PUBLIC's privileges; which may explain the lack of field reports. Nonetheless this is pretty silly behavior. The stakes were raised by my recent patch to make pg_dump dump shell types, because 9.2 and up pg_dump would proceed to emit bogus GRANT/REVOKE commands for a shell type if dumping from a pre-9.2 server; and the server will not accept GRANT/REVOKE commands for a shell type. (Perhaps it should, but that's a topic for another day.) So the resulting dump script wouldn't load without errors. The right thing to do is to act as though these objects have default privileges (null ACL entries), which causes pg_dump to print no GRANT/REVOKE commands at all for them. That fixes the silly results and also dodges the problem with shell types. In passing, modify getProcLangs() to be less creatively different about how to handle missing columns when dumping from older server versions. Every other data-acquisition function in pg_dump does that by substituting appropriate default values in the version-specific SQL commands, and I see no reason why this one should march to its own drummer. Its use of "SELECT *" was likewise not conformant with anyplace else, not to mention it's not considered good SQL style for production queries. Back-patch to all supported versions. Although 9.0 and 9.1 pg_dump don't have the issue with typacl, they are more likely than newer versions to be used to dump from ancient servers, so we ought to fix the proacl/lanacl issues all the way back. http://git.postgresql.org/pg/commitdiff/b861678f50747727c00ffa671e7c2f2f5d25300d - Fix broken markup, and copy-edit a bit. Fix docs build failure introduced by commit 6fcd88511f8e69e3. I failed to resist the temptation to rearrange the description of pg_create_physical_replication_slot(), too. http://git.postgresql.org/pg/commitdiff/750fc78bca7c5cff7459d02315cf7fed4f4ce3a9 - Postpone extParam/allParam calculations until the very end of planning. Until now we computed these Param ID sets at the end of subquery_planner, but that approach depends on subquery_planner returning a concrete Plan tree. We would like to switch over to returning one or more Paths for a subquery, and in that representation the necessary details aren't fully fleshed out (not to mention that we don't really want to do this work for Paths that end up getting discarded). Hence, refactor so that we can compute the param ID sets at the end of planning, just before set_plan_references is run. The main change necessary to make this work is that we need to capture the set of outer-level Param IDs available to the current query level before exiting subquery_planner, since the outer levels' plan_params lists are transient. (That's not going to pose a problem for returning Paths, since all the work involved in producing that data is part of expression preprocessing, which will continue to happen before Paths are produced.) On the plus side, this change gets rid of several existing kluges. Eventually I'd like to get rid of SS_finalize_plan altogether in favor of doing this work during set_plan_references, but that will require some complex rejiggering because SS_finalize_plan needs to visit subplans and initplans before the main plan. So leave that idea for another day. http://git.postgresql.org/pg/commitdiff/68fa28f77146653f1fcaa530d2f2f161bf5de479 - Fix some possible low-memory failures in regexp compilation. newnfa() failed to set the regex error state when malloc() fails. Several places in regcomp.c failed to check for an error after calling subre(). Each of these mistakes could lead to null-pointer-dereference crashes in memory-starved backends. Report and patch by Andreas Seltenreich. Back-patch to all branches. http://git.postgresql.org/pg/commitdiff/8a0258c31808c514755e3bba03cb052084c4887c - Undo mistaken tightening in join_is_legal(). One of the changes I made in commit 8703059c6b55c427 turns out not to have been such a good idea: we still need the exception in join_is_legal() that allows a join if both inputs already overlap the RHS of the special join we're checking. Otherwise we can miss valid plans, and might indeed fail to find a plan at all, as in recent report from Andreas Seltenreich. That code was added way back in commit c17117649b9ae23d, but I failed to include a regression test case then; my bad. Put it back with a better explanation, and a test this time. The logic does end up a bit different than before though: I now believe it's appropriate to make this check first, thereby allowing such a case whether or not we'd consider the previous SJ(s) to commute with this one. (Presumably, we already decided they did; but it was confusing to have this consideration in the middle of the code that was handling the other case.) Back-patch to all active branches, like the previous patch. http://git.postgresql.org/pg/commitdiff/cfe30a72fa80528997357cb0780412736767e8c4 - Improve regression test case to avoid depending on system catalog stats. In commit 95f4e59c32866716 I added a regression test case that examined the plan of a query on system catalogs. That isn't a terribly great idea because the catalogs tend to change from version to version, or even within a version if someone makes an unrelated regression-test change that populates the catalogs a bit differently. Usually I try to make planner test cases rely on test tables that have not changed since Berkeley days, but I got sloppy in this case because the submitted crasher example queried the catalogs and I didn't spend enough time on rewriting it. But it was a problem waiting to happen, as I was rudely reminded when I tried to port that patch into Salesforce's Postgres variant :-(. So spend a little more effort and rewrite the query to not use any system catalogs. I verified that this version still provokes the Assert if 95f4e59c32866716's code fix is reverted. I also removed the EXPLAIN output from the test, as it turns out that the assertion occurs while considering a plan that isn't the one ultimately selected anyway; so there's no value in risking any cross-platform variation in that printout. Back-patch to 9.2, like the previous patch. http://git.postgresql.org/pg/commitdiff/6a0779a397a5ec44a37d3f7d1b2e4c4359e06c2f - Repair unsafe use of shared typecast-lookup table in plpgsql DO blocks. DO blocks use private simple_eval_estates to avoid intra-transaction memory leakage, cf commit c7b849a89. I had forgotten about that while writing commit 0fc94a5ba, but it means that expression execution trees created within a DO block disappear immediately on exiting the DO block, and hence can't safely be linked into plpgsql's session-wide cast hash table. To fix, give a DO block a private cast hash table to go with its private simple_eval_estate. This is less efficient than one could wish, since DO blocks can no longer share any cast lookup work with other plpgsql execution, but it shouldn't be too bad; in any case it's no worse than what happened in DO blocks before commit 0fc94a5ba. Per bug #13571 from Feike Steenbergen. Preliminary analysis by Oleksandr Shulgin. http://git.postgresql.org/pg/commitdiff/83604cc42353b6c0de2a3f3ac31f94759a9326ae - Improve documentation about MVCC-unsafe utility commands. The table-rewriting forms of ALTER TABLE are MVCC-unsafe, in much the same way as TRUNCATE, because they replace all rows of the table with newly-made rows with a new xmin. (Ideally, concurrent transactions with old snapshots would continue to see the old table contents, but the data is not there anymore --- and if it were there, it would be inconsistent with the table's updated rowtype, so there would be serious implementation problems to fix.) This was nowhere documented though, and the problem was only documented for TRUNCATE in a note in the TRUNCATE reference page. Create a new "Caveats" section in the MVCC chapter that can be home to this and other limitations on serializable consistency. In passing, fix a mistaken statement that VACUUM and CLUSTER would reclaim space occupied by a dropped column. They don't reconstruct existing tuples so they couldn't do that. Back-patch to all supported branches. http://git.postgresql.org/pg/commitdiff/5869cbfef48fdfa6b8f108c6c395601e8ad27250 - Add docs about postgres_fdw's setting of search_path and other GUCs. This behavior wasn't documented, but it should be because it's user-visible in triggers and other functions executed on the remote server. Per question from Adam Fuchs. Back-patch to 9.3 where postgres_fdw was added. http://git.postgresql.org/pg/commitdiff/522400a5198f63823406202e18fdaf3621619d98 Álvaro Herrera pushed: - Don't include rel.h when relcache.h is sufficient. Trivial change to reduce exposure of rel.h. http://git.postgresql.org/pg/commitdiff/4901b2f49536f439f79d067a9b30a7a837d6c72b - Close some holes in BRIN page assignment. In some corner cases, it is possible for the BRIN index relation to be extended by brin_getinsertbuffer but the new page not be used immediately for anything by its callers; when this happens, the page is initialized and the FSM is updated (by brin_getinsertbuffer) with the info about that page, but these actions are not WAL-logged. A later index insert/update can use the page, but since the page is already initialized, the initialization itself is not WAL-logged then either. Replay of this sequence of events causes recovery to fail altogether. There is a related corner case within brin_getinsertbuffer itself, in which we extend the relation to put a new index tuple there, but later find out that we cannot do so, and do not return the buffer; the page obtained from extension is not even initialized. The resulting page is lost forever. To fix, shuffle the code so that initialization is not the responsibility of brin_getinsertbuffer anymore, in normal cases; instead, the initialization is done by its callers (brin_doinsert and brin_doupdate) once they're certain that the page is going to be used. When either those functions determine that the new page cannot be used, before bailing out they initialize the page as an empty regular page, enter it in FSM and WAL-log all this. This way, the page is usable for future index insertions, and WAL replay doesn't find trying to insert tuples in pages whose initialization didn't make it to the WAL. The same strategy is used in brin_getinsertbuffer when it cannot return the new page. Additionally, add a new step to vacuuming so that all pages of the index are scanned; whenever an uninitialized page is found, it is initialized as empty and WAL-logged. This closes the hole that the relation is extended but the system crashes before anything is WAL-logged about it. We also take this opportunity to update the FSM, in case it has gotten out of date. Thanks to Heikki Linnakangas for finding the problem that kicked some additional analysis of BRIN page assignment code. Backpatch to 9.5, where BRIN was introduced. Discussion: https://www.postgresql.org/message-id/20150723204810.GY5596@postgresql.org http://git.postgresql.org/pg/commitdiff/ccc4c074994d734aefb9810af79a762df3c0e974 - Fix unitialized variables. As complained by clang, reported by Andres Freund. Brown paper bag bug in ccc4c074994d. Add some comments, too. Backpatch to 9.5, like that one. http://git.postgresql.org/pg/commitdiff/fcbf455842eac10c331a866f559bb3875bcb8c37 - Use materialize SRF mode in brin_page_items. This function was using the single-value-per-call mechanism, but the code relied on a relcache entry that wasn't kept open across calls. This manifested as weird errors in buildfarm during the short time that the "brin-1" isolation test lived. Backpatch to 9.5, where it was introduced. http://git.postgresql.org/pg/commitdiff/94d626ff5a82422825976c096e250b07657cd6f7 - Re-add BRIN isolation test. This time, instead of using a core isolation test, put it on its own test module; this way it can require the pageinspect module to be present before running. The module's Makefile is loosely modeled after test_decoding's, so that it's easy to add further tests for either pg_regress or isolationtester later. Backpatch to 9.5. http://git.postgresql.org/pg/commitdiff/672e3ec0e93e3d2d5549b95f73b2a3ab58714146 - MSVC: Exclude 'brin' contrib module. The build script is not able to parse the Makefile, so remove it. http://git.postgresql.org/pg/commitdiff/d67616c74395aede8795e785d565b96b735f3f6e Michael Meskes pushed: - Fix declaration of isarray variable. Found and fixed by Andres Freund. http://git.postgresql.org/pg/commitdiff/c396f2b83dbf2af9a6b3fa137f73017f5dcf7266 Heikki Linnakangas pushed: - Run autoheader to add a few missing #defines to pg_config.h.in. These are emitted by the new ax_pthread.m4 script version. They are not used for anything in PostgreSQL, but let's keep the generated header file up-to-date. Andres Freund http://git.postgresql.org/pg/commitdiff/36e863bbd42f5815cecbda2397950ea1ca36a81a Peter Eisentraut pushed: - PL/Python: Make tests pass with Python 3.5. The error message wording for AttributeError has changed in Python 3.5. For the plpython_error test, add a new expected file. In the plpython_subtransaction test, we didn't really care what the exception is, only that it is something coming from Python. So use a generic exception instead, which has a message that doesn't vary across versions. http://git.postgresql.org/pg/commitdiff/f16d52269a196f7f303abe3b978d95ade265f05f - Update key words table for 9.5 http://git.postgresql.org/pg/commitdiff/845405a7d8dc79f498fe77e3aeeb02ef841b0196 Noah Misch pushed: - Encoding PG_UHC is code page 949. This fixes presentation of non-ASCII messages to the Windows event log and console in rare cases involving Korean locale. Processes like the postmaster and checkpointer, but not processes attached to databases, were affected. Back-patch to 9.4, where MessageEncoding was introduced. The problem exists in all supported versions, but this change has no effect in the absence of the code recognizing PG_UHC MessageEncoding. Noticed while investigating bug #13427 from Dmitri Bourlatchkov. http://git.postgresql.org/pg/commitdiff/ec79978dd059d51c8c28efae949d115987588011 - Restore old pgwin32_message_to_UTF16() behavior outside transactions. Commit 49c817eab78c6f0ce8c3bf46766b73d6cf3190b7 replaced with a hard error the dubious pg_do_encoding_conversion() behavior when outside a transaction. Reintroduce the historic soft failure locally within pgwin32_message_to_UTF16(). This fixes errors when writing messages in less-common encodings to the Windows event log or console. Back-patch to 9.4, where the aforementioned commit first appeared. Per bug #13427 from Dmitri Bourlatchkov. http://git.postgresql.org/pg/commitdiff/43adc7a7147da2404bd4df0d8a93ca3bd3a8adc6 Robert Haas pushed: - Reject isolation test specifications with duplicate step names. alter-table-1.spec has such a case, so change one instance of step rx1 to rx3 instead. http://git.postgresql.org/pg/commitdiff/43b4a16817c8b5568cec72f3b0e1c8209f5ac7f7 - Remove bogus step from test_decoding isolation tests. Commit 43b4a16817c8b5568cec72f3b0e1c8209f5ac7f7 made the isolation tester reject duplicate step names, and it turns out that the test_decoding module's concurrent_ddl_dml isolation test has a duplicate name. I think the second definition isn't actually getting used, so just remove it. Per buildfarm. http://git.postgresql.org/pg/commitdiff/5243a35825cf32db5863459be1f3afcc6b6461e0 - Remove unused expected-output file. http://git.postgresql.org/pg/commitdiff/8bd42fe5c715c478a4b3ceb77cb28ef9f18b5486 Simon Riggs pushed: - Reduce lock levels for ALTER TABLE SET autovacuum storage options. Reduce lock levels down to ShareUpdateExclusiveLock for all autovacuum-related relation options when setting them using ALTER TABLE. Add infrastructure to allow varying lock levels for relation options in later patches. Setting multiple options together uses the highest lock level required for any option. Works for both main and toast tables. Fabrízio Mello, reviewed by Michael Paquier, mild edit and additional regression tests from myself http://git.postgresql.org/pg/commitdiff/47167b7907a802ed39b179c8780b76359468f076 == Rejected Patches (for now) == No one was disappointed this week :-) == Pending Patches == Franck Verrot sent in a patch to mention column name in error messages. Jeff Janes sent in a patch to adjust the documentation of gin_leafpage_items in the pageinspect extension to specify that only compressed pages are supported. Bruce Momjian sent in a patch to fix a bug where pg_upgrade fails when postgres/template1 isn't in default tablespace. Jeff Janes sent in a patch to fix the FSM versus GIN pending list bloat issue. Fabien COELHO sent in three more revisions of a patch to add a checkpoint_sort GUC. Jeff Janes sent in another revision of a patch to make more sane default statistics for array types. Fabien COELHO sent in a patch to fix a bug in pgbench where gbench does not report skipped transactions (-L) counts properly. Michael Paquier sent in a patch to fix a situation with TransactionIdGetCommitTsData and its dereferenced pointers. Ashutosh Bapat sent in two more revisions of a patch to add a contrib module to launch foreign transaction resolver to resolve unresolved transactions prepared on foreign servers. Jeff Janes sent in two revisions of a patch to make GIN pending clean up interruptible. Michael Paquier sent in another revision of a patch to allow using SCRAM authentication instead of MD5 password hashing. Andres Freund sent in a patch to convert fastgetattr() and heap_getattr() into inline functions. This is in service of upping the compiler requirements for 9.6 and later. Etsuro Fujita and Kaigai Kouhei traded patches for evaluating qual pushdowns to foreign servers and fixing their relationship to EvalPlanQual. Andres Freund sent in a patch to change some buffer and page related macros to inline functions. Jeff Janes sent in a patch to expose GIN pending list clean up to SQL. Pavel Stěhule sent in another revision of a patch to add a libpq context filter. Marko Tiikkaja sent in a patch to add a count_nulls(VARIADIC "any"). Taiki Kondo sent in a patch to implement a hash join pushdown for tables partitioned by hash. Pavel Stěhule sent in another revision of a patch to add a --strict-names option to pg_dump. Haribabu Kommi sent in a PoC patch to implement more isolated multi-tenancy via RLS. Michael Paquier sent in two more revisions of a patch to add regression tests for recovery. Andrew Dunstan sent in two more revisions of a patch to fix TAP tests on Windows. Robert Haas sent in a patch to allow the isolation tester to run with more than one waiting process. Dickson S. Guedes sent in a patch to allow, "semester" in date_part, etc., which turned out to be local. Current trends go towards "half," which is less ambiguous in its meaning. Andres Freund sent in a WIP patch to decrease usage of lock.h further. This is part of the drive toward requiring more recent compilers for 9.6+. Marko Tiikkaja sent in a patch to add support for RADIUS passwords longer than 16 octets. David Rowley sent in a patch to improve how get_base_rel_indexes() works by changing its return type and adding a parameter.
pgsql-announce by date: