<p><strong>Nouvelles hebdomadaires de PostgreSQL - 16 Septembre 2007</strong></p> <p>Postgres 8.2.5, 8.1.10, 8.0.14, 7.4.18 et 7.3.20 seront bient&ocirc;t disponibles. Soyez pr&ecirc;ts &agrave; mettre &agrave; jour !</p> <p><strong>Les nouveaut&eacute;s des produits d&eacute;riv&eacute;s</strong></p> <ul> <li>pgAdmin III 1.8.0 Beta 5 est disponible&nbsp;: <a target="_blank" href="http://www.pgadmin.org/">http://www.pgadmin.org/</a></li> </ul> <p><strong>Offres d'emplois autour de PostgreSQL en septembre</strong></p> <p><a target="_blank" href="http://archives.postgresql.org/pgsql-jobs/2007-09/threads.php">http://archives.postgresql.org/pgsql-jobs/2007-09/threads.php</a></p> <p><strong>PostgreSQL Local</strong></p> <ul> <li>La PostgreSQL Conference Fall 2007 aura lieu le 20 octobre &agrave; l'Universit&eacute; d'&Eacute;tat de Portland (Oregon, USA)&nbsp;: <a target="_blank" href="http://www.postgresqlconference.org/">http://www.postgresqlconference.org/</a></li> <li>Il y aura une r&eacute;union PostgreSQL pendant l'Ohio Linuxfest le 29 septembre, et Robert Treat fera une petite conf&eacute;rence sur les nouveaut&eacute;s de la 8.3&nbsp;: <a target="_blank" href="http://www.ohiolinux.org/speakers.html#talk1_06">http://www.ohiolinux.org/speakers.html#talk1_06</a></li> </ul> <p><strong>PostgreSQL dans les m&eacute;dia</strong></p> <ul> <li>Planet PostgreSQL&nbsp;: <a target="_blank" href="http://www.planetpostgresql.org/">http://www.planetpostgresql.org/</a></li> <li>General Bits, Archives et ses manchettes occasionnelles&nbsp;: <a target="_blank" href="http://www.varlena.com/GeneralBits/">http://www.varlena.com/GeneralBits/</a></li> </ul> <p><i>PostgreSQL Weekly News / les nouvelles hebdomadaires vous sont offertes cette semaine par David Fetter. La traduction fran&ccedil;aise est assur&eacute;e par l'&eacute;quipe PostgreSQLFr.</i></p> <p><i>Proposez vos articles ou annonces avant dimanche 15:00 (heure du Pacifique). Envoyez-les en anglais &agrave; david (a) fetter.org ou en allemand &agrave; pwn (a) pgug.de.</i></p> <p><strong>Correctifs Appliqu&eacute;s</strong></p> <p>Marc Fournier a commit&eacute;&nbsp;:</p> <ul> <li>Update configure for 7.3.20.</li> <li>Update configure for 7.4.18.</li> <li>Update configure for 8.0.14.</li> <li>Update configure for 8.1.10.</li> <li>Update configure for 8.2.5.</li> </ul> <p>Peter Eisentraut a commit&eacute;&nbsp;:</p> <ul> <li>Translation updates</li> </ul> <p>Andrew Dunstan a commit&eacute;&nbsp;:</p> <ul> <li>Perform post-escaping encoding validity checks on SQL literals and COPY input so that invalidly encoded data cannot enter the database by these means.</li> </ul> <p>Magnus Hagander a commit&eacute;&nbsp;:</p> <ul> <li>In pgsql/src/tools/msvc/Install.pm, install dictionary sample files. Per buildfarm and Teodor.</li> </ul> <p>Bruce Momjian a commit&eacute;&nbsp;:</p> <ul> <li>Update Japanese FAQ. Jun Kuwamura</li> <li>Add to TODO: "Prevent long-lived temporary tables from causing frozen-xid advancement starvation."</li> <li>Add to TODO: "Make it possible to use RETURNING together with conditional DO INSTEAD rules, such as for partitioning setups.</li> <li>Fix FAQ markup.</li> <li>Update pronunciation item in FAQ.</li> <li>Update FAQ to mention that an alternate project name is "Postgres."</li> <li>Heikki Linnakangas's patch to remove GIN interface section from pgsql/src/backend/access/gin/README. GIN is now documented in SGML.</li> <li>Kris Jurka's patch to fix GSS API pointer checking.</li> <li>Document atan2() as y/x, rather than x/y, to conform to general usage. Per Andrew Maclean.</li> <li>Brendan Jurd's patch to add some links for escape strings. Fix markup in previous commit.</li> <li>Laurenz Albe's patch which adds LDAP URL documentation.</li> <li>Update documentation to mention that autovacuum also does analyze so we don't need to recommend nightly analyzes anymore unless autovacuum is off.</li> <li>Clarify tar documentation about return error codes. Backpatch to 8.2.X.</li> <li>Update tsearch include location in example. Patch from Oleg Bartunov.</li> <li>Add tsearch tab completion support to psql.</li> <li>In pgsql/doc/src/sgml/spi.sgml, fix SPI example (PG_MODULE_MAGIC is required as of PostgreSQL 8.2) and add a link to the compiling and linking section. Euler Taveira de Oliveira.</li> <li>Update GNU tar error code documentation. Backpatch to 8.2.X.</li> <li>In pgsql/doc/src/sgml/client-auth.sgml, mention that PAM doesn't work for Unix system authentication because of the problems non-root reading /etc/shadow.</li> <li>In pgsql/doc/src/sgml/maintenance.sgml, update documented error text. Fujii Masao</li> <li>Clarify age() 'months' calculation documentation.</li> <li>Update documentation to emphasize autovacuum rather than administrator-scheduled vacuums.</li> <li>Jun Kuwamura's patch to update Japanese FAQ, backpatch.</li> <li>In pgsql/src/tools/RELEASE_CHANGES, improve whitespace.</li> <li>Document an efficient way to create documentation for back branches.</li> <li>Update Japanese FAQ to current release number.</li> <li>Stamp 8.2.5, 8.1.10, 8.0.14, 7.4.18 and 7.3.20. Update FAQs for 8.2.5.</li> </ul> <p>Alvaro Herrera a commit&eacute;&nbsp;:</p> <ul> <li>Fix a memory leak in the autovacuum launcher code. Noted by Darcy Buskermolen, who reported it privately to me.</li> <li>Make REINDEX DATABASE silently skip remote temp tables. Per report from bitsandbytes88 &lt;at&gt; hotmail.com and subsequent discussion. This is a back patch of a patch committed yesterday to CLUSTER and REINDEX. REINDEX only processes user indexes as of 8.1, so we needn't backpatch this any further. (CLUSTER was backpatched separately all the way back to 7.4).</li> <li>Fix the database-wide version of CLUSTER to silently skip temp tables of remote sessions, instead of erroring out in the middle of the operation. This is a backpatch of a previous fix applied to CLUSTER to HEAD and 8.2, all the way back that it is relevant to.</li> <li>Add a CHECK_FOR_INTERRUPTS call in the site where the vacuum delay point was removed.</li> <li>Make CLUSTER and REINDEX silently skip remote temp tables in their database-wide editions. Per report from bitsandbytes88 &lt;at&gt; hotmail.com and subsequent discussion. Back-ported to 8.2</li> <li>Release the exclusive lock on the table early after truncating it in lazy vacuum, instead of waiting till commit.</li> <li>Remove the vacuum_delay_point call in count_nondeletable_pages, because we hold an exclusive lock on the table at this point, which we want to release as soon as possible. This is called in the phase of lazy vacuum where we truncate the empty pages at the end of the table. An alternative solution would be to lower the vacuum delay settings before starting the truncating phase, but this doesn't work very well in autovacuum due to the autobalancing code (which can cause other processes to change our cost delay settings). This case could be considered in the balancing code, but it is simpler this way. Back-patched to 8.0</li> </ul> <p>Teodor Sigaev a commit&eacute;&nbsp;:</p> <ul> <li>In pgsql/src/backend/utils/adt/tsrank.c, fix typo in typecasting. patch from ITAGAKI Takahiro.</li> <li>Remove QueryOperand-&gt;istrue flag, as it was used only in cover ranking (ts_rank_cd). Use palloc'ed array in ranking instead of flag.</li> <li>Fix header's size of structs defines in ispell. Backpatch is needed for contrib version.</li> <li>Add regression tests for ispell, synonym and thesaurus dictionaries. Rename synonym.syn.sample and thesaurs.ths.sample to synonym_sample.syn and thesaurs_sample.ths respectively to be able to use them in regression tests. Ispell dictionary uses synthetic simple dictionary files.</li> <li>Fix ts_debug function to prevent unneeded calls of ts_lexize(). It will be much better to reimplement ts_debug in C (instead of SQL as now), but it's planned for the future.</li> <li>Refactor from Heikki Linnakangas which defines a new struct WordEntryPosVector that holds a uint16 length and a variable size array of WordEntries. This replaces the previous convention of a variable size uint16 array, with the first element implying the length. WordEntryPosVector has the same layout in memory, but is more readable in source code. The POSDATAPTR and POSDATALEN macros are still used, though it would now be more readable to access the fields in WordEntryPosVector directly. The patch also removes the needfree field from DocRepresentation because it was always set to false. It also does various other refactoring.</li> <li>Heikki Linnakangas's patch which adds the tsearch subdirectory to Makefile to allow compile custom tsearch dictionary as an external module.</li> <li>Fix recently introduced bugs about parsing ispell/hunspell files. In most cases it cause because of unneeded lowercasing of flags. Per experiment with regression checks with ispell dictionary.</li> <li>In tsearch, change void* opaque argument to Datum type, add argument's name to PushFunction type definition. Per suggestion by Tom Lane</li> <li>Fix from Heikki Linnakangas for a bug I introduced when I refactored spell.c to use the readline function for reading and recoding the input file. I hadn't noticed that some calls to STRNCMP used the non-lowercased version of the input line.</li> </ul> <p>Tom Lane a commit&eacute;&nbsp;:</p> <ul> <li>Fix markup that doesn't work in back branches.</li> <li>Minor editorialization on release notes.</li> <li>Fix missed version-stamping.</li> <li>Remove ill-considered (not to mention undocumented) attempt to make contrib/intarray's GIN opclass override the built-in default. Per bug #3048 and other complaints.</li> <li>Redefine the lp_flags field of item pointers as having four states, rather than two independent bits (one of which was never used in heap pages anyway, or at least hadn't been in a very long time). This gives us flexibility to add the HOT notions of redirected and dead item pointers without requiring anything so klugy as magic values of lp_off and lp_len. The state values are chosen so that for the states currently in use (pre-HOT) there is no change in the physical representation.</li> <li>Revert ill-starred change to ICC anti-aliasing switches. Per Jeremy Drake.</li> <li>Give ICC its preferred, documented form of the no-strict-aliasing switch, viz '-fno-alias'. Since we have a separate code path here anyway, it's just as easy to cooperate.</li> <li>Sync timezone data with 2007g zic release.</li> <li>Make sure that open hash table scans are cleaned up when bgwriter tries to recover from elog(ERROR). Problem was created by introduction of hash seq search tracking awhile back, and affects all branches that have bgwriter; in HEAD the disease has snuck into autovacuum and walwriter too. (Not sure that the latter two use hash_seq_search at the moment, but surely they might someday.) Per report from Sergey Koposov.</li> <li>Include hash table name in all the internal-error elog messages in dynahash.c. Sergey Koposov's current open problem shows the possible usefulness of this, and it doesn't add much code.</li> <li>Rename recently-added pg_stat_activity column from txn_start to xact_start, for consistency with other column names such as in pg_stat_database.</li> <li>Arrange for SET LOCAL's effects to persist until the end of the current top transaction, unless rolled back or overridden by a SET clause for the same variable attached to a surrounding function call. Per discussion, these seem the best semantics. Note that this is an INCOMPATIBLE CHANGE: in 8.0 through 8.2, SET LOCAL's effects disappeared at subtransaction commit (leading to behavior that made little sense at the SQL level). I took advantage of the opportunity to rewrite and simplify the GUC variable save/restore logic a little bit. The old idea of a "tentative" value is gone; it was a hangover from before we had a stack. Also, we no longer need a stack entry for every nesting level, but only for those in which a variable's value actually changed.</li> <li>Revert temporary patch that made synchronous_commit default to OFF.</li> </ul> <p><strong>Correctifs rejet&eacute;s (&agrave; ce jour)</strong></p> <ul> <li>Sibte Abbas's patch to implement \# and \e# in psql. Saved for 8.4.</li> </ul> <p><strong>Correctifs en attente</strong></p> <ul> <li>Heikki Linnakangas sent in a patch which allows people to compile a custom tsearch dictionary as an external module.</li> <li>Simon Riggs sent in a patch which enables CaseSensitive synonyms.</li> <li>Heikki Linnakangas sent in another refactor of tsearch. The patch includes a new struct WordEntryPosVector that holds a uint16 length and a variable size array of WordEntries. This replaces the previous convention of a variable size uint16 array, with the first element implying the length. WordEntryPosVector has the same layout in memory, but is more readable in source code. The POSDATAPTR and POSDATALEN macros are still used, though it would now be more readable to access the fields in WordEntryPosVector directly. Removed needfree field from DocRepresentation. It was always set to false. Miscellaneous other commenting and refactoring</li> <li>Simon Riggs sent in a patch which makes CountActiveBackends() search the whole of the proc array, even though it could stop when it gets to commit_siblings.</li> <li>Steve Marshall sent in a patch intended to prevent PL/TCL from making Postgres multi-threaded when the TCL library is multi-threaded.</li> <li>Florian Pflug sent in a patch that renames latestCompletedXid to latestCommittedXid, and updates it only on commits.</li> <li>Florian Pflug sent in a patch which checks the value of latestCompletedXid to rule out surely in-progress transctions at the top of TransactionIdIsInProgress.</li> </ul>