documentation postgresql 8.1 · 14.6. initialisation post-installation ..... 187

1138
Documentation PostgreSQL 8.1.22 The PostgreSQL Global Development Group

Upload: lecong

Post on 23-Dec-2018

244 views

Category:

Documents


0 download

TRANSCRIPT

Documentation PostgreSQL 8.1.22

The PostgreSQL Global Development Group

Documentation PostgreSQL 8.1.22The PostgreSQL Global Development GroupCopyright 1996-2005 The PostgreSQL Global Development Group

Legal Notice

PostgreSQL is Copyright (c) 1996-2005 by the PostgreSQL Global Development Group and is distributed under the terms of the license of the University of Ca-lifornia below.

Postgres95 is Copyright (c) 1994-5 by the Regents of the University of California.

Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby gran-ted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, ORCONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVENIF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WAR-RANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN AS-IS BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,OR MODIFICATIONS.

Prface ......................................................................................................................................................... xv1. Dfinition de PostgreSQL ................................................................................................................... xv2. Bref historique de PostgreSQL ............................................................................................................. xv3. Conventions ....................................................................................................................................... xvi4. Pour plus d'informations ....................................................................................................................... xvii5. Lignes de conduite pour les rapports de bogues ........................................................................................ xvii

I. Tutoriel ...................................................................................................................................................... 11. Dmarrage ............................................................................................................................................ 2

1.1. Installation ................................................................................................................................... 21.2. Concepts architecturaux de base ....................................................................................................... 21.3. Cration d'une base de donnes ........................................................................................................ 21.4. Accder une base ........................................................................................................................ 4

2. Le langage SQL .................................................................................................................................... 62.1. Introduction ................................................................................................................................. 62.2. Concepts ..................................................................................................................................... 62.3. Crer une nouvelle table ................................................................................................................. 62.4. Remplir une table avec des lignes ..................................................................................................... 72.5. Interroger une table ........................................................................................................................ 72.6. Jointures entre les tables ................................................................................................................. 92.7. Fonctions d'agrgat ....................................................................................................................... 102.8. Mises jour ................................................................................................................................ 122.9. Suppressions ............................................................................................................................... 12

3. Fonctionnalits avances ........................................................................................................................ 133.1. Introduction ................................................................................................................................ 133.2. Vues .......................................................................................................................................... 133.3. Cls trangres ............................................................................................................................ 133.4. Transactions ................................................................................................................................ 143.5. Hritage ........................................................................................................................................3.6. Conclusion .................................................................................................................................. 16

II. Langage SQL ............................................................................................................................................ 174. Syntaxe SQL ....................................................................................................................................... 18

4.1. Structure lexicale ......................................................................................................................... 184.2. Expressions de valeurs .................................................................................................................. 23

5. Dfinition des donnes ........................................................................................................................... 305.1. Bases sur les tables ....................................................................................................................... 305.2. Valeurs par dfaut ........................................................................................................................ 315.3. Contraintes ................................................................................................................................. 315.4. Colonnes systme ......................................................................................................................... 365.5. Modification des tables .................................................................................................................. 375.6. Droits ......................................................................................................................................... 395.7. Schmas ..................................................................................................................................... 405.8. Hritage ........................................................................................................................................5.9. Partitionnement ............................................................................................................................ 455.10. Autres objets de la base de donnes ................................................................................................ 505.11. Gestion des dpendances .............................................................................................................. 50

6. Manipulation de donnes ........................................................................................................................ 526.1. Insertion de donnes ..................................................................................................................... 526.2. Mise jour de donnes .................................................................................................................. 526.3. Suppression de donnes ................................................................................................................. 53

7. Requtes ............................................................................................................................................. 547.1. Aperu ....................................................................................................................................... 547.2. Expressions de table ..................................................................................................................... 547.3. Listes de slection ........................................................................................................................ 617.4. Combiner des requtes .................................................................................................................. 627.5. Tri des lignes ............................................................................................................................... 627.6. LIMIT et OFFSET ....................................................................................................................... 63

8. Types de donnes ................................................................................................................................. 648.1. Types numriques ........................................................................................................................ 658.2. Types montaires ......................................................................................................................... 678.3. Types caractres ........................................................................................................................... 688.4. Types de donnes binaires .............................................................................................................. 698.5. Types date/heure .......................................................................................................................... 71

iii

8.6. Type boolen ............................................................................................................................... 768.7. Types gomtriques ...................................................................................................................... 768.8. Types d'adresses rseau ................................................................................................................. 788.9. Type chane de bits ....................................................................................................................... 808.10. Tableaux ................................................................................................................................... 808.11. Types composites ....................................................................................................................... 868.12. Types identifiants d'objets ............................................................................................................ 898.13. Pseudo-Types ............................................................................................................................ 90

9. Fonctions et oprateurs .......................................................................................................................... 929.1. Oprateurs logiques ...................................................................................................................... 929.2. Oprateurs de comparaison ............................................................................................................ 929.3. Fonctions et oprateurs mathmatiques ............................................................................................. 949.4. Fonctions et oprateurs de chanes ................................................................................................... 969.5. Fonctions et oprateurs de chanes binaires ...................................................................................... 1029.6. Fonctions et oprateurs sur les chanes de bits .................................................................................. 1039.7. Correspondance de modles ......................................................................................................... 1049.8. Fonctions de formatage des types de donnes .................................................................................. 1149.9. Fonctions et oprateurs pour date/heure .......................................................................................... 1189.10. Fonctions et oprateurs gomtriques ........................................................................................... 1259.11. Fonctions et oprateurs pour le type des adresses rseau ................................................................... 1289.12. Fonctions de manipulation de squence ......................................................................................... 1309.13. Expressions conditionnelles ........................................................................................................ 1319.14. Fonctions et oprateurs sur les tableaux ........................................................................................ 1339.15. Fonctions d'agrgat ................................................................................................................... 1349.16. Expressions de sous-expressions .................................................................................................. 1369.17. Comparaisons de lignes et de tableaux .......................................................................................... 1389.18. Fonctions renvoyant des ensembles .............................................................................................. 1409.19. Fonctions d'informations systme ................................................................................................ 1409.20. Fonctions d'administration systme .............................................................................................. 145

10. Conversion de types .......................................................................................................................... 14810.1. Aperu ................................................................................................................................... 14810.2. Oprateurs ............................................................................................................................... 14910.3. Fonctions ................................................................................................................................ 15110.4. Stockage de valeurs ................................................................................................................... 15310.5. Constructions UNION, CASE et constructions relatives .................................................................... 154

11. Index .............................................................................................................................................. 15611.1. Introduction ............................................................................................................................. 15611.2. Types d'index ........................................................................................................................... 15611.3. Index multicolonnes .................................................................................................................. 15711.4. Combiner des index multiples ..................................................................................................... 15811.5. Index uniques .......................................................................................................................... 15911.6. Index sur des expressions ........................................................................................................... 15911.7. Index partiels ........................................................................................................................... 16011.8. Classes d'oprateurs .................................................................................................................. 16111.9. Examiner l'utilisation des index ................................................................................................... 162

12. Contrle d'accs simultan .................................................................................................................. 16412.1. Introduction ............................................................................................................................. 16412.2. Isolation des transactions ........................................................................................................... 16412.3. Verrouillage explicite ................................................................................................................ 16712.4. Vrification de cohrence des donnes au niveau de l'application ....................................................... 16912.5. Verrouillage et index ................................................................................................................. 169

13. Conseils sur les performances .............................................................................................................. 17113.1. Utiliser EXPLAIN ................................................................................................................... 17113.2. Statistiques utilises par le planificateur ........................................................................................ 17413.3. Contrler le planificateur avec des clauses JOIN explicites .............................................................. 17513.4. Remplir une base de donnes ...................................................................................................... 177

III. Administration du serveur ......................................................................................................................... 17914. Procdure d'installation ...................................................................................................................... 180

14.1. Version courte ......................................................................................................................... 18014.2. Prrequis ................................................................................................................................. 18014.3. Obtenir les sources .................................................................................................................... 18114.4. Si vous effectuez une mise jour ................................................................................................. 18214.5. Procdure d'installation .............................................................................................................. 183

Documentation PostgreSQL 8.1.22

iv

14.6. Initialisation post-installation ...................................................................................................... 18714.7. Dmarrer ................................................................................................................................ 18814.8. Et maintenant ? ........................................................................................................................ 18914.9. Plateformes supportes .............................................................................................................. 189

15. Installation sur Windows du seul client .............................................................................................. 19316. Environnement du systme d'exploitation .............................................................................................. 194

16.1. Compte utilisateur PostgreSQL ................................................................................................ 19416.2. Crer un groupe de base de donnes ............................................................................................. 19416.3. Lancer le serveur de bases de donnes .......................................................................................... 19516.4. Grer les ressources du noyau ..................................................................................................... 19716.5. Arrter le serveur ...................................................................................................................... 20216.6. Options de chiffrement .............................................................................................................. 20316.7. Connexions tcp/ip scurises avec ssl ........................................................................................... 20416.8. Connexions tcp/ip scurises avec des tunnels ssh tunnels ................................................................ 204

17. Configuration du serveur .................................................................................................................... 20617.1. Paramtres de configuration ........................................................................................................ 20617.2. Emplacement des fichiers ........................................................................................................... 20617.3. Connexions et authentification .................................................................................................... 20717.4. Consommation de ressources ...................................................................................................... 21017.5. Write Ahead Log ...................................................................................................................... 21317.6. Planification des requtes ........................................................................................................... 21517.7. Rapports d'erreur et traces .......................................................................................................... 21817.8. Statistiques d'excution .............................................................................................................. 22117.9. VACUUM automatique ............................................................................................................. 22217.10. Valeurs par dfaut des connexions client ..................................................................................... 22317.11. Gestion des verrous ................................................................................................................. 22517.12. Compatibilit de version et de plateforme .................................................................................... 22617.13. Options prconfigures ............................................................................................................ 22717.14. Options personnalises ............................................................................................................. 22817.15. Options pour les dveloppeurs ................................................................................................... 22817.16. Options courtes ...................................................................................................................... 229

18. Rles et droits de la base de donnes ..................................................................................................... 23118.1. Rles de la base de donnes ........................................................................................................ 23118.2. Attributs des rles ..................................................................................................................... 23118.3. Droits ..................................................................................................................................... 23218.4. Appartenance d'un rle .............................................................................................................. 23318.5. Fonctions et dclencheurs (triggers) ............................................................................................. 234

19. Administration des bases de donnes .................................................................................................... 23519.1. Aperu ................................................................................................................................... 23519.2. Cration d'une base de donnes ................................................................................................... 23519.3. Bases de donnes modles .......................................................................................................... 23619.4. Configuration d'une base de donnes ............................................................................................ 23719.5. Dtruire une base de donnes ...................................................................................................... 23719.6. Tablespaces ............................................................................................................................. 237

20. Authentification du client ................................................................................................................... 23920.1. Le fichier pg_hba.conf ......................................................................................................... 23920.2. Mthodes d'authentification ........................................................................................................ 24320.3. Problmes d'authentification ....................................................................................................... 245

21. Localisation ..................................................................................................................................... 24721.1. Support de locale ...................................................................................................................... 24721.2. Support des jeux de caractres ..................................................................................................... 248

22. Planifier les tches de maintenance ....................................................................................................... 25422.1. Nettoyages rguliers .................................................................................................................. 25422.2. R-indexation rgulire .............................................................................................................. 25822.3. Maintenance du fichier de traces .................................................................................................. 258

23. Sauvegardes et restaurations ................................................................................................................ 26023.1. Sauvegarde SQL ...................................................................................................................... 26023.2. Sauvegarde de niveau systme de fichiers ...................................................................................... 26223.3. Sauvegardes chaud et rcupration un instant (PITR) .................................................................. 26223.4. Migration entre les diffrentes versions ......................................................................................... 268

24. Surveiller l'activit de la base de donnes ............................................................................................... 27024.1. Outils Unix standard ................................................................................................................. 27024.2. Le rcuprateur de statistiques ..................................................................................................... 270

Documentation PostgreSQL 8.1.22

v

24.3. Visualiser les verrous ................................................................................................................ 27425. Surveiller l'utilisation du disque ........................................................................................................... 275

25.1. Dterminer l'utilisation du disque ................................................................................................. 27525.2. Problme de disque plein ........................................................................................................... 276

26. Fiabilit et journaux de transaction ....................................................................................................... 27726.1. Fiabilit .................................................................................................................................. 27726.2. Write-Ahead Logging (WAL) ..................................................................................................... 27726.3. Configuration de journaux de transaction ...................................................................................... 27826.4. Vue interne des WAL ................................................................................................................ 279

27. Tests de rgression ............................................................................................................................ 28027.1. Lancer les tests ......................................................................................................................... 28027.2. valuation des tests ................................................................................................................... 28127.3. Fichiers de comparaison de variants ............................................................................................. 282

IV. Interfaces client ...................................................................................................................................... 28428. libpq - Bibliothque C ........................................................................................................................ 285

28.1. Fonctions de contrle de connexion la base de donnes .................................................................. 28528.2. Fonctions de statut de connexion ................................................................................................. 28928.3. Fonctions de commandes d'excution ........................................................................................... 29228.4. Traitement des commandes asynchrones ....................................................................................... 30128.5. Annuler des requtes en cours d'excution ..................................................................................... 30428.6. Interface chemin rapide ........................................................................................................... 30428.7. Notification asynchrone ............................................................................................................. 30528.8. Fonctions associes avec la commande COPY ............................................................................... 30628.9. Fonctions de contrle ................................................................................................................ 30928.10. Traitement des messages .......................................................................................................... 31028.11. Variables d'environnement ........................................................................................................ 31128.12. Fichier de mots de passe ........................................................................................................... 31228.13. Fichier des connexions de service ............................................................................................... 31228.14. Support de SSL ...................................................................................................................... 31228.15. Comportement des programmes threads ..................................................................................... 31328.16. Construire des applications avec libpq ......................................................................................... 31328.17. Exemples de programmes ......................................................................................................... 314

29. Objets larges .................................................................................................................................... 32229.1. Historique ............................................................................................................................... 32229.2. Fonctionnalits d'implmentation ................................................................................................. 32229.3. Interfaces client ........................................................................................................................ 32229.4. Fonctions du ct serveur ........................................................................................................... 32429.5. Programme d'exemple ............................................................................................................... 324

30. ECPG - SQL embarqu dans du C ........................................................................................................ 32930.1. Concept .................................................................................................................................. 32930.2. Se connecter au serveur de bases de donnes .................................................................................. 32930.3. Fermer une connexion ............................................................................................................... 33030.4. Excuter des commandes SQL .................................................................................................... 33030.5. Choisir une connexion ............................................................................................................... 33130.6. Utiliser des variables htes ......................................................................................................... 33130.7. SQL dynamique ....................................................................................................................... 33330.8. Utiliser les zones des descripteurs SQL ......................................................................................... 33430.9. Gestion des erreurs ................................................................................................................... 33530.10. Inclure des fichiers .................................................................................................................. 33930.11. Traiter les programmes comportant du SQL embarqu ................................................................... 33930.12. Fonctions de la bibliothque ...................................................................................................... 34030.13. Internes ................................................................................................................................. 340

31. Schma d'informations ....................................................................................................................... 34231.1. Le schma ............................................................................................................................... 34231.2. Types de donnes ..................................................................................................................... 34231.3. information_schema_catalog_name ............................................................................... 34231.4. applicable_roles ............................................................................................................. 34231.5. check_constraints ........................................................................................................... 34331.6. column_domain_usage ....................................................................................................... 34331.7. column_privileges ........................................................................................................... 34331.8. column_udt_usage ............................................................................................................. 34431.9. columns ............................................................................................................................... 34431.10. constraint_column_usage .............................................................................................. 346

Documentation PostgreSQL 8.1.22

vi

31.11. constraint_table_usage ................................................................................................ 34731.12. data_type_privileges .................................................................................................... 34731.13. domain_constraints ........................................................................................................ 34831.14. domain_udt_usage ............................................................................................................ 34831.15. domains .............................................................................................................................. 34931.16. element_types .................................................................................................................. 35031.17. enabled_roles .................................................................................................................. 35231.18. key_column_usage ............................................................................................................ 35231.19. parameters ........................................................................................................................ 35231.20. referential_constraints .............................................................................................. 35431.21. role_column_grants ........................................................................................................ 35431.22. role_routine_grants ...................................................................................................... 35531.23. role_table_grants .......................................................................................................... 35531.24. role_usage_grants .......................................................................................................... 35631.25. routine_privileges ........................................................................................................ 35631.26. routines ............................................................................................................................ 35731.27. schemata ............................................................................................................................ 35931.28. sql_features .................................................................................................................... 35931.29. sql_implementation_info .............................................................................................. 36031.30. sql_languages .................................................................................................................. 36031.31. sql_packages .................................................................................................................... 36131.32. sql_sizing ........................................................................................................................ 36131.33. sql_sizing_profiles ...................................................................................................... 36231.34. table_constraints .......................................................................................................... 36231.35. table_privileges ............................................................................................................ 36231.36. tables ................................................................................................................................ 36331.37. triggers ............................................................................................................................ 36331.38. usage_privileges ............................................................................................................ 36431.39. view_column_usage .......................................................................................................... 36531.40. view_table_usage ............................................................................................................ 36531.41. views .................................................................................................................................. 365

V. Programmation serveur ............................................................................................................................. 36732. Extension de SQL ............................................................................................................................. 368

32.1. Comment fonctionne l'extensibilit .............................................................................................. 36832.2. Systme de typage de PostgreSQL ............................................................................................ 36832.3. Fonctions dfinies par l'utilisateur ................................................................................................ 36932.4. Fonctions en langage de requtes (SQL) ........................................................................................ 36932.5. Surcharge des fonctions ............................................................................................................. 37632.6. Catgories de volatibilit des fonctions ......................................................................................... 37632.7. Fonctions en langage de procdures ............................................................................................. 37732.8. Fonctions internes ..................................................................................................................... 37732.9. Fonctions en langage C .............................................................................................................. 37832.10. Agrgats utilisateur ................................................................................................................. 39532.11. Types utilisateur ..................................................................................................................... 39732.12. Oprateurs dfinis par l'utilisateur .............................................................................................. 39932.13. Informations sur l'optimisation d'un oprateur .............................................................................. 40032.14. Interfacer des extensions d'index ................................................................................................ 403

33. Dclencheurs (triggers) ...................................................................................................................... 41033.1. Aperu du comportement des dclencheurs .................................................................................... 41033.2. Visibilit des modifications des donnes ....................................................................................... 41133.3. crire des fonctions dclencheurs en C ......................................................................................... 41133.4. Un exemple complet ................................................................................................................. 413

34. Systme de rgles .............................................................................................................................. 41634.1. Arbre de requtes ..................................................................................................................... 41634.2. Vues et systme de rgles ........................................................................................................... 41734.3. Rgles sur insert, update et delete .............................................................................................. 42234.4. Rgles et droits ........................................................................................................................ 43034.5. Rgles et statut de commande ..................................................................................................... 43134.6. Rgles contre dclencheurs ......................................................................................................... 431

35. Langages de procdures ..................................................................................................................... 43435.1. Installation des langages de procdures ......................................................................................... 434

36. PL/pgSQL - Langage de procdures SQL .............................................................................................. 43636.1. Aperu ................................................................................................................................... 436

Documentation PostgreSQL 8.1.22

vii

36.2. Astuces pour dvelopper en PL/pgSQL ......................................................................................... 43736.3. Structure de PL/pgSQL .............................................................................................................. 43936.4. Dclarations ............................................................................................................................ 44036.5. Expressions ............................................................................................................................. 44336.6. Instructions de base ................................................................................................................... 44436.7. Structures de contrle ................................................................................................................ 44736.8. Curseurs ................................................................................................................................. 45436.9. Erreurs et messages ................................................................................................................... 45736.10. Procdures trigger ................................................................................................................... 45736.11. Portage d'Oracle PL/SQL ...................................................................................................... 462

37. PL/Tcl - Langage de procdures Tcl ..................................................................................................... 47037.1. Aperu ................................................................................................................................... 47037.2. Fonctions et arguments PL/Tcl .................................................................................................... 47037.3. Valeurs des donnes avec PL/Tcl ................................................................................................. 47137.4. Donnes globales avec PL/Tcl ..................................................................................................... 47137.5. Accs la base de donnes depuis PL/Tcl ..................................................................................... 47237.6. Procdures pour dclencheurs en PL/Tcl ....................................................................................... 47337.7. Les modules et la commande unknown ....................................................................................... 47437.8. Noms de procdure Tcl .............................................................................................................. 475

38. PL/Perl - Langage de procdures Perl .................................................................................................... 47638.1. Fonctions et arguments PL/Perl ................................................................................................... 47638.2. Accs la base de donnes depuis PL/Perl .................................................................................... 47838.3. Valeurs des donnes dans PL/Perl ................................................................................................ 48038.4. Valeurs globales dans PL/Perl ..................................................................................................... 48038.5. Niveaux de confiance de PL/Perl ................................................................................................. 48138.6. Dclencheurs PL/Perl ................................................................................................................ 48138.7. Limitations et fonctionnalits absentes .......................................................................................... 482

39. PL/Python - Langage de procdures Python ........................................................................................... 48439.1. Fonctions PL/Python ................................................................................................................. 48439.2. Fonctions de dclencheurs .......................................................................................................... 48439.3. Accs la base de donnes ......................................................................................................... 485

40. Interface de programmation serveur ...................................................................................................... 48640.1. Fonctions d'interface ................................................................................................................. 48640.2. Fonctions de support d'interface .................................................................................................. 50540.3. Gestion de la mmoire ............................................................................................................... 51340.4. Visibilit des modifications de donnes ......................................................................................... 52240.5. Exemples ................................................................................................................................ 522

VI. Rfrence .............................................................................................................................................. 525I. Commandes SQL ................................................................................................................................ 526

ABORT ......................................................................................................................................... 527ALTER AGGREGATE ..................................................................................................................... 528ALTER CONVERSION .................................................................................................................... 529ALTER DATABASE ....................................................................................................................... 530ALTER DOMAIN ........................................................................................................................... 532ALTER FUNCTION ........................................................................................................................ 534ALTER GROUP .............................................................................................................................. 536ALTER INDEX ............................................................................................................................... 537ALTER LANGUAGE ....................................................................................................................... 538ALTER OPERATOR ........................................................................................................................ 539ALTER OPERATOR CLASS ............................................................................................................ 540ALTER ROLE ................................................................................................................................ 541ALTER SCHEMA ........................................................................................................................... 543ALTER SEQUENCE ........................................................................................................................ 544ALTER TABLE .............................................................................................................................. 546ALTER TABLESPACE .................................................................................................................... 551ALTER TRIGGER ........................................................................................................................... 552ALTER TYPE ................................................................................................................................. 553ALTER USER ................................................................................................................................. 554ANALYZE ..................................................................................................................................... 555BEGIN .......................................................................................................................................... 557CHECKPOINT ................................................................................................................................ 559CLOSE .......................................................................................................................................... 560CLUSTER ...................................................................................................................................... 561

Documentation PostgreSQL 8.1.22

viii

COMMENT .................................................................................................................................... 563COMMIT ....................................................................................................................................... 565COMMIT PREPARED ..................................................................................................................... 566COPY ............................................................................................................................................ 567CREATE AGGREGATE ................................................................................................................... 573CREATE CAST .............................................................................................................................. 575CREATE CONSTRAINT TRIGGER .................................................................................................. 578CREATE CONVERSION ................................................................................................................. 579CREATE DATABASE ..................................................................................................................... 581CREATE DOMAIN ......................................................................................................................... 583CREATE FUNCTION ...................................................................................................................... 585CREATE GROUP ............................................................................................................................ 589CREATE INDEX ............................................................................................................................. 590CREATE LANGUAGE .................................................................................................................... 592CREATE OPERATOR ..................................................................................................................... 594CREATE OPERATOR CLASS .......................................................................................................... 597CREATE ROLE .............................................................................................................................. 599CREATE RULE .............................................................................................................................. 602CREATE SCHEMA ......................................................................................................................... 604CREATE SEQUENCE ..................................................................................................................... 606CREATE TABLE ............................................................................................................................ 609CREATE TABLE AS ....................................................................................................................... 616CREATE TABLESPACE .................................................................................................................. 618CREATE TRIGGER ........................................................................................................................ 619CREATE TYPE ............................................................................................................................... 621CREATE USER .............................................................................................................................. 625CREATE VIEW .............................................................................................................................. 626DEALLOCATE ............................................................................................................................... 628DECLARE ..................................................................................................................................... 629DELETE ........................................................................................................................................ 631DROP AGGREGATE ....................................................................................................................... 633DROP CAST .................................................................................................................................. 634DROP CONVERSION ..................................................................................................................... 635DROP DATABASE ......................................................................................................................... 636DROP DOMAIN ............................................................................................................................. 637DROP FUNCTION .......................................................................................................................... 638DROP GROUP ................................................................................................................................ 639DROP INDEX ................................................................................................................................. 640DROP LANGUAGE ........................................................................................................................ 641DROP OPERATOR ......................................................................................................................... 642DROP OPERATOR CLASS .............................................................................................................. 643DROP ROLE .................................................................................................................................. 644DROP RULE .................................................................................................................................. 645DROP SCHEMA ............................................................................................................................. 646DROP SEQUENCE .......................................................................................................................... 647DROP TABLE ................................................................................................................................ 648DROP TABLESPACE ...................................................................................................................... 649DROP TRIGGER ............................................................................................................................. 650DROP TYPE ................................................................................................................................... 651DROP USER .................................................................................................................................. 652DROP VIEW .................................................................................................................................. 653END .............................................................................................................................................. 654EXECUTE ..................................................................................................................................... 655EXPLAIN ...................................................................................................................................... 656FETCH .......................................................................................................................................... 659GRANT ......................................................................................................................................... 662INSERT ......................................................................................................................................... 666LISTEN ......................................................................................................................................... 668LOAD ........................................................................................................................................... 669LOCK ............................................................................................................................................ 670MOVE ........................................................................................................................................... 672NOTIFY ........................................................................................................................................ 673PREPARE ...................................................................................................................................... 675

Documentation PostgreSQL 8.1.22

ix

PREPARE TRANSACTION .............................................................................................................. 677REINDEX ...................................................................................................................................... 679RELEASE SAVEPOINT ................................................................................................................... 681RESET .......................................................................................................................................... 682REVOKE ....................................................................................................................................... 683ROLLBACK ................................................................................................................................... 686ROLLBACK PREPARED ................................................................................................................. 687ROLLBACK TO SAVEPOINT .......................................................................................................... 688SAVEPOINT .................................................................................................................................. 690SELECT ........................................................................................................................................ 691SELECT INTO ................................................................................................................................ 700SET ............................................................................................................................................... 701SET CONSTRAINTS ....................................................................................................................... 703SET ROLE ..................................................................................................................................... 704SET SESSION AUTHORIZATION .................................................................................................... 705SET TRANSACTION ...................................................................................................................... 706SHOW ........................................................................................................................................... 708START TRANSACTION .................................................................................................................. 710TRUNCATE ................................................................................................................................... 711UNLISTEN .................................................................................................................................... 712UPDATE ........................................................................................................................................ 713VACUUM ...................................................................................................................................... 715

II. Applications client de PostgreSQL ........................................................................................................ 717clusterdb ........................................................................................................................................ 718createdb ......................................................................................................................................... 720createlang ....................................................................................................................................... 722createuser ....................................................................................................................................... 724dropdb ........................................................................................................................................... 727droplang ......................................................................................................................................... 729dropuser ......................................................................................................................................... 731ecpg .............................................................................................................................................. 733pg_config ....................................................................................................................................... 735pg_dump ........................................................................................................................................ 737pg_dumpall ..................................................................................................................................... 741pg_restore ....................................................................................................................................... 744psql ............................................................................................................................................... 748reindexdb ....................................................................................................................................... 765vacuumdb ....................................................................................................................................... 767

III. Applications relatives au serveur PostgreSQL ......................................................................................... 769initdb ............................................................................................................................................. 770ipcclean .......................................................................................................................................... 772pg_controldata ................................................................................................................................. 773pg_ctl ............................................................................................................................................ 774pg_resetxlog ................................................................................................................................... 777postgres .......................................................................................................................................... 779postmaster ...................................................................................................................................... 782

VII. Internes ................................................................................................................................................ 78641. Prsentation des mcanismes internes de PostgreSQL .............................................................................. 787

41.1. Chemin d'une requte ................................................................................................................ 78741.2. tablissement des connexions ..................................................................................................... 78741.3. tape d'analyse ........................................................................................................................ 78841.4. Systme de rgles de PostgreSQL ............................................................................................. 78841.5. Planificateur/Optimiseur ............................................................................................................ 78941.6. Excuteur ................................................................................................................................ 790

42. Catalogues systme ........................................................................................................................... 79142.1. Aperu ................................................................................................................................... 79142.2. pg_aggregate ........................................................................................................................... 79242.3. pg_am .................................................................................................................................... 79242.4. pg_amop ................................................................................................................................. 79342.5. pg_amproc .............................................................................................................................. 79342.6. pg_attrdef ............................................................................................................................... 79442.7. pg_attribute ............................................................................................................................. 79442.8. pg_authid ................................................................................................................................ 795

Documentation PostgreSQL 8.1.22

x

42.9. pg_auth_members ..................................................................................................................... 79642.10. pg_autovacuum ...................................................................................................................... 79642.11. pg_cast ................................................................................................................................. 79742.12. pg_class ................................................................................................................................ 79842.13. pg_constraint ......................................................................................................................... 79942.14. pg_conversion ........................................................................................................................ 80042.15. pg_database ........................................................................................................................... 80042.16. pg_depend ............................................................................................................................. 80142.17. pg_description ........................................................................................................................ 80242.18. pg_index ............................................................................................................................... 80242.19. pg_inherits ..................................................................................................................................42.20. pg_language .......................................................................................................................... 80342.21. pg_largeobject ........................................................................................................................ 80442.22. pg_listener ............................................................................................................................. 80442.23. pg_namespace ........................................................................................................................ 80542.24. pg_opclass ............................................................................................................................. 80542.25. pg_operator ........................................................................................................................... 80642.26. pg_pltemplate ........................................................................................................................ 80642.27. pg_proc ................................................................................................................................. 80742.28. pg_rewrite ............................................................................................................................. 80842.29. pg_shdepend .......................................................................................................................... 80942.30. pg_statistic ............................................................................................................................ 81042.31. pg_tablespace ......................................................................................................................... 81142.32. pg_trigger .............................................................................................................................. 81142.33. pg_type ................................................................................................................................. 81242.34. Vues systme ......................................................................................................................... 81442.35. pg_group ............................................................................................................................... 81542.36. pg_indexes ............................................................................................................................ 81542.37. pg_locks ............................................................................................................................... 81642.38. pg_prepared_xacts .................................................................................................................. 81742.39. pg_roles ................................................................................................................................ 81742.40. pg_rules ................................................................................................................................ 81842.41. pg_settings ............................................................................................................................ 81842.42. pg_shadow ............................................................................................................................ 81942.43. pg_stats ................................................................................................................................. 81942.44. pg_tables ............................................................................................................................... 82042.45. pg_user ................................................................................................................................. 82142.46. pg_views ............................................................................................................................... 821

43. Protocole client/serveur ...................................................................................................................... 82243.1. Aperu ................................................................................................................................... 82243.2. Flux de messages ...................................................................................................................... 82343.3. Types de donnes des message .................................................................................................... 83043.4. Formats de message .................................................................................................................. 83143.5. Champs des messages d'erreur et d'avertissement ............................................................................ 84043.6. Rsum des modifications depuis le protocole 2.0 ........................................................................... 840

44. Conventions de codage pour PostgreSQL .............................................................................................. 84244.1. Formatage ............................................................................................................................... 84244.2. Reporter les erreurs dans le serveur .............................................................................................. 84244.3. Guide de style des messages d'erreurs ........................................................................................... 844

45. Support natif des langues .................................................................................................................... 84845.1. Pour le traducteur ..................................................................................................................... 84845.2. Pour le dveloppeur .................................................................................................................. 850

46. crire un gestionnaire de langage procdural .......................................................................................... 85247. Optimiseur gntique de requtes (Genetic Query Optimizer) .................................................................... 854

47.1. Grer les requtes, un problme d'optimisation complexe ................................................................. 85447.2. Algorithmes gntiques ............................................................................................................. 85447.3. Optimisation gntique des requtes (GEQO) dans PostgreSQL ........................................................ 85547.4. Lectures supplmentaires ........................................................................................................... 856

48. Dfinition de l'interface des mthodes d'accs aux index ........................................................................... 85748.1. Entres du catalogue pour les index .............................................................................................. 85748.2. Fonctions de la mthode d'accs aux index .................................................................................... 85848.3. Parcours d'index ....................................................................................................................... 86048.4. Considrations pour le verrouillage d'index .................................................................................... 860

Documentation PostgreSQL 8.1.22

xi

48.5. Vrification de l'unicit de l'index ................................................................................................ 86148.6. Fonctions d'estimation des cots d'index ....................................................................................... 862

49. Index GiST ...................................................................................................................................... 86449.1. Introduction ............................................................................................................................. 86449.2. Extensibilit ............................................................................................................................ 86449.3. Implmentation ........................................................................................................................ 86449.4. Exemples ................................................................................................................................ 86549.5. Rcupration aprs un arrt brutal ................................................................................................ 865

50. Stockage physique de la base de donnes ............................................................................................... 86650.1. Emplacement des fichiers de la base de donnes ............................................................................. 86650.2. TOAST .................................................................................................................................. 86750.3. Emplacement des pages de la base de donnes ............................................................................... 868

51. Interface du moteur BKI ..................................................................................................................... 87151.1. Format des fichiers BKI ............................................................................................................. 87151.2. Commandes BKI ...................................................................................................................... 87151.3. Structure du fichier bootstrap BKI .......................................................................................... 87251.4. Exemple ................................................................................................................................. 872

52. Comment le planificateur utilise les statistiques ...................................................................................... 87352.1. Exemples d'estimation des lignes ................................................................................................. 873

VIII. Annexes .............................................................................................................................................. 877A. Codes d'erreurs de PostgreSQL .......................................................................................................... 878B. Support de date/heure .......................................................................................................................... 884

B.1. Interprtation des Entres Date/Heure ............................................................................................ 884B.2. Mots cls Date/Heure ................................................................................................................. 885B.3. Histoire d'units ........................................................................................................................ 898

C. Mots-cl SQL .................................................................................................................................... 900D. Conformit SQL ................................................................................................................................ 917

D.1. Fonctionnalits supportes .......................................................................................................... 917D.2. Fonctionnalits non supportes ..................................................................................................... 924

E. Notes de version ................................................................................................................................. 928E.1. Release 8.1.22 ........................................................................................................................... 928E.2. Release 8.1.21 ........................................................................................................................... 929E.3. Release 8.1.20 ........................................................................................................................... 930E.4. Release 8.1.19 ........................................................................................................................... 931E.5. Release 8.1.18 ........................................................................................................................... 932E.6. Version 8.1.17 ........................................................................................................................... 933E.7. Version 8.1.16 ........................................................................................................................... 934E.8. Version 8.1.15 ........................................................................................................................... 934E.9. Version 8.1.14 ........................................................................................................................... 935E.10. Version 8.1.13 ......................................................................................................................... 936E.11. Version 8.1.12 ......................................................................................................................... 937E.12. Version 8.1.11 ......................................................................................................................... 938E.13. Version 8.1.10 ......................................................................................................................... 939E.14. Version 8.1.9 ........................................................................................................................... 940E.15. Version 8.1.8 ........................................................................................................................... 941E.16. Version 8.1.7 ........................................................................................................................... 941E.17. Version 8.1.6 .......................................................