Documentation PostgreSQL 9.0.18

1782
Documentation PostgreSQL 9.0.18 The PostgreSQL Global Development Group

Transcript of Documentation PostgreSQL 9.0.18

  • Documentation PostgreSQL 9.0.18

    The PostgreSQL Global Development Group

  • Documentation PostgreSQL 9.0.18The PostgreSQL Global Development GroupCopyright 1996-2014 The PostgreSQL Global Development Group

    Legal Notice

    PostgreSQL is Copyright (c) 1996-2014 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 ......................................................................................................................................................... xx1. Dfinition de PostgreSQL ................................................................................................................... xx2. Bref historique de PostgreSQL ............................................................................................................. xx3. Conventions ...................................................................................................................................... xxii4. Pour plus d'informations ....................................................................................................................... xxii5. Lignes de conduite pour les rapports de bogues ........................................................................................ xxii

    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 .................................................................................................................................... 52.1. Introduction ................................................................................................................................. 52.2. Concepts ..................................................................................................................................... 52.3. Crer une nouvelle table ................................................................................................................. 52.4. Remplir une table avec des lignes ..................................................................................................... 62.5. Interroger une table ........................................................................................................................ 62.6. Jointures entre les tables ................................................................................................................. 82.7. Fonctions d'agrgat ........................................................................................................................ 92.8. Mises jour ................................................................................................................................ 102.9. Suppressions ............................................................................................................................... 11

    3. Fonctionnalits avances ........................................................................................................................ 123.1. Introduction ................................................................................................................................ 123.2. Vues .......................................................................................................................................... 123.3. Cls trangres ............................................................................................................................ 123.4. Transactions ................................................................................................................................ 133.5. Fonctions de fentrage .................................................................................................................. 143.6. Hritage ........................................................................................................................................3.7. Conclusion .................................................................................................................................. 18

    II. Langage SQL ............................................................................................................................................ 194. Syntaxe SQL ....................................................................................................................................... 20

    4.1. Structure lexicale ......................................................................................................................... 204.2. Expressions de valeurs .................................................................................................................. 274.3. Fonctions appelantes ..................................................................................................................... 35

    5. Dfinition des donnes ........................................................................................................................... 375.1. Notions fondamentales sur les tables ................................................................................................ 375.2. Valeurs par dfaut ........................................................................................................................ 385.3. Contraintes ................................................................................................................................. 385.4. Colonnes systme ......................................................................................................................... 445.5. Modification des tables .................................................................................................................. 455.6. Droits ......................................................................................................................................... 475.7. Schmas ..................................................................................................................................... 475.8. L'hritage ......................................................................................................................................5.9. Partitionnement ............................................................................................................................ 535.10. Autres objets de la base de donnes ................................................................................................ 595.11. Gestion des dpendances .............................................................................................................. 59

    6. Manipulation de donnes ........................................................................................................................ 616.1. Insrer des donnes ....................................................................................................................... 616.2. Actualiser les donnes ................................................................................................................... 626.3. Supprimer des donnes .................................................................................................................. 62

    7. Requtes ............................................................................................................................................. 647.1. Aperu ....................................................................................................................................... 647.2. Expressions de table ..................................................................................................................... 647.3. Listes de slection ........................................................................................................................ 727.4. Combiner des requtes .................................................................................................................. 737.5. Tri des lignes ............................................................................................................................... 737.6. LIMIT et OFFSET ....................................................................................................................... 747.7. Listes VALUES ............................................................................................................................ 757.8. Requtes WITH (Common Table Expressions) ................................................................................... 75

    8. Types de donnes ................................................................................................................................. 798.1. Types numriques ........................................................................................................................ 80

    iii

  • 8.2. Types montaires ......................................................................................................................... 838.3. Types caractre ............................................................................................................................ 838.4. Types de donnes binaires .............................................................................................................. 858.5. Types date/heure .......................................................................................................................... 878.6. Type boolen ............................................................................................................................... 958.7. Types numration ....................................................................................................................... 968.8. Types gomtriques ...................................................................................................................... 978.9. Types adresses rseau ................................................................................................................... 998.10. Type chane de bits ................................................................................................................... 1008.11. Types de recherche plein texte .................................................................................................... 1018.12. Type UUID ............................................................................................................................. 1038.13. Type XML .............................................................................................................................. 1038.14. Tableaux ................................................................................................................................. 1058.15. Types composites ..................................................................................................................... 1118.16. Types identifiant d'objet ............................................................................................................. 1148.17. Pseudo-Types .......................................................................................................................... 115

    9. Fonctions et oprateurs ........................................................................................................................ 1179.1. Oprateurs logiques .................................................................................................................... 1179.2. Oprateurs de comparaison .......................................................................................................... 1179.3. Fonctions et oprateurs mathmatiques ........................................................................................... 1199.4. Fonctions et oprateurs de chanes ................................................................................................. 1219.5. Fonctions et oprateurs de chanes binaires ...................................................................................... 1299.6. Fonctions et oprateurs sur les chanes de bits .................................................................................. 1319.7. Correspondance de motif ............................................................................................................. 1319.8. Fonctions de formatage des types de donnes .................................................................................. 1439.9. Fonctions et oprateurs sur date/heure ............................................................................................ 1489.10. Fonctions de support enum ......................................................................................................... 1579.11. Fonctions et oprateurs gomtriques ........................................................................................... 1589.12. Fonctions et oprateurs sur les adresses rseau ............................................................................... 1619.13. Fonctions et oprateurs de la recherche plein texte .......................................................................... 1639.14. Fonctions XML ........................................................................................................................ 1669.15. Fonctions de manipulation de squences ....................................................................................... 1739.16. Expressions conditionnelles ........................................................................................................ 1759.17. Fonctions et oprateurs de tableaux .............................................................................................. 1779.18. Fonctions d'agrgat ................................................................................................................... 1789.19. Fonctions Window .................................................................................................................... 1829.20. Expressions de sous-requtes ...................................................................................................... 1839.21. Comparaisons de lignes et de tableaux .......................................................................................... 1869.22. Fonctions retournant des ensembles ............................................................................................. 1889.23. Fonctions d'informations systme ................................................................................................ 1909.24. Fonctions d'administration systme .............................................................................................. 1979.25. Fonctions trigger ...................................................................................................................... 204

    10. Conversion de types .......................................................................................................................... 20610.1. Aperu ................................................................................................................................... 20610.2. Oprateurs ............................................................................................................................... 20710.3. Fonctions ................................................................................................................................ 20910.4. Stockage de valeurs ................................................................................................................... 21110.5. Constructions UNION, CASE et constructions relatives .................................................................... 212

    11. Index .............................................................................................................................................. 21411.1. Introduction ............................................................................................................................. 21411.2. Types d'index ........................................................................................................................... 21411.3. Index multicolonnes .................................................................................................................. 21611.4. Index et ORDER BY .................................................................................................................. 21611.5. Combiner des index multiples ..................................................................................................... 21711.6. Index d'unicit ......................................................................................................................... 21711.7. Index d'expressions ................................................................................................................... 21811.8. Index partiels ........................................................................................................................... 21811.9. Classes et familles d'oprateurs ................................................................................................... 22011.10. Examiner l'utilisation des index ................................................................................................. 221

    12. Recherche plein texte ......................................................................................................................... 22312.1. Introduction ............................................................................................................................. 22312.2. Tables et index ......................................................................................................................... 22512.3. Contrler la recherche plein texte ................................................................................................. 227

    Documentation PostgreSQL 9.0.18

    iv

  • 12.4. Fonctionnalits supplmentaires .................................................................................................. 23212.5. Analyseurs .............................................................................................................................. 23612.6. Dictionnaires ........................................................................................................................... 23812.7. Exemple de configuration ........................................................................................................... 24412.8. Tester et dboguer la recherche plein texte ..................................................................................... 24512.9. Types d'index GiST et GIN ........................................................................................................ 24912.10. Support de psql ....................................................................................................................... 25012.11. Limites ................................................................................................................................. 25212.12. Migration partir d'une recherche plein texte antrieure 8.3 .......................................................... 252

    13. Contrle d'accs simultan .................................................................................................................. 25413.1. Introduction ............................................................................................................................. 25413.2. Isolation des transactions ........................................................................................................... 25413.3. Verrouillage explicite ................................................................................................................ 25713.4. Vrification de cohrence des donnes au niveau de l'application ....................................................... 26013.5. Verrouillage et index ................................................................................................................. 261

    14. Conseils sur les performances .............................................................................................................. 26214.1. Utiliser EXPLAIN ................................................................................................................... 26214.2. Statistiques utilises par le planificateur ........................................................................................ 26614.3. Contrler le planificateur avec des clauses JOIN explicites .............................................................. 26714.4. Remplir une base de donnes ...................................................................................................... 26814.5. Configuration avec une perte accepte .......................................................................................... 271

    III. Administration du serveur ......................................................................................................................... 27215. Procdure d'installation de PostgreSQL du code source ......................................................................... 273

    15.1. Version courte ......................................................................................................................... 27315.2. Prrequis ................................................................................................................................. 27315.3. Obtenir les sources .................................................................................................................... 27415.4. Mise jour .............................................................................................................................. 27515.5. Procdure d'installation .............................................................................................................. 27615.6. Initialisation post-installation ...................................................................................................... 28315.7. Dmarrer ................................................................................................................................ 28415.8. Et maintenant ? ........................................................................................................................ 28515.9. Plateformes supportes .............................................................................................................. 28515.10. Notes spcifiques des plateformes ............................................................................................ 286

    16. Installation partir du code source sur Windows .................................................................................. 29416.1. Construire avec Visual C++ ou le Platform SDK ...................................................................... 29416.2. Construire libpq avec Visual C++ ou Borland C++ ................................................................... 297

    17. Configuration du serveur et mise en place .............................................................................................. 29917.1. Compte utilisateur PostgreSQL ................................................................................................ 29917.2. Crer un groupe de base de donnes ............................................................................................. 29917.3. Lancer le serveur de bases de donnes .......................................................................................... 30017.4. Grer les ressources du noyau ..................................................................................................... 30217.5. Arrter le serveur ...................................................................................................................... 30817.6. Empcher l'usurpation de serveur ................................................................................................. 30917.7. Options de chiffrement .............................................................................................................. 30917.8. Connexions tcp/ip scurises avec ssl ........................................................................................... 31017.9. Connexions tcp/ip scurises avec des tunnels ssh tunnels ................................................................ 312

    18. Configuration du serveur .................................................................................................................... 31318.1. Paramtres de configuration ........................................................................................................ 31318.2. Emplacement des fichiers ........................................................................................................... 31418.3. Connexions et authentification .................................................................................................... 31518.4. Consommation des ressources ..................................................................................................... 31818.5. Write Ahead Log ...................................................................................................................... 32118.6. Planification des requtes ........................................................................................................... 32618.7. Remonter et tracer les erreurs ...................................................................................................... 33018.8. Statistiques d'excution .............................................................................................................. 33618.9. Nettoyage (vacuum) automatique ................................................................................................ 33718.10. Valeurs par dfaut des connexions client ..................................................................................... 33918.11. Gestion des verrous ................................................................................................................. 34318.12. Compatibilit de version et de plateforme .................................................................................... 34318.13. Options prconfigures ............................................................................................................ 34518.14. Options personnalises ............................................................................................................. 34618.15. Options pour les dveloppeurs ................................................................................................... 34618.16. Options courtes ...................................................................................................................... 348

    Documentation PostgreSQL 9.0.18

    v

  • 19. Authentification du client ................................................................................................................... 35019.1. Le fichier pg_hba.conf ......................................................................................................... 35019.2. Correspondances d'utilisateurs .................................................................................................... 35419.3. Mthodes d'authentification ........................................................................................................ 35519.4. Problmes d'authentification ....................................................................................................... 360

    20. Rles et droits de la base de donnes ..................................................................................................... 36220.1. Rles de la base de donnes ........................................................................................................ 36220.2. Attributs des rles ..................................................................................................................... 36220.3. Droits ..................................................................................................................................... 36320.4. Appartenance d'un rle .............................................................................................................. 36420.5. Scurit des fonctions et dclencheurs (triggers) ............................................................................. 365

    21. Administration des bases de donnes .................................................................................................... 36621.1. Aperu ................................................................................................................................... 36621.2. Cration d'une base de donnes ................................................................................................... 36621.3. Bases de donnes modles .......................................................................................................... 36721.4. Configuration d'une base de donnes ............................................................................................ 36821.5. Dtruire une base de donnes ...................................................................................................... 36821.6. Tablespaces ............................................................................................................................. 368

    22. Localisation ..................................................................................................................................... 37022.1. Support des locales ................................................................................................................... 37022.2. Support des jeux de caractres ..................................................................................................... 372

    23. Planifier les tches de maintenance ....................................................................................................... 37723.1. Nettoyages rguliers .................................................................................................................. 37723.2. R-indexation rgulire .............................................................................................................. 38223.3. Maintenance du fichier de traces .................................................................................................. 382

    24. Sauvegardes et restaurations ................................................................................................................ 38424.1. Sauvegarde SQL ...................................................................................................................... 38424.2. Sauvegarde de niveau systme de fichiers ...................................................................................... 38624.3. Archivage continu et rcupration d'un instantan (PITR) ................................................................. 38724.4. Migration entre versions ............................................................................................................ 394

    25. Haute disponibilit, rpartition de charge et rplication ............................................................................. 39725.1. Comparaison de diffrentes solutions ........................................................................................... 39725.2. Serveurs de Standby par transfert de journaux ................................................................................ 40025.3. Failover (bascule) ..................................................................................................................... 40325.4. Mthode alternative pour le log shipping ....................................................................................... 40325.5. Hot Standby ............................................................................................................................ 405

    26. Configuration de la rcupration .......................................................................................................... 41126.1. Paramtres de rcupration de l'archive ......................................................................................... 41126.2. Paramtres de cible de rcupration .............................................................................................. 41126.3. Paramtres de serveur de Standby ................................................................................................ 412

    27. Surveiller l'activit de la base de donnes ............................................................................................... 41327.1. Outils Unix standard ................................................................................................................. 41327.2. Le rcuprateur de statistiques ..................................................................................................... 41327.3. Visualiser les verrous ................................................................................................................ 41927.4. Traces dynamiques ................................................................................................................... 420

    28. Surveiller l'utilisation des disques ......................................................................................................... 42828.1. Dterminer l'utilisation des disques .............................................................................................. 42828.2. Panne pour disque satur ............................................................................................................ 429

    29. Fiabilit et journaux de transaction ....................................................................................................... 43029.1. Fiabilit .................................................................................................................................. 43029.2. Write-Ahead Logging (WAL) ..................................................................................................... 43129.3. Validation asynchrone (Asynchronous Commit) ............................................................................. 43129.4. Configuration des journaux de transaction ..................................................................................... 43229.5. Vue interne des journaux de transaction ........................................................................................ 434

    30. Tests de rgression ............................................................................................................................ 43630.1. Lancer les tests ......................................................................................................................... 43630.2. valuation des tests ................................................................................................................... 43730.3. Fichiers de comparaison de variants ............................................................................................. 43930.4. Examen de la couverture du test .................................................................................................. 439

    IV. Interfaces client ...................................................................................................................................... 44131. libpq - Bibliothque C ........................................................................................................................ 442

    31.1. Fonctions de contrle de connexion la base de donnes .................................................................. 44231.2. Fonctions de statut de connexion ................................................................................................. 447

    Documentation PostgreSQL 9.0.18

    vi

  • 31.3. Fonctions de commandes d'excution ........................................................................................... 45031.4. Traitement des commandes asynchrones ....................................................................................... 46131.5. Annuler des requtes en cours d'excution ..................................................................................... 46431.6. Interface chemin rapide ........................................................................................................... 46431.7. Notification asynchrone ............................................................................................................. 46531.8. Fonctions associes avec la commande COPY ............................................................................... 46631.9. Fonctions de contrle ................................................................................................................ 46931.10. Fonctions diverses ................................................................................................................... 47031.11. Traitement des messages .......................................................................................................... 47231.12. Systme d'vnements ............................................................................................................. 47331.13. Variables d'environnement ........................................................................................................ 47831.14. Fichier de mots de passe ........................................................................................................... 47931.15. Fichier des connexions de service ............................................................................................... 48031.16. Recherches LDAP des paramtres de connexion ........................................................................... 48031.17. Support de SSL ...................................................................................................................... 48131.18. Comportement des programmes threads ..................................................................................... 48431.19. Construire des applications avec libpq ......................................................................................... 48431.20. Exemples de programmes ......................................................................................................... 485

    32. Objets larges .................................................................................................................................... 49332.1. Introduction ............................................................................................................................. 49332.2. Fonctionnalits d'implmentation ................................................................................................. 49332.3. Interfaces client ........................................................................................................................ 49332.4. Fonctions du ct serveur ........................................................................................................... 49532.5. Programme d'exemple ............................................................................................................... 496

    33. ECPG - SQL embarqu dans du C ........................................................................................................ 50133.1. Concept .................................................................................................................................. 50133.2. Se connecter au serveur de bases de donnes .................................................................................. 50133.3. Fermer une connexion ............................................................................................................... 50233.4. Excuter des commandes SQL .................................................................................................... 50233.5. Choisir une connexion ............................................................................................................... 50333.6. Utiliser des variables htes ......................................................................................................... 50333.7. SQL dynamique ....................................................................................................................... 50633.8. Bibliothque pgtypes ................................................................................................................. 50733.9. Utiliser les aires de descripteur .................................................................................................... 51733.10. Mode de compatibilit Informix ............................................................................................. 52033.11. Gestion des erreurs .................................................................................................................. 53233.12. Directives du prprocesseur ...................................................................................................... 53533.13. Traiter les programmes en SQL embarqu ................................................................................... 53733.14. Fonctions de bibliothque ......................................................................................................... 53733.15. Fonctionnement interne ............................................................................................................ 538

    34. Schma d'information ........................................................................................................................ 54034.1. Le schma ............................................................................................................................... 54034.2. Types de donnes ..................................................................................................................... 54034.3. information_schema_catalog_name ............................................................................... 54034.4. administrable_role_authorizations ........................................................................... 54034.5. applicable_roles ............................................................................................................. 54134.6. attributes ......................................................................................................................... 54134.7. check_constraint_routine_usage ................................................................................. 54334.8. check_constraints ........................................................................................................... 54334.9. column_domain_usage ....................................................................................................... 54434.10. column_privileges .......................................................................................................... 54434.11. column_udt_usage ............................................................................................................ 54434.12. columns .............................................................................................................................. 54534.13. constraint_column_usage .............................................................................................. 54734.14. constraint_table_usage ................................................................................................ 54834.15. data_type_privileges .................................................................................................... 54834.16. domain_constraints ........................................................................................................ 54934.17. domain_udt_usage ............................................................................................................ 54934.18. domains .............................................................................................................................. 54934.19. element_types .................................................................................................................. 55134.20. enabled_roles .................................................................................................................. 55334.21. foreign_data_wrapper_options .................................................................................... 55334.22. foreign_data_wrappers .................................................................................................. 553

    Documentation PostgreSQL 9.0.18

    vii

  • 34.23. foreign_server_options ................................................................................................ 55434.24. foreign_servers .............................................................................................................. 55434.25. key_column_usage ............................................................................................................ 55434.26. parameters ........................................................................................................................ 55534.27. referential_constraints .............................................................................................. 55634.28. role_column_grants ........................................................................................................ 55734.29. role_routine_grants ...................................................................................................... 55734.30. role_table_grants .......................................................................................................... 55834.31. role_usage_grants .......................................................................................................... 55834.32. routine_privileges ........................................................................................................ 55934.33. routines ............................................................................................................................ 55934.34. schemata ............................................................................................................................ 56334.35. sequences .......................................................................................................................... 56334.36. sql_features .................................................................................................................... 56434.37. sql_implementation_info .............................................................................................. 56434.38. sql_languages .................................................................................................................. 56534.39. sql_packages .................................................................................................................... 56534.40. sql_parts .......................................................................................................................... 56534.41. sql_sizing ........................................................................................................................ 56634.42. sql_sizing_profiles ...................................................................................................... 56634.43. table_constraints .......................................................................................................... 56634.44. table_privileges ............................................................................................................ 56734.45. tables ................................................................................................................................ 56734.46. triggered_update_columns ............................................................................................ 56834.47. triggers ............................................................................................................................ 56834.48. usage_privileges ............................................................................................................ 56934.49. user_mapping_options .................................................................................................... 57034.50. user_mappings .................................................................................................................. 57034.51. view_column_usage .......................................................................................................... 57134.52. view_routine_usage ........................................................................................................ 57134.53. view_table_usage ............................................................................................................ 57234.54. views .................................................................................................................................. 572

    V. Programmation serveur ............................................................................................................................. 57335. tendre SQL .................................................................................................................................... 574

    35.1. L'extensibilit .......................................................................................................................... 57435.2. Le systme des types de PostgreSQL ......................................................................................... 57435.3. Fonctions utilisateur .................................................................................................................. 57535.4. Fonctions en langage de requtes (SQL) ........................................................................................ 57635.5. Surcharge des fonctions ............................................................................................................. 58535.6. Catgories de volatilit des fonctions ............................................................................................ 58635.7. Fonctions en langage de procdures ............................................................................................. 58735.8. Fonctions internes ..................................................................................................................... 58735.9. Fonctions en langage C .............................................................................................................. 58735.10. Agrgats utilisateur ................................................................................................................. 60735.11. Types utilisateur ..................................................................................................................... 60835.12. Oprateurs dfinis par l'utilisateur .............................................................................................. 61135.13. Informations sur l'optimisation d'un oprateur .............................................................................. 61135.14. Interfacer des extensions d'index ................................................................................................ 61535.15. Utiliser le langage C++ ............................................................................................................ 623

    36. Dclencheurs (triggers) ...................................................................................................................... 62436.1. Aperu du comportement des dclencheurs .................................................................................... 62436.2. Visibilit des modifications des donnes ....................................................................................... 62536.3. crire des fonctions dclencheurs en C ......................................................................................... 62636.4. Un exemple complet de trigger .................................................................................................... 627

    37. Systme de rgles .............................................................................................................................. 63137.1. Arbre de requtes ..................................................................................................................... 63137.2. Vues et systme de rgles ........................................................................................................... 63237.3. Rgles sur insert, update et delete .............................................................................................. 63737.4. Rgles et droits ........................................................................................................................ 64537.5. Rgles et statut de commande ..................................................................................................... 64737.6. Rgles contre dclencheurs ......................................................................................................... 647

    38. Langages de procdures ..................................................................................................................... 65038.1. Installation des langages de procdures ......................................................................................... 650

    Documentation PostgreSQL 9.0.18

    viii

  • 39. PL/pgSQL - Langage de procdures SQL .............................................................................................. 65239.1. Aperu ................................................................................................................................... 65239.2. Structure de PL/pgSQL .............................................................................................................. 65339.3. Dclarations ............................................................................................................................ 65439.4. Expressions ............................................................................................................................. 65839.5. Instructions de base ................................................................................................................... 65839.6. Structures de contrle ................................................................................................................ 66339.7. Curseurs ................................................................................................................................. 67139.8. Erreurs et messages ................................................................................................................... 67639.9. Procdures trigger ..................................................................................................................... 67739.10. Les dessous de PL/pgSQL ........................................................................................................ 68139.11. Astuces pour dvelopper en PL/pgSQL ....................................................................................... 68439.12. Portage d'Oracle PL/SQL ...................................................................................................... 686

    40. PL/Tcl - Langage de procdures Tcl ..................................................................................................... 69440.1. Aperu ................................................................................................................................... 69440.2. Fonctions et arguments PL/Tcl .................................................................................................... 69440.3. Valeurs des donnes avec PL/Tcl ................................................................................................. 69540.4. Donnes globales avec PL/Tcl ..................................................................................................... 69540.5. Accs la base de donnes depuis PL/Tcl ..................................................................................... 69640.6. Procdures pour dclencheurs en PL/Tcl ....................................................................................... 69740.7. Les modules et la commande unknown ....................................................................................... 69840.8. Noms de procdure Tcl .............................................................................................................. 699

    41. PL/Perl - Langage de procdures Perl .................................................................................................... 70041.1. Fonctions et arguments PL/Perl ................................................................................................... 70041.2. Valeurs en PL/Perl .................................................................................................................... 70241.3. Fonction incluses ...................................................................................................................... 70341.4. Valeurs globales dans PL/Perl ..................................................................................................... 70641.5. Niveaux de confiance de PL/Perl ................................................................................................. 70741.6. Dclencheurs PL/Perl ................................................................................................................ 70841.7. PL/Perl sous le capot ................................................................................................................. 709

    42. PL/Python - Langage de procdures Python ........................................................................................... 71142.1. Python 2 et Python 3 ................................................................................................................. 71142.2. Fonctions PL/Python ................................................................................................................. 71242.3. Valeur des donnes avec PL/Python ............................................................................................. 71342.4. Sharing Data ............................................................................................................................ 71642.5. Blocs de code anonymes ............................................................................................................ 71742.6. Fonctions de dclencheurs .......................................................................................................... 71742.7. Accs la base de donnes ......................................................................................................... 71742.8. Fonctions outils ........................................................................................................................ 71842.9. Variables d'environnement ......................................................................................................... 718

    43. Interface de programmation serveur ...................................................................................................... 72043.1. Fonctions d'interface ................................................................................................................. 72043.2. Fonctions de support d'interface .................................................................................................. 74843.3. Gestion de la mmoire ............................................................................................................... 75643.4. Visibilit des modifications de donnes ......................................................................................... 76543.5. Exemples ................................................................................................................................ 765

    VI. Rfrence .............................................................................................................................................. 768I. Commandes SQL ................................................................................................................................ 769

    ABORT ......................................................................................................................................... 770ALTER AGGREGATE ..................................................................................................................... 771ALTER CONVERSION .................................................................................................................... 772ALTER DATABASE ....................................................................................................................... 773ALTER DEFAULT PRIVILEGES ...................................................................................................... 775ALTER DOMAIN ........................................................................................................................... 777ALTER FOREIGN DATA WRAPPER ................................................................................................ 779ALTER FUNCTION ........................................................................................................................ 780ALTER GROUP .............................................................................................................................. 782ALTER INDEX ............................................................................................................................... 783ALTER LANGUAGE ....................................................................................................................... 785ALTER LARGE OBJECT ................................................................................................................. 786ALTER OPERATOR ........................................................................................................................ 787ALTER OPERATOR CLASS ............................................................................................................ 788ALTER OPERATOR FAMILY .......................................................................................................... 789

    Documentation PostgreSQL 9.0.18

    ix

  • ALTER ROLE ................................................................................................................................ 792ALTER SCHEMA ........................................................................................................................... 795ALTER SEQUENCE ........................................................................................................................ 796ALTER SERVER ............................................................................................................................ 798ALTER TABLE .............................................................................................................................. 799ALTER TABLESPACE .................................................................................................................... 806ALTER TEXT SEARCH CONFIGURATION ...................................................................................... 807ALTER TEXT SEARCH DICTIONARY ............................................................................................. 809ALTER TEXT SEARCH PARSER ..................................................................................................... 811ALTER TEXT SEARCH TEMPLATE ................................................................................................ 812ALTER TRIGGER ........................................................................................................................... 813ALTER TYPE ................................................................................................................................. 814ALTER USER ................................................................................................................................. 815ALTER USER MAPPING ................................................................................................................. 816ALTER VIEW ................................................................................................................................ 817ANALYZE ..................................................................................................................................... 818BEGIN .......................................................................................................................................... 820CHECKPOINT ................................................................................................................................ 822CLOSE .......................................................................................................................................... 823CLUSTER ...................................................................................................................................... 824COMMENT .................................................................................................................................... 826COMMIT ....................................................................................................................................... 829COMMIT PREPARED ..................................................................................................................... 830COPY ............................................................................................................................................ 831CREATE AGGREGATE ................................................................................................................... 838CREATE CAST .............................................................................................................................. 841CREATE CONSTRAINT TRIGGER .................................................................................................. 844CREATE CONVERSION ................................................................................................................. 845CREATE DATABASE ..................................................................................................................... 847CREATE DOMAIN ......................................................................................................................... 849CREATE FOREIGN DATA WRAPPER .............................................................................................. 851CREATE FUNCTION ...................................................................................................................... 853CREATE GROUP ............................................................................................................................ 859CREATE INDEX ............................................................................................................................. 860CREATE LANGUAGE .................................................................................................................... 865CREATE OPERATOR ..................................................................................................................... 867CREATE OPERATOR CLASS .......................................................................................................... 869CREATE OPERATOR FAMILY ........................................................................................................ 871CREATE ROLE .............................................................................................................................. 872CREATE RULE .............................................................................................................................. 875CREATE SCHEMA ......................................................................................................................... 877CREATE SEQUENCE ..................................................................................................................... 879CREATE SERVER .......................................................................................................................... 882CREATE TABLE ............................................................................................................................ 884CREATE TABLE AS ....................................................................................................................... 894CREATE TABLESPACE .................................................................................................................. 896CREATE TEXT SEARCH CONFIGURATION .................................................................................... 897CREATE TEXT SEARCH DICTIONARY ........................................................................................... 898CREATE TEXT SEARCH PARSER ................................................................................................... 899CREATE TEXT SEARCH TEMPLATE .............................................................................................. 900CREATE TRIGGER ........................................................................................................................ 901CREATE TYPE ............................................................................................................................... 904CREATE USER .............................................................................................................................. 910CREATE USER MAPPING ............................................................................................................... 911CREATE VIEW .............................................................................................................................. 912DEALLOCATE ............................................................................................................................... 914DECLARE ..................................................................................................................................... 915DELETE ........................................................................................................................................ 918DISCARD ...................................................................................................................................... 920DO ................................................................................................................................................ 921DROP AGGREGATE ....................................................................................................................... 922DROP CAST .................................................................................................................................. 923DROP CONVERSION ..................................................................................................................... 924

    Documentation PostgreSQL 9.0.18

    x

  • DROP DATABASE ......................................................................................................................... 925DROP DOMAIN ............................................................................................................................. 926DROP FOREIGN DATA WRAPPER .................................................................................................. 927DROP FUNCTION .......................................................................................................................... 928DROP GROUP ................................................................................................................................ 929DROP INDEX ................................................................................................................................. 930DROP LANGUAGE ........................................................................................................................ 931DROP OPERATOR ......................................................................................................................... 932DROP OPERATOR CLASS .............................................................................................................. 933DROP OPERATOR FAMILY ............................................................................................................ 934DROP OWNED ............................................................................................................................... 935DROP ROLE .................................................................................................................................. 936DROP RULE .................................................................................................................................. 937DROP SCHEMA ............................................................................................................................. 938DROP SEQUENCE .......................................................................................................................... 939DROP SERVER .............................................................................................................................. 940DROP TABLE ................................................................................................................................ 941DROP TABLESPACE ...................................................................................................................... 942DROP TEXT SEARCH CONFIGURATION ........................................................................................ 943DROP TEXT SEARCH DICTIONARY ............................................................................................... 944DROP TEXT SEARCH PARSER ....................................................................................................... 945DROP TEXT SEARCH TEMPLATE .................................................................................................. 946DROP TRIGGER ............................................................................................................................. 947DROP TYPE ................................................................................................................................... 948DROP USER .................................................................................................................................. 949DROP USER MAPPING ................................................................................................................... 950DROP VIEW .................................................................................................................................. 951END .............................................................................................................................................. 952EXECUTE ..................................................................................................................................... 953EXPLAIN ...................................................................................................................................... 954FETCH .......................................................................................................................................... 958GRANT ......................................................................................................................................... 961INSERT ......................................................................................................................................... 966LISTEN ......................................................................................................................................... 968LOAD ........................................................................................................................................... 969LOCK ............................................................................................................................................ 970MOVE ........................................................................................................................................... 972NOTIFY ........................................................................................................................................ 973PREPARE ...................................................................................................................................... 975PREPARE TRANSACTION .............................................................................................................. 977REASSIGN OWNED ....................................................................................................................... 979REINDEX ...................................................................................................................................... 980RELEASE SAVEPOINT ................................................................................................................... 982RESET .......................................................................................................................................... 983REVOKE ....................................................................................................................................... 984ROLLBACK ................................................................................................................................... 987ROLLBACK PREPARED ................................................................................................................. 988ROLLBACK TO SAVEPOINT .......................................................................................................... 989SAVEPOINT .................................................................................................................................. 991SELECT ........................................................................................................................................ 992SELECT INTO .............................................................................................................................. 1005SET ............................................................................................................................................. 1007SET CONSTRAINTS ..................................................................................................................... 1010SET ROLE ................................................................................................................................... 1011SET SESSION AUTHORIZATION .................................................................................................. 1013SET TRANSACTION .................................................................................................................... 1014SHOW ......................................................................................................................................... 1016START TRANSACTION ................................................................................................................ 1018TRUNCATE ................................................................................................................................. 1019UNLISTEN .................................................................................................................................. 1021UPDATE ...................................................................................................................................... 1022VACUUM .................................................................................................................................... 1025VALUES ...................................................................................................................................... 1028

    Documentation PostgreSQL 9.0.18

    xi

  • II. Applications client de PostgreSQL ...................................................................................................... 1030clusterdb ...................................................................................................................................... 1031createdb ....................................................................................................................................... 1033createlang ..................................................................................................................................... 1035createuser ..................................................................................................................................... 1037dropdb ......................................................................................................................................... 1040droplang ....................................................................................................................................... 1042dropuser ....................................................................................................................................... 1044ecpg ............................................................................................................................................ 1046pg_config ..................................................................................................................................... 1048pg_dump ...................................................................................................................................... 1050pg_dumpall ................................................................................................................................... 1056pg_restore ..................................................................................................................................... 1060psql ............................................................................................................................................. 1065reindexdb ..................................................................................................................................... 1085vacuumdb ..................................................................................................................................... 1087

    III. Applications relatives au serveur PostgreSQL ....................................................................................... 1089initdb ........................................................................................................................................... 1090pg_controldata ............................................................................................................................... 1093pg_ctl .......................................................................................................................................... 1094pg_resetxlog ................................................................................................................................. 1098postgres ........................................................................................................................................ 1100postmaster .................................................................................................................................... 1105

    VII. Internes .............................................................................................................................................. 110644. Prsentation des mcanismes internes de PostgreSQL ............................................................................ 1107

    44.1. Chemin d'une requte .............................................................................................................. 110744.2. tablissement des connexions ................................................................................................... 110744.3. tape d'analyse ...................................................................................................................... 110844.4. Systme de rgles de PostgreSQL ........................................................................................... 110844.5. Planificateur/Optimiseur .......................................................................................................... 110944.6. Excuteur .............................................................................................................................. 1110

    45. Catalogues systme ......................................................................................................................... 111145.1. Aperu ................................................................................................................................. 111145.2. pg_aggregate ......................................................................................................................... 111245.3. pg_am .................................................................................................................................. 111245.4. pg_amop ............................................................................................................................... 111345.5. pg_amproc ............................................................................................................................ 111445.6. pg_attrdef ............................................................................................................................. 111445.7. pg_attribute ........................................................................................................................... 111545.8. pg_authid .............................................................................................................................. 111645.9. pg_auth_members ................................................................................................................... 111745.10. pg_cast ............................................................................................................................... 111745.11. pg_class .............................................................................................................................. 111845.12. pg_constraint ....................................................................................................................... 112045.13. pg_conversion ...................................................................................................................... 112145.14. pg_database ......................................................................................................................... 112145.15. pg_db_role_setting ................................................................................................................ 112245.16. pg_default_acl ...................................................................................................................... 112345.17. pg_depend ........................................................................................................................... 112345.18. pg_description ...................................................................................................................... 112445.19. pg_enum ............................................................................................................................. 112445.20. pg_foreign_data_wrapper ..........................................................................................