documentation postgresql 8.1 · 14.6. initialisation post-installation ..... 187
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 .......................................................