L'appel à conférenciers pour le PGDay de Belfort (France) se termine le 13 avril 2015. La conférence aura lieu le 2 juin : http://select-2-6-2015-as-pgday.org

La 4ème conférence PostgreSQL turque se tiendra à Istanbul le 9 mai 2015 : http://pgday.postgresql.org.tr/en/index.html

Les nouveautés des produits dérivés

Offres d'emplois autour de PostgreSQL en avril

PostgreSQL Local

PostgreSQL dans les média

PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'équipe PostgreSQLFr sous licence CC BY-NC-SA.

Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais à david (a) fetter.org, en allemand à pwn (a) pgug.de, en italien à pwn (a) itpug.org et en espagnol à pwn (a) arpug.com.ar.

(lien vers l'article original)

Correctifs appliqués

Fujii Masao a poussé :

Álvaro Herrera a poussé :

  • Fix object identities for pg_conversion objects. This was already fixed in 0d906798f, but I failed to update the array-formatted case. This is not backpatched, since this only affects the code path introduced by commit a676201490c. http://git.postgresql.org/pg/commitdiff/70dc2db7f1dfdecdacf595bf00964cb20ad5a835
  • pg_event_trigger_dropped_objects: add is_temp column. It now also reports temporary objects dropped that are local to the backend. Previously we weren't reporting any temp objects because it was deemed unnecessary; but as it turns out, it is necessary if we want to keep close track of DDL command execution inside one session. Temp objects are reported as living in schema pg_temp, which works because such a schema-qualification always refers to the temp objects of the current session. http://git.postgresql.org/pg/commitdiff/e9a077cad3799b41e8deef6fd8cb87e50164a791
  • Remove variable shadowing. Commit a2e35b53 should have removed the variable declaration in the inner block, but didn't. As a result, the returned address might end up not being what was intended. http://git.postgresql.org/pg/commitdiff/4e17e32f53c2de4a862ee5ef8bdcfa9152c11e25
  • Fix autovacuum launcher shutdown sequence. It was previously possible to have the launcher re-execute its main loop before shutting down if some other signal was received or an error occurred after getting SIGTERM, as reported by Qingqing Zhou. While investigating, Tom Lane further noticed that if autovacuum had been disabled in the config file, it would misbehave by trying to start a new worker instead of bailing out immediately -- it would consider itself as invoked in emergency mode. Fix both problems by checking the shutdown flag in a few more places. These problems have existed since autovacuum was introduced, so backpatch all the way back. http://git.postgresql.org/pg/commitdiff/5df64f298d2863c9fb39437abb3ae6f988aedc0a
  • Change SQLSTATE for event triggers "wrong context" message. When certain event-trigger-only functions are called when not in the wrong context, they were reporting the "feature not supported" SQLSTATE, which is somewhat misleading. Create a new custom error code for such uses instead. Not backpatched since it may be seen as an undesirable behavioral change. Author: Michael Paquier. Discussion: https://www.postgresql.org/message-id/CAB7nPqQ-5NAkHQHh_NOm7FPep37NCiLKwPoJ2Yxb8TDoGgbYYA@mail.gmail.com http://git.postgresql.org/pg/commitdiff/73206812cd97436cffd8f331dbb09d38a2728162
  • Optimize locking a tuple already locked by another subxact. Locking and updating the same tuple repeatedly led to some strange multixacts being created which had several subtransactions of the same parent transaction holding locks of the same strength. However, once a subxact of the current transaction holds a lock of a given strength, it's not necessary to acquire the same lock again. This made some coding patterns much slower than required. The fix is twofold. First we change HeapTupleSatisfiesUpdate to return HeapTupleBeingUpdated for the case where the current transaction is already a single-xid locker for the given tuple; it used to return HeapTupleMayBeUpdated for that case. The new logic is simpler, and the change to pgrowlocks is a testament to that: previously we needed to check for the single-xid locker separately in a very ugly way. That test is simpler now. As fallout from the HTSU change, some of its callers need to be amended so that tuple-locked-by-own-transaction is taken into account in the BeingUpdated case rather than the MayBeUpdated case. For many of them there is no difference; but heap_delete() and heap_update now check explicitely and do not grab tuple lock in that case. The HTSU change also means that routine MultiXactHasRunningRemoteMembers introduced in commit 11ac4c73cb895 is no longer necessary and can be removed; the case that used to require it is now handled naturally as result of the changes to heap_delete and heap_update. The second part of the fix to the performance issue is to adjust heap_lock_tuple to avoid the slowness: 1. Previously we checked for the case that our own transaction already held a strong enough lock and returned MayBeUpdated, but only in the multixact case. Now we do it for the plain Xid case as well, which saves having to LockTuple. 2. If the current transaction is the only locker of the tuple (but with a lock not as strong as what we need; otherwise it would have been caught in the check mentioned above), we can skip sleeping on the multixact, and instead go straight to create an updated multixact with the additional lock strength. 3. Most importantly, make sure that both the single-xid-locker case and the multixact-locker case optimization are applied always. We do this by checking both in a single place, rather than them appearing in two separate portions of the routine -- something that is made possible by the HeapTupleSatisfiesUpdate API change. Previously we would only check for the single-xid case when HTSU returned MayBeUpdated, and only checked for the multixact case when HTSU returned BeingUpdated. This was at odds with what HTSU actually returned in one case: if our own transaction was locker in a multixact, it returned MayBeUpdated, so the optimization never applied. This is what led to the large multixacts in the first place. Per bug report #8470 by Oskari Saarenmaa. http://git.postgresql.org/pg/commitdiff/27846f02c176eebe7e08ce51ed4d52140454e196

Simon Riggs a poussé :

Heikki Linnakangas a poussé :

Tom Lane a poussé :

Robert Haas a poussé :

Bruce Momjian a poussé :

Andres Freund a poussé :

Magnus Hagander a poussé :

Peter Eisentraut a poussé :

Correctifs rejetés (à ce jour)

  • No one was disappointed this week

Correctifs en attente

  • Fabrízio de Royes Mello sent in two more revisions of a patch to refactor reloptions to set locklevel.
  • Artem Luzyanin sent in two revisions of a patch to consolidate the documentation of spinlocks and like kind items.
  • Emre Hasegeli sent in another revision of a patch to add a BRIN range operator class.
  • Tomas Vondra sent in a patch to use foreign keys to improve join estimates.
  • Michael Paquier sent in a patch to ignore some binaries generated in src/test.
  • SAWADA Masahiko and Fabrízio de Royes Mello traded patches to add REINDEX ... VERBOSE.
  • Shigeru HANADA sent in four more revisions of a patch to add a foreign join API.
  • Petr Jelinek sent in another revision of a patch to implement TABLESAMPLE.
  • Craig Ringer sent in a patch to add a pid column to pg_replication_slots.
  • Peter Eisentraut and Pavel Stehule traded patches to add TRANSFORMS.
  • Michael Paquier sent in another revision of a patch to add an error code to track unsupported contexts.
  • Álvaro Herrera sent in two more revisions of a patch to add deparsing utilities.
  • Peter Geoghegan sent in another revision of a patch to implement INSERT ... ON CONFLICT UPDATE (and IGNORE).
  • Tom Lane sent in another revision of a patch to implement UPDATE (*) SET ...
  • Fujii Masao sent in another revision of a patch to remove the obsolete FORCE option from REINDEX.
  • Dean Rasheed sent in another revision of a patch to fix some infelicities in the error reporting for row-level access control.
  • Kyotaro HORIGUCHI sent in another revision of a patch to implement regnamespace and regrole.
  • Antonin Houska sent in a patch to fix some issues in xlogreader.
  • Craig Ringer sent in two revisions of a patch to make pg_dump -t take materialized views, matview data, foreign tables, and sequences.
  • Bruce Momjian sent in two revisions of a patch to ensure that CREATE TABLE (LIKE...) preserves the relhasoids setting.
  • Michael Paquier sent in another revision of a patch to suppport TAP tests with MSVC and Windows.
  • Jan Urbański sent in another revision of a patch to fix a bug in libpq's multi-threaded SSL callback handling.
  • Ian Stakenvicius sent in a patch to fix an issue on Gentoo where postgres fails to start with timezone-data >=2013e.
  • Etsuro Fujita sent in another revision of a patch to fix a problem where EvalPlanQual behaves oddly for FDW queries involving system columns.
  • Pavel Stehule sent in a patch to add a "raw" output option to COPY.
  • Chen Huajun sent in a patch to prevent setting Win32 server-side socket buffer size on Windows 2012.
  • David Rowley sent in a patch to fix a few appendStringInfo* calls that were not quite doing things the way as intended.
  • Michael Paquier sent in another revision of a patch to help improve the performance of make check-world.
  • Heikki Linnakangas sent in a patch to remove xlogrecord padding.