<p><strong>Nouvelles hebdomadaires de PostgreSQL - 26 avril 2009</strong></p> <p>La communaut&eacute; PG hispanophone a maintenant son site web. F&eacute;licitations ! <a target="_blank" href="http://www.postgresql-es.org/">http://www.postgresql-es.org/</a></p> <p><strong>Les nouveaut&eacute;s des produits d&eacute;riv&eacute;s</strong></p> <ul> <li>DBD::Pg 2.13.1, un connecteur Perl pour PostgreSQL&nbsp;: <a target="_blank" href="http://search.cpan.org/dist/DBD-Pg/">http://search.cpan.org/dist/DBD-Pg/</a></li> <li>pgFouine 1.1, un analyseur de log PostgreSQL&nbsp;: <a target="_blank" href="http://pgfouine.projects.postgresql.org/">http://pgfouine.projects.postgresql.org/</a></li> <li>pgpool-II 2.2.1, un gestionnaire de connexions et bien d'avantage&nbsp;: <a target="_blank" href="http://pgfoundry.org/projects/pgpool/">http://pgfoundry.org/projects/pgpool/</a></li> <li>Slony-ctl 1.0, a jeu de scripts pour g&eacute;rer les grappes Slony&nbsp;: <a target="_blank" href="http://pgfoundry.org/projects/slony1-ctl/">http://pgfoundry.org/projects/slony1-ctl/</a></li> </ul> <p><strong>La fonctionnalit&eacute; 8.4 de la semaine</strong></p> <p>pg_stat_functions&nbsp;: cette nouvelle vue syst&egrave;me montre combien de fois une fonction a &eacute;t&eacute; appel&eacute;e et le temps pass&eacute; en ex&eacute;cution.</p> <p><strong>L'astuce de la semaine</strong></p> <p>PostgreSQL prend en charge les sous-requ&ecirc;tes dans les clauses SELECT, FROM et WHERE. N'h&eacute;sitez donc pas&nbsp;: pensez &agrave; la/les placer de fa&ccedil;on &agrave; ce qu'elles s'ex&eacute;cutent au mieux et vous donnent le r&eacute;sultat escompt&eacute;.</p> <p>(<a target="_blank" href="http://www.postgresql.org/community/weeklynews/pwn20090426">lien vers l'article original</a>)</p> <p><strong>Offres d'emplois autour de PostgreSQL en avril</strong></p> <ul> <li><a target="_blank" href="http://archives.postgresql.org/pgsql-jobs/2009-04/threads.php">http://archives.postgresql.org/pgsql-jobs/2009-04/threads.php</a></li> </ul> <p><strong>PostgreSQL Local</strong></p> <ul> <li>Le PgDay de Florianopolis aura lieu le 22 mai. Contactez Dickson S. Guedes (guedes AROBASE guedesoft DOT net) pour participer ou proposer une conf&eacute;rence&nbsp;: <a target="_blank" href="http://www.postgresql.org.br/eventos/pgday/sc">http://www.postgresql.org.br/eventos/pgday/sc</a></li> <li>La "Percona Performance Conference" prendra place au "Santa Clara Convention Center", Santa Clara, Californie&nbsp;: <a target="_blank" href="http://conferences.percona.com/">http://conferences.percona.com/</a></li> <li>L'appel aux conf&eacute;rences est lanc&eacute; pour le PgDay de S&atilde;o Paulo, programm&eacute; le 24 avril. Contactez [marins (point) consultoria (a) gmail (point) com] ou [marcelojscosta (a) gmail (point) com] pour participer.</li> <li>"PostgreSQL Conference, U.S. (JDCon)" organise un PgDay lors de la "LinuxFest Northwest" (25 &amp; 26 avril). L'appel aux conf&eacute;rences est consultable &agrave; l'adresse&nbsp;: <a target="_blank" href="http://www.postgresqlconference.org/">http://www.postgresqlconference.org/</a></li> <li>Il y aura &eacute;galement des PgDays les 29 et 30 avril, respectivement &agrave; Porto Velho (RO) et Ji-Parana (RO). Contactez Luis Fernando Bueno&nbsp;: [proflfbueno (a) gmail (point) com] pour participer.</li> <li>Michael Renner animera un atelier sur la r&eacute;plication PostgreSQL lors des "Netways OSDC", les 29 et 30 avril 2009, &agrave; Nuremberg (All.)&nbsp;: <a target="_blank" href="http://www.netways.de/english/osdc/y2009/programm/w/michael_renner_postgresql_repliziert_ein_ueberblick/">http://www.netways.de/english/osdc/y2009/programm/w/michael_renner_postgresql_repliziert_ein_ueberblick/</a></li> <li>La PGCon 2009 se tiendra &agrave; l'Universit&eacute; d'Ottawa les 21 et 22 mai 2009. Elle sera pr&eacute;c&eacute;d&eacute;e de deux jours de tutoriels les 19 &amp; 20 mai&nbsp;: <a target="_blank" href="http://www.pgcon.org/2009/">http://www.pgcon.org/2009/</a></li> <li>Notez la date&nbsp;: pgDay San Jose, dimanche 19 juillet juste avant l'OSCON. Appel &agrave; conf&eacute;renciers, plus d'infos sous peu&nbsp;!</li> <li>La "PGCon Brazil" prendra place &agrave; l'Unicamp de Campinas (&Eacute;tat de S&atilde;o Paulo) les 23 &amp; 24 octobre 2009.</li> </ul> <p><strong>PostgreSQL dans les m&eacute;dia</strong></p> <ul> <li>Planet PostgreSQL&nbsp;: <a target="_blank" href="http://planet.postgresql.org/">http://planet.postgresql.org/</a></li> </ul> <p><i>PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter et Josh Berkus. La traduction en est assur&eacute;e par l'&eacute;quipe PostgreSQLFr.</i></p> <p><i>Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &agrave; david (a) fetter.org, en allemand &agrave; pwn (a) pgug.de, en italien &agrave; pwn (a) itpug.org.</i></p> <p><strong>Correctifs appliqu&eacute;s</strong></p> <p>Magnus Hagander a commit&eacute;&nbsp;:</p> <ul> <li>In pgsql/src/tools/msvc/Install.pm, read nls.nk files to determine the proper name of NLS catalogs to install. Hiroshi Inoue, with minor modifications by me.</li> <li>Move gettext encoding names into encnames.c, so we only have one place to update. Per discussion.</li> <li>Remove sslverify parameter again, replacing it with two new sslmode values: "verify-ca" and "verify-full". Since "prefer" remains the default, this will make certificate validation off by default, which should lead to less upgrade issues.</li> <li>In pgsql/doc/src/sgml/release.sgml, remove sslverify parameter from release notes, mention that sslmode is used instead.</li> <li>In pgsql/doc/src/sgml/libpq.sgml, more clearly document what the different sslmode options mean, both the new and the old ones. Consistently talk about certificate verification, and not validation.</li> </ul> <p>Bruce Momjian a commit&eacute;&nbsp;:</p> <ul> <li>Add agg/normal/trigger/window flags for psql \df and in \df output. David Fetter.</li> <li>Merge psql \df options into a single \? line, and update docs.</li> <li>Improve psql \df error handling. David Fetter.</li> <li>In pgsql/src/bin/psql/help.c, use brackets in psql \df \? help.</li> <li>In pgsql/doc/src/sgml/runtime.sgml, improve server spoofing wording, per request from Magnus Hagander.</li> <li>Remove HELIOS Software GmbH name and copyright from AIX dynloader files, per approval from Helmut Tschemernjak, President. Only back branches; files removed from CVS HEAD.</li> </ul> <p>Tom Lane a commit&eacute;&nbsp;:</p> <ul> <li>In pgsql/src/backend/port/dynloader/osf.c, fix obsolete cross-reference (this file isn't called alpha.c anymore)</li> <li>Remove the long-obsolete homebrew dl*() functions for AIX, in favor of just using the system functions all the time. (These files are now just copies of the osf.* files.) The homebrew functions were not getting used anyway on AIX versions that have dlopen(), that is 4.3 and up, so they are not needed on any AIX that is even remotely supported by the vendor anymore. We'd have probably left them here anyway, except some questions were raised about the copyright.</li> <li>Change the default value of max_prepared_transactions to zero, and add documentation warnings against setting it nonzero unless active use of prepared transactions is intended and a suitable transaction manager has been installed. This should help to prevent the type of scenario we've seen several times now where a prepared transaction is forgotten and eventually causes severe maintenance problems (or even anti-wraparound shutdown). The only real reason we had the default be nonzero in the first place was to support regression testing of the feature. To still be able to do that, tweak pg_regress to force a nonzero value during "make check". Since we cannot force a nonzero value in "make installcheck", add a variant regression test "expected" file that shows the results that will be obtained when max_prepared_transactions is zero. Also, extend the HINT messages for transaction wraparound warnings to mention the possibility that old prepared transactions are causing the problem. All per today's discussion.</li> <li>In pgsql/src/backend/commands/dbcommands.c, don't use the result of strcmp as if it were a boolean. A service of your local coding style police.</li> <li>In pgsql/src/backend/libpq/ip.c, suppress some 'variable may be used uninitialized' warnings from gcc 4.4.</li> <li>In pgsql/src/backend/parser/parse_func.c, fix some more 'variable may be used uninitialized' warnings from gcc 4.4.</li> <li>Fix the handling of sub-SELECTs appearing in the arguments of an outer-level aggregate function. By definition, such a sub-SELECT cannot reference any variables of query levels between itself and the aggregate's semantic level (else the aggregate would've been assigned to that lower level instead). So the correct, most efficient implementation is to treat the sub-SELECT as being a sub-select of that outer query level, not the level the aggregate syntactically appears in. Not doing so also confuses the heck out of our parameter-passing logic, as illustrated in bug report from Daniel Grace. Fortunately, we were already copying the whole Aggref expression up to the outer query level, so all that's needed is to delay SS_process_sublinks processing of the sub-SELECT until control returns to the outer level. This has been broken since we introduced spec-compliant treatment of outer aggregates in 7.4; so patch all the way back.</li> <li>Update citext expected output to exactly match the real output, rather than having some whitespace discrepancy. Although whitespace is supposed to be ignored in our regression tests, for some reason buildfarm member spoonbill doesn't like it.</li> <li>In pgsql/src/bin/psql/copy.c, remove Windows-specific definition of S_ISDIR(). This should not be here; if there are any Windows configurations where port/win32.h fails to provide the macro, it should be fixed in the latter file not here.</li> <li>In pgsql/doc/src/sgml/release.sgml, some more work on the 8.4 release notes. Document a few changes that Bruce apparently found uninteresting, and do minor wordsmithing on a number of the existing entries.</li> </ul> <p>Heikki Linnakangas a commit&eacute;&nbsp;:</p> <ul> <li>In pgsql/src/backend/access/transam/xlog.c, after archive recovery, mark the last WAL segment from the parent timeline ready for archival. It was marked at the next checkpoint anyway, but waiting for the next checkpoint is an unnecessary delay. Fujii Masao.</li> <li>varstr_cmp and any comparison function that piggybacks on it can return any negative or positive number, not just -1 or 1. Fix comment on varstr_cmp and citext test case accordingly. As pointed out by Zdenek Kotala, and buildfarm member gothic moth.</li> <li>In pgsql/doc/src/sgml/maintenance.sgml, improve the documentation on 8.4 visibility map related VACUUM changes. Explain how vacuum_freeze_table_age should be tuned, and how it relates to the other settings. Mention that vacuum_freeze_table_age also affects when autovacuum scans the whole table.</li> <li>In pgsql/doc/src/sgml/storage.sgml, mention that tables have a visibility map fork alongside the main fork and FSM.</li> </ul> <p><strong>Correctifs rejet&eacute;s (&agrave; ce jour)</strong></p> <ul> <li>No one was disappointed this week :-)</li> </ul> <p><strong>Correctifs en attente</strong></p> <ul> <li>Pavel Stehule sent in another revision of his patch to add transformation hooks into the parser.</li> <li>Fujii Masao sent in two more revisions of the stats_temp_directory patch.</li> <li>Hiroshi Inoue sent in a patch which adds some encoding conversion logic on Windows.</li> <li>Fujii Masao sent in another revision of the pg_standby trigger patch.</li> <li>Tom Lane sent in a patch to fix a performance regression in hash joins.</li> <li>Robert Haas sent in an experimental patch to change NTUP_PER_BUCKET into a GUC called hash_load, and add EXPLAIN support to show the number of buckets and batches.</li> <li>Brendan Jurd sent in an updated version of Pavel Stehule's patch to add scientific notation to to_char().</li> <li>Hannu Valtonen sent in a patch to add support for integer and text arrays to PL/PythonU.</li> </ul>