== PostgreSQL Weekly News - October 19 2014 == - Mailing list pgsql-announce
From | David Fetter |
---|---|
Subject | == PostgreSQL Weekly News - October 19 2014 == |
Date | |
Msg-id | 20141020042835.GA2268@fetter.org Whole thread Raw |
List | pgsql-announce |
== PostgreSQL Weekly News - October 19 2014 == == PostgreSQL Product News == pgpool-II 3.3.4 beta1 http://pgpool.net/mediawiki/index.php/Downloads == PostgreSQL Jobs for October == http://archives.postgresql.org/pgsql-jobs/2014-10/threads.php == PostgreSQL Local == PGConf.EU 2014 in Madrid, Spain on October 21-24 is now open for registration. http://2014.pgconf.eu/registration/ PGDay.IT 2014 will take place in Prato on November the 7th 2014. http://2014.pgday.it/call-for-papers-en/ The CfP for PGConf US 2015 is open through December 17th, 2014 Notifications will go out on January 10, 2014. The event takes place March 25-27, 2015 in NYC. http://nyc.pgconf.us/2015/ == 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 == Kevin Grittner pushed: - Increase number of hash join buckets for underestimate. If we expect batching at the very beginning, we size nbuckets for "full work_mem" (see how many tuples we can get into work_mem, while not breaking NTUP_PER_BUCKET threshold). If we expect to be fine without batching, we start with the 'right' nbuckets and track the optimal nbuckets as we go (without actually resizing the hash table). Once we hit work_mem (considering the optimal nbuckets value), we keep the value. At the end of the first batch, we check whether (nbuckets != nbuckets_optimal) and resize the hash table if needed. Also, we keep this value for all batches (it's OK because it assumes full work_mem, and it makes the batchno evaluation trivial). So the resize happens only once. There could be cases where it would improve performance to allow the NTUP_PER_BUCKET threshold to be exceeded to keep everything in one batch rather than spilling to a second batch, but attempts to generate such a case have so far been unsuccessful; that issue may be addressed with a follow-on patch after further investigation. Tomas Vondra with minor format and comment cleanup by me Reviewed by Robert Haas, Heikki Linnakangas, and Kevin Grittner http://git.postgresql.org/pg/commitdiff/30d7ae3c76d2de144232ae6ab328ca86b70e72c3 Heikki Linnakangas pushed: - Add --latency-limit option to pgbench. This allows transactions that take longer than specified limit to be counted separately. With --rate, transactions that are already late by the time we get to execute them are skipped altogether. Using --latency-limit with --rate allows you to "catch up" more quickly, if there's a hickup in the server causing a lot of transactions to stall momentarily. Fabien COELHO, reviewed by Rukh Meski and heavily refactored by me. http://git.postgresql.org/pg/commitdiff/98aed6c721763f2472ccd23b834baed9f83a944b - Fix typo in docs. Shigeru Hanada http://git.postgresql.org/pg/commitdiff/0ff5047d52ab84dad682ad140b6992c294580eb1 - Fix deadlock with LWLockAcquireWithVar and LWLockWaitForVar. LWLockRelease should release all backends waiting with LWLockWaitForVar, even when another backend has already been woken up to acquire the lock, i.e. when releaseOK is false. LWLockWaitForVar can return as soon as the protected value changes, even if the other backend will acquire the lock. Fix that by resetting releaseOK to true in LWLockWaitForVar, whenever adding itself to the wait queue. This should fix the bug reported by MauMau, where the system occasionally hangs when there is a lot of concurrent WAL activity and a checkpoint. Backpatch to 9.4, where this code was added. http://git.postgresql.org/pg/commitdiff/e0d97d77bf0875e4d5cc7dedfe701d9999bf678c Bruce Momjian pushed: - doc: improve USING and NATURAL JOIN descriptions. Patch by David G Johnston http://git.postgresql.org/pg/commitdiff/032f3b7e166cfa2818b0a9572324e362bf8895df - doc: mention TM is ignored for to_date/to_timestamp(). Report by Goulven Guillard http://git.postgresql.org/pg/commitdiff/8660b40d0c59e4880f246fa91e2137ddd13655d8 - doc: mention more changes needed to use huge pages. Report by Laurence Parry http://git.postgresql.org/pg/commitdiff/ebd33f27ab023ef0e72ba162f2974ec49d96e8e3 - C comments: adjust execTuples.c for new structure. Report by Peter Geoghegan http://git.postgresql.org/pg/commitdiff/fe65280fea7e3c930727ed74328613a4410e487a - docs: error for adding _validated_ domains for existing uses. Report by David G Johnston http://git.postgresql.org/pg/commitdiff/7ab96d18f94d5e8c2deab8a6126632a194ea32f1 - Consistently use NULL for invalid GUC unit strings. Patch by Euler Taveira http://git.postgresql.org/pg/commitdiff/d6c8e8d7aca9ab175e6aefef9974b65bd589dd80 - doc: restrictions on alter database moving default tablespace. Mention tablespace must be empty and no one connected to the database. Report by Josh Berkus http://git.postgresql.org/pg/commitdiff/97d554871c3d186db831b35c0eabe6d496e4f54b - interval: tighten precision specification. interval precision can only be specified after the "interval" keyword if no units are specified. Previously we incorrectly checked the units to see if the precision was legal, causing confusion. Report by Alvaro Herrera http://git.postgresql.org/pg/commitdiff/417f92484da8c9a124e7eece8dbfb71f688a0104 - Shorten warning about hash creation. Also document that PITR is also affected. http://git.postgresql.org/pg/commitdiff/b87671f1b63a0c9cf264afc209e3acebdb52477f Peter Eisentraut pushed: - psql: Fix \? output alignment. This was inadvertently changed in commit c64e68fd. http://git.postgresql.org/pg/commitdiff/7ce09e614805d2965baaf33e0d6bcbbb04aa9414 - doc: Fix copy-and-paste mistakes http://git.postgresql.org/pg/commitdiff/5dc4b50b028f430f639c74f5d449ac8ec27d3cf5 - doc: Improve ALTER VIEW / SET documentation. The way the ALTER VIEW / SET options were listed in the synopsis was very confusing. Move the list to the main description, similar to how the ALTER TABLE reference page does it. http://git.postgresql.org/pg/commitdiff/db75e524856634ce1c41fc1233e85abbb716ef6e - doc: Clean up pg_recvlogical reference page. This needed a general cleanup of wording, typos, outdated terminology, formatting, and hard-to-understand and borderline incorrect information. Also tweak the pg_receivexlog page a bit to make the two more consistent. http://git.postgresql.org/pg/commitdiff/52c1ae22d6a4daf1c1c01fc9244f8ebae5402b1a - Allow setting effective_io_concurrency even on unsupported systems. This matches the behavior of other parameters that are unsupported on some systems (e.g., ssl). Also document the default value. http://git.postgresql.org/pg/commitdiff/7feaccc21791d9d745bac013e5e0396bdde2d81c - psql: Improve \pset without arguments. Revert the output of the individual backslash commands that change print settings back to the 9.3 way (not showing the command name in parentheses). Implement \pset without arguments separately, showing all settings with values in a table form. http://git.postgresql.org/pg/commitdiff/6895866510c5f4185f50ae7d6810d9ffd7701a9e - initdb: Fix compiler error in USE_PREFETCH case. http://git.postgresql.org/pg/commitdiff/49d182e61ebca00762531718b3bafa9107ccee17 Álvaro Herrera pushed: - pg_dump: Reduce use of global variables. Most pg_dump.c global variables, which were passed down individually to dumping routines, are now grouped as members of the new DumpOptions struct, which is used as a local variable and passed down into routines that need it. This helps future development efforts; in particular it is said to enable a mode in which a parallel pg_dump run can output multiple streams, and have them restored in parallel. Also take the opportunity to clean up the pg_dump header files somewhat, to avoid circularity. Author: Joachim Wieland, revised by Álvaro Herrera Reviewed by Peter Eisentraut http://git.postgresql.org/pg/commitdiff/0eea8047bf0e15b402b951e383e39236bdfe57d5 - Blind attempt at fixing Win32 pg_dump issues. Per buildfarm failures http://git.postgresql.org/pg/commitdiff/076d29a1eed5fe51fb2b25b98fcde9dd7c506902 Tom Lane pushed: - Print planning time only in EXPLAIN ANALYZE, not plain EXPLAIN. We've gotten enough push-back on that change to make it clear that it wasn't an especially good idea to do it like that. Revert plain EXPLAIN to its previous behavior, but keep the extra output in EXPLAIN ANALYZE. Per discussion. Internally, I set this up as a separate flag ExplainState.summary that controls printing of planning time and execution time. For now it's just copied from the ANALYZE option, but we could consider exposing it to users. http://git.postgresql.org/pg/commitdiff/90063a7612e2730f7757c2a80ba384bbe7e35c4b - Support timezone abbreviations that sometimes change. Up to now, PG has assumed that any given timezone abbreviation (such as "EDT") represents a constant GMT offset in the usage of any particular region; we had a way to configure what that offset was, but not for it to be changeable over time. But, as with most things horological, this view of the world is too simplistic: there are numerous regions that have at one time or another switched to a different GMT offset but kept using the same timezone abbreviation. Almost the entire Russian Federation did that a few years ago, and later this month they're going to do it again. And there are similar examples all over the world. To cope with this, invent the notion of a "dynamic timezone abbreviation", which is one that is referenced to a particular underlying timezone (as defined in the IANA timezone database) and means whatever it currently means in that zone. For zones that use or have used daylight-savings time, the standard and DST abbreviations continue to have the property that you can specify standard or DST time and get that time offset whether or not DST was theoretically in effect at the time. However, the abbreviations mean what they meant at the time in question (or most recently before that time) rather than being absolutely fixed. The standard abbreviation-list files have been changed to use this behavior for abbreviations that have actually varied in meaning since 1970. The old simple-numeric definitions are kept for abbreviations that have not changed, since they are a bit faster to resolve. While this is clearly a new feature, it seems necessary to back-patch it into all active branches, because otherwise use of Russian zone abbreviations is going to become even more problematic than it already was. This change supersedes the changes in commit 513d06ded et al to modify the fixed meanings of the Russian abbreviations; since we've not shipped that yet, this will avoid an undesirably incompatible (not to mention incorrect) change in behavior for timestamps between 2011 and 2014. This patch makes some cosmetic changes in ecpglib to keep its usage of datetime lookup tables as similar as possible to the backend code, but doesn't do anything about the increasingly obsolete set of timezone abbreviation definitions that are hard-wired into ecpglib. Whatever we do about that will likely not be appropriate material for back-patching. Also, a potential free() of a garbage pointer after an out-of-memory failure in ecpglib has been fixed. This patch also fixes pre-existing bugs in DetermineTimeZoneOffset() that caused it to produce unexpected results near a timezone transition, if both the "before" and "after" states are marked as standard time. We'd only ever thought about or tested transitions between standard and DST time, but that's not what's happening when a zone simply redefines their base GMT offset. In passing, update the SGML documentation to refer to the Olson/zoneinfo/ zic timezone database as the "IANA" database, since it's now being maintained under the auspices of IANA. http://git.postgresql.org/pg/commitdiff/b2cbced9eef20692b51a84d68d469627f4fc43ac - Re-pgindent src/bin/pg_dump/*. Seems to have gotten rather messy lately, as a consequence of a couple of large recent commits. http://git.postgresql.org/pg/commitdiff/7584649a1c58029a83a7a57d74cedcf1af434c97 - Fix core dump in pg_dump --binary-upgrade on zero-column composite type. This reverts nearly all of commit 28f6cab61ab8958b1a7dfb019724687d92722538 in favor of just using the typrelid we already have in pg_dump's TypeInfo struct for the composite type. As coded, it'd crash if the composite type had no attributes, since then the query would return no rows. Back-patch to all supported versions. It seems to not really be a problem in 9.0 because that version rejects the syntax "create type t as ()", but we might as well keep the logic similar in all affected branches. Report and fix by Rushabh Lathia. http://git.postgresql.org/pg/commitdiff/5c38a1d4ecce849b1e105f59ccca5a926181e4f0 - Avoid core dump in _outPathInfo() for Path without a parent RelOptInfo. Nearly all Paths have parents, but a ResultPath representing an empty FROM clause does not. Avoid a core dump in such cases. I believe this is only a hazard for debugging usage, not for production, else we'd have heard about it before. Nonetheless, back-patch to 9.1 where the troublesome code was introduced. Noted while poking at bug #11703. http://git.postgresql.org/pg/commitdiff/5ba062ee44c35b4dc49ccf869fe48f3c6f5f926f - Declare mkdtemp() only if we're providing it. Follow our usual style of providing an "extern" for a standard library function only when we're also providing the implementation. This avoids issues when the system headers declare the function slightly differently than we do, as noted by Caleb Welton. We might have to go to the extent of probing to see if the system headers declare the function, but let's not do that until it's demonstrated to be necessary. Oversight in commit 9e6b1bf258170e62dac555fc82ff0536dfe01d29. Back-patch to all supported branches, as that was. http://git.postgresql.org/pg/commitdiff/60f8133dc95d8d55ac52186eb9988559816cac49 Stephen Frost pushed: - Fix pg_dump for UPDATE policies. pg_dump had the wrong character for update and so was failing when attempts were made to pg_dump databases with UPDATE policies. Pointed out by Fujii Masao (thanks!) http://git.postgresql.org/pg/commitdiff/389573fd19edd255736c50dfd0fd779da7535a7b Fujii Masao pushed: - Fix bug in handling of connections that pg_receivexlog creates. Previously pg_receivexlog created new connection for WAL streaming even though another connection which had been established to create or delete the replication slot was being left. This caused the unused connection to be left uselessly until pg_receivexlog exited. This bug was introduced by the commit d9f38c7. This patch changes pg_receivexlog so that the connection for the replication slot is reused for WAL streaming. Andres Freund, slightly modified by me, reviewed by Michael Paquier http://git.postgresql.org/pg/commitdiff/504c717599b20cdaf09e9d7b6ecd152cc7a3a71a == Rejected Patches (for now) == No one was disappointed this week :-) == Pending Patches == Petr (PJMODOS) Jelinek sent in another revision of a patch to track commit timestamps. Petr (PJMODOS) Jelinek sent in a patch to add an access method for sequences. Andrew Dunstan and Pavel Stehule traded patches to add some missing functionality to JSON[B]. Michael Paquier sent in another revision of a patch to add generate_series(numeric, numeric). Michael Paquier sent in another revision of a patch to split builtins.h to quote.h. SAWADA Masahiko sent in a patch to drop any statistics of a table after it's truncated. Fabrízio de Royes Mello sent in another revision of a patch to add CINE for materialized views. Marco Nenciarini sent in another WIP revision of a patch to implement incremental backup. Marti Raudsepp sent in a patch to unify checks for catalog modification. Amit Kapila sent in another revision of a patch to scale shared buffer eviction. Etsuro Fujita sent in two more revisions of a patch to allow foreign tables to be in a table inheritance hierarchy. Dimitri Fontaine sent in two revisions of a patch to add a new type of event trigger: table_rewrite. Robert Haas sent in a patch to implement group locking, a support for parallelism. Stephen Frost sent in a patch to add a few additional role attributes (all requested by users or clients in various forums) for common operations which currently require superuser privileges. Robert Haas sent in a WIP patch to create a dynahash replacement for buffer table. Abhijit Menon-Sen sent in another revision of a patch to implement pg_audit, an extension. David Rowley sent in another revision of a patch to enable inner join removals under certain conditions. Alexander Korotkov sent in a WIP patch to re-add access method extensibility, and an extension using this machinery. Álvaro Herrera sent in another revision of a patch to enable replicating DROP commands across servers. Lucas Lersch sent in a patch to log buffer request trace data. Atri Sharma sent in a patch to implement UPDATE table SET(*)= and similar constructs. Adam Brightwell sent in a patch to implement a directory permission system that allows for providing a directory read/write capability to directories for COPY TO/FROM and Generic File Access Functions to non-superusers. Jeff Davis sent in another revision of a patch to allow better memory accounting for use in an eventual memory-bounded hash aggregate. SAWADA Masahiko and Fabrízio de Royes Mello traded patches to implement REINDEX SCHEMA. Michael Banck sent in a patch to log a notice that checkpoint is to be written on shutdown. Michael Paquier sent in another revision of a patch to give better support of exported snapshots to pg_dump. Rahila Syed sent in another revision of a patch to compress full-page writes. Craig Ringer sent in a patch to detect custom-format dumps in psql and emit a useful error. Pavel Stehule sent in another revision of a patch to add an Assert statement to PL/pgsql. Craig Ringer sent in a patch to add an errhint_log, akin to errdetail_log. This allows a different HINT to be sent to the server error log and to the client, which will be useful where there's security sensitive information that's more appropriate for a HINT than a DETAIL message. Furuya Osamu sent in another revision of a patch to pg_receivexlog --status-interval to add fsync feedback. Fujii Masao sent in a patch to fix an infelicity between RETURNING and POLICY. Fujii Masao sent in a patch to fix a bug in recovery mode. Andreas 'ads' Scherbaum sent in another revision of a patch to better describe PostgreSQL's rounding behavior. Dag-Erling Smørgrav sent in a patch to add ssl_protocols configuration option. Adam Brightwell sent in another revision of a patch to add a has_privs_of_role() function. Ali Akbar sent in another revision of a patch to add array_agg() functionality for array types. Emre Hasegeli sent in a patch to add a BRIN range operator class. Marko (johto) Tiikkaja sent in a patch to fix a bug where a comment in the pg_crypto extension refers to the wrong file.
pgsql-announce by date: