Publication des mises à jours mineures 9.1.3, 9.0.7, 8.4.11 et 8.3.18 imminentes. Préparez-vous ! [ndt: mises à jour disponibles (fr)]

Le PGDay DC 2012 est programmé pour le 30 mars : http://pgday.bwpug.org

Le PGDay Austin 2012 est programmé pour le 28 mars : http://www.austinpug.org/events/50962652/

Offres d'emplois autour de PostgreSQL en février

PostgreSQL Local

  • 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

Andrew Dunstan a poussé :

Tom Lane a poussé :

  • Don't reject threaded Python on FreeBSD. According to Chris Rees, this has worked for awhile, and the current FreeBSD port is removing the test anyway. http://git.postgresql.org/pg/commitdiff/c0efc2c2ab416b805ba5ccea621d7198a3f3330f
  • Don't clear btpo_cycleid during _bt_vacuum_one_page. When "vacuuming" a single btree page by removing LP_DEAD tuples, we are not actually within a vacuum operation, but rather in an ordinary insertion process that could well be running concurrently with a vacuum. So clearing the cycleid is incorrect, and could cause the concurrent vacuum to miss removing tuples that it needs to remove. This is a longstanding bug introduced by commit e6284649b9e30372b3990107a082bc7520325676 of 2006-07-25. I believe it explains Maxim Boguk's recent report of index corruption, and probably some other previously unexplained reports. In 9.0 and up this is a one-line fix; before that we need to introduce a flag to tell _bt_delitems what to do. http://git.postgresql.org/pg/commitdiff/593a9631a7947ab95903e87e24786d7e469cc988
  • Cosmetic cleanup for commit a760893dbda9934e287789d54bbd3c4ca3914ce0. Mostly, fixing overlooked comments. http://git.postgresql.org/pg/commitdiff/9789c99d01e7e4460b77c29b77d177f86c45a273
  • Draft release notes for 9.1.3, 9.0.7, 8.4.11, 8.3.18. http://git.postgresql.org/pg/commitdiff/dd2954963b4da9f6e8ea759f19ca5eb0cf79010f
  • Allow MinGW builds to use standardly-named OpenSSL libraries. In the Fedora variant of MinGW, the openssl libraries have their normal names, not libeay32 and libssleay32. Adjust configure probes to allow that, per bug #6486. Tomasz Ostrowski http://git.postgresql.org/pg/commitdiff/74e29162a4f0ec0ad1c7224b8be936d1f9a51f7e
  • Stamp 9.1.3, 9.0.7, 8.4.11, 8.3.18. http://git.postgresql.org/pg/commitdiff/64c47e4542910ebbfb494bec3f8abf8733113394
  • Fix the general case of quantified regex back-references. Cases where a back-reference is part of a larger subexpression that is quantified have never worked in Spencer's regex engine, because he used a compile-time transformation that neglected the need to check the back-reference match in iterations before the last one. (That was okay for capturing parens, and we still do it if the regex has *only* capturing parens ... but it's not okay for backrefs.) To make this work properly, we have to add an "iteration" node type to the regex engine's vocabulary of sub-regex nodes. Since this is a moderately large change with a fair risk of introducing new bugs of its own, apply to HEAD only, even though it's a fix for a longstanding bug. http://git.postgresql.org/pg/commitdiff/173e29aa5deefd9e71c183583ba37805c8102a72
  • Avoid repeated creation/freeing of per-subre DFAs during regex search. In nested sub-regex trees, lower-level nodes created DFAs and then destroyed them again before exiting, which is a bit dumb considering that the recursive search is likely to call those nodes again later. Instead cache each created DFA until the end of pg_regexec(). This is basically a space for time tradeoff, in that it might increase the maximum memory usage. However, in most regex patterns there are not all that many subre nodes, so not that many DFAs --- and in any case, the peak usage occurs when reaching the bottom recursion level, and except for alternation cases that's going to be the same anyway. http://git.postgresql.org/pg/commitdiff/587359479acbbdc95c8e37da40707e37097423f5
  • Merge dissect() into cdissect() to remove a pile of near-duplicate code. The "uncomplicated" case isn't materially less complicated than the full case, certainly not enough so to justify duplicating nearly 500 lines of code. The only extra work being done in the full path is zaptreesubs, which is very cheap compared to everything else being done here, and besides that I'm less than convinced that it's not needed in some cases even without backrefs. http://git.postgresql.org/pg/commitdiff/4dd78bf37aa29d04b3f358b08c4a2fa43cf828e7
  • Remove useless "retry memory" logic within regex engine. Apparently some primordial version of Spencer's engine needed cdissect() and child functions to be able to continue matching from a previous position when re-called. That is dead code, though, since trivial inspection shows that cdissect can never be entered without having previously done zapmem which resets the relevant retry counter. I have also verified experimentally that no case in the Tcl regression tests reaches cdissect with a nonzero retry value. Accordingly, remove that logic. This doesn't really save any noticeable number of cycles in itself, but it is one step towards making dissect() and cdissect() equivalent, which will allow removing hundreds of lines of near-duplicated code. Since struct subre's "retry" field is no longer particularly related to any kind of retry, rename it to "id". As of this commit it's only used for identifying a subre node in debug printouts, so you might think we should get rid of the field entirely; but I have a plan for another use. http://git.postgresql.org/pg/commitdiff/3cbfe485e44d055b9e6a27e47069729375059f8c
  • Fix some more bugs in GIN's WAL replay logic. In commit 4016bdef8aded77b4903c457050622a5a1815c16 I fixed a bunch of ginxlog.c bugs having to do with not handling XLogReadBuffer failures correctly. However, in ginRedoUpdateMetapage and ginRedoDeleteListPages, I unaccountably thought that failure to read the metapage would be impossible and just put in an elog(PANIC) call. This is of course wrong: failure is exactly what will happen if the index got dropped (or rebuilt) between creation of the WAL record and the crash we're trying to recover from. I believe this explains Nicholas Wilson's recent report of these errors getting reached. Also, fix memory leak in forgetIncompleteSplit. This wasn't of much concern when the code was written, but in a long-running standby server page split records could be expected to accumulate indefinitely. Back-patch to 8.4 --- before that, GIN didn't have a metapage. http://git.postgresql.org/pg/commitdiff/1b630751d0ffef4c856bfe382889d0d187eca404

Peter Eisentraut a poussé :

Magnus Hagander a poussé :

Simon Riggs a poussé :

Alvaro Herrera a poussé :

Bruce Momjian a poussé :

Robert Haas 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 fix some slowness and bugs in inserting cubes.
  • Kyotaro HORIGUCHI and Marko Kreen traded patches to create a new libpq tuple store and speed up dblink using same.
  • Etsuro Fujita and Shigeru HANADA traded versions of a patch to add a PostgreSQL FDW.
  • Gabriele Bartolini sent in another revision of the patch to allow array elements to reference keys in another table.
  • Dimitri Fontaine sent in another revision of the patch to collect and display accumulated AUTOVACUUM cost.
  • Alexander Korotkov sent in a patch to fix incorrect behaviour when using a GiST index on points.
  • Jan Urbanski sent in another revision of the patch to fix potential reference miscounts and segfaults in plpython.c.
  • Greg Smith sent in a patch to add a pg_test_timing tool for EXPLAIN ANALYZE overhead.
  • Simon Riggs sent in another revision of the patch to assess the overall level of freelist lwlock contention.
  • Greg Smith and Ants Aasma traded revisions of a patch to add timing of buffer I/O requests.
  • Peter Geoghegan sent in another revision of the patch to publish checkpoint timing and sync files summary data to pg_stat_bgwriter.
  • Timothy Garnett sent in a patch to make it possible to ask pg_dump to dump tables in clustered index order.
  • Joachim Wieland sent in another revision of the patch to make it possible to use pg_dump in parallel.
  • Daniel Farina sent in another revision of the patch to move CRC tables to a separate include file and libpg.
  • KaiGai Kohei sent in another revision of the patch to add a sepgsql_setcon() function to SE-pgsql.
  • Peter Eisentraut sent in a patch to fix an issue with incompatible pointer types for different revisions of zlib.
  • Alex Shulgin sent in another revision of a patch to add URL support to libpq.
  • Daniel Farina sent in another revision of a patch inteneded to re-normalize pg_stat_statements.
  • Peter Eisentraut sent in another revision of the patch to correct misleading errors on CREATE TABLE ... LIKE.
  • Simon Riggs sent in a patch to speed up COPY for the case of adding committed rows.
  • Dimitri Fontaine sent in three more revisions of the patch to implement command triggers.
  • Sergey Burladyan sent in a patch to fix a bug in psql's indent for inherited tables names with UTF-8
  • Noah Misch sent in a patch to cut down the noise in psql when there is an error in a multi-command string.
  • Jeff Janes sent in a patch to reproduce and fix an issue he's been seeing around the "moving more work outside the WALInsertLock" patch.
  • Magnus Hagander sent in a patch to fix xlog location arithmetic.
  • Simon Riggs sent in a patch to fix certain contentions in CLOG.
  • Magnus Hagander sent in a patch to create a new stylesheet, assuming the docs are built locally.