Par SAS le 04/12/2006 - 10:59
Nouvelles hebdomadaires de PostgreSQL - 3 décembre 2006
PostgreSQL 8.2.0 sort le 5 décembre 2006.
http://www.postgresql.org/docs/8.2/static/release-8-2.html
Les nouveautés des produits dérivés
PostgreSQL Local
Que du global cette semaine.
PostgreSQL dans les média
PostgreSQL Weekly News vous est présenté cette semaine par David Fetter et Dave Page.
Adaptation francophone par Stéphane Schildknecht.
Correctifs appliqués
Peter Eisentraut a commité :
-
la mise en forme des références externes dans les pages de manuel ;
-
la suppression du portage des pages spi_* du manuel. (Ce n'est de toute façon pas fait, mais maintenant, c'est automatique ;
-
des mises à jour de la traduction ;
-
le passage des options pour Windows en entête de deuxième niveau plutôt que de premier niviveau ;
-
des corrections de typos ;
-
une correction orthographique dans pgsql/src/backend/utils/misc/guc.c ::
-
la correction de quelques commentaires de traducteurs pour que xgettext les trouve et que pgindent ne les supprime pas. Il doit être possible d'ajuster pgindent en certaines occasions ;
-
un correctif de localisation de May pour ajuster son abbréviation, d'après Dennis Bjorklund ;
-
la correction de des différences d'écriture de certains messages.
Andrew Dunstan a commité :
-
une méthode pour empêcher le gettext de Windows de corrompre vfprintf, comme pour les autres membres de la famille *printf.
Tom Lane a commité :
-
la réécriture de ExecGetJunkAttribute pour éviter de rechercher les attributs inutiles par leur nom pour toute ligne traitée. Les tests ont montré que cela coûtait un ou deux pourcents pour des UPDATE simples. Ce n'est pas grand-chose, mais autant les gagner quand ce n'est pas trop compliqué à obtenir...
-
la corrrection de LIMIT/OFFSET pour les valeurs limites NULL. Cela fonctionnait avant la version 8.2, mais a été cassé par le passage des valeurs limites de int4 à int8. (En particulier, il est possible d'exécuter DatumGetInt32 sans problème sur une valeur nulle, mais pas DatumGetInt64.) D'après le bug #2803 de Greg Johnson ;
-
le renommage de HEAD en 8.3devel ;
-
l'ajout de la date de version dans les notes de version ;
-
le correctif de Simon Riggs qui ajoute de la documentation au support de DTrace ;
-
des améliorations éditoriales à la documentation de GIN ;
-
la mise à jour des plateformes supportées : buildfarm est de nouveau actif et et les rapports du pinguoin permettent de confirmer l'hypothèse que le supprot d'ARM est rétabli dans la 8.2 ;
-
la documentation d'un risque récemmment compris de relâchement de verrous de niveau ligne par un rollback, alors même qu'ils n'auraient pas dû l'être car lorsqu'une sous-transaction surcharge XMAX, les états précédents des verrous sont perdus. Il paraît peu probable que cela puisse être corrigé avant la version 8.3 ;
-
la modification du chemin de correction d'erreur de bgwriter pour inclure smgrcloseall(). Sur Windows, cela devrait permettre de réellement supprimer les fichiers en attente de suppression, et de ce fait pallier les erreurs 'permission denied' souvent rapportées. En tout cas, semble peu risqué ;
-
des amélioration éditoriales des documentations de la sauvegarde et de la reprise automatique ;
-
de petites améliorations lexicales dans pgsql/doc/src/sgml/high-availability.sgml ;
-
l'ajustement de la description du verrouillage pour préciser que les verrous détenus par une sous-transaction sont relachés si la transaction avorte --- dans la terminologie utilisateur, cela signifie revenir à un point de sauvegarde ou sortir d'un bloc d'exception plpgsql. D'après une suggestion récente de Simon Riggs ;
-
une meilleure solution au problème tr : l'utilisation de sed. D'après Martjin et Andrew ;
-
la mise à jour des plateformes supportées d'après les résultats récents de buildfarm ;
-
des ajustements mineurs pour permettre aux erreurs de démarrage et arrêt de se comporter plus proprement. StartupXLOG et ShutdownXLOG ne sont plus nécessairement des sections critiques, puisque dans tous les cas où ils sont évoqués, elog(ERROR) est de toute façon traduit en elog(FATAL). (Une modification des bgwriter.c est nécessaire pour le rendre vrai : positionner ExitOnAnyError avant de tenter de sortir. C'est de toute façon un bon correctif, puisque le code existant serait tombé dans une boucle infinie sur elog(ERROR) lors de l'arrêt.) Cela évite un rapport erroné de PANIC pendant les pannes (semi-orderly failures). Le postmaster est modifié pour inclure le processus de démarrage dans l'ensemble des processus qui reçoivent un SIGTERM lorsqu'un arrêt "fast" est demandé, et corrigé pour ne pas cherché à redémarrer le bgwriter s'il tombre alors qu'il essaye d'écrire le point de vérification d'arrêt. Le résultat de tout cela est que "pg_ctl stop -m fast" agit raisonnablement pour un système de secours en "reprise immédiate", tout comme l'arrêt d'un système UNIX (ie, SIGTERM universel). D'après Stephen Harris et quelques tests que Tom effectua ;
-
l'ignorance de libedit/libreadline lors du test de strlcpy et de quelques autres fonctions standard. D'après un rapport de Stefan Kaltenbrunner ;
-
d'autres supports de construction MSVC fournies par Magnus Hagander ;
-
l'ajout, dans la documentation de pg_dump, d'un exemple de prise en compte des noms de casse mixée dans les connecteurs pg_dump ;
-
la mise à jour des données de fuseaux horaires pour la distribution zic tzdata2006p. Il semble que l'Australie de l'ouest ait instauré le changement d'heure après un mois d'avertissement...
-
le marquage de to_number() et des variants de type numérique de to_char() comme stable, et non immuable, puisque leurs résultats dépendent de lc_numeric. Nous ne pouvons pas forcer initdb à le faire pour les versions antérieures, mais nous pouvons, au moins, corriger les entrées du catalogue pour les installations futures ;
-
le marquage de to_char(timestamp without timezone) comme stable, et non immuable, puisque sont résultat dépend maintenant des paramètres lc_messages, comme noté par Bruce. Le marquege, également, de to_date() et to_char(interval) comme stable ; bien qu'ils ne semblent pas dépendre d'une quelconque variable de configuration utilisateur, comme le montre le CVS HEAD, c'est probablement une propriété qui ne survivra pas dans le futur. Il semble préférable de marquer toutes les fonctions de formattage stable et de s'en tenir à ça. catversion n'est pas modifiée car il n'apparaît pas critique de forcer un initdb post-RC1, et de toute façon, on ne peut pas l'inclure dans les branches précédentes ;
-
un rétro-correctif de HEAD pour reconnaître __ppc64__ équivalent à __powerpc64__. D'après la confirmation de Brian Wipf que cela est correct et nécessaire pour les Darwin 64-bit ;
-
la correction de la description de l'héritage pour préciser que les contraintes de non-nullité sont héritées, d'après Taiki Yamaguchi ;
-
l'ajout de $(CFLAGS) aux règles simplifiées de contruction des bibliothèques .so sur Darwin. Il faudra sûrement le faire sur *toutes* les plateformes, mais pour le moment, je serais conservateur et ne le ferais que lorsque cela est incontestatblement nécessaire. D'après un rapport de Brian Wipf.to the simplified build rule for .so libraries on Darwin. ;
Michael Meskes a commité :
-
l'installation de ecpg_config.h.
Alvaro Herrera a commité :
-
la correction d'un problèmes dans pgsql/src/interfaces/ecpg/include/Makefile qui empêchait l'installation sur des constructions VPATH.
Teodor Sigaev a commité :
-
le correctif du bogue de suppression de page. Si une page interne est supprimée et qu'elle tente de supprimer la page du niveau suivant liée par la prochaine page interne, ginScanToDelete() positionne mal la page parente. Le bogue survient lorsque plusieurs pointeurs d'items (plusieurs centaines de milliers) ont été supprimés de l'index. Ce bogue a été découvert par Hubert Depesz Lubaczewski. Peut-être sera-t-il nécessaire de prévoir une RC2 avant la version finale...
Bruce Momjian a commité :
-
la mise à jour de la version la plus récente de 8.2 à 8.2.0 ;
-
l'estampillage de 8.2, sauf configure.in ;
-
la mise à jour pour la version 8.2.
Correctifs rejetés (à ce jour)
-
l'amélioration de la portabilité de l'invocation de 'tr' dans PGAC_ARG_CHECK. Rapporté par Olivier Prenant, corrigé par Peter Eisentraut.