<p><strong>Nouvelles hebdomadaires de PostgreSQL - 18 d&eacute;cembre 2011</strong></p> <p><strong>Les nouveaut&eacute;s des produits d&eacute;riv&eacute;s</strong></p> <ul> <li>HTSQL 2.2, un langage de haut-niveau pour les bases de donn&eacute;es relationnelles&nbsp;: <a target="_blank" href="http://htsql.org">http://htsql.org</a></li> <li>psycopg2 2.4.3, un connecteur Python pour PostgreSQL&nbsp;: <a target="_blank" href="http://initd.org/psycopg/articles/2011/12/12/psycopg-243-released/">http://initd.org/psycopg/articles/2011/12/12/psycopg-243-released/</a></li> </ul> <p><strong>Offres d'emplois autour de PostgreSQL en d&eacute;cembre</strong></p> <ul> <li>Internationales&nbsp;: <a target="_blank" href="http://archives.postgresql.org/pgsql-jobs/2011-12/threads.php">http://archives.postgresql.org/pgsql-jobs/2011-12/threads.php</a>;</li> <li>Francophones&nbsp;: <a target="_blank" href="http://forums.postgresql.fr/viewforum.php?id=4">http://forums.postgresql.fr/viewforum.php?id=4</a>.</li> </ul> <p><strong>PostgreSQL Local</strong></p> <ul> <li>FOSDEM 2012 - <em>Devroom</em> PostgreSQL&nbsp;: l'appel &agrave; conf&eacute;renciers est lanc&eacute; (date limite de d&eacute;p&ocirc;t&nbsp;: 20 d&eacute;cembre 2011)&nbsp;: <a target="_blank" href="https://www.postgresql.eu/events/callforpapers/fosdem2012/">https://www.postgresql.eu/events/callforpapers/fosdem2012/</a></li> <li>La cinqui&egrave;me conf&eacute;rence annuelle "<em>Prague PostgreSQL Developers Day</em>", organis&eacute;e pas le CSPUG (PUG Tch&egrave;que &amp; Slovaque), aura lieu le 9 f&eacute;vrier 2012 &agrave; Prague. L'appel &agrave; conf&eacute;renciers est lanc&eacute;. Merci d'envoyer vos propositions, incluant le sujet, une estimation de la dur&eacute;e et vos coordonn&eacute;es &agrave; l'adresse info CHEZ p2d2 POINT cz.</li> <li>L'appel &agrave; conf&eacute;renciers a &eacute;t&eacute; lanc&eacute; pour le FLOSS UK, programm&eacute; du 20 au 22 mars 2012 &agrave; Edimbourg. La date limite de d&eacute;p&ocirc;t des candidatures est fix&eacute;e au 18 novembre 2011 et les conf&eacute;renciers s&eacute;lectionn&eacute;s seront inform&eacute;s avant le 25 novembre. Les propositions sont &agrave; envoyer &agrave; postgresql2012 AT flossuk POINT org. Plus d'informations via le lien suivant&nbsp;: <a target="_blank" href="http://www.flossuk.org/Events/Spring2012">http://www.flossuk.org/Events/Spring2012</a></li> </ul> <p><strong>PostgreSQL dans les m&eacute;dia</strong></p> <ul> <li>Planet PostgreSQL&nbsp;: <a target="_blank" href="http://planet.postgresql.org/">http://planet.postgresql.org/</a></li> <li>Planet PostgreSQLFr&nbsp;: <a target="_blank" href="http://planete.postgresql.fr/">http://planete.postgresql.fr/</a></li> </ul> <p><i>PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. Traduction par l'&eacute;quipe PostgreSQLFr sous licence CC BY-NC-SA.</i></p> <p><i>Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Merci de les envoyer en anglais &agrave; david (a) fetter.org, en allemand &agrave; pwn (a) pgug.de, en italien &agrave; pwn (a) itpug.org et en espagnol &agrave; pwn (a) arpug.com.ar.</i></p> <p>(<a target="_blank" href="http://archives.postgresql.org/pgsql-announce/2011-12/msg00011.php">lien vers l'article original</a>)</p> <p><strong>Revues de code</strong></p> <p><strong>Correctifs appliqu&eacute;s</strong></p> <p>Heikki Linnakangas a pouss&eacute;&nbsp;:</p> <ul> <li>Revert the behavior of inet/cidr functions to not unpack the arguments. I forgot to change the functions to use the PG_GETARG_INET_PP() macro, when I changed DatumGetInetP() to unpack the datum, like Datum*P macros usually do. Also, I screwed up the definition of the PG_GETARG_INET_PP() macro, and didn't notice because it wasn't used. This fixes the memory leak when sorting inet values, as reported by Jochen Erwied and debugged by Andres Freund. Backpatch to 8.3, like the previous patch that broke it. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/8409b60476a4112e654d1a5099dd67a54f197afd">http://git.postgresql.org/pg/commitdiff/8409b60476a4112e654d1a5099dd67a54f197afd</a></li> <li>Add support for passing cursor parameters in named notation in PL/pgSQL. Yeb Havinga, reviewed by Kevin Grittner, with small changes by me. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/4adead1d224278ff3064636063a818eba17cb211">http://git.postgresql.org/pg/commitdiff/4adead1d224278ff3064636063a818eba17cb211</a></li> <li>Fix reference to "verify-ca" and "verify-full" in a note in the docs. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/4b43b48c9f05d7bfc5d20fdf53c8fb966d704312">http://git.postgresql.org/pg/commitdiff/4b43b48c9f05d7bfc5d20fdf53c8fb966d704312</a></li> </ul> <p>Tom Lane a pouss&eacute;&nbsp;:</p> <ul> <li>Move BKP_REMOVABLE bit from individual WAL records to WAL page headers. Removing this bit from xl_info allows us to restore the old limit of four (not three) separate pages touched by a WAL record, which is needed for the upcoming SP-GiST feature, and will likely be useful elsewhere in future. When we implemented XLR_BKP_REMOVABLE in 2007, we had to do it like that because no special WAL-visible action was taken when starting a backup. However, now we force a segment switch when starting a backup, so a compressing WAL archiver (such as pglesslog) that uses the state shown in the current page header will not be fooled as to removability of backup blocks. The only downside is that the archiver will not return to compressing mode for up to one WAL page after the backup is over, which is a small price to pay for getting back the extra xl_info bit. In any case the archiver could look for XLOG_BACKUP_END records if it thought it was worth the trouble to do so. Bump XLOG_PAGE_MAGIC since this is effectively a change in WAL format. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/2dd9322ba6eea76800b38bfea0599fbc459458f2">http://git.postgresql.org/pg/commitdiff/2dd9322ba6eea76800b38bfea0599fbc459458f2</a></li> <li>Add missing 'static' qualifier. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/fb4bbc8113e5b5eb1233418ad1f92428339da370">http://git.postgresql.org/pg/commitdiff/fb4bbc8113e5b5eb1233418ad1f92428339da370</a></li> <li>Add SP-GiST (space-partitioned GiST) index access method. SP-GiST is comparable to GiST in flexibility, but supports non-balanced partitioned search structures rather than balanced trees. As described at PGCon 2011, this new indexing structure can beat GiST in both index build time and query speed for search problems that it is well matched to. There are a number of areas that could still use improvement, but at this point the code seems committable. Teodor Sigaev and Oleg Bartunov, with considerable revisions by Tom Lane <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/8daeb5ddd698f661eb118f8e874e7c68cfd6ae09">http://git.postgresql.org/pg/commitdiff/8daeb5ddd698f661eb118f8e874e7c68cfd6ae09</a></li> <li>Fix compiler warning seen on 64-bit machine. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/85df5dbf5ac56f75cf9e23fe4504f2e672893f30">http://git.postgresql.org/pg/commitdiff/85df5dbf5ac56f75cf9e23fe4504f2e672893f30</a></li> <li>Fix some long-obsolete references to XLogOpenRelation. These were missed in commit a213f1ee6c5a1bbe1f074ca201975e76ad2ed50c, which removed that function. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/dd45d3ad33bdb415b18ee8b37182b52c1c354cd6">http://git.postgresql.org/pg/commitdiff/dd45d3ad33bdb415b18ee8b37182b52c1c354cd6</a></li> <li>Remove bogus entries in gist point_ops operator class. These entries could never be matched to an index clause because they don't have the index datatype on the left-hand side of the operator. (Their commutators are in the opclass, which is sensible, but that doesn't mean these operators should be.) Spotted by a test that I recently added to opr_sanity to catch exactly this type of thinko. AFAICT there is no code in gistproc.c that is specifically meant to cover these cases, so nothing to remove at that level. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/5577ca5bfb33bf7f31a03fc5b42a56de400e464e">http://git.postgresql.org/pg/commitdiff/5577ca5bfb33bf7f31a03fc5b42a56de400e464e</a></li> <li>Defend against null scankeys in spgist searches. Should've thought of that one earlier. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/b7a0e8fb4d6fafcd30555e4ddf18e77e138ec3d0">http://git.postgresql.org/pg/commitdiff/b7a0e8fb4d6fafcd30555e4ddf18e77e138ec3d0</a></li> <li>Replace simple constant pg_am.amcanreturn with an AM support function. The need for this was debated when we put in the index-only-scan feature, but at the time we had no near-term expectation of having AMs that could support such scans for only some indexes; so we kept it simple. However, the SP-GiST AM forces the issue, so let's fix it. This patch only installs the new API; no behavior actually changes. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/3695a555136a6d179cac8ae48d5f90171d5b30e9">http://git.postgresql.org/pg/commitdiff/3695a555136a6d179cac8ae48d5f90171d5b30e9</a></li> </ul> <p>Andrew Dunstan a pouss&eacute;&nbsp;:</p> <ul> <li>Add --exclude-table-data option to pg_dump. Andrew Dunstan, reviewed by Josh Berkus, Robert Haas and Peter Geoghegan. This allows dumping of a table definition but not its data, on a per table basis. Table name patterns are supported just as for --exclude-table. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/7b070e896ca835318c90b02c830a5c4844413b64">http://git.postgresql.org/pg/commitdiff/7b070e896ca835318c90b02c830a5c4844413b64</a></li> <li>Fix docs build I inadvertantly broke. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/fb0eca0695e0e287335cf969b8ae48f0a42c40e8">http://git.postgresql.org/pg/commitdiff/fb0eca0695e0e287335cf969b8ae48f0a42c40e8</a></li> <li>Disable excessive floating point optimization by recent versions of gcc. Suggested solution from Tom Lane. Problem discovered, probably not for the first time, while testing the mingw-w64 32 bit compiler. Backpatched to all live branches. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/5878a328e36b7f59c6c173212b77d0536e8804dd">http://git.postgresql.org/pg/commitdiff/5878a328e36b7f59c6c173212b77d0536e8804dd</a></li> <li>include_if_exists facility for config file. This works the same as include, except that an error is not thrown if the file is missing. Instead the fact that it's missing is logged. Greg Smith, reviewed by Euler Taveira de Oliveira. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/6d09b2105fb5fa6e6245e7b024bfbe465b1041ee">http://git.postgresql.org/pg/commitdiff/6d09b2105fb5fa6e6245e7b024bfbe465b1041ee</a></li> <li>Add --section option to pg_dump and pg_restore. Valid values are --pre-data, data and post-data. The option can be given more than once. --schema-only is equivalent to --section=pre-data --section=post-data. --data-only is equivalent to --section=data. Andrew Dunstan, reviewed by Joachim Wieland and Josh Berkus. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/a4cd6abcc901c1a8009c62a27f78696717bb8fe1">http://git.postgresql.org/pg/commitdiff/a4cd6abcc901c1a8009c62a27f78696717bb8fe1</a></li> <li>Clarify the post-data status on unvalidated check constraints. Per gripe from Thom Brown. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/8900f663f2405cc8ebc401f4f055671c81adaca7">http://git.postgresql.org/pg/commitdiff/8900f663f2405cc8ebc401f4f055671c81adaca7</a></li> <li>Same clarification for pg_restore. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/19fc0fe3ae7861a8b0d3ab8b67bd01fde33bf2da">http://git.postgresql.org/pg/commitdiff/19fc0fe3ae7861a8b0d3ab8b67bd01fde33bf2da</a></li> </ul> <p>Peter Eisentraut a pouss&eacute;&nbsp;:</p> <ul> <li>PL/Python: Refactor subtransaction handling. Lots of repetitive code was moved into new functions PLy_spi_subtransaction_{begin,commit,abort}. Jan Urba&#324;ski <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/fc9959701b57d11d08a4a8a0788ccbd887ee2e47">http://git.postgresql.org/pg/commitdiff/fc9959701b57d11d08a4a8a0788ccbd887ee2e47</a></li> <li>Split plpython.c into smaller pieces. This moves the code around from one huge file into hopefully logical and more manageable modules. For the most part, the code itself was not touched, except: PLy_function_handler and PLy_trigger_handler were renamed to PLy_exec_function and PLy_exec_trigger, because they were not actually handlers in the PL handler sense, and it makes the naming more similar to the way PL/pgSQL is organized. The initialization of the procedure caches was separated into a new function init_procedure_caches to keep the hash tables private to plpy_procedures.c. Jan Urba&#324;ski and Peter Eisentraut <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/147c2482542868d1f9dcf7d2ecfeac58d845335c">http://git.postgresql.org/pg/commitdiff/147c2482542868d1f9dcf7d2ecfeac58d845335c</a></li> <li>PL/Python: One more file renaming fix to unbreak the build <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/19d223171801dda36f84e24dc89c9fbab1ababad">http://git.postgresql.org/pg/commitdiff/19d223171801dda36f84e24dc89c9fbab1ababad</a></li> </ul> <p>Robert Haas a pouss&eacute;&nbsp;:</p> <ul> <li>Fix typo. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/f6835ea90ac4b6b87fcf9f042959756c246f8fbe">http://git.postgresql.org/pg/commitdiff/f6835ea90ac4b6b87fcf9f042959756c246f8fbe</a></li> <li>Don't leave regress_test_role_super lying around. Fixes an oversight in commit fc6d1006bda783cc002c61a5f072905849dbde4b. Noted by Tom Lane. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/d039fd51f79e9ddde4d692d2b396bdf5722b4c4e">http://git.postgresql.org/pg/commitdiff/d039fd51f79e9ddde4d692d2b396bdf5722b4c4e</a></li> <li>Improve behavior of concurrent ALTER &lt;relation&gt; .. SET SCHEMA. If the referrent of a name changes while we're waiting for the lock, we must recheck permissons. We also now check the relkind before locking, since it's easy to do that long the way. Patch by me; review by Noah Misch. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/1da5c119594e4fb07fb6a2c57f66642fa5e966fb">http://git.postgresql.org/pg/commitdiff/1da5c119594e4fb07fb6a2c57f66642fa5e966fb</a></li> <li>Improve behavior of concurrent rename statements. Previously, renaming a table, sequence, view, index, foreign table, column, or trigger checked permissions before locking the object, which meant that if permissions were revoked during the lock wait, we would still allow the operation. Similarly, if the original object is dropped and a new one with the same name is created, the operation will be allowed if we had permissions on the old object; the permissions on the new object don't matter. All this is now fixed. Along the way, attempting to rename a trigger on a foreign table now gives the same error message as trying to create one there in the first place (i.e. that it's not a table or view) rather than simply stating that no trigger by that name exists. Patch by me; review by Noah Misch. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/74a1d4fe7cc092076806767925d6f34ea347efde">http://git.postgresql.org/pg/commitdiff/74a1d4fe7cc092076806767925d6f34ea347efde</a></li> <li>Various micro-optimizations for GetSnapshopData(). Heikki Linnakangas had the idea of rearranging GetSnapshotData to avoid checking for sub-XIDs when no top-level XID is present. This patch does that plus further a bit of further, related rearrangement. Benchmarking show a significant improvement on unlogged tables at higher concurrency levels, and mostly indifferent result on permanent tables (which are presumably bottlenecked elsewhere). Most of the benefit seems to come from using the new NormalTransactionIdPrecedes() macro rather than the function call TransactionIdPrecedes(). <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/0d76b60db4684d3487223b003833828fe9655fe2">http://git.postgresql.org/pg/commitdiff/0d76b60db4684d3487223b003833828fe9655fe2</a></li> </ul> <p>Bruce Momjian a pouss&eacute;&nbsp;:</p> <ul> <li>Remove tabs in SGML file. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/153c8dbd8ca3f6736dd220edda7d4392f5381a33">http://git.postgresql.org/pg/commitdiff/153c8dbd8ca3f6736dd220edda7d4392f5381a33</a></li> </ul> <p>Michael Meskes a pouss&eacute;&nbsp;:</p> <ul> <li>In ecpg removed old leftover check for given connection name. Ever since we introduced real prepared statements this should work for different connections. The old solution just emulating prepared statements, though, wasn't able to handle this. Closes: #6309 <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/4b8b5e53eb6105924266bb32709042f710043b4e">http://git.postgresql.org/pg/commitdiff/4b8b5e53eb6105924266bb32709042f710043b4e</a></li> <li>Added test for cursor handling on different connections to regression test suite for ecpg. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/22232834c54c315ed57708806c9f8a9b962e2988">http://git.postgresql.org/pg/commitdiff/22232834c54c315ed57708806c9f8a9b962e2988</a></li> <li>Mark variables as const in pgtypeslib if they only carry a format string. <a target="_blank" href="http://git.postgresql.org/pg/commitdiff/59e242a4969d2efa6ce68dc7aab3cbd8cf975b08">http://git.postgresql.org/pg/commitdiff/59e242a4969d2efa6ce68dc7aab3cbd8cf975b08</a></li> </ul> <p><strong>Correctifs rejet&eacute;s (&agrave; ce jour)</strong></p> <ul> <li>Pas de d&eacute;ception cette semaine&nbsp;:-)</li> </ul> <p><strong>Correctifs en attente</strong></p> <ul> <li>Simon Riggs sent in two revisions of a patch which introduces regular keepalives from WALsender to WALreceiver, using a new protocol message 'k'.</li> <li>KaiGai Kohei sent in another revision of the patch intended to plug certain class of information leaks in VIEWs.</li> <li>Jeff Davis and Alexander Korotkov traded patches to clean up some infelicities in range types.</li> <li>Shigeru HANADA and Etsuro Fujita traded revisions of the patch to make it possible to collect statistics on CSV foreign tables.</li> <li>Peter Eisentraut sent in another revision of the patch adding type privileges.</li> <li>Marti Raudsepp sent in another revision of the patch to cache the results of functions with stable arguments.</li> <li>Brendan Jurd sent in a patch to add arithmetic operators for the macaddr type.</li> <li>Alexander Shulgin and Greg Smith traded patches to implement a URI syntax for PostgreSQL connection strings in libpq.</li> <li>Robert Haas sent in another revision of the patch to allow taking fewer snapshots per query.</li> <li>Greg Smith and Magnus Hagander traded revisions of a patch to allow users to kill their own queries.</li> <li>Pavel Stehule sent in four more revisions of the patch to add a CHECK FUNCTION statement.</li> <li>Andrew Dunstan sent in a patch to make libpgport build dynamically rather than statically.</li> <li>Shigeru HANADA sent in another flock of patches intended both to enable a PostgreSQL foreign data wrapper along with some new push-down capabilities for foreign data wrappers in general to make the aforementioned useful.</li> <li>Peter Geoghegan sent in another revision of the patch to alter pg_stat_statements to allow query tree based normalization.</li> <li>Robert Haas sent in two more revisions of the patch to store hot members of PGPROC out of the band.</li> <li>Robert Haas sent in another revision of the Flexlocks patch.</li> <li>Simon Riggs sent in another revision of a patch to fix some PGPROC race conditions.</li> <li>Heikki Linnakangas sent in a patch to move more work outside WALInsertLock, which bottlenecks operations when &gt;1 core is available.</li> <li>Alvaro Herrera sent in another revision of the patch to make it possible to make CHECK constraints not be inherited by child tables in a table inheritance hierarchy.</li> <li>Robert Haas sent in another revision of the patch to add JSON as a first-class data type.</li> <li>Lionel Elie Mamane sent in a patch to build libpq with Mozilla LDAP instead of OpenLDAP.</li> <li>Phil Sorber sent in a WIP patch which improves relation size functions such as pg_relation_size() to avoid producing an error when called against a no longer visible relation.</li> <li>David Fetter sent in a patch to add optional page checksums.</li> <li>Dimitri Fontaine sent in a patch to make it possible to see and set EXTENSION dependencies functionally.</li> </ul>