-
PostgreSQL Weekly News - 2 février 2004
== Nouvelles hebdomadaires de PostgreSQL - 2 février 2004 ==
Cette semaine a vu un peu de tout, les nouvelles fonctionnalités et l'éradication de bogues se prenant la part du lion. Néanmoins, je pense que la nouvelle la plus excitante de la semaine a été l'implémentation d'un nouveau moteur de recherche sur le site web PostgreSQL. Ce nouveau moteur est basé sur un port, actuellement non disponible, d'ASPSeek, fonctionnant avec PostgreSQL et remplaçant l'ancien, ayant subi de nombreuses plaintes, basé sur le moteur mnogo. pause pour se réjouir Celui-ci, couplé avec le nouveau tsearch2 basé sur le moteur de PostgreSQL est disponible sur http://www.pgsql.ru, devrait faciliter grandement la recherche d'informations liées à PostgreSQL.
Sur le front des bogues, nous avons vu plusieurs erreurs corrigées. Ces corrections ont aussi été porté sur le code de la 7.4 cette semaine. Un bogue concernant un ordre des opérations incorrect et empêchant un démarrage en douceur de la base de données sur certains cas rares de manque d'espace disque a été corrigé. Cette correction était basée sur un rapport de Christopher Kings-Lynne sur la liste -hackers. Un autre problème impliquant une évaluation incorrecte de fonctions renvoyant des types composés a aussi été corrigé ainsi que la correction d'expressions complexes de groupement.
Le travail sur la 7.5 a continué à un bon rythme. Les clauses USING et WITH ont été rendues optionnelles pour \copy, ce qui coincide joliment avec ce que prétend la documentation à ce sujet. La fonction length() ne tient plus compte des espaces pour les champs de type char(n), après discussion sur la liste -hackers. Une lecture d'une partie mémoire non initialisée dans la fonction interne next_token() de hba.c a été découvert en utilisant valgrind et est maintenant corrigée. Sur une suggestion de Michael Brusser, nous utilisons enfin Tcl_PutEnv() au lieu de putenv() dans libpgtcl, car ce dernier corrompt apparemment le runtime Tcl. Des ajouts supplémentaires au niveau de la documentation expliquent comment libpq gère la mémoire pour les pointeurs de caractères renvoyés par les fonctions de libpq.
Nous avons vu quelques améliorations pour ecpg cette semaine, incluant l'affichage d'un message d'attention (niveau warning) si un curseur est déclaré mais non ouvert, la correction du prototype d'ECPGprepared_statement pour ne pas grogner avec les "const char" et la correction de l'analyse des structure imbriquées lors de l'ajout d'une option pour analyser les fichiers d'en-têtes.
Sur le front win32, une réorganisation importante du moteur, principalement sur fork, exec, process et sur les gestion des signaux a été effectué. Une modification spécifique concernait l'utilisation de SleepEx() pour PG_USLEEP pour ajouter une interruption de signal. D'autres modifications concernant win32 incluaient configure et Makefile, le cas de la mémoire partagée attachée à EXEC_BACKEND et l'ajout d'une fonction win32 rand qui avait été oublié. Il est intéressant de noter que cette semaine nous a apporté une version win32 compilable et quasiment utilisable. C'est certainement trop récent pour que l'utilisateur moyen puisse même le tester mais, si vous êtes intéressé par le côté bas niveau, cela devrait être bien plus facile maintenant de vous impliquer.
Une dernière note, Simon Riggs a posté un superbe résumé de développement effectué jusqu'à maintenant sur la branche 7.5 de PostgreSQL. Vous pouvez le lire dans les archives sur http://archives.postgresql.org/pgsql-hackers/2004-01/msg00723.php. (Juste un point, cela m'a pris 0.084 secondes pour le trouver avec le nouveau moteur de recherche :-) Simon a précisé son intention de mettre à jour constamment ce résumé et l'équipe web recherche un endroit permanent pour le conserver. Une fois trouvé, je vous fournirais cette information.
-
PostgreSQL Weekly News - 1er mars 2004
== Nouvelles hebdomadaires de PostgreSQL - 1er mars 2004 ==
Le travail sur la version 7.3.6 est pratiquement terminé, donc gardez un oeil sur la liste de diffusion -announce ou sur le site web PostgreSQL pour une annonce complète cette semaine. Après ça, la 7.4.2 sera préparée, donc nous ne devrions pas la voir avant la semaine prochaine.
Entre temps, le travail sur la 7.5 continue à un bon rythme. Le lancement de postmaster a été modifié pour déterminer directement le nombre maximum de fichiers ouvrables et le nombre de fichiers déjà ouverts, ce qui élimine les problèmes rencontrés par des informations peu fiables dans sysconf(_SC_OPEN_MAX). Les appels opendir/closedir dirigés vers le moteur ont été remplacés par les routines AllocateDir et FreeDir car elles n'échouent pas sur les conditions EMFILE/ENFILE si possible et empêchent les pertes de descripteurs de répertoires si un elog() arrive alors qu'un répertoire est ouvert. Un bogue causant un arrêt brutal lorsque les arguments du type d'une ligne pour des fonctions plpgsql étaient NULL a été corrigé. La fonction remove_redundent_join_clauses() de l'optimiseur a été ajusté pour s'assurer qu'il supprime la clause la plus dépensière, ce qui fait une plus grosse différence car nous sommes capable de gérer des sous-requêtes (select) avec des clauses. Un bogue concernant les alignements de données du type anyarray a été corrigé dans pg_statistic. Ceci a nécessité un changement dans les tables système, donc bien qu'il a été appliqué à la version 7.4.x, il sera seulement disponible pour les nouvelles installations. Il existe un moyen de contourner ceci, vous pouvez trouver ça dans les archives de la liste de diffusion si vous avez besoin d'utiliser anyarray avec des valeurs nécessitant un alignement double.
Maintenant, l'outil pg_dump initialisera le codage client au début du fichier de sauvegarde suivant le codage de la base de données sauvegardée. Ceci devrait aider lors de l'importation de bases de données qui pourraient ne pas avoir le même codage par défaut. Quelques améliorations ont été apportées pour accroître la solidité de dblink lorsque celui-ci doit gérer des types de données personnalisés. Ceci sera particulièrement profitable aux modules comme tsearch2. La fonctionnalité "dollar quoting" souvent discutée a eu sa première implémentation ajoutée à l'analyseur côté moteur, psql et plpgsql. Il existe encore du travail à faire pour terminer cette fonctionnalité mais ce début montre que les choses sérieuses ont commencé.
-
PostgreSQL Weekly News - 19 janvier 2004
== Nouvelles hebdomadaires de PostgreSQL - 19 janvier 2004 ==
Cette semaine s'est passée sans qu'il y ait eu de grandes nouvelles, ce qui va nous faire des nouvelles hebdomadaires courtes mais sympathiques. J'ai remarqué que beaucoup de changements concernaient des soucis de performance, mais je pense qu'il s'agissait plus d'accidents que de problèmes de conception.
Les besoins en mémoires partagées pour la stratégie de remplacement du tampon ARC ont été ajustés. Une mauvaise estimation des coûts CPU des parcours d'index lors de l'évaluation d'expressions non constantes comparé à la variable d'indexage a été corrigé. Construite sur une précédente optimisation avec des sous-requêtes IN renvoyant des résultats DISTINCT, l'optimiseur reconnaitra maintenant aussi l'utilisation de UNION/INTERSECT/EXCEPT (sans ALL). Les fonctions C chargées dynamiquement accélèreront les recherches en cache. Les tests initiaux indiquent que ceci devrait être mis sur des fonctions externes avec les fonctions intégrées.
Au niveau de la documentation, nous avons maintenant expérimenté la configuration de la génération de la documentation via XSLT sur le CVS. L'idée est de tester cette configuration pour s'assurer que les résultats et performance sont intéressants puis de n'utiliser que cette méthode pour construire les documentations.
Une dernière note, PyGreSQL 3.4 est sorti cette semaine. PyGreSQL est le module d'interface Python pour PostgreSQL. Vous pouvez lire l'annonce complète sur http://archives.postgresql.org/pgsql-announce/2004-01/msg00012.php.
-
PostgreSQL Weekly News - 16 février 2004
== Nouvelles hebdomadaires de PostgreSQL - 16 février 2004 ==
Une autre semaine est passée avec plein d'actions concernant le développement de PostgreSQL. Ce travail inclut un bon nombre de nettoyages des récentes modifications, un peu sur les nouvelles fonctionnalités et un minimum de corrections de bogues ; mais assez de généralisation, allons-y.
Tom Lane a terminé la restructuration du gestionnaire de stockage, en épurant l'API et en améliorant l'efficacité. L'implémentation du code de délai a été centralisé avec la sous-routine pg_usleep() et le correctif du délai basé sur le coût du vacuum a été étendu pour s'appliquer aux VACUUM FULL, VACUUM ANALYZE et aux vacuum associés aux index, à l'exception des btree. Plusieurs opérateurs de comparaison intertypes (date et timestamp et timestamptz) devraient permettre l'utilisation d'index d'expression comme colonne_date >= date 'today' - interval '1 month'. Nous récupérons aussi des statistiques sur les indexs d'expression via ANALYZE bien que du travail reste à faire pour faire en sorte que le plannificateur les utilise. Enfin, un bogue empêchant le verrouillage des threads et l'utilisation des fonctions *_r a été corrigé dans ecpg et devrait faire partie de la prochaine sortie d'une version 7.4.
Nous avons aussi assisté à quelques mouvements sur PITR cette semaine. Un enregistrement d'entête a été ajouté dans chaque fichier WAL pour permettre une identification fiable. Nous évitons maintenant de séparer les enregistrements WAL entre plusieurs fichiers segment et nous faisons maintenant des entrées WAL pour chaque création, suppression, troncage de fichier. Ce travail devrait fournir les bases de la construction d'une réelle implémentation de PITR, dont la discussion continue sur la liste de diffusion pgsql-hackers-pitr.
Dernier point sur notre liste cette semaine est la sortie d'une version PDF du manuel PostgreSQL. Merci à Kris Jurka qui a pris le temps de réussir cette compilation, vous pouvez en obtenir une copie sur http://www.postgresql.org/docs/.
-
PostgreSQL Weekly News - 12 janvier 2004
== Nouvelles hebdomadaires PostgreSQL - 12 janvier 2004 ==
Les affaires ont recommencé cette semaine alors que les gens revenaient de vacances. De gros progrès ont été effectué sur le portage win32. Cette semaine a vu l'arrivée de l'implémentation d'un tube ainsi que la correction de plusieurs problèmes sur fork/exec. J'ai demandé à Claudio Natoli, un des principaux développeurs du portage win32, ce qu'il pensait des derniers correctifs. Il semblait assez content que la grosse majorité du travail sur fork/exec ait été effectuée. Bien sûr, dans le style des vrais développeurs, il a ajouté ce commentaire : "il existe encore des points à règler qui seront pris en charge dans les prochaines semaines". Mais de fait, une étape importante a été franchie par le portage win32 et ceux qui s'en sont chargés devraient en être fiers.
Les autres nouvelles du développement pour cette semaine concernent un certain nombre d'améliorations sur les optimiseurs IQ. Ces améliorations ont permis d'extraire les conditions de parcours d'index OR des conditions OR-of-AND (un AND entouré de OR) où chaque sous-clause OR inclut une contrainte sur la même relation. Il détecte aussi d'une meilleure manière les cas où les entrées, telle qu'une sous-requête utilisant SELECT DISTINCT, est déjà unique pour prévenir des unifications redondantes. L'intelligence du testeur de prédicat de l'index partiel a aussi été amélioré pour gérer les clauses commutées (4
3), les sous-clauses plus compliquées qu'une simple variable (upper(x) = 't' implique upper(x)>'a') et les opérateurs <> (x<3 implique x<>4). Un ensemble d'améliorations sur psql a été réalisé, ceci incluant psql \dn pour afficher uniquement les schémas temporaires visibles en utilisant current_schemas() et psql '\i ~/
' pour récupérer les fichiers à afficher dans le répertoire personnel de l'utilisateur. Quelques pièces initiales du correctif de Dennis Bjorklund ont été intégrées pour permettre de déclarer les paramètres des fonctions avec des noms. Il reste encore quelques points concernant la documentation, l'interaction avec psql et les langages de procédures autres que plpgsql qui demandent encore du travail mais les bases pour cela sont définies. Un bogue du programme createuser, générant un code SQL incorrect lorsque l'option -E est utilisé sans -P, a été corrigé grâce à Martin Pitt, qui est à l'origine du rapport et du correctif. WITH/WITHOUT OIDS a été ajouté pour la commande CREATE TABLE AS. Cette fonctionnalité doit permettre aux auteurs d'applications de s'affranchir eux-même des modifications de la valeur par défaut de 'default_with_oids' dans les futures versions de PostgreSQL. Dernier point, mais pas le moindre, CREATE TRIGGER, CREATE INDEX et CREATE SEQUENCE ont été ajoutés à la liste des expressions supportées par CREATE SCHEMA. Une dernière note, après bien des discussions sur plusieurs listes de diffusion, une nouvelle version de pljava est disponible sur gborg depuis la semaine dernière. Sur la page du projet (http://gborg.postgresql.org/project/pljava/projdisplay.php), vous trouverez des liens vers des explications techniques ainsi que sur la manière de débuter.

