PostgreSQL La base de donnees la plus sophistiquee au monde.

<p><strong>Nouvelles hebdomadaires de PostgreSQL - 31 octobre 2010</strong></p> <p>Joyeuses F&ecirc;te des Morts / Toussaint / Samain de la part des Nouvelles Hebdo&nbsp;!</p> <p>Le <em>PGDay</em> est programm&eacute; lors du "<em>Southern California Linux Exposition</em>" (SCALE) de cette ann&eacute;e, tenu au <em>LAX Hilton Hotel</em> de la ville de Los Angeles en Californie le vendredi 25 f&eacute;vrier 2011. Envoyez vos propositions de conf&eacute;rences &agrave; l'adresse pgday-submissions &lt;CHEZ&gt; googlegroups &lt;POINT&gt; com.</p> <p>Andreas Scherbaum a tenu une conf&eacute;rence en allemand sur PostgreSQL. Podcast disponible sur&nbsp;: <a target="_blank" href=""></a></p> <p><strong>Les nouveaut&eacute;s des produits d&eacute;riv&eacute;s</strong></p> <ul> <li>psqlODBC 09.00.0200, un pilote ODBC pour PostgreSQL&nbsp;: <a target="_blank" href=""></a></li> <li>Postgres-XC 0.9.3, un syst&egrave;me de cluster pour PostgreSQL&nbsp;: <a target="_blank" href=""></a></li> </ul> <p><strong>Offres d'emplois autour de PostgreSQL en octobre</strong></p> <ul> <li>Internationales&nbsp;: <a target="_blank" href=""></a>;</li> <li>Francophones&nbsp;: <a target="_blank" href=""></a>.</li> </ul> <p><strong>PostgreSQL Local</strong></p> <ul> <li>Le PUG allemand sera pr&eacute;sent avec r&eacute;union, conf&eacute;rence et atelier lors du <em>Brandenburger Linux-Infotag 2010</em> &agrave; Potsdam (All.) le 6 novembre&nbsp;: <a target="_blank" href=""></a></li> <li>Le PUG allemand organise une rencontre pour l'<em>OpenRheinRuhr 2010</em> les 13 &amp; 14 novembre &agrave; Oberhausen (All.). Andreas Scherbaum y parlera des nouvelles fonctionnalit&eacute;s de PostgreSQL 9.0&nbsp;: <a target="_blank" href=""></a></li> <li>Les inscriptions pour le PGDay.EU 2010 tenu du 6 au 8 d&eacute;cembre &agrave; Stuttgart sont ouvertes&nbsp;: <a target="_blank" href=""></a></li> <li>Le PgDay.IT 2010 aura lieu cette ann&eacute;e &agrave; Rome, le 10 d&eacute;cembre. L'appel &agrave; conf&eacute;renciers est lanc&eacute;&nbsp;: <a target="_blank" href=""></a></li> </ul> <p><strong>PostgreSQL dans les m&eacute;dia</strong></p> <ul> <li>Planet PostgreSQL&nbsp;: <a target="_blank" href=""></a></li> <li>Planet PostgreSQLFr&nbsp;: <a target="_blank" href=""></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), en allemand &agrave; pwn (a), en italien &agrave; pwn (a) et en espagnol &agrave; pwn (a)</i></p> <p>(<a target="_blank" href="">lien vers l'article original</a>)</p> <p><strong>Correctifs appliqu&eacute;s</strong></p> <p>Tom Lane a pouss&eacute;&nbsp;:</p> <ul> <li>Work around rounding misbehavior exposed by buildfarm. <a target="_blank" href=";a=commitdiff;h=4ba61a487e39eaf859cd9face9520b30127e6a91">;a=commitdiff;h=4ba61a487e39eaf859cd9face9520b30127e6a91</a></li> <li>Fix inline_set_returning_function() to preserve the invalItems list properly. This avoids a possible crash when inlining a SRF whose argument list contains a reference to an inline-able user function. The crash is quite reproducible with CLOBBER_FREED_MEMORY enabled, but would be less certain in a production build. Problem introduced in 9.0 by the named-arguments patch, which requires invoking eval_const_expressions() before we can try to inline a SRF. Per report from Brendan Jurd. <a target="_blank" href=";a=commitdiff;h=ef55e294e66725c412d55b9689328235141d816d">;a=commitdiff;h=ef55e294e66725c412d55b9689328235141d816d</a></li> <li>Fix overly-enthusiastic Assert in printing of Param reference expressions. A NestLoopParam's value can only be a Var or Aggref, but this isn't the case in general for SubPlan parameters, so print_parameter_expr had better be prepared to cope. Brain fade in my recent patch to print the referenced expression instead of just printing $N for PARAM_EXEC Params. Per report from Pavel Stehule. <a target="_blank" href=";a=commitdiff;h=c6873eac4c33720140240cdbd1a663fecc922c57">;a=commitdiff;h=c6873eac4c33720140240cdbd1a663fecc922c57</a></li> <li>Fix up some oversights in psql's Unicode-escape support. Original patch failed to include new exclusive states in a switch that needed to include them; and also was guilty of very fuzzy thinking about how to handle error cases. Per bug #5729 from Alan Choi. <a target="_blank" href=";a=commitdiff;h=35d89401525677441824c6f2116b9f7d0cc3caac">;a=commitdiff;h=35d89401525677441824c6f2116b9f7d0cc3caac</a></li> <li>Previous patch had no detectable virtue other than being a one-liner. Try to make the code look self-consistent again, so it doesn't confuse future developers. <a target="_blank" href=";a=commitdiff;h=e6721c6e1617a0fc8b4bce8eacba8b5a381f1f21">;a=commitdiff;h=e6721c6e1617a0fc8b4bce8eacba8b5a381f1f21</a></li> <li>Fix plpgsql's handling of "simple" expression evaluation. In general, expression execution state trees aren't re-entrantly usable, since functions can store private state information in them. For efficiency reasons, plpgsql tries to cache and reuse state trees for "simple" expressions. It can get away with that most of the time, but it can fail if the state tree is dirty from a previous failed execution (as in an example from Alvaro) or is being used recursively (as noted by me). Fix by tracking whether a state tree is in use, and falling back to the "non-simple" code path if so. This results in a pretty considerable speed hit when the non-simple path is taken, but the available alternatives seem even more unpleasant because they add overhead in the simple path. Per idea from Heikki Linnakangas. Back-patch to all supported branches. <a target="_blank" href=";a=commitdiff;h=8ce22dd4c51b6e8155889653c0116cad13877512">;a=commitdiff;h=8ce22dd4c51b6e8155889653c0116cad13877512</a></li> <li>Save a few cycles in plpgsql simple-expression initialization. Instead of using ExecPrepareExpr, call ExecInitExpr. The net change here is that we don't apply expression_planner() to the expression tree. There is no need to do so, because that tree is extracted from a fully planned plancache entry, so all the needed work is already done. This reduces the setup costs by about a factor of 2 according to some simple tests. Oversight noted while fooling around with the simple-expression code for previous fix. <a target="_blank" href=";a=commitdiff;h=37e0a016547abb3526b685d7aacbd0a4d57f6937">;a=commitdiff;h=37e0a016547abb3526b685d7aacbd0a4d57f6937</a></li> <li>In psql, make \? output of \dg and \du the same. The previous wording might have suggested that \du only showed login roles and \dg only group roles, but that is no longer the case. Proposed by Josh Kupershmidt. <a target="_blank" href=";a=commitdiff;h=299591d1a293e737d72d57aa8545c6c00d19db1d">;a=commitdiff;h=299591d1a293e737d72d57aa8545c6c00d19db1d</a></li> <li>In psql, add tab completion for psql \dg and \z. Josh Kupershmidt. <a target="_blank" href=";a=commitdiff;h=a3d40e9fb51f8aab9cde5d5018be5e46332275fd">;a=commitdiff;h=a3d40e9fb51f8aab9cde5d5018be5e46332275fd</a></li> <li>Avoid creation of useless EquivalenceClasses during planning. Zoltan Boszormenyi exhibited a test case in which planning time was dominated by construction of EquivalenceClasses and PathKeys that had no actual relevance to the query (and in fact got discarded immediately). This happened because we generated PathKeys describing the sort ordering of every index on every table in the query, and only after that checked to see if the sort ordering was relevant. The Emmanuel Cecchet/PK construction code is O(N2) in the number of ECs, which is all right for the intended number of such objects, but it gets out of hand if there are ECs for lots of irrelevant indexes. To fix, twiddle the handling of mergeclauses a little bit to ensure that every interesting Emmanuel Cecchet is created before we begin path generation. (This doesn't cost anything --- in fact I think it's a bit cheaper than before --- since we always eventually created those ECs anyway.) Then, if an index column can't be found in any pre-existing Emmanuel Cecchet, we know that that sort ordering is irrelevant for the query. Instead of creating a useless Emmanuel Cecchet, we can just not build a pathkey for the index column in the first place. The index will still be considered if it's useful for non-order-related reasons, but we will think of its output as unsorted. <a target="_blank" href=";a=commitdiff;h=14231a41a94b2345cc679ff67dbee1bf7dac7029">;a=commitdiff;h=14231a41a94b2345cc679ff67dbee1bf7dac7029</a></li> <li>Oops, missed one fix for EquivalenceClass rearrangement. Now that we're expecting a mergeclause's left_ec/right_ec to persist from the initial assignments, we can't just blithely zero these out when transforming such a clause in adjust_appendrel_attrs. But really it should be okay to keep the parent's values, since a child table's derived Var ought to be equivalent to the parent Var for all EquivalenceClass purposes. (Indeed, I'm wondering whether we couldn't find a way to dispense with add_child_rel_equivalences altogether. But this is wrong in any case.) <a target="_blank" href=";a=commitdiff;h=48a1fb23900d73e7d9cb2dc0408c745cd03597a7">;a=commitdiff;h=48a1fb23900d73e7d9cb2dc0408c745cd03597a7</a></li> <li>Fix comparisons of pointers with zero to compare with NULL instead. Per C standard, these are semantically the same thing; but saying NULL when you mean NULL is good for readability. Marti Raudsepp, per results of INRIA's Coccinelle. <a target="_blank" href=";a=commitdiff;h=bfd3f37be309c3647844aed937e6a66aad5fd3cb">;a=commitdiff;h=bfd3f37be309c3647844aed937e6a66aad5fd3cb</a></li> <li>Provide hashing support for arrays. The core of this patch is hash_array() and associated typcache infrastructure, which works just about exactly like the existing support for array comparison. In addition I did some work to ensure that the planner won't think that an array type is hashable unless its element type is hashable, and similarly for sorting. This includes adding a datatype parameter to op_hashjoinable and op_mergejoinable, and adding an explicit "hashable" flag to SortGroupClause. The lack of a cross-check on the element type was a pre-existing bug in mergejoin support --- but it didn't matter so much before, because if you couldn't sort the element type there wasn't any good alternative to failing anyhow. Now that we have the alternative of hashing the array type, there are cases where we can avoid a failure by being picky at the planner stage, so it's time to be picky. The issue of exactly how to combine the per-element hash values to produce an array hash is still open for discussion, but the rest of this is pretty solid, so I'll commit it as-is. <a target="_blank" href=";a=commitdiff;h=186cbbda8f8dc5e42f68fc7892f206a76d56a20f">;a=commitdiff;h=186cbbda8f8dc5e42f68fc7892f206a76d56a20f</a></li> <li>Revert removal of trigger flag from plperl function hash key. As noted by Jan Urbanski, this flag is in fact needed to ensure that the function's input/result conversion functions are set up as expected. Add a regression test to discourage anyone from making same mistake in future. <a target="_blank" href=";a=commitdiff;h=76b12e0af765b2ca2eeddcabdd5e7c22eda164da">;a=commitdiff;h=76b12e0af765b2ca2eeddcabdd5e7c22eda164da</a></li> </ul> <p>Alvaro Herrera a pouss&eacute;&nbsp;:</p> <ul> <li>find -path is not portable, so use grep -v instead. Per previous failure of buildfarm member koi (which is no longer failing, alas). <a target="_blank" href=";a=commitdiff;h=9350824e708678f6af9657979ba656cf1951b408">;a=commitdiff;h=9350824e708678f6af9657979ba656cf1951b408</a></li> </ul> <p>Peter Eisentraut a pouss&eacute;&nbsp;:</p> <ul> <li>Refactor typenameTypeId() Split the old typenameTypeId() into two functions: A new typenameTypeId() that returns only a type OID, and typenameTypeIdAndMod() that returns type OID and typmod. This isolates call sites better that actually care about the typmod. <a target="_blank" href=";a=commitdiff;h=35670340f57d78d6ab023b1fb42fd81339f85d4c">;a=commitdiff;h=35670340f57d78d6ab023b1fb42fd81339f85d4c</a></li> <li>Add missing newlines at end of files. <a target="_blank" href=";a=commitdiff;h=a87d21263600a978ff85142c53375ab25eb30bce">;a=commitdiff;h=a87d21263600a978ff85142c53375ab25eb30bce</a></li> <li>Remove obsolete release-alpha.sgml. This was only used while the final release notes for 9.0 were being prepared. The alpha release notes are now in release-9.1.sgml. <a target="_blank" href=";a=commitdiff;h=18d6437885d2cf50bb16b09676ff054054591290">;a=commitdiff;h=18d6437885d2cf50bb16b09676ff054054591290</a></li> <li>Release notes for 9.1alpha2. <a target="_blank" href=";a=commitdiff;h=e9eb4f401333209139af1acee2cd4251b05e0397">;a=commitdiff;h=e9eb4f401333209139af1acee2cd4251b05e0397</a></li> <li>Remove tabs from SGML. <a target="_blank" href=";a=commitdiff;h=2999f4ef354a72f00ab0033ed9c0463d89212b99">;a=commitdiff;h=2999f4ef354a72f00ab0033ed9c0463d89212b99</a></li> <li>Last-minute updates to 9.1alpha2 release notes. <a target="_blank" href=";a=commitdiff;h=71165685b265a8e5fdd615485917affdb0e8fa32">;a=commitdiff;h=71165685b265a8e5fdd615485917affdb0e8fa32</a></li> <li>Change version number in release notes to 9.1alpha2 <a target="_blank" href=";a=commitdiff;h=bd1ff9713369c2f54391112b92e0c22ab5c99180">;a=commitdiff;h=bd1ff9713369c2f54391112b92e0c22ab5c99180</a></li> </ul> <p>ITAGAKI Takahiro a pouss&eacute;&nbsp;:</p> <ul> <li>Add .gitignore for contrib/uuid-ossp. <a target="_blank" href=";a=commitdiff;h=07ca728f699694781ce62eae9e2fa61cd4ffa542">;a=commitdiff;h=07ca728f699694781ce62eae9e2fa61cd4ffa542</a></li> <li>Fix typos "are are". <a target="_blank" href=";a=commitdiff;h=bf76ad07fe59affc64f1554d4ff20ddf4d5e8e59">;a=commitdiff;h=bf76ad07fe59affc64f1554d4ff20ddf4d5e8e59</a></li> </ul> <p>Heikki Linnakangas a pouss&eacute;&nbsp;:</p> <ul> <li>Before removing backup_label and irrevocably changing pg_control file, check that WAL file containing the checkpoint redo-location can be found. This avoids making the cluster irrecoverable if the redo location is in an earlie WAL file than the checkpoint record. Report, analysis and patch by Jeff Davis, with small changes by me. <a target="_blank" href=";a=commitdiff;h=0c6293dd0361a0d3c72c94ced389c509019713a7">;a=commitdiff;h=0c6293dd0361a0d3c72c94ced389c509019713a7</a></li> <li>Note explicitly that hash indexes are also not replicated because they're not WAL-logged. Make the notice about the lack of WAL-logging more visible by making it a &lt;caution&gt;. Also remove the false statement from hot standby caveats section that hash indexes are not used during hot standby. <a target="_blank" href=";a=commitdiff;h=5c38782cc8b3219d43ac2ccaf4254fd590bde758">;a=commitdiff;h=5c38782cc8b3219d43ac2ccaf4254fd590bde758</a></li> <li>Fix long-standing segfault when accept() or one of the calls made right after accepting a connection fails, and the server is compiled with GSSAPI support. Report and patch by Alexander V. Chernikov, bug #5731. <a target="_blank" href=";a=commitdiff;h=869af50fcfdd4448b2dc637d905f1afda689741d">;a=commitdiff;h=869af50fcfdd4448b2dc637d905f1afda689741d</a></li> <li>Give a more specific error message if you try to COMMIT, ROLLBACK or COPY FROM STDIN in PL/pgSQL. We alread did this for dynamic EXECUTE statements, ie. "EXECUTE 'COMMIT'", but not otherwise. <a target="_blank" href=";a=commitdiff;h=f184de351d6a35355aa8f1c1b655c3f6a5087205">;a=commitdiff;h=f184de351d6a35355aa8f1c1b655c3f6a5087205</a></li> </ul> <p>Robert Haas a pouss&eacute;&nbsp;:</p> <ul> <li>Fix dumb typo in SECURITY LABEL error message. Report by Peter Eisentraut. <a target="_blank" href=";a=commitdiff;h=3579a94d6acd9374fbc3b45d0be593331ffd414d">;a=commitdiff;h=3579a94d6acd9374fbc3b45d0be593331ffd414d</a></li> <li>Minor fixups for psql's process_file() function. Avoid closing stdin, since we didn't open it. Previously multiple inclusions of stdin would be terminated with a single quit, now a separate quit is needed for each invocation. Previous behavior also accessed stdin after it was fclose()d, which is undefined behavior per ANSI C. Properly restore pset.inputfile, since the caller expects to be able to free that memory. Marti Raudsepp. <a target="_blank" href=";a=commitdiff;h=1fea0c05eb4ac4a21d79471b9a7fe96163306b88">;a=commitdiff;h=1fea0c05eb4ac4a21d79471b9a7fe96163306b88</a></li> <li>Add a client authentication hook. KaiGai Kohei, with minor cleanup of the comments by me. <a target="_blank" href=";a=commitdiff;h=20709f813601976076a346c0b0f8e92006e3b3fa">;a=commitdiff;h=20709f813601976076a346c0b0f8e92006e3b3fa</a></li> <li>Note that effective_io_concurrency only affects bitmap heap scans. Josh Kupershmidt. <a target="_blank" href=";a=commitdiff;h=5a12c808cf223c7a5498217142cc9cb45efe033a">;a=commitdiff;h=5a12c808cf223c7a5498217142cc9cb45efe033a</a></li> <li>Reorganize OS-specific details about write caching into a list. Along the way, clarify that sdparm can be used on Linux as well as FreeBSD. <a target="_blank" href=";a=commitdiff;h=0d5deebe11818a54f79ca66e1a1d41dae0e0b52b">;a=commitdiff;h=0d5deebe11818a54f79ca66e1a1d41dae0e0b52b</a></li> <li>Revert "Correct WAL space calculation formula in docs." This reverts commit 915116bc62db2aaec7001bde6610128f4cbd29f9. Per discussion, the previous formula was in fact correct. <a target="_blank" href=""></a> <a target="_blank" href=";a=commitdiff;h=2cae0aeb9c61aef48b6de3fb5c4f7785a06bca0b">;a=commitdiff;h=2cae0aeb9c61aef48b6de3fb5c4f7785a06bca0b</a></li> </ul> <p>Andrew Dunstan a pouss&eacute;&nbsp;:</p> <ul> <li>Allow generic record arguments to plperl functions. <a target="_blank" href=";a=commitdiff;h=6c3c7b533e4b73bef99996f92da26c7c4124edd3">;a=commitdiff;h=6c3c7b533e4b73bef99996f92da26c7c4124edd3</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>Shigeru HANADA sent in another revision of the patch to add SQL/MED with simple wrappers.</li> <li>ITAGAKI Takahiro sent in two revisions of a patch to add executor nodes, which will help with, among other things, SQL/MED.</li> <li>Alvaro Herrera sent in a patch atop the patch to add EXTENSIONs.</li> <li>David Fetter sent in two revisions of a patch to add tab completion in psql for views made writeable by triggers.</li> <li>Dimitri Fontaine sent in another patch for EXTENSIONs.</li> <li>Zoltan Boszormenyi, Heikki Linnakangas and Tom Lane traded patches to speed up planning times for queries on tables with large numbers of partitions.</li> <li>Alvaro Herrera sent in a patch to add "ALTER TYPE...ADD ELEMENT" to enums.</li> <li>Steve Singer sent in a patch to modify TRUNCATE ... RESTART IDENTITY so that when the transaction rolls back, the restart of the sequence also rolls back.</li> <li>Robert Haas sent in a patch to help explain about sdparm's effects on WAL durability.</li> <li>Alvaro Herrera sent in a patch to change ALTER TYPE...ENUM... to include ADD LABEL [BEFORE|AFTER]. The LABEL is new.</li> <li>Zoltan Boszormenyi sent in a patch for ECPG to get WHERE CURRENT OF to accept dynamic cursor names.</li> <li>Heikki Linnakangas sent in a patch to allow tracking the latest timeline in standby mode.</li> <li>Marti Raudsepp sent in a patch to change places where pointers were compared to 0 to compare them to NULL.</li> <li>Alexander Korotkov sent in a patch to fix the GiST picksplit method implementation in contrib/cube.</li> <li>Andres Freund sent in another revision of the patch to cancel IIT backends.</li> <li>Marti Raudsepp sent in some more fixes based on Coccinelli runs.</li> <li>Dimitri Fontaine sent in a patch to add ALTER...SET SCHEMA... to those object types that don't already have it.</li> <li>Peter Eisentraut sent in a patch to avoid passing around type OID + typmod (+ collation) separately all over the place. Instead, there is a new struct TypeInfo that contains these fields, and only a pointer is passed around.</li> <li>Alex Hunsaker sent in a patch to fix another issue with PL/Perl trigger functions.</li> <li>Andres Freund sent in a patch to improve the performance of int32- and int64-to-text conversions by creating a custom converter rather than using the standard itoa functions.</li> </ul>

pgwn/31_octobre_2010.txt · Dernière modification: 2010/11/06 14:38 par buggy