<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>La planète francophone de PostgreSQL</title>
	<link rel="self" href="http://planete.postgresql.fr/atom.xml"/>
	<link href="http://planete.postgresql.fr/"/>
	<id>http://planete.postgresql.fr/atom.xml</id>
	<updated>2010-09-02T20:17:14+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<entry xml:lang="fr">
		<title type="html">PostgreSQL 9.0 RC1</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/08/31/PostgreSQL-9.0-RC1"/>
		<id>urn:md5:da33b0ff1cb36e88c5d9288fdc1f3f57</id>
		<updated>2010-08-31T20:19:50+00:00</updated>
		<content type="html">&lt;p&gt;La première «&amp;nbsp;release candidate&amp;nbsp;» de PostgreSQL 9.0 est désormais publiée.&lt;/p&gt;


&lt;p&gt;Plus vite vous la téléchargerez et la testerez, plus vite nous aboutirons à la version finale. Tous les bogues connus doivent être corrigés. C'est pourquoi nous demandons aux utilisateurs de remonter rapidement tout bogue qu'ils pourraient rencontrer.&lt;/p&gt;


&lt;p&gt;Du fait d'une modification dans le catalogue système, un initdb et un rechargement de la base sont nécessaires pour les mises à jour depuis les versions bêta de la 9.0.
Cela peut être considéré comme une opportunité de tester pg_upgrade. N'oubliez pas de reporter vos résultats.&lt;/p&gt;


&lt;p&gt;Si vous pouvez nous aider dans les tests, merci de consulter la page consacrée aux tests&amp;nbsp;: &lt;a href=&quot;http://wiki.postgresql.org/wiki/HowToBetaTest&quot; hreflang=&quot;en&quot;&gt;http://wiki.postgresql.org/wiki/HowToBetaTest&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Aucune modifications dans les commandes, les interfaces ou les API n'est attendue entre cette RC et la version finale. Les applications qui utiliseront la version 9.0 peuvent (devraient) être testées au regard de la version 9.0rc1.&lt;/p&gt;


&lt;p&gt;Les rapports de bogue décideront d'une éventuelle nouvelle RC.&lt;/p&gt;


&lt;p&gt;Le code source, et les installateurs binaires pour diverses plateformes sont disponibles sur le site Web de PostgreSQL&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Source&amp;nbsp;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt; &lt;a href=&quot;http://www.postgresql.org/ftp/source/v9.0rc1&quot; hreflang=&quot;en&quot;&gt;http://www.postgresql.org/ftp/source/v9.0rc1&lt;/a&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Installateur Un-Clic incluant les binaires Win64&amp;nbsp;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt; &lt;a href=&quot;http://www.enterprisedb.com/products/pgdownload.do&quot; hreflang=&quot;en&quot;&gt;http://www.enterprisedb.com/products/pgdownload.do&lt;/a&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Binaires pour les autres plateformes&amp;nbsp;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt; &lt;a href=&quot;http://www.postgresql.org/ftp/binary/v9.0rc1&quot; hreflang=&quot;en&quot;&gt;http://www.postgresql.org/ftp/binary/v9.0rc1&lt;/a&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Notes de version&amp;nbsp;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt; &lt;a href=&quot;http://developer.postgresql.org/pgdocs/postgres/release-9-0.html&quot; hreflang=&quot;en&quot;&gt;http://developer.postgresql.org/pgdocs/postgres/release-9-0.html&lt;/a&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Participer aux tests&amp;nbsp;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt; &lt;a href=&quot;http://www.postgresql.org/developer/beta&quot; hreflang=&quot;en&quot;&gt;http://www.postgresql.org/developer/beta&lt;/a&gt;&lt;/pre&gt;</content>
		<author>
			<name>SAS</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Quand sortira la version finale de PostgreSQL 9.0 ?</title>
		<link href="http://blog.taadeem.net/index.php?post/2010/08/31/Quand-sortira-la-version-finale-de-PostgreSQL-90"/>
		<id>urn:md5:8579cb47113329d2b5869b7d4acf3a0f</id>
		<updated>2010-08-31T07:16:00+00:00</updated>
		<content type="html">&lt;p&gt;Alors que la sortie de la première version candidate de &lt;a href=&quot;http://www.postgresql.org/about/news.1230&quot; hreflang=&quot;en&quot;&gt;PostgreSQL 9.0 RC1 vient de sortir&lt;/a&gt;, l'impatience augmente et les questions commencent à fuser&amp;nbsp;: &quot;Quand pourrons-nous utiliser la version 9.0 en production ?&quot; . Évidement, il est impossible de donner une réponse précise à cette question puisque le processus de livraison des versions de PostgreSQL n'est pas basé sur un agenda strict (comme Ubuntu par exemple ) mais sur la qualité et quantité de tests réalisés...&lt;/p&gt;    &lt;p&gt;La meilleure réponse est donc&amp;nbsp;: &quot;&lt;a href=&quot;http://www.postgresql.org/developer/beta&quot; hreflang=&quot;en&quot;&gt;Testez la version RC de PostgreSQL 9.0&lt;/a&gt; chez vous. Dès aujourd&quot;hui&amp;nbsp;! En cas de problème, envoyez un rapport de bug aux développeurs. C'est une façon simple de participer à la communauté Postgres et cela de sortir la version stable rapidement.&lt;/p&gt;


&lt;p&gt;Toutefois, cette réponse n'est pas toujours satisfaisante pour les plus impatients. On peut alors s'amuser à prédire la date de sortie, non pas avec une boule de crystal mais en analysant les statistiques de sorties des 5 dernières versions (de  8.0 à 8.4 ).  J'ai donc repris toutes les dates de sortie des versions béta et RC depuis le 9 aout 2004. On obtient alors le graphe suivant&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.taadeem.net/public/pg_releases_stats.png&quot; alt=&quot;pg_releases_stats.png&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Il est frappant de constater des similitudes entre la version 8.0 et la 9.0&amp;nbsp;: pour ces deux versions la période entre la version beta1 et la version RC1 dure environ 118 jours (116 pour la 8.0, 120 pour la 9.0), tandis que pour les versions 8.1, 8.2, 8.3 et 8.4 cette période dure entre 60 et 90 jours... Rien de très étonnant à tout cela&amp;nbsp;! Le changement du premier chiffre indique un changement de génération et l'arrivée de fonctionnalités ayant un impact très fort sur l'utilisation de Postgres  ( par exemple:  le portage sous windows pour la version 8.0 , le Hot Standby/Streaming replication pour la 9.0 ). Ainsi il est logique que le passage de la version 7 à 8 et de 8 à 9 demande plus de tests et de corrections de bugs....&lt;/p&gt;


&lt;p&gt;Maintenant, utilisons les données que nous avons sur le cycle de release de la version 8.0 pour prédire la sortie de la version finale de PostgreSQL 9.0&amp;nbsp;: Il a fallu 47 jours entre la sortie de la version 8.0RC1 et la version 8.0.0 finale. Si l'on suit la corrélation de rythme avec la version 8.0, alors la période de RC devrait durer 49 jours. La date de sortie finale serait alors &lt;strong&gt;18 octobre 2010 !&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Bien sur, ce n'est qu'une déduction abstraite et naïve... Le processus de livraison de PostgreSQL est bien trop complexe pour être modélisé de cette manière et je n'ai pas la prétention de lire dans le marc de café &lt;img src=&quot;http://blog.taadeem.net/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Toutefois ce petit exercice de statistiques montre que le projet PostgreSQL a une certaine constance dans sa progression et dans son fonctionnement.&lt;/p&gt;


&lt;p&gt;Au passage, on peut également souligner que les périodes de tests de PostgreSQL sont très courtes ( entre 75 et 160 jours ). Pour un logiciel de cette ampleur ( 500 000 lignes de codes) c'est exceptionnel&amp;nbsp;!  A titre d'exemple, la période de test d'Oracle 11g a duré plus de 10 mois ( sept 06 -&amp;gt; juillet 07 )... Là encore, l'explication est assez logique&amp;nbsp;: le code de Postgres est ouvert et les beta-testeurs sont nombreux et réactifs.&lt;/p&gt;


&lt;p&gt;Bref pour participer au projet PostgreSQL, vous savez ce qu'il vous reste à faire&amp;nbsp;! &lt;a href=&quot;http://www.postgresql.org/ftp/source/v9.0rc1&quot; hreflang=&quot;en&quot;&gt;Téléchargez la version 9.0rc1&lt;/a&gt;, &lt;a href=&quot;http://www.postgresql.org/developer/beta&quot; hreflang=&quot;en&quot;&gt;Testez-là&lt;/a&gt; et &lt;a href=&quot;http://www.postgresql.org/support/submitbug&quot; hreflang=&quot;en&quot;&gt;Signalez les éventuels incidents&lt;/a&gt;&amp;nbsp;!&lt;/p&gt;




&lt;p&gt;PS / Pour ceux qui voudraient vérifier les chiffres le tableau OOo est là&amp;nbsp;: &lt;a href=&quot;http://nawak.taadeem.net/9.0.ods&quot; title=&quot;http://nawak.taadeem.net/9.0.ods&quot;&gt;http://nawak.taadeem.net/9.0.ods&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Damien Clochard</name>
			<uri>http://blog.taadeem.net/index.php</uri>
		</author>
		<source>
			<title type="html">Taa Deem ! - planete-pgfr</title>
			<link rel="self" href="http://blog.taadeem.net/index.php?feed/tag/planete-pgfr/rss2"/>
			<id>http://blog.taadeem.net/index.php?feed/tag/planete-pgfr/rss2</id>
			<updated>2010-09-02T20:17:11+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 29 août 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/08/30/Nouvelles-hebdomadaires-de-PostgreSQL-29-ao%C3%BBt-2010"/>
		<id>urn:md5:265a9dcde9fdf23fc22a6da9053dcb40</id>
		<updated>2010-08-30T09:13:23+00:00</updated>
		<content type="html">&lt;p&gt;Sortie prochaine de PostgreSQL 9.0 RC1. Plus vous testez, plus t&amp;ocirc;t la 9.0.0 finale sortira&amp;nbsp;! 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/developer/beta/&quot;&gt;http://www.postgresql.org/developer/beta/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les nouveaut&amp;eacute;s des produits d&amp;eacute;riv&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AnyDAC v 4.0.1, une bo&amp;icirc;te &amp;agrave; outil pour Delphi&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.da-soft.com/anydac/&quot;&gt;http://www.da-soft.com/anydac/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CSV Loader 2.1, un outil Java pour charger et fusionner des fichiers CSV dans PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://csvloader.sourceforge.net/&quot;&gt;http://csvloader.sourceforge.net/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;pgpool-II 3.0beta2, un gestionnaire de connexions et bien d'avantage&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://pgfoundry.org/projects/pgpool/&quot;&gt;http://pgfoundry.org/projects/pgpool/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PostgreSQL PHP Generator 10.8, une interface graphique pour g&amp;eacute;n&amp;eacute;rer du PHP &amp;agrave; partir d'objets PostgreSQL &quot;select&quot;&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.sqlmaestro.com/products/postgresql/phpgenerator/&quot;&gt;http://www.sqlmaestro.com/products/postgresql/phpgenerator/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en ao&amp;ucirc;t&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-08/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-08/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L'appel &amp;agrave; conf&amp;eacute;renciers pour la &quot;West&quot; est lanc&amp;eacute; jusqu'au 5 septembre 2010. D&amp;eacute;tails sur&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresqlconference.org/&quot;&gt;http://www.postgresqlconference.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'appel &amp;agrave; conf&amp;eacute;renciers pour le PGDay.EU 2010, tenu du 6 au 8 d&amp;eacute;cembre &amp;agrave; Stuttgart (All.), est lanc&amp;eacute;&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://2010.pgday.eu/callforpapers&quot;&gt;http://2010.pgday.eu/callforpapers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100829&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tom Lane a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make an editorial pass over the 9.0 release notes. This is mostly about grammar, style, and presentation, though I did find a few small factual errors.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_archivecleanup/pg_archivecleanup.c, make pg_archivecleanup log messages more consistent. Erik Rijkers&lt;/li&gt;
&lt;li&gt;Marginal code cleanup for streaming replication. There is no reason that proc.c should have to get involved in this dirty hack for letting the postmaster know which children are walsenders. Revert that file to the way it was, and confine the kluge to pmsignal.c and postmaster.c.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/commands/explain.c, make EXPLAIN show the function call expression of a FunctionScan plan node, but only in VERBOSE mode. Per discussion.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, further editing of release notes.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, update 9.0 release notes for changes since beta4. Note: as usual, bug fixes that were also applied in back branches are not considered material to include in a new major release's notes.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/psql/command.c, avoid passing signed chars to &amp;lt;ctype.h&amp;gt; functions ... same old portability mistake as always. Per buildfarm member pika.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/unaccent.sgml, docs review for unaccent: fix grammar, markup, etc.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/port/sysv_shmem.c, improve hint message for ENOMEM failure from shmget(). It turns out that some platforms return ENOMEM for a request that violates SHMALL, whereas we were assuming that ENOSPC would always be used for that. Apparently the latter is a Linuxism while ENOMEM is the BSD tradition. Extend the ENOMEM hint to suggest that raising SHMALL might be needed. Per gripe from A.M. Backpatch to 9.0, but not further, because this doesn't seem important enough to warrant creating extra translation work in the stable branches. (If it were, we'd have figured this out years ago.)&lt;/li&gt;
&lt;li&gt;In a bit more., document filtering dictionaries in textsearch.sgml. While at it, copy-edit the description of prefix-match marker support in synonym dictionaries, and clarify the description of the default&lt;/li&gt;
&lt;li&gt;In pgsql/config/prep_buildtree, don't auto-create the subdirectories holding built documentation in a VPATH build tree. If we actually build the docs in the VPATH tree, those dirs will get created then; but if they're present and empty, they capture the vpathsearch searches in &quot;make install&quot;, preventing installation of prebuilt docs that might exist in the source tree. Per bug #5595 from Dmtiriy Igrishin. Fix based on idea from Peter Eisentraut.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/executor/execQual.c, fix ExecMakeTableFunctionResult to verify that all rows returned by a SRF returning &quot;record&quot; actually do have the same rowtype. This is needed because the parser can't realistically enforce that they will all have the same typmod, as seen in a recent example from David Wheeler. Back-patch to 8.0, which is as far back as we have the notion of RECORD subtypes being distinguished by typmod. Wheeler's example depends on 8.4-and-up features, but I suspect there may be ways to provoke similar failures before 8.4.&lt;/li&gt;
&lt;li&gt;Update time zone data files to tzdata release 2010l: DST law changes in Egypt and Palestine. Added new names for two Micronesian timezones: Pacific/Chuuk is now preferred over Pacific/Truk (and the preferred abbreviation is CHUT not TRUT) and Pacific/Pohnpei is preferred over Pacific/Ponape. Historical corrections for Finland.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ddl.sgml, explain automatic creation (or lack of it) of indexes for the various types of constraints. Kevin Grittner.&lt;/li&gt;
&lt;li&gt;Document the existence of the socket lock file under unix_socket_directory, which is perhaps not a terribly good spot for it but there doesn't seem to be a better place. Also add a source-code comment pointing out a couple reasons for having a separate lock file. Per suggestion from Greg Smith.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/libpq.sgml, remove obsolete remark that PQprepare() is more flexible than PREPARE. Spotted by Dmitriy Igrishin. Back-patch to 8.2, which is when the PREPARE statement was improved to allow parameter types to be omitted.&lt;/li&gt;
&lt;li&gt;Reduce PANIC to ERROR in some occasionally-reported btree failure cases. This patch changes _bt_split() and _bt_pagedel() to throw a plain ERROR, rather than PANIC, for several cases that are reported from the field from time to time: 1. right sibling's left-link doesn't match; 2. PageAddItem failure during _bt_split(); 3. parent page's next child isn't right sibling during _bt_pagedel(). In addition the error messages for these cases have been made a bit more verbose, with additional values included. The original motivation for PANIC here was to capture core dumps for subsequent analysis. But with so many users whose platforms don't capture core dumps by default, or who are unprepared to analyze them anyway, it's hard to justify a forced database restart when we can fairly easily detect the problems before we've reached the critical sections where PANIC would be necessary. It is not currently known whether the reports of these messages indicate well-hidden bugs in Postgres, or are a result of storage-level malfeasance; the latter possibility suggests that we ought to try to be more robust even if there is a bug here that's ultimately found. Backpatch to 8.2. The code before that is sufficiently different that it doesn't seem worth the trouble to back-port further.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ITAGAKI Takahiro a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add string functions: concat(), concat_ws(), left(), right(), and reverse(). Pavel Stehule, reviewed by me.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bruce Momjian a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/config.sgml, update autovacuum_freeze_max_age documentation to mention that the default is low because of pg_clog file removal. Backpatch to 9.0.X.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, clarifications for 9.0 release notes Josh Berkus&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/high-availability.sgml, fix awkward wording in Incrementally Updated Backups docs. Backpatch to 9.0.X.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, update release notes, per comments from Simon Riggs.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/high-availability.sgml, remove docs for &quot;Incrementally Updated Backups&quot; because it was of questionable reliability; information moved to a wiki: 
&lt;a target=&quot;_blank&quot; href=&quot;http://wiki.postgresql.org/wiki/Incrementally_Updated_Backups&quot;&gt;http://wiki.postgresql.org/wiki/Incrementally_Updated_Backups&lt;/a&gt; Backpatch to 9.0.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Peter Eisentraut a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/Makefile.global.in, when in automatic dependency mode, never delete any intermediate files automatically. Otherwise, the following could happen: When starting from a clean source tree, the first build would delete the intermediate file, but also create the dependency file, which mentions the intermediate file, thus making it non-intermediate. The second build will then need to rebuild the now non-intermediate missing file. So the second build will do work even though nothing had changed. One place where this happens is the .c -&amp;gt; .o -&amp;gt; .so chain for some contrib modules.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/catalogs.sgml, add missing description of reloftype field.&lt;/li&gt;
&lt;li&gt;In pgsql/src/pl/plpython/plpython.c, catch null pointer returns from PyCObject_AsVoidPtr and PyCObject_FromVoidPtr. This is reproducibly possible in Python 2.7 if the user turned PendingDeprecationWarning into an error, but it's theoretically also possible in earlier versions in case of exceptional conditions. Backpatched to 8.0.&lt;/li&gt;
&lt;li&gt;Translation updates for 9.0rc1.&lt;/li&gt;
&lt;li&gt;Small refactoring of makeVar() from a TargetEntry.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alvaro Herrera a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xlog.c, remove duplicate translatable phrase.&lt;/li&gt;
&lt;li&gt;Improve wording for privilege description on certain failure messages; the original misleadingly suggests that only access is meant, causing confusion. Per recent trouble report by Robert McGehee on pgsql-admin.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Marc Fournier a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tag rc1 ... final stretch ...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rewrite comment code for better modularity, and add necessary locking. Review by Alvaro Herrera, KaiGai Kohei, and Tom Lane.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/catalog/objectaddress.c, insert additional compiler placation into objectaddress.c. Peter Eisentraut reports that some bits of the &quot;address&quot; variable in get_object_address() give &quot;may be used uninitialized&quot; warnings; this likes the only excuse his compiler could have for thinking that's possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de d&amp;eacute;ception cette semaine&amp;nbsp;:-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Andrew Dunstan sent in a WIP patch to allow enums to be extended.&lt;/li&gt;
&lt;li&gt;Boxuan Zhai sent in another revisions of the patch to add MERGE, this time with support for table inheritance.&lt;/li&gt;
&lt;li&gt;Bruce Momjian sent in a doc patch for incrementally updated backups.&lt;/li&gt;
&lt;li&gt;Magnus Hagander sent in a patch which handles a Windows failure case.&lt;/li&gt;
&lt;li&gt;KaiGai Kohei sent in another revision of the patch to add a security hook on authorization.&lt;/li&gt;
&lt;li&gt;Zoltan Boszormenyi sent in a patch to fix ECPG's handling of mixed-case cursor names.&lt;/li&gt;
&lt;li&gt;Heikki Linnakangas sent in a patch to add latches to the back-end.&lt;/li&gt;
&lt;li&gt;Andrew Dunstan sent in another WIP patch to implement extensible enums.&lt;/li&gt;
&lt;li&gt;Heikki Linnakangas sent in a patch intended to speed up parts of COPY.&lt;/li&gt;
&lt;li&gt;Alexander Korotkov sent in a patch to add a levenshtein_less_equal function to contrib/fuzzystrmatch.&lt;/li&gt;
&lt;li&gt;Thom Brown sent in a doc patch to fix some inconsistent markup.&lt;/li&gt;
&lt;li&gt;Kevin Grittner sent in another revision of the SIREAD patch for true serializability, along with one which enables true serializability for GiST indexes.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 22 août 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/08/28/Nouvelles-hebdomadaires-de-PostgreSQL-22-ao%C3%BBt-2010"/>
		<id>urn:md5:33b324d8bc080a92784c7a4c4cae4e6f</id>
		<updated>2010-08-28T09:36:31+00:00</updated>
		<content type="html">&lt;p&gt;L'appel &amp;agrave; conf&amp;eacute;renciers pour le PGDay.EU 2010, tenu du 6 au 8 d&amp;eacute;cembre &amp;agrave; Stuttgart (All.), est lanc&amp;eacute;&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://2010.pgday.eu/callforpapers&quot;&gt;http://2010.pgday.eu/callforpapers&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les nouveaut&amp;eacute;s des produits d&amp;eacute;riv&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pgpool-II 3.0beta1, un gestionnaire de connexions et bien d'avantage&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://pgfoundry.org/projects/pgpool/&quot;&gt;http://pgfoundry.org/projects/pgpool/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en ao&amp;ucirc;t&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-08/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-08/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L'appel &amp;agrave; conf&amp;eacute;renciers pour la &quot;West&quot; est lanc&amp;eacute; jusqu'au 5 septembre 2010. D&amp;eacute;tails sur&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresqlconference.org/&quot;&gt;http://www.postgresqlconference.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100822&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tom Lane a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/utils/init/miscinit.c, arrange to fsync the contents of lockfiles (both postmaster.pid and the socket lockfile) when writing them. The lack of an fsync here may well explain two different reports we've seen of corrupted lockfile contents, which doesn't particularly bother the running server but can prevent a new server from starting if the old one crashes. Per suggestion from Alvaro Herrera. Back-patch to all supported versions.&lt;/li&gt;
&lt;li&gt;Add missing handling of PlannedStmt.transientPlan in copyfuncs/outfuncs. _outPlannedStmt is only debug support, so the omission there was not very serious, but the omission in _copyPlannedStmt is a real bug. The consequence would be that a copied plan tree would never be marked as a transient plan, so that we would forget we ought to replan it after some not-yet-ready index becomes ready for use. This might explain some past complaints about indexes created with CREATE INDEX CONCURRENTLY not being used right away. Problem spotted by Yeb Havinga. Back-patch to 8.3, where the field was added.&lt;/li&gt;
&lt;li&gt;Fix failure of &quot;ALTER TABLE t ADD COLUMN c serial&quot; when done by non-owner. The implicitly created sequence was created as owned by the current user, who could be different from the table owner, eg if current user is a superuser or some member of the table's owning role. This caused sanity checks in the SEQUENCE OWNED BY code to spit up. Although possibly we don't need those sanity checks, the safest fix seems to be to make sure the implicit sequence is assigned the same owner role as the table has. (We still do all permissions checks as the current user, however.) Per report from Josh Berkus. Back-patch to 9.0. The bug goes back to the invention of SEQUENCE OWNED BY in 8.2, but the fix requires an API change for DefineRelation(), which seems to have potential for breaking third-party code if done in a minor release. Given the lack of prior complaints, it's probably not worth fixing in the stable branches.&lt;/li&gt;
&lt;li&gt;Rename utf2ucs() to utf8_to_unicode(), and export it so it can be used elsewhere. Similarly rename the version in mbprint.c, not because this affects anything but just to keep the two copies in exact sync. There was some discussion of having only one copy in src/port/ instead, but this function is so small and unlikely to change that that seems like overkill. Slightly editorialized version of a patch by Joseph Adams. (The bug-fix aspect of his patch was applied separately, and back-patched.)&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/executor/nodeModifyTable.c, reset the per-output-tuple exprcontext each time through the main loop in ExecModifyTable(). This avoids memory leakage when trigger functions leave junk behind in that context (as they more or less must). Problem and solution identified by Dean Rasheed. I'm a bit concerned about the longevity of this solution --- once a plan can have multiple ModifyTable nodes, we are very possibly going to have to do something different. But it should hold up for 9.0.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/commands/trigger.c, fix possible corruption of AfterTriggerEventLists in subtransaction rollback. afterTriggerInvokeEvents failed to adjust events-&amp;gt;tailfree when truncating the last chunk of an event list. This could result in the data being &quot;de-truncated&quot; by afterTriggerRestoreEventList during a subsequent subtransaction abort. Even that wouldn't kill us, because the re-added data would just be events marked DONE --- unless the data had been partially overwritten by new events. Then we might crash, or in any case misbehave (perhaps fire triggers twice, or fire triggers with the wrong event data). Per bug #5622 from Thue Janus Kristensen. Back-patch to 8.4 where the current trigger list representation was introduced.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/storage/buffer/localbuf.c, allocate local buffers in a context of their own, rather than dumping them into TopMemoryContext. This makes no functional difference, but makes it easier to see what the space is being used for in MemoryContextStats dumps. Per a recent example in which I was surprised by the size of TopMemoryContext.&lt;/li&gt;
&lt;li&gt;In pgsql/src/pl/plpgsql/src/pl_exec.c, be a bit less cavalier with both the code and the comment for UNKNOWN fix.&lt;/li&gt;
&lt;li&gt;In pgsql/src/pl/plpgsql/src/pl_exec.c, keep exec_simple_check_plan() from thinking &quot;SELECT foo INTO bar&quot; is simple. It's not clear if this situation can occur in plpgsql other than via the EXECUTE USING case Heikki illustrated, which I will shortly close off. However, ignoring the intoClause if it's there is surely wrong, so let's patch it for safety. Backpatch to 8.3, which is as far back as this code has a PlannedStmt to deal with. There might be another way to make an equivalent test before that, but since this is just preventing hypothetical bugs, I'm not going to obsess about it.&lt;/li&gt;
&lt;li&gt;In pgsql/src/pl/plpgsql/src/gram.y, allow USING and INTO clauses of plpgsql's EXECUTE to appear in either order. Aside from being more forgiving, this prevents a rather surprising misbehavior when the &quot;wrong&quot; order was used: the old code didn't throw a syntax error, but absorbed the INTO clause into the last USING expression, which then did strange things downstream. Intentionally not changing the documentation; we'll continue to advertise only the &quot;standard&quot; clause order. Backpatch to 8.4, where the USING clause was added to EXECUTE.&lt;/li&gt;
&lt;li&gt;Bring some sanity to the trace_recovery_messages code and docs. Per gripe from Fujii Masao, though this is not exactly his proposed patch. Categorize as DEVELOPER_OPTIONS and set context PGC_SIGHUP, as per Fujii, but set the default to LOG because higher values aren't really sensible (see the code for trace_recovery()). Fix the documentation to agree with the code and to try to explain what the variable actually does. Get rid of no-op calls trace_recovery(LOG), which accomplish nothing except to demonstrate that this option confuses even its author.&lt;/li&gt;
&lt;li&gt;Avoid saying &quot;random&quot; when randomness is not actually meant. Per Thom Brown.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/parser/gram.y, add missing processing of OptTemp in CREATE IF NOT EXISTS variant for typed tables. Noted by Robert Haas.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/pg_dump/pg_backup_archiver.c, improve parallel restore's ability to cope with selective restore (-L option). The original coding tended to break down in the face of modified restore orders, as shown in bug #5626 from Albert Ullrich, because it would flip over into parallel-restore operation too soon. That causes problems because we don't have sufficient dependency information in dump archives to allow safe parallel processing of SECTION_PRE_DATA items. Even if we did, it's probably undesirable to allow that to override the commanded restore order. To fix the problem of omitted items causing unexpected changes in restore order, tweak SortTocFromFile so that omitted items end up at the head of the list not the tail. This ensures that they'll be examined and their dependencies will be marked satisfied before we get to any interesting items. In HEAD and 9.0, we can easily change restore_toc_entries_parallel so that all SECTION_PRE_DATA items are guaranteed to be processed in the initial serial-restore loop, and hence in commanded order. Only DATA and POST_DATA items are candidates for parallel processing. For them there might be variations from the commanded order because of parallelism, but we should do it in a safe order thanks to dependencies. In 8.4 it's much harder to make such a guarantee. I settled for not letting the initial loop break out into parallel processing mode if it sees a DATA/POST_DATA item that's not to be restored; this at least prevents a non-restorable item from causing premature exit from the loop. This means that 8.4 will be more likely to fail given a badly-ordered -L list than 9.x, but we don't really promise any such thing will work anyway.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/adt/arrayfuncs.c, use a non-locale-dependent definition of isspace() in array_in/array_out. array_in discards unquoted leading and trailing whitespace in array values, while array_out is careful to quote array elements that contain whitespace. This is problematic when the definition of &quot;whitespace&quot; varies between locales: array_in could drop characters that were meant to be part of the value. To avoid that, lock down &quot;whitespace&quot; to mean only the traditional six ASCII space characters. This change also works around a bug in OS X and some older BSD systems, in which isspace() could return true for character fragments in UTF8 locales. (There may be other places in PG where that bug could cause problems, but this is the only one complained of so far; see recent report from Steven Schlansker.) Back-patch to 9.0, but not further. Given the lack of previous reports of trouble, changing this behavior in stable branches seems to offer more risk of breaking applications than reward of avoiding problems.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Peter Eisentraut a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spell and markup checking for docs.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/lo.sgml, revert: looks like Binary Large OBject[sic] wasn't a misspelling&lt;/li&gt;
&lt;li&gt;Backpatch some blatant spelling mistakes in the docs.&lt;/li&gt;
&lt;li&gt;Remove extra newlines at end and beginning of files, add missing newlines at end of files.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Michael Meskes a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Applied Zoltan Boszormenyi's patch to fix a few memleaks in ecpg's pgtypeslib.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Heikki Linnakangas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/parser/parse_param.c, coerce 'unknown' type parameters to the right type in the fixed-params parse_analyze() function. That case occurs e.g with PL/pgSQL EXECUTE ... USING 'stringconstant'. The coercion with a CoerceViaIO node. The result is similar to the coercion via input function performed for unknown constants in coerce_type(), except that this happens at runtime. Backpatch to 9.0. The issue is present in 8.4 as well, but the coerce param hook infrastructure this patch relies on was introduced in 9.0. Given the lack of user reports and harmlessness of the bug, it's not worth attempting a different fix just for 8.4.&lt;/li&gt;
&lt;li&gt;Revert patch to coerce 'unknown' type parameters in the backend. As Tom Lane pointed out, it would need a 2nd pass after the whole query is processed to correctly check that an unknown Param is coerced to the same target type everywhere. Adding the 2nd pass would add a lot more code, which doesn't seem worth the risk given that there isn't much of a use case for passing unknown Params in the first place. The code would work without that check, but it might be confusing and the behavior would be different from the varparams case. Instead, just coerce all unknown params in a PL/pgSQL USING clause to text. That's simple, and is usually what users expect. Revert the patch in CVS HEAD and master, and backpatch the new solution to 8.4. Unlike the previous solution, this applies easily to 8.4 too.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tidy up a few calls to smrgextend(). In the new API introduced by my patch to include the backend ID in temprel filenames, the last argument to smrgextend() became skipFsync rather than isTemp, but these calls didn't get the memo. It's not really a problem to pass rel-&amp;gt;rd_istemp rather than just plain false, because smgrextend() now automatically skips the fsync for temprels anyway, but this seems cleaner and saves some minute number of cycles.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/storage/buffer/bufmgr.c, remove the isLocalBuf argument from ReadBuffer_common. Since an SMgrRelation now knows whether or not the underlying relation is temporary, there's no point in also passing that information via an additional argument.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Magnus Hagander a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add vacuum and analyze counters to pg_stat_*_tables views.&lt;/li&gt;
&lt;li&gt;In pgsql/src/test/regress/expected/rules.out, adjust regression tests for previous commit, that I forgot to include...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bruce Momjian a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/config.sgml, document that autovacuum_freeze_max_age is used for pg_clog recycling. We already mentioned xid wraparound.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de d&amp;eacute;ception cette semaine&amp;nbsp;:-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pavel Stehule sent in two revisions of a patch to extend psql's tab completion to more entities.&lt;/li&gt;
&lt;li&gt;KaiGai Kohei sent in a patch to implement preload libraries for single-user mode.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in a prototype query progress indicator.&lt;/li&gt;
&lt;li&gt;Quan Zongliang sent in a patch to enable pg_ctl on Windows to select a service start type (auto or on-demand), then a follow-up patch to add the docs. David Fetter unified these into standard format.&lt;/li&gt;
&lt;li&gt;Robert Haas and Alex Hunsaker traded patches to create a new tool for git histories.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in a patch to fix an issue in PL/PythonU with Python 2.7.&lt;/li&gt;
&lt;li&gt;Heikki Linnakangas sent in a WIP patch to fix an issue with type coercion in PL/pgsql's EXECUTE ... USING construct.&lt;/li&gt;
&lt;li&gt;Pavel Stehule sent in two revisions of a patch to add MEDIAN() and PERCENTILE() as contrib modules.&lt;/li&gt;
&lt;li&gt;Boxuan Zhai sent in another revision of the MERGE patch.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in another refactor of comment.c.&lt;/li&gt;
&lt;li&gt;Martin Pitt sent in a patch to add a system-wide fallback directory for SSL root certificates.&lt;/li&gt;
&lt;li&gt;KaiGai Kohei sent in a patch to add a security hook at authorization time.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to clean up smgr, which kicked off a discussion of the design of the abstraction layers nearby.&lt;/li&gt;
&lt;li&gt;Magnus Hagander sent in a patch to add columns the pg_stat_*_tables which record the number of [auto]vacuum and [auto]analyze runs.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in a patch to refactor makeVar in the back end.&lt;/li&gt;
&lt;li&gt;Erik Rijkers sent in two revisions of a patch to make the debug messages in pg_archivecleanup more consistent.&lt;/li&gt;
&lt;li&gt;Magnus Hagander sent in a patch to track more vacuum stats.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 15 août 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/08/17/Nouvelles-hebdomadaires-de-PostgreSQL-15-ao%C3%BBt-2010"/>
		<id>urn:md5:ed8ea931cd3c46234e30585224587381</id>
		<updated>2010-08-17T15:50:17+00:00</updated>
		<content type="html">&lt;p&gt;&lt;strong&gt;Les nouveaut&amp;eacute;s des produits d&amp;eacute;riv&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Npgsql 2.0.10, un connecteur [ndt: &lt;em&gt;data provider&lt;/em&gt;] .NET / PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.npgsql.org&quot;&gt;http://www.npgsql.org&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La FrOSCon 2010 aura lieu &amp;agrave; St. Augustin (Allemagne) les 21 &amp;amp; 22 ao&amp;ucirc;t 2010. Le PUG allemand a obtenu sa propre salle de dev. et est &amp;agrave; la recherche de conf&amp;eacute;renciers. Plus de d&amp;eacute;tails&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://psoos.blogspot.com/2010/08/postgresql-at-froscon-2010.html&quot;&gt;http://psoos.blogspot.com/2010/08/postgresql-at-froscon-2010.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'appel &amp;agrave; conf&amp;eacute;renciers pour la &quot;West&quot; est lanc&amp;eacute; jusqu'au 5 septembre 2010. D&amp;eacute;tails sur&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresqlconference.org/&quot;&gt;http://www.postgresqlconference.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100815&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tom Lane a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Modify the handling of RAISE without parameters so that the error it throws can be caught in the same places that could catch an ordinary RAISE ERROR in the same location. The previous coding insisted on throwing the error from the block containing the active exception handler; which is arguably more surprising, and definitely unlike Oracle's behavior. Not back-patching, since this is a pretty obscure corner case. The risk of breaking somebody's code in a minor version update seems to outweigh any possible benefit. Piyush Newe, reviewed by David Fetter.&lt;/li&gt;
&lt;li&gt;Fix incorrect logic in plpgsql for cleanup after evaluation of non-simple expressions. We need to deal with this when handling subscripts in an array assignment, and also when catching an exception. In an Assert-enabled build these omissions led to Assert failures, but I think in a normal build the only consequence would be short-term memory leakage; which may explain why this wasn't reported from the field long ago. Back-patch to all supported versions. 7.4 doesn't have exceptions, but otherwise these bugs go all the way back. Heikki Linnakangas and Tom Lane.&lt;/li&gt;
&lt;li&gt;Add three-parameter forms of array_to_string and string_to_array, to allow better handling of NULL elements within the arrays. The third parameter is a string that should be used to represent a NULL element, or should be translated into a NULL element, respectively. If the third parameter is NULL it behaves the same as the two-parameter form. There are two incompatible changes in the behavior of the two-parameter form of string_to_array. First, it will return an empty (zero-element) array rather than NULL when the input string is of zero length. Second, if the field separator is NULL, the function splits the string into individual characters, rather than returning NULL as before. These two changes make this form fully compatible with the behavior of the new three-parameter form. Pavel Stehule, reviewed by Brendan Jurd.&lt;/li&gt;
&lt;li&gt;Remove the arbitrary (and undocumented) limit on the number of parameter=value pairs that can be handled by xslt_process(). There is much else to do here, but this patch seems useful in its own right for as long as this code survives. Pavel Stehule, reviewed by Mike Fowler.&lt;/li&gt;
&lt;li&gt;Extend psql's \e and \ef commands so that a line number can be specified, and the editor's cursor will be initially placed on that line. In \e the lines are counted with respect to the query buffer, while in \ef they are counted with line 1 = first line of function body. These choices are useful for positioning the cursor on the line of a previously-reported error. To avoid assumptions about what switch the user's editor takes for this purpose, invent a new psql variable EDITOR_LINENUMBER_SWITCH with (at present) no default value. One incompatibility from previous behavior is that &quot;\e 1234&quot; will now take &quot;1234&quot; as a line number not a file name. There are at least two ways to select a numerically-named file if you really want to. Pavel Stehule, reviewed by Jan Urbanski, with further editing by Robert Haas and Tom Lane.&lt;/li&gt;
&lt;li&gt;Add the ability to compute per-statement latencies (ie, average execution times) to pgbench. Florian Pflug, reviewed by Greg Smith.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pgbench/pgbench.c, get rid of a bunch of dubious error handling code in pgbench by just erroring out immediately on any out-of-memory condition. It's rather pointless to imagine that pgbench will be able to continue usefully after a malloc failure, and in any case there were a number of unchecked mallocs.&lt;/li&gt;
&lt;li&gt;Fix pg_restore to complain if any arguments remain after parsing the switches and input file name, per bug #5617 from Leo Shklovskii. Rearrange the corresponding code in pg_dump and pg_dumpall so that all three programs handle this in a consistent, straightforward fashion. Back-patch to 9.0, but no further. Although this is certainly a bug, it's possible that people have scripts that will be broken by the added error check, so it seems better not to change the behavior in stable branches.&lt;/li&gt;
&lt;li&gt;Fix Assert failure in PushOverrideSearchPath when trying to restore a search path that specifies useTemp, but there is no active temp schema in the current session. (This can happen if the path was saved during a transaction that created a temp schema and was later rolled back.) For existing callers it's sufficient to ignore the useTemp flag in this case, though we might later want to offer an option to create a fresh temp schema. So far as I can tell this is just an Assert failure: in a non-assert build, the code would push a zero onto the new search path, which is useless but not very harmful. Per bug report from Heikki. Back-patch to 8.3; prior versions don't have this code.&lt;/li&gt;
&lt;li&gt;Add xml_is_well_formed, xml_is_well_formed_document, xml_is_well_formed_content functions to the core XML code. Per discussion, the former depends on XMLOPTION while the others do not. These supersede a version previously offered by contrib/xml2. Mike Fowler, reviewed by Pavel Stehule.&lt;/li&gt;
&lt;li&gt;Minor #include cleanup. I just noticed that libpq's pqsignal.h was violating our general inclusion style guidelines by explicitly including postgres_fe.h. Remove that, and put it in pqsignal.c where it belongs.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/psql/help.c, clean up failure to use ClosePager() where appropriate. Also prevent possible repeat opening of pager in helpSQL().&lt;/li&gt;
&lt;li&gt;In pgsql/src/include/storage/backendid.h, myBackendId now needs to be PGDLLIMPORT, so that contrib modules can access it on Windows. Per buildfarm.&lt;/li&gt;
&lt;li&gt;Add a \sf (show function) command to psql, for those times when you need to look at a function but don't wish to fire up an editor. Pavel Stehule, reviewed by Jan Urbanski&lt;/li&gt;
&lt;li&gt;Fix \ef and \sf to not fail on functions with nonnull probin. Update comment about them in pg_get_functiondef.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/optimizer/util/clauses.c, fix planner to make a reasonable assumption about the amount of memory space used by array_agg(), string_agg(), and similar aggregate functions that use &quot;internal&quot; as their transition datatype. The previous coding thought this took *no* extra space, since &quot;internal&quot; is pass-by-value; but actually these aggregates typically consume a great deal of space. Per bug #5608 from Itagaki Takahiro, and fix suggestion from Hitoshi Harada. Back-patch to 8.4, where array_agg was introduced.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/pgbench.sgml, avoid unnecessary use of TPS acronym. Robert Haas, per gripe from Erik Rijkers.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/pgarchivecleanup.sgml, improve pgarchivecleanup documentation, per comments from Satoshi Nagayasu.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/func.sgml, clarify bit numbering in get_bit/set_bit etc. Per gripe from Zoltan Boszormenyi.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/backup.sgml, assorted improvements to backup/restore documentation, per Thom Brown.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/psql/mbprint.c, fix psql's copy of utf2ucs() to match the backend's copy exactly; in particular, propagate a fix in the test to see whether a UTF8 character has length 4 bytes. This is likely of little real-world consequence because 5-or-more-byte UTF8 sequences are not supported by Postgres nor seen anywhere in the wild, but still we may as well get it right. Problem found by Joseph Adams. Bug is aboriginal, so back-patch all the way.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In the libpq docs, provide stable target anchors for libpq functions. Daniele Varrazzo.&lt;/li&gt;
&lt;li&gt;Use double quotes rather than double quotes for libpq target anchors. Per observation from Tom Lane that the previous patch to these files was not consistent with what is done elsewhere in the docs.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ecpg.sgml, fix incorrect errno definitions in ECPG manual. ecpgerrno.h hasn't materially changed since PostgreSQL 7.4, so this has been wrong for a very long time. Back-patch all the way. Satoshi Nagayasu.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ecpg.sgml, fix one more incorrect errno definition in the ECPG manual. Again, back-patch all the way to 7.4.&lt;/li&gt;
&lt;li&gt;Correct sundry errors in Hot Standby-related comments. Fujii Masao.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/syntax.sgml, reorder docs on lexical structure slightly for clarity. Thom Brown.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xact.c, make RecordTransactionCommit() respect wal_level. Since the only purpose of WAL-logging SharedInvalidationMessages is to support Hot Standby operation, they needn't be included when wal_level &amp;lt; hot_standby. Back-patch to 9.0. Review by Heikki Linnakanagas and Fujii Masao.&lt;/li&gt;
&lt;li&gt;Include the backend ID in the relpath of temporary relations. This allows us to reliably remove all leftover temporary relation files on cluster startup without reference to system catalogs or WAL; therefore, we no longer include temporary relations in XLOG_XACT_COMMIT and XLOG_XACT_ABORT WAL records. Since these changes require including a backend ID in each SharedInvalSmgrMsg, the size of the SharedInvalidationMessage.id field has been reduced from two bytes to one, and the maximum number of connections has been reduced from INT_MAX / 4 to 223-1. It would be possible to remove these restrictions by increasing the size of SharedInvalidationMessage by 4 bytes, but right now that doesn't seem like a good trade-off. Review by Jaime Casanova and Tom Lane.&lt;/li&gt;
&lt;li&gt;Fix assorted dtrace breakage caused by patch to include backend IDs in temp relpaths. Per buildfarm.&lt;/li&gt;
&lt;li&gt;Further dtrace adjustments for the backend-IDs-in-relpath patch. Update the documentation, and back out a few ill-considered changes whose folly I failed to realize for failure to read the documentation.&lt;/li&gt;
&lt;li&gt;Add doc link and additional index reference to pgcrypto. Kevin Grittner, with markup adjustments.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/storage/lmgr/lmgr.c, make LockDatabaseObject() AcceptInvalidationMessages(). This is appropriate for the same reasons we already do it in LockSharedObject(): things might have changed while we were waiting for the lock. There doesn't seem to be a live bug here at the moment, but that's mostly because it isn't currently used for very much.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bruce Momjian a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/explain.sgml, add EXPLAIN documentation example. Gabrielle Roth. Backpatch to 9.0.X.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/syntax.sgml, properly lowercase identifiers, uppercase keywords, in doc examples.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/syntax.sgml, back out syntax case changes --- seems they were intentional.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Peter Eisentraut a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/datatype.sgml, &amp;lt;example&amp;gt; is a floating element, so it's use is inappropriate when the surrounding text refers to the example inline.&lt;/li&gt;
&lt;li&gt;Add some links to tables in the docs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Heikki Linnakangas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/utils/adt/arrayfuncs.c, the sanity check added to array_recv() wa a bit too tight; we must continue to accept an empty array with dimension information. array_send() can output such arrays. Per report from Vladimir Shakhov.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de d&amp;eacute;ception cette semaine :-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Erik Rijkers sent in a doc patch for pgbench defining TPS to mean &quot;transactions per second.&quot;&lt;/li&gt;
&lt;li&gt;Kris Jurka sent in another revision of the patch to fix COPY IN.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in a patch to allow specifying hosts by name in pg_hba.conf.&lt;/li&gt;
&lt;li&gt;Pavel Stehule sent in another revision of the GROUPING SETS patch.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to reduce the size of the id for SharedInvalidationMessages to one byte.&lt;/li&gt;
&lt;li&gt;Boxuan Zhai sent in four more revisions of the MERGE patch, and Heikki Linnakangas responded with a cleaned-up one.&lt;/li&gt;
&lt;li&gt;Joseph Adams sent in two more WIP patches to add the JSON type, the second adding it as a core type rather than the previous contrib.&lt;/li&gt;
&lt;li&gt;Fujii Masao sent in a patch to align the docs and code for trace_recovery_messages.&lt;/li&gt;
&lt;li&gt;Greg Smith sent in another revision of the patch to add individual statement latencies to pgbench.&lt;/li&gt;
&lt;li&gt;Joseph Adams sent in a patch to fix utf8-to-unicode.&lt;/li&gt;
&lt;li&gt;Joseph Adams sent in some general utility functions for, among other things, enum handling in C stored procedures.&lt;/li&gt;
&lt;li&gt;Zoltan Boszormenyi sent in a WIP patch to add replication to the SQL syntax.&lt;/li&gt;
&lt;li&gt;Dean Rasheed sent in another WIP patch to implement triggers on views.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in another revision of the patch to refactor comment.c.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Traduction disponible pour PostgreSQL 9.0 beta 4</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/08/16/Traduction-disponible-pour-PostgreSQL-9.0-beta-4"/>
		<id>urn:md5:fb6b042c05acc9985e86d6b320c70b2c</id>
		<updated>2010-08-16T19:27:00+00:00</updated>
		<content type="html">&lt;p&gt;J'ai mis du temps à m'y coller mais c'est enfin fait. Le merge a été réalisé samedi soir et les quelques paragraphes à traduire ont été traités dimanche matin. Dans l'ensemble, ça a été plutôt rapide.&lt;/p&gt;


&lt;p&gt;Du coup, j'en ai profité pour travailler à la génération d'un format CHM. On l'avait proposé pendant un certain temps et je ne sais plus trop pourquoi, on l'avait supprimé. Bref. J'ai fait le nécessaire pour que ce format soit de nouveau disponible. Attention, cela ne concerne que les versions 8.1 à 9.0. Les versions 7.4 et 8.0 n'en bénéficieront pas, étant donné qu'elles n'auront plus qu'une version corrective avant d'être complètement oubliées pour les correctifs.&lt;/p&gt;


&lt;p&gt;J'ai profité de we week-end pour mettre à jour la traduction du manuel de Slony. Nous ne disposions toujours que de la 2.0.3. Le manuel français de la 2.0.4 est enfin disponible. Le site web français a aussi été mis à jour.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 8 août 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/08/09/Nouvelles-hebdomadaires-de-PostgreSQL-8-ao%C3%BBt-2010"/>
		<id>urn:md5:a38b1c5a63dc3aa43a2b0f2194673492</id>
		<updated>2010-08-10T21:50:45+00:00</updated>
		<content type="html">&lt;p&gt;Visite guidée de PostgreSQL 9.0 par Bruce Momjian lors du prochain &quot;NYC PostgreSQL Meetup&quot;, le 10 août à 18h. RSVP ci-après&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.meetup.com/postgresql-3/calendar/14310923/&quot;&gt;http://www.meetup.com/postgresql-3/calendar/14310923/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les nouveautés des produits dérivés&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Npgsql 2.0.10, un &quot;fournisseur de données&quot; PostgreSQL pour .NET&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.npgsql.org&quot;&gt;http://www.npgsql.org&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en août&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-08/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-08/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La FrOSCon 2010 aura lieu à St. Augustin (Allemagne) les 21 &amp;amp; 22 août 2010. Le PUG allemand a obtenu sa propre salle de dev. et est à la recherche de conférenciers. Plus de détails&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html&quot;&gt;http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'appel à conférenciers pour la &quot;West&quot; est lancé jusqu'au 5 septembre 2010. Détails sur&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresqlconference.org/&quot;&gt;http://www.postgresqlconference.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les média&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100808&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Revues&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Brendan Jurd reviewed the patch to reduce the on-disk size of NUMERIC.&lt;/p&gt;
&lt;p&gt;KaiGai Kohei reviewed Robert Haas's patch to refactor comment.c&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Correctifs appliqués&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Simon Riggs a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reduce lock levels of CREATE TRIGGER and some ALTER TABLE, CREATE RULE actions. Avoid hard-coding lockmode used for many altering DDL commands, allowing easier future changes of lock levels. Implementation of initial analysis on DDL sub-commands, so that many lock levels are now at ShareUpdateExclusiveLock or ShareRowExclusiveLock, allowing certain DDL not to block reads/writes. First of number of planned changes in this area; additional docs required when full project complete.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remove ancient PL/pgsql line numbering hack. While this hack arguably has some benefit in terms of making PL/pgsql's line numbering match the programmer's expectations, it also makes PL/pgsql inconsistent with the remaining PLs, making it difficult for clients to reliably determine where the error actually is. On balance, it seems better to be consistent. Pavel Stehule&lt;/li&gt;
&lt;li&gt;Add btree_gist support for searching on &quot;not equals&quot;. Jeff Davis, with slight editorialization by me.&lt;/li&gt;
&lt;li&gt;In contrib/fuzzystrmatch, teach levenshtein() about multi-byte characters. Based on a patch by, and further ideas from, Alexander Korotkov.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/commands/tablecmds.c, fix inheritance count tracking in ALTER TABLE .. ADD CONSTRAINT. Without this patch, constraints inherited by children of a parent table which itself has multiple inheritance parents can end up with the wrong coninhcount. After dropping the constraint, the children end up with a leftover copy of the constraint that is not dumped and cannot be dropped. There is a similar problem with ALTER TABLE .. ADD COLUMN, but that looks significantly more difficult to resolve, so I'm committing this fix separately. Back-patch to 8.4, which is the first release that has coninhcount. Report by Hank Enting.&lt;/li&gt;
&lt;li&gt;Regression tests for new btree_gist &quot;not equals&quot; support. Jeff Davis, with minor adjustments by me.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/adt/numeric.c, allow numeric to use a more compact, 2-byte header in many cases. Review by Brendan Jurd and Tom Lane.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/adt/numeric.c, fix numeric_maximum_size() calculation. The old computation can sometimes underestimate the necessary space by 2 bytes; however we're not back-patching this, because this result isn't used for anything critical. Per discussion with Tom Lane, make the typmod test in this function match the ones in numeric() and apply_typmod() exactly.&lt;/li&gt;
&lt;li&gt;In pgsql/src/include/utils/numeric.h, fix declared argument name for numeric_maximum_size. The previous commit changed the function to say 'typmod' rather than 'typemod', but I forgot to update the header file.&lt;/li&gt;
&lt;li&gt;Standardize get_whatever_oid functions for object types with unqualified names: 1. Add a missing_ok parameter to get_tablespace_oid. 2. Avoid duplicating get_tablespace_od guts in objectNamesToOids. 3. Add a missing_ok parameter to get_database_oid. 4. Replace get_roleid and get_role_checked with get_role_oid. 5. Add get_namespace_oid, get_language_oid, get_am_oid. 6. Refactor existing code to use new interfaces. Thanks to KaiGai Kohei for the review.&lt;/li&gt;
&lt;li&gt;Standardize get_whatever_oid functions for other object types: 1. Rename TSParserGetPrsid to get_ts_parser_oid. 2. Rename TSDictionaryGetDictid to get_ts_dict_oid. 3. Rename TSTemplateGetTmplid to get_ts_template_oid. 4. Rename TSConfigGetCfgid to get_ts_config_oid. 5. Rename FindConversionByName to get_conversion_oid. 6. Rename GetConstraintName to get_constraint_oid. 7. Add new functions get_opclass_oid, get_opfamily_oid, get_rewrite_oid, get_rewrite_oid_without_relid, get_trigger_oid, and get_cast_oid. The name of each function matches the corresponding catalog. Thanks to KaiGai Kohei for the review.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/cache/syscache.c, fix incorrect pathname in comment.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, rearrange &quot;big features&quot; section of the release notes. Josh Berkus&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tom Lane a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix core dump in QTNodeCompare when tsquery_cmp() is applied to two empty tsqueries. CompareTSQ has to have a guard for the case rather than blindly applying QTNodeCompare to random data past the end of the datums. Also, change QTNodeCompare to be a little less trusting: use an actual test rather than just Assert'ing that the input is sane. Problem encountered while investigating another issue (I saw a core dump in autoanalyze on a table containing multiple empty tsquery values). Back-patch to all branches with tsquery support. In HEAD, also fix some bizarre (though not outright wrong) coding in tsq_mcontains().&lt;/li&gt;
&lt;li&gt;Be a little more careful with the shift computations in QT2QTN and makeTSQuerySign. The first of these is a live bug, on some platforms, as per bug #5590 from John Regehr. However the consequences seem limited because of the relatively narrow scope of use of QTNode.sign. The shift in makeTSQuerySign is actually safe because TSQS_SIGLEN is unsigned, but it seems like a good idea to insert an explicit cast rather than depend on that.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/btree-gist.sgml, fix markup, other minor editing for recent btree_gist doc changes.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/adt/nabstime.c, add some comments to tinterval_cmp_internal pointing out its severe implementation deficiencies. Per discussion of bug #5592, we're not going to change it, but these things should be documented so that if anyone ever reimplements type tinterval, they will be more careful.&lt;/li&gt;
&lt;li&gt;Kibitzing on \conninfo patch: adjust the order of field output to match the parameters of \connect, and fix oversight of not enabling translation of the messages. Also, adjust \connect's similar messages to match, and deal with 8.2-era violation of basic translatability guidelines there.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/config.sgml, fix mangled grammar.&lt;/li&gt;
&lt;li&gt;Code review for --quote-all-identifiers patch: add missing --help documentation for new pg_dump/pg_dumpall parameters, make a couple of trivial stylistic adjustments to make the code follow usual project style.&lt;/li&gt;
&lt;li&gt;Replace the naive HYPOT() macro with a standards-conformant hypotenuse function. This avoids unnecessary overflows and probably gives a more accurate result as well. Paul Matthews, reviewed by Andrew Geery&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/syntax.sgml, add an example to clarify the use of ORDER BY in multiple-argument aggregates. People seem to not get this right without help.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/libpq.sgml, fix sloppy mistakes in documentation of PQescapeLiteral and PQescapeIdentifier. Noted by Dmitriy Igrishin.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/syntax.sgml, forgot to back-patch earlier change to documentation for aggregate ORDER BY clauses. Tags: ---- REL9_0_STABLE&lt;/li&gt;
&lt;li&gt;Remove the single-argument form of string_agg(). It added nothing much in functionality, while creating an ambiguity in usage with ORDER BY that at least two people have already gotten seriously confused by. Also, add an opr_sanity test to check that we don't in future violate the newly minted policy of not having built-in aggregates with the same name and different numbers of parameters. Per discussion of a complaint from Thom Brown.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/parser/parse_func.c, add a very specific hint for the case that we're unable to locate a function matching a call like f(x, ORDER BY y,z). It could be that what the user really wants is f(x,z ORDER BY y). We now have pretty conclusive evidence that many people won't understand this problem without concrete guidance, so give it to them. Per further discussion of the string_agg() problem.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/misc/guc.c, add a comment about the initial default value of max_stack_depth.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, fix inaccurate description of deferrable unique constraints, per Dean Rasheed.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, let's put that &amp;lt;/link&amp;gt; in a sane place ...&lt;/li&gt;
&lt;li&gt;Recognize functional dependency on primary keys. This allows a table's other columns to be referenced without listing them in GROUP BY, so long as the primary key column(s) are listed in GROUP BY. Eventually we should also allow functional dependency on a UNIQUE constraint when the columns are marked NOT NULL, but that has to wait until NOT NULL constraints are represented in pg_constraint, because we need to have pg_constraint OIDs for all the conditions needed to ensure functional dependency. Peter Eisentraut, reviewed by Alex Hunsaker and Tom Lane.&lt;/li&gt;
&lt;li&gt;Add stats functions and views to provide access to a transaction's own statistics counts. These numbers are being accumulated but haven't yet been transmitted to the collector (and won't be, until the transaction ends). For some purposes, though, it's handy to be able to look at them. Joel Jacobson, reviewed by Itagaki Takahiro&lt;/li&gt;
&lt;li&gt;Add an xpath_exists() function. This is equivalent to XMLEXISTS except that it offers support for namespace mapping. Mike Fowler, reviewed by David Fetter&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bruce Momjian a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/explain.sgml, add EXPLAIN documentation example. Gabrielle Roth.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, fix 9.0 release notes vacuum mention, not -&amp;gt; now. Peter Fokkinga.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Peter Eisentraut a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add xmlexists function by Mike Fowler, reviewed by Peter Eisentraut.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/plpython.sgml, document which Python environment variables affect PL/Python&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/xfunc.sgml, fix indexterm spelling.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejetés (à ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de déception cette semaine&amp;nbsp;:-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mike Fowler sent in another revision of the xml_is_well_formed() patch.&lt;/li&gt;
&lt;li&gt;Robert Haas and Yeb Havinga traded patches fixing the issue with multiply-inherited columns.&lt;/li&gt;
&lt;li&gt;Tom Lane sent in a patch to fix an issue with ANALYZE in the case of expression indexes with opckeytype that is not the default one.&lt;/li&gt;
&lt;li&gt;Pavel Stehule and Robert Haas traded patches for the \ef [line number] and \sf (show function) feature in psql.&lt;/li&gt;
&lt;li&gt;Zoltan Boszormenyi sent in another revision of the lock_timeout patch.&lt;/li&gt;
&lt;li&gt;Pavel Stehule sent in two more revisions of the xslt with no limits patch.&lt;/li&gt;
&lt;li&gt;Josh Tolley, David Fetter and Pavel Stehule sent in new revisions of the GROUPING SETS patch.&lt;/li&gt;
&lt;li&gt;Florian Pflug sent in another revision of the &quot;true serialization&quot; patch.&lt;/li&gt;
&lt;li&gt;Zoltan Boszormenyi sent in a patch to fix ECPG in the case of dynamic cursor names, which did not exist before 9.0.&lt;/li&gt;
&lt;li&gt;Florian Pflug sent in two more revisions of the patch to show individual statement latencies in pgbench output.&lt;/li&gt;
&lt;li&gt;Boxuan Zhai, Heikki Linnakangas and Simon Riggs traded patches which implement, describe and test MERGE.&lt;/li&gt;
&lt;li&gt;Simon Riggs sent in a detailed specification for MERGE.&lt;/li&gt;
&lt;li&gt;Dean Rasheed sent in a WIP patch to add triggers for VIEWs.&lt;/li&gt;
&lt;li&gt;Jan Otto sent in a patch to fix and update contrib/isn.&lt;/li&gt;
&lt;li&gt;Fujii Masao sent in another patch to help with synchronous replication.&lt;/li&gt;
&lt;li&gt;Heikki Linnakangas sent in a patch to fix an infelicity in EXECUTE ... USING with unknown parameters.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to refactor comment.c, partly as a preface to adding a SECURITY LABEL command.&lt;/li&gt;
&lt;li&gt;Tom Lane sent in another revision of the gincostestimate patch.&lt;/li&gt;
&lt;li&gt;Kris Jurka sent in another revision of the patch to fix JDBC in certain situations with COPY IN.&lt;/li&gt;
&lt;li&gt;Tom Lane sent in a patch with a different approach to the gincostestimate issue.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in a patch to add the following functionalities to ALTER TYPE: ADD ATTRIBUTE, DROP ATTRIBUTE, ALTER ATTRIBUTE...SET DATA TYPE and RENAME ATTRIBUTE.&lt;/li&gt;
&lt;li&gt;Mark Wong sent in a WIP patch to implement parallel quicksort.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Des news de pgpool-II v.3.0</title>
		<link href="http://www.argudo.org/index.php?post/2010/08/06/Des-news-de-pgpool-II-v.3.0"/>
		<id>urn:md5:7b23abeb641cbb59c7ca3a35e22b2e2d</id>
		<updated>2010-08-06T14:00:00+00:00</updated>
		<content type="html">&lt;p&gt;Tatsuo Ishii, développeur principal de pgpool-II, vient d'annoncer ce matin, dans la liste dédiée aux développeurs de pgpool-II, que la première version beta de pgpool-II en version 3.0 sortirait ce mois-ci.&lt;/p&gt;


&lt;p&gt;Il a donné aussi une liste des fonctionalités que cette version apporte dans le même mail.&lt;/p&gt;


&lt;p&gt;Je vous en propose ci-après une traduction libre.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Version 3.0(umiyameboshi) 2010/08/xx:&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;Ceci est la première version de pgpool-II dans la branche 3.0. Il s'agit d'un grand bond en avant depuis les versions 2.2 ou 2.3.&lt;/p&gt;


&lt;p&gt;La grosse nouveauté avec cette nouvelle version est qu'elle est adaptée à la nouvelle version 9.0 de PostgreSQL (NDT: sortie prévue pour l'automne 2010), et en particulier à ses fonctionalités de Streaming Replication/Hot Standby.&lt;/p&gt;


&lt;p&gt;Le Streaming Replication peut être utilisé dans le mode &quot;master/slave&quot; de pgpool-II. Ce mode maître/esclave de pgpool-II lui-même a été grandement amélioré:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;les SELECTs dans des transactions explicites peuvent être balancés&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;dans le protocole étendu, les mesages PARSE/BIND/DESCRIBE sont envoyés au nœud qui exécute le message EXECUTE. Cela réduit la contention au niveau des locks&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;l'auto-start d'une transaction se produit désormais uniquement si c'est nécessaire&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;les tables temporaires peuvent être utilisées sans risques désormais&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;les SELECTs qui appellent des fonctions qui peuvent potentiellement déclencher des écritures ne s'exécutent que sur le maître (master, primary)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;D'autres nouvelles fonctionalités sont ajoutées grâce à un recodage du cœur de pgpool-II. Par exemple, dans le mode réplication, les SELECTs qui appellent des fonctions qui peuvent potentiellement déclencher des écritures ne pourront pas être balancés.

Nouvelles fonctionalités (NDT: on trouve entre parenthèse le nom du codeur qui a pris en charge la fonctionalité, presque toujours Tatsuo)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;le Online recovery peut être utilisé même dans le mode maître/esclave en mode streaming replication (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;la nouvelle directive &quot;delay_threshold&quot; a été ajoutée pour monitorer le décalage de la réplication dans le mode maître/esclave avec streaming replication. Si ce décalage devient trop important (NDT: supérieur à la valeur de &quot;delay_threshold&quot;), alors les SELECTs ne sont plus balancés (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;la commande &quot;show pool_status&quot; montre le décalage de la réplication en mode maître/esclave avec streaming replication (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;la nouvelle directive &quot;log_standby_delay&quot; a été ajoutée pour tracer le décalage de la réplication en mode master/slave avec streaming replication (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;le numéro de processus du backend a été ajouté aux informations de pcp_proc_info, que le client se connecte ou non au pool (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;les nouvelles directives &quot;white_function_list&quot; et &quot;black_function_list&quot; ont été ajoutées pour déclarer les fonctions qui sont suceptibles de provoquer des écritures ou pas (Tatsuo) (NDT: c'est ainsi que pgpool peut distinguer les fonctions qui peuvent provoquer des écritures des autres. Il n'y a donc pas de magie!)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;dans mode de réplication maître/esclave, les SELECTs sur des tables temporaires ne s'exécutent que sur maître/primaire (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;dans le mode de réplication maître/esclave, les requêtes d'écritures se trouvant en dehors d'une transaction explicite ne déclenchent plus de trasactions internes (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;dans le mode de réplication maître/esclave, les SELECTs à l'intérieur d'une transaction sont load-balancés (Tatsuo, Kitawaga)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;dans le mode de réplication maître/esclave, les commandes ne sont pas envoyées à tous les serveurs. Cela permettra d'éviter des locks superflus (Tatsuo, Kitawaga)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;une nouvelle option de démarrage de pgpool-II permet d'ignorer le fichier de statut (Tatsuo) (NDT: précédement, si ce fichier était présent, dans certains cas particuliers, pgpool ne pouvait plus démarrer, sauf à supprimer ce fichier)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;support de la nouvelle syntaxe du VACUUM introduite dans la version 9.0 de PostgreSQL (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;la nouvelle directive &quot;failover_if_affected_tuples_mismatch&quot; permet de contrôler le comportement de pgpool-II lorsque le nombre d'enregistrements affectés ou renvoyés par une requête de type INSERT, UPDATE ou DELETE diffère (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;lorsque le nombre de ces enregistrements diffère sur un INSERT, UPDATE ou DELETE, ce dernier est tracé, pour chacun des serveurs impactés (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;l'authentification md5 est supportée dans le mode réplication ainsi que dans le mode maître/esclave (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;on peut désormais forcer le passage à la deuxième étape du mode online recovery, même lorsqu'il y a des clients connectés (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;s'il y a seulement un seul serveur de disponible et que ce dernier a une avarie (pgpool-II provoque alors un failover), pgpool-II se connectera automatiquement à ce dernier dès qu'il sera à nouveau disponible (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;ajout du format des options longues à PCP (Guillaume Lelarge)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;la nouvelle directive &quot;debug_level&quot; permet de contrôler le niveau des traces de débogage dans les fichiers de log&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;on peut désormais utiliser plusieurs représentations pour les valeurs booléennes dans le fichier pgpool.conf (Kitawaga)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Corrections de bugs&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Un bug de gestion des timeouts a été corrigé dans les commandes PCP (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;le blocage de SSL lorsque de grosses quantités de données sont transférées a été corrigé (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;le failover lorsqu'il n'y a plus qu'un seul serveur de disponible a été corrigé (Tatsuo)&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>Jean-Paul Argudo</name>
			<uri>http://www.argudo.org/index.php</uri>
		</author>
		<source>
			<title type="html">Jean-Paul's place on the Internet - PostgreSQL</title>
			<link rel="self" href="http://www.argudo.org/index.php?feed/category/PostgreSQL/rss2"/>
			<id>http://www.argudo.org/index.php?feed/category/PostgreSQL/rss2</id>
			<updated>2010-09-02T20:17:04+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 1er août 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/08/04/Nouvelles-hebdomadaires-de-PostgreSQL-1er-ao%C3%BBt-2010"/>
		<id>urn:md5:940858339efe36fc83bc16d35b069c6f</id>
		<updated>2010-08-03T23:46:10+00:00</updated>
		<content type="html">&lt;p&gt;PostgreSQL 9.0 beta 4 est disponible. Testez&amp;nbsp;! [ndt: &lt;a href=&quot;http://blog.postgresql.fr/index.php?post/2010/08/02/PostgreSQL-9.0-Beta-4-disponible&quot;&gt;annonce (fr)&lt;/a&gt;] 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/developer/beta&quot;&gt;http://www.postgresql.org/developer/beta&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Job::Machine 0.011, un gestionnaire de queue en Perl utilisant PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://search.cpan.org/dist/Job-Machine/&quot;&gt;http://search.cpan.org/dist/Job-Machine/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;pgAdmin 1.10.5, une interface graphique de gestion pour PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.pgadmin.org/download/&quot;&gt;http://www.pgadmin.org/download/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;pg_sample 0.01, un utilitaire permettant d'exporter un petit &amp;eacute;chantillon d'une base de donn&amp;eacute;es&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://github.com/mla/pg_sample&quot;&gt;http://github.com/mla/pg_sample&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en ao&amp;ucirc;t&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-08/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-08/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reuven Lerner donnera un cours de 5 jours sur PostgreSQL du 1er au 5 ao&amp;ucirc;t au &quot;Hi-Tech College&quot; de Herzliya (Isra&amp;euml;l)&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.hi-tech.co.il/college/default.asp?PageID=12&amp;CourseNum=4288&quot;&gt;http://www.hi-tech.co.il/college/default.asp?PageID=12&amp;amp;CourseNum=4288&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;La FrOSCon 2010 aura lieu &amp;agrave; St. Augustin (Allemagne) les 21 &amp;amp; 22 ao&amp;ucirc;t 2010. Le PUG allemand a obtenu sa propre salle de dev. et est &amp;agrave; la recherche de conf&amp;eacute;renciers. Plus de d&amp;eacute;tails&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html&quot;&gt;http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'appel &amp;agrave; conf&amp;eacute;renciers pour la &quot;West&quot; est lanc&amp;eacute; jusqu'au 5 septembre 2010. D&amp;eacute;tails sur&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresqlconference.org/&quot;&gt;http://www.postgresqlconference.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100801&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Revues&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;KaiGai Kohei reviewed Robert Haas's patch to add get_whatever_oid functionality.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Peter Eisentraut a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/xfunc.sgml, add table creation and population to example. From John Gage.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/perform.sgml, fix grammar. Backpatched to 8.1.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/xml2/README.xml2, spelling fix.&lt;/li&gt;
&lt;li&gt;Spelling fixes.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/psql/common.c, show psql timing output even in quiet mode. These two settings ought to be independent of each other.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/chkpass/chkpass.sql.in, remove wildly obsolete type attribute externallength from chkpass.&lt;/li&gt;
&lt;li&gt;Fix indentation of verbatim block elements. Block elements with verbatim formatting (literallayout, programlisting, screen, synopsis) should be aligned at column 0 independent of the surrounding SGML, because whitespace is significant, and indenting them creates erratic whitespace in the output. The CSS stylesheets already take care of indenting the output. Assorted markup improvements to go along with it.&lt;/li&gt;
&lt;li&gt;Translation updates for 9.0beta4.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alvaro Herrera a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In PL/Perl[U], ensure $_SHARED is declared in the main:: namespace, per bugs #5570 and #5571. Author: Alex Hunsaker&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In postgresql.conf.sample, use on/off rather than true/false. We used to be consistent about this, but my recent patch to add a restart_after_crash GUC failed to follow the existing convention. Report and patch from Fujii Masao.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/plpgsql.sgml, fix typo in PL/pgsql code example. Backpatch to 8.4. Marc Cousin. Review by Kevin Grittner.&lt;/li&gt;
&lt;li&gt;Add ssl_cipher() and ssl_version() functions to contrib/sslinfo. Review by Dave Page.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/heap/heapam.c, fix possible page corruption by ALTER TABLE .. SET TABLESPACE. If a zeroed page is present in the heap, ALTER TABLE .. SET TABLESPACE will set the LSN and TLI while copying it, which is wrong, and heap_xlog_newpage() will do the same thing during replay, so the corruption propagates to any standby. Note, however, that the bug can't be demonstrated unless archiving is enabled, since in that case we skip WAL logging altogether, and the LSN/TLI are not set. Back-patch to 8.0; prior releases do not have tablespaces. Analysis and patch by Jeff Davis. Adjustments for back-branches and minor wordsmithing by me.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/fuzzystrmatch/fuzzystrmatch.c, avoid using text_to_cstring() in levenshtein functions. Operating directly on the underlying varlena saves palloc and memcpy overhead, which testing shows to be significant. Extracted from a larger patch by Alexander Korotkov.&lt;/li&gt;
&lt;li&gt;Make details of the Numeric representation private to numeric.c. Review by Tom Lane.&lt;/li&gt;
&lt;li&gt;Make psql distinguish between unique indices and unique constraints. Josh Kupershmidt. Reviewing and kibitzing by Kevin Grittner and me.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tom Lane a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rewrite the rbtree routines so that an RBNode is the first field of the struct representing a tree entry, rather than being a separately allocated piece of storage. This API is at least as clean as the old one (if not more so --- there were some bizarre choices in there) and it permits a very substantial memory savings, on the order of 2X in ginbulk.c's usage.&lt;/li&gt;
&lt;li&gt;Fix an additional set of problems in GIN's handling of lossy page pointers. Although the key-combining code claimed to work correctly if its input contained both lossy and exact pointers for a single page in a single TID stream, in fact this did not work, and could not work without pretty fundamental redesign. Modify keyGetItem so that it will not return such a stream, by handling lossy-pointer cases a bit more explicitly than we did before. Per followup investigation of a gripe from Artur Dabrowski. An example of a query that failed given his data set is select count(*) from search_tab where (to_tsvector('german', keywords ) @@ to_tsquery('german', 'ee:* | dd:*')) and (to_tsvector('german', keywords ) @@ to_tsquery('german', 'aa:*')); Back-patch to 8.4 where the lossy pointer code was introduced.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/tsearch/ts_selfuncs.c, add some knowledge about prefix matches to tsmatchsel(). It's not terribly bright, but it beats assuming that a prefix match behaves identically to an exact match, which is what the code was doing before :-(. Noted while experimenting with Artur Dobrowski's example.&lt;/li&gt;
&lt;li&gt;Fix ANALYZE's ancient deficiency of not trying to collect stats for expression indexes when the index column type (the opclass opckeytype) is different from the expression's datatype. When coded, this limitation wasn't worth worrying about because we had no intelligence to speak of in stats collection for the datatypes used by such opclasses. However, now that there's non-toy estimation capability for tsvector queries, it amounts to a bug that ANALYZE fails to do this. The fix changes struct VacAttrStats, and therefore constitutes an API break for custom typanalyze functions. Therefore we can't back-patch it into released branches, but it was agreed that 9.0 isn't yet frozen hard enough to make such a change unacceptable. Ergo, back-patch to 9.0 but no further. The API break had better be mentioned in 9.0 release notes.&lt;/li&gt;
&lt;li&gt;Back-patch fix for renaming asyncCommitLSN to asyncXactLSN. AIUI this was supposed to go into 9.0 as well as HEAD.&lt;/li&gt;
&lt;li&gt;Fix an ancient typo that prevented the detection of conflicting fields when interval input &quot;invalid&quot; was specified together with other fields. Spotted by Neil Conway with the help of a clang warning. Although this has been wrong since the interval code was written more than 10 years ago, it doesn't affect anything beyond which error message you get for a wrong input, so not worth back-patching very far.&lt;/li&gt;
&lt;li&gt;Tweak a couple of macros in the regex code to suppress compiler warnings from &quot;clang&quot;. The VERR changes make an assignment unconditional, which is probably easier to read/understand anyway, and one can hardly argue that it's worth shaving cycles off the case of reporting another error when one has already been detected. The INSIST change limits where that macro can be used, but not in a way that creates a problem for any existing call.&lt;/li&gt;
&lt;li&gt;In pgsql/src/template/darwin, don't try to force use of -no-cpp-precomp on OS X. It's been five years since Apple shipped a compiler that needed this switch, and there's increasing interest in using other compilers that won't accept the switch at all. Better to let anybody who still needs the switch inject it via CPPFLAGS. Per gripe from Neil Conway.&lt;/li&gt;
&lt;li&gt;Also, fix minor memory leaks in code called by ginEntryInsert, in particular in ginInsertValue and entryFillRoot, as well as ginEntryInsert itself. These leaks resulted in the GIN index build context continuing to bloat even after we'd filled it to maintenance_work_mem and started to dump data out to the index. In combination these fixes restore the GIN index build code to honoring the maintenance_work_mem limit about as well as it did in 8.4. Speed seems on par with 8.4 too, maybe even a bit faster, for a non-pathological case in which HEAD was formerly slower. Back-patch to 9.0 so we don't have a performance regression from 8.4.&lt;/li&gt;
&lt;li&gt;Fix potential failure when hashing the output of a subplan that produces a pass-by-reference datatype with a nontrivial projection step. We were using the same memory context for the projection operation as for the temporary context used by the hashtable routines in execGrouping.c. However, the hashtable routines feel free to reset their temp context at any time, which'd lead to destroying input data that was still needed. Report and diagnosis by Tao Ma. Back-patch to 8.1, where the problem was introduced by the changes that allowed us to work with &quot;virtual&quot; tuples instead of materializing intermediate tuple values everywhere. The earlier code looks quite similar, but it doesn't suffer the problem because the data gets copied into another context as a result of having to materialize ExecProject's output tuple.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/executor/nodeLockRows.c, fix oversight in new EvalPlanQual logic: the second loop over the ExecRowMark list in ExecLockRows() forgot to allow for the possibility that some of the rowmarks are for child tables that aren't relevant to the current row. Per report from Kenichiro Tanaka.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/installation.sgml, work around a documentation toolchain problem by replacing the &quot;AIX-fixlevels&quot; table with a &amp;lt;variablelist&amp;gt; carrying the same information. Previously the 9.0 documentation was failing to build as a US-size PDF file. It's quite obscure what the real problem is or why this avoids it, but we need a hack now so we can build docs for beta4. In passing do a bit of editing in the AIX installation docs, in particular remove a long-obsolete claim that the regression tests are likely to fail.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/commands/tablecmds.c, fix another longstanding problem in copy_relation_data: it was blithely assuming that a local char[] array would be aligned on at least a word boundary. There are architectures on which that is pretty much guaranteed to NOT be the case ... and those arches also don't like non-aligned memory accesses, meaning that log_newpage() would crash if it ever got invoked. Even on Intel-ish machines there's a potential for a large performance penalty from doing I/O to an inadequately aligned buffer. So palloc it instead. Backpatch to 8.0 --- 7.4 doesn't have this code.&lt;/li&gt;
&lt;li&gt;In pgsql/src/include/catalog/pg_proc.h, clean up some inconsistencies in the volatility marking of various I/O related functions. Per today's discussion, we will henceforth assume that datatype I/O functions are either stable or immutable, never volatile. (This implies in particular that domain CHECK constraint expressions shouldn't be volatile, since domain_in executes them.) In turn, functions that execute the I/O functions of arbitrary datatypes should always be labeled stable. This affects the labeling of array_to_string, which was unsafely marked immutable, and record_in, record_out, record_recv, record_send, domain_in, domain_recv, which were over-conservatively marked volatile. The array I/O functions were already marked stable, which is correct per this policy but would have been wrong if we maintained domain_in as volatile. Back-patch to 9.0, along with an earlier fix to correctly mark cash_in and cash_out as stable not immutable (since they depend on lc_monetary). No catversion bump --- the implications of this are not currently severe enough to justify a forced initdb.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, update release notes for 9.0 beta 4. Back-patch some changes that were made only in HEAD.&lt;/li&gt;
&lt;li&gt;Improved version of patch to protect pg_get_expr() against misuse: look through join alias Vars to avoid breaking join queries, and move the test to someplace where it will catch more possible ways of calling a function. We still ought to throw away the whole thing in favor of a data-type-based solution, but that's not feasible in the back branches. This needs to be back-patched further than 9.0, but I don't have time to do so today. Committing now so that the fix gets into 9.0beta4.&lt;/li&gt;
&lt;li&gt;Rewrite the key-combination logic in GIN's keyGetItem() and scanGetItem() routines to make them behave better in the presence of &quot;lossy&quot; index pointers. The previous coding was outright incorrect for some cases, as recently reported by Artur Dabrowski: scanGetItem would fail to return index entries in cases where one index key had multiple exact pointers on the same page as another key had a lossy pointer. Also, keyGetItem was extremely inefficient for cases where a single index key generates multiple &quot;entry&quot; streams, such as an @@ operator with a multiple-clause tsquery. The presence of a lossy page pointer in any one stream defeated its ability to use the opclass consistentFn, resulting in probing many heap pages that didn't really need to be visited. In Artur's example case, a query like WHERE tsvector @@ to_tsquery('a &amp;amp; b') was about 50X slower than the theoretically equivalent WHERE tsvector @@ to_tsquery('a') AND tsvector @@ to_tsquery('b') The way that I chose to fix this was to have GIN call the consistentFn twice with both TRUE and FALSE values for the in-doubt entry stream, returning a hit if either call produces TRUE, but not if they both return FALSE. The code handles this for the case of a single in-doubt entry stream, but punts (falling back to the stupid behavior) if there's more than one lossy reference to the same page. The idea could be scaled up to deal with multiple lossy references, but I think that would probably be wasted complexity. At least to judge by Artur's example, such cases don't occur often enough to be worth trying to optimize. Back-patch to 8.4. 8.3 did not have lossy GIN index pointers, so not subject to these problems.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/tsearch/ts_selfuncs.c, tweak tsmatchsel() so that it examines the structure of the tsquery whenever possible (ie, whenever the tsquery is a constant), even when no statistics are available for the tsvector. For example, foo @@ 'a &amp;amp; b'::tsquery can be expected to be more selective than foo @@ 'a'::tsquery, whether or not we know anything about foo. We use DEFAULT_TS_MATCH_SEL as the assumed selectivity of individual query terms when no stats are available, then combine the terms according to the query's AND/OR structure as usual. Per experimentation with Artur Dabrowski's example. (The fact that there are no stats available in that example is a problem in itself, but nonetheless tsmatchsel should be smarter about the case.) Back-patch to 8.4 to keep all versions of tsmatchsel() in sync.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Simon Riggs a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add explicit regression tests for ALTER TABLE lock levels. Use this to catch a couple of lock level assignments that slipped through manual testing, per Peter Eisentraut.&lt;/li&gt;
&lt;li&gt;Rename asyncCommitLSN to asyncXactLSN to reflect changed role in 9.0. Transaction aborts now record their LSN to avoid corner case behaviour in Streaming Replication/Hot Standby, hence change of name of variables and functions. As pointed out by Fujii Masao. Cosmetic changes only.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Marc Fournier a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tag for beta4.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de d&amp;eacute;ception cette semaine&amp;nbsp;:-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Robert Haas sent in a patch to add ssl_version() and ssl_cipher() to contrib/sslinfo.&lt;/li&gt;
&lt;li&gt;KaiGai Kohei sent in two more patches implementing SECURITY LABEL.&lt;/li&gt;
&lt;li&gt;Boxuan Zhai sent in two more revisions of the WIP patch for MERGE.&lt;/li&gt;
&lt;li&gt;Alexander Korotkov sent in two more revisions of the patch to make levenshtein multibyte-aware in contrib/fuzzystrmatch.&lt;/li&gt;
&lt;li&gt;Fujii Masao sent in another revision of the patch to do synchronous replication.&lt;/li&gt;
&lt;li&gt;Simon Riggs sent in another patch to reduce the needed locking for ALTER TABLE.&lt;/li&gt;
&lt;li&gt;Florian Pflug sent in another revision of the patch to show individual statement latencies in pgbench output.&lt;/li&gt;
&lt;li&gt;Erik Rijkers sent in a patch to fix an oversight in the variadic function docs.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in another revision of the patch to reduce the on-disk size of NUMERICs.&lt;/li&gt;
&lt;li&gt;Zoltan Boszormenyi sent in another WIP patch to add a lock_timeout GUC.&lt;/li&gt;
&lt;li&gt;Henk Enting sent in a patch to help with the intersection of CHECK constraints and multiple inheritance.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">PostgreSQL 9.0 Beta 4 disponible</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/08/02/PostgreSQL-9.0-Beta-4-disponible"/>
		<id>urn:md5:e0df1495a729620cad8811c1004e29c8</id>
		<updated>2010-08-03T08:11:27+00:00</updated>
		<content type="html">&lt;p&gt;Billet original de Selena Deckelmann, corrigé par Josh Berkus. Traductions de Stéphane Schildknecht.&lt;/p&gt;


&lt;p&gt;La quatrième version bêta de PostgreSQL 9.0 est désormais disponible.
Elle contient divers correctifs et quelques changements par rapport à la bêta 3.&lt;/p&gt;


&lt;p&gt;Plus elle sera téléchargée, installée, et testée, plus nous nous rapprocherons
de la version 9.0 finale. Il est d'ailleurs fort probable qu'il s'agisse de la dernière version bêta.&lt;/p&gt;


&lt;p&gt;Quelques modifications significatives ont été introduites dans la bêta 4
qui requièrent que les applications soient re-testées au regard de la version
9.0.&lt;/p&gt;


&lt;p&gt;Le changement le plus significatif pour l'utilisateur concerne la remontée d'informations par \timing, même lorsque psql tourne en mode &quot;quiet&quot; (silencieux).
Ces modifications incluent&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;une remontée correcte des erreurs d'espace disque et le non-chargement&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;du .psqlrc lors de l'utilisation de pg_upgrade;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;une vérification compète du certificat SSL lorsque «&amp;nbsp;host&amp;nbsp;» et «&amp;nbsp;hostaddr&amp;nbsp;»&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;sont tous deux précisés, rétro-correctif en 8.4&amp;nbsp;;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un correctif pour la gestion des objets SQL/MED par pg_dump&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;un correctif et amélioration des performances pour le parcours de pointeurs d'index GIN à trous&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;un correctif pour une possible corruption de page dans ALTER TABLE .. SET TABLESPACE&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;la ré-exécution correcte de CREATE TABLESPACE lors d'une récupération après incident&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;le nettoyage des sous-transactions dans les boucles FOR, et la limitation des niveaux de&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;récursions lors de l'assignation des XID sur des niveaux multiples de sous-transactions,
tous deux rétro-corrigés en 8.0.&lt;/p&gt;


&lt;p&gt;À l'inverse des versions bêta précédentes, il n'y a pas eu de modification du catalogue système par rapport à la bêta3. initdb n'est donc pas nécessaire pour une mise à jour de la bêta3. En revanche, une mise à jour depuis des versions bêta plus anciennes nécessite un initdb et un
rechargement de la base.&lt;/p&gt;


&lt;p&gt;Nous vous encourageons à utiliser cette opportunité pour tester pg_upgrade pour les mises à jour
à partir d'une version bêta plus ancienne de la version 9.0.
Merci de remonter vos résultats.&lt;/p&gt;


&lt;p&gt;Si vous pouvez nous aider à tester la version bêta, jetez un œil à la page&amp;nbsp;:
http://wiki.postgresql.org/wiki/HowToBetaTest&lt;/p&gt;


&lt;p&gt;Les bêtas ne sont pas stable, et ne doivent, par conséquent, jamais être utilisées en
environnement de production&amp;nbsp;; elles n'ont d'autre but que d'être testées.
Une version «&amp;nbsp;release candidate&amp;nbsp;» sera bientôt disponible.&lt;/p&gt;


&lt;p&gt;Le code source et les installeurs binaires pour de nombreuses plateformes
sont disponibles sur le site de PostgreSQL&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Source: http://www.postgresql.org/ftp/source/v9.0beta4&lt;/li&gt;
&lt;li&gt;One-Click installer dont version Windows 64bits&amp;nbsp;:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;http://www.enterprisedb.com/products/pgdownload.do&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;binaires pour les autres plateformes&amp;nbsp;: http://www.postgresql.org/ftp/binary/v9.0beta4&lt;/li&gt;
&lt;li&gt;Notes de version&amp;nbsp;:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;http://developer.postgresql.org/pgdocs/postgres/release-9-0.html&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Participer aux tests&amp;nbsp;: http://www.postgresql.org/developer/beta&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>SAS</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 25 juillet 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/07/29/Nouvelles-hebdomadaires-de-PostgreSQL-25-juillet-2010"/>
		<id>urn:md5:45ca61822f0d6e0ba26875f39c6393e2</id>
		<updated>2010-07-29T19:25:20+00:00</updated>
		<content type="html">&lt;p&gt;&lt;strong&gt;Les nouveaut&amp;eacute;s des produits d&amp;eacute;riv&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Another PostgreSQL Diff Tool 2.0 Beta 2, un outil de &quot;diff&quot; pour base de donn&amp;eacute;es&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;https://sourceforge.net/apps/mediawiki/apgdiff/&quot;&gt;https://sourceforge.net/apps/mediawiki/apgdiff/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;JASPA 0.1RC1, un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27information_g%C3%A9ographique&quot; target=&quot;_blank&quot;&gt;SIG&lt;/a&gt; en Java utilisable avec PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://forge.osor.eu/projects/jaspa/&quot;&gt;http://forge.osor.eu/projects/jaspa/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;MyJSQLView 3.22, un utilitaire graphique utilisable avec PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://dandymadeproductions.com/projects/MyJSQLView/index.html&quot;&gt;http://dandymadeproductions.com/projects/MyJSQLView/index.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simpycity 0.3.1, un syst&amp;egrave;me de &quot;mapping&quot; [ndt: correspondance objet-BDD ?] pour Python et PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.commandprompt.com/blogs/aurynn_shaw/2010/07/announcement_simpycity_031_released/&quot;&gt;http://www.commandprompt.com/blogs/aurynn_shaw/2010/07/announcement_simpycity_031_released/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;tail_n_mail 1.15.0, un programme en Perl pour scanner les fichiers de log et envoyer les r&amp;eacute;sultats par mail&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://bucardo.org/wiki/Tail_n_mail&quot;&gt;http://bucardo.org/wiki/Tail_n_mail&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en juillet&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-07/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-07/threads.php&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reuven Lerner donnera un cours de 5 jours sur PostgreSQL du 1er au 5 ao&amp;ucirc;t au &quot;Hi-Tech College&quot; de Herzliya (Isra&amp;euml;l)&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.hi-tech.co.il/college/default.asp?PageID=12&amp;CourseNum=4288&quot;&gt;http://www.hi-tech.co.il/college/default.asp?PageID=12&amp;amp;CourseNum=4288&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;La FrOSCon 2010 aura lieu &amp;agrave; St. Augustin (Allemagne) les 21 &amp;amp; 22 ao&amp;ucirc;t 2010. Le PUG allemand a obtenu sa propre salle de dev. et est &amp;agrave; la recherche de conf&amp;eacute;renciers. Plus de d&amp;eacute;tails&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html&quot;&gt;http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'appel &amp;agrave; conf&amp;eacute;renciers pour la &quot;West&quot; est lanc&amp;eacute; jusqu'au 5 septembre 2010. D&amp;eacute;tails sur&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresqlconference.org/&quot;&gt;http://www.postgresqlconference.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100725&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Revues&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;KaiGai Kohei reviewed Robert Haas's patch to add get_whatever_oid functionality.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Peter Eisentraut a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/interfaces/libpq/fe-connect.c, portability fixes for Solaris for requirepeer feature patch per report from Dave Page&lt;/li&gt;
&lt;li&gt;Add more checks against altering typed tables. 1. Prohibit altering column type. 2. Prohibit changing inheritance. 3. Move checks from Exec to Prep phases in ALTER TABLE code. Backpatched to 9.0&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/config.sgml, remove tab from SGML file&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/datatype.sgml, tidy up boolean data type page. Thom Brown.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/datatype.sgml, fix typo.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/xfunc.sgml, add INSERT statement to example so that it can be reproduced from John Gage&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Change the default value of standard_conforming_strings to on. This change should be publicized to driver maintainers at once and release-noted as an incompatibility with previous releases.&lt;/li&gt;
&lt;li&gt;Add restart_after_crash GUC. Normally, we automatically restart after a backend crash, but in some cases when PostgreSQL is invoked by clusterware it may be desirable to suppress this behavior, so we provide an option which does this. Since no existing GUC group quite fits, create a new group called &quot;error handling options&quot; for this and the previously undocumented GUC exit_on_error, which is now documented. Review by Fujii Masao.&lt;/li&gt;
&lt;li&gt;Make hstore regression tests independent of standard_conforming_strings. Per buildfarm.&lt;/li&gt;
&lt;li&gt;Make ECPG regression tests independent of standard_conforming_strings. Per buildfarm, again.&lt;/li&gt;
&lt;li&gt;Add \conninfo command to psql, to show current connection info. David Christensen. Reviewed by Steve Singer. Some further changes by me.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/psql/command.c, have \conninfo mention the port even for local sockets. Per discussion with David Christensen, there can be multiple instances of PG accessible via local sockets, and you need the port to see which one you're actually connected to. David's original patch worked this way, but I inadvertently ripped it out during commit.&lt;/li&gt;
&lt;li&gt;Centralize DML permissions-checking logic. Remove bespoke code in DoCopy and RI_Initial_Check, which now instead fabricate call ExecCheckRTPerms with a manufactured RangeTblEntry. This is intended to make it feasible for an enhanced security provider to actually make use of ExecutorCheckPerms_hook, but also has the advantage that RI_Initial_Check can allow use of the fast-path when column-level but not table-level permissions are present. KaiGai Kohei. Reviewed (in an earlier version) by Stephen Frost, and by me. Some further changes to the comments by me.&lt;/li&gt;
&lt;li&gt;Add options to force quoting of all identifiers. I've added a quote_all_identifiers GUC which affects the behavior of the backend, and a --quote-all-identifiers argument to pg_dump and pg_dumpall which sets the GUC and also affects the quoting done internally by those applications. Design by Tom Lane; review by Alex Hunsaker; in response to bug #5488 filed by Hartmut Goebel.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/pg_dump/pg_dumpall.c, fix bogus server version in pg_dumpall --quote-all-identifiers.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/replication/walsender.c, add missing function prototype. Fujii Masao.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xact.c, avoid deep recursion when assigning XIDs to multiple levels of subxacts. Backpatch to 8.0. Andres Freund, with cleanup and adjustment for older branches by me.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/psql/command.c, have psql avoid describing local sockets as host names. We now use the phrase 'via local socket in' rather than 'on host' in both \c and \conninfo output, when applicable. Fujii Masao, with some kibitzing by me.&lt;/li&gt;
&lt;li&gt;CREATE TABLE IF NOT EXISTS. Reviewed by Bernd Helmle.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bruce Momjian a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Properly replay CREATE TABLESPACE during crash recovery by deleting directory/symlink before creation. Report from Tom Lane. Backpatch to 9.0.&lt;/li&gt;
&lt;li&gt;Prevent pg_upgrade from migrating databases that use reg* data types where the oid is not preserved by pg_upgrade (everything but pg_type). Update documentation. Per bug report from depstein@alliedtesting.com.&lt;/li&gt;
&lt;li&gt;In contrib/pg_upgrade, adjust check_for_isn_and_int8_passing_mismatch() so it is called for all migrations. Backpatch to 9.0.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/create_table.sgml, remove tabs from sgml file.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Magnus Hagander a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Backpatch reservation of shared memory region during backend startup on Windows, so that memory allocated by starting third party DLLs doesn't end up conflicting. The same functionality has been in 8.3 and 8.4 for almost a year, and seems to have solved some of the more common shared memory errors on Windows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de d&amp;eacute;ception cette semaine&amp;nbsp;:-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KaiGai Kohei sent in another revision of the patch to rework DML permisssion checks.&lt;/li&gt;
&lt;li&gt;ITAGAKI Takahiro sent in another revision of the patch to implement more of SQL/MED.&lt;/li&gt;
&lt;li&gt;Pavel Stehule sent in two more revisions of the patch to implement to_string() and to_array().&lt;/li&gt;
&lt;li&gt;Etienne Dube sent in a patch to fix a &quot;could not attach to shared memory&quot; issue on Windows in the 8.2 branch.&lt;/li&gt;
&lt;li&gt;ITAGAKI Takahiro and Pavel Stehule traded revisions of the string functions patch.&lt;/li&gt;
&lt;li&gt;Marc Cousin sent in a patch to correct a cursor declaration in the &quot;migrating from Oracle&quot; section of the PL/pgsql docs.&lt;/li&gt;
&lt;li&gt;Daniele Varrazzo sent in a patch to make more links from the libpq docs. This came from actual usage in psycopg.&lt;/li&gt;
&lt;li&gt;Satoshi Nagayasu sent in another revision of the patch to redo the ECPG docs.&lt;/li&gt;
&lt;li&gt;Alexander Korotkov sent in two more revisions of the patch to make levenshtein functions multibyte-aware.&lt;/li&gt;
&lt;li&gt;Leonardo Francalanci sent in another revision of the patch to improve the CLUSTER implentation.&lt;/li&gt;
&lt;li&gt;Pavel Stehule sent in two more revisions of the patch to enhance \ef and add \sf (show function) in psql.&lt;/li&gt;
&lt;li&gt;Fujii Masao sent in another revision of the patch to do synchronous replication.&lt;/li&gt;
&lt;li&gt;Teodor Sigaev sent in another flock of patches implementing K-Nearest-Neighbor for GiST indexes.&lt;/li&gt;
&lt;li&gt;Alex Hunsaker sent in two more revisions of the patch to add functional depency inference to GROUP BY.&lt;/li&gt;
&lt;li&gt;Kevin Grittner sent in another revision of the patch to make a more correct implementation of hypotenuse.&lt;/li&gt;
&lt;li&gt;Joseph Adams sent in a patch to implement the JSON data type.&lt;/li&gt;
&lt;li&gt;Mike Fowler sent in another revision of the patch to add XMLEXISTS to the grammar.&lt;/li&gt;
&lt;li&gt;Joseph Adams sent in a patch to add a utf8_to_unicode() function, similar to the corresponding unicode_to_utf8() function. Among other things, this smooths the way for the upcoming JSON data type.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 18 juillet 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/07/21/Nouvelles-hebdomadaires-de-PostgreSQL-18-juillet-2010"/>
		<id>urn:md5:a674cbbf25c7d670957258682c9da510</id>
		<updated>2010-07-21T21:14:17+00:00</updated>
		<content type="html">&lt;p&gt;PostgreSQL 9.0 beta 3 est disponible. Test&amp;nbsp;! [ndt: &lt;a href=&quot;http://blog.postgresql.fr/index.php?post/2010/07/13/Sortie-de-la-verion-beta-3-de-PostgreSQL-9.0&quot;&gt;page Fr.&lt;/a&gt;] 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/developer/beta&quot;&gt;http://www.postgresql.org/developer/beta&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;L'appel &amp;agrave; conf&amp;eacute;renciers pour la &quot;West&quot; est lanc&amp;eacute; jusqu'au 5 septembre 2010. D&amp;eacute;tails sur&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresqlconference.org/&quot;&gt;http://www.postgresqlconference.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;La premi&amp;egrave;re r&amp;eacute;union du PUG de San Diego se fera au Cymer Inc. le 29 juillet 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.meetup.com/SD-PUG/calendar/14105562/&quot;&gt;http://www.meetup.com/SD-PUG/calendar/14105562/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les nouveaut&amp;eacute;s des produits d&amp;eacute;riv&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;psycopg2 2.2.2, un connecteur Python pour PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://initd.org/psycopg/&quot;&gt;http://initd.org/psycopg/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en juillet&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-07/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-07/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L'OSCON aura lieu &amp;agrave; Portland (Oregon) du 19 au 23 juillet 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.oscon.com/oscon2010&quot;&gt;http://www.oscon.com/oscon2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Reuven Lerner donnera un cours de 5 jours sur PostgreSQL du 1er au 5 ao&amp;ucirc;t au &quot;Hi-Tech College&quot; de Herzliya (Isra&amp;euml;l)&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.hi-tech.co.il/college/default.asp?PageID=12&amp;CourseNum=4288&quot;&gt;http://www.hi-tech.co.il/college/default.asp?PageID=12&amp;amp;CourseNum=4288&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;La FrOSCon 2010 aura lieu &amp;agrave; St. Augustin (Allemagne) les 21 &amp;amp; 22 ao&amp;ucirc;t 2010. Le PUG allemand a obtenu sa propre salle de dev. et est &amp;agrave; la recherche de conf&amp;eacute;renciers. Plus de d&amp;eacute;tails&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html&quot;&gt;http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter et Devrim Gunduz. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100718&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Revues&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;KaiGai Kohei reviewed Robert Haas's patch to add get_whatever_oid functionality.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Bruce Momjian a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bump minor library version numbers, for 9.1 release.&lt;/li&gt;
&lt;li&gt;In pgsql/src/tools/RELEASE_CHANGES, document bump of minor library version numbers.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, spellcheck 9.0 release notes.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, 9.0 release note improvements Erik Rijkers&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, restore pl/pgsql default install release note item.&lt;/li&gt;
&lt;li&gt;In pg_upgrade, prevent psql AUTOCOMMIT=off by not loading .psqlrc.&lt;/li&gt;
&lt;li&gt;In pgsql/src/tools/fsync/test_fsync.c, print each test_fsync description while test is running, rather than at the end.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/exec.c, in pg_upgrade, report /bin directory checks independent of /data checks.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/option.c, remove incorrect email address for pg_upgrade bug reports.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/server.c, on Win32, pg_upgrade cannot sent any server log output to the log file because of file access limitations on that platform.&lt;/li&gt;
&lt;li&gt;Backpatch pg_upgrade fixes to 9.0: 1. In pg_upgrade, prevent psql AUTOCOMMIT=off by not loading .psqlrc. 2. In pg_upgrade, report /bin directory checks independent of /data checks. 3. Remove incorrect email address for pg_upgrade bug reports. 4. On Win32, pg_upgrade cannot sent any server log output to the log file because of file access limitations on that platform.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/commands/tablespace.c, simplify missing tablespace replay error hint message, but only in HEAD so we don't need to re-translate for 9.0.&lt;/li&gt;
&lt;li&gt;In pgsql/src/interfaces/libpq/fe-connect.c, add SO_PEERCRED check in new unix domain socket permission checking code.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tom Lane a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make NestLoop plan nodes pass outer-relation variables into their inner relation using the general PARAM_EXEC executor parameter mechanism, rather than the ad-hoc kluge of passing the outer tuple down through ExecReScan. The previous method was hard to understand and could never be extended to handle parameters coming from multiple join levels. This patch doesn't change the set of possible plans nor have any significant performance effect, but it's necessary infrastructure for future generalization of the concept of an inner indexscan plan. ExecReScan's second parameter is now unused, so it's removed.&lt;/li&gt;
&lt;li&gt;Teach EXPLAIN to print PARAM_EXEC Params as the referenced expressions, rather than just $N. This brings the display of nestloop-inner-indexscan plans back to where it's been, and incidentally improves the display of SubPlan parameters as well. In passing, simplify the EXPLAIN code by having it deal primarily in the PlanState tree rather than separately searching Plan and PlanState trees. This is noticeably cleaner for subplans, and about a wash elsewhere. One small difference from previous behavior is that EXPLAIN will no longer qualify local variable references in inner-indexscan plan nodes, since it no longer sees such nodes as possibly referencing multiple tables. Vars referenced through PARAM_EXEC Params are still forcibly qualified, though, so I don't think the display is any more confusing than before. Adjust a couple of examples in the documentation to match this behavior.&lt;/li&gt;
&lt;li&gt;Allow full SSL certificate verification (wherein libpq checks its host name parameter against server cert's CN field) to succeed in the case where both host and hostaddr are specified. As with the existing precedents for Kerberos, GSSAPI, SSPI, it is the calling application's responsibility that host and hostaddr match up --- we just use the host name as given. Per bug #5559 from Christopher Head. In passing, make the error handling and messages for the no-host-name-given failure more consistent among these four cases, and correct a lie in the documentation: we don't attempt to reverse-lookup host from hostaddr if host is missing. Back-patch to 8.4 where SSL cert verification was introduced.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/pg_dump/pg_dump.c, fix several problems in pg_dump's handling of SQL/MED objects, notably failure to dump a PUBLIC user mapping correctly, as per bug #5560 from Shigeru Hanada. Use the pg_user_mappings view rather than trying to access pg_user_mapping directly, so that the code doesn't fail when run by a non-superuser. And clean up some minor carelessness such as unsafe usage of fmtId(). Back-patch to 8.4 where this code was added.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/high-availability.sgml, use an &amp;lt;xref&amp;gt; for restore_command reference. Marko Tiikkaja.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/commands/opclasscmds.c, remove duplicate code in DefineOpFamily(). The code was probably meant to be this way all along, since the subroutine CreateOpFamily previously had only one caller. But it wasn't. KaiGai Kohei.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/executor/execUtils.c, remove a sanity check in the exclusion-constraint code that prevented users from defining non-self-conflicting constraints. Jeff Davis. Note: I (tgl) objected to removing this check in 9.0 on the grounds that it was an important sanity check in new, poorly tested code. However, it should be all right to remove it for 9.1, since we'll get field testing from the 9.0 branch.&lt;/li&gt;
&lt;li&gt;Add support for dividing money by money (yielding a float8 result) and for casting between money and numeric. Andy Balholm, reviewed by Kevin Grittner&lt;/li&gt;
&lt;li&gt;Add a log_file_mode GUC that allows control of the file permissions set on log files created by the syslogger process. In passing, make unix_file_permissions display its value in octal, same as log_file_mode now does. Martin Pihlak&lt;/li&gt;
&lt;li&gt;In pgsql/src/interfaces/libpq/fe-connect.c, fix thinko in recent patch: 'sock' should be 'conn-&amp;gt;sock'.&lt;/li&gt;
&lt;li&gt;In pgsql/src/interfaces/libpq/fe-connect.c, fix up poor handling of unsupported-platform case in requirepeer patch.&lt;/li&gt;
&lt;li&gt;Allow ORDER BY/GROUP BY/etc items to match targetlist items regardless of any implicit casting previously applied to the targetlist item. This is reasonable because the implicit cast, by definition, wasn't written by the user; so we are preserving the expected behavior that ORDER BY items match textually equivalent tlist items. The case never arose before because there couldn't be any implicit casting of a top-level SELECT item before we process ORDER BY etc. But now it can arise in the context of aggregates containing ORDER BY clauses, since the &quot;targetlist&quot; is the already-casted list of arguments for the aggregate. The net effect is that the datatype used for ORDER BY/DISTINCT purposes is the aggregate's declared input type, not that of the original input column; which is a bit debatable but not horrendous, and to do otherwise would require major rework that doesn't seem justified. Per bug #5564 from Daniel Grace. Back-patch to 9.0 where aggregate ORDER BY was implemented.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/error/elog.c, remove unnecessary &quot;Not safe to send CSV data&quot; complaint from elog.c's fallback path when CSV logging is configured but not yet operational. It's sufficient to send the message to stderr, as we were already doing, and the &quot;Not safe&quot; gripe has already confused at least two core members ... Backpatch to 9.0, but not further --- doesn't seem appropriate to change this behavior in stable branches.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Heikki Linnakangas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/utils/mmgr/portalmem.c, oops, in the previous fix to prevent a cursor that's being used in a FOR loop from being dropped, I missed subtransaction cleanup. Pinned portals must be dropped at subtransaction cleanup just as they are at main transaction cleanup. Per bug #5556 by Robert Walker. Backpatch to 8.0, 7.4 didn't have subtransactions.&lt;/li&gt;
&lt;li&gt;Add a paragraph explaining what restartpoints are. Mention that wal_keep_segments does not take effect during recovery. Fujii Masao&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/wal.sgml, fix typo spotted by Thom Brown.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Peter Eisentraut a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add server authentication over Unix-domain sockets. This adds a libpq connection parameter requirepeer that specifies the user name that the server process is expected to run under. Reviewed by KaiGai Kohei.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de d&amp;eacute;ception cette semaine&amp;nbsp;:-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KaiGai Kohei sent in another revision of the patch reworking DML permissions.&lt;/li&gt;
&lt;li&gt;Marko (johto) Tiikkaja sent in another WIP patch implementing writeable CTEs.&lt;/li&gt;
&lt;li&gt;Greg Smith sent in another revision of the patch to make pgbench 64-bit clean.&lt;/li&gt;
&lt;li&gt;Pavel Stehule sent in two more revisions of the patch to add left, right, reverse and concat functions to core, and printf and concat_ws functions to contrib.&lt;/li&gt;
&lt;li&gt;Markus Wanner sent in a flock of patches to add a background worker infrastructure which could be used, for example, in doing parallel queries.&lt;/li&gt;
&lt;li&gt;Alexander Korotkov sent in another revision of the patch to speed up levenshtein distance for multi-byte character sets.&lt;/li&gt;
&lt;li&gt;Tom Lane sent in a patch to trace only PlanState trees in EXPLAIN. Currently, both PlanState and Plan get traced.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in a proof-of-concept patch to implement per-column collation.&lt;/li&gt;
&lt;li&gt;Mark Wong sent in another version of the patch to allow multiple -f's in the invocation of psql.&lt;/li&gt;
&lt;li&gt;Pavel Stehule sent in another revision of the patch to preload text search dictionaries.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in another revision of the patch to suppress automatic recovery after a back-end crash, per review from Fujii Masao.&lt;/li&gt;
&lt;li&gt;KaiGai Kohei sent in two separate patches to add security labels to database objects.&lt;/li&gt;
&lt;li&gt;Fujii Masao sent in a patch intended to allow various levels of synchronous replication via a replication_mode parameter for recovery.conf in Hot Standby/Streaming Replication. It also provides some infrastructure for a quorum commit feature.&lt;/li&gt;
&lt;li&gt;Yeb Havinga sent in another revision of the patch to allow for five-key syscaches, which is infrastructure for, among other things, K-Nearest-Neighbor GiST searches.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to make standard_conforming_strings on by default.&lt;/li&gt;
&lt;li&gt;Simon Riggs sent in another revision of the patch to reduce the lock level required by ALTER TABLE, CREATE TRIGGER and CREATE RULE.&lt;/li&gt;
&lt;li&gt;Boxuan Zhai sent in another revision of the patch to add MERGE.&lt;/li&gt;
&lt;li&gt;Jeff Davis sent in another revision of the patch to add a &quot;not equals&quot; operator for contrib/btree_gist.&lt;/li&gt;
&lt;li&gt;Brendan Jurd sent in another revision of the to_string(), to_array(), etc. patch.&lt;/li&gt;
&lt;li&gt;Jan Urbanski sent in another revision of the patch to add functionality to \ef (edit function) and add \sf (show function) to psql.&lt;/li&gt;
&lt;li&gt;Kevin Grittner sent in another revision of the patch to do true serializability.&lt;/li&gt;
&lt;li&gt;David Christensen sent in another revision of the patch to add \conninfo to psql.&lt;/li&gt;
&lt;li&gt;Bruce Momjian sent in three revisions of a patch intended to fix a breakage of CREATE TABLESPACE during crash recovery.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Hot Standby  : un exemple concret</title>
		<link href="http://blog.taadeem.net/index.php?post/2010/07/19/Hot-Standby-%3A-un-exemple-concret"/>
		<id>urn:md5:d09cd51ba89e6a650ed81f6f533e2c8d</id>
		<updated>2010-07-19T07:21:00+00:00</updated>
		<content type="html">&lt;p&gt;Nous sommes actuellement en train de tester la version 9.0beta3 sur les
serveurs de postgresql.fr&lt;/p&gt;


&lt;p&gt;J'ai passé une partie de mon week-end à documenter la mise en place
d'une réplication Hot Standby en Streaming entre les deux serveurs.&lt;/p&gt;


&lt;p&gt;Avec le recul je me rend compte que cette doc peut être utile à d'autres
donc j'ai pris le temps de la publier&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.postgresql.fr/admin:installation_9.0&quot; hreflang=&quot;fr&quot;&gt;http://www.postgresql.fr/admin:installation_9.0&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://blog.taadeem.net/public/scrabble_eethapnl.jpg&quot; alt=&quot;scrabble&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Il s'agit simplement d'un tutoriel très succinct qui montre pas à pas
chaque étapes de l'installation. Je ne suis pas rentré dans les détails
et c'est volontaire si vous chercher une doc plus complète, je vous
conseille les articles de Guillaume parus dans Linux Mag l'année dernière&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.dalibo.org/hs44_installation_de_postgresql&quot; title=&quot;http://www.dalibo.org/hs44_installation_de_postgresql&quot;&gt;http://www.dalibo.org/hs44_installa...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.dalibo.org/hs44_la_replication_par_les_journaux_de_transactions&quot; title=&quot;http://www.dalibo.org/hs44_la_replication_par_les_journaux_de_transactions&quot;&gt;http://www.dalibo.org/hs44_la_repli...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;J'espère que mon how-to prouve à quel point la réplication est devenue
un jeu d'enfant avec PostgreSQL.&lt;/p&gt;


&lt;p&gt;Bien sur on est encore en phase Beta, la version stable devrait arriver
cet automne. D'ici là je vous encourage fortement à installer la version
9.0beta, à tester le Hot Standby par vous même et à remonter les
éventuels bugs rencontrés&lt;/p&gt;</content>
		<author>
			<name>Damien Clochard</name>
			<uri>http://blog.taadeem.net/index.php</uri>
		</author>
		<source>
			<title type="html">Taa Deem ! - planete-pgfr</title>
			<link rel="self" href="http://blog.taadeem.net/index.php?feed/tag/planete-pgfr/rss2"/>
			<id>http://blog.taadeem.net/index.php?feed/tag/planete-pgfr/rss2</id>
			<updated>2010-09-02T20:17:11+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 11 juillet 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/07/18/Nouvelles-hebdomadaires-de-PostgreSQL-11-juillet-2010"/>
		<id>urn:md5:228ce8974efb36a743de3462ed78acda</id>
		<updated>2010-07-18T00:18:19+00:00</updated>
		<content type="html">&lt;p&gt;PostgreSQL 9.0 beta 3 sera bient&amp;ocirc;t disponible [ndt: &lt;a href=&quot;http://blog.postgresql.fr/index.php?post/2010/07/13/Sortie-de-la-verion-beta-3-de-PostgreSQL-9.0&quot;&gt;article d&amp;eacute;di&amp;eacute;&lt;/a&gt;].Pr&amp;eacute;parez-vous &amp;agrave; tester&amp;nbsp;! 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/developer/beta&quot;&gt;http://www.postgresql.org/developer/beta&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Rassemblement PostgreSQL/PostGIS le 14 juillet 2010 &amp;agrave; 18h, &amp;agrave; Zurich (Suisse) au bOm kultur caf&amp;eacute; &amp;amp; bar &amp;agrave; l'ETH [ndt: institut f&amp;eacute;d&amp;eacute;ral technologique] Zurich. Informations et inscriptions (informelles)&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.gis.hsr.ch/wiki/Agenda&quot;&gt;http://www.gis.hsr.ch/wiki/Agenda&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Reuven Lerner donnera un cours de 5 jours sur PostgreSQL du 1er au 5 ao&amp;ucirc;t au &quot;Hi-Tech College&quot; de Herzliya (Isra&amp;euml;l)&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.hi-tech.co.il/college/default.asp?PageID=12&amp;CourseNum=4288&quot;&gt;http://www.hi-tech.co.il/college/default.asp?PageID=12&amp;amp;CourseNum=4288&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les nouveaut&amp;eacute;s des produits d&amp;eacute;riv&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Benetl 3.5, un ETL pour fichiers utilisant PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.benetl.net&quot;&gt;http://www.benetl.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;DataArchitect 4.2, un outil de dessin de diagramme relationnel et d'ing&amp;eacute;nierie inverse compatible PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.thekompany.com/products/dataarchitect/&quot;&gt;http://www.thekompany.com/products/dataarchitect/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PostgreSQL Maestro 10.7, un outil d'administration graphique pour PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.sqlmaestro.com/products/postgresql/maestro/&quot;&gt;http://www.sqlmaestro.com/products/postgresql/maestro/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Muldis-D 0.130.0, une sp&amp;eacute;cification pour un langage objet-relationnel pr&amp;eacute;vu pour utiliser, entre autres syst&amp;egrave;mes, PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://muldis.com/Muldis_D.html&quot;&gt;http://muldis.com/Muldis_D.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;RHQ 3.0.0, une application de gestion et de surveillance&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://rhq-project.org/&quot;&gt;http://rhq-project.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en juillet&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-07/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-07/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le PDXPUG Day est programm&amp;eacute; pour le 18 juillet 2010 &amp;agrave; &quot;l'Oregon Convention Center&quot; &amp;agrave; Portland. D'avantage d'informations&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://wiki.postgresql.org/wiki/PDXPUGDay2010&quot;&gt;http://wiki.postgresql.org/wiki/PDXPUGDay2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'OSCON aura lieu &amp;agrave; Portland (Oregon) du 19 au 23 juillet 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.oscon.com/oscon2010&quot;&gt;http://www.oscon.com/oscon2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;La FrOSCon 2010 aura lieu &amp;agrave; St. Augustin, Allemagne les 21 &amp;amp; 22 ao&amp;ucirc;t 2010. Le PUG allemand a obtenu sa propre salle de dev. et est &amp;agrave; la recherche de conf&amp;eacute;renciers. Plus de d&amp;eacute;tails&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html&quot;&gt;http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100711&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Revues&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;KaiGai Kohei reviewed Robert Haas's patch to add get_whatever_oid functionality.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tom Lane a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improve pg_dump's checkSeek() function to verify the functioning of ftello as well as fseeko, and to not assume that fseeko(fp, 0, SEEK_CUR) proves anything. Also improve some related comments. Per my observation that the SEEK_CUR test didn't actually work on some platforms, and subsequent discussion with Robert Haas. Back-patch to 8.4. In earlier releases it's not that important whether we get the hasSeek test right, but with parallel restore it matters.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, add compatibility note warning that plpgsql is now stricter about the column datatypes of composite results, per gripe from Marcel Asio. Some desultory copy-editing of plpgsql-related sections of the release notes.&lt;/li&gt;
&lt;li&gt;Get rid of some more stuff in pg_upgrade that duplicates c.h or port.h.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/datatype.sgml, fix assorted misstatements and poor wording in the descriptions of the I/O formats for geometric types. Per bug #5536 from Jon Strait, and my own testing. Back-patch to all supported branches, since this doco has been wrong right along -- we certainly haven't changed the I/O behavior of these types in many years.&lt;/li&gt;
&lt;li&gt;Replace max_standby_delay with two parameters, max_standby_archive_delay and max_standby_streaming_delay, and revise the implementation to avoid assuming that timestamps found in WAL records can meaningfully be compared to clock time on the standby server. Instead, the delay limits are compared to the elapsed time since we last obtained a new WAL segment from archive or since we were last &quot;caught up&quot; to WAL data arriving via streaming replication. This avoids problems with clock skew between primary and standby, as well as other corner cases that the original coding would misbehave in, such as the primary server having significant idle time between transactions. Per my complaint some time ago and considerable ensuing discussion. Do some desultory editing on the hot standby documentation, too.&lt;/li&gt;
&lt;li&gt;Make vacuum_defer_cleanup_age be PGC_SIGHUP level, since it's not sensible to have different values in different processes of the primary server. Also put it into the &quot;Streaming Replication&quot; GUC category; it doesn't belong in &quot;Standby Servers&quot; because you use it on the master not the standby. In passing also correct guc.c's idea of wal_keep_segments' category.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xlog.c, don't set recoveryLastXTime when replaying a checkpoint --- that was a bogus idea from the start since the variable is only meant to track commit/abort events. This patch reverts the logic around the variable to what it was in 8.4, except that the value is now kept in shared memory rather than a static variable, so that it can be reported correctly by CreateRestartPoint (which is executed in the bgwriter).&lt;/li&gt;
&lt;li&gt;Split the LDFLAGS make variable into two parts: LDFLAGS is now used for linking both executables and shared libraries, and we add on LDFLAGS_EX when linking executables or LDFLAGS_SL when linking shared libraries. This provides a significantly cleaner way of dealing with link-time switches than the former behavior. Also, make sure that the various platform-specific %.so: %.o rules incorporate LDFLAGS and LDFLAGS_SL; most of them missed that before. (I did not add these variables for the platforms that invoke $(LD) directly, however. It's not clear if we can do that safely, since for the most part we assume these variables use CC command-line syntax.) Per gripe from Aaron Swenson and subsequent investigation.&lt;/li&gt;
&lt;li&gt;Fix a few single-file (MODULES, not MODULE_big) contrib makefiles that were supposing that they should set SHLIB_LINK rather than LDFLAGS_SL. Since these don't go through Makefile.shlib that was a no-op on most platforms. Also regularize the few platform-specific Makefiles that did pay attention to SHLIB_LINK: it seems that the real value of that is to pull in BE_DLLLIBS, so do that instead. Per buildfarm failures on cygwin.&lt;/li&gt;
&lt;li&gt;In pgsql/src/makefiles/pgxs.mk, make sure LDFLAGS come before LIBS when linking contrib programs. Solaris, at least, seems to be sensitive to the relative order of -L and -l switches, so this is needed. Per buildfarm results.&lt;/li&gt;
&lt;li&gt;In pgsql/src/makefiles/pgxs.mk, dept. of third thoughts: PG_LIBS may contain a -L switch, so it had better stay in front of LDFLAGS.&lt;/li&gt;
&lt;li&gt;In pgsql/src/makefiles/Makefile.aix, allow for LDFLAGS_SL already having a value in Makefile.aix. Per buildfarm results.&lt;/li&gt;
&lt;li&gt;In pgsql/src/Makefile.shlib, still more third thoughts: when linking shared libraries, LDFLAGS probably needs to appear before anything placed in SHLIB_LINK. This is because SHLIB_LINK is typically a subset of LIBS, and LIBS has to appear after LDFLAGS on platforms that are sensitive to the relative order of -L and -l switches.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/mb/mbutils.c, undo pgindent breakage (again). Per buildfarm.&lt;/li&gt;
&lt;li&gt;In pgsql/src/Makefile.global.in, accept slightly grotty coding in Makefile.global in order to keep the -L flag for src/port/ in front of any -L flags placed in LDFLAGS by configure. This undoes an L-flag-ordering change that I had thought would be safe, but seems to be making at least one buildfarm member fail --- the only theory for orca's failure that I can think of is that it's got an old copy of libpgport.a in /usr/lib. Also allow for LDFLAGS_SL to be set by contrib makefiles before they invoke Makefile.global.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/mb/mbutils.c, adjust mbutils.c so it won't get broken by future pgindent runs. To do that, replace L'\0' by (WCHAR) 0. Perhaps someday we should teach pgindent about wide-character literals, but so long as this is the only use-case in the entire Postgres sources, a workaround seems easier.&lt;/li&gt;
&lt;li&gt;Fix &quot;cannot handle unplanned sub-select&quot; error that can occur when a sub-select contains a join alias reference that expands into an expression containing another sub-select. Per yesterday's report from Merlin Moncure and subsequent off-list investigation. Back-patch to 7.4. Older versions didn't attempt to flatten sub-selects in ways that would trigger this problem.&lt;/li&gt;
&lt;li&gt;Fix variant float8 expected files to have exactly the expected spacing. This wasn't important when we used diff's -w (--ignore-all-space) option to compare regression result files, but it is now. Per buildfarm member canary, which evidently has been offline since we did that in November, but came to life again today.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xlogutils.c, update obsolete comment. Noted by Josh Tolley.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/create_operator.sgml, add a cross-reference to precedence information to CREATE OPERATOR's documentation. Per suggestion from Marc Cousin.&lt;/li&gt;
&lt;li&gt;In pgsql/src/pl/plpython/plpython.c, minor kibitzing on previous patch from Peter Eisentraut which guards against using PL/PythonU2 and PL/PythonU3 in the same session: no need to run check more than once. (_PG_init should be called only once anyway, but as long as it's got an internal guard against repeat calls, that should be in front of the version check.)&lt;/li&gt;
&lt;li&gt;Stamp HEAD as 9.1devel. (And there was much rejoicing.)&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/adt/ruleutils.c, fix ruleutils' get_variable() to print something useful for Vars referencing resjunk outputs of subquery tlists, instead of throwing an error. Per bug #5548 from Daniel Grace. We might at some point find we ought to back-patch this further than 9.0, but I think that such Vars can only occur as resjunk members of upper-level tlists, in which case the problem can't arise because prior versions didn't print resjunk tlist items in EXPLAIN VERBOSE.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/cache/lsyscache.c, avoid an Assert failure in deconstruct_array() by making get_attstatsslot() use the actual element type of the array it's disassembling, rather than trusting the type OID passed in by its caller. This is needed because sometimes the planner passes in a type OID that's only binary-compatible with the target column's type, rather than being an exact match. Per an example from Bernd Helmle. Possibly we should refactor get_attstatsslot/free_attstatsslot to not expect the caller to supply type ID data at all, but for now I'll just do the minimum-change fix. Back-patch to 7.4. Bernd's test case only crashes back to 8.0, but since these subroutines are the same in 7.4, I suspect there may be variant cases that would crash 7.4 as well.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/sources.sgml, add a note about preferred window width to the section about code formatting conventions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bruce Momjian a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/high-availability.sgml, remove tab from SGML.&lt;/li&gt;
&lt;li&gt;Add new Non-Durable Settings documentation section. Document that synchronous_commit can lose transactions in a db crash, not just a OS crash.&lt;/li&gt;
&lt;li&gt;Fix doc double-wording in non-durable patch. Report from Thom Brown.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xact.c, add C comment about why synchronous_commit=off behavior can lose committed transactions in a postmaster crash.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/config.sgml, document that shared_preload_libraries and local_preload_libraries lowercase the library names, unless double-quoted.&lt;/li&gt;
&lt;li&gt;In documentation, use &quot;lower case&quot;/&quot;upper case&quot; consistently (use space between words).&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/config.sgml, document that /bin/true on Windows is implemented by 'REM'.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, update 9.0 release notes so streaming replication and hot standby is not assumed to require continuous archiving. Per report from Fujii Masao.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/pg_upgrade.h, remove port.h prototypes from pg_upgrade.h, per report from Robert Haas.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/commands/tablespace.c, issue 'mkdir' hint when replying CREATE TABLESPACE in recovery mode. Per idea from Fujii Masao.&lt;/li&gt;
&lt;li&gt;Add CVS tags to pg_upgrade and pg_upgrade_support files, per request from Tom Lane.&lt;/li&gt;
&lt;li&gt;Add copyrights to pg_upgrade and pg_upgrade_tools files, per Tom Lane.&lt;/li&gt;
&lt;li&gt;Make pg_upgrade copyrights just 2010, not 2010-2010.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/func.sgml, document more clearly on XML namespaces inside xpath function. Nikolay Samokhvalov.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/config.sgml, remove SGML tab.&lt;/li&gt;
&lt;li&gt;In pgsql/src/tools/fsync/test_fsync.c, report test_fynsc times in tests per second, instead of total seconds.&lt;/li&gt;
&lt;li&gt;In pgsql/src/tools/fsync/test_fsync.c, simplify test_fsync duration computation.&lt;/li&gt;
&lt;li&gt;Update pgindent testing instructions.&lt;/li&gt;
&lt;li&gt;pgindent run for 9.0, second run.&lt;/li&gt;
&lt;li&gt;In pgsql/src/tools/pgindent/README, mention why one C file fails pgindent.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/wal.sgml, document the interaction of write-barrier-enabled file systems, and BBU caches, per June email thread.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/wal.sgml, doc change: effected -&amp;gt; affected, per correction from Matthew Wakeling.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, update release notes for 9.0 beta 3.&lt;/li&gt;
&lt;li&gt;Properly report errno/out-of-disk-space error from pg_upgrade when in copy mode, per report from depstein@alliedtesting.com. Patch suggestion from Magnus. Backpatch to 9.0.X.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Peter Eisentraut a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/sources.sgml, add guidelines for formatting errcontext strings&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/datatype.sgml, add note clarifying that XML fragments don't accept DTDs, per complaint from Craig Ringer.&lt;/li&gt;
&lt;li&gt;Use different function names for plpython3 handlers, to avoid clashes in pg_pltemplate. This should have a catversion bump, but it's still being debated whether it's worth it during beta.&lt;/li&gt;
&lt;li&gt;Message tuning.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/plpython.sgml, add note that using PL/Python 2 and 3 in the same session will probably crash.&lt;/li&gt;
&lt;li&gt;Install safeguard against running PL/Python 2 and 3 in the same session.&lt;/li&gt;
&lt;li&gt;Translation updates for 9.0beta3.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/plperl.sgml, some small changes: wrapped long code-lines for pdf, fix typo. Erik Rijkers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xlog.c, emode_for_corrupt_record shouldn't reduce LOG messages to WARNING. In non-interactive sessions, WARNING sorts below LOG.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/commands/tablecmds.c, allow ALTER TABLE .. SET TABLESPACE to be interrupted. Backpatch to 8.0, where tablespaces were introduced. Guillaume Lelarge&lt;/li&gt;
&lt;li&gt;In pgsql/src/port/copydir.c, allow copydir() to be interrupted. This makes ALTER DATABASE .. SET TABLESPACE and CREATE DATABASE more sensitive to interrupts. Backpatch to 8.4, where ALTER DATABASE .. SET TABLESPACE was introduced. We could go back further, but in the absence of complaints about the CREATE DATABASE case it doesn't seem worth it. Guillaume Lelarge, with a small correction by me.&lt;/li&gt;
&lt;li&gt;Move copydir.c from src/port to src/backend/storage/file. The previous commit to make copydir() interruptible prevented postgres.exe from linking on MinGW and Cygwin, because on those platforms libpgport_srv.a can't freely reference symbols defined by the backend. Since that code is already backend-specific anyway, just move the whole file into the backend rather than adding further kludges to deal with the symbols needed by CHECK_FOR_INTERRUPTS(). This probably needs some further cleanup, but this commit just moves the file as-is, which should hopefully be enough to turn the buildfarm green again.&lt;/li&gt;
&lt;li&gt;Remove hstore % text[] operator; use slice() function instead. David Wheeler, with one small correction by me.&lt;/li&gt;
&lt;li&gt;Additional cross-references to window functions documentation. Erik Rijkers.&lt;/li&gt;
&lt;li&gt;Allow REASSIGNED OWNED to handle opclasses and opfamilies. Backpatch to 8.3, which is as far back as we have opfamilies. The opclass portion could probably be backpatched to 8.2, when REASSIGN OWNED was added, but for now I have not done that. Asko Tiidumaa, with minor adjustments by me.&lt;/li&gt;
&lt;li&gt;Support setting the keepalive idle time on MacOS X. MacOS X uses TCP_KEEPALIVE rather than TCP_KEEPIDLE for this purpose. Thanks to Fujii Masao for the review.&lt;/li&gt;
&lt;li&gt;Make log_temp_files based on kB, and revert docs &amp;amp; comments to match. Per extensive discussion on pgsql-hackers. We are deliberately not back-patching this even though the behavior of 8.3 and 8.4 is unquestionably broken, for fear of breaking existing users of this parameter. This incompatibility should be release-noted.&lt;/li&gt;
&lt;li&gt;Add a hook in ExecCheckRTPerms(). This hook allows a loadable module to gain control when table permissions are checked. It is expected to be used by an eventual SE-PostgreSQL implementation, but there are other possible applications as well. A sample contrib module can be found in the archives at: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-hackers/2010-05/msg01095.php&quot;&gt;http://archives.postgresql.org/pgsql-hackers/2010-05/msg01095.php&lt;/a&gt; Robert Haas and Stephen Frost.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/psql-ref.sgml, clarify that &quot;psql -c&quot; ignores psqlrc files. Tim Landscheidt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Andrew Dunstan a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, correct missing/misspelled surname.&lt;/li&gt;
&lt;li&gt;In pgsql/src/tools/msvc/Mkvcbuild.pm, unbreak MSVC builds by removing copydir.c from list of libpgport files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Heikki Linnakangas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;stringToNode() and deparse_expression_pretty() crash on invalid input, but we have nevertheless exposed them to users via pg_get_expr(). It would be too much maintenance effort to rigorously check the input, so put a hack in place instead to restrict pg_get_expr() so that the argument must come from one of the system catalog columns known to contain valid expressions. Per report from Rushabh Lathia. Backpatch to 7.4 which is the oldest supported version at the moment.&lt;/li&gt;
&lt;li&gt;The previous fix in CVS HEAD and 8.4 for handling the case where a cursor being used in a PL/pgSQL FOR loop is closed was inadequate, as Tom Lane pointed out. The bug affects FOR statement variants too, because you can close an implicitly created cursor too by guessing the &quot;&amp;lt;unnamed portal X&amp;gt;&quot; name created for it. To fix that, &quot;pin&quot; the portal to prevent it from being dropped while it's being used in a PL/pgSQL FOR loop. Backpatch all the way to 7.4 which is the oldest supported version.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Magnus Hagander a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add support for TCP keepalives on Windows, both for backend and the new libpq support.&lt;/li&gt;
&lt;li&gt;Make the Windows tcp keepalive support depend on the existance of the SIO_KEEPALIVE_VALS define instead of just WIN32, since MingW doesn't support this API (yet?).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Marc Fournier a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tag beta3&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de d&amp;eacute;ception cette semaine&amp;nbsp;:-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Robert Haas sent in another revision of the patch to suppress automatic recovery after backend crash. This is for a volatile caching version of PostgreSQL.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in another revision of the patch to add get_whatever_oid functionality.&lt;/li&gt;
&lt;li&gt;Magnus Hagander sent in two revisions of a patch to fix keepalives on Win32.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to implmenet a warning message in pg_standby.&lt;/li&gt;
&lt;li&gt;Mike Fowler sent in another revision of the xpath_exists patch.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in another revision of the patch to allow server authentication over Unix-domain sockets.&lt;/li&gt;
&lt;li&gt;Mike Fowler sent in another revision of patch to add XMLEXISTS to the grammar.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in two revisions of a patch to fix keepalives on OSX.&lt;/li&gt;
&lt;li&gt;Bruce Momjian sent in a patch to show a hint only in recovery after a crash of Hot Standby/Streaming Replication.&lt;/li&gt;
&lt;li&gt;Fujii Masao sent in an updated patch to fix the docs re: checkpoint_segments and keep_wal_segments for Hot Standby/Streaming Replication.&lt;/li&gt;
&lt;li&gt;Martin Pihlak sent in two revisions of a patch to add a GUC log_file_mode which allows specifying the creation mode for log files. This would enable, for example, permitting readers other than the system PostgreSQL user to read the log files PostgreSQL generates.&lt;/li&gt;
&lt;li&gt;Teodor Sigaev sent in a patch to implement more accurate cost estimation function for GIN index scans.&lt;/li&gt;
&lt;li&gt;Markus Shiltknecht sent in a patch to add a lock-based dynamic shared memory allocator, which lets components delay memory allocation rather than allocate all needed memory in advance.&lt;/li&gt;
&lt;li&gt;Pavel Stehule sent in a patch to add parameters to DO statements.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in three more revisions of a patch to implement get_whatever_oid, a refactoring which to a large extent centralizes get_*_oid logic.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to fix log_temp_files docs and comments to say kilobytes rather than bytes.&lt;/li&gt;
&lt;li&gt;Greg Smith sent in another revision of the patch to make pgbench more 64-bit-clean.&lt;/li&gt;
&lt;li&gt;ITAGAKI Takahiro sent in another revision of the patch to help make CLUSTER behave better.&lt;/li&gt;
&lt;li&gt;Mike Fowler sent in two more revisions of a patch to add an xml_is_well_formed function.&lt;/li&gt;
&lt;li&gt;Rajanikant Chirmade sent in a patch to make downcase_truncate_identifier() multibyte-character-aware.&lt;/li&gt;
&lt;li&gt;Pavel Stehule sent in two more revisions of the string functions for 9.1.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in another revision of the patch to include the backend ID in relpath of temp rels.&lt;/li&gt;
&lt;li&gt;Pavel Baros sent in another revision of the patch to add materialized views.&lt;/li&gt;
&lt;li&gt;Kevin Grittner sent in another revision of the patch to implement predicate locking, in part a prerequisite for better serialization.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to slim down the representation of numerics by about two bytes.&lt;/li&gt;
&lt;li&gt;Zhai Boxuan sent in a patch to implement a MERGE command.&lt;/li&gt;
&lt;li&gt;Erik Rijkers sent in a patch to fix the contrib makefile to include the stringfunc patch.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">GIT, cette nouvelle mode</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/07/15/GIT%2C-cette-nouvelle-mode"/>
		<id>urn:md5:a9b60f6e56880b30de60d1052c365938</id>
		<updated>2010-07-15T21:09:00+00:00</updated>
		<content type="html">&lt;p&gt;Donc &lt;a href=&quot;http://www.postgresql.org&quot; hreflang=&quot;en&quot;&gt;PostgreSQL&lt;/a&gt; passe à git mi-août. Du coup, un peu tout le monde y passe. &lt;a href=&quot;http://www.pgadmin.org&quot; hreflang=&quot;en&quot;&gt;pgAdmin&lt;/a&gt; commence son passage ce soir (avec le &lt;a href=&quot;http://git.postgresql.org/gitweb?p=pgagent.git;a=summary&quot; hreflang=&quot;en&quot;&gt;dépôt pgagent&lt;/a&gt; par exemple). &lt;a href=&quot;http://slony.info/&quot; hreflang=&quot;en&quot;&gt;Slony&lt;/a&gt; se pose officiellement la question. Quant aux dépôts de PostgreSQLfr, ils y sont passés depuis un mois en gros.&lt;/p&gt;


&lt;p&gt;Je trouve ça plutôt bien. Ça uniformise les dépôts sur un système véritablement excellent. Pour une fois qu'on uniformise vers le haut, on ne va pas se plaindre &lt;img src=&quot;http://blog.guillaume.lelarge.info/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Manuel 9.0 beta 3 disponible</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/07/15/Manuel-9.0-beta-3-disponible"/>
		<id>urn:md5:39aa5b64041b529fc46cec6b36343f8d</id>
		<updated>2010-07-15T11:27:00+00:00</updated>
		<content type="html">&lt;p&gt;Et non, pas de vacances pour moi pour l'instant. Les deux semaines d'inactivité sur ce blog ont une raison : la mise à jour de la traduction du manuel en beta3, mais aussi et surtout du travail sur pgAdmin (dont je parlerais plus tard, certainement en fin de semaine).&lt;/p&gt;


&lt;p&gt;Bref. Tout ça pour dire que la traduction française du manuel de PostgreSQL 9.0 beta 3 est disponible. Normalement, tout est traduit. Peut-être mal, il va falloir que je fasse une passe importante de relecture. En attendant, un &lt;a href=&quot;http://docs.postgresql.fr/9.0/&quot; hreflang=&quot;fr&quot;&gt;lien pour consulter la doc en ligne&lt;/a&gt; et un &lt;a href=&quot;http://docs.postgresql.fr/9.0/pg90.pdf&quot; hreflang=&quot;fr&quot;&gt;lien pour récupérer le PDF&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Merci de me rapporter tout soucis constaté dans la traduction.&lt;/p&gt;


&lt;p&gt;Update: correction du lien vers le PDF. Merci à &amp;quot;Fly&amp;quot;.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Sortie de la verion beta 3 de PostgreSQL 9.0</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/07/13/Sortie-de-la-verion-beta-3-de-PostgreSQL-9.0"/>
		<id>urn:md5:e04ea2674d51729f6a4e4f831c7c961c</id>
		<updated>2010-07-13T07:18:34+00:00</updated>
		<content type="html">&lt;p&gt;La 3ème version beta de PostgreSQL 9.0 est désormais disponible. Cette version contient de nombreuses corrections et plusieurs changements par rapport à la Beta 2, notamment un dépoussiérage final de la Streaming Replication et du Hot Standby. N'hésitez pas à télécharger, installer et tester cette version pour aider les développeurs à avancer vers la version finale. Plusieurs changement significatifs ont été introduit dans la Beta3, ce qui implique que certaines fonctionnalités doivent être re-testées, notamment&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;   *  Corrections du hot standby
   *  Correction de la gestion des tableaux en plpython
   *  Plusieurs corrections pour dblink
   *  Support du TCP keepalive dans libpq
   *  Correction du comportement de checkSeek() sur les platformes anciennes&lt;/pre&gt;


&lt;p&gt;Notez que suite à un changement du catalogue système, un initdb et un reload sont nécessaires pour mettre à jour depuis la version 9.0Beta1. C'est une belle opportunité pour tester pg_upgrade à partir de la version Beta2 ou antérieure.&lt;/p&gt;


&lt;p&gt;Si vous avez la possibilité de réaliser des tests, rendez-vous sur&lt;a href=&quot;http://www.postgresql.org/developer/beta&quot; hreflang=&quot;en&quot;&gt; la page dédiée aux tests de la version beta&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Nous rappelons que les versions beta ne sont pas stables et qu'elles ne doivent pas être utilisées en production. Elles sont uniquement destinées aux tests. D'autres versions beta et des versions candidates seront produites dans les semaines à venir…&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;L'annonce officielle&amp;nbsp;: &lt;a href=&quot;http://www.postgresql.org/about/news.1220&quot; hreflang=&quot;en&quot;&gt;http://www.postgresql.org/about/news.1220&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lien de téléchargement&amp;nbsp;: &lt;a href=&quot;http://www.postgresql.org/ftp/source/v9.0beta3/&quot; hreflang=&quot;en&quot;&gt;http://www.postgresql.org/ftp/source/v9.0beta3/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>daamien</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Comment un problème constaté chez un client peut se transformer en un nouveau patch pour PostgreSQL</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/07/03/Comment-un-probl%C3%A8me-constat%C3%A9-chez-un-client-peut-se-transformer-en-un-nouveau-patch-pour-PostgreSQL"/>
		<id>urn:md5:7efeba317cd06eb9b075c01aacc5e0a4</id>
		<updated>2010-07-03T09:45:00+00:00</updated>
		<content type="html">&lt;p&gt;Mardi dernier, un client en support &lt;a href=&quot;http://www.dalibo.com&quot; hreflang=&quot;fr&quot;&gt;nous&lt;/a&gt; appelle à cause d'un problème d'espace disque. Il est en version 8.2. Il dispose de place libre sur d'autres partitions. Rien de plus simple. Il suffit de créer un tablespace sur une des partitions où il reste suffisamment d'espace et d'y déplacer quelques objets pour faire de la place sur le répertoire principal des données. Tout se passe bien : création du répertoire, ajout du tablespace (avec &lt;a href=&quot;http://docs.postgresql.fr/current/sql-createtablespace.html&quot; hreflang=&quot;fr&quot;&gt;CREATE TABLESPACE&lt;/a&gt;), choix de la table à déplacer, et déplacement de la table (avec un &lt;a href=&quot;http://docs.postgresql.fr/current/sql-altertable.html&quot; hreflang=&quot;fr&quot;&gt;ALTER TABLE&lt;/a&gt;). Malheureusement, l'opération prends du temps, beaucoup de temps. Et les performances du serveur ont commencé à en pâtir. Le client a voulu interrompre l'opération, quitte à la reprendre plus tard. Pas de soucis, un simple Ctrl-C doit suffire. Et bien non, Ctrl-C et pg_cancel_backend() nous indiquaient bien que la demande d'annulation avait été envoyée mais les opérations sur le disque continuaient et psql ne nous rendait pas la main. Nous avons donc été forcés d'attendre la fin de l'opération.&lt;/p&gt;


&lt;p&gt;Pendant ce temps, j'ai commencé à tester sur mon portable et a fouillé dans le code. Et j'ai fini par me rendre compte que rien ne permettait une prise en compte du signal pendant la copie. Autrement dit, vous lancez un changement de tablespace pour la table X de 50 Go, vous essayez de l'annuler au tout début, il vous faudra quand même attendre la fin de la copie des 50 Go pour que votre demande d'annulation soit prise en compte. Très dommageable. Il faut corriger ça. Tout le code se trouve dans la fonction &lt;code&gt;copy_relation_data&lt;/code&gt; du fichier &lt;code&gt;src/backend/commands/tablecmds.c&lt;/code&gt;. Une boucle s'occupe de la copie :&lt;/p&gt;


&lt;pre&gt; for (blkno = 0; blkno &amp;lt; nblocks; blkno++)
 {    
     smgrread(src, forkNum, blkno, buf);
 
     /* XLOG stuff */
     if (use_wal)
         log_newpage(&amp;amp;dst-&amp;gt;smgr_rnode, forkNum, blkno, page);
 
     /*   
      * Now write the page.  We say isTemp = true even if it's not a temp
      * rel, because there's no need for smgr to schedule an fsync for this
      * write; we'll do it ourselves below.
      */
     smgrextend(dst, forkNum, blkno, buf, true);
 }&lt;/pre&gt;


&lt;p&gt;Autrement dit, on lit chaque bloc du fichier source, que l'on copie dans le fichier destination. Une bête copie bloc par bloc, avec aucun moyen de l'interrompre.&lt;/p&gt;


&lt;p&gt;De mes lectures dans &lt;a href=&quot;http://archives.postgresql.org/pgsql-hackers/&quot; hreflang=&quot;en&quot;&gt;pgsql-hackers&lt;/a&gt;, je me rappelais qu'il existe une fonction appelée CHECK_FOR_INTERRUPTS faisant exactement le travail dont j'avais besoin. J'ai donc uniquement ajouté un appel à cette fonction au début de la boucle, ce qui donne au final :&lt;/p&gt;


&lt;pre&gt; for (blkno = 0; blkno &amp;lt; nblocks; blkno++)
 {    
     /* If we got a cancel signal during the copy of the data, quit */
     CHECK_FOR_INTERRUPTS();
    
     smgrread(src, forkNum, blkno, buf);
     
     /* XLOG stuff */
     if (use_wal)
         log_newpage(&amp;amp;dst-&amp;gt;smgr_rnode, forkNum, blkno, page);
   
     /*   
      * Now write the page.  We say isTemp = true even if it's not a temp
      * rel, because there's no need for smgr to schedule an fsync for this
      * write; we'll do it ourselves below.
      */
     smgrextend(dst, forkNum, blkno, buf, true);
 }&lt;/pre&gt;


&lt;p&gt;Une compilation et quelques tests après, je me suis aperçu que tout fonctionnait comme je le souhaitais. L'annulation se fait exactement au moment où je la demande.&lt;/p&gt;


&lt;p&gt;J'ai corrigé aussi le déplacement d'une base de données. Le patch terminé, je l'ai envoyé sur pgsql-hackers pour qu'il puisse être testé, relu et enfin commité. Je l'ai même &lt;a href=&quot;https://commitfest.postgresql.org/action/patch_view?id=331&quot; hreflang=&quot;en&quot;&gt;saisi sur le site commitfest&lt;/a&gt;. Robert Haas s'en est occupé et l'a finalement commité vendredi sur toutes les versions, de la 8.0 (version à laquelle les tablespaces ont été ajoutées) à la future 9.0.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 27 juin 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/07/02/Nouvelles-hebdomadaires-de-PostgreSQL-27-juin-2010"/>
		<id>urn:md5:abb35a5dfb22b0ff75494218045f5b23</id>
		<updated>2010-07-01T23:31:05+00:00</updated>
		<content type="html">&lt;p&gt;PostgreSQL est &amp;agrave; la recherche de citations/t&amp;eacute;moignages pour la publication de la version 9.0. Si vous attendez avec impatience une ou plusieurs des fonctionnalit&amp;eacute;s de la 9.0, et que vous repr&amp;eacute;sentez une entreprise ou une organisation gouvernementale ou non, envoyez-nous s'il vous plait votre participation &amp;agrave; josh@postgresql.org.&lt;/p&gt;
&lt;p&gt;PGXN, le &quot;PostgreSQL Extension Network&quot;, inspir&amp;eacute; du CPAN, a &amp;eacute;t&amp;eacute; lanc&amp;eacute;&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.pgxn.org/&quot;&gt;http://www.pgxn.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les nouveaut&amp;eacute;s des produits d&amp;eacute;riv&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Slony-I 2.0.4, un syst&amp;egrave;me de r&amp;eacute;plication-en-cascade-ma&amp;icirc;tre-&amp;agrave;-multiples-esclaves pour PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.slony.info/&quot;&gt;http://www.slony.info/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Benetl 3.5, un outil d'ETL pour PostgreSQL, sp&amp;eacute;cialis&amp;eacute; dans les fichiers&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.benetl.net&quot;&gt;http://www.benetl.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Muldis-D 0.130.0, une sp&amp;eacute;cification pour un langage objet-relationnel pr&amp;eacute;vu pour utiliser, entre autres syst&amp;egrave;mes, PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://muldis.com/Muldis_D.html&quot;&gt;http://muldis.com/Muldis_D.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en juin&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-06/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-06/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CHAR(10), la conf&amp;eacute;rence PostgreSQL d&amp;eacute;di&amp;eacute;e au clustering, &amp;agrave; la haute-disponibilit&amp;eacute; et &amp;agrave; la r&amp;eacute;plication vient d'ouvrir les inscriptions en ligne et les r&amp;eacute;servations. 2 &amp;amp; 3 juillet 2010, Oriel College, Universit&amp;eacute; d'Oxford (Royaume-Uni)&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.char10.org/&quot;&gt;http://www.char10.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Le PDXPUG Day est programm&amp;eacute; pour le 18 juillet 2010 &amp;agrave; &quot;l'Oregon Convention Center&quot; &amp;agrave; Portland. D'avantage d'informations&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://wiki.postgresql.org/wiki/PDXPUGDay2010&quot;&gt;http://wiki.postgresql.org/wiki/PDXPUGDay2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'OSCON aura lieu &amp;agrave; Portland (Oregon) du 19 au 23 juillet 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.oscon.com/oscon2010&quot;&gt;http://www.oscon.com/oscon2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;La FrOSCon 2010 aura lieu &amp;agrave; St. Augustin, Allemagne les 21 &amp;amp; 22 ao&amp;ucirc;t 2010. Le PUG allemand a obtenu sa propre salle de dev. et est &amp;agrave; la recherche de conf&amp;eacute;renciers. Plus de d&amp;eacute;tails&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html&quot;&gt;http://andreas.scherbaum.la/blog/archives/711-FrOSCon-2010-PostgreSQL-devroom-Call-for-papers.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100627&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Heikki Linnakangas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/pl/plpgsql/src/pl_exec.c, in a PL/pgSQL &quot;FOR cursor&quot; statement, the statements executed in the loop might close the cursor, rendering the Portal pointer to it invalid. Closing the cursor in the middle of the loop is not a very sensible thing to do, but we must handle it gracefully and throw an error instead of crashing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Minor markup improvements for Hot Standby documentation.&lt;/li&gt;
&lt;li&gt;Deprecate the use of =&amp;gt; as an operator name. In HEAD, emit a warning when an operator named =&amp;gt; is defined. In both HEAD and the backbranches (except in 8.2, where contrib modules do not have documentation), document that hstore's text =&amp;gt; text operator may be removed in a future release, and encourage the use of the hstore(text, text) function instead. This function only exists in HEAD (previously, it was called tconvert), so backpatch it back to 8.2, when hstore was added. Per discussion.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/hstore/expected/hstore.out, updated expected-output file for hstore. This is an oversight in my previous patch to deprecate =&amp;gt; as an operator name. Per buildfarm.&lt;/li&gt;
&lt;li&gt;Add TCP keepalive support to libpq. This adds four additional connection parameters to libpq: keepalives, keepalives_idle, keepalives_count, and keepalives_interval. keepalives default to on, per discussion, but can be turned off by specifying keepalives=0. The remaining parameters, where supported, can be used to adjust how often keepalives are sent and how many can be lost before the connection is broken. The immediate motivation for this patch is to make sure that walreceiver will eventually notice if the master reboots without closing the connection cleanly, but it should be helpful in other cases as well. Tollef Fog Heen, Fujii Masao, and me.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/postmaster/postmaster.c, add stray &quot;else&quot; that seems to have gone missing.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, further 9.0 release notes updates. Josh Berkus.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/high-availability.sgml, some copy-editing of the Hot Standby documentation. Thanks to Joshua Tolley for the review.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/installation.sgml, make AIX suggestions about disabling ipv6 more version-sensitive. Chris Browne, based on a report from John Pierce.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/libpq.sgml, rewrite docs for new libpq keepalive parameters. The revised documentation makes it more clear that these are client-side parameters, rather than server side parameters. It also puts the main point of each parameter first, and consolidates the conditions under which it might be ignored in a single list at the end.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bruce Momjian a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml, update pg_ctl docs to explain server output behavior differences on win32 and non-win32 platforms.&lt;/li&gt;
&lt;li&gt;Fix pg_upgrade's use of pg_ctl on Win32 to not send command and sever output to the same file, because it is impossible. Also set user name for pg_dumpall in pg_upgrade.&lt;/li&gt;
&lt;li&gt;Add username designations to all pg_upgrade utility calls that support it.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/alter_table.sgml, mention that when alter rewrites a table, indexes are also rebuilt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Simon Riggs a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix log_temp_files docs and comments to say bytes not kilobytes. stat(2) field st_size returns bytes not kilobytes. Bug found during recent performance tuning for PostgreSQL user.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tom Lane a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix thinko in tok_is_keyword(): it was looking at the wrong union variant of YYSTYPE, and hence returning the wrong answer for cases where a plpgsql &quot;unreserved keyword&quot; really does conflict with a variable name. Obviously I didn't test this enough :-(. Per bug #5524 from Peter Gagarinov.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/pg_dump/pg_backup_custom.c, fix pg_restore so parallel restore doesn't fail when the input file doesn't contain data offsets (which it won't, if pg_dump thought its output wasn't seekable). To do that, remove an unnecessarily aggressive error check, and instead fail if we get to the end of the archive without finding the desired data item. Also improve the error message to be more specific about the cause of the problem. Per discussion of recent report from Igor Neyman. Back-patch to 8.4 where parallel restore was introduced.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de d&amp;eacute;ception cette semaine&amp;nbsp;:-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Guillaume Lelarge sent in a patch to add a CHECK_FOR_INTERRUPTS call to the copy_relation_data(), copy_dir(), and copy_file() functions, which fixes an issue where cancelling ALTER TABLE ... SET TABLESPACE and ALTER DATABASE ... SET TABLESPACE did not work.&lt;/li&gt;
&lt;li&gt;Heikki Linnakangas sent in a patch to fix an issue where the server would crash while trying to read an expression using pg_get_expr().&lt;/li&gt;
&lt;li&gt;Andrew Dunstan sent in a WIP patch to make ENUMs alterable.&lt;/li&gt;
&lt;li&gt;Kevin Grittner sent in a cleaned-up version of the patch to allow dividing money by money.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in a patch to make PostgreSQL compile under clang.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in another revision of the patch which allows ommission of non-aggregate columns in certain situations in GROUP BY.&lt;/li&gt;
&lt;li&gt;Pavel Baros sent in a patch to implement materialized views.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to simplify emode_for_corrupt_record.&lt;/li&gt;
&lt;li&gt;Mark Fowler sent in another revision of the patch to add an xpath_exists function.&lt;/li&gt;
&lt;li&gt;Mark Fowler sent in another revision of the patch to add XMLEXISTS to the grammar.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to allow suppressing crash recovery after a crash, per discussion on -performance about a volatile version of PostgreSQL.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Vous voulez connaître les nouveautés de la 9.0 ?</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/06/26/Vous-voulez-conna%C3%AEtre-les-nouveaut%C3%A9s-de-la-9.0"/>
		<id>urn:md5:cbf08b4830e0380339be880d8b9dd88d</id>
		<updated>2010-06-26T21:44:00+00:00</updated>
		<content type="html">&lt;p&gt;Alors allez lire le document rédigé par Marc Cousin. Il existe en &lt;a href=&quot;http://blog.postgresql.fr/index.php?post/2010/06/16/Pr%C3%A9sentation-de-la-version-9.0-de-PostgreSQL2&quot; hreflang=&quot;fr&quot;&gt;version française&lt;/a&gt; et en &lt;a href=&quot;http://wiki.postgresql.org/wiki/Illustrated_9_0&quot; hreflang=&quot;en&quot;&gt;version anglaise&lt;/a&gt;. &lt;a href=&quot;http://archives.postgresql.org/pgsql-advocacy/2010-06/msg00080.php&quot; hreflang=&quot;en&quot;&gt;Josh Berkus semble l'avoir beaucoup apprécié.&lt;/a&gt;. Et avec raison, car ce document est une mine.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 20 juin 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/06/25/Nouvelles-hebdomadaires-de-PostgreSQL-20-juin-2010"/>
		<id>urn:md5:1db97ea6b5df60029af31a4706fe90ad</id>
		<updated>2010-06-24T22:07:28+00:00</updated>
		<content type="html">&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en juin&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-06/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-06/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conf&amp;eacute;rence de Michael Renner au Netways OSDC &amp;agrave; Nuremberg (All.) les 23 &amp;amp; 24 juin 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.netways.de/osdc/y2010/programm/&quot;&gt;http://www.netways.de/osdc/y2010/programm/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CHAR(10), la conf&amp;eacute;rence PostgreSQL d&amp;eacute;di&amp;eacute;e au clustering, &amp;agrave; la haute-disponibilit&amp;eacute; et &amp;agrave; la r&amp;eacute;plication vient d'ouvrir les inscriptions en ligne et les r&amp;eacute;servations. 2 &amp;amp; 3 juillet 2010, Oriel College, Universit&amp;eacute; d'Oxford (Royaume-Uni)&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.char10.org/&quot;&gt;http://www.char10.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Le PDXPUG Day est programm&amp;eacute; pour le 18 juillet 2010 &amp;agrave; &quot;l'Oregon Convention Center&quot; &amp;agrave; Portland. D'avantage d'informations&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://wiki.postgresql.org/wiki/PDXPUGDay2010&quot;&gt;http://wiki.postgresql.org/wiki/PDXPUGDay2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'OSCON aura lieu &amp;agrave; Portland (Oregon) du 19 au 23 juillet 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.oscon.com/oscon2010&quot;&gt;http://www.oscon.com/oscon2010&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100620&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Heikki Linnakangas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xlog.c, if a corrupt WAL record is received by streaming replication, disconnect and retry. If the record is genuinely corrupt in the master database, there's little hope of recovering, but it's better than simply retrying to apply the corrupt WAL record in a tight loop without even trying to retransmit it, which is what we used to do.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ITAGAKI Takahiro a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/bin/psql/po/ja.po, fix typo in Japanese translation for psql &quot;Use \d+ to list them.&quot;&lt;/li&gt;
&lt;li&gt;Add new GUC categories corresponding to sections in docs, and move description for vacuum_defer_cleanup_age to the correct category. Sections in postgresql.conf are also sorted in the same order with docs. Per gripe by Fujii Masao, suggestion by Heikki Linnakangas, and patch by me.&lt;/li&gt;
&lt;li&gt;In pgsql/src/include/replication/walsender.h, remove prototype of GetOldestWALSendPointer(), that is marked as NOT_USED.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Simon Riggs a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/contrib/Makefile, new contrib module for use as an archive_cleanup_command, or as a standalone utility for removing files from archive.&lt;/li&gt;
&lt;li&gt;Files for pg_archivecleanup.&lt;/li&gt;
&lt;li&gt;Docs for pg_archivecleanup.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bruce Momjian a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/plperl.sgml, fix doc plperl doc with is -&amp;gt; are change.&lt;/li&gt;
&lt;li&gt;Properly define pg_upgrade global variable, per bug report from Chris Ruprecht on Mac (64 bit).&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/select.sgml, clarify SELECT FOR UPDATE behavior in docs.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/option.c, fix storage of getopt() return, should be 'int', for pg_upgrade. Steve Singer.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, 9.0 release notes updates. Josh Berkus&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, update doc description for 9.0 release note item: Have SELECT and CREATE TABLE AS return row counts to the client&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/tablespace.c, fix pg_upgrade to remove malloc(0) call.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tom Lane a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/contrib/dblink/dblink.c, rearrange dblink's dblink_build_sql_insert() and related routines to open and lock the target relation just once per SQL function call. The original coding obtained and released lock several times per call. Aside from saving a not-insignificant number of cycles, this eliminates possible race conditions if someone tries to modify the relation's schema concurrently. Also centralize locking and permission-checking logic. Problem noted while investigating a trouble report from Robert Voinea --- his problem is still to be fixed, though.&lt;/li&gt;
&lt;li&gt;Consolidate and improve checking of key-column-attnum arguments for dblink_build_sql_insert() and related functions. In particular, be sure to reject references to dropped and out-of-range column numbers. The numbers are still interpreted as physical column numbers, though, for backward compatibility. This patch replaces Joe Conway's patch of 2010-02-03, which handled only some aspects of the problem.&lt;/li&gt;
&lt;li&gt;Fix dblink_build_sql_insert() and related functions to handle dropped columns correctly. In passing, get rid of some dead logic in the underlying get_sql_insert() etc functions --- there is no caller that will pass null value-arrays to them. Per bug report from Robert Voinea.&lt;/li&gt;
&lt;li&gt;Change the interpretation of the primary_key_attnums parameter of dblink_build_sql_insert() and related functions. Now the column numbers are treated as logical not physical column numbers. This will provide saner behavior in the presence of dropped columns; furthermore, if we ever get around to allowing rearrangement of logical column ordering, the original definition would become nearly untenable from a usability standpoint. Per recent discussion of dblink's handling of dropped columns. Not back-patched for fear of breaking existing applications.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/libpq.sgml, fix typo, init =&amp;gt; int, per KOIZUMI Satoru.&lt;/li&gt;
&lt;li&gt;Don't allow walsender to send WAL data until it's been safely fsync'd on the master. Otherwise a subsequent crash could cause the master to lose WAL that has already been applied on the slave, resulting in the slave being out of sync and soon corrupt. Per recent discussion and an example from Robert Haas. Fujii Masao.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/copy.sgml, add missing close brackets in old-style COPY syntax diagram. Spotted by Evan Carroll.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_archivecleanup/pg_archivecleanup.c, clean up pg_archivecleanup's error and logging output: put newlines in sane places, make messages follow project's message style guidelines. Also, avoid closedir(NULL). Fujii Masao and Tom Lane&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xlog.c, make RemoveOldXlogFiles's debug printout match style used elsewhere: log and seg aren't an XLogRecPtr and shouldn't be printed like one. Fujii Masao.&lt;/li&gt;
&lt;li&gt;Clean up some randomness associated with trace_recovery_messages: don't put the variable declaration in the middle of a bunch of externs, and do use extern where it should be used.&lt;/li&gt;
&lt;li&gt;Fix mishandling of whole-row Vars referencing a view or sub-select. If such a Var appeared within a nested sub-select, we failed to translate it correctly during pullup of the view, because the recursive call to replace_rte_variables_mutator was looking for the wrong sublevels_up value. Bug was introduced during the addition of the PlaceHolderVar mechanism. Per bug #5514 from Marcos Castedo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Andrew Dunstan a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/tools/msvc/Mkvcbuild.pm, unbreak MSVC builds for pg_archivecleanup by linking with libpgport.&lt;/li&gt;
&lt;li&gt;Remove perl symbol table additions for plperl functions, and mention of it in the release notes, as it is not apparently providing anything useful.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/analyze.sgml, document new 9.0 behavior of ANALYZE on inheritance hierarchies. In particular, note that autovacuum does not yet understand that it might need to vacuum inheritance parents as a result of changes to the child tables.&lt;/li&gt;
&lt;li&gt;Remove hstore's text[] =&amp;gt; text[] operator. This is not yet in any released version, so we still have the option to backtrack. Instead, document hstore(text[], text[]). Per discussion.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/func.sgml, document that receive location can rewind if replication restarts. Fujii Masao, with some further wordsmithing by me.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Peter Eisentraut a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refactor sprintf calls with computed format strings into multiple calls with constant format strings, so that the compiler can more easily check the formats for correctness.&lt;/li&gt;
&lt;li&gt;Add notes that CREATE/DROP CONVERSION is similar to CREATE/DROP TRANSLATION in the SQL standard.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de d&amp;eacute;ception cette semaine&amp;nbsp;:-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Robert Haas sent in a patch to implement --quote-all-identifiers for pg_dump and pg_dumpall, per discussion.&lt;/li&gt;
&lt;li&gt;KaiGai Kohei sent in two revisions of a patch to add a security hook to InitPostgres().&lt;/li&gt;
&lt;li&gt;KaiGai Kohei sent in a patch to rework DML permissions checks.&lt;/li&gt;
&lt;li&gt;KaiGai Kohei sent in a patch to add makeRangeTblEntry into makefuncs.c.&lt;/li&gt;
&lt;li&gt;KaiGai Kohei sent in a patch to modify the ExecutorCheckPerms() hook.&lt;/li&gt;
&lt;li&gt;Fujii Masao sent in a patch to fix a condition where the server crashes during streaming replication.&lt;/li&gt;
&lt;li&gt;Dimitri Fontaine sent in a patch to add a pg_archive_bypass command.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in another patch for get_whatever_oid.&lt;/li&gt;
&lt;li&gt;Mike Lewis sent in another revision of the patch to enhance performance in array utility functions.&lt;/li&gt;
&lt;li&gt;ITAGAKI Takahiro sent in a patch to reorganize GUC categories.&lt;/li&gt;
&lt;li&gt;ITAGAKI Takahiro sent in a patch to implement foreign tables for SQL/MED.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to turn =&amp;gt; into &amp;amp; for hstore.&lt;/li&gt;
&lt;li&gt;Florian Pflug sent in a patch to show individual statement latencies in pgbench output.&lt;/li&gt;
&lt;li&gt;Zoltan Boszormenyi sent in a patch to fix a performance problem in ECPG.&lt;/li&gt;
&lt;li&gt;ITAGAKI Takahiro sent in an update revision of the patch for table partitioning syntax.&lt;/li&gt;
&lt;li&gt;ITAGAKI Takahiro sent in a patch to add a view to pg_catalog for walsender activity.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Présentation de la version 9.0 de PostgreSQL</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/06/16/Pr%C3%A9sentation-de-la-version-9.0-de-PostgreSQL2"/>
		<id>urn:md5:45dc7ea07698084592d13f456b6691ec</id>
		<updated>2010-06-21T12:08:07+00:00</updated>
		<content type="html">&lt;p&gt;Ce document tente de présenter les principaux changements apportés par PostgreSQL 9.0, par rapport à la version majeure précédente, la version 8.4. Dans la mesure du possible, chaque fonctionnalité sera expliquée et accompagnée d'une démonstration. Toutes les nouveautés ne sont bien sûr pas présentées (il y en a plus de 200).&lt;/p&gt;
&lt;p&gt;La version 9.0, comme son nom l'indique, est une version capitale dans la progression de PostgreSQL. Même si les solutions de réplication pour PostgreSQL sont nombreuses et répondent à des problématiques variées, la version 9.0 apporte une réplication simple, robuste et intégrée au moteur, qui sera vraisemblablement utilisée par défaut dans la plupart des configurations de Haute Disponibilité reposant sur PostgreSQL.&lt;/p&gt;
&lt;p&gt;Les changements ont été subdivisés en quatre parties:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les deux nouveautés incontournables&lt;/li&gt;
&lt;li&gt;Les nouveautés&lt;/li&gt;
&lt;li&gt;Les changements pouvant entraîner des régressions&lt;/li&gt;
&lt;li&gt;Les améliorations&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Les incontournables&lt;/h2&gt;
&lt;p&gt;Ces deux nouveautés sont celles qui ont justifié à elles seules le renommage de 8.5 en 9.0.&lt;/p&gt;
&lt;h3&gt;Hot Standby&lt;/h3&gt;
&lt;p&gt;Cette nouvelle fonctionnalité est une des deux raisons du renommage en 9.0. Il s'agit de proposer une base de 'Standby', c'est-à-dire une baseappliquant les journaux binaires générés par la base de production, tout&amp;nbsp;&amp;nbsp;en la rendant ouverte en lecture seule. Ceci est assez complexe car, pendant l'exécution de ces requêtes en lecture seule, la base en Standby doit aussi pouvoir appliquer les données binaires provenant de la base de production, être capable de décider si les modifications peuvent entrer en conflit avec les lectures et déterminer les actions à entreprendre en conséquence&amp;nbsp;: mettre en pause la restauration ou tuer des requêtes en lecture seule. Ce patch est volumineux et complexe, il rajoute des informations dans la journalisation à l'intention de la base de Standby et un mécanisme de résolution des conflits. C'est donc une des fonctionnalités majeures, et une des principales fonctionnalités à aider à tester.&lt;/p&gt;
&lt;p&gt;Pour mettre ceci en place, il suffit de paramétrer la base de production comme suit&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;postgresql.conf&lt;/code&gt; Primaire:&lt;/p&gt;
&lt;pre&gt;wal_level = 'hot standby' # Génère les informations supplémentaires dans les journaux&lt;br /&gt;# vacuum_defer_cleanup_age # Optionnellement, vous pourriez vouloir paramétrer ceci, mais son réglage pourrait être complexe&lt;/pre&gt;
&lt;p&gt;Ensuite, créer une base de standby (la procédure est la même que précédemment pour un Warm Standby&amp;nbsp;: pg_start_backup sur la production, recopie des fichiers sur l'esclave, pg_end_backup sur la production).&lt;/p&gt;
&lt;p&gt;Puis il suffit de recopier les journaux sur le secondaire et de rajouter ceci dans son postgresql.conf&amp;nbsp;: &lt;/p&gt;
&lt;p&gt;&lt;code&gt;postgresql.conf&lt;/code&gt; Secondaire:&lt;/p&gt;
&lt;pre&gt;hot_standby=on&lt;br /&gt;max_standby_delay=30s # -1= toujours attendre, 0= ne jamais attendre, sinon attendre cette durée&lt;/pre&gt;
&lt;p&gt;et d'utiliser un programme comme pg_standby sur le secondaire pour intégrer les journaux (à paramétrer dans le &lt;code&gt;recovery.conf&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;max_standby_delay permet de déterminer le comportement de la base de standby en cas de conflit entre l'application des journaux de transactions et les requêtes en lecture seule. En cas de conflit, la base de standby acceptera d'attendre au plus max_standby_delay avant de tuer les requêtes en lecture qui bloquent l'application des journaux.&lt;/p&gt;
&lt;p&gt;Il est bien sûr vivement conseillé de lire la documentation avant de mettre en place cette fonctionnalité… Ne serait-ce que pour bien comprendre les conséquences du réglage de max_standby_delay et vacuum_defer_cleanup_age, qui ne sont pas simples à appréhender.&lt;/p&gt;
&lt;h3&gt;Streaming Replication&lt;/h3&gt;
&lt;p&gt;C'est la deuxième moitié de la raison du passage en 9.0. Il s'agit cette fois-ci de modifier le mécanisme d'archivage pour le rendre continu&amp;nbsp;: les bases de standby peuvent donc se connecter au maître et récupérer à tout moment ce qui leur manque des journaux, non plus en termes de fichiers entiers, mais bien en termes d'enregistrements dans ces journaux (des fragments de ces fichiers donc). Il s'agit donc bien d'une réplication binaire, pas de la rééxécution dans le même ordre de requêtes SQL comme sur certains autres moteurs de bases de données, avec tous les risques de cohérence que cela impliquerait.&lt;/p&gt;
&lt;p&gt;Les bases de production et de standby sont identiques au niveau binaire (enfin presque, on ne va pas rentrer dans les détails, mais ne vous en faites pas si les fichiers de données n'ont pas la même somme de contrôle).&lt;/p&gt;
&lt;p&gt;wal_level devra valoir «&amp;nbsp;archive&amp;nbsp;» (ou «&amp;nbsp;hot standby ») pour continuer à faire de l'archivage continu.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;postgresql.conf&lt;/code&gt; primaire :&lt;/p&gt;
&lt;pre&gt;max_wal_senders = x # Nombre maximum de « wal_senders », les processus chargés de répondre à des serveurs de standby&lt;br /&gt;wal_keep_segments # Nombre de fichiers de journaux de transactions à conserver en ligne quoi qu'il arrive (évite d'avoir à les recopier manuellement sur le(s) secondaires en cas de déconnection lente)&lt;/pre&gt;
&lt;p&gt;Sur le secondaire&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;recovery.conf&lt;/code&gt; secondaire:&lt;/p&gt;
&lt;pre&gt;stanby_mode = on&lt;br /&gt;primary_conninfo = 'host=192.168.1.50 port=5432 user=foo password=foopass' # La chaîne de connexion pour une session sur le maître&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;postgresql.conf&lt;/code&gt; secondaire:&lt;/p&gt;
&lt;pre&gt;wal_level # à la même valeur que sur le maître (pour le retour de bascule…)&lt;br /&gt;hot_standby=on/off # Suivant que vous voulez en même temps être en hot standby&lt;/pre&gt;
&lt;p&gt;fichier pg_hba.conf&amp;nbsp;:
On doit y créer une entrée pour les connexions de réplication. La base est «&amp;nbsp;replication », l'utilisateur utilisé doit avoir l'attribut de superutilisateur. Attention à ne pas donner des droits trop importants ici, donner accès aux journaux de transactions en lecture à n'importe qui donne accès à des informations privilégiées.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pg_hba.conf&lt;/code&gt; primaire:&lt;/p&gt;
&lt;pre&gt;host    replication     foo             192.168.1.100/32        md5&lt;/pre&gt;
&lt;p&gt;Comme pour Hot Standby, cette fonctionnalité est suffisamment riche et complexe pour qu'il soit vivement conseillé de lire la doc. Et de faire des tests de bascule une fois l'ensemble mis en place.&lt;/p&gt;
&lt;p&gt;Ce qui est très important avec ces deux fonctionnalités, c'est que vous pouvez les utiliser ensemble. Vous pouvez donc avoir donc une base de stanby répliquée de façon quasi-synchrone avec la production, et exécuter des requêtes en lecture seule sur cette base.&lt;/p&gt;
&lt;h2&gt;Les nouveautés&lt;/h2&gt;
&lt;h3&gt;Contraintes d'exclusion&lt;/h3&gt;
&lt;p&gt;Il est maintenant possible de déclarer des contraintes d'unicité plus complexes que celles s'appuyant sur l'opérateur '=' (contrainte d'unicité, deux jeux de colonnes ne pouvant être identiques).&lt;/p&gt;
&lt;p&gt;Nous allons, pour l'illustrer, utiliser l'exemple de l'auteur, en utilisant le type 'temporal' qu'il a aussi développé. Ce type de données permet de définir des 'plages de temps', c'est à dire par exemple 'la plage de 12h15 à 13h15'.&lt;/p&gt;
&lt;p&gt;Il faut donc récupérer le module temporal à l'adresse suivante&amp;nbsp;: http://pgfoundry.org/projects/temporal/ , le compiler et l'installer comme un contrib (exécuter le script SQL fourni).&lt;/p&gt;
&lt;pre&gt;CREATE TABLE reservation&lt;br /&gt;(&lt;br /&gt;  salle      TEXT,&lt;br /&gt;  professeur TEXT,&lt;br /&gt;  durant    PERIOD);&lt;br /&gt;&lt;br /&gt;ALTER TABLE reservation ADD CONSTRAINT test_exclude EXCLUDE   USING gist (salle WITH =,durant WITH &amp;amp;&amp;amp;);&lt;/pre&gt;
&lt;p&gt;Par ceci, nous disons qu'un enregistrement doit être refusé (contrainte d'exclusion) s'il en existe déjà un vérifiant les deux conditions concerner la même salle, et être en intersection au niveau de l'intervalle de temps.&lt;/p&gt;
&lt;pre&gt;marc=# INSERT INTO reservation (professeur,salle,durant) VALUES ( 'marc', 'salle techno', period('2010-06-16 09:00:00', '2010-06-16 10:00:00'));&lt;br /&gt;INSERT 0 1&lt;br /&gt;marc=# INSERT INTO reservation (professeur,salle,durant) VALUES ( 'jean', 'salle chimie', period('2010-06-16 09:00:00', '2010-06-16 11:00:00'));&lt;br /&gt;INSERT 0 1&lt;br /&gt;marc=# INSERT INTO reservation (professor,room,during) VALUES ( 'marc', 'salle chimie', period('2010-06-16 10:00:00', '2010-06-16 11:00:00'));&lt;br /&gt;ERROR:  conflicting key value violates exclusion constraint &quot;test_exclude&quot;&lt;br /&gt;DETAIL:  Key (room, during)=(salle chimie, [2010-06-16 10:00:00+02, 2010-06-16 11:00:00+02)) conflicts with existing key (room, during)=(salle chimie, [2010-06-16 09:00:00+02, 2010-06-16 11:00:00+02)).&lt;/pre&gt;
&lt;p&gt;L'insertion est interdite, puisque la salle de chimie est déjà prise de 9h à 11h.&lt;/p&gt;
&lt;h3&gt;Triggers par colonne&lt;/h3&gt;
&lt;p&gt;Voici d'abord un trigger par colonne.&lt;/p&gt;
&lt;pre&gt;CREATE TRIGGER toto BEFORE UPDATE of a ON t1 FOR EACH ROW EXECUTE PROCEDURE mon_trigger();&lt;/pre&gt;
&lt;p&gt;Ce trigger ne se déclenche que si la colonne a de la table t1 a été modifiée.&lt;/p&gt;
&lt;h3&gt;Triggers WHEN&lt;/h3&gt;
&lt;p&gt;Voici maintenant des exemples tirés de la documentation officielle pour la clause WHEN des triggers:&lt;/p&gt;
&lt;pre&gt;CREATE TRIGGER check_update&lt;br /&gt;BEFORE UPDATE ON accounts&lt;br /&gt;FOR EACH ROW&lt;br /&gt;WHEN (OLD.balance IS DISTINCT FROM NEW.balance)&lt;br /&gt;EXECUTE PROCEDURE check_account_update();&lt;br /&gt;&lt;br /&gt;CREATE TRIGGER log_update&lt;br /&gt;AFTER UPDATE ON accounts&lt;br /&gt;FOR EACH ROW&lt;br /&gt;WHEN (OLD.* IS DISTINCT FROM NEW.*)&lt;br /&gt;EXECUTE PROCEDURE log_account_update();&lt;/pre&gt;&lt;h3&gt;DEFERRABLE UNIQUE CONSTRAINTS&lt;/h3&gt;
&lt;p&gt;Cette fonctionnalité aussi promet d'être pratique. Voici un exemple avec une clé primaire au lieu d'une simple clé unique, mais cela revient au même&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# CREATE TABLE test (a int primary key);&lt;br /&gt;marc=# INSERT INTO test values (1), (2);&lt;br /&gt;marc=# UPDATE test set a = a+1;&lt;br /&gt;ERROR:  duplicate key value violates unique constraint &quot;test_pkey&quot;&lt;br /&gt;DETAIL:  Key (a)=(2) already exists.&lt;/pre&gt;
&lt;p&gt;Normal, mais dommage&amp;nbsp;: à la fin de la transaction, mes données auraient été cohérentes. D'autant plus que si la table avait été triée physiquement par ordre descendant, ça passait&amp;nbsp;! En 8.4, il n'y avait pas d'échappatoire simple, il fallait trouver une astuce pour mettre à jour les enregistrements dans le bon ordre.&lt;/p&gt;
&lt;p&gt;Nous pouvons maintenant faire ceci&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# CREATE TABLE test (a int primary key deferrable);&lt;br /&gt;marc=# INSERT INTO test values (2),(1);&lt;br /&gt;marc=# UPDATE test set a = a+1;&lt;br /&gt;ERROR:  duplicate key value violates unique constraint &quot;test_pkey&quot;&lt;br /&gt;DETAIL:  Key (a)=(2) already exists.&lt;/pre&gt;
&lt;p&gt;Ah zut, ça ne marche pas. &lt;/p&gt;
&lt;p&gt;En fait, je l'ai fait exprès&amp;nbsp;: j'en profite pour faire un petit rappel sur les contraintes deferrable/deferred&amp;nbsp;: une contrainte 'deferrable' PEUT être vérifiée en fin de transaction (elle est 'retardable'). Il faut toutefois dire à PostgreSQL expressément qu'on veut vraiment faire ce contrôle en fin de transaction.&lt;/p&gt;
&lt;p&gt;On peut, pour la session en cours demander à passer toutes les contraintes en 'DEFERRED'&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# SET CONSTRAINTS ALL DEFERRED;&lt;br /&gt;SET CONSTRAINTS&lt;br /&gt;marc=# UPDATE test set a = a+1;&lt;br /&gt;UPDATE 2&lt;/pre&gt;
&lt;p&gt;Si on veut ne pas avoir à effectuer le SET CONSTRAINTS à chaque fois, il est aussi possible de déclarer la contrainte comme INITIALLY DEFERRED:&lt;/p&gt;
&lt;pre&gt;CREATE TABLE test (a int PRIMARY KEY DEFERRABLE INITIALLY DEFERRED);&lt;/pre&gt;
&lt;p&gt;Un autre rappel s'impose&amp;nbsp;: les contraintes DEFERRED sont plus lentes que les contraintes IMMEDIATE. Par ailleurs, il faut bien stocker la liste des enregistrements à vérifier en fin de transaction quelque part, et cela consomme de la mémoire. Attention à ne pas le faire sur des millions d'enregistrements d'un coup. C'est la raison pour laquelle les contraintes 'DEFERRABLE' ne sont pas 'INITIALLY DEFERRED' par défaut.&lt;/p&gt;
&lt;h3&gt;Fonctions anonymes&lt;/h3&gt;
&lt;p&gt;Cette nouvelle fonctionnalité permet de créer des fonctions à usage unique. Elles seront très pratiques dans des scripts de livraison de version applicative par exemple. Voici une version un peu différente du GRANT SELECT ON ALL TABLES qui sera présenté plus loin dans ce document, qui donne le droit de sélection à tout un jeu de tables, en fonction du propriétaire des tables, et en ignorant deux schémas&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;DO language plpgsql $$ &lt;br /&gt;DECLARE&lt;br /&gt;vr record;&lt;br /&gt;&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;FOR vr IN SELECT tablename FROM pg_tables WHERE tableowner = 'marc' AND schemaname NOT IN ('pg_catalog','information_schema')&lt;br /&gt;LOOP&lt;br /&gt;  EXECUTE 'GRANT SELECT ON ' || vr.tablename || ' TO toto';&lt;br /&gt;END LOOP;&lt;br /&gt;END&lt;br /&gt;$$&lt;br /&gt;;&lt;/pre&gt;
&lt;p&gt;En 8.4, il aurait fallu créer une fonction (via CREATE FUNCTION), l'exécuter puis la supprimer (avec DROP FUNCTION). Le tout demandant d'avoir les droits pour ça. La 9.0 facilite donc ce type d'exécution rapide.&lt;/p&gt;
&lt;h3&gt;Paramètres nommés&lt;/h3&gt;
&lt;p&gt;La syntaxe retenue pour nommer les paramètres est la suivante:&lt;/p&gt;
&lt;pre&gt;CREATE FUNCTION test (a int, b text) RETURNS text AS $$&lt;br /&gt;DECLARE&lt;br /&gt;valeur text;&lt;br /&gt;BEGIN&lt;br /&gt;valeur := 'a vaut ' || a::text || ' et b vaut ' || b;&lt;br /&gt;RETURN valeur;&lt;br /&gt;END;&lt;br /&gt;$$ LANGUAGE plpgsql;&lt;/pre&gt;
&lt;p&gt;Jusque là, on écrivait&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;SELECT test(1,'toto');&lt;br /&gt;test           &lt;br /&gt;-------------------------&lt;br /&gt;a vaut 1 et b vaut toto&lt;br /&gt;(1 row)&lt;/pre&gt;
&lt;p&gt;Maintenant, on peut utiliser cette syntaxe explicite:&lt;/p&gt;
&lt;pre&gt;SELECT test( b:='toto', a:=1);&lt;br /&gt;test           &lt;br /&gt;-------------------------&lt;br /&gt;a vaut 1 et b vaut toto&lt;br /&gt;(1 row)&lt;/pre&gt;
&lt;p&gt;De nombreux langages permettent ce type de syntaxe d'appel de fonction, qui améliore fortement la lisibilité du code.&lt;/p&gt;
&lt;h3&gt;GRANT/REVOKE IN SCHEMA&lt;/h3&gt;
&lt;p&gt;C'est un problème idiot, et un peu frustrant, qui est déjà arrivé à beaucoup d'administrateurs de base de données&amp;nbsp;: créer 400 tables, puis devoir attribuer des droits à un utilisateur sur ces 400 tables. Jusque là, on en était quitte pour créer un script. Plus maintenant&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;GRANT SELECT ON ALL TABLES IN SCHEMA public TO toto;&lt;/pre&gt;
&lt;p&gt;Et la marche arrière&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM toto;&lt;/pre&gt;
&lt;p&gt;Bien sûr, cette commande ne vaut que pour les tables en place au moment de la commande. Il faudra toujours faire de nouveaux GRANT pour les futures tables du schéma.&lt;/p&gt;
&lt;h3&gt;ALTER&amp;nbsp;DEFAULT PRIVILEGES&lt;/h3&gt;
&lt;p&gt;Encore une commande permettant de gagner du temps dans la gestion des droits.&lt;/p&gt;
&lt;pre&gt;ALTER DEFAULT PRIVILEGES FOR ROLE marc GRANT SELECT ON TABLES TO PUBLIC ;&lt;br /&gt;CREATE TABLE test_priv (a int);&lt;br /&gt;\z test_priv&lt;br /&gt;                             Access privileges&lt;br /&gt; Schema |    Name    | Type  | Access privileges | Column access privileges &lt;br /&gt;--------+------------+-------+-------------------+--------------------------&lt;br /&gt; public | test_priv  | table | =r/marc          +| &lt;br /&gt;        |            |       | marc=arwdDxt/marc | &lt;/pre&gt;
&lt;p&gt;Les informations sur les droits par défaut sont stockées dans pg_default_acl.&lt;/p&gt;
&lt;h2&gt;Les changements pouvant entraîner régression&lt;/h2&gt;
&lt;p&gt;Ces deux changements dans PL/pgSQL peuvent entraîner des régressions dans du code fonctionnant en 8.4. Si vous avez du code PL/pgSQL, vérifiez le avant de migrer en 9.0. Le moteur génère des erreurs à l'exécution, comme illustré ci-dessous.&lt;/p&gt;
&lt;h3&gt;PL/pgSQL&amp;nbsp;: meilleur contrôle du nom des variables&lt;/h3&gt;
&lt;pre&gt;marc=# DO LANGUAGE plpgsql&lt;br /&gt;$$&lt;br /&gt;DECLARE&lt;br /&gt;a int;&lt;br /&gt;BEGIN&lt;br /&gt;SELECT a FROM test;&lt;br /&gt;END&lt;br /&gt;$$&lt;br /&gt;ERROR:  column reference &quot;a&quot; is ambiguous&lt;br /&gt;LINE 1: select a from test&lt;br /&gt;DETAIL:  It could refer to either a PL/pgSQL variable or a table column.&lt;br /&gt;QUERY:  select a from test&lt;br /&gt;CONTEXT:  PL/pgSQL function &quot;inline_code_block&quot; line 4 at SQL statement&lt;/pre&gt;
&lt;p&gt;Si vous voulez modifier ce comportement, vous pouvez le faire globalement mais il est préférable de le faire par fonction, en exécutant une de ces commandes au début de votre fonction:&lt;/p&gt;
&lt;pre&gt;variable_conflict error        # mode par défaut&lt;br /&gt;variable_conflict use_variable # choisir le nom de variable&lt;br /&gt;variable_conflict use_column   # choisir le nom de colonne&lt;/pre&gt;
&lt;h3&gt;Protection des mots réservés en PL/pgSQL&lt;/h3&gt;
&lt;pre&gt;marc=# DO LANGUAGE plpgsql&lt;br /&gt;$$&lt;br /&gt;DECLARE&lt;br /&gt;table int;&lt;br /&gt;BEGIN&lt;br /&gt;table :=table+1;&lt;br /&gt;END&lt;br /&gt;$$&lt;br /&gt;;&lt;br /&gt;ERROR:  syntax error at or near &quot;table&quot;&lt;br /&gt;LINE 6: table :=table+1;&lt;br /&gt;^&lt;br /&gt;marc=# DO LANGUAGE plpgsql&lt;br /&gt;$$&lt;br /&gt;DECLARE&lt;br /&gt;&quot;table&quot; int;&lt;br /&gt;BEGIN&lt;br /&gt;&quot;table&quot; :=&quot;table&quot;+1;&lt;br /&gt;END&lt;br /&gt;$$&lt;br /&gt;;&lt;br /&gt;DO&lt;/pre&gt;
&lt;h2&gt;Les améliorations&lt;/h2&gt;
&lt;p&gt;Le planificateur de requête a reçu un grand nombre d'améliorations dans cette version. Nous allons donc commencer par lui:&lt;/p&gt;
&lt;h3&gt;Join Removal&lt;/h3&gt;
&lt;pre&gt;marc=# CREATE TABLE t1 (a int);&lt;br /&gt;CREATE TABLE&lt;br /&gt;marc=# CREATE TABLE t2 (b int);&lt;br /&gt;CREATE TABLE&lt;br /&gt;marc=# CREATE TABLE t3 (c int);&lt;br /&gt;CREATE TABLE&lt;/pre&gt;
On insère quelques données avec le generate_series…&lt;br /&gt;&lt;pre&gt;marc=# EXPLAIN SELECT t1.a,t2.b from t1 join t2 on (t1.a=t2.b) left join t3 on (t1.a=t3.c);&lt;br /&gt;                                  QUERY PLAN                                  &lt;br /&gt;------------------------------------------------------------------------------&lt;br /&gt; Merge Right Join  (cost=506.24..6146.24 rows=345600 width=8)&lt;br /&gt;   Merge Cond: (t3.c = t1.a)&lt;br /&gt;   -&amp;gt;  Sort  (cost=168.75..174.75 rows=2400 width=4)&lt;br /&gt;         Sort Key: t3.c&lt;br /&gt;         -&amp;gt;  Seq Scan on t3  (cost=0.00..34.00 rows=2400 width=4)&lt;br /&gt;   -&amp;gt;  Materialize  (cost=337.49..853.49 rows=28800 width=8)&lt;br /&gt;         -&amp;gt;  Merge Join  (cost=337.49..781.49 rows=28800 width=8)&lt;br /&gt;               Merge Cond: (t1.a = t2.b)&lt;br /&gt;               -&amp;gt;  Sort  (cost=168.75..174.75 rows=2400 width=4)&lt;br /&gt;                     Sort Key: t1.a&lt;br /&gt;                     -&amp;gt;  Seq Scan on t1  (cost=0.00..34.00 rows=2400 width=4)&lt;br /&gt;               -&amp;gt;  Sort  (cost=168.75..174.75 rows=2400 width=4)&lt;br /&gt;                     Sort Key: t2.b&lt;br /&gt;                     -&amp;gt;  Seq Scan on t2  (cost=0.00..34.00 rows=2400 width=4)&lt;/pre&gt;Pour l'instant, c'est normal, et on a le même comportement qu'en 8.4. Mais imaginons que sur la table t3, on ait une contrainte UNIQUE sur la colonne c. Dans ce cas, théoriquement, la jointure sur la table t3 ne sert à rien&amp;nbsp;: le nombre d'enregistrements du résultat ne sera pas modifié, pas plus, bien sûr, que leur contenu. C'est lié au fait que la colonne est UNIQUE, que la jointure est un LEFT JOIN, et qu'aucune colonne de t3 n'est récupérée. Si la colonne n'était pas UNIQUE, la jointure pourrait augmenter le nombre d'enregistrements du résultat. Si ce n'était pas un LEFT JOIN, la jointure pourrait diminuer le nombre d'enregistrements du résultat.&lt;p&gt;En 9.0&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# ALTER TABLE t3 ADD UNIQUE (c);&lt;br /&gt;NOTICE:  ALTER TABLE / ADD UNIQUE will create implicit index &quot;t3_c_key&quot; for table &quot;t3&quot;&lt;br /&gt;ALTER TABLE&lt;br /&gt;marc=# EXPLAIN SELECT t1.a,t2.b from t1 join t2 on (t1.a=t2.b) left join t3 on (t1.a=t3.c);&lt;br /&gt;                            QUERY PLAN                            &lt;br /&gt;------------------------------------------------------------------&lt;br /&gt; Merge Join  (cost=337.49..781.49 rows=28800 width=8)&lt;br /&gt;   Merge Cond: (t1.a = t2.b)&lt;br /&gt;   -&amp;gt;  Sort  (cost=168.75..174.75 rows=2400 width=4)&lt;br /&gt;         Sort Key: t1.a&lt;br /&gt;         -&amp;gt;  Seq Scan on t1  (cost=0.00..34.00 rows=2400 width=4)&lt;br /&gt;   -&amp;gt;  Sort  (cost=168.75..174.75 rows=2400 width=4)&lt;br /&gt;         Sort Key: t2.b&lt;br /&gt;         -&amp;gt;  Seq Scan on t2  (cost=0.00..34.00 rows=2400 width=4)&lt;br /&gt;(8 rows)&lt;/pre&gt;Cette optimisation devrait pouvoir être très rentable, entre autre quand les requêtes sont générées par un ORM (mapping objet-relationnel). Ces outils ont la fâcheuse tendance à exécuter des jointures inutiles. Ici on a réussi à diviser le coût estimé de la requête par 10.
&lt;p&gt;C'est aussi une optimisation qui pourra être très utile pour les applications utilisant beaucoup de jointures et de vues imbriquées.&lt;/p&gt;
&lt;p&gt;Cela constitue encore une raison supplémentaire de déclarer les contraintes dans la base&amp;nbsp;: sans ces contraintes, impossible pour le moteur d'être sûr que ces réécritures sont possibles.&lt;/p&gt;
&lt;h3&gt;IS NOT NULL peut utiliser les index&lt;/h3&gt;
&lt;p&gt;Pour cette démonstration, nous allons comparer la version 8.4 et la 9.0 (la table que j'ai créée contient majoritairement des valeurs NULL)&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;En 8.4&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# EXPLAIN ANALYZE SELECT max(a) from test;&lt;br /&gt;QUERY PLAN                                                                   &lt;br /&gt;------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;Result  (cost=0.03..0.04 rows=1 width=0) (actual time=281.320..281.321 rows=1 loops=1)&lt;br /&gt;InitPlan 1 (returns $0)&lt;br /&gt;  -&amp;gt;  Limit  (cost=0.00..0.03 rows=1 width=4) (actual time=281.311..281.313 rows=1 loops=1)&lt;br /&gt;  -&amp;gt;  Index Scan Backward using idxa on test  (cost=0.00..29447.36 rows=1001000 width=4) (actual time=281.307..281.307 rows=1 loops=1)&lt;br /&gt;Filter: (a IS NOT NULL)&lt;br /&gt;Total runtime: 281.360 ms&lt;br /&gt;(6 rows)&lt;/pre&gt;&lt;p&gt;En 9.0&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# EXPLAIN ANALYZE SELECT max(a) from test;&lt;br /&gt;QUERY PLAN                                                                 &lt;br /&gt;--------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;Result  (cost=0.08..0.09 rows=1 width=0) (actual time=0.100..0.102 rows=1 loops=1)&lt;br /&gt;InitPlan 1 (returns $0)&lt;br /&gt;  -&amp;gt;  Limit  (cost=0.00..0.08 rows=1 width=4) (actual time=0.092..0.093 rows=1 loops=1)&lt;br /&gt;  -&amp;gt;  Index Scan Backward using idxa on test  (cost=0.00..84148.06 rows=1001164 width=4) (actual time=0.089..0.089 rows=1 loops=1)&lt;br /&gt;Index Cond: (a IS NOT NULL)&lt;br /&gt;Total runtime: 0.139 ms&lt;br /&gt;(6 rows)&lt;/pre&gt;&lt;p&gt;On constate que la 9.0 parcourt uniquement les clés non nulles de l'index (Index cond, au lieu d'un filtre à posteriori). Dans ce cas précis, le gain est très net.
&lt;/p&gt;
&lt;h3&gt;Utilisation d'index pour générer des statistiques à la volée&lt;/h3&gt;
&lt;p&gt;Avant de commencer à expliquer la nouveauté, un petit rappel sur les histogrammes: PostgreSQL, comme d'autres moteurs de bases de données, utilise un optimiseur statistique. Cela signifie qu'au moment de la planification d'une requête il a (ou devrait) avoir une idée correcte de ce que chaque étape de la requête va lui ramener, en termes de nombres d'enregistrements. Pour cela, il utilise des statistiques, comme le nombre d'enregistrements de la table approximatif, sa taille, la corrélation physique entre valeurs voisines dans la table, les valeurs les plus fréquentes, et les histogrammes, qui permettent d'évaluer assez précisément le nombre d'enregistrements ramenés par une clause WHERE sur une colonne, suivant la valeur ou la plage demandée sur la clause WHERE.&lt;/p&gt;
&lt;p&gt;Il arrive que les statistiques soient rapidement périmées, et donc
posent problème, pour certains ordres SQL. Par exemple, une table de
trace dans laquelle on insèrerait des enregistrements horodatés, et sur
laquelle on voudrait presque toujours sélectionner les enregistrements
des 5 dernières minutes.&lt;/p&gt;
&lt;p&gt;Dans ce cas, il était impossible avant la 9.0 d'avoir des statistiques à jour. Maintenant, quand PostgreSQL détecte qu'une requête demande un «range scan» sur une valeur supérieure à la dernière valeur de l'histogramme (ou inférieure à la première valeur), c'est à dire la plus grande valeur connue au dernier calcul de statistiques, et que la colonne est indexée, il récupère le max (ou le min si c'est la première valeur) de cette colonne en interrogeant l'index AVANT d'exécuter la requête, afin d'obtenir des statistiques plus réalistes. Comme il utilise un index pour cela, il faut qu'un index existe, bien sûr.&lt;/p&gt;
&lt;p&gt;Voici un exemple. La colonne &quot;a&quot; de la table test a déjà été remplie avec de nombreuses dates, antérieures. Elle a donc des statistiques à jour, avec des histogrammes lui donnant la répartition des valeurs de a.&lt;/p&gt;
&lt;p&gt;Il est 13:37, et je n'ai encore rien inséré dans la table de date supérieure à 13:37.&lt;/p&gt;
&lt;pre&gt;marc=# EXPLAIN ANALYZE select * from test where a &amp;gt; '2010-06-03 13:37:00';&lt;br /&gt;QUERY PLAN                                                  &lt;br /&gt;--------------------------------------------------------------------------------------------------------------&lt;br /&gt;Index Scan using idxtsta on test  (cost=0.00..8.30 rows=1 width=8) (actual time=0.007..0.007 rows=0 loops=1)&lt;br /&gt;Index Cond: (a &amp;gt; '2010-06-03 13:37:00'::timestamp without time zone)&lt;br /&gt;Total runtime: 0.027 ms&lt;br /&gt;(3 rows)&lt;/pre&gt;Tout est donc normal. La borne supérieure de mon histogramme est 2010-06-03 13:36:16.830007 (l'information se trouve dans pg_stats). Il n'a aucun moyen d'évaluer le nombre d'enregistrements supérieurs à 13:37, et en 8.4, il aurait continué à estimer '1' tant qu'un analyze n'aura pas été passé.
&lt;pre&gt;marc=# DO LANGUAGE plpgsql&lt;br /&gt;$$&lt;br /&gt;DECLARE&lt;br /&gt;i int;&lt;br /&gt;BEGIN&lt;br /&gt;FOR i IN 1..10000 LOOP&lt;/pre&gt;
&lt;pre&gt;   INSERT INTO test VALUES (clock_timestamp());&lt;/pre&gt;
&lt;pre&gt;END LOOP;&lt;br /&gt;END&lt;br /&gt;$$&lt;br /&gt;;&lt;br /&gt;DO&lt;/pre&gt;
&lt;p&gt;(Décidément, j'aime bien les DO).&lt;/p&gt;
&lt;p&gt;Nous venons d'insérer 10000 dates supérieures à 13:37.&lt;/p&gt;
&lt;pre&gt;marc=# EXPLAIN ANALYZE SELECT * FROM test WHERE a &amp;gt; '2010-06-03 13:37:00';&lt;br /&gt;QUERY PLAN                                                       &lt;br /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;Index Scan using idxtsta on test  (cost=0.00..43.98 rows=1125 width=8) (actual time=0.012..13.590 rows=10000 loops=1)&lt;br /&gt;Index Cond: (a &amp;gt; '2010-06-03 13:37:00'::timestamp without time zone)&lt;br /&gt;Total runtime: 23.567 ms&lt;br /&gt;(3 rows)&lt;/pre&gt;&lt;p&gt;Le nombre d'enregistrements estimé n'est pas à 0 ou 1. Et pourtant les statistiques ne sont pas à jour&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# SELECT last_autoanalyze FROM pg_stat_user_tables WHERE relname = 'test';&lt;br /&gt;last_autoanalyze        &lt;br /&gt;-------------------------------&lt;br /&gt;2010-06-03 13:36:21.553477+02&lt;br /&gt;(1 row)&lt;/pre&gt;&lt;p&gt;Dans cet exemple, nous avons tout de même une erreur d'un facteur 10. Ce n'est pas si mal: sans cette optimisation, l'erreur aurait été d'un facteur 10&amp;nbsp;000. En tout cas, une erreur d'un facteur 10 nous donne de plus fortes chances de choisir un plan intelligent.&lt;/p&gt;
&lt;h3&gt;seq_page_cost/random_page_cost par tablespace&lt;/h3&gt;
&lt;pre&gt;marc=# ALTER TABLESPACE pg_default SET ( random_page_cost = 10, seq_page_cost=5);&lt;br /&gt;ALTER TABLESPACE&lt;/pre&gt;
&lt;p&gt;Nous venons de modifier random_page_cost et seq_page_cost pour tous les objets du tablespace pg_default. Quel peut être le cas d'utilisation&amp;nbsp;?&lt;/p&gt;
&lt;p&gt;C'est pour le cas où vous avez des tablespaces de performances différentes&amp;nbsp;: par exemple, vous avez quelques données essentielles sur un disque SSD, ou bien des données d'historique sur une vieille baie moins performante que la baie flambant neuf que vous avez décidé d'utiliser pour les données actives. Cela vous permet de signaler à PostgreSQL que tous vos tablespaces ne sont pas forcément équivalents en termes de performance. Cela ne s'applique, bien sûr, que sur de très grosses bases.&lt;/p&gt;
&lt;h3&gt;Permettre de forcer le nombre de valeurs distinctes d'une colonne&lt;/h3&gt;
&lt;p&gt;Ceci permet de forcer le nombre de valeurs différentes d'une colonne. Ce n'est pas à utiliser à la légère, mais uniquement quand l'ANALYZE sur la table n'arrive pas à obtenir une valeur raisonnable.&lt;/p&gt;
&lt;p&gt;Voici comment procéder&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# ALTER TABLE test ALTER COLUMN a SET (n_distinct = 2);&lt;br /&gt;ALTER TABLE&lt;/pre&gt;
&lt;p&gt;Il faut repasser un ANALYZE pour que la modification soit prise en compte&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# ANALYZE test;&lt;br /&gt;ANALYZE&lt;/pre&gt;
&lt;p&gt;Essayons maintenant&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# EXPLAIN SELECT distinct * from test;&lt;br /&gt;QUERY PLAN                            &lt;br /&gt;------------------------------------------------------------------&lt;br /&gt;HashAggregate  (cost=6263.00..6263.02 rows=2 width=8)&lt;br /&gt;-&amp;gt;  Seq Scan on test  (cost=0.00..5338.00 rows=370000 width=8)&lt;br /&gt;(2 rows)&lt;/pre&gt;&lt;p&gt;C'est l'exemple même de ce qu'il ne faut pas faire&amp;nbsp;: j'ai bien 370 000 valeurs distinctes dans ma table. Maintenant mes plans d'exécution seront très mauvais.
&lt;/p&gt;
&lt;p&gt;Si la valeur n_distinct est positive, il s'agit du nombre de valeurs distinctes. Si la valeure est négative (entre 0 et -1), il s'agit du coefficient multiplicateur par rapport au nombre d'enregistrements estimés de la table&amp;nbsp;: par exemple -0.2 signifie qu'il y a 1 enregistrement distinct pour 5 enregistrements dans la table. 0 ramène le comportement à celui par défaut (c'est ANALYZE qui effectue la mesure).&lt;/p&gt;
&lt;p&gt;Ne touchez à ceci que si vous êtes absolument sûr d'avoir correctement diagnostiqué votre problème. Sinon, vous pouvez être sûr d'empirer les performances.&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;De nombreuses autres fonctionnalités de la base ont été améliorées. En voici quelques exemples parmi les plus significatifs&amp;nbsp;:&lt;/p&gt;
&lt;h3&gt;VACUUM FULL amélioré&lt;/h3&gt;
&lt;p&gt;La commande VACUUM FULL était jusque ici très lente. Cette commande permet de récupérer l'espace perdu dans une table, principalement quand la commande VACUUM&amp;nbsp;n'a pas été passée très régulièrement. Ceci était du à son mode de fonctionnement&amp;nbsp;: les enregistrements étaient lus et déplacés un par un d'un bloc de la table vers un bloc plus proche du début de la table. Une fois que la fin de la table était vide, l'enveloppe était réduite à sa taille minimale.&lt;/p&gt;
&lt;p&gt;Le problème était donc que ce mécanisme était très inefficace&amp;nbsp;: le déplacement des enregistrements un à un entraine beaucoup d'entrées/sorties aléatoires (non contigues). Par ailleurs, durant cette réorganisation, les index doivent être maintenus, ce qui rend l'opération encore plus couteuse, et fait qu'à la fin d'un vacuum full, les index sont fortement désorganisés. Il est d'ailleurs conseillé de réindexer une table juste après y avoir appliqué un VACUUM FULL.&lt;/p&gt;
&lt;p&gt;La commande VACUUM FULL, dans cette nouvelle version, crée une nouvelle table à partir de la table actuelle, en y recopiant tous les enregistrements de façon séquentielle. Une fois tous les enregistrements recopiés, les index sont recréés, et l'ancienne table détruite.&lt;/p&gt;
&lt;p&gt;Cette méthode présente l'avantage d'être très largement plus rapide. Toutefois, VACUUM&amp;nbsp;FULL&amp;nbsp;demande toujours un verrou complet sur la table durant le temps de son exécution. Le seul défaut de cette méthode par rapport à l'ancienne, c'est que pendant le temps de son exécution, le nouveau VACUUM FULL peut consommer jusqu'à 2&amp;nbsp;fois l'espace disque de la table, puisqu'il en crée une nouvelle version.&lt;/p&gt;
&lt;p&gt;Mesurons maintenant le temps d'exécution suivant les deux méthodes. Dans les deux cas, on prépare le jeu de test comme suit (en 8.4 et en 9.0:)&lt;/p&gt;
&lt;pre&gt;marc=# CREATE TABLE test (a int);&lt;br /&gt;CREATE TABLE&lt;br /&gt;marc=# CREATE INDEX idxtsta on test (a);&lt;br /&gt;CREATE INDEX&lt;br /&gt;marc=# INSERT INTO test SELECT generate_series(1,1000000);&lt;br /&gt;INSERT 0 1000000&lt;br /&gt;marc=# DELETE FROM test where a%3=0;&lt;br /&gt;DELETE 333333&lt;br /&gt;marc=# VACUUM test;&lt;br /&gt;VACUUM&lt;/pre&gt;
&lt;pre&gt;En 8.4&amp;nbsp;:&lt;br /&gt;marc=# \timing&lt;br /&gt;Timing is on.&lt;br /&gt;marc=# VACUUM FULL test;&lt;br /&gt;VACUUM&lt;br /&gt;Time: 6306,603 ms&lt;br /&gt;marc=# REINDEX TABLE test&amp;nbsp;;&lt;br /&gt;REINDEX&lt;br /&gt;Time: 1799,998 ms&lt;/pre&gt;
&lt;p&gt;Soit environ 8 secondes.&lt;/p&gt;
&lt;pre&gt;En 9.0&amp;nbsp;:&lt;br /&gt;marc=# \timing&lt;br /&gt;Timing is on.&lt;br /&gt;marc=# VACUUM FULL test;&lt;br /&gt;VACUUM&lt;br /&gt;Time: 2563,467 ms&lt;/pre&gt;
&lt;p&gt;Ça ne veut toujours pas dire que VACUUM FULL est une bonne idée en production. Si vous en avez besoin, c'est probablement que votre politique de VACUUM n'est pas appropriée.&lt;/p&gt;
&lt;h3&gt;64 bits sous windows.&lt;/h3&gt;
&lt;p&gt;Il y a maintenant une version 64 bits native pour Windows. Pour l'instant aucune mesure de performance n'a été effectuée (à ma connaissance) pour en connaître les gains&amp;nbsp;: peut on maintenant dépasser la limite de shared_buffers aux alentours de 500Mo sous Windows sans dégradations de performances&amp;nbsp;?&lt;/p&gt;
&lt;h3&gt;PL/pgSQL par défaut&lt;/h3&gt;
&lt;p&gt;Vous n'aurez plus à ajouter le langage plpgsql dans chaque base où vous en avez besoin car il est installé par défaut.&lt;/p&gt;
&lt;h3&gt;Beaucoup d'améliorations sur les langages PL.&lt;/h3&gt;
&lt;p&gt;Beaucoup de langages ont vu leur support grandement amélioré, PLPerl par exemple. Consultez les release notes si vous voulez davantage de détails, les modifications étant nombreuses.&lt;/p&gt;
&lt;h3&gt;Mot clé ALIAS&lt;/h3&gt;
&lt;p&gt;Nous pouvons maintenant utiliser le mot clé ALIAS. Comme son nom l'indique, il permet de créer des alias de variables.&lt;/p&gt;
&lt;p&gt;La syntaxe est «&amp;nbsp;nouveau_nom ALIAS FOR ancien_nom ». Cela se place dans la section DECLARE d'un code PL/pgSQL.&lt;/p&gt;
&lt;p&gt;C'est utilisable dans deux cas principalement&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;
pour donner des noms aux variables d'une fonction PL:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;   monparam ALIAS FOR $0&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;pour renommer des variables qui pourraient être en conflit. Dans un trigger par exemple:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;   nouvelle_valeur ALIAS FOR new&lt;/pre&gt;   (on aurait risqué le conflit avec la variable new dans la fonction trigger).
&lt;h3&gt;Passage de message dans NOTIFY/pg_notify&lt;/h3&gt;
&lt;p&gt;On peut donc passer des messages dans NOTIFY. Voici la méthode:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;On s'abonne dans la session 1 à la file d'attente «&amp;nbsp;messagerie_instantanee&amp;nbsp;»
&lt;br /&gt;Session 1&amp;nbsp;:
&lt;br /&gt;&lt;pre&gt;marc=# LISTEN messagerie_instantanee;&lt;br /&gt;LISTEN&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;On envoie une notification dans la file d'attente «&amp;nbsp;messagerie_instantanee&amp;nbsp;» d'une autre session
&lt;br /&gt;Session 2&amp;nbsp;:
&lt;br /&gt;&lt;pre&gt;marc=# NOTIFY messagerie_instantanee, 'Vous avez reçu un popup';&lt;br /&gt;NOTIFY&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;On vérifie le contenu de la file d'attente
&lt;br /&gt;Session 1&amp;nbsp;:&lt;br /&gt;&lt;pre&gt;LISTEN&lt;br /&gt;Asynchronous notification &quot;messagerie_instantanee&quot; with payload &quot;Vous avez reçu un popup&quot; received from server process with PID 5943.&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;li&gt;On peut donc maintenant associer des messages (payloads) aux notifications, ce qui rend le mécanisme beaucoup plus puissant.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Signalons aussi la présence d'une nouvelle fonction pg_notify. &lt;/p&gt;
&lt;p&gt;Le code de la session 2 peut donc être: &lt;/p&gt;
&lt;pre&gt;SELECT pg_notify('messagerie_instantanee','Vous avez reçu un popup');&lt;/pre&gt;
&lt;p&gt;Cela peut simplifier l'écriture, dans le cas d'un programme devant piloter de nombreuses files de messages.&lt;/p&gt;
&lt;h3&gt;get_bit et set_bit pour les bit strings&lt;/h3&gt;
&lt;p&gt;En voici un exemple très synthétique. Cet outil permet de manipuler les bits indépendamment dans un bit().&lt;/p&gt;
&lt;pre&gt;&lt;br /&gt;marc=# SELECT set_bit('1111'::bit(4),2,0);&lt;br /&gt; set_bit &lt;br /&gt;---------&lt;br /&gt; 1101&lt;br /&gt;(1 row)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;marc=# SELECT get_bit('1101'::bit(4),2);&lt;br /&gt; get_bit &lt;br /&gt;---------&lt;br /&gt;       0&lt;br /&gt;(1 row)&lt;/pre&gt;&lt;h3&gt;application_name pour pg_stat_activity&lt;/h3&gt;
&lt;p&gt;Dans la session de supervision&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;marc=# SELECT * from pg_stat_activity where procpid= 5991;&lt;/p&gt;
&lt;pre&gt;datid | datname | procpid | usesysid | usename | application_name | client_addr | client_port |         backend_start         | xact_start | query_start | waiting | current_query&lt;br /&gt;------+---------+---------+----------+---------+------------------+-------------+-------------+-------------------------------+------------+-------------+---------+----------------&lt;br /&gt;16384 | marc    |    5991 |       10 | marc    | psql             |             |          -1 | 2010-05-16 13:48:10.154113+02 |            |             | f       | &amp;lt;IDLE&amp;gt;&lt;/pre&gt;
&lt;p&gt;(1 row)&lt;/p&gt;
&lt;p&gt;Dans la session '5991'&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;marc=# SET application_name TO 'mon_appli';
SET&lt;/p&gt;
&lt;p&gt;Dans la session de supervision&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;marc=# SELECT * from pg_stat_activity where procpid= 5991;&lt;/p&gt;
&lt;pre&gt;datid | datname | procpid | usesysid | usename | application_name | client_addr | client_port |         backend_start         | xact_start |          query_start          | waiting | current_query&lt;br /&gt;------+---------+---------+----------+---------+------------------+-------------+-------------+-------------------------------+------------+-------------+---------+----------------&lt;br /&gt;16384 | marc    |    5991 |       10 | marc    | mon_appli        |             |          -1 | 2010-05-16 13:48:10.154113+02 |            | 2010-05-16 13:49:13.107413+02 | f       | &amp;lt;IDLE&amp;gt;&lt;/pre&gt;
&lt;p&gt;(1 row)&lt;/p&gt;
&lt;p&gt;À vous de le positionner correctement dans votre application, ou vos sessions. Votre DBA vous dira merci, sachant enfin qui lance quoi sur son serveur facilement.&lt;/p&gt;
&lt;h3&gt;Configuration par base de données+rôle&lt;/h3&gt;
&lt;pre&gt;marc=# ALTER ROLE marc IN database marc set log_statement to 'all';&lt;br /&gt;ALTER ROLE&lt;/pre&gt;
&lt;p&gt;Pour savoir qui a quelles modifications de variables dans quels rôles de quelles bases de données, il y a une nouvelle commande psql&amp;nbsp;: &lt;/p&gt;
&lt;pre&gt;marc=# \drds&lt;/pre&gt;
&lt;pre&gt;         List of settings&lt;br /&gt;role | database |     settings&lt;br /&gt;-----+----------+-----------------&lt;br /&gt;marc | marc     | log_statement=all&lt;/pre&gt;&lt;pre&gt;(1 row)&lt;/pre&gt;
&lt;p&gt;Il y a donc eu une modification du catalogue pour gérer cette nouvelle fonctionnalité&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;Table &quot;pg_catalog.pg_db_role_setting&quot;&lt;/p&gt;
&lt;pre&gt;  Column    |  Type  | Modifier&lt;br /&gt;------------+--------+----------&lt;br /&gt;setdatabase | oid    | not null&lt;br /&gt;setrole     | oid    | not null&lt;br /&gt;setconfig   | text   |&lt;/pre&gt;
&lt;h3&gt;Tracer les parametres modifiés lors d'un rechargement du postgresql.conf&lt;/h3&gt;
Voici un exemple, lors de la modification du paramètre log_line_prefix :&lt;br /&gt;&lt;pre&gt;LOG:&amp;nbsp; received SIGHUP, reloading configuration files&lt;br /&gt;&amp;lt;%&amp;gt; LOG:&amp;nbsp; parameter &quot;log_line_prefix&quot; changed to &quot;&amp;lt;%u%%%d&amp;gt; &quot;&lt;/pre&gt;
&lt;h3&gt;Nouvelles options de frame dans les fonctions de fenêtrage&lt;/h3&gt;
&lt;p&gt;Si vous ne vous connaissez pas les fonctions de fenêtrage, lisez la présentation de la 8.4 ici : &lt;a href=&quot;http://blog.postgresql.fr/index.php?post/2010/06/16/post.php?id=475&quot; title=&quot;http://blog.postgresql.fr/index.php?post/2009/04/28/Nouveaut%C3%A9s-PostgreSQL-8.4&quot;&gt;Nouveautés PostgreSQL 8.4&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Il y a donc des nouveautés dans le paramétrage du 'frame' des fonctions de fenêtrage. Soit la table suivante (faute de mieux…)&lt;/p&gt;
&lt;pre&gt;marc=# SELECT * FROM salaire ;&lt;br /&gt;entite | personne&amp;nbsp; | salaire | date_embauche &lt;br /&gt;-------+-----------+---------+---------------&lt;br /&gt;R&amp;amp;D&amp;nbsp;&amp;nbsp;&amp;nbsp; | marc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 700.00 | 2010-02-15&lt;br /&gt;Compta | etienne&amp;nbsp;&amp;nbsp; |&amp;nbsp; 800.00 | 2010-05-01&lt;br /&gt;R&amp;amp;D&amp;nbsp;&amp;nbsp;&amp;nbsp; | maria&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 700.00 | 2009-01-01&lt;br /&gt;R&amp;amp;D&amp;nbsp;&amp;nbsp;&amp;nbsp; | kevin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 500.00 | 2009-05-01&lt;br /&gt;R&amp;amp;D&amp;nbsp;&amp;nbsp;&amp;nbsp; | jean&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 1000.00 | 2008-07-01&lt;br /&gt;R&amp;amp;D&amp;nbsp;&amp;nbsp;&amp;nbsp; | tom&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 1100.00 | 2005-01-01&lt;br /&gt;Compta | stephanie |&amp;nbsp; 850.00 | 2006-01-01&lt;/pre&gt;
&lt;p&gt;Voici un exemple de fonctions de fenêtrage, sans préciser le frame.&lt;/p&gt;
&lt;pre&gt;marc=# SELECT entite, personne, salaire, date_embauche, avg(salaire) OVER (PARTITION BY entite ORDER BY date_embauche) FROM salaire;&lt;br /&gt;entite | personne&amp;nbsp; | salaire | date_embauche |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; avg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;-------+-----------+---------+---------------+-----------------------&lt;br /&gt;Compta | stephanie |&amp;nbsp; 850.00 | 2006-01-01&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 850.0000000000000000&lt;br /&gt;Compta | etienne&amp;nbsp;&amp;nbsp; |&amp;nbsp; 800.00 | 2010-05-01&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 825.0000000000000000&lt;br /&gt;R&amp;amp;D&amp;nbsp;&amp;nbsp;&amp;nbsp; | tom&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 1100.00 | 2005-01-01&amp;nbsp;&amp;nbsp;&amp;nbsp; | 1100.0000000000000000&lt;br /&gt;R&amp;amp;D&amp;nbsp;&amp;nbsp;&amp;nbsp; | jean&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 1000.00 | 2008-07-01&amp;nbsp;&amp;nbsp;&amp;nbsp; | 1050.0000000000000000&lt;br /&gt;R&amp;amp;D&amp;nbsp;&amp;nbsp;&amp;nbsp; | maria&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 700.00 | 2009-01-01&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 933.3333333333333333&lt;br /&gt;R&amp;amp;D&amp;nbsp;&amp;nbsp;&amp;nbsp; | kevin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 500.00 | 2009-05-01&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 825.0000000000000000&lt;br /&gt;R&amp;amp;D&amp;nbsp;&amp;nbsp;&amp;nbsp; | marc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 700.00 | 2010-02-15&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; 800.0000000000000000&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;Le frame est le groupe d'enregistrements sur lequel la fonctions de fenêtrage est appliquée. Évidemment, si on ne précise pas la frame, il met une valeur par défaut. Voici la même requête, écrite avec une frame explicite.&lt;/p&gt;
&lt;pre&gt;marc=# SELECT entite, personne, salaire, date_embauche, avg(salaire) OVER (PARTITION BY entite ORDER BY date_embauche RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM salaire;&lt;br /&gt;entite | personne  | salaire | date_embauche |          avg          &lt;br /&gt;-------+-----------+---------+---------------+-----------------------&lt;br /&gt;Compta | stephanie |  850.00 | 2006-01-01    |  850.0000000000000000&lt;br /&gt;Compta | etienne   |  800.00 | 2010-05-01    |  825.0000000000000000&lt;br /&gt;R&amp;amp;D    | tom       | 1100.00 | 2005-01-01    | 1100.0000000000000000&lt;br /&gt;R&amp;amp;D    | jean      | 1000.00 | 2008-07-01    | 1050.0000000000000000&lt;br /&gt;R&amp;amp;D    | maria     |  700.00 | 2009-01-01    |  933.3333333333333333&lt;br /&gt;R&amp;amp;D    | kevin     |  500.00 | 2009-05-01    |  825.0000000000000000&lt;br /&gt;R&amp;amp;D    | marc      |  700.00 | 2010-02-15    |  800.0000000000000000&lt;/pre&gt;
&lt;p&gt;La frame est donc par 'range', entre le début du range et l'enregistrement courant (pas vraiment l'enregistrement courant en fait, mais laissons de côté les subtilités, allez lire la doc si vous voulez en savoir plus). On constate que la fonction de moyenne (avg) est appliquée entre le premier des enregistrements du frame (les enregistrements de la même entité) et l'enregistrement courant.&lt;/p&gt;
&lt;p&gt;Première nouveauté&amp;nbsp;: en 9.0, la frame peut se calculer entre l'enregistrement courant et la fin du groupe (au lieu d'entre le début du groupe et l'enregistrement courant):&lt;/p&gt;
&lt;pre&gt;marc=# SELECT entite, personne, salaire, date_embauche, avg(salaire)  OVER (PARTITION BY entite ORDER BY date_embauche RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM salaire;&lt;br /&gt;entite | personne  | salaire | date_embauche |         avg          &lt;br /&gt;-------+-----------+---------+---------------+----------------------&lt;br /&gt;Compta | stephanie |  850.00 | 2006-01-01    | 825.0000000000000000&lt;br /&gt;Compta | etienne   |  800.00 | 2010-05-01    | 800.0000000000000000&lt;br /&gt;R&amp;amp;D    | tom       | 1100.00 | 2005-01-01    | 800.0000000000000000&lt;br /&gt;R&amp;amp;D    | jean      | 1000.00 | 2008-07-01    | 725.0000000000000000&lt;br /&gt;R&amp;amp;D    | maria     |  700.00 | 2009-01-01    | 633.3333333333333333&lt;br /&gt;R&amp;amp;D    | kevin     |  500.00 | 2009-05-01    | 600.0000000000000000&lt;br /&gt;R&amp;amp;D    | marc      |  700.00 | 2010-02-15    | 700.0000000000000000&lt;/pre&gt;
&lt;p&gt;Deuxième nouveauté, on peut calculer des frames sur les n enregistrements précédents et n enregistrements suivants. Aucun intérêt avec ce jeu de données, mais il faut bien que je vous donne un exemple&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# SELECT entite, personne, salaire, date_embauche, avg(salaire)  OVER (PARTITION BY entite ORDER BY date_embauche RANGE ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM salaire;&lt;br /&gt;entite | personne  | salaire | date_embauche |          avg          &lt;br /&gt;-------+-----------+---------+---------------+-----------------------&lt;br /&gt;Compta | stephanie |  850.00 | 2006-01-01    |  825.0000000000000000&lt;br /&gt;Compta | etienne   |  800.00 | 2010-05-01    |  825.0000000000000000&lt;br /&gt;R&amp;amp;D    | tom       | 1100.00 | 2005-01-01    | 1050.0000000000000000&lt;br /&gt;R&amp;amp;D    | jean      | 1000.00 | 2008-07-01    |  933.3333333333333333&lt;br /&gt;R&amp;amp;D    | maria     |  700.00 | 2009-01-01    |  733.3333333333333333&lt;br /&gt;R&amp;amp;D    | kevin     |  500.00 | 2009-05-01    |  633.3333333333333333&lt;br /&gt;R&amp;amp;D    | marc      |  700.00 | 2010-02-15    |  600.0000000000000000&lt;/pre&gt;
&lt;p&gt;On reste bien sûr sur le groupe (voir l'enregistrement de tom par exemple, l'enregistrement d'etienne ne rentre pas dans le calcul de sa moyenne).&lt;/p&gt;
&lt;p&gt;Si on voulait la même requête que précédemment, mais avec des moyennes sur 3 enregistrements glissants, sans réinitialiser à chaque entité (toujours aucun intérêt pratique dans l'exemple).&lt;/p&gt;
&lt;pre&gt;marc=# SELECT entite, personne, salaire, date_embauche, avg(salaire) OVER (ORDER BY entite, date_embauche ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM salaire;&lt;br /&gt;entite | personne  | salaire | date_embauche |         avg          &lt;br /&gt;--------+-----------+---------+---------------+----------------------&lt;br /&gt;Compta | stephanie |  850.00 | 2006-01-01    | 825.0000000000000000&lt;br /&gt;Compta | etienne   |  800.00 | 2010-05-01    | 916.6666666666666667&lt;br /&gt;R&amp;amp;D    | tom       | 1100.00 | 2005-01-01    | 966.6666666666666667&lt;br /&gt;R&amp;amp;D    | jean      | 1000.00 | 2008-07-01    | 933.3333333333333333&lt;br /&gt;R&amp;amp;D    | maria     |  700.00 | 2009-01-01    | 733.3333333333333333&lt;br /&gt;R&amp;amp;D    | kevin     |  500.00 | 2009-05-01    | 633.3333333333333333&lt;br /&gt;R&amp;amp;D    | marc      |  700.00 | 2010-02-15    | 600.0000000000000000&lt;/pre&gt;
&lt;p&gt;Bref, un outil à maîtriser d'urgence, si ce n'est pas déjà le cas (même si je n'ai pas été capable de vous donner un exemple décent).&lt;/p&gt;
&lt;h3&gt;Tris dans les aggrégations&lt;/h3&gt;
&lt;p&gt;Celle-ci est un peu subtile&amp;nbsp;: le résultat de certaines fonctions d'aggrégation dépend de l'ordre dans lequel on leur fournit les données.&lt;/p&gt;
&lt;p&gt;Il ne s'agit évidemment pas de count, avg, mais plutôt de array_agg, xml_agg, string_agg…&lt;/p&gt;
&lt;p&gt;Ce qui va me permettre de vous présenter deux nouvelles fonctionnalités d'un coup, string_agg étant une nouveauté de la 9.0.&lt;/p&gt;
&lt;p&gt;Reprenons la table salaire. Je voudrais la liste des employés, concaténés dans un seul champ, par entité. C'est pour stocker dans mon tableur.&lt;/p&gt;
&lt;pre&gt;marc=# SELECT entite,string_agg(personne,', ') FROM salaire GROUP BY entite;&lt;br /&gt;entite |          string_agg           &lt;br /&gt;-------+-------------------------------&lt;br /&gt;Compta | etienne, stephanie&lt;br /&gt;R&amp;amp;D    | marc, maria, kevin, jean, tom&lt;/pre&gt;&lt;p&gt;C'est déjà bien. Mais j'aimerais bien les avoir par ordre alphabétique, parce que je ne sais pas écrire de macro dans mon tableur pour retrier les données.&lt;/p&gt;
&lt;pre&gt;marc=# SELECT entite,string_agg(personne,', ' ORDER BY personne) FROM salaire GROUP BY entite;&lt;br /&gt;entite |          string_agg           &lt;br /&gt;--------+-------------------------------&lt;br /&gt;Compta | etienne, stephanie&lt;br /&gt;R&amp;amp;D    | jean, kevin, marc, maria, tom&lt;/pre&gt;
&lt;p&gt;Il suffit donc de rajouter une clause de tri à l'intérieur de la fonction d'agrégat, sans virgule à la fin.&lt;/p&gt;
&lt;h3&gt;Amélioration des erreurs sur contrainte&amp;nbsp;: message plus clair&lt;/h3&gt;
&lt;p&gt;En 8.4: &lt;/p&gt;
&lt;pre&gt;marc=# INSERT INTO test VALUES (1);&lt;br /&gt;ERROR:  duplicate key value violates unique constraint &quot;test_a_key&quot;&lt;/pre&gt;
&lt;p&gt;En 9.0:&lt;/p&gt;
&lt;pre&gt;marc=# INSERT INTO test VALUES (1);&lt;br /&gt;ERROR:  duplicate key value violates unique constraint &quot;test_a_key&quot;&lt;br /&gt;DETAIL:  Key (a)=(1) already exists.&lt;/pre&gt;
&lt;p&gt;Cela devrait aider à trouver les causes des violations de contrainte.&lt;/p&gt;
&lt;h3&gt;Explain buffers/statistiques sur les hash, xml, json, yaml, nouvelle syntaxe optionnelle explain&lt;/h3&gt;
&lt;p&gt;Voici un EXPLAIN ANALYZE classique&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# EXPLAIN ANALYZE SELECT a, sum(c) FROM pere JOIN fils ON (pere.a = fils.b) WHERE b BETWEEN 1000 AND 300000 GROUP BY a;                                                           QUERY PLAN                                                            &lt;br /&gt;---------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt; HashAggregate  (cost=905.48..905.86 rows=31 width=8) (actual time=0.444..0.453 rows=6 loops=1)&lt;br /&gt;   -&amp;gt;  Nested Loop  (cost=10.70..905.32 rows=31 width=8) (actual time=0.104..0.423 rows=6 loops=1)&lt;br /&gt;         -&amp;gt;  Bitmap Heap Scan on fils  (cost=10.70..295.78 rows=31 width=8) (actual time=0.040..0.154 rows=30 loops=1)&lt;br /&gt;               Recheck Cond: ((b &amp;gt;= 1000) AND (b &amp;lt;= 300000))&lt;br /&gt;               -&amp;gt;  Bitmap Index Scan on fils_pkey  (cost=0.00..10.69 rows=31 width=0) (actual time=0.023..0.023 rows=30 loops=1)&lt;br /&gt;                     Index Cond: ((b &amp;gt;= 1000) AND (b &amp;lt;= 300000))&lt;br /&gt;         -&amp;gt;  Index Scan using pere_pkey on pere  (cost=0.00..19.65 rows=1 width=4) (actual time=0.005..0.005 rows=0 loops=30)&lt;br /&gt;               Index Cond: (pere.a = fils.b)&lt;br /&gt; Total runtime: 0.560 ms&lt;br /&gt;(9 rows)&lt;/pre&gt;&lt;p&gt;Si vous voulez avoir accès aux nouvelles informations, il faut opter pour la nouvelle syntaxe&amp;nbsp;:
&lt;/p&gt;
&lt;pre&gt;EXPLAIN [ ( { ANALYZE boolean | VERBOSE boolean | COSTS boolean | BUFFERS boolean | FORMAT { TEXT | XML | JSON | YAML } } [, ...] ) ] instruction&lt;/pre&gt;&lt;p&gt;Par exemple&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# EXPLAIN (ANALYZE true, VERBOSE true, BUFFERS true) SELECT a, sum(c) FROM pere JOIN fils ON (pere.a = fils.b) WHERE b BETWEEN 1000 AND 300000 GROUP BY a;&lt;br /&gt;                                                             QUERY PLAN &lt;br /&gt;-------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt; HashAggregate  (cost=905.48..905.86 rows=31 width=8) (actual time=1.326..1.336 rows=6 loops=1)&lt;br /&gt;   Output: pere.a, sum(fils.c)&lt;br /&gt;   Buffers: shared hit=58 read=40&lt;br /&gt;   -&amp;gt;  Nested Loop  (cost=10.70..905.32 rows=31 width=8) (actual time=0.278..1.288 rows=6 loops=1)&lt;br /&gt;         Output: pere.a, fils.c&lt;br /&gt;         Buffers: shared hit=58 read=40&lt;br /&gt;         -&amp;gt;  Bitmap Heap Scan on public.fils  (cost=10.70..295.78 rows=31 width=8) (actual time=0.073..0.737 rows=30 loops=1)&lt;br /&gt;               Output: fils.b, fils.c&lt;br /&gt;               Recheck Cond: ((fils.b &amp;gt;= 1000) AND (fils.b &amp;lt;= 300000))&lt;br /&gt;               Buffers: shared hit=4 read=28&lt;br /&gt;               -&amp;gt;  Bitmap Index Scan on fils_pkey  (cost=0.00..10.69 rows=31 width=0) (actual time=0.030..0.030 rows=30 loops=1)&lt;br /&gt;                     Index Cond: ((fils.b &amp;gt;= 1000) AND (fils.b &amp;lt;= 300000))&lt;br /&gt;                     Buffers: shared hit=3&lt;br /&gt;         -&amp;gt;  Index Scan using pere_pkey on public.pere  (cost=0.00..19.65 rows=1 width=4) (actual time=0.013..0.014 rows=0 loops=30)&lt;br /&gt;               Output: pere.a&lt;br /&gt;               Index Cond: (pere.a = fils.b)&lt;br /&gt;               Buffers: shared hit=54 read=12&lt;br /&gt; Total runtime: 1.526 ms&lt;br /&gt;(18 rows)&lt;/pre&gt;VERBOSE apporte les lignes 'Output' (l'option existait déjà en 8.4).
&lt;p&gt;BUFFERS indique les opérations sur les buffers (les entrées sorties de la requête): hit correspond aux données lues en cache, read aux données demandées au système d'exploitation. Ici, peu de données étaient en cache.&lt;/p&gt;
&lt;p&gt;Vous pouvez aussi demander une sortie dans un autre format que texte. Pour un utilisateur, cela n'a aucune importance. Pour les développeurs d'interfaces graphiques présentant le résultat d'explain, cela permettra de faire l'économie d'un analyseur sur le texte du EXPLAIN, et des bugs qui vont avec.&lt;/p&gt;
&lt;p&gt;On peut aussi désactiver l'affichage des coûts avec COSTS false.&lt;/p&gt;
&lt;h3&gt;Dictionnaire de filtrage (unaccent)&lt;/h3&gt;
&lt;p&gt;Il est possible maintenant de paramétrer des dictionnaires de filtrage. On parle bien sûr des dictionnaires du Full Text Search.&lt;/p&gt;
&lt;p&gt;Le but de ces dictionnaires de filtrage est d'appliquer un premier filtrage sur les mots avant de les indexer. Le module présenté ci-dessous (unaccent) est l'illustration de ce mécanisme. Le filtrage peut consister en la suppression de mots ou en leur modification.&lt;/p&gt;
&lt;p&gt;Unaccent ne supprime pas les mots, il supprime les accents (tous les signes diacritiques en fait), en remplaçant les caractères accentués par leur version sans accent. Unaccent est un module contrib.&lt;/p&gt;
&lt;p&gt;Pour l'installer, comme pour toutes les contribs, psql mabase &amp;lt; chemin_contribs/unaccent.sql.&lt;/p&gt;
&lt;p&gt;Nous allons à peu près suivre la documentation d'unaccent, les auteurs ayant eu la gentillesse de donner leurs exemples en français.&lt;/p&gt;
&lt;p&gt;Nous créons un nouveau dictionnaire fr (pour ne pas polluer le dictionnaire french 'standard')&amp;nbsp;: &lt;/p&gt;
&lt;pre&gt;marc=# CREATE TEXT SEARCH CONFIGURATION fr ( COPY = french );&lt;br /&gt;CREATE TEXT SEARCH CONFIGURATION&lt;/pre&gt;
&lt;p&gt;Nous modifions le paramétrage de 'fr' pour les lexemes de type mot, en lui demandant de les faire passer par unaccent et french_stem (au lieu de seulement french_stem) &lt;/p&gt;
&lt;pre&gt;marc=# ALTER TEXT SEARCH CONFIGURATION fr&lt;br /&gt;ALTER MAPPING FOR hword, hword_part, word&lt;br /&gt;WITH unaccent, french_stem;&lt;br /&gt;ALTER TEXT SEARCH CONFIGURATION&lt;/pre&gt;&lt;pre&gt;SELECT to_tsvector('fr','Hôtels de la Mer');&lt;br /&gt;to_tsvector    &lt;br /&gt;-------------------&lt;br /&gt;'hotel':1 'mer':4&lt;br /&gt;(1 row)&lt;br /&gt;&lt;br /&gt;marc=# SELECT to_tsvector('fr','Hôtel de la Mer') @@ to_tsquery('fr','Hotels');&lt;br /&gt;?column? &lt;br /&gt;----------&lt;br /&gt;t&lt;br /&gt;(1 row)&lt;/pre&gt;Cela vous permet donc, sans changer une ligne de code, et en gardant les caractères accentués, de rechercher maintenant sans accent.
&lt;h3&gt;vacuumdb --analyze-only&lt;/h3&gt;
&lt;p&gt;Comme son nom l'indique, on peut maintenant utiliser vacuumdb pour passer des analyses uniquement. Cela peut être pratique dans une crontab.&lt;/p&gt;
&lt;h3&gt;Amélioration du module contrib hstore&lt;/h3&gt;
&lt;p&gt;Ce contrib, déjà très pratique, devient encore plus puissant&amp;nbsp;: &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;La limite de taille sur les clés et valeurs a été supprimée.&lt;/li&gt;
&lt;li&gt;Il est maintenant possible d'utiliser GROUP BY et DISTINCT &lt;/li&gt;
&lt;li&gt;De nombreux opérateurs et fonctions ont été ajoutés&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un exemple serait trop long, tellement ce module est riche. Lisez la documentation sans perdre de temps&amp;nbsp;!&lt;/p&gt;
&lt;h3&gt;Texte requête dans auto_explain&lt;/h3&gt;
&lt;p&gt;Le module contrib auto_explain affichera maintenant le code de la requête en même temps que son plan, ce qui devrait en augmenter la lisibilité.&lt;/p&gt;
&lt;h3&gt;Compteurs sur buffers dans pg_stat_statements&lt;/h3&gt;
&lt;p&gt;Ce module contrib, déjà très utile, vient de rajouter des compteurs. Pour rappel, son intérêt est de stocker des statistiques sur les requêtes exécutées par le moteur. Jusque là, il donnait la requête, le nombre d'exécutions, son temps cumulé et le nombre d'enregistrements cumulés. Maintenant, il collecte aussi des informations sur les entrées sorties (en cache, et réelles).&lt;/p&gt;
&lt;pre&gt;marc=# SELECT * from pg_stat_statements order by total_time desc limit 2;&lt;br /&gt;-[ RECORD 1 ]-------+---------------------&lt;br /&gt;userid              | 10&lt;br /&gt;dbid                | 16485&lt;br /&gt;query               | SELECT * from fils ;&lt;br /&gt;calls               | 2&lt;br /&gt;total_time          | 0.491229&lt;br /&gt;rows                | 420000&lt;br /&gt;shared_blks_hit     | 61&lt;br /&gt;shared_blks_read    | 2251&lt;br /&gt;shared_blks_written | 0&lt;br /&gt;local_blks_hit      | 0&lt;br /&gt;local_blks_read     | 0&lt;br /&gt;local_blks_written  | 0&lt;br /&gt;temp_blks_read      | 0&lt;br /&gt;temp_blks_written   | 0&lt;br /&gt;-[ RECORD 2 ]-------+---------------------&lt;br /&gt;userid              | 10&lt;br /&gt;dbid                | 16485&lt;br /&gt;query               | SELECT * from pere;&lt;br /&gt;calls               | 2&lt;br /&gt;total_time          | 0.141445&lt;br /&gt;rows                | 200000&lt;br /&gt;shared_blks_hit     | 443&lt;br /&gt;shared_blks_read    | 443&lt;br /&gt;shared_blks_written | 0&lt;br /&gt;local_blks_hit      | 0&lt;br /&gt;local_blks_read     | 0&lt;br /&gt;local_blks_written  | 0&lt;br /&gt;temp_blks_read      | 0&lt;br /&gt;temp_blks_written   | 0&lt;/pre&gt;
&lt;p&gt;On peut donc, une fois ce contrib installé, répondre aux questions suivantes&amp;nbsp;: &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Quelle est la requête la plus gourmande en temps d'exécution cumulé&amp;nbsp;?&lt;/li&gt;
&lt;li&gt;Quelle est la requête qui génère le plus d'entrées sorties&amp;nbsp;? (attention, les données peuvent être tout de même dans le cache système)&lt;/li&gt;
&lt;li&gt;Quelles requêtes utilisent principalement le cache (et ne gagneront donc pas à le voir augmenté)&lt;/li&gt;
&lt;li&gt;Qui effectue beaucoup de mises à jour de bloc&amp;nbsp;?&lt;/li&gt;
&lt;li&gt;Qui génère des tris&amp;nbsp;?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;'local' et 'temp' correspondent aux buffers et entrées des tables temporaires et autres opérations locales (tris, hachages) à un backend.&lt;/p&gt;
&lt;h3&gt;passwordcheck&lt;/h3&gt;
&lt;p&gt;Ce module contrib permet de vérifier les mots de passe, et d'empêcher les plus mauvais de rentrer. Après l'avoir installé comme décrit dans la documentation, voici le résultat&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;marc=# ALTER USER marc password 'marc12';&lt;br /&gt;&amp;lt;marc%marc&amp;gt; ERROR:  password is too short&lt;br /&gt;&amp;lt;marc%marc&amp;gt; STATEMENT:  ALTER USER marc password 'marc12';&lt;br /&gt;ERROR:  password is too short&lt;br /&gt;marc=# ALTER USER marc password 'marc123456';&lt;br /&gt;&amp;lt;marc%marc&amp;gt; ERROR:  password must not contain user name&lt;br /&gt;&amp;lt;marc%marc&amp;gt; STATEMENT:  ALTER USER marc password 'marc123456';&lt;br /&gt;ERROR:  password must not contain user name&lt;/pre&gt;
&lt;p&gt;Ce module souffre de limitations, principalement dues au fait que PostgreSQL permet l'envoi d'un mot de passe déjà encrypté à la base au moment de la déclaration, ce qui l'empêche de le vérifier correctement. Néanmoins, c'est une avancée dans la bonne direction.&lt;/p&gt;
&lt;p&gt;Par ailleurs, le code du module contrib est bien documenté, ce qui permet de l'adapter à vos besoins (entre autres, il est très facile d'y activer la cracklib, afin d'effectuer des contrôles plus complexes).&lt;/p&gt;
&lt;p&gt;marc.cousin@dalibo.com&lt;/p&gt;</content>
		<author>
			<name>mcousin</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Créer ses propres types de données avec PostgreSQL</title>
		<link href="http://www.bortzmeyer.org/postgresql-creer-ses-types.html"/>
		<id>tag:bortzmeyer.org,2006-02:Blog/postgresql-creer-ses-types</id>
		<updated>2010-06-21T00:00:00+00:00</updated>
		<content type="html">Une des grands forces du SGBD
PostgreSQL est la possibilité de créer ses
propres types de données. Voici deux exemples complets et expliqués,
un pour les nombres rationnels, l'autre pour les noms de
domaine.</content>
		<author>
			<name>Stéphane Bortzmeyer</name>
			<email>stephane+blog@bortzmeyer.org</email>
			<uri>http://www.bortzmeyer.org/</uri>
		</author>
		<source>
			<title type="html">Blog de Stéphane Bortzmeyer</title>
			<link rel="self" href="http://re.rephrase.net/filter/?feed=http%3A%2F%2Fwww.bortzmeyer.org%2Ffeed.atom&amp;filter=title%3Apostgresql+OR+title%3ASQL"/>
			<id>tag:bortzmeyer.org,2006-02:Blog/</id>
			<updated>2010-09-02T20:17:14+00:00</updated>
			<rights type="html">© Stéphane Bortzmeyer, 2005. &lt;a href=&quot;http://www.gnu.org/copyleft/fdl.html&quot;&gt;GNU Free Documentation License&lt;/a&gt; (GFDL).</rights>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Fin de la traduction du manuel de la 9.0 (beta 2)</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/06/17/Fin-de-la-traduction-du-manuel-de-la-9.0-%28beta-2%29"/>
		<id>urn:md5:35b2139323dadedc807a46358e3725fe</id>
		<updated>2010-06-17T18:06:00+00:00</updated>
		<content type="html">&lt;p&gt;Enfin, pour moi en tout cas. Il ne reste plus aucun fichier à réserver pour la traduction. Seuls quatre fichiers sont toujours à traduire mais déjà réservés. En attendant leur traduction, il est possible de lire le reste au &lt;a href=&quot;http://docs.postgresql.fr/9.0/&quot; hreflang=&quot;fr&quot;&gt;format HTML&lt;/a&gt; ou au &lt;a href=&quot;http://docs.postgresql.fr/9.0/pg90.pdf&quot; hreflang=&quot;fr&quot;&gt;format PDF&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Bonne lecture.&lt;/p&gt;


&lt;p&gt;Et n'hésitez pas à me faire parvenir tout problème de traduction.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 13 juin 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/06/15/Nouvelles-hebdomadaires-de-PostgreSQL-13-juin-2010"/>
		<id>urn:md5:089fe8c4e7fccdf2519984e0c3c3adc8</id>
		<updated>2010-06-15T21:39:47+00:00</updated>
		<content type="html">&lt;p&gt;PostgreSQL 9.0 beta 2 publi&amp;eacute;e. Testez&amp;nbsp;! 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/developer/beta&quot;&gt;http://www.postgresql.org/developer/beta&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nouveau sondage&amp;nbsp;: laquelle des fonctionnalit&amp;eacute;s de la 9.0 Beta (hors r&amp;eacute;plication) est votre pr&amp;eacute;f&amp;eacute;r&amp;eacute;e&amp;nbsp;? 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/&quot;&gt;http://www.postgresql.org/community/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Les archives vid&amp;eacute;o du rassemblement du SFPUG du 8 d&amp;eacute;cembre 2009&amp;nbsp;: &quot;Contraintes d'Exclusion via Op&amp;eacute;rateur&quot;, sont maintenant disponibles&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://thebuild.com/blog/2009/12/23/sfpug-operator-exclusion-constraints/&quot;&gt;http://thebuild.com/blog/2009/12/23/sfpug-operator-exclusion-constraints/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les nouveaut&amp;eacute;s des produits d&amp;eacute;riv&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pgnotifyd v0.1, un gestionnaire de notification asynchrone pour PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.pogo.org.uk/~mark/pgnotifyd/&quot;&gt;http://www.pogo.org.uk/~mark/pgnotifyd/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en juin&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-06/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-06/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conf&amp;eacute;rence de Michael Renner au Netways OSDC &amp;agrave; Nuremberg (All.) les 23 &amp;amp; 24 juin 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.netways.de/osdc/y2010/programm/&quot;&gt;http://www.netways.de/osdc/y2010/programm/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CHAR(10), la conf&amp;eacute;rence PostgreSQL d&amp;eacute;di&amp;eacute;e au clustering, &amp;agrave; la haute-disponibilit&amp;eacute; et &amp;agrave; la r&amp;eacute;plication vient d'ouvrir les inscriptions en ligne et les r&amp;eacute;servations. 2 &amp;amp; 3 juillet 2010, Oriel College, Universit&amp;eacute; d'Oxford (Royaume-Uni)&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.char10.org/&quot;&gt;http://www.char10.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Le PDXPUG Day est programm&amp;eacute; pour le 18 juillet 2010 &amp;agrave; &quot;l'Oregon Convention Center&quot; &amp;agrave; Portland. D'avantage d'informations&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://wiki.postgresql.org/wiki/PDXPUGDay2010&quot;&gt;http://wiki.postgresql.org/wiki/PDXPUGDay2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'OSCON aura lieu &amp;agrave; Portland (Oregon) du 19 au 23 juillet 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.oscon.com/oscon2010&quot;&gt;http://www.oscon.com/oscon2010&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter et Josh Berkus. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100613&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Teodor Sigaev a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/contrib/dblink/uninstall_dblink.sql, add missed function dblink_connect_u(text[,text]) to uninstall script&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tom Lane a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/replication/walreceiver.c, avoid useless snprintf() call when update_process_title is turned off. Fujii Masao.&lt;/li&gt;
&lt;li&gt;In pgsql/src/pl/plpython/plpython.c, fix quite-bogus handling of arrays in plpython datum-to-PyObject conversion. Per bug #5497 from David Gardner.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/scripts/vacuumdb.c, add missing 'Z' letter to getopt_long call --- the newly added --analyze-only switch did not work in its short form -Z. Josh Berkus&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/Makefile, Postgres.txt should get cleaned by 'make clean'.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/plhandler.sgml, make procedural language handler reference C-language function docs. Based on suggestions from Jonathan Leto and Joshua Tolley.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/commands/explain.c, attempt to fix EXPLAIN (FORMAT YAML) quoting to behave sanely. The previous code failed to quote in many cases where quoting was necessary - YAML has loads of special characters, including -:[]{},&quot;'|*&amp;amp; - so quote much more aggressively, and only refrain from quoting things where it seems fairly clear that it isn't necessary. Per report from Dean Rasheed.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/catalog/pg_largeobject.c, remove stray word from comment.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/commands/explain.c, quote all string values in EXPLAIN (FORMAT YAML) output. While my previous attempt seems to always produce valid YAML, it doesn't always produce YAML that means what it appears to mean, because of tokens like &quot;0xa&quot; and &quot;true&quot;, which without quotes will be interpreted as integer or Boolean literals. So, instead, just quote everything that's not known to be a number, as we do for JSON. Dean Rasheed, with some changes to the comments by me.&lt;/li&gt;
&lt;li&gt;Fix ALTER LARGE OBJECT and GRANT ... ON LARGE OBJECT for large OIDs. The previous coding failed for OIDs too large to be represented by a signed integer.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, fix typo.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, fix misplaced modifier. As suggested by Ian Barwick.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tatsuo Ishii a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/replication/walreceiver.c, fix typo in the header comment. Per request from Masao Fujii.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ITAGAKI Takahiro a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/contrib/dblink/dblink.c, fix connection leak in dblink when dblink_connect() or dblink_connect_u() end with &quot;duplicate connection name&quot; errors. Backported to release 7.4.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/dblink/dblink.c, avoid &quot;identifier will be truncated&quot; warning in dblink when connection string is longer than NAMEDATALEN. The previous fix for long connection name broke the behavior.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/dblink/dblink.c, fix incorrect change in dblink introduced by the previous commit &quot;Fix connection leak in dblink&quot;.&lt;/li&gt;
&lt;li&gt;Rename restartpoint_command to archive_cleanup_command.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/storage/ipc/standby.c, remove max_standby_delay message from ps display of recovery process in waiting status. The parameter is not so interesting in ps display because it is referable in postgresql.conf.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Magnus Hagander a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xlog.c, make the walwriter close its handle to an old xlog segment if it's no longer the current one. Not doing this would leave the walwriter with a handle to a deleted file if there was nothing for it to do for a long period of time, preventing the file from being completely removed. Reported by Tollef Fog Heen, and thanks to Heikki for some hand-holding with the patch.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Heikki Linnakangas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In standby mode, respect checkpoint_segments in addition to checkpoint_timeout to trigger restartpoints. We used to deliberately only do time-based restartpoints, because if checkpoint_segments is small we would spend time doing restartpoints more often than really necessary. But now that restartpoints are done in bgwriter, they're not as disruptive as they used to be. Secondly, because streaming replication stores the streamed WAL files in pg_xlog, we want to clean it up more often to avoid running out of disk space when checkpoint_timeout is large and checkpoint_segments small. Patch by Fujii Masao, with some minor changes by me.&lt;/li&gt;
&lt;li&gt;Return NULL instead of 0/0 in pg_last_xlog_receive_location() and pg_last_xlog_replay_location(). Per Robert Haas's suggestion, after Itagaki Takahiro pointed out an issue in the docs. Also, some wording changes in the docs by me.&lt;/li&gt;
&lt;li&gt;Make TriggerFile variable static. It's not used outside xlog.c. Fujii Masao.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alvaro Herrera a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/syntax.sgml, add index entry for ::, per complaint from John Gage.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/alter_table.sgml, update ALTER TABLE docs to account for exclusion and deferrable uniqueness constraints. Dean Rasheed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bruce Momjian a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, update text of 9.0 release notes. Josh Berkus.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/Makefile, add space between after &quot;&amp;gt;&quot; in &quot;&amp;gt;$@&quot; in SGML Makefile, for clarity.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/Makefile, add SGML Makefile rule for single-page text, postgres.txt.&lt;/li&gt;
&lt;li&gt;Have pg_upgrade create its output files in the current directory, rather than in a subdirectory of the $HOME directory, or $TMP in Windows.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/Makefile, remove lynx -stdin flag for postgres.text.&lt;/li&gt;
&lt;li&gt;In pgsql/src/test/regress/pg_regress.c, add missing --use-existing --help mention from regression binary. Jan Urbanski&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/pg_upgrade.h, update pg_upgrade C comment about cwd.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Peter Eisentraut a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add a regression test case for bug #5497.&lt;/li&gt;
&lt;li&gt;In pgsql/src/pl/plpython/expected/README, update Python version information.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xlog.c, fix typo/bug, found by Clang compiler.&lt;/li&gt;
&lt;li&gt;Add target to build HTML documentation as single page.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de d&amp;eacute;ception cette semaine&amp;nbsp;:-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fujii Masao sent in a patch per Andrew Dunstan to clarify that to use a pgpass file to connect to Streaming Replica standbys, it is necessary to use a * for the database field.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in a WIP patch to allow GROUP BY to infer functional dependencies and not require that the target list include all non-aggregated columns when it finds them, per the SQL standard.&lt;/li&gt;
&lt;li&gt;Alexander Korotkov sent in another revision of the patch to allow multi-byte character sets in Levenshtein functions in the supplied module for fuzzy string matching.&lt;/li&gt;
&lt;li&gt;Joel Jacobson sent in another revision of the patch to add a pg_stat_transaction system view.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to deprecate =&amp;gt; and add ==&amp;gt; to the hstore module, per discussion.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 6 juin 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/06/12/Nouvelles-hebdomadaires-de-PostgreSQL-6-juin-2010"/>
		<id>urn:md5:f5009136b3c347f172f0a06ed5a81e9a</id>
		<updated>2010-06-12T22:44:20+00:00</updated>
		<content type="html">&lt;p&gt;Le 11 juin 2010, Gabriele Bartolini (de 2&lt;sup&gt;nd&lt;/sup&gt;Quadrant Italia) interviendra lors de la conf&amp;eacute;rence italienne sur les Logiciels Libres &amp;agrave; Cagliari, Sardaigne&amp;nbsp;; intervention titr&amp;eacute;e &quot;High Availability of business databases with PostgreSQL&quot; [ndt: Haute Disponibilit&amp;eacute; de bases de donn&amp;eacute;es d'entreprises avec PostgreSQL]&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.confsl.org/&quot;&gt;http://www.confsl.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le 12 juin 2010, le PUG italien fera la promotion de PostgreSQL lors de la conf&amp;eacute;rence italienne sur les Logiciels Libres &amp;agrave; Cagliari, Sardaigne avec une journ&amp;eacute;e enti&amp;egrave;re d'ateliers autour de PostgreSQL allant d'une &quot;Introduction&quot; &amp;agrave; la &quot;Haute Disponibilit&amp;eacute;&quot;&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.confsl.org/&quot;&gt;http://www.confsl.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les nouveaut&amp;eacute;s des produits d&amp;eacute;riv&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChronicDB v2.2.2, un outil de d&amp;eacute;ploiement de sch&amp;eacute;ma&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://chronicdb.com&quot;&gt;http://chronicdb.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en juin&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-05/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-05/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La &quot;Southeast Linuxfest 2010&quot; aura lieu &amp;agrave; Spartanburg (Caroline du Sud, &amp;Eacute;tats-Unis) du 11 au 13 juin. Nos PG-gourous Joshua Drake et Andrew Dunstan donneront des pr&amp;eacute;sentations &amp;agrave; ne pas manquer&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://southeastlinuxfest.org/&quot;&gt;http://southeastlinuxfest.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Conf&amp;eacute;rence de Michael Renner au Netways OSDC &amp;agrave; Nuremberg (All.) les 23 &amp;amp; 24 juin 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.netways.de/osdc/y2010/programm/&quot;&gt;http://www.netways.de/osdc/y2010/programm/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CHAR(10), la conf&amp;eacute;rence PostgreSQL d&amp;eacute;di&amp;eacute;e au clustering, &amp;agrave; la haute-disponibilit&amp;eacute; et &amp;agrave; la r&amp;eacute;plication vient d'ouvrir les inscriptions en ligne et les r&amp;eacute;servations. 2 &amp;amp; 3 juillet 2010, Oriel College, Universit&amp;eacute; d'Oxford (Royaume-Uni)&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.char10.org/&quot;&gt;http://www.char10.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Le PDXPUG Day est programm&amp;eacute; pour le 18 juillet 2010 &amp;agrave; &quot;l'Oregon Convention Center&quot; &amp;agrave; Portland. D'avantage d'informations&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://wiki.postgresql.org/wiki/PDXPUGDay2010&quot;&gt;http://wiki.postgresql.org/wiki/PDXPUGDay2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'OSCON aura lieu &amp;agrave; Portland (Oregon) du 19 au 23 juillet 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.oscon.com/oscon2010&quot;&gt;http://www.oscon.com/oscon2010&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100606&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Heikki Linnakangas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/replication/walsender.c, send all outstanding WAL before exiting when smart shutdown is requested. This was broken by my previous patch to send WAL in smaller batches. Patch by Fujii Masao.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xlog.c, fix obsolete comments that I neglected to update in a previous patch. Fujii Masao.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bruce Momjian a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/config.sgml, reword fsync and full_page_writes docs to be clearer about when to turn them off. Josh Berkus, with slight wording changes by me.&lt;/li&gt;
&lt;li&gt;In pgsql/src/pl/plpgsql/src/pl_exec.c, add error hint that PL/pgSQL &quot;EXECUTE of SELECT ... INTO&quot; can be performed by &quot;EXECUTE ... INTO&quot;. Jaime Casanova.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/docguide.sgml, document how to find TeX overflow boxes in our documentation build, per details from Alvaro Herrera.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/docguide.sgml, update TeX overflow documentation page pattern mask, in docs.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/docguide.sgml, overflow box is on page after listed page number, per Alvaro.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/commands/indexcmds.c, show schema name for REINDEX. Greg Sabino Mullane.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/extend.sgml, add documentation section &quot;Using C++ for Extensibility&quot;. Craig Ringer&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/extend.sgml, fix SGML markup for tag title.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/extend.sgml, mention palloc/pfree for C++ memory allocation in docs.&lt;/li&gt;
&lt;li&gt;Comment out C++ docs for later user. Tone down C++ compatibility in 9.0 release notes.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, update C++ release note item wording.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/func.sgml, document that &amp;amp;&amp;amp; geometric operator is true even if only a point overlaps. David Fetter.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/func.sgml, clarify array generate_subscripts() documentation example. Tim Landscheidt.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/citext.sgml, document that citext operators must be in the current search path.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/extend.sgml, document use of C++ for extension use.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/func.sgml, document regexp_matches() better and show example of single-row usage.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/extend.sgml, markup fix.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, update 9.0 release notes to current.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, fix CREATE TRIGGER release mention, WHERE -&amp;gt; WHEN.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alvaro Herrera a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/reassign_owned.sgml, add note about database ownership to REASSIGN OWNED command documentation, per Josh Berkus. Add ALTER DATABASE to the &quot;see also&quot; section, too.&lt;/li&gt;
&lt;li&gt;In pgsql/src/include/catalog/pg_control.h, add comments about definitions that may affect PG_CONTROL_VERSION, per recent unintended-initdb-forcing fiasco&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Andrew Dunstan a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/tools/msvc/vcregress.pl, run recently backported plperlu_plperl regression tests when building with MSVC on releases 8.4 and 8.3. Regression tests weren't supported before that.&lt;/li&gt;
&lt;li&gt;In pgsql/src/tools/msvc/vcregress.pl, fix regression test name for plperlu_plperl in msvc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On clean shutdown during recovery, don't warn about possible corruption. Fujii Masao. Review by Heikki Linnakangas and myself.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ITAGAKI Takahiro a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/contrib/dblink/dblink.c, fix dblink to treat connection names longer than NAMEDATALEN-2 (62 bytes). Now long names are adjusted with truncate_identifier() and NOTICE messages are raised if names are actually truncated. Backported to release 8.0.&lt;/li&gt;
&lt;li&gt;Replace &quot;slave&quot; to &quot;standby&quot; in documentation for consistent terminology. Almost all of the terms in docs and messages were replaced, but still remains in a few comments and README files in codes.&lt;/li&gt;
&lt;li&gt;Ensure default-only storage parameters for TOAST relations to be initialized with proper values. Affected parameters are fillfactor, analyze_threshold, and analyze_scale_factor. Especially uninitialized fillfactor caused inefficient page usage because we built a StdRdOptions struct in which fillfactor is zero if any reloption is set for the toast table. In addition, we disallow toast.autovacuum_analyze_threshold and toast.autovacuum_analyze_scale_factor because we didn't actually support them; they are always ignored. Report by Rumko on pgsql-bugs on 12 May 2010. Analysis by Tom Lane and Alvaro Herrera. Patch by me. Backpatch to 8.4.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tom Lane a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/include/catalog/pg_control.h, bump PG_CONTROL_VERSION to account for the incompatible change committed earlier.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, remove link that breaks HISTORY file generation.&lt;/li&gt;
&lt;li&gt;Add current WAL end (as seen by walsender, ie, GetWriteRecPtr() result) and current server clock time to Streaming Replication data messages. These are not currently used on the slave side but seem likely to be useful in future, and it'd be better not to change the Streaming Replication protocol after release. Per discussion. Also do some minor code review and cleanup on walsender.c, and improve the protocol documentation.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/replication/walsender.c, adjust misleading comment in walsender.c. We try to send all WAL data that's been written out from shared memory, but the previous phrasing might be read to say that we send only what's been fsync'd.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/func.sgml, improve our explanation of the OVERLAPS operator. Per gripe from Frank van Vugt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Peter Eisentraut a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix some inconsistent quoting of wal_level values in messages.&lt;/li&gt;
&lt;li&gt;Translation updates for 9.0beta2.&lt;/li&gt;
&lt;li&gt;When referring to postgresql.conf syntax, then it's without quotes (wal_level=archive); in narrative it's with double quotes. But never single quotes.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/libpq/hba.c, fix reference to nonexistent configure option --enable-ssl -&amp;gt; --with-openssl&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Marc Fournier a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tag 9.0beta2.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Michael Meskes a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added variable handling for RETURNING clause to ecpg. While the values were correctly returned they were not moved into C variables as they should be. Closes: Bug #5489.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bruce Momjian's patches to allow setting wal_keep_segments to -1, which would mean, &quot;never get rid of any.&quot; This was agreed not to be a good idea.&lt;/li&gt;
&lt;li&gt;Pavel Stehule's patch to add new custom GUCs for date and time formats. Too many GUCs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fujii Masao sent in three patches to fix streaming replication.&lt;/li&gt;
&lt;li&gt;Jan Urbanski and Tom Lane traded patches to fix tsvector stats.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in a patch to allow a client to authenticate a server over unix-domain sockets.&lt;/li&gt;
&lt;li&gt;Tom Lane sent in a WIP patch to fix some some misbehavior on INSERT-only tables.&lt;/li&gt;
&lt;li&gt;Andy Balholm sent in a WIP patch to allow dividing money by money.&lt;/li&gt;
&lt;li&gt;Daniele Varrazzo sent in a patch to implement a regexp_match() function which returns an array rather than a SETOF matches as regexp_matches() does.&lt;/li&gt;
&lt;li&gt;KaiGai Kohei sent two different patches intended to close some information leaks in VIEWs.&lt;/li&gt;
&lt;li&gt;Dean Rasheed sent in a patch to fix the docs for ALTER TABLE ... DISABLE/ENABLE TRIGGER. They are out of date.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Traduction du manuel de la 9.0 beta 2</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/06/07/Traduction-du-manuel-de-la-9.0-beta-2"/>
		<id>urn:md5:d88eac4b5ffae14cc4848ae37cb787d4</id>
		<updated>2010-06-06T22:09:00+00:00</updated>
		<content type="html">&lt;p&gt;La &lt;a href=&quot;http://developer.postgresql.org/pgdocs/postgres/index.html&quot; hreflang=&quot;en&quot;&gt;beta 2 de la 9.0&lt;/a&gt; sort aujourd'hui (oui, on est déjà lundi, même si c'est de peu), tout comme la version 1.12 beta 2 de &lt;a href=&quot;http://www.pgadmin.org/?lang=fr_FR&quot; hreflang=&quot;fr&quot;&gt;pgAdmin&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;J'en profite pour dire que j'ai fait le merge de la traduction vers la beta 2 et que j'ai commencé sérieusement la traduction. On est passé de 247 fichiers à traduire à 32. C'est évidemment les plus gros qui restent... &lt;img src=&quot;http://blog.guillaume.lelarge.info/themes/default/smilies/confused.png&quot; alt=&quot;:-/&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Bref, pour les impatients, le &lt;a href=&quot;http://docs.postgresql.fr/9.0/&quot; hreflang=&quot;fr&quot;&gt;manuel français de la 9.0&lt;/a&gt; est disponible. Mais attention, il y a toujours des (plus ou moins gros) morceaux en anglais.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 31 mai 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/06/05/Nouvelles-hebdomadaires-de-PostgreSQL-31-mai-2010"/>
		<id>urn:md5:642bc813b351eefbb8cb0a906e988651</id>
		<updated>2010-06-05T00:31:16+00:00</updated>
		<content type="html">&lt;p&gt;Les résultats de l'élection du bureau de PostgreSQL EU Board ont été publiés&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://blog.hagander.net/archives/169-PostgreSQL-Europe-election-results.html&quot;&gt;http://blog.hagander.net/archives/169-PostgreSQL-Europe-election-results.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[ndt: diff&amp;eacute;rentes migrations vers Git: &lt;a href=&quot;http://wiki.postgresql.org/wiki/PgCon_2010_Developer_Meeting#CVS_to_GIT&quot;&gt;en projet pour le c&amp;oelig;ur de PostgreSQL&lt;/a&gt; et &lt;a href=&quot;http://blog.guillaume.lelarge.info/index.php/post/2010/06/02/Et-hop%2C-un-d%C3%A9p%C3%B4t-git-pour-la-traduction-des-manuels-de-PostgreSQL-et-de-Slony&quot;&gt;d&amp;eacute;j&amp;agrave; en place pour la documentation Fr&lt;/a&gt;]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en mai&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-05/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-05/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les inscriptions sont ouvertes pour l'Open Source Bridge et les conférences sont annoncées&amp;nbsp;! L'événement aura lieu du 1er au 4 juin 2010 à Portland (Oregon)&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://opensourcebridge.org/events/2010/proposals/&quot;&gt;http://opensourcebridge.org/events/2010/proposals/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Michael Renner tiendra une conférence au AMOOCON qui aura lieu du 4 au 6 juin 2010&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.amoocon.de/speakers/214&quot;&gt;http://www.amoocon.de/speakers/214&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;La &quot;Southeast Linuxfest 2010&quot; aura lieu à Spartanburg (Caroline du Sud, États-Unis) du 11 au 13 juin. Nos PG-gourous Joshua Drake et Andrew Dunstan donneront des présentations à ne pas manquer&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://southeastlinuxfest.org/&quot;&gt;http://southeastlinuxfest.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Conférence de Michael Renner au Netways OSDC à Nuremberg (All.) les 23 &amp;amp; 24 juin 2010&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.netways.de/osdc/y2010/programm/&quot;&gt;http://www.netways.de/osdc/y2010/programm/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CHAR(10), la conférence PostgreSQL dédiée au clustering, à la haute-disponibilité et à la réplication vient d'ouvrir les inscriptions en ligne et les réservations. 2 &amp;amp; 3 juillet 2010, Oriel College, Université d'Oxford (Royaume-Uni)&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.char10.org/&quot;&gt;http://www.char10.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Le PDXPUG Day est programmé pour le 18 juillet 2010 à &quot;l'Oregon Convention Center&quot; à Portland. D'avantage d'informations&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://wiki.postgresql.org/wiki/PDXPUGDay2010&quot;&gt;http://wiki.postgresql.org/wiki/PDXPUGDay2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'OSCON aura lieu à Portland (Oregon) du 19 au 23 juillet 2010&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.oscon.com/oscon2010&quot;&gt;http://www.oscon.com/oscon2010&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les média&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100531&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Correctifs appliqués&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Bruce Momjian a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/option.c, split apart pg_upgrade user lookup and root check so '--help' shows proper default username.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/pgupgrade.sgml, update pg_upgrade docs to show options in alphabetical order, and improve 8.3 doc limitations paragraph.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/info.c, in pg_upgrade, test for datallowconn instead of hardcoding template0.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/option.c, re-order pg_upgrade 'help' options to be alphabetical.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/IMPLEMENTATION.jp, add Japanese Implementation file to CVS.&lt;/li&gt;
&lt;li&gt;In /doc/src/sgml/pgupgrade.sgml, add pg_upgrade docs about binary compatibility, per Robert Haas.&lt;/li&gt;
&lt;li&gt;Modify pg_standby, pgbench, and pg_upgrade manual pages to be consistent in their display of command-line options with other client applications.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/IMPLEMENTATION, update pg_upgrade IMPLEMENTATION doc file to match current 9.0 behavior.&lt;/li&gt;
&lt;li&gt;Remove IMPLEMENTATION.jp file from pg_upgrade docs; still in pgFoundry for pg_migrator, per suggestion from Magnus Hagander.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/maintenance.sgml, document pgFouine and check_postgres as log analysis options.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/maintenance.sgml, fix SGML markup.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/installation.sgml, document use of VPATH builds. David Fetter.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/executor/execUtils.c, add C comment that we will have to remove an exclusion constraint check if we ever implement '&amp;lt;&amp;gt;' index opclasses. Jeff Davis.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/create_domain.sgml, document that NOT NULL domain constraints are not always honored.&lt;/li&gt;
&lt;li&gt;Clarify the meaning of &quot;trusted language&quot; in the documentation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Michael Meskes a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added a configure test for &quot;long long&quot; datatypes. So far this is only used in ecpg and replaces the old test that was kind of hackish.&lt;/li&gt;
&lt;li&gt;Replace self written 'long long int' configure test by standard 'AC_TYPE_LONG_LONG_INT' macro call.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tom Lane a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/optimizer/plan/createplan.c, fix oversight in construction of sort/unique plans for UniquePaths. If the original IN operator is cross-type, for example int8 = int4, we need to use int4 &amp;lt; int4 to sort the inner data and int4 = int4 to unique-ify it. We got the first part of that right, but tried to use the original IN operator for the equality checks. Per bug #5472 from Vlad Romascanu. Backpatch to 8.4, where the bug was introduced by the patch that unified SortClause and GroupClause. I was able to take out a whole lot of on-the-fly calls of get_equality_op_for_ordering_op(), but failed to realize that I needed to put one back in right here :-(&lt;/li&gt;
&lt;li&gt;In pgsql/src/interfaces/libpq/fe-secure.c, add missing newlines to some SSL-related error messages. Noted while testing.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/libpq/be-secure.c, tell openssl to include the names of the root certs the server trusts in requests for client certs. This lets a client with a keystore select the appropriate client certificate to send. In particular, this is necessary to get Java clients to work in all but the most trivial configurations. Per discussion of bug #5468. Craig Ringer&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/libpq/be-secure.c, minor editorialization for be-secure.c: fix comments and some formatting infelicities.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/libpq/hba.c, the message style police pay a visit to hba.c.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/libpq/auth.c, fix bogus error message for SSL-cert authentication, due to lack of a uaCert entry in auth_failed(). Put the switch entries into a sane order, namely the one the enum is declared in.&lt;/li&gt;
&lt;li&gt;Rearrange libpq's SSL initialization to simplify it and make it handle some additional cases correctly. The original coding failed to load additional (chain) certificates from the client cert file, meaning that indirectly signed client certificates didn't work unless one hacked the server's root.crt file to include intermediate CAs (not the desired approach). Another problem was that everything got loaded into the shared SSL_context object, which meant that concurrent connections trying to use different sslcert settings could well fail due to conflicting over the single available slot for a keyed certificate. To fix, get rid of the use of SSL_CTX_set_client_cert_cb(), which is deprecated anyway in the OpenSSL documentation, and instead just unconditionally load the client cert and private key during connection initialization. This lets us use SSL_CTX_use_certificate_chain_file(), which does the right thing with additional certs, and is lots simpler than the previous hacking about with BIO-level access. A small disadvantage is that we have to load the primary client cert a second time with SSL_use_certificate_file, so that that one ends up in the correct slot within the connection's SSL object where it can get paired with the key. Given the other overhead of making an SSL connection, that doesn't seem worth worrying about. Per discussion ensuing from bug #5468.&lt;/li&gt;
&lt;li&gt;Improve SSL-related documentation. Explain how to deal with certificate chains, do assorted wordsmithing.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/commands/indexcmds.c, make CREATE INDEX run expression preprocessing on a proposed index expression before it checks whether the expression is immutable. This covers two cases that were previously handled poorly: 1. SQL function inlining could reduce the apparent volatility of the expression, allowing an expression to be accepted where it previously would not have been. As an example, polymorphic functions must be marked with the worst-case volatility they have for any argument type, but for specific argument types they might not be so volatile, so indexing could be allowed. (Since the planner will refuse to inline functions in cases where the apparent volatility of the expression would increase, this won't break any cases that were accepted before.) 2. A nominally immutable function could have default arguments that are volatile expressions. In such a case insertion of the defaults will increase both the apparent and actual volatility of the expression, so it is *necessary* to check this before allowing the expression to be indexed. Back-patch to 8.4, where default arguments were introduced.&lt;/li&gt;
&lt;li&gt;In pgsql/src/include/catalog/pg_proc.h, fix the volatility marking of textanycat() and anytextcat(): they were marked immutable, but that is wrong in general because the cast from the polymorphic argument to text could be stable or even volatile. Mark them volatile for safety. In the typical case where the cast isn't volatile, the planner will deduce the correct expression volatility after inlining the function, so performance is not lost. The just-committed fix in CREATE INDEX also ensures this won't break any indexing cases that ought to be allowed. Per discussion, I'm not bumping catversion for this change, as it doesn't seem critical enough to force an initdb on beta testers.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/misc/ps_status.c, change ps_status.c to explicitly track the current logical length of ps_buffer. This saves cycles in get_ps_display() on many popular platforms, and more importantly ensures that get_ps_display() will correctly return an empty string if init_ps_display() hasn't been called yet. Per trouble report from Ray Stell, in which log_line_prefix %i produced junk early in backend startup. Back-patch to 8.0. 7.4 doesn't have %i and its version of get_ps_display() makes no pretense of avoiding pad junk anyhow.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/executor/nodeMergejoin.c, rejigger mergejoin logic so that a tuple with a null in the first merge column is treated like end-of-input, if nulls sort last in that column and we are not doing outer-join filling for that input. In such a case, the tuple cannot join to anything from the other input (because we assume mergejoinable operators are strict), and neither can any tuple following it in the sort order. If we're not interested in doing outer-join filling we can just pretend the tuple and its successors aren't there at all. This can save a great deal of time in situations where there are many nulls in the join column, as in a recent example from Scott Marlowe. Also, since the planner tends to not count nulls in its mergejoin scan selectivity estimates, this is an important fix to make the runtime behavior more like the estimate. I regard this as an omission in the patch I wrote years ago to teach mergejoin that tuples containing nulls aren't joinable, so I'm back-patching it. But only to 8.3 --- in older versions, we didn't have a solid notion of whether nulls sort high or low, so attempting to apply this optimization could break things.&lt;/li&gt;
&lt;li&gt;Rewrite LIKE's %-followed-by-_ optimization so it really works (this time for sure ;-)). It now also optimizes more cases, such as %_%_. Improve comments too. Per bug #5478. In passing, also rename the TCHAR macro to GETCHAR, because pgindent is messing with the formatting of the former (apparently it now thinks TCHAR is a typedef name). Back-patch to 8.3, where the bug was introduced.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/utils/adt/like_match.c, fix oversight in the previous patch that made LIKE throw error for \ at the end of the pattern: the code path that handles \ just after % should throw error too. As in the previous patch, not back-patching for fear of breaking apps that worked before.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/psql/common.c, abort a FETCH_COUNT-controlled query if we observe any I/O error on the output stream. This typically indicates that the user quit out of $PAGER, or that we are writing to a file and ran out of disk space. In either case we shouldn't bother to continue fetching data. Stephen Frost.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/perform.sgml, add text to &quot;Populating a Database&quot; pointing out that bulk data load into a table with foreign key constraints eats memory. Per off-line discussion of bug #5480 with its reporter. Also do some minor wordsmithing elsewhere in the same section.&lt;/li&gt;
&lt;li&gt;Change the notation for calling functions with named parameters from &quot;val AS name&quot; to &quot;name := val&quot;, as per recent discussion. This patch catches everything in the original named-parameters patch, but I'm not certain that no other dependencies snuck in later (grepping the source tree for all uses of AS soon proved unworkable). In passing I note that we've dropped the ball at least once on keeping ecpg's lexer (as opposed to parser) in sync with the backend. It would be a good idea to go through all of pgc.l and see if it's in sync now. I didn't attempt that at the moment.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/tsearch/ts_typanalyze.c, fix misuse of Lossy Counting (LC) algorithm in compute_tsvector_stats(). We must filter out hashtable entries with frequencies less than those specified by the algorithm, else we risk emitting junk entries whose actual frequency is much less than other lexemes that did not get tabulated. This is bad enough by itself, but even worse is that tsquerysel() believes that the minimum frequency seen in pg_statistic is a hard upper bound for lexemes not included, and was thus underestimating the frequency of non-MCEs. Also, set the threshold frequency to something with a little bit of theory behind it, to wit assume that the input distribution is approximately Zipfian. This might need adjustment in future, but some preliminary experiments suggest that it's not too unreasonable. Back-patch to 8.4, where this code was introduced. Jan Urbanski, with some editorialization by Tom Lane.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/postmaster/postmaster.c, more fixes for shutdown during recovery. 1. If we receive a fast shutdown request while in the PM_STARTUP state, process it just as we would in PM_RECOVERY, PM_HOT_STANDBY, or PM_RUN. Without this change, an early fast shutdown followed by Hot Standby causes the database to get stuck in a state where a shutdown is pending (so no new connections are allowed) but the shutdown request is never processed unless we end Hot Standby and enter normal running. 2. Avoid removing the backup label file when a smart or fast shutdown occurs during recovery. It makes sense to do this once we've reached normal running, since we must be taking a backup which now won't be valid. But during recovery we must be recovering from a previously taken backup, and any backup label file is needed to restart recovery from the right place. Fujii Masao and Robert Haas&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/psql/help.c, fix psql help: \da+ is same as \da, but \daS is not. Noted by Stephen Frost.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/postmaster/postmaster.c, avoid starting walreceiver in states where it shouldn't be running. In particular, it's bad to start walreceiver when in state PM_WAIT_BACKENDS, because we have no provision to kill walreceiver when in that state. Fujii Masao.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Simon Riggs a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hot Standby Defer buffer pin deadlock check until deadlock_timeout has expired. During Hot Standby we need to check for buffer pin deadlocks when the Startup process begins to wait, in case it never wakes up again. We previously made the deadlock check immediately on the basis it was cheap, though clearer thinking and prima facie evidence shows that was too simple. Refactor existing code to make it easy to add in deferral of deadlock check until deadlock_timeout allowing a good reduction in deadlock checks since far few buffer pins are held for that duration. It's worth doing anyway, though major goal is to prevent further reports of context switching with high numbers of users on occasional tests.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Heikki Linnakangas a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/replication/walsender.c, in walsender, don't sleep if there's outstanding WAL waiting to be sent, otherwise we effectively rate-limit the streaming as pointed out by Simon Riggs. Also, send the WAL in smaller chunks, to respond to signals more promptly.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/replication/walsender.c, thinko in previous commit: ensure that MAX_SEND_SIZE is always greater than XLOG_BLCKSZ, by defining it as 16 * XLOG_BLCKSZ rather than directly as 128k bytes.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xlog.c, adjust comment to reflect that we now have Hot Standby. Pointed out by Robert Haas.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/savepoint.sgml, make it more clear that you need to release savepoint with RELEASE SAVEPOINT to make an older savepoint with the same name accessible. It's also possible to implicitly release the savepoint by rolling back to an earlier savepoint, but mentioning that too would make the note just more verbose and confusing. Florian Pflug.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/high-availability.sgml, update High Availability docs. Clarify terms master/primary standby/slave, move two paragraphs that apply to log shipping in general from the &quot;Alternative method for log shipping&quot; section to the earlier sections. Add varname tags where missing. Some small wording changes.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/high-availability.sgml, fix typos in recent doc patch. Fujii Masao.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ITAGAKI Takahiro a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mark PG_MODULE_MAGIC and PG_FUNCTION_INFO_V1 with PGDLLEXPORT independently from BUILDING_DLL. It is always __declspec(dllexport).&lt;/li&gt;
&lt;li&gt;In pgsql/src/include/port/cygwin.h and pgsql/src/include/port/win32.h PGDLLEXPORT is __declspec (dllexport) only on MSVC, but is __declspec (dllimport) on other compilers because cygwin and mingw don't like dllexport.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Peter Eisentraut a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/syntax.sgml, small correction/clarification in discussion of Unicode literals.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejetés (à ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stephen Frost's in a patch to move a &quot;long long&quot; check to c.h. The actual problem, if it needs fixing, needs to be fixed in autoconf.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KaiGai Kohei sent in six revisions of a patch to rework Robert Haas's patch to add an ExecutorCheckPerms() hook.&lt;/li&gt;
&lt;li&gt;Fujii Masao sent in two more revisions of the patch to fix smart shutdown during recovery.&lt;/li&gt;
&lt;li&gt;Craig Ringer sent in two revisions of a patch to fix an issue with SSL certificates.&lt;/li&gt;
&lt;li&gt;Simon Riggs sent in a patch to fix the sporadically reduced speed and context switch storm issues in Hot Standby.&lt;/li&gt;
&lt;li&gt;Mike Fowler sent in three revisions of a patch to add XMLEXISTS from the SQL/XML section of the SQL standard.&lt;/li&gt;
&lt;li&gt;Jonathan Leto and Josh Tolley traded patches to document the PL template handler better.&lt;/li&gt;
&lt;li&gt;Stephen Frost sent in a patch to do regression tests on psql's backslash commands.&lt;/li&gt;
&lt;li&gt;ITAGAKI Takahiro sent in a patch to fix an issue where fillfactor in TOAST tables is set to 0, which is not always right.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to add a get_whatever_oid() function. This factors out much code duplication.&lt;/li&gt;
&lt;li&gt;Simon Riggs sent in another revision of the patch to fix keepalive issues in max_standby_delay.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in a patch for 9.1 that adds functions pg_stat_get_backend_client_addr and pg_stat_get_backend_client_port.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Et hop, un dépôt git pour la traduction des manuels de PostgreSQL et de Slony</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/06/02/Et-hop%2C-un-d%C3%A9p%C3%B4t-git-pour-la-traduction-des-manuels-de-PostgreSQL-et-de-Slony"/>
		<id>urn:md5:8c6f4fe15ba0bc3a4264db22ed4d3fdc</id>
		<updated>2010-06-02T17:04:00+00:00</updated>
		<content type="html">&lt;p&gt;Marc Cousin a beaucoup bossé là-dessus, et il a surtout bien bossé. Le résultat est disponible sur &lt;a href=&quot;http://github.com/gleu/pgdocs_fr&quot; hreflang=&quot;en&quot;&gt;github.com&lt;/a&gt;. Le dépôt SVN devient donc inutile et sera archivé rapidement. Pour récupérer le dépôt, c'est très simple. Il vous suffit d'utiliser cette commande :&lt;/p&gt;


&lt;pre&gt; git clone git://github.com/gleu/pgdocs_fr.git&lt;/pre&gt;


&lt;p&gt;et quelques secondes après, vous disposez de toutes les branches, de tous les tags... bref, du dépôt complet des fichiers XML. Cool, non ?&lt;/p&gt;


&lt;p&gt;Merci Marc, j'attendais ça depuis un bon moment. Maintenant, tout se fait sur le dépôt git. Si vous voulez les droits d'écriture dessus, il me semble qu'il faut absolument un compte sur github (ouverture gratuite et rapide) et me donner le nom du compte. Allez, je retourne au boulot.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">La traduction de la 9.0 peut commencer</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/05/30/La-traduction-de-la-9.0-peut-commencer"/>
		<id>urn:md5:cd26ba432825b7775b62ede5ff7162c5</id>
		<updated>2010-05-30T17:59:00+00:00</updated>
		<content type="html">&lt;p&gt;Le merge est terminé depuis un bon moment. J'attendais de pouvoir proposer une interface simpliste pour la réservation des fichiers et surtout la récupération du diff entre ancienne version et nouvelle version de chaque fichier.&lt;/p&gt;


&lt;p&gt;Cet après-midi, j'ai donc écrit cette interface, ainsi qu'un outil pour intégrer toutes ces informations dans une base de données. Le résultat est disponible à cette URL : &lt;a href=&quot;http://www.postgresql.fr/~guillaume/traduction/liste.php&quot; hreflang=&quot;fr&quot;&gt;http://www.postgresql.fr/~guillaume/traduction/liste.php&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Alors, oui, c'est en grosse partie moche, sauf la partie visualisation du patch. Ça n'a pas beaucoup de fonctionnalités. Remarquez que c'est clairement pas le but. Je me fous de la présentation en dehors du patch. Mon but est de fournir une interface simple permettant de travailler pour se mettre au travail le plus vite possible. C'est chose faite. Je suis content &lt;img src=&quot;http://blog.guillaume.lelarge.info/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Pour réserver un fichier, il suffit de cliquer sur le nom du fichier, puis d'indiquer son nom dans le champ texte « Traducteur ». Le patch se trouve en dessous. Si vous ne disposez pas d'un accès au SVN, je peux vous fournir le fichier. Il suffit de m'envoyer un mail à guillaume at lelarge point info. Une fois le fichier traduit, il suffit là-aussi de me l'envoyer. Je l'intègrerais dans le SVN en vous mettant comme traducteur.&lt;/p&gt;


&lt;p&gt;Merci.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 16 mai 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/05/20/Nouvelles-hebdomadaires-de-PostgreSQL-16-mai-2010"/>
		<id>urn:md5:9ac058d07116d1186ce8f1524b50297c</id>
		<updated>2010-05-29T15:04:51+00:00</updated>
		<content type="html">&lt;p&gt;Les mises à jour correctrices [ndt: et de sécurité] 8.4.4, 8.3.11, 8.2.17, 8.1.21, 8.0.25 et 7.4.29 seront disponibles sous peu. Préparez-vous&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;Les élections du bureau de PostgreSQL EU courent jusqu'au 23 mai 2010&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;https://www.postgresql.eu/elections/&quot;&gt;https://www.postgresql.eu/elections/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Conférence de Michael Renner au Netways OSDC à Nuremberg (All.) les 23 &amp;amp; 24 juin 2010&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.netways.de/osdc/y2010/programm/&quot;&gt;http://www.netways.de/osdc/y2010/programm/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le PDXPUG Day est programmé pour le 18 juillet 2010 à &quot;l'Oregon Convention Center&quot; à Portland. D'avantage d'informations&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://wiki.postgresql.org/wiki/PDXPUGDay2010&quot;&gt;http://wiki.postgresql.org/wiki/PDXPUGDay2010&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les nouveautés des produits dérivés&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tail_n_mail 1.10.3, un programme Perl pour scanner les fichiers de logs et envoyer les résultats par mail&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://bucardo.org/wiki/Tail_n_mail&quot;&gt;http://bucardo.org/wiki/Tail_n_mail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;neo_my2pg 0.8, un utilitaire de conversion depuis MySQL&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://pgfoundry.org/projects/my2postgres/&quot;&gt;http://pgfoundry.org/projects/my2postgres/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;pgAdmin 1.10.3, une interface graphique de gestion pour PostgreSQL&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.pgadmin.org/download/&quot;&gt;http://www.pgadmin.org/download/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;pgbouncer 1.3.3, un gestionnaire léger de connexions pour PostgreSQL&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://pgfoundry.org/projects/pgbouncer/&quot;&gt;http://pgfoundry.org/projects/pgbouncer/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;pglesslog 1.4.1, un ensemble d'outils visant à réduire la taille des WALs&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://pglesslog.projects.postgresql.org/&quot;&gt;http://pglesslog.projects.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;psycopg2 2.2.0, un connecteur Python pour PostgreSQL&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://initd.org/psycopg/&quot;&gt;http://initd.org/psycopg/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;La fonctionnalité 9.0 de la semaine&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;pg_ctl a maintenant une option &quot;initdb&quot;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en mai&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-05/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-05/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La PgCon 2010 aura lieu les 20 &amp;amp; 21 mai 2010 à Ottawa avec des tutoriels les 18 et 19&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.pgcon.org/2010/registration.php&quot;&gt;http://www.pgcon.org/2010/registration.php&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Le &quot;Prague PostgreSQL Test Day&quot; aura lieu le 21 mai 2010 à Prague, République Tchèque&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.nic.cz/page/747/test-the-new-beta-version-of-postgresql-in-the-cz.nic-laboratories/&quot;&gt;http://www.nic.cz/page/747/test-the-new-beta-version-of-postgresql-in-the-cz.nic-laboratories/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Les inscriptions sont ouvertes pour l'Open Source Bridge et les conférences sont annoncées&amp;nbsp;! L'événement aura lieu du 1er au 4 juin 2010 à Portland (Oregon)&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://opensourcebridge.org/events/2010/proposals/&quot;&gt;http://opensourcebridge.org/events/2010/proposals/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Michael Renner tiendra une conférence au AMOOCON qui aura lieu du 4 au 6 juin 2010&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.amoocon.de/speakers/214&quot;&gt;http://www.amoocon.de/speakers/214&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;La &quot;Southeast Linuxfest 2010&quot; aura lieu à Spartanburg (Caroline du Sud, États-Unis) du 11 au 13 juin. Nos PG-gourous Joshua Drake et Andrew Dunstan donneront des présentations à ne pas manquer&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://southeastlinuxfest.org/&quot;&gt;http://southeastlinuxfest.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'OSCON aura lieu à Portland (Oregon) du 19 au 23 juillet 2010&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://www.oscon.com/oscon2010&quot;&gt;http://www.oscon.com/oscon2010&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les média&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;:
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter et Devrim Gunduz. Traduction par l'équipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100516&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Correctifs appliqués&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tom Lane a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/optimizer/plan/planagg.c, when adding a &quot;target IS NOT NULL&quot; indexqual to the plan for an index-optimized MIN or MAX, we must take care to insert the added qual in a legal place among the existing indexquals, if any. The btree index AM requires the quals to appear in index-column order. We didn't have to worry about this before because &quot;target IS NOT NULL&quot; was just treated as a plain scan filter condition; but as of 9.0 it can be an index qual and then it has to follow the rule. Per report from Ian Barwick.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/optimizer/prep/prepunion.c, fix incorrect patch that removed permission checks on inheritance child tables --- the parent table no longer got checked, either. Per bug #5458 from Takahiro Itagaki.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/postmaster/pgarch.c, cause the archiver process to adopt new postgresql.conf settings (particularly archive_command) as soon as possible, namely just before issuing a new call of archive_command, even when there is a backlog of files to be archived. The original coding would only absorb new settings after clearing the backlog and returning to the outer loop. Per discussion. Back-patch to 8.3. The logic in prior versions is a bit different and it doesn't seem worth taking any risks of breaking it.&lt;/li&gt;
&lt;li&gt;Add PKST to the default set of timezone abbreviations. Per discussion, if we have PKT in there then PKST should be too. Also, fix mistaken claim that these abbrevs are not known to zic.&lt;/li&gt;
&lt;li&gt;Update time zone data files to tzdata release 2010j: DST law changes in Argentina, Australian Antarctic, Bangladesh, Mexico, Morocco, Pakistan, Palestine, Russia, Syria, Tunisia. Historical corrections for Taiwan.&lt;/li&gt;
&lt;li&gt;Clean up unnecessary unportability and compiler warnings by removing the cmp parameter for pg_scandir(). The code failed to support this anyway for Sun/Windows, so pretending we could accept a parameter other than NULL was just asking for trouble.&lt;/li&gt;
&lt;li&gt;Hook pg_upgrade into the contrib makefile structure so it gets built on the buildfarm.&lt;/li&gt;
&lt;li&gt;Preliminary release notes for releases 8.4.4, 8.3.11, 8.2.17, 8.1.21, 8.0.25, 7.4.29.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade_support/Makefile, fix wrong subdir. Per buildfarm.&lt;/li&gt;
&lt;li&gt;Use &quot;TOAST table&quot; in place of the vague, not-used-elsewhere phrase &quot;supplementary storage table&quot;.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/rules.sgml, use an entity instead of non-ASCII letter. Thom Brown.&lt;/li&gt;
&lt;li&gt;Fix up lame idea of not using autoconf to determine if platform has scandir(). Should fix buildfarm failures.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/file.c, spell __darwin__ correctly, to suppress compiler warning on OSX.&lt;/li&gt;
&lt;li&gt;In pg_upgrade, get rid of unsafe sprintf and snprintf usages. Per compiler warnings.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/controldata.c, remove another unsafe use of random data as a format string.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/info.c, fix another obvious bug pointed out by a compiler warning.&lt;/li&gt;
&lt;li&gt;In pgsql/src/include/port.h, spell __NetBSD__ the same way everywhere. Per Giles Lean.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/pg_restore.sgml, improve documentation of pg_restore's -l and -L switches to point out their interactions with filtering switches, such as -n and -t. Per a complaint from Russell Smith.&lt;/li&gt;
&lt;li&gt;Ensure that pg_restore -l will output DATABASE entries whether or not -C is specified. Per bug report from Russell Smith and ensuing discussion. Since this is a corner case behavioral change, I'm going to be conservative and not back-patch it. In passing, also rename the RestoreOptions field for the -C switch to something less generic than &quot;create&quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ITAGAKI Takahiro a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/catalog/pg_proc.c, set per-function GUC settings during validating the function. Now validators work properly even when the settings contain parameters that affect behavior of the function, like search_path. Reported by Erwin Brandstetter.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/po/ja.po, remove CRs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/cluster.sgml, mention related ALTER TABLE variants in documentation for CLUSTER. As suggested by Andy Lester.&lt;/li&gt;
&lt;li&gt;In pgsql/src/include/utils/rbtree.h, change typedef for rb_appendator to avoid conflict with C++ reserved words. Fixes a complaint from src/tools/pginclude/cpluspluscheck reported by Peter Eisentraut.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/postmaster/postmaster.c, we now accept read-only connections in state PM_RECOVERY_CONSISTENT.&lt;/li&gt;
&lt;li&gt;Rename PM_RECOVERY_CONSISTENT and PMSIGNAL_RECOVERY_CONSISTENT. The new names PM_HOT_STANDBY and PMSIGNAL_BEGIN_HOT_STANDBY more accurately reflect their actual function.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/xfunc.sgml, fix longstanding typo in V1 calling conventions documentation. Erik Rijkers&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/xfunc.sgml, insert line breaks in two places in SQL functions documentation. This avoids a formatting problem in the PDF output. In the HTML output this isn't necessary, but we've done similar things elsewhere in the documentation so I think it's OK to do it here, too. I've refrained from breaking a longish error message which also causes problems for the PDF output, because that would make the HTML output look wrong. Erik Rijkers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bruce Momjian a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add pg_upgrade to /contrib; will be in 9.0 beta2. Add documentation. Supports migration from PG 8.3 and 8.4.&lt;/li&gt;
&lt;li&gt;Add pgsql/contrib/pg_upgrade/TODO file to CVS.&lt;/li&gt;
&lt;li&gt;Add pgsql/contrib/pg_upgrade/IMPLEMENTATION file to CVS.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/info.c, small formatting adjustment.&lt;/li&gt;
&lt;li&gt;Add PGFILEDESC description to Makefiles for all /contrib executables. Add PGAPPICON to all executable makefiles.&lt;/li&gt;
&lt;li&gt;Move pg_upgrade TODO to TODO wiki.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/Makefile, remove Makefile PGFILEDESC tag that the postmaster is an executable.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/Makefile, update comment about why postmaster doesn't get an icon.&lt;/li&gt;
&lt;li&gt;Move pg_upgrade shared library out into its own /contrib directory (pg_upgrade_support).&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, update release notes to current.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/release-9.0.sgml, fix HISTORY.html build using , not &amp;lt;/&amp;gt;.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/pgupgrade.sgml, comment out EnterpriseDB Advanced Server mention in SGML docs.&lt;/li&gt;
&lt;li&gt;Remove all mentions of EnterpriseDB Advanced Server from pg_upgrade; EDB must maintain their own patch set for this.&lt;/li&gt;
&lt;li&gt;Use NAMEDATALEN instead of local define. Modify path separators for Win32. Per ideas from Takahiro Itagaki.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/file.c, change bsdi define to __bsdi__.&lt;/li&gt;
&lt;li&gt;Use __bsdi__ consistently.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/file.c, adjust pg_upgrade BSD defines for scandir(), per report from Giles Lean.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Peter Eisentraut a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update config.guess and config.sub.&lt;/li&gt;
&lt;li&gt;Translation update&lt;/li&gt;
&lt;li&gt;Fix vpath installation from distribution tarball (bug #5447)&lt;/li&gt;
&lt;li&gt;In pgsql/src/nls-global.mk, avoid error from mkdir if no languages are to be installed mkinstalldirs used to handle no arguments, but mkdir doesn't. Also remove the .SILENT setting, that was previously removed from Makefile.global as well.&lt;/li&gt;
&lt;li&gt;Translation update&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Simon Riggs a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/backend/tcop/postgres.c, give most recovery conflict errors a retryable error code. From recent requests and discussions with Yeb Havinga and Kevin Grittner.&lt;/li&gt;
&lt;li&gt;Cleanup initialization of Hot Standby. Clarify working with reanalysis of requirements and documentation on LogStandbySnapshot(). Fixes two minor bugs reported by Tom Lane that would lead to an incorrect snapshot after transaction wraparound. Also fix two other problems discovered that would give incorrect snapshots in certain cases. ProcArrayApplyRecoveryInfo() substantially rewritten. Some minor refactoring of xact_redo_apply() and ExpireTreeKnownAssignedTransactionIds().&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xact.c, ensure that top level aborts call XLogSetAsyncCommit(). Not doing so simply leads to data waiting in wal_buffers which then causes later commits to potentially do emergency writes and for all forms of replication to be potentially delayed without need or benefit. Issue pointed out exactly by Fujii Masao, following bug report by Robert Haas on a separate though related topic.&lt;/li&gt;
&lt;li&gt;Add many new Asserts in code and fix simple bug that slipped through without them, related to previous commit. Report by Bruce Momjian.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xlog.c, fix bug in processing of checkpoint time for max_standby_delay. Latest log time was incorrectly set, typically leading to dates in the past, which would cause more cancellations in Hot Standby on a quiet server.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Andrew Dunstan a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/tools/msvc/Mkvcbuild.pm, add missing library and include support for pg_upgrade to MSVC build system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Magnus Hagander a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix some spelling errors. Thom Brown.&lt;/li&gt;
&lt;li&gt;In pgsql/src/tools/msvc/Mkvcbuild.pm, properly support multi-line entires (such as OBJS=) when building PROGRAM, not just MODULE, in contrib.&lt;/li&gt;
&lt;li&gt;Assorted fixes to make pg_upgrade build on MSVC. 1. There is no chmod() on Windows. 2. Must always use the 3-parameter version of open(). 3. There is no dynloader.h - but it also appears unnecessary on all platforms. 4. Don't include shlobj.h because it causes compile errors, and from what I can see it's not actually used. This may need to be added back for mingw and/or cygwin in the worst case.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Marc Fournier a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tag 8.4.4, 8.3.11, 8.2.17, 8.1.21, 8.0.25, 7.4.29.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Heikki Linnakangas a commité&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/contrib/pg_standby/pg_standby.c, fix typos in comments, spotted by Josh Kupershmidt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejetés (à ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Greg Sabino Mullane's patch to change pg_dump not to use CREATE OR REPLACE LANGUAGE when talking to pre-9.0 databases. There never was a guarantee that the output of pg_dump would be backward-compatible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ITAGAKI Takahiro sent in a patch to change the search_path check for function bodies to the current search_path, where they had been using the one at create time.&lt;/li&gt;
&lt;li&gt;Mike Fowler sent in a patch to add a function xpath_exists() for 9.1.&lt;/li&gt;
&lt;li&gt;Alexander Korotkov sent in two revisions of a patch to make the levenshtein distance function in contrib/fuzzystrmatch work with multibyte character sets in 9.1.&lt;/li&gt;
&lt;li&gt;Simon Riggs sent in a patch to change the startup code for Hot Standby.&lt;/li&gt;
&lt;li&gt;Stephen Frost sent in a patch to add a handler for SIGCHLD to psql. This is for 9.1.&lt;/li&gt;
&lt;li&gt;Simon Riggs sent in a patch to add a keepalive message to ensure max_standby_delay is useful. Heikki Linnakangas responded with one which rearranges the walsender loops slightly so that XLogSend() now only sends up to MAX_SEND_SIZE bytes (== XLOG_SEG_SIZE / 2) in one round and returns to the main loop after that even if there's unsent WAL, and the main loop no longer sleeps if there's unsent WAL. Simon Riggs sent in another with wait processing cleanup.&lt;/li&gt;
&lt;li&gt;Joachim Wieland sent in a patch to fix some locking behavior for 9.1 in the case of SERIALIZABLE transactions.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to implement a fix for smart shutdown in recovery.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 23 mai 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/05/29/Nouvelles-hebdomadaires-de-PostgreSQL-23-mai-2010"/>
		<id>urn:md5:b390d1cdbc318844c05a6665a026ffe9</id>
		<updated>2010-05-29T15:04:26+00:00</updated>
		<content type="html">&lt;p&gt;&lt;strong&gt;Nouvelles hebdomadaires de PostgreSQL - 23 mai 2010&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;CHAR(10), la conf&amp;eacute;rence PostgreSQL d&amp;eacute;di&amp;eacute;e au clustering, &amp;agrave; la haute-disponibilit&amp;eacute; et &amp;agrave; la r&amp;eacute;plication vient d'ouvrir les inscriptions en ligne et les r&amp;eacute;servations. 2 &amp;amp; 3 juillet 2010, Oriel College, Universit&amp;eacute; d'Oxford (Royaume-Uni)&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.char10.org/&quot;&gt;http://www.char10.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les nouveaut&amp;eacute;s des produits d&amp;eacute;riv&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cybercluster 2.0&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.cybertec.at/en/cybercluster-2-0-synchronous-postgresql-replication&quot;&gt;http://www.cybertec.at/en/cybercluster-2-0-synchronous-postgresql-replication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Muldi-D 0.129.1, une sp&amp;eacute;cification de langage objet-relationnel destin&amp;eacute;, entre autres syst&amp;egrave;mes, &amp;agrave; PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-announce/2010-05/msg00020.php&quot;&gt;http://archives.postgresql.org/pgsql-announce/2010-05/msg00020.php&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;MyJSQLView 3.17, un utilitaire graphique utilisable avec PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://dandymadeproductions.com/projects/MyJSQLView/index.html&quot;&gt;http://dandymadeproductions.com/projects/MyJSQLView/index.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PostgreDAC 2.5.5, un &quot;builder&quot; Delphi/C++ pour PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://microolap.com/products/connectivity/postgresdac/download/&quot;&gt;http://microolap.com/products/connectivity/postgresdac/download/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;psycopg2 2.2.1, un connecteur Python pour PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://initd.org/psycopg/&quot;&gt;http://initd.org/psycopg/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Devrim GUNDUZ a publi&amp;eacute; les RPMs pour les mises &amp;agrave; jour de s&amp;eacute;curit&amp;eacute; 8.4.4, 8.3.11, 8.2.17, 8.1.21, 8.0.25 et 7.4.29&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://yum.pgrpms.org&quot;&gt;http://yum.pgrpms.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2ndQuadrant vient d'ouvrir une succursale fran&amp;ccedil;aise&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.2ndQuadrant.fr/&quot;&gt;http://www.2ndQuadrant.fr/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Les mises &amp;agrave; jour de s&amp;eacute;curit&amp;eacute; 8.4.4, 8.3.11, 8.2.17, 8.1.21, 8.0.25 et 7.4.29 sont disponibles. Mettez &amp;agrave; jour d&amp;egrave;s que possible&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/docs/current/static/release.html&quot;&gt;http://www.postgresql.org/docs/current/static/release.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Les sommes de contr&amp;ocirc;le des fichiers Tar sont disponibles &amp;agrave; cette adresse&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.gtsm.com/postgres_sigs.html&quot;&gt;http://www.gtsm.com/postgres_sigs.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Postgres-XC 0.9.1&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://postgres-xc.sourceforge.net/&quot;&gt;http://postgres-xc.sourceforge.net/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;La fonctionnalit&amp;eacute; 9.0 de la semaine&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Les Large Objects (LO ou BLOB) b&amp;eacute;n&amp;eacute;ficient maintenant de contr&amp;ocirc;les d'acc&amp;egrave;s comme les autres objets en base de donn&amp;eacute;e.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en mai&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-05/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-05/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les inscriptions sont ouvertes pour l'Open Source Bridge et les conf&amp;eacute;rences sont annonc&amp;eacute;es&amp;nbsp;! L'&amp;eacute;v&amp;eacute;nement aura lieu du 1er au 4 juin 2010 &amp;agrave; Portland (Oregon)&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://opensourcebridge.org/events/2010/proposals/&quot;&gt;http://opensourcebridge.org/events/2010/proposals/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Michael Renner tiendra une conf&amp;eacute;rence au AMOOCON qui aura lieu du 4 au 6 juin 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.amoocon.de/speakers/214&quot;&gt;http://www.amoocon.de/speakers/214&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;La &quot;Southeast Linuxfest 2010&quot; aura lieu &amp;agrave; Spartanburg (Caroline du Sud, &amp;Eacute;tats-Unis) du 11 au 13 juin. Nos PG-gourous Joshua Drake et Andrew Dunstan donneront des pr&amp;eacute;sentations &amp;agrave; ne pas manquer&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://southeastlinuxfest.org/&quot;&gt;http://southeastlinuxfest.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Conf&amp;eacute;rence de Michael Renner au Netways OSDC &amp;agrave; Nuremberg (All.) les 23 &amp;amp; 24 juin 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.netways.de/osdc/y2010/programm/&quot;&gt;http://www.netways.de/osdc/y2010/programm/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Le PDXPUG Day est programm&amp;eacute; pour le 18 juillet 2010 &amp;agrave; &quot;l'Oregon Convention Center&quot; &amp;agrave; Portland. D'avantage d'informations&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://wiki.postgresql.org/wiki/PDXPUGDay2010&quot;&gt;http://wiki.postgresql.org/wiki/PDXPUGDay2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'OSCON aura lieu &amp;agrave; Portland (Oregon) du 19 au 23 juillet 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.oscon.com/oscon2010&quot;&gt;http://www.oscon.com/oscon2010&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter et Devrim Gunduz. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100523&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Andrew Dunstan a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abandon the use of Perl's Safe.pm to enforce restrictions in plperl, as it is fundamentally insecure. Instead apply an opmask to the whole interpreter that imposes restrictions on unsafe operations. These restrictions are much harder to subvert than is Safe.pm, since there is no container to be broken out of. Backported to release 7.4. In releases 7.4, 8.0 and 8.1 this also includes the necessary backporting of the two interpreters model for plperl and plperlu adopted in release 8.2. In versions 8.0 and up, the use of Perl's POSIX module to undo its locale mangling on Windows has become insecure with these changes, so it is replaced by our own routine, which is also faster. Nice side effects of the changes include that it is now possible to use perl's &quot;strict&quot; pragma in a natural way in plperl, and that perl's $a and $b variables now work as expected in sort routines, and that function compilation is significantly faster. Tim Bunce and Andrew Dunstan, with reviews from Alex Hunsaker and Alexey Klyukin. Security: CVE-2010-1169&lt;/li&gt;
&lt;li&gt;In pgsql/src/tools/msvc/Mkvcbuild.pm, fix MSVC builds for recent plperl changes. Go back to version 8.2, which is where we started supporting MSVC builds. Security: CVE-2010-1169.&lt;/li&gt;
&lt;li&gt;In pgsql/src/pl/plperl/plperl.c, follow up a visit from the style police.&lt;/li&gt;
&lt;li&gt;In pgsql/src/pl/plperl/expected/plperl_init.out, fix regression tests to match error message change.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tom Lane a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prevent PL/Tcl from loading the &quot;unknown&quot; module from pltcl_modules unless that is a regular table or view owned by a superuser. This prevents a trojan horse attack whereby any unprivileged SQL user could create such a table and insert code into it that would then get executed in other users' sessions whenever they call pltcl functions. Worse yet, because the code was automatically loaded into both the &quot;normal&quot; and &quot;safe&quot; interpreters at first use, the attacker could execute unrestricted Tcl code in the &quot;normal&quot; interpreter without there being any pltclu functions anywhere, or indeed anyone else using pltcl at all: installing pltcl is sufficient to open the hole. Change the initialization logic so that the &quot;unknown&quot; code is only loaded into an interpreter when the interpreter is first really used. (That doesn't add any additional security in this particular context, but it seems a prudent change, and anyway the former behavior violated the principle of least astonishment.) Security: CVE-2010-1170&lt;/li&gt;
&lt;li&gt;Update release notes with security issues. Security: CVE-2010-1169, CVE-2010-1170&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/config.sgml, fix index entry for lo_compat_privileges, per bug #5467 from KOIZUMI Satoru.&lt;/li&gt;
&lt;li&gt;Fix oversight in join removal patch: we have to delete the removed relation from SpecialJoinInfo relid sets as well. Per example from Vaclav Novotny.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/check.c, issue_warnings() has no business freeing its parameter, especially not when its sole caller does that too. Jan Matousek, via Pavel Stehule&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alvaro Herrera a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/show.sgml, make table in example less wide.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Robert Haas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ref/notify.sgml, move pg_notify() details to a subsection within the NOTIFY reference page. This allows the index to reference the pg_notify() subsection specifically, rather than Notes section of the NOTIFY reference page more generally. Fujii Masao&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/psql/command.c, unbreak \h; can't do strlen(NULL). This was broken by the following commmit. Although the original commit was backpatched all the way to 7.4, this particular bug exists only in the version applied to HEAD. 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-committers/2010-05/msg00058.php&quot;&gt;http://archives.postgresql.org/pgsql-committers/2010-05/msg00058.php&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bruce Momjian a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/TESTING, add pg_upgrade TESTING files explaining a testing method.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/pg_upgrade.c, use a 'datallowconn' check for avoiding 'template0', rather than hardcoding a 'template0' check, per suggestion from Alvaro. This might fix a problem where someone has allowed 'template0' connections, but it is a cleaner approach even if doesn't fix the bug.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/pg_upgrade.c, for pg_upgrade, update template0's datfrozenxid and its relfrozenxids to match the behavior of autovacuum, which does this as the xid advances even if autovacuum is turned off.&lt;/li&gt;
&lt;li&gt;In pgsql/contrib/pg_upgrade/info.c, simplify pg_upgrade queries by using IN instead of multiple OR clauses comparing the same column to multiple values.&lt;/li&gt;
&lt;li&gt;Add command-line documentation for pg_upgrade.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/oid2name.sgml, restore oid2name doc change.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/pgupgrade.sgml, pg_upgrade doc cleanup. Stefan Kaltenbrunner&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/pgupgrade.sgml, doc change: Rename of directory no longer required for pg_migrator 9.0. Alvaro Herrera&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/pgupgrade.sgml, SGML markup cleanup for pg_upgrade.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/oid2name.sgml, show oid2name command-line arguments in documentation like we do for non-contrib command-line tools (no longer in a single table display).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Magnus Hagander a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/pgupgrade.sgml, make pg_upgrade documentation refer to 9.0 instead of 8.4. Fujii Masao.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/config.sgml, refer to pg_ident.conf as config file for username mapping, as it's now used for other things than just ident authentication. Noted by Stephen Frost&lt;/li&gt;
&lt;li&gt;In pgsql/src/timezone/pgtz.c, change the &quot;N. Central Asia Standard Time&quot; timezone to map to Asia/Novosibirsk on Windows. Microsoft changed the behaviour of this zone in the timezone update from KB976098. The zones differ in handling of DST, and the old zone was just removed. Noted by Dmitry Funk.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Michael Meskes a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ecpg now accepts &quot;long long&quot; datatypes even if &quot;long&quot; is 64bit wide. This used to cover the equally long &quot;long long&quot; type. This patch closes bug #5464.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de d&amp;eacute;ception cette semaine&amp;nbsp;:-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stephen Frost sent in two more revisions of a patch to fix psql's ability to clean up when quitting the pager, which resulted in queries continuing to run after the pager exited.&lt;/li&gt;
&lt;li&gt;Fujii Masao sent in two revisions of a patch to fix smart shutdown for Hot Standby.&lt;/li&gt;
&lt;li&gt;Fujii Masao sent in a patch to distinguish normal shutdown from unexpected exit, while the server is in recovery.&lt;/li&gt;
&lt;li&gt;Tom Lane sent in a patch to fix a performance issue with textanycat/anytextcat.&lt;/li&gt;
&lt;li&gt;Alvaro Herrera sent in a patch to fix an issue with fillfactor on TOAST tables.&lt;/li&gt;
&lt;li&gt;Florian Pflug sent in two revisions of a patch to fix SERIALIZABLE transactions.&lt;/li&gt;
&lt;li&gt;Kevin Grittner sent in a WIP patch for 9.1 to do true SERIALIZABLE using predicate locking.&lt;/li&gt;
&lt;li&gt;Joel Jacobson sent in another revision of the patch to implement pg_stat_transaction.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to add a hook called ExecutorCheckPerms(), per discussion.&lt;/li&gt;
&lt;li&gt;Andres Freund sent in a patch which replaces the current CRC32 with a more efficient version from zlib.&lt;/li&gt;
&lt;li&gt;Jeff Davis sent in a patch to change a sanity check in exclusion constraints.&lt;/li&gt;
&lt;li&gt;Jeff Davis sent in a patch for 9.1 to add btree_gist support for the &quot;&amp;gt;&amp;lt;&quot; operator.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Peu de temps, donc quelques news rapides</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/05/25/Peu-de-temps%2C-donc-quelques-news-rapides"/>
		<id>urn:md5:9ecfea07dd6ab4b7423d2a0f12f80b10</id>
		<updated>2010-05-25T17:07:00+00:00</updated>
		<content type="html">&lt;p&gt;Les nouveautés se succèdent rapidement ces temps-ci et le temps manque encore plus que d'habitude pour parler de tout de façon détaillé.&lt;/p&gt;


&lt;p&gt;Vous avez tous dû entendre parler du &lt;a href=&quot;http://www.pgcon.org&quot; hreflang=&quot;en&quot;&gt;pgcon&lt;/a&gt; qui a eu la semaine dernière à Ottawa. Il y a eu beaucoup de &lt;a href=&quot;http://planet.postgresql.org/&quot; hreflang=&quot;en&quot;&gt;billets de blogs&lt;/a&gt; sur le déroulement des festivités. L'un des points les plus intéressants actuellement est ce qui est sorti du Developer Meeting. Le &lt;a href=&quot;http://wiki.postgresql.org/wiki/PgCon_2010_Developer_Meeting&quot; hreflang=&quot;en&quot;&gt;rapport&lt;/a&gt; donne beaucoup d'informations sur les prochains développements, que ce soit pour la 9.0 (qui, on l'a appris, devrait bien sortir cet été) et pour la 9.1. Si tout est développé pour cette version, elle promet d'être aussi intéressante que la version 9.1. Je ne peux guère parler des conférences, n'y étant pas. Les quelques échos que j'ai eu étaient très positifs. J'espère pouvoir regarder quelques vidéos sous peu.&lt;/p&gt;


&lt;p&gt;Le fait que la 9.0 devrait bientôt sortir est une excellente nouvelle. J'avais un peu peur qu'elle soit repoussée à la rentrée. Le problème que cela pose, c'est pour la traduction de la documentation. En apprenant cela vendredi dernier, j'ai créé la branche 8.4 pour pouvoir commencer le travail. Le merge est pratiquement terminé sur mon portable, après une quinzaine d'heures de travail (oui, c'est long et chiant). Reste encore quatre fichiers, évidemment les plus gros. Je pense nénamoins que ce sera terminé en fin de semaine. Restera la traduction, mais c'est moins effrayant que la période de merge. À noter que Marc travaille sur le passage du dépôt à git, ce serait un très gros plus.&lt;/p&gt;


&lt;p&gt;Que dire de plus. J'ai appris ce matin que j'étais élu au &lt;a href=&quot;http://www.postgresql.eu/about/board/&quot; hreflang=&quot;en&quot;&gt;comité directeur de PostgreSQL Europe&lt;/a&gt;, ce qui est très plaisant. Mon poste sera celui de vice-trésorier, bien que cela ne semble pas très fixé.&lt;/p&gt;


&lt;p&gt;Enfin, j'ai un nouveau portable. Le passage de l'ancien au nouveau prend pas mal de temps mais devrait être bien plus agréable (ne serait-ce que la définition de l'écran, 1440x900, c'est autre chose que l'ancien 1280x800). Bref, j'en parlerais plus une autre fois mais je vais retourner au merge.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Indexation sur une sous-chaîne de caractères dans PostgreSQL</title>
		<link href="http://www.bortzmeyer.org/indexation-sous-chaine.html"/>
		<id>tag:bortzmeyer.org,2006-02:Blog/indexation-sous-chaine</id>
		<updated>2010-05-20T00:00:00+00:00</updated>
		<content type="html">Tous les SGBD disposent de mécanismes
d'indexation pour accélerer l'accès aux données
(commande SQL &quot;CREATE INDEX (http://www.postgresql.org/docs/current/interactive/indexes-intro.html)&quot;
pour créer un tel index). Si on connait la chaîne de
caractères exacte, on la trouve dans
l'index et on a tout de suite ses données. Mais si on ne connait qu'une partie de la
chaîne ?</content>
		<author>
			<name>Stéphane Bortzmeyer</name>
			<email>stephane+blog@bortzmeyer.org</email>
			<uri>http://www.bortzmeyer.org/</uri>
		</author>
		<source>
			<title type="html">Blog de Stéphane Bortzmeyer</title>
			<link rel="self" href="http://re.rephrase.net/filter/?feed=http%3A%2F%2Fwww.bortzmeyer.org%2Ffeed.atom&amp;filter=title%3Apostgresql+OR+title%3ASQL"/>
			<id>tag:bortzmeyer.org,2006-02:Blog/</id>
			<updated>2010-09-02T20:17:14+00:00</updated>
			<rights type="html">© Stéphane Bortzmeyer, 2005. &lt;a href=&quot;http://www.gnu.org/copyleft/fdl.html&quot;&gt;GNU Free Documentation License&lt;/a&gt; (GFDL).</rights>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Traduction d'un peu de tout</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/05/17/Traduction-d-un-peu-de-tout"/>
		<id>urn:md5:f1b8d71da1c473c64500361d8cb77beb</id>
		<updated>2010-05-17T21:35:00+00:00</updated>
		<content type="html">&lt;p&gt;Le week-end dernier, j'ai travaillé sur les traductions des prochaines mises à jour. Du coup, le &lt;a href=&quot;http://docs.postgresql.fr&quot; hreflang=&quot;fr&quot;&gt;site français de la documentation sur PostgreSQL&lt;/a&gt; dispose déjà des manuels des version &lt;a href=&quot;http://docs.postgresql.fr/8.4&quot; hreflang=&quot;fr&quot;&gt;8.4.4&lt;/a&gt;, &lt;a href=&quot;http://docs.postgresql.fr/8.3&quot; hreflang=&quot;fr&quot;&gt;8.3.11&lt;/a&gt;, etc. J'en ai profité aussi pour mettre à jour les &lt;a href=&quot;http://www.slony.fr/&quot; hreflang=&quot;fr&quot;&gt;manuels de Slony&lt;/a&gt;, branche 1.2 et 2.0. Par contre, je ne sais pas quand Damien aura le temps de les mettre sur le site, surtout que ce dernier commence à dater un peu.&lt;/p&gt;


&lt;p&gt;Dernière nouveauté de traduction, l'installeur d'&lt;a href=&quot;http://www.enterprisedb.com/&quot; hreflang=&quot;en&quot;&gt;EnterpriseDB&lt;/a&gt; est disponible en français. J'avais fait la traduction il y a un bon moment, mais les petits gars de &lt;a href=&quot;http://pgsnake.blogspot.com/&quot; hreflang=&quot;en&quot;&gt;Dave Page&lt;/a&gt; ont mis beaucoup de temps pour l'intégrer... jusqu'à ce que je m'aperçoive en version 9.0 beta 1 que je m'étais trompé dans l'encodage. C'est enfin corrigé et l'installeur de la 8.4.4 dispose donc de la traduction. Allez, hop, deux copies d'écran pour la peine :&lt;/p&gt;


&lt;p&gt;&lt;em&gt;Lancement de l'installeur&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://blog.guillaume.lelarge.info/public/installeurpg/2010-05-17--22-55-30.jpg&quot; title=&quot;2010-05-17--22-55-30.jpg&quot;&gt;&lt;img src=&quot;http://blog.guillaume.lelarge.info/public/installeurpg/.2010-05-17--22-55-30_m.jpg&quot; alt=&quot;2010-05-17--22-55-30.jpg&quot; title=&quot;2010-05-17--22-55-30.jpg, mai 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;em&gt;Installation en cours&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://blog.guillaume.lelarge.info/public/installeurpg/2010-05-17--23-24-05.jpg&quot; title=&quot;2010-05-17--23-24-05.jpg&quot;&gt;&lt;img src=&quot;http://blog.guillaume.lelarge.info/public/installeurpg/.2010-05-17--23-24-05_m.jpg&quot; alt=&quot;2010-05-17--23-24-05.jpg&quot; title=&quot;2010-05-17--23-24-05.jpg, mai 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Sympa, non ? moi, j'aime bien.&lt;/p&gt;


&lt;p&gt;Que dire de plus... la beta 2 n'est toujours pas sortie, et ne risque pas de sortir avant au moins une semaine pour cause de PGCon, ce qui m'agace bien (qu'elle ne soit pas déjà sortie et que je ne sois pas au PGCon... sigh...). Ça sent un bon retard pour la traduction du manuel de la version 9.&lt;/p&gt;


&lt;p&gt;Le bon côté, c'est que ça me permet de travailler sur des outils comme &lt;a href=&quot;http://pgpool.projects.postgresql.org/&quot; hreflang=&quot;en&quot;&gt;pgpool&lt;/a&gt;, &lt;a href=&quot;https://developer.skype.com/SkypeGarage/DbProjects/PgBouncer&quot; hreflang=&quot;en&quot;&gt;pgbouncer&lt;/a&gt;, &lt;a href=&quot;http://slony.info/&quot; hreflang=&quot;en&quot;&gt;slony&lt;/a&gt;. Pour les deux premiers, j'ai proposé un patch pour ajouter les options longues. &lt;a href=&quot;http://lists.pgfoundry.org/pipermail/pgpool-hackers/2010-May/000306.html&quot; hreflang=&quot;en&quot;&gt;Patch accepté&lt;/a&gt; pour pgpool, patch que j'ai donc commité dimanche après-midi. Pas de nouvelles des développeurs de pgbouncer, peut-être en voyage pour &lt;a href=&quot;http://www.pgcon.org/2010/&quot; hreflang=&quot;en&quot;&gt;PGCon&lt;/a&gt; (chanceux...). Au départ, je voulais ajouter la gestion du paramètre application_name, disponible à partir de la 9.0. Je me suis un peu cassé les dents avec les poolers de connexion. Par contre, pour Slony, ça semble bien plus simple. Je pense que je vais proposer un patch assez rapidement pour ce dernier. Il serait aussi intéressant que les pilotes le prennent en compte (je pense notamment au pilote Perl et au pilote PHP). Bref, du boulot sur la planche, ce qui est cool &lt;img src=&quot;http://blog.guillaume.lelarge.info/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">pgsnap, version 0.6</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/05/13/pgsnap%2C-version-0.6"/>
		<id>urn:md5:cb253faf9307357aa3e9af97c6cbacf8</id>
		<updated>2010-05-13T17:18:00+00:00</updated>
		<content type="html">&lt;p&gt;Ne voulant pas réitérer la bévue pour la version 8.4 de &lt;a href=&quot;http://www.postgresql.org&quot; hreflang=&quot;en&quot;&gt;PostgreSQL&lt;/a&gt;, je me suis attelé assez rapidement à mettre à jour &lt;a href=&quot;http://pgsnap.projects.postgresql.org/&quot; hreflang=&quot;en&quot;&gt;pgsnap&lt;/a&gt; pour PostgreSQL 9.0.&lt;/p&gt;


&lt;p&gt;Ce n'est évidemment pas la seule nouveauté de cette version :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Support complet de la 9.0
&lt;ul&gt;
&lt;li&gt;connexion utilisant le paramètre application_name&lt;/li&gt;
&lt;li&gt;nouveau rapport sur les ACL par défaut&lt;/li&gt;
&lt;li&gt;nouveau rapport sur la configuration par paire base/utilisateur;&lt;/li&gt;
&lt;li&gt;support des tables typées, des contraintes d'exclusion, de la configuration des tablespaces, des informations sur le Hot Standby et le Streaming Replication&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Meilleur support de la 8.4
&lt;ul&gt;
&lt;li&gt;gestion de la colonne relistemp de pg_class&lt;/li&gt;
&lt;li&gt;gestion des nouvelles colonnes de pg_settings&lt;/li&gt;
&lt;li&gt;ajout de l'heure de lancement de PostgreSQL et du dernier chargement de la configuration&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Meilleur support des autres versions
&lt;ul&gt;
&lt;li&gt;nouveau rapport sur les séquences&lt;/li&gt;
&lt;li&gt;nouveau rapport sur les Large Objects&lt;/li&gt;
&lt;li&gt;détection des modules contrib&lt;/li&gt;
&lt;li&gt;ajout des commentaires sur les objets.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour télécharger, c'est &lt;a href=&quot;http://pgfoundry.org/frs/download.php/2686/pgsnap-0.6.0.tar.gz&quot; hreflang=&quot;en&quot;&gt;ici&lt;/a&gt;. Vous pouvez consulter aussi cet &lt;a href=&quot;http://pgsnap.projects.postgresql.org/fluxbb_snap_20100513&quot; hreflang=&quot;en&quot;&gt;exemple de rapport&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;J'aurais pu attendre un peu avant de sortir cette version. Cependant, je vais être maintenant bien occupé par la mise à jour de la traduction française du manuel de PostgreSQL (enfin, dès que la beta 2 sort, donc à priori rapidement). Je n'aurais plus trop de temps pour m'occuper de pgsnap en dehors de quelques corrections de bugs. Donc voilà pourquoi cette version sort dès maintenant.&lt;/p&gt;


&lt;p&gt;Et puis, j'ai en tête un changement important pour pgsnap. Peut-être pour la prochaine version.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Nouvelles hebdomadaires de PostgreSQL - 9 mai 2010</title>
		<link href="http://blog.postgresql.fr/index.php?post/2010/05/12/Nouvelles-hebdomadaires-de-PostgreSQL-9-mai-2010"/>
		<id>urn:md5:32b1c6c8835f21352c25ced4c4ae88d5</id>
		<updated>2010-05-11T21:05:17+00:00</updated>
		<content type="html">&lt;p&gt;PostgreSQL 9.0 beta 1 a &amp;eacute;t&amp;eacute; publi&amp;eacute;e. &amp;Agrave; vos tests&amp;nbsp;! 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/developer/beta&quot;&gt;http://www.postgresql.org/developer/beta&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le &quot;Prague PostgreSQL Test Day&quot; aura lieu le 21 mai 2010 &amp;agrave; Prague, R&amp;eacute;publique Tch&amp;egrave;que&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.nic.cz/page/747/test-the-new-beta-version-of-postgresql-in-the-cz.nic-laboratories/&quot;&gt;http://www.nic.cz/page/747/test-the-new-beta-version-of-postgresql-in-the-cz.nic-laboratories/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le nouveau bureau de l'association PostgreSQLFr a &amp;eacute;t&amp;eacute; &amp;eacute;lu avec, &amp;agrave; sa t&amp;ecirc;te, le pr&amp;eacute;sident Jean-Christophe Arnu, le vice-pr&amp;eacute;sident C&amp;eacute;dric Villeman, le tr&amp;eacute;sorier St&amp;eacute;phane Schildknecht et le secr&amp;eacute;taire Patrick Francelle. D'avantage de d&amp;eacute;tails sur&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.fr/asso:elections&quot;&gt;http://www.postgresql.fr/asso:elections&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les nouveaut&amp;eacute;s des produits d&amp;eacute;riv&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pgfincore, 0.41, un ensemble de fonctions de gestion bas-niveau des relations, utilisant mincore pour explorer la m&amp;eacute;moire cache&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://pgfoundry.org/projects/pgfincore/&quot;&gt;http://pgfoundry.org/projects/pgfincore/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;James W. Pye a publi&amp;eacute; une nouvelle version de PL/Python3&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://python.projects.postgresql.org/backend/&quot;&gt;http://python.projects.postgresql.org/backend/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;RHQ 3.0.0.B05, un gestionnaire syst&amp;egrave;me et outil de surveillance utilisant PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://rhq-project.org/&quot;&gt;http://rhq-project.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;La fonctionnalit&amp;eacute; 9.0 de la semaine&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Vous pouvez cr&amp;eacute;er des d&amp;eacute;clencheurs propres &amp;agrave; une colonne, c'est-&amp;agrave;-dire des d&amp;eacute;clencheurs qui ne se mettent en branle qu'&amp;agrave; la modification de certaines colonnes. La syntaxe, comme d&amp;eacute;crite dans SQL:2008, est CREATE TRIGGER nom_du_trigger (BEFORE|AFTER) UPDATE OF col1 [,col2...coln] ON nom_de_la_table FOR EACH ROW EXECUTE PROCEDURE fonction_declenchee();&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Offres d'emplois autour de PostgreSQL en Mai&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationales&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://archives.postgresql.org/pgsql-jobs/2010-05/threads.php&quot;&gt;http://archives.postgresql.org/pgsql-jobs/2010-05/threads.php&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Francophones&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://forums.postgresql.fr/viewforum.php?id=4&quot;&gt;http://forums.postgresql.fr/viewforum.php?id=4&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL Local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La PgCon 2010 aura lieu les 20 &amp;amp; 21 mai 2010 &amp;agrave; Ottawa avec des tutoriels les 18 et 19&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.pgcon.org/2010/registration.php&quot;&gt;http://www.pgcon.org/2010/registration.php&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Les inscriptions sont ouvertes pour l'Open Source Bridge et les conf&amp;eacute;rences sont annonc&amp;eacute;es&amp;nbsp;! L'&amp;eacute;v&amp;eacute;nement aura lieu du 1er au 4 juin 2010 &amp;agrave; Portland (Oregon)&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://opensourcebridge.org/events/2010/proposals/&quot;&gt;http://opensourcebridge.org/events/2010/proposals/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Michael Renner tiendra une conf&amp;eacute;rence au AMOOCON qui aura lieu du 4 au 6 juin 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.amoocon.de/speakers/214&quot;&gt;http://www.amoocon.de/speakers/214&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;La &quot;Southeast Linuxfest 2010&quot; aura lieu &amp;agrave; Spartanburg (Caroline du Sud, &amp;Eacute;tats-Unis) les 12 &amp;amp; 13 juin. Participations/r&amp;eacute;unions et m&amp;eacute;c&amp;eacute;nats encore proposables&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://southeastlinuxfest.org/&quot;&gt;http://southeastlinuxfest.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;L'OSCON aura lieu &amp;agrave; Portland (Oregon) du 19 au 23 juillet 2010&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://www.oscon.com/oscon2010&quot;&gt;http://www.oscon.com/oscon2010&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;PostgreSQL dans les m&amp;eacute;dia&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Planet PostgreSQL&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planet.postgresql.org/&quot;&gt;http://planet.postgresql.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Planet PostgreSQLFr&amp;nbsp;: 
&lt;a target=&quot;_blank&quot; href=&quot;http://planete.postgresql.fr/&quot;&gt;http://planete.postgresql.fr/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;i&gt;PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'&amp;eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &amp;agrave; david (a) fetter.org, en allemand &amp;agrave; pwn (a) pgug.de, en italien &amp;agrave; pwn (a) itpug.org et en espagnol &amp;agrave; pwn (a) arpug.com.ar.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;(&lt;a target=&quot;_blank&quot; href=&quot;http://www.postgresql.org/community/weeklynews/pwn20100509&quot;&gt;lien vers l'article original&lt;/a&gt;)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Correctifs appliqu&amp;eacute;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Heikki Linnakangas a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add cross-reference from wal_level to hot_standby setting. Update the PITR documentation to mention that you need to set wal_level to 'archive' or 'hot_standby', to enable WAL archiving. Per Simon Riggs's request.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/high-availability.sgml, change &quot;literal&quot; tag to the more appropriate &quot;firstterm&quot;, when describing what &quot;eventually consistent&quot; means.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/config.sgml, change wording so that you don't need to understand that wal_levels form a hierarchy. Per Simon Riggs's suggestion.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/access/transam/xlog.c, need to hold ControlFileLock while updating control file. Update minRecoveryPoint in control file when replaying a parameter change record, to ensure that we don't allow hot standby on WAL generated without wal_level='hot_standby' after a standby restart.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/intarray.sgml, fix incorrect parameter tag in docs, spotted by KOIZUMI Satoru.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alvaro Herrera a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/doc/src/sgml/mvcc.sgml, remove spurious dot, per bug #5446 reported by Koizumi Satoru.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tom Lane a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix backpatching error in recent patch for ALTER USER f RESET ALL behavior. The argument list for array_set() changed in 8.2 (in connection with allowing nulls in arrays) but the newer argument list was used in the patches applied to 8.1 and 8.0 branches. The patch for 7.4 was OK though. Per compiler warnings.&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/psql/psqlscan.l, fix psql to not go into infinite recursion when expanding a variable that refers to itself (directly or indirectly). Instead, print a message when recursion is detected, and don't expand the repeated reference. Per bug #5448 from Francis Markham. Back-patch to 8.0. Although the issue exists in 7.4 as well, it seems impractical to fix there because of the lack of any state stack that could be used to track active expansions.&lt;/li&gt;
&lt;li&gt;In pgsql/src/makefiles/Makefile.linux, on Linux, use --enable-new-dtags when specifying -rpath to linker. This should allow LD_LIBRARY_PATH to work as desired. Per trouble report from Andy Colson.&lt;/li&gt;
&lt;li&gt;Work around a subtle portability problem in use of printf %s format. Depending on which spec you read, field widths and precisions in %s may be counted either in bytes or characters. Our code was assuming bytes, which is wrong at least for glibc's implementation, and in any case libc might have a different idea of the prevailing encoding than we do. Hence, for portable results we must avoid using anything more complex than just &quot;%s&quot; unless the string to be printed is known to be all-ASCII. This patch fixes the cases I could find, including the psql formatting failure reported by Hernan Gonzalez. In HEAD only, I also added comments to some places where it appears safe to continue using &quot;%.*s&quot;.&lt;/li&gt;
&lt;li&gt;Adjust comments about avoiding use of printf's %.*s. My initial impression that glibc was measuring the precision in characters (which is what the Linux man page says it does) was incorrect. It does take the precision to be in bytes, but it also tries to truncate the string at a character boundary. The bottom line remains the same: it will mess up if the string is not in the encoding it expects, so we need to avoid %.*s anytime there's a significant risk of that. Previous code changes are still good, but adjust the comments to reflect this knowledge. Per research by Hernan Gonzalez.&lt;/li&gt;
&lt;li&gt;In pgsql/doc/src/sgml/ecpg.sgml, fix typo: PGTYPES_NUM_OVERFLOW should be PGTYPES_NUM_UNDERFLOW. Noted by KOIZUMI Satoru.&lt;/li&gt;
&lt;li&gt;In pgsql/src/backend/replication/walsender.c, fix missing static declaration for XLogRead().&lt;/li&gt;
&lt;li&gt;In pgsql/src/bin/psql/print.c, suppress signed-vs-unsigned-char warning.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ITAGAKI Takahiro a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/port/chklocale.c, code page for EUC-KR is surely 51949.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Michael Meskes a commit&amp;eacute;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In pgsql/src/interfaces/ecpg/ecpglib/connect.c, ECPG connect routine only checked for NULL to find empty parameters, but user and password can also be &quot;&quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs rejet&amp;eacute;s (&amp;agrave; ce jour)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pas de d&amp;eacute;ception cette semaine&amp;nbsp;:-)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Correctifs en attente&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pavel Stehule sent in a patch to remove the limit on the number of parameters passed to xslt_process() in contrib/xml2. It had been 10.&lt;/li&gt;
&lt;li&gt;Simon Riggs sent in a WIP patch to change max_standby_delay to rely on WAL receipt timestamp instead of log timestamp, per suggestion from Tom Lane.&lt;/li&gt;
&lt;li&gt;Pavel Stehule sent in a patch to add new optional arguments to string_to_array() and array_to_string() which allow for an explicit NULL string rather than to have NULL disappear unconditionally.&lt;/li&gt;
&lt;li&gt;Peter Eisentraut sent in a patch to fix bug 5447, which relates to VPATH builds.&lt;/li&gt;
&lt;li&gt;Simon Riggs sent in a patch intended to fix the issue where Hot Standby/Streaming Replication databases have slower queries on replicas than origin.&lt;/li&gt;
&lt;li&gt;Pavel Stehule sent in a patch to create to_string() and to_array() functions which include NULL handling different from the current &quot;eliminate NULLs&quot; behavior of array_to_string() and string_to_array().&lt;/li&gt;
&lt;li&gt;Andy Lester and Robert Haas traded patches to clarify some CLUSTER behavior.&lt;/li&gt;
&lt;li&gt;Joel Jacobson and ITAGAKI Takahiro traded patches to add some new stat transaction views for 9.1.&lt;/li&gt;
&lt;li&gt;Nikhil Sontakke sent in two revisions of a patch intended to change the behavior of memory with set-returning functions.&lt;/li&gt;
&lt;li&gt;Simon Riggs sent in a patch intended to fix some behavior with Hot Standby.&lt;/li&gt;
&lt;li&gt;Simon Riggs sent in a patch to add a SQLSTATE for Hot Standby.&lt;/li&gt;
&lt;li&gt;Robert Haas sent in a patch to avert doom around temprels.&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>N Bougain</name>
			<uri>http://blog.postgresql.fr/index.php</uri>
		</author>
		<source>
			<title type="html">PostgreSQLfr.org</title>
			<link rel="self" href="http://blog.postgresql.fr/index.php?feed/atom"/>
			<id>urn:md5:df94b576f96642f47f3251ba67b7ebdb</id>
			<updated>2010-09-02T20:17:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Maintenant que l'annonce est faite...</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/05/06/Maintenant-que-l-annonce-est-faite..."/>
		<id>urn:md5:059237bed389a6402c762e0464362366</id>
		<updated>2010-05-05T22:28:00+00:00</updated>
		<content type="html">&lt;p&gt;Enfin, pour &lt;a href=&quot;http://www.postgresql,org&quot; hreflang=&quot;en&quot;&gt;PostgreSQL&lt;/a&gt; car pour &lt;a href=&quot;http://www.pgadmin.org&quot;&gt;pgAdmin&lt;/a&gt;, on attend toujours. J'ai finalement réussi à corriger un bug dans pgAdmin qui me donnait du mal. Et j'ai terminé le &lt;a href=&quot;http://wwwdevel.pgadmin.org/visualtour12.php&quot; hreflang=&quot;en&quot;&gt;Visual Tour pour la version 1.12&lt;/a&gt;. Il ne manque vraiment plus que l'annonce de la beta 1 de pgAdmin &lt;img src=&quot;http://blog.guillaume.lelarge.info/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Bref, on est en période beta. Ça veut dire correction de bugs. Ça veut dire aussi que, pour les codeurs d'outils tiers, du boulot est en prévision pour s'assurer de la compatibilité de leur outil avec la prochaine version. On va espérer que les développeurs de Slony vont penser à ça (quoiqu'il semble me rappeler avoir vu passer un patch pour ça il y a peu, donc on peut être optimiste). Ceci dit, le mieux pour tout le monde, c'est de le tester soi-même. En ce qui me concerne, ça veut dire que j'ai du boulot pour pgsnap. Un patch récemment a permis d'utiliser pgsnap avec une 9.0, mais pas d'en tirer le meilleur profit.&lt;/p&gt;


&lt;p&gt;Mais surtout, une beta 1 de PostgreSQL, pour moi, ça veut dire une traduction du manuel à mettre à jour. Pour les outils en ligne de commande livrés avec PostgreSQL, c'est déjà fait. Mais pas encore pour la documentation. Donc voilà, à partir de demain, c'est mon occupation principale.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">Beta 1 coming up</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/05/01/Beta-1-coming-up"/>
		<id>urn:md5:fbb48de6675b3acbe8be0de0deab7f81</id>
		<updated>2010-04-30T23:01:00+00:00</updated>
		<content type="html">&lt;p&gt;C'est ce moment de l'année où les tests sont de rigueur...&lt;/p&gt;

&lt;pre&gt;
guillaume@laptop:~$ psql -V
psql (PostgreSQL) 9.0beta1
contient une gestion avancée de la ligne de commande
&lt;/pre&gt;


&lt;p&gt;&lt;a href=&quot;http://blog.guillaume.lelarge.info/public/pgadmin_1.11/beta1.png&quot; title=&quot;beta 1 de pgAdmin 1.12&quot;&gt;&lt;img src=&quot;http://blog.guillaume.lelarge.info/public/pgadmin_1.11/.beta1_m.jpg&quot; alt=&quot;beta 1 de pgAdmin 1.12&quot; title=&quot;beta 1 de pgAdmin 1.12, avr. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Il nous a fallu quand même ce soir trois heures de discussion, codage et test avec Dave pour finaliser la 1.12. Grand merci aux outils de type &lt;a href=&quot;http://www.pidgin.im/&quot; hreflang=&quot;fr&quot;&gt;pidgin&lt;/a&gt;, &lt;a href=&quot;http://www.google.com/talk/intl/fr/&quot; hreflang=&quot;fr&quot;&gt;Google Chat&lt;/a&gt; et autres du même type, c'est quand même bien plus efficace que le mail dans ce cadre.&lt;/p&gt;


&lt;p&gt;Une annonce officielle sera faite lundi.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="fr">
		<title type="html">GSoC pgAdmin</title>
		<link href="http://blog.guillaume.lelarge.info/index.php/post/2010/04/29/GSoC-pgAdmin"/>
		<id>urn:md5:e904eaba80a95de2ce030b35439710f1</id>
		<updated>2010-04-29T14:30:00+00:00</updated>
		<content type="html">&lt;p&gt;Je viens d'avoir la nouvelle par Luis. Sa proposition de &lt;a href=&quot;http://socghop.appspot.com/&quot; hreflang=&quot;en&quot;&gt;projet GSoC&lt;/a&gt; pour &lt;a href=&quot;http://www.pgadmin.org&quot; hreflang=&quot;en&quot;&gt;pgAdmin&lt;/a&gt; a été acceptée. Et je suis son mentor, ce qui me fait bien plaisir.&lt;/p&gt;


&lt;p&gt;Du coup, je viens de jeter un œil aux statuts des différentes propositions. Six ont été acceptées. Deux concernent pgAdmin, un concerne &lt;a href=&quot;http://phppgadmin.sourceforge.net/&quot; hreflang=&quot;en&quot;&gt;phpPgAdmin&lt;/a&gt; et les trois autres concernent &lt;a href=&quot;http://www.postgresql.org&quot; hreflang=&quot;en&quot;&gt;PostgreSQL&lt;/a&gt; directement.&lt;/p&gt;


&lt;p&gt;Le projet que je mentor-ise doit permettre la création d'un outil de modélisation graphique d'une base à partir de pgAdmin. Luis Ochoa est l'étudiant qui a proposé cette idée. Nous avons une grande confiance en lui. Il a déjà codé le constructeur graphique de requêtes (GQB, Graphical Query Builder) de l'éditeur de requêtes. Il connaît donc bien pgAdmin et la partie graphique. Il y a de fortes chances que le résultat de son travail sera inclus dans la 1.14.&lt;/p&gt;


&lt;p&gt;À noter que le mentor du projet pour phpPgAdmin est Jehan-Guillaume de Rorthais. Bien content pour lui aussi.&lt;/p&gt;</content>
		<author>
			<name>Guillaume Lelarge</name>
			<uri>http://blog.guillaume.lelarge.info/index.php/</uri>
		</author>
		<source>
			<title type="html">gleu's blog - PostgreSQL</title>
			<link rel="self" href="http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2"/>
			<id>http://blog.guillaume.lelarge.info/index.php/feed/category/Postgresql/rss2</id>
			<updated>2010-09-02T20:17:03+00:00</updated>
		</source>
	</entry>

</feed>
