Le PGDay France aura lieu à Lyon, le 7 juin 2012 : http://www.pgday.fr

Le PGDay NYC aura lieu le 2 avril 2012 au Lighthouse International à New-York : http://pgday.nycpug.org

Les nouveautés des produits dérivés

Offres d'emplois autour de PostgreSQL en février

PostgreSQL Local

  • La cinquième conférence annuelle "Prague PostgreSQL Developers Day", organisée pas le CSPUG (PUG Tchèque & Slovaque), aura lieu le 9 février 2012 à Prague.
  • Le PGDay NYC aura lieu le 2 avril 2012 au Lighthouse International à New-York : http://pgday.nycpug.org
  • La PGCon 2012 sera tenue à l'Université d'Ottawa, les 17 et 18 mai 2012. Elle sera précédée par deux jours de tutoriels les 15 & 16 mai 2012 : http://www.pgcon.org/2012/
  • Le PGDay France aura lieu à Lyon, le 7 juin 2012 : http://www.pgday.fr

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)

Revues de code

Correctifs appliqués

Heikki Linnakangas a poussé :

  • Accept a non-existent value in "ALTER USER/DATABASE SET ..." command. When default_text_search_config, default_tablespace, or temp_tablespaces setting is set per-user or per-database, with an "ALTER USER/DATABASE SET ..." statement, don't throw an error if the text search configuration or tablespace does not exist. In case of text search configuration, even if it doesn't exist in the current database, it might exist in another database, where the setting is intended to have its effect. This behavior is now the same as search_path's. Tablespaces are cluster-wide, so the same argument doesn't hold for tablespaces, but there's a problem with pg_dumpall: it dumps "ALTER USER SET ..." statements before the "CREATE TABLESPACE" statements. Arguably that's pg_dumpall's fault - it should dump the statements in such an order that the tablespace is created first and then the "ALTER USER SET default_tablespace ..." statements after that - but it seems better to be consistent with search_path and default_text_search_config anyway. Besides, you could still create a dump that throws an error, by creating the tablespace, running "ALTER USER SET default_tablespace", then dropping the tablespace and running pg_dumpall on that. Backpatch to all supported versions. http://git.postgresql.org/pg/commitdiff/a5782570402988205b3a42ed40f7bc157eac21fc
  • Make group commit more effective. When a backend needs to flush the WAL, and someone else is already flushing the WAL, wait until it releases the WALInsertLock and check if we still need to do the flush or if the other backend already did the work for us, before acquiring WALInsertLock. This helps group commit, because when the WAL flush finishes, all the backends that were waiting for it can be woken up in one go, and the can all concurrently observe that they're done, rather than waking them up one by one in a cascading fashion. This is based on a new LWLock function, LWLockWaitUntilFree(), which has peculiar semantics. If the lock is immediately free, it grabs the lock and returns true. If it's not free, it waits until it is released, but then returns false without grabbing the lock. This is used in XLogFlush(), so that when the lock is acquired, the backend flushes the WAL, but if it's not, the backend first checks the current flush location before retrying. Original patch and benchmarking by Peter Geoghegan and Simon Riggs, although this patch as committed ended up being very different from that. http://git.postgresql.org/pg/commitdiff/9b38d46d9f5517dab67dda1dd0459683fc9cda9f
  • Fix bug in the new wait-until-lwlock-is-free mechanism. If there was a wait-until-free process in the head of the wait queue, followed by an exclusive locker, the exclusive locker was not be woken up as it should. http://git.postgresql.org/pg/commitdiff/82d4b262d9614958da38003cdc9d56915d9bcda0
  • Print function signature, not just name, in PL/pgSQL error messages. This makes it unambiguous which function the message is coming from, if you have overloaded functions. Pavel Stehule, reviewed by Abhijit Menon-Sen. http://git.postgresql.org/pg/commitdiff/4c6cedd1b014abf2046886a9a92e10e18f0d658e

Simon Riggs a poussé :

Robert Haas a poussé :

Peter Eisentraut a poussé :

Tom Lane a poussé :

  • Code review for plpgsql fn_signature patch. Don't quote the output of format_procedure(); it's already quoted quite enough. Remove the fn_name field, which was now just dead weight. Fix remaining expected-output files. http://git.postgresql.org/pg/commitdiff/bef47331b6a1c0d081179a7fc9b82dd7e1862394
  • Try to be more consistent about accepting denormalized float8 numbers. On some platforms, strtod() reports ERANGE for a denormalized value (ie, one that can be represented as distinct from zero, but is too small to have full precision). On others, it doesn't. It seems better to try to accept these values consistently, so add a test to see if the result value indicates a true out-of-range condition. This should be okay per Single Unix Spec. On machines where the underlying math isn't IEEE standard, the behavior for such small numbers may not be very consistent, but then it wouldn't be anyway. Marti Raudsepp, after a proposal by Jeroen Vermeulen http://git.postgresql.org/pg/commitdiff/c318aeed84438619fc6b8c647def1730a110f04b
  • Add some regression test cases for denormalized float8 input. This was submitted with the previous patch, but I'm committing it separately to ease backing it out if these results prove too unportable. Marti Raudsepp, after a proposal by Jeroen Vermeulen http://git.postgresql.org/pg/commitdiff/500cf66d5522b39ddfdc26b309f8b5b0e385f42e
  • Revert "Add some regression test cases for denormalized float8 input." This reverts commit 500cf66d5522b39ddfdc26b309f8b5b0e385f42e. As was more or less expected, a small minority of platforms won't accept denormalized input even with the recent changes. It doesn't seem especially helpful to test this if we're going to have to provide an alternate expected-file to allow failure. http://git.postgresql.org/pg/commitdiff/342b83fdca6af04d86e761f4d8d79e5d598688cd
  • Allow SQL-language functions to reference parameters by name. Matthew Draper, reviewed by Hitoshi Harada http://git.postgresql.org/pg/commitdiff/9bff0780cf5be2193a5bad0d3df2dbe143085264
  • Improve comment. http://git.postgresql.org/pg/commitdiff/ee68a44106fa89b8efb2f21b71c3fcafaaf48851
  • Add missing Assert and fix inaccurate elog message in standby_redo(). All other WAL redo routines either call RestoreBkpBlocks() or Assert that they haven't been passed any backup blocks. Make this one do likewise. Also, fix incorrect routine name in its failure message. http://git.postgresql.org/pg/commitdiff/2af72cefeaa15e27277d327783fdec2748d9b758
  • Fix transient clobbering of shared buffers during WAL replay. RestoreBkpBlocks was in the habit of zeroing and refilling the target buffer; which was perfectly safe when the code was written, but is unsafe during Hot Standby operation. The reason is that we have coding rules that allow backends to continue accessing a tuple in a heap relation while holding only a pin on its buffer. Such a backend could see transiently zeroed data, if WAL replay had occasion to change other data on the page. This has been shown to be the cause of bug #6425 from Duncan Rance (who deserves kudos for developing a sufficiently-reproducible test case) as well as Bridget Frey's re-report of bug #6200. It most likely explains the original report as well, though we don't yet have confirmation of that. To fix, change the code so that only bytes that are supposed to change will change, even transiently. This actually saves cycles in RestoreBkpBlocks, since it's not writing the same bytes twice. Also fix seq_redo, which has the same disease, though it has to work a bit harder to meet the requirement. So far as I can tell, no other WAL replay routines have this type of bug. In particular, the index-related replay routines, which would certainly be broken if they had to meet the same standard, are not at risk because we do not have coding rules that allow access to an index page when not holding a buffer lock on it. Back-patch to 9.0 where Hot Standby was added. http://git.postgresql.org/pg/commitdiff/17118825b8164aac6d337b58cf66b17637c66a49

Alvaro Herrera a poussé :

Andrew Dunstan a poussé :

Michael Meskes a poussé :

Bruce Momjian a poussé :

Correctifs rejetés (à ce jour)

  • Pas de déception cette semaine :-)

Correctifs en attente

  • Alexander Korotkov sent in another revision of the patch to add GiST indexing for range types, per review by Jeff Davis.
  • Kyotaro HORIGUCHI and Marko Kreen traded patches to speed dblink by creating and using a new libpq tuple storage method.
  • Gilles Darold sent in a patch to implement pg_is_in_backup().
  • Alvaro Herrera sent in another revision of the FOREIGN KEY locks patch.
  • Robert Haas and Simon Riggs traded patches to implement DROP INDEX CONCURRENTLY.
  • Andrew Dunstan sent in a patch to fix an issue where pg_dump -s could dump data if it came from an extension.
  • Shigeru HANADA sent in another revision of the patch to implement a PostgreSQL FDW.
  • Heikki Linnakangas sent in another revision of the patch to scale xlog insertion.
  • Peter Eisentraut sent in another revision of the patch to enable renaming constraints in an ALTER TABLE statement.
  • Chetan Suttraway sent in a patch to implement SPI_gettypemod().
  • Simon Riggs sent in a patch refactoring log_newpage.
  • Alvaro Herrera sent in a patch to fix an issue where heap_tuple_read could get a false positive.
  • Alvaro Herrera sent in a patch to make options in pg_hba.conf be case-insensitive.
  • Oleg Bartunov sent in a patch to support NULLs in SP-GiST.
  • Robert Haas sent in another revision of the patch to allow EXPLAIN ANALYZE not to include timing information.
  • Marti Raudsepp sent in another revision of the patch to cache stable expressions with constant arguments.
  • KaiGai Kohei sent in another revision of the patch to unify the permissions checks on DROP.
  • KaiGai Kohei sent in another revision of the patch to add a sepgsql.client_label GUC.
  • Thomas Munro sent in a patch to add an optional SKIP LOCKED DATA to SELECT ... FOR (UPDATE | SHARE ).
  • Jeff Janes sent in another revision of the patch to use less memory during sorting.
  • Jeff Davis sent in a patch to fix an issue where it was possible for things to happen between an initdb call and its actually getting written out to disk.
  • Simon Riggs sent in another revision of the patch to fix an issue in slot_deform_tuple.
  • Jan Urbanski sent in a patch to fix a memory leak in PL/PythonU's datum->dict transformation.
  • Jan Urbanski sent in a patch to fix a memory leak in PL/PythonU's datum->string transformation.