Nouvelles hebdomadaires de PostgreSQL - 26 décembre 2010
Joyeux inter-réveillon de la part des Nouvelles Hebdo. !
Les nouveautés des produits dérivés
Offres d'emplois autour de PostgreSQL en décembre
PostgreSQL Local
PostgreSQL dans les média
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.
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.
(lien vers l'article original)
Correctifs appliqués
Alvaro Herrera a poussé :
Robert Haas a poussé :
- Allow transactions that don't write WAL to commit asynchronously. This case can arise if a transaction has written data, but only to temporary tables. Loss of the commit record in case of a crash won't matter, because the temporary tables will be lost anyway. Reviewed by Heikki Linnakangas and Simon Riggs.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=f6a0863e3cb72763490ceca2c558d5ef2dddd5f2
- Work around unfortunate getppid() behavior on BSD-ish systems. On MacOS X, and apparently also on other BSD-derived systems, attaching a debugger causes getppid() to return the pid of the debugging process rather than the actual parent PID. As a result, debugging the autovacuum launcher, startup process, or WAL sender on such systems causes it to exit, because the previous coding of PostmasterIsAlive() detects postmaster death by testing whether getppid() == PostmasterPid. Work around that behavior by checking the return value of getppid() more carefully. If it's PostmasterPid, the postmaster must be alive; if it's 1, assume the postmaster is dead. If it's any other value, assume we've been debugged and fall through to the less-reliable kill() test. Review by Tom Lane.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=24ecde7742cd4d7c781e6890b07571fff42b25dc
- Fix typos. Andreas Karlsson.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=c5160b7eecf97a357375960b02a30317474334a3
- Use memcmp() rather than strncmp() when shorter string length is known. It appears that this will be faster for all but the shortest strings; at least one some platforms, memcmp() can use word-at-a-time comparisons. Noah Misch, somewhat pared down.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=32ba2b516066688ff56e6d62a7ff4a01c88f5700
- Typo fix. Noted by Thom Brown.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=2a0f13a765befefc2658d3729f3e174b7c252125
- Document pg_dump(all) --no-security-label instead of --security-label. The former is the option actually supported by these commands.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=a1b0035949da09bb0f19d2d9c2d54ca54ca55752
- Correct spelling: longjump() -> longjmp().
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=4ec92b05e640b0991ba67d41cbb097200200fe70
- Add foreign data wrapper error code values for SQL/MED. Extracted from a much larger patch by Shigeru Hanada.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=85cff3ce7f360d139d87aee836d75a6202fee066
- Corrections to patch adding SQL/MED error codes. My previous commit, 85cff3ce7f360d139d87aee836d75a6202fee066 on 2010-12-25, failed to update errcodes.sgml or plerrcodes.h. This patch corrects that oversight, per a gripe from Tom Lane, and also corrects a typographical error.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=63676ebff402050f6b0b347188f5e857474da9e1
Magnus Hagander a poussé :
Bruce Momjian a poussé :
Heikki Linnakangas a poussé :
- Rewrite the GiST insertion logic so that we don't need the post-recovery cleanup stage to finish incomplete inserts or splits anymore. There was two reasons for the cleanup step: 1. When a new tuple was inserted to a leaf page, the downlink in the parent needed to be updated to contain (i.e. to be consistent with) the new key. Updating the parent in turn might require recursively updating the parent of the parent. We now handle that by updating the parent while traversing down the tree, so that when we insert the leaf tuple, all the parents are already consistent with the new key, and the tree is consistent at every step. 2. When a page is split, we need to insert the downlink for the new right page(s), and update the downlink for the original page to not include keys that moved to the right page(s). We now handle that by setting a new flag, F_FOLLOW_RIGHT, on the non-rightmost pages in the split. When that flag is set, scans always follow the rightlink, regardless of the NSN mechanism used to detect concurrent page splits. That way the tree is consistent right after split, even though the downlink is still missing. This is very similar to the way B-tree splits are handled. When the downlink is inserted in the parent, the flag is cleared. To keep the insertion algorithm simple, when an insertion sees an incomplete split, indicated by the F_FOLLOW_RIGHT flag, it finishes the split before doing anything else. These changes allow removing the whole "invalid tuple" mechanism, but I retained the scan code to still follow invalid tuples correctly. While we don't create any such tuples anymore, we want to handle them gracefully in case you pg_upgrade a GiST index that has them. If we encounter any on an insert, though, we just throw an error saying that you need to REINDEX. The issue that got me into doing this is that if you did a checkpoint while an insert or split was in progress, and the checkpoint finishes quickly so that there is no WAL record related to the insert between RedoRecPtr and the checkpoint record, recovery from that checkpoint would not know to finish the incomplete insert. IOW, we have the same issue we solved with the rm_safe_restartpoint mechanism during normal operation too. It's highly unlikely to happen in practice, and this fix is far too large to backpatch, so we're just going to live with in previous versions, but this refactoring fixes it going forward. With this patch, you don't get the annoying 'index "FOO" needs VACUUM or REINDEX to finish crash recovery' notices anymore if you crash at an unfortunate moment.
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=9de3aa65f01fb51cbc725e8508ea233e4e92c46c
Michael Meskes a poussé :
Peter Eisentraut a poussé :
Andrew Dunstan a poussé :
Correctifs rejetés (à ce jour)
- Pas de déception cette semaine :-)
Correctifs en attente
- Magnus Hagander sent in another revision of the patch to allow querying the version of libpq.
- ITAGAKI Takahiro sent in another revision of the patch to export some of the functions COPY uses. This will help, among other things, the SQL/MED file-based operations.
- Dimitri Fontaine sent in two more revisions of the patch to add extensions.
- Andrew Dunstan sent in a patch to allow a vpath build to be used on MingW.
- Noah Misch sent in a patch to change strncmp to memcmp when we know the shorter length. In the tests he ran, this resulted in a 13% speed boost.
- Noah Misch sent in a patch based on the above patch to check lengths texteq, textne, byteaeq and byteane before detoasting, as unequal lengths imply inequality without further elaboration.
- Alvaro Herrera sent in a patch atop Dimitri Fontaine's extension patch.
- Sushant Sinha sent in a patch to fix an off-by-one error in ts_rank_cd.
- Shigeru HANADA sent in another revision of the file_fdw patch for SQL/MED.
- Merlin Moncure sent in a patch which makes the existence of hint bits a compile time option.
- Alex Hunsaker sent in another revision of the patch to fix an issue with PL/PerlU's handling of utf8.
- Fujii Masao sent in two more revisions of a patch to fix a bug in SignalSomeChildren.
- Bruce Momjian sent in a patch to add the port number and optionally socket directory location to postmaster.pid, and modify pg_ctl to use that information.
- Jan Urbanski sent in a flock of patches to refactor PL/PythonU.
- Tomas Vondra sent in another revisions of the patch to allow people to see the timestamp at which stats were reset by database if any table, index or function's statistics have been reset.
- Magnus Hagander sent in a patch to change walsender to require a special privilege for replication.
- KaiGai Kohei sent in SE-PostgreSQL as a contrib module.
- Shigeru HANADA sent in another revision of the patch to make file_fdw work.
- Robert Haas sent in another revision of the patch to add unlogged tables.
- Kevin Grittner sent in a patch to address issues with long-running transactions in SERIALIZABLE isolation mode.
- ITAGAKI Takahiro sent in another revision of the patch to add SQL standard MULTISETs.