IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

E.72. Sortie 7.3

[Note]

Date de sortie

2002-11-27

E.72.1. Aperçu

Modifications majeures dans cette version :

Schémas

Les schémas permettent aux utilisateurs de créer des objets dans des espaces de noms séparés, donc deux personnes ou applications peuvent avoir des tables de même nom. Il existe aussi un schéma public pour les tables partagées. La création de table/index peut être restreinte en supprimant les droits du le schéma public.

Suppression de colonne

PostgreSQL™ supporte maintenant la fonctionnalité ALTER TABLE ... DROP COLUMN.

Fonctions de tables

Les fonctions renvoyant plusieurs lignes et/ou plusieurs colonnes sont maintenant plus facile à utiliser qu'auparavant. Vous pouvez appeler une « fonction de table » dans la clause FROM d'un SELECT, traitant sa sortie comme une table. De plus, les fonctions PL/pgSQL peuvent maintenant renvoyer des ensembles.

Requêtes préparées

PostgreSQL™ supporte maintenant les requêtes préparées pour des performances améliorées.

Récupération des dépendances

PostgreSQL™ enregistre maintenant les dépendances de objets, ce qui permet des améliorations dans de nombreux domaines. Les instructions DROP prennent maintenant soit CASCADE soit RESTRICT pour contrôler si les objets dépendant sont aussi supprimés.

Droits

Les fonctions et langages de procédures disposent maintenant de droits et les fonctions peuvent être définies pour être exécutées suivant les droits de leur créateur.

Internationalisation

Le support du multioctet et des locales est maintenant activé en permanence.

Traces

Une variété d'options de traces a été améliorée.

Interfaces

Un grand nombre d'interfaces a été déplacé dans http://gborg.postgresql.org où ils peuvent être développés et mis à disposition indépendamment.

Fonctions/Identifieurs

Par défaut, les fonctions prennent maintenant jusqu'à 32 paramètres et les identifieurs peuvent être d'une taille maximum de 63 octets. De plus, OPAQUE est maintenant obsolète : il existe des « pseudo-types de données » pour représenter chacune des significations précédentes de OPAQUE dans l'argument et les types de résultat de la fonction.

E.72.2. Migration vers la version 7.3

Une sauvegarde/restauration utilisant pg_dump est requise pour ceux souhaitant migrer leur données à partir d'une version précédente. S i votre application examine les catalogues systèmes, des modifications supplémentaires seront requises à cause de l'introduction des schémas dans la version 7.3 ; pour plus d'informations, voir : http://developer.postgresql.org/~momjian/upgrade_tips_7.3 .

Observez les incompatibilités suivantes :

  • Les clients avant la 6.3 ne sont plus supportés.

  • pg_hba.conf a maintenant une colonne pour le nom de l'utilisateur et pour des fonctionnalités supplémentaires. Les fichiers existants doivent être ajustés.

  • Quelques paramètres de trace de postgresql.conf ont été renommés.

  • LIMIT #,# a été désactivé ; utilisez LIMIT # OFFSET #.

  • Les instructions INSERT avec des listes de colonnes doivent spécifier une valeur pour chaque colonne spécifiée. Par exemple, INSERT INTO tab (col1, col2) VALUES ('val1') est maintenant non valide. Il est toujours permis de fournir moins de colonnes qu'attendu si l' INSERT n'a pas de liste de colonnes.

  • Les colonnes de type serial ne sont plus automatiquement UNIQUE ; du coup, un index ne sera pas automatiquement créé.

  • Une commande SET à l'intérieur d'une transaction est maintenant annulée

  • COPY ne considère plus que les colonnes de fin manquantes doivent être NULL. Toutes les colonnes doivent être spécifiées. (Néanmoins, vous pouvez avoir un effet similaire en spécifiant une liste de colonnes dans la commande COPY .)

  • Le type de données timestamp est maintenant équivalent à timestamp without time zone, au lieu de timestamp with time zone.

  • Les bases de données, avant la version 7.3 et chargées dans cette version, n'auront pas les dépendances du nouvel objet pour les colonnes de type serial, les contraintes uniques et les clés étrangères. Voir le répertoire contrib/adddépend/ pour une description détaillée et un script qui ajoute ces dépendances.

  • Une chaîne vide ('') n'est plus permise comme entrée dans un champ d'entier. Auparavant, c'était silencieusement interprété comme 0.

E.72.3. Modifications

  • Rend optionnel les signes d'égalité dans CREATE DATABASE (Gavin Sherry)

  • Fait que ALTER TABLE OWNER change aussi le propriétaire de l'index (Neil)

  • Le nouveau ALTER TABLE nomtable ALTER COLUMN nom_colonne SET STORAGE contrôle le stockage de TOAST, la compression (John Gray)

  • Ajout du support du schéma, CREATE/DROP SCHEMA (Tom)

  • Création d'un schéma pour les tables temporaires (Tom)

  • Ajout de la variable search_path pour la recherche de schémas (Tom)

  • Ajout de ALTER TABLE SET/DROP NOT NULL (Christopher)

  • Nouveaux niveaux de volatilité CREATE FUNCTION (Tom)

  • Rend les noms de règles uniques seulement par table (Tom)

  • Ajout d'une clause 'ON tablename' à DROP RULE et à COMMENT ON RULE (Tom)

  • Ajout de ALTER TRIGGER RENAME (Joe)

  • Nouvelles fonctions current_schema() et current_schemas() (Tom)

  • Autorise les fonctions à renvoyer plusieurs lignes (fonctions de table) (Joe)

  • Rend WITH optionnel dans CREATE DATABASE pour rester consistant (Bruce)

  • Ajout de la conservation des dépendances d'objets (Rod, Tom)

  • Ajout de RESTRICT/CASCADE aux commandes DROP (Rod)

  • Ajout de ALTER TABLE DROP pour les cas sans CHECK CONSTRAINT (Rod)

  • Destruction automatique de la séquence lors du DROP d'une table avec SERIAL (Rod)

  • Empêche la suppression d'une colonne si celle-ci est utilisée par une clé étrangère (Rod)

  • Supprime automatiquement les contraintes/fonctions lorsqu'un objet est supprimé (Rod)

  • Ajout de CREATE/DROP OPERATOR CLASS (Bill Studenmund, Tom)

  • Ajout de ALTER TABLE DROP COLUMN (Christopher, Tom, Hiroshi)

  • Empêche les colonnes héritées d'être supprimées ou renommées (Alvaro Herrera)

  • Correction des contraintes de clés étrangères pour ne pas avoir d'erreurs sur les états intermédiaires de la base de données (Stephan)

  • Propagation du renommage de colonne ou de table pour les contraintes de clés étrangères

  • Ajout de CREATE OR REPLACE VIEW (Gavin, Neil, Tom)

  • Ajout de CREATE OR REPLACE RULE (Gavin, Neil, Tom)

  • Fait que les règles s'exécutent dans l'ordre alphabétique, renvoyant des valeurs plus prévisibles (Tom)

  • Les déclencheurs sont maintenant lancés dans l'ordre alphabétique (Tom)

  • Ajout de /contrib/adddépend pour gérer les dépendances d'objets pre-7.3 (Rod)

  • Permet une meilleure conversion lors de l'insertion et de la mise à jour des valeurs (Tom)

  • Fait que COPY TO affiche les retours chariots et retours à la ligne avec \r et \n (Tom)

  • Permet à DELIMITER dans COPY FROM d'être propre sur huit bits (Tatsuo)

  • Fait que pg_dump utilise ALTER TABLE ADD PRIMARY KEY pour des raisons de performance (Neil)

  • Désactivation des crochets dans les règles à plusieurs instructions (Bruce)

  • Désactivation de l'appel du VACUUM à l'intérieur d'une fonction (Bruce)

  • Autorise dropdb et d'autres scripts à utiliser des identifieurs avec des espaces (Bruce)

  • Restreint les modifications de commentaire de la base de données à la base de données courante

  • Autorise les commentaires sur les opérateurs, indépendent de la fonction sous-jacente (Rod)

  • Annule les commandes SET dans les transactions annulées (Tom)

  • EXPLAIN s'affiche maintenant comme une requête (Tom)

  • Affichage des expressions de condition et tri des clés dans EXPLAIN (Tom)

  • Ajout de 'SET LOCAL var = valeur' pour initialiser les variables pour une seule transaction (Tom)

  • Autorise le lancement d'ANALYZE dans une transaction (Bruce)

  • Amélioration de la syntaxe de COPY en utilisant les nouvelles clauses WITH, conservant ainsi la compatibilité ascendante (Bruce)

  • Correction de pg_dump pour afficher de façon consistante les balises dans les sauvegardes non ASCII (Bruce)

  • Fait que les contraintes de clés étrangères dans le fichier de sauvegarde (Rod)

  • Ajout de COMMENT ON CONSTRAINT (Rod)

  • Autorise COPY TO/FROM à spécifier les noms de colonnes (Brent Verner)

  • Sauvegarde les contraintes UNIQUE et PRIMARY KEY comme ALTER TABLE (Rod)

  • SHOW s'affiche comme le résultat d'une requête (Joe)

  • Génération d'un échec sur les lignes courtes de COPY plutôt que de rajouter des NULL (Neil)

  • Correction de CLUSTER pour préserver tous les attributs des tables (Alvaro Herrera)

  • Nouvelle table pg_settings pour visualiser/modifier les paramétrages GUC (Joe)

  • Ajout de la mise entre guillemets intelligente, amélioration sur la portabilité de la sortie de pg_dump (Peter)

  • Sauvegarde les colonnes serial comme SERIAL (Tom)

  • Activation du support des gros fichiers, >2 Go pour pg_dump (Peter, Philip Warner, Bruce)

  • Interdit TRUNCATE sur les tables qui sont impliquées dans des contraintes référentielles (Rod)

  • Fait que TRUNCATE tronque aussi automatiquement la table toast de la relation (Tom)

  • Ajout de l'outil clusterdb qui groupera automatiquement une base de données entière en se basant sur les opérations CLUSTER précédentes (Alvaro Herrera)

  • Revue de pg_dumpall (Peter)

  • Autorise le REINDEX des tables TOAST (Tom)

  • Implémentation de START TRANSACTION, suivant SQL99 (Neil)

  • Correction des rares corruptions d'index lorsqu'une division de page affecte la suppression en masse (Tom)

  • Correction de l'héritage sur ALTER TABLE ... ADD COLUMN (Alvaro Herrera)

  • Correction pour que factorial(0) renvoie 1 (Bruce)

  • Améliorations des types date/time/timezone (Thomas)

  • Correction pour l'extraction d'un morceau de tableau (Tom)

  • Correction de extract/date_part pour rapporter les bonnes microsecondes sur des valeurs de type timestamp (Tatsuo)

  • Autorise text_substr() et bytea_substr() à lire des valeurs TOAST de façon plus efficace (John Gray)

  • Ajout du support du domaine (Rod)

  • Fait que WITHOUT TIME ZONE est la valeur par défaut des types de données TIMESTAMP et TIME data (Thomas)

  • Autorise un autre schéma de stockage des entiers sur 64 bits pour les types date/time en utilisant --enable-integer-datetimes dans configure (Thomas)

  • Fait que timezone(timestamptz) renvoie timestamp plutôt que string (Thomas)

  • Autorise les secondes fractionnées dans les types date/time pour les dates datant de l'an 1 avant JC (Thomas)

  • Limite les types de données timestamp à six places décimales pour la précision (Thomas)

  • Modification des fonctions de conversion timezone de timetz() à timezone() (Thomas)

  • Ajout des variables de configuration datestyle et timezone (Tom)

  • Ajout d'OVERLAY(), qui autorise la substitution d'une sous-chaîne dans une chaîne (Thomas)

  • Ajout de SIMILAR TO (Thomas, Tom)

  • Ajout d'un SUBSTRING(chaîne FROM modele FOR échappement) utilisant les expressions rationnelles (Thomas)

  • Ajout des fonctions LOCALTIME et LOCALTIMESTAMP (Thomas)

  • Ajout des types composés nommés utilisant CREATE TYPE nom_type AS (column) (Joe)

  • Autorise la définition d'un type composé dans la clause alias d'une table (Joe)

  • Ajout d'une nouvelle API pour simplifier la création de fonctions de table en langage C (Joe)

  • Supprime les parenthèses vides compatible ODBC des appels de fonctions SQL99 si elles ne sont pas compatibles avec le standard (Thomas)

  • Le type de données macaddr accepte 12 chiffres hexadécimaux sans séparateurs (Mike Wyer)

  • Ajout de CREATE/DROP CAST (Peter)

  • Ajout de l'opérateur IS DISTINCT FROM (Thomas)

  • Ajout de la fonction SQL99 TREAT(), synonyme de CAST() (Thomas)

  • Ajout de pg_backend_pid() pour afficher le pid du serveur (Bruce)

  • Ajout du prédicat IS OF / IS NOT OF (Thomas)

  • Autorise les constantes de type chaîne de bits sans une longueur définie (Thomas)

  • Autorise la conversion entre les entiers à huit octets et les chaînes de bit (Thomas)

  • Implémente la conversion littérale en hexadécimale vers un littéral de type chaîne de bits (Thomas)

  • Autorise l'apparition des fonctions de table dans la clause FROM (Joe)

  • Augmente le nombre maximum de paramètres de fonctions à 32 (Bruce)

  • Ne crée plus automatiquement un index pour les colonnes SERIAL (Tom)

  • Ajout de current_database() (Rod)

  • Correction de cash_words() pour ne pas avoir de dépassement de tampons (Tom)

  • Ajout des fonctions replace(), split_part(), to_hex() (Joe)

  • Correction de LIKE pour bytea en argument du côté droit (Joe)

  • Empêche les arrêt brutaux causés par SELECT cash_out(2) (Tom)

  • Correction de to_char(1,'FM999.99') pour qu'elle renvoie un point (Karel)

  • Correction des fonctions trigger/type/language renvoyant OPAQUE pour qu'elles renvoient un type correct (Tom)

  • Correction pour un make parallèle (Peter)

  • Corrections spécifiques pour AIX lors de l'édition des liens avec Tcl (Andreas Zeugswetter)

  • Permet à PL/Perl d'être construit avec Cygwin (Jason Tishler)

  • Amélioration des compilations MIPS (Peter, Oliver Elphick)

  • Requiert Autoconf version 2.53 (Peter)

  • Requiert readline et zlib par défaut dans configure (Peter)

  • Permet l'utilisation de « Intimate Shared Memory » (ISM) par Solaris pour des raisons de performances (Scott Brunza, P.J. Josh Rovero)

  • Activation permanente de syslog dans la compilation, suppression de l'option --enable-syslog (Tatsuo)

  • Activation permanente du multi-octets dans la compilation, suppression de l'option --enable-multibyte (Tatsuo)

  • Activation permanente de la locale dans la compilation, suppression de l'option --enable-locale (Peter)

  • Correction pour la création des DLL Win9x (Magnus Naeslund)

  • Correction pour l'utilisation de link() par le code WAL sur Windows, BeOS (Jason Tishler)

  • Ajout de sys/types.h à c.h, suppression à partir des fichiers principaux (Peter, Bruce)

  • Correction d'un blocage sur les machines SMP sous AIX (Tomoyuki Niijima)

  • Correction d'un autre blocage SMP sur AIX (Tomoyuki Niijima)

  • Correction de la gestion de dates avant 1970 sur les nouvelles bibliothèques glibc (Tom)

  • Correction du verrour sur les PowerPC SMP (Tom)

  • Empêche gcc -ffast-math d'être utilisé (Peter, Tom)

  • Bison >= 1.50 est maintenant requis pour les constructions développeur

  • Le support Kerberos 5 se construit maintenant avec Heimdal (Peter)

  • Ajout de l'appendice dans le guide utilisateur qui liste toutes les fonctionnalités SQL (Thomas)

  • Amélioration de l'édition des liens des modules chargeables pour utiliser RTLD_NOW (Tom)

  • Nouveaux niveaux d'erreurs WARNING, INFO, LOG, DEBUG[1-5] (Bruce)

  • Le nouveau répertoire src/port contient les fonctions remplacées de la libc (Peter, Bruce)

  • Nouveau catalogue système pg_namespace pour les schémas (Tom)

  • Ajout de pg_class.relnamespace pour les schémas (Tom)

  • Ajout de pg_type.typnamespace pour les schémas (Tom)

  • Ajout de pg_proc.pronamespace pour les schémas (Tom)

  • Restructuration des agrégats pour disposer des entrées de pg_proc (Tom)

  • Les relations système ont maintenant leur propre espace de noms, le test pg_* n'est plus requis (Fernando Nasser)

  • Renommage des noms d'index TOAST pour être *_index au lieu de *_idx (Neil)

  • Ajout des espaces de noms pour les opérateurs et les classes d'opérateurs (Tom)

  • Ajout de vérifications supplémentaires pour le fichier de contrôle du serveur (Thomas)

  • Nouvelle FAQ polonaise (Marcin Mazurek)

  • Ajout du support des sémaphores Posix (Tom)

  • Document nécessaire pour reindex (Bruce)

  • Renommage de quelques identifieurs internes pour simplifier la compilation Windows (Jan, Katherine Ward)

  • Ajout de documentation sur l'espace de disque (Bruce)

  • Suppression de KSQO de GUC (Bruce)

  • Correction d'une perte mémoire dans rtree (Kenneth Been)

  • Modification de quelques messages d'erreur pour la cohérence (Bruce)

  • Suppression des colonnes de tables système non utilisées (Peter)

  • Colonnes système NOT NULL lorsqu'appropriées (Tom)

  • Nettoyage de l'utilisation de sprintf à la place de snprintf() (Neil, Jukka Holappa)

  • Suppression d'OPAQUE et création de sous-types spécifiques (Tom)

  • Nettoyages de la gestion interne des tableaux (Joe, Tom)

  • Interdiction de pg_atoi('') (Bruce)

  • Suppression du paramètres wal_files car les fichiers WAL sont maintenant recyclés (Bruce)

  • Ajout des numéros de version dans les pages d'en-tête (Tom)