E.87. Sortie 7.2

Date de sortie�: 2002-02-04

E.87.1. Aper�u

Cette version am�liore PostgreSQL pour une utilisation avec des applications g�rant de gros volumes.

Modifications majeures dans cette version :

VACUUM

L'op�ration VACUUM ne verrouille plus les tables, permettant du coup un acc�s � l'utilisateur normal pendant le vacuum. Une nouvelle commande VACUUM FULL fait le vacuum ancien style en verrouillant la table et en diminuant la copie disque de la table.

Transactions

Il n'y a plus de probl�mes avec les installations d�passant quatre milliards de transactions.

OID

Les OID sont maintenant optionnelles. Les utilisateurs peuvent maintenant cr�er des tables sans OID dans le cas o� l'utilisation d'OID est excessif.

Optimiseur

Le syst�me calcule maintenant des statistiques de colonnes lors d'ANALYZE, permettant de meilleurs choix pour l'optimiseur.

S�curit�

Une nouvelle option de cryptage MD5 permet un stockage plus s�curis� et le transfert des mots de passe. Une nouvelle option d'authentification par socket de domaine Unix est disponible sur les syst�mes Linux et BSD.

Statistiques

Les administrateurs peuvent utiliser le nouveau module de statistiques d'acc�s aux tables pour obtenir des informations d�taill�es sur l'utilisation des tables et index.

Internationalisation

Les messages des programmes et des biblioth�ques peuvent maintenant �tre affich�s dans plusieurs langues.

E.87.2. Migration vers la version 7.2

Une sauvegarde/restauration avec pg_dump est requis pour ceux qui souhaitent migrer leur donn�es d'une version pr�c�dente.

Observez les incompatibilit�s suivantes :

La syntaxe SELECT ... LIMIT #,# sera supprim�e dans la prochaine version. Vous devez modifier vos requ�tes pour utiliser des clauses LIMIT et OFFSET s�par�es, c'est-�-dire LIMIT 10 OFFSET 20.

E.87.3. Modifications

E.87.3.1. Server Operation

  • Cr�ation de fichiers temporaires dans un r�pertoire s�par� (Bruce)

  • Suppression des fichiers temporaires orphelins au lancement de postmaster (Bruce)

  • Ajout d'index uniques � quelques tables syst�me (Tom)

  • R�organisation des op�rateurs de tables syst�me (Oleg Bartunov, Teodor Sigaev, Tom)

  • Renommage de pg_log en pg_clog (Tom)

  • Activation de SIGTERM, SIGQUIT pour tuer les serveurs (Jan)

  • Suppression de la limite du nombre de serveurs au moment de la compilation (Tom)

  • Meilleure nettoyage pour les �checs de ressources s�maphores (Tatsuo, Tom)

  • Permet un meilleur retour au d�but des ID de transaction (Tom)

  • Suppression des OID pour certaines tables syst�me (Tom)

  • Suppression de la v�rification d'erreur "violation de la modification des donn�es ayant lanc� le d�clencheur" (Tom)

  • Cr�ation du portail SPI des plans pr�par�s/sauvegard�s (Jan)

  • Les fonctions de colonnes SPI fonctionnent avec les colonnes syst�mes (Tom)

  • Am�lioration de la compression des grandes valeurs (Tom)

  • Collecteur de statistiques pour les acc�s aux tables et index (Jan)

  • Tronque les noms de s�quences tr�s longs en une valeur raisonnable (Tom)

  • Mesure les temps de transaction en millisecondes (Thomas)

  • Correction des parcours s�quentiels de TID (Hiroshi)

  • L'ID du superutilisateur est maintenant fix� � 1 (Peter E)

  • Nouvelle option "reload" de pg_ctl (Tom)

E.87.3.2. Performance

  • Am�lioration de l'optimiseur (Tom)

  • Nouvelle statistique dans la colonne histogramme pour l'optimiseur (Tom)

  • R�utilisation des fichiers de trace en pr�-�criture (WAL) plut�t que de les annuler (Tom)

  • Am�lioration du cache (Tom)

  • Am�lioration de l'optimiseur avec IS NULL, IS NOT NULL (Tom)

  • Am�lioration du gestionnaire de verrous pour r�duire le temps de conservation d'un verrou (Tom)

  • Conservation des entr�es relcache pour les fonctions de support d'acc�s par index (Tom)

  • Permet une meilleure s�lectivit� avec NaN et les infinies dans NUMERIC (Tom)

  • Am�lioration des performances de R-tree (Kenneth Been)

  • Division des B-tree plus efficace (Tom)

E.87.3.3. Droits

  • Modification des droits UPDATE, DELETE pour qu'ils soient bien distincts (Peter E)

  • Nouveaux droits REFERENCES, TRIGGER (Peter E)

  • Autorise GRANT/REVOKE vers/� partir de plus d'un utilisateur � la fois (Peter E)

  • Nouvelle fonction has_table_privilege() (Joe Conway)

  • Autorise les utilisateurs standards � lancer un vacuum sur la base de donn�es (Tom)

  • Nouvelle commande SET SESSION AUTHORIZATION (Peter E)

  • Correction d'un bogue dans les modifications de droits sur les tables nouvellement cr��es (Tom)

  • Interdit l'acc�s de pg_statistic aux utilisateurs normaux, ajout de vues accessibles aux utilisateurs (Tom)

E.87.3.4. Authentification de l'utilisateur

  • Lance un autre postmaster avant de r�aliser l'authentification pour emp�cher les blocages (Peter E)

  • Ajout de l'authentification ident sur les sockets de domaine Unix pour Linux, *BSD (Helge Bahmann, Oliver Elphick, Teodor Sigaev, Bruce)

  • Ajout d'une m�thode d'authentification par mot de passe utilisant le cryptage MD5 (Bruce)

  • Autorise le cryptage des mots de passe stock�s utilisant MD5 (Bruce)

  • Authentification PAM (Dominic J. Eidson)

  • Chargement de pg_hba.conf et pg_ident.conf uniquement au lancement et apr�s un SIGHUP (Bruce)

E.87.3.5. Configuration du serveur

  • Interpr�tation de quelques abr�viations de fuseaux horaires en tant qu'australien plut�t qu'am�ricain du nord, configurable � l'ex�cution (Bruce)

  • Nouveau param�tre pour initialiser le niveau d'isolation par d�faut d'une transaction (Peter E)

  • Nouveau param�tre pour activer la conversion de "expr = NULL" en "expr IS NULL", d�sactiv� par d�faut (Peter E)

  • Nouveau param�tre pour contr�ler l'utilisation de la m�moire par VACUUM (Tom)

  • Nouveau param�tre pour initialiser le d�lai autoris� pour terminer l'authentification du client (Tom)

  • Nouveau param�tre pour configurer le nombre maximum de fichiers ouverts (Tom)

E.87.3.6. Requ�tes

  • Les instructions ajout�es par des r�gles INSERT s'ex�cutent maintenant apr�s l'INSERT (Jan)

  • Emp�che les noms de relation mal form�s dans la liste cible (Bruce)

  • Les NULL sont maintenant tri�s apr�s les valeurs normales dans un ORDER BY (Tom)

  • Nouveaux tests bool�ens IS UNKNOWN, IS NOT UNKNOWN (Tom)

  • Nouveau mode de verrou SHARE UPDATE EXCLUSIVE (Tom)

  • Nouvelle commande EXPLAIN ANALYZE affichant les temps d'ex�cution et les nombres de lignes (Martijn van Oosterhout)

  • Correction d'un probl�me avec LIMIT et les sous-requ�tes (Tom)

  • Correction de LIMIT, DISTINCT ON plac�s dans des sous-requ�tes (Tom)

  • Correction d'EXCEPT/INTERSECT imbriqu�s (Tom)

E.87.3.7. Manipulation de sch�mas

  • Correction de SERIAL pour les tables temporaires (Bruce)

  • Autorise les s�quences temporaires (Bruce)

  • Les s�quences utilisent maintenant int8 en interne (Tom)

  • Le nouveau SERIAL8 cr�e des colonnes int8 avec des s�quences, par d�faut il s'agit de s�quences SERIAL4 (Tom)

  • Rend les OID optionnel en utilisant WITHOUT OIDS (Tom)

  • Ajout de la synatxe %TYPE pour CREATE TYPE (Ian Lance Taylor)

  • Ajout de ALTER TABLE / DROP CONSTRAINT pour les contraintes CHECK (Christopher Kings-Lynne)

  • Nouveau CREATE OR REPLACE FUNCTION pour modifier la fonction existante (pr�servant la fonction OID) (Gavin Sherry)

  • Ajout d'ALTER TABLE / ADD [ UNIQUE | PRIMARY ] (Christopher Kings-Lynne)

  • Autorise le renommage de colonne dans les vues

  • Fait que ALTER TABLE / RENAME COLUMN met � jour les noms de colonnes des index (Brent Verner)

  • Correction pour ALTER TABLE / ADD CONSTRAINT ... CHECK avec les tables h�rit�es (Stephan Szabo)

  • ALTER TABLE RENAME met � jour correctement les arguments du d�clencheurs de cl� �trang�re (Brent Verner)

  • DROP AGGREGATE et COMMENT ON AGGREGATE acceptent maintenant un aggtype (Tom)

  • Ajout de la conversion automatique du type de donn�es en retour pour les fonctions SQL (Tom)

  • Permet aux index GiST de g�rer les NULL et les index � plusieurs cl�s (Oleg Bartunov, Teodor Sigaev, Tom)

  • Activation des index partiels (Martijn van Oosterhout)

E.87.3.8. Commandes outils

  • Ajout de RESET ALL, SHOW ALL (Marko Kreen)

  • CREATE/ALTER USER/GROUP accepte les options dans n'importe quel ordre (Vince)

  • Ajout de la fonctionnalit� LOCK A, B, C (Neil Padgett)

  • Nouvelle option ENCRYPTED/UNENCRYPTED pour CREATE/ALTER USER (Bruce)

  • Le nouveau VACUUM l�ger ne verrouille pas la table ; l'ancienne s�mantique est disponible en tant que VACUUM FULL (Tom)

  • D�sactivation de COPY TO/FROM sur les vues (Bruce)

  • La cha�ne COPY DELIMITERS doit avoir exactement un caract�re (Tom)

  • Le message d'avertissement du VACUUM pour le nombre de lignes d'index plus petit que l'en-t�te appara�t maintenant si appropri� (Martijn van Oosterhout)

  • Correction des v�rifications de droits pour CREATE INDEX (Tom)

  • Interdit l'utilisation inappropri�e de CREATE/DROP INDEX/TRIGGER/VIEW (Tom)

E.87.3.9. Types de donn�es et fonctions

  • SUM(), AVG(), COUNT() utilisent maintenant int8 en interne pour des questions de rapidit� (Tom)

  • Ajout de convert(), convert2() (Tatsuo)

  • Nouvelle fonction bit_length() (Peter E)

  • Fait que le "n" dans CHAR(n)/VARCHAR(n) repr�sente le nombre de lettres, pas le nombre d'octets (Tatsuo)

  • CHAR(), VARCHAR() rejetent maintenant les cha�nes trop longues (Peter E)

  • BIT VARYING rejete maintenant les cha�nes de bits trop longues (Peter E)

  • BIT rejete maintenant les cha�nes de bits ne correspondant pas � la taille d�clar�e (Peter E)

  • Fonctions de conversions texte pour INET, CIDR (Alex Pilosov)

  • Op�rateurs << et <<= indexables pour INET, CIDR (Alex Pilosov)

  • Bytea \### requiert maintenant un num�ro valide � trois chiffres octals

  • Am�lioration des comparaisons de Bytea, supporte maintenant =, <>, >, >=, < et <=

  • Bytea supporte maintenant les index B-tree

  • Bytea supporte maintenant LIKE, LIKE...ESCAPE, NOT LIKE, NOT LIKE...ESCAPE

  • Bytea supporte maintenant la concat�nation

  • Nouvelles fonctions bytea : position, substring, trim, btrim et length

  • Nouveau mode de fonction pour encode(), "escaped", convertit les bytea �chapp�s de fa�on minimale vers/� partir du texte

  • Ajout de pg_database_encoding_max_length() (Tatsuo)

  • Ajout de la fonction pg_client_encoding() (Tatsuo)

  • now() renvoie l'heure avec une pr�cision � la milliseconde (Thomas)

  • Nouveau type de donn�es TIMESTAMP WITHOUT TIMEZONE (Thomas)

  • Ajout de la sp�cification ISO date/time avec "T", yyyy-mm-ddThh:mm:ss (Thomas)

  • Nouvelles fonctions de comparaisons des xid/int (Hiroshi)

  • Ajout de la pr�cision vers les types de donn�es TIME, TIMESTAMP et INTERVAL (Thomas)

  • Modification de la ligique de coercion des types pour tenter en premier lieu les fonctions compatibles binairement (Tom)

  • Nouvelle fonction encode() install�e par d�faut (Marko Kreen)

  • Am�lioration des fonctions de conversion to_*() (Karel Zak)

  • Optimisation de LIKE/ILIKE lors de l'utilisation de codage sur un seul octet (Tatsuo)

  • Nouvelles fonctions dans contrib/pgcrypto : crypt(), hmac(), encrypt(), gen_salt() (Marko Kreen)

  • Bonne description de la fonction translate() (Bruce)

  • Ajout de l'argument INTERVAL pour SET TIME ZONE (Thomas)

  • Ajout de la syntaxe INTERVAL YEAR TO MONTH (etc.) (Thomas)

  • Optimisation des fonctions length lors de l'utilisation de codage sur un seul octet (Tatsuo)

  • Corrections de path_inter, path_distance, path_length, dist_ppath pour g�rer les chemins ferm�s (Curtis Barrett, Tom)

  • octet_length(text) renvoie maintenant une longueur non compress�e (Tatsuo, Bruce)

  • Gestion du nom complet "July" dans les litt�raux date/time (Greg Sabino Mullane)

  • Quelques appels de fonction datatype() sont maintenant �valu�s diff�remment

  • Ajout du support pour les sp�cifications d'heure julienne et ISO (Thomas)

E.87.3.10. Internationalisation

  • Support de la langue nationale dans psql, pg_dump, libpq et le serveur (Peter E)

  • Traductions des messages en chinois (simplifi�, traditionnel), tch�que, fran�ais, allemand, hongrois, russe, su�dois (Peter E, Serguei A. Mokhov, Karel Zak, Weiping He, Zhenbang Wei, Kovacs Zoltan)

  • Rend trim, ltrim, rtrim, btrim, lpad, rpad, translate conscient du multi-octets (Tatsuo)

  • Ajout du support de LATIN5,6,7,8,9,10 (Tatsuo)

  • Ajout du support de ISO 8859-5,6,7,8 (Tatsuo)

  • Le bon LATIN5 signifie ISO-8859-9, non pas ISO-8859-5 (Tatsuo)

  • Rend mic2ascii() conscient du non ASCII (Tatsuo)

  • Rej�te les s�quences de caract�res multi-octets invalides (Tatsuo)

E.87.3.11. PL/pgSQL

  • Utilise maintenant les portails pour les boucles SELECT, permettant d'�normes ensembles de r�sultats (Jan)

  • Support de CURSOR et de REFCURSOR (Jan)

  • Peut maintenant renvoyer des curseurs ouverts (Jan)

  • Ajout de ELSEIF (Klaus Reger)

  • Am�lioration des rapports d'erreurs PL/pgSQL, incluant l'emplacement de l'erreur (Tom)

  • Autorisation des mots cl�s IS ou FOR dans la d�claration de curseurs pour compatibilit� (Bruce)

  • Correction de SELECT ... FOR UPDATE (Tom)

  • Correction de PERFORM lorsqu'il renvoie plusieurs lignes (Tom)

  • PL/pgSQL utilise le code de coercion de type du serveur (Tom)

  • Correction d'une perte m�moire (Jan, Tom)

  • Rend optionnel le point virgule en fin (Tom)

E.87.3.12. PL/Perl

  • Nouveau PL/Perl sans confiance du serveur (Alex Pilosov)

  • PL/Perl est maintenant construit sur quelques plateformes m�me si libperl n'est pas une biblioth�que partag�e (Peter E)

E.87.3.13. PL/Tcl

  • Rapporte maintenant errorInfo (Vsevolod Lobko)

  • Ajout de la fonction spi_lastoid (bob@redivi.com)

E.87.3.14. PL/Python

  • ... est nouveau (Andrew Bosma)

E.87.3.15. psql

  • \d affiche les index dans un groupe unique et primaire (Christopher Kings-Lynne)

  • Autorise les points virgules � la fin dans les commandes antislashs (Greg Sabino Mullane)

  • Lecture du mot de passe � partir de /dev/tty si possible

  • Force une nouvelle invite du mot de passe lors d'un changement d'utilisateur et de base de donn�es (Tatsuo, Tom)

  • Formate le bon nombre de colonnes pour Unicode (Patrice)

E.87.3.16. libpq

  • Nouvelle fonction PQescapeString() pour �chapper les guillemets dans les cha�nes de commande (Florian Weimer)

  • Nouvelle fonction PQescapeBytea() �chappe les cha�nes binaires � utiliser comme des litt�raux de cha�nes SQL

E.87.3.17. JDBC

  • Renvoie l'OID d'INSERT (Ken K)

  • Gestion d'un plus grand nombre de types de donn�es (Ken K)

  • Gestion des guillemets simples et des retours chariots dans les cha�nes (Ken K)

  • Gestion des variables NULL (Ken K)

  • Correction pour la gestion des fuseaux horaires (Barry Lind)

  • Am�lioration du support de Druid

  • Autorisation des caract�res � huit bits avec un serveur non compatible avec le multi-octets (Barry Lind)

  • Support des types BIT, BINARY (Ned Wolpert)

  • R�duction de l'utilisation de la m�moire (Michael Stephens, Dave Cramer)

  • Mise � jour de DatabaseMetaData (Peter E)

  • Ajout de DatabaseMetaData.getCatalogs() (Peter E)

  • Corrections du codage (Anders Bengtsson)

  • M�thodes get/setCatalog (Jason Davies)

  • DatabaseMetaData.getColumns() renvoie maintenant les valeurs par d�faut des colonnes (Jason Davies)

  • Am�lioration de la performance de DatabaseMetaData.getColumns() (Jeroen van Vianen)

  • Rassemblement de JDBC1 et JDBC2 (Anders Bengtsson)

  • Am�liorations des performances des transactions (Barry Lind)

  • Corrections sur les tableaux (Greg Zoller)

  • Ajout de la s�rialisation

  • Correction du traitement en lots (Rene Pijlman)

  • R�organisation de la m�thode ExecSQL (Anders Bengtsson)

  • Corrections de getColumn() (Jeroen van Vianen)

  • Correction de la fonction isWriteable() (Rene Pijlman)

  • Am�lioration du passage des tests de conformance JDBC2 (Rene Pijlman)

  • Ajout du type bytea (Barry Lind)

  • Ajout de isNullable() (Rene Pijlman)

  • Corrections pour la suite de tests JDBC date/time (Liam Stewart)

  • Correction sur SELECT 'id' AS xxx FROM table (Dave Cramer)

  • Correction de DatabaseMetaData pour afficher la bonne pr�cision (Mark Lillywhite)

  • Nouvelles cl�s getImported/getExported (Jason Davies)

  • Support des mots de passe crypt�s MD5 (Jeremy Wohl)

  • Correction pour r�ellement utiliser le cache des types (Ned Wolpert)

E.87.3.18. ODBC

  • Suppression de la limite sur la taille des requ�tes (Hiroshi)

  • Suppression de la limite sur la taille du champ texte (Hiroshi)

  • Correction de SQLPrimaryKeys en mode multi-octets (Hiroshi)

  • Autorisation des appels de proc�dure ODBC (Hiroshi)

  • Am�lioration de la gestion des bool�ens (Aidan Mountford)

  • La plupart des options de configuration sont maintenant configurables via le DSN (Hiroshi)

  • Corrections des performances du multi-octets (Hiroshi)

  • Autorise l'utilisation du pilote avec iODBC ou unixODBC (Peter E)

  • Support du cryptage des mots de passe MD5 (Bruce)

  • Ajout de plusieurs fonctions de compatibilit� dans odbc.sql (Peter E)

E.87.3.19. ECPG

  • Impl�mentation de EXECUTE ... INTO (Christof Petig)

  • Support du descripteur de plusieurs lignes (c'est-�-dire CARDINALITY) (Christof Petig)

  • Correction pour les param�tres de GRANT (Lee Kindness)

  • Correction d'un bogue sur INITIALLY DEFERRED

  • Plusieurs corrections de bogues (Michael, Christof Petig)

  • Allocation automatique pour les tableaux de variable (int *ind_p=NULL)

  • Allocation automatique pour les tableaux de cha�nes (char **foo_pp=NULL)

  • Correction de ECPGfree_auto_mem

  • Tous les noms de fonction avec un lien externe sont maintenant pr�fix�s par ECPG

  • Corrections pour les tableaux de structures (Michael)

E.87.3.20. Interfaces diverses

  • Correction de fetchone() pour Python (Gerhard Haring)

  • Utilisation d'UTF, Unicode dans Tcl lorsqu'appropri� (Vsevolod Lobko, Reinhard Max)

  • Ajout de COPY TO/FROM dans Tcl (ljb)

  • Emp�che la sortie des classes d'op�rateurs d'index par d�faut dans pg_dump (Tom)

  • Correction d'une perte m�moire dans libpgeasy (Bruce)

E.87.3.21. Construction et installation

  • Corrections sur configure, le chargeur dynamique et les biblioth�ques partag�es (Peter E)

  • Corrections dans le port QNX 4 (Bernd Tegge)

  • Corrections dans les ports Cygwin et Windows (Jason Tishler, Gerhard Haring, Dmitry Yurtaev, Darko Prenosil, Mikhail Terekhov)

  • Corrections pour les �checs de communication par socket sous Windows (Magnus, Mikhail Terekhov)

  • Correction de compilation pour Hurd (Oliver Elphick)

  • Corrections sur BeOS (Cyril Velter)

  • Suppression de configure --enable-unicode-conversion, activ� maintenant par le multi-octets (Tatsuo)

  • Corrections pour AIX (Tatsuo, Andreas)

  • Correction du make parall�le (Peter E)

  • Installation des pages man du langage SQL dans des r�pertoires sp�cifiques aux OS (Peter E)

  • Renommage de config.h en pg_config.h (Peter E)

  • R�organisation de l'emplacement d'installation des fichiers d'en-t�te (Peter E)

E.87.3.22. Code source

  • Suppression de SEP_CHAR (Bruce)

  • Nouvelles accroches GUC (Tom)

  • Assemblage de GUC et de la gestion de la ligne de commandes (Marko Kreen)

  • Suppression de EXTEND INDEX (Martijn van Oosterhout, Tom)

  • Nouvel outil pgjindent pour indenter le code java (Bruce)

  • Suppression de la d�finition de true/false lors d'une compilation sous C++ (Leandro Fanzone, Tom)

  • Corrections � pgindent (Bruce, Tom)

  • Remplacement de strcasecmp() avec strcmp() lorsque cela est appropri� (Peter E)

  • Am�lioration de la portabilit� dynahash (Tom)

  • Ajout de l'utilisation de 'volatile' dans les structures spinlock

  • Am�lioration de la logique de gestion des signaux (Tom)

E.87.3.23. Contrib

  • Nouveau contrib/rtree_gist (Oleg Bartunov, Teodor Sigaev)

  • Nouveau contrib/tsearch, indexage de textes complets (Oleg, Teodor Sigaev)

  • Ajout de contrib/dblink pour l'acc�s distant aux bases de donn�es (Joe Conway)

  • Outil de conversion Oracle contrib/ora2pg (Gilles Darold)

  • Outil de conversion XML contrib/xml (John Gray)

  • Corrections sur contrib/fulltextindex (Christopher Kings-Lynne)

  • Nouveau contrib/fuzzystrmatch avec levenshtein et m�taphone, rassemblement de soundex (Joe Conway)

  • Ajout des requ�tes bool�ennes dans contrib/intarray, des recherches binaires, et correctifs (Oleg Bartunov)

  • Nouvel outil pg_upgrade (Bruce)

  • Ajout de nouvelles options � pg_resetxlog (Bruce, Tom)