PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

PGWN - 12 novembre 2006

PostgreSQL Weekly News | PGWN - 12 novembre 2006

Par SAS le 14/11/2006 - 15:33

Nouvelles hebdomadaires de PostgreSQL - 12 Novembre 2006

PostgreSQL 8.2 beta3 réalisé. Merci de la tester.

Simon Riggs a initié un fil de discussion sur -hackers sur la fçon de résoudre les problèmes de "hot tables". Il a également proposé une nouvelle conception. La discussion continue.

Lorenzo Alberton a réalisé un mémento pour PostgreSQL.
http://www.alberton.info/postgresql_cheat_sheet.html

Les nouveautés des produits dérivés

Les jobs PostgreSQL de novembre

http://archives.postgresql.org/pgsql-jobs/2006-11/threads.php

PostgreSQL Local

Que du mondial cette semaine.

PostgreSQL dans les média


PostgreSQL Weekly News vous est présenté cette semaine par David Fetter et Dave Page.
Adaptation francophone de Stéphane Schildknecht.

Correctifs appliqués

Tom Lane a comittĂ© :

  • la suppression de quelques avertissement de 'variable non initialisĂ©e' Ă©mis par gcc en -O3 et supĂ©rieurs uniquement (probablement parce qu'il incorpore plus de choses). D'après une remarque de Mark Mielke ;
  • la correction de pg_get_serial_sequence(), qui peut retourner, Ă  tort, le nom d'un index sur une colonne de type serial au lieu du nom de la sĂ©quence associĂ©e. Provient de changements rĂ©cents dans l'installation des dĂ©pendances pour le type serial. D'après le bogue #2732 relevĂ© par Basil Evseenko ;
  • le nettoyage de certaines rĂ©fĂ©rences qui dĂ©crivent, Ă  tort, %p comme un chemin absolu, d'après Simon Riggs ;
  • l'amĂ©lioration du formattage de la description des arguments de PQexecParams, d'après Theo Kramer ;
  • la mise en exergue, dans create_function.sgml, du fait que les fonctions immutable et stable ne peuvent modifier la base. xfunc.sgml est assez Ă  jour de ce point de vue, mais cela ne fera pas de mal de le clarifier Ă©galement ;
  • la correction des erreurs de la colonne key_column_usage.position_in_unique_constraint rĂ©cemment ajoutĂ©e dans information_schema (d'après un ajout du SQL2003). Le code original Ă©chouait si une colonne rĂ©fĂ©rencĂ©e participait Ă  plus d'une entrĂ©e dans pg_constraint. Cela ne fonctionnait pas non plus si un FK reposait directement sur un index unique sans syntaxe de contrainte. Ce cas rĂ©side en dehors des spĂ©cifications du SQL, mais PG l'a toujours supportĂ©. Il est donc raisonnable qu'information_schema le gère. D'après le bogue #2750 relevĂ© par Stephen Haberman ;
  • un correctif de set_joinrel_size_estimates() qui permet d'estimer la taille des jointures externes avec plus de prĂ©cision : il faut distinguer les effets des clauses ON propres Ă  la jointure des effets des clauses ajoutĂ©es. Cela a fait l'objet d'un hack rapide il y a longtemps. Mais il est temps de mieux faire. D'après un exemple de Thomas Hallgren ;
  • la modification des substituts rename et unlink pour Windows pour imposer un timeout de 30 secondes en lieu et place de tentatives infinies. Modification Ă©galement de xlog.c so de façon Ă  dĂ©lier un vieux segment xlog qu'elle ne parviendrait pas Ă  renommer vers un slot futur. D'après la discussion du bogue #2712, dans laquelle il apparaissait que Windows peut dĂ©lier un fichier restĂ© ouvert, mais pas le renommer ;
  • la modification de aset.c pour rĂ©cupĂ©rer explicitement la taille du la prochaine allocation de bloque. Le code prĂ©cĂ©dent reposait sur la taille rĂ©ellement allouĂ©ee au bloc prĂ©cĂ©dant, ce qui donnait de drĂ´les de rĂ©sultats si la première allocation est plus grande que ALLOC_CHUNK_LIMIT : les allocations suivantes reposaient sur cette taille et non sur la sĂ©rie attendue de tailles de blocs. RelevĂ© lors de l'Ă©tude des pertes mĂ©moires par Tatsuo Ishii ;
  • la modification de accumArrayResult() pour doubler la taille des tableaux de travail lorsque plus d'espace est requis, plutĂ´t que de l'augmenter d'une taille fixe. L'ancienne mĂ©thode perdait beaucoup de place et de temps lorsque la taille totale Ă©tait importance. D'après Tatsuo Ishii ;
  • la correction des problèmes de performance de replace_text(), replace_text_regexp(), et text_to_array() : ils avaient tous un comportement en O(N^2) sur les longues chaĂ®nes de caractères en encodage multi-octet, du fait de parcours rĂ©pĂ©tĂ©s du texte entrĂ© pour identifier les sous-chaĂ®nes dont les positions et longueurs Ă©taient calculĂ©es en caractères et non en octets. Correction par la recherche dans le code source des positions par pointeur de caractère et et par comptage de caractères. Suppression d'opĂ©ration spalloc inutiles. text_to_array() Ă©tait la cause de fuite mĂ©moire par omission de pfree sur les chaĂ®nes temporaires. D'après Tatsuo Ishii ;
  • la correction du bogue #2694 qui concerne une construction ARRAY[] dont les entrĂ©es sont composĂ©es de sous-tableaux vides. Après discussion, si toutes les entrĂ©es sont composĂ©es de tableaux vides, le rĂ©sultat doit ĂŞtre un tableau vide, tandis qu'un mĂ©lange de tableaux vides et pleins doit (ce qui est le cas) retourner une erreur. Dans la branche arrière, la construction est stricte : toute entrĂ©e NULL conduit immĂ©diatement Ă  une sortie NULL. Du coup, j'ai laissĂ© ce comportement. HEAD ignorait tout simplement les sous-tableaux NULL, ce qui ne se voyait pas vraiment. Devant l'absence de meilleure idĂ©e, il traite maintenant les sous-tableaux NULL comme les vides ;
  • la suppression du code de dĂ©bogage spĂ©cifique Ă  Windows ; il semble que le problème avec fopen() qui n'utilise pas FILE_SHARE_DELETE Ă©tait en fait le bogue que nous cherchions&nbp;;
  • la mise Ă  jour des notes de version en prĂ©paration pour la RC1 ;
  • la retour Ă  la mĂ©thode pre-8.2 method de test de libm, Ă  savoir toujours l'inclure si le lien est correct. Il semble trop risquĂ© d'assumer que les fonctions standard telles que pow() ne sont pas reconnues comme particulière par le compilateur. D'après le rapport de Andreas Lange dont la construction a Ă©chouĂ© avec le comilateur Solaris cc avec l'option -fast. MĂŞme si nous ne la considĂ©rons pas comme une option supportĂ©e, je crains que de tels problèmes ne surviennent avec d'autres comilateurs ;
  • la suppression de certaines dĂ©pendances inutiles de DataDir : quand cela est possible, le backend doit plutĂ´t se servir du paramĂ©trage de rĂ©pertoire de travail. Quelques travaux sur le style des messages dans contrib/adminpack ;
  • un correctif arrière de la rĂ©cupĂ©ration des PITR dans 8.1. Cela devrait ĂŞtre corrigĂ© Ă©galement dans la version 8.0, mais cela demande un travail de codage trop consĂ©quent, parce que la 8.0 n'a pas de parcours aisĂ© de pg_database sur lequel se baser. Une solution manuelle au problème est possible dans 8.0 (suppression des fichiers pg_internal.init avant de rejouer les WAL), ce qui peut reprĂ©senter une rĂ©ponse suffisante ;
  • la correction du problème rĂ©cemment dĂ©couvert de rĂ©cupĂ©ration des PITR : la sauvegarde peut contenir des fichiers d'initialisation (pg_internal.init) relcache bloquĂ©s, et il n'y a pas de mĂ©canismes pour les actualiser pendant que les WAL sont rejouĂ©s. La solution la plus simple est de supprimer les fichiers d'initialisation après le dĂ©marrage, et de laisser le premier backend dĂ©marrĂ© de chaque base reconstruire le fichier d'initialisation. Simon Riggs et Tom Lane ;
  • la correction des problèmes rĂ©cemment compris de gestion des XID gelĂ©s, en particulier dans les scĂ©narios PITR. Dans les journaux WAL est maintenant tracĂ© le remplacement des vieux XIDs par FrozenTransactionId, de sorte que ce remplacement est assurĂ©ment propagĂ© aux bases esclaces PITR. De plus, plutĂ´t que de penser que les mises Ă  jour sont prĂ©servĂ©es, pg_clog n'est pas tronquĂ© tant que toutes les instances d'un XID doivent ĂŞtre remplacĂ©es par FrozenTransactionId. Ajout de nouvelles variables GUC et de colonnes pg_autovacuum pour permettre la gestion de la politique de gel, de telle sorte que les utilisateurs puissent modifier la taille de pg_clog en fonction de la taille du travail de gel effectuĂ©. RĂ©vision du code existant qui impose l'autovacuum des tables qui s'approchent du point de bouclage pour le sĂ©curiser ; rĂ©vision de la logique d'autovacuum pour que le vacuum anti-bouclage intervienne par table et non par base. initdb est forcĂ© du fait de modifications dans les catalogues pg_class, pg_database et pg_autovacuum. Heikki Linnakangas, Simon Riggs et Tom Lane.

Neil Conway a commitĂ© :

  • la correction dans le code GIN de plusieurs typos dans les commentaires ;
  • la relecture active du chapitre sur les systèmes de catalogues. Capitalisation du contenu de la colonne "Description", mais suppression du 'point' terminal, d'après la convention en vigueur dans le reste de la documentation. Suppression de la colonne "References" des catalogues qui ne sont pas rĂ©fĂ©rencĂ©s. Correctifs grammaticaux et de SGML ;
  • de petites amĂ©liorations dans la description d'archive_timeout ;
  • de petits nettoyages du code de pgcrypto : puisque les UDF sont dĂ©clarĂ©s strict, la vĂ©rification de la nullitĂ© des arguments de la fonction reprĂ©sente du code perdu ;
  • la correction de deux typos dans le README de tsearch2 ;
  • la correction d'une fuite mĂ©moire dans psql : nous perdons quelques gestionnaires PGresult si une erreur de connexion survient lors de l'exĂ©cution d'une des requĂŞtes de "\d table". Pas grave, mais intĂ©ressant Ă  corriger. Correctif de Brendan Jurd ;
  • la suppression d'un vieux commentaire (15 ans) concernant le fonctionnement maintenant bien connu : rĂ©fĂ©rencer un paramètre indĂ©fini doit rĂ©sulter en une erreur, pas NULL ;
  • de petits correctifs Ă  l'authentification LDAP : si une erreur survient, il faut relâcher le gestionnaire LDAP manuellement Ă  l'aide de ldap_unbind(). Ce n'est pas un rĂ©el problème dans la pratique, parce qu'une erreur aboutit gĂ©nĂ©ralement Ă  la quitter le processus, mais cela peut ĂŞtre corrigĂ© sans trop d'efforts. Au passage, correction d'une erreur dans l'utilisation de snprintf() : le paramètre "size" de snprintf() est la taille du buffer de destination, incluant l'espace du terminateur NUL. De plus, en fonction de la valeur de NAMEDATALEN, l'ancien code pouvait permettre un dĂ©passement de tampon (buffer overflow).

Michael Meskes a commitĂ© :

  • l'application, dans ecpg, d'un correctif de Peter Harris qui libère la structure auto_mem structure Ă  la connexion.

Peter Sigaev a commitĂ© :

  • un nouveau README pour tsearch2.

Correctifs rejetés (à ce jour)

Pas de déception cette semaine :-)

Correctifs en attente

  • Andrew Dunstan a soumis un correctif d'un problème potentiel lorsque des modules chargĂ©s par PL/PerlU sont visibles dans le code PL/Perl ;
  • Brendan Jurd a envoyĂ© un correctif qui permet de diffĂ©rencier les dĂ©clencheurs actifs de ceux qui sont dĂ©sactivĂ©s avec le \d de psql ;
  • Heikki Linnakangas a envoyĂ© un correctif pour la 8.3 d'optimisation des accès en lecture des tables en CLUSTER contenant de petites colonnes ;
  • Brendan Jurd a envoyĂ© un correctif modifiant le correctif de Guillaume Lelarge pour utiliser IYYY et IDDD pour le formattage ISO des annĂ©es et semaines ;
  • Magnus Hagander a envoyĂ© un correctif de mise Ă  jour de la FAQ mingw FAQ.

© PostgreSQLFr, tous droits rĂ©servĂ©s.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.