postgresql 9.1

1957
Documentation PostgreSQL 9.1.14 The PostgreSQL Global Development Group

Upload: walidtoumi

Post on 17-Jan-2016

45 views

Category:

Documents


0 download

DESCRIPTION

Manuel Postgresql

TRANSCRIPT

  • Documentation PostgreSQL 9.1.14

    The PostgreSQL Global Development Group

  • Documentation PostgreSQL 9.1.14The 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 ..................................................................................................................... 36

    5. Dfinition des donnes ........................................................................................................................... 385.1. Notions fondamentales sur les tables ................................................................................................ 385.2. Valeurs par dfaut ........................................................................................................................ 395.3. Contraintes ................................................................................................................................. 395.4. Colonnes systme ......................................................................................................................... 455.5. Modification des tables .................................................................................................................. 465.6. Droits ......................................................................................................................................... 485.7. Schmas ..................................................................................................................................... 485.8. L'hritage ......................................................................................................................................5.9. Partitionnement ............................................................................................................................ 545.10. Donnes distantes ....................................................................................................................... 605.11. Autres objets de la base de donnes ................................................................................................ 605.12. Gestion des dpendances .............................................................................................................. 60

    6. Manipulation de donnes ........................................................................................................................ 626.1. Insrer des donnes ....................................................................................................................... 626.2. Actualiser les donnes ................................................................................................................... 636.3. Supprimer des donnes .................................................................................................................. 63

    7. Requtes ............................................................................................................................................. 657.1. Aperu ....................................................................................................................................... 657.2. Expressions de table ..................................................................................................................... 657.3. Listes de slection ........................................................................................................................ 737.4. Combiner des requtes .................................................................................................................. 747.5. Tri des lignes ............................................................................................................................... 747.6. LIMIT et OFFSET ....................................................................................................................... 757.7. Listes VALUES ............................................................................................................................ 767.8. Requtes WITH (Common Table Expressions) ................................................................................... 76

    8. Types de donnes ................................................................................................................................. 81

    iii

  • 8.1. Types numriques ........................................................................................................................ 828.2. Types montaires ......................................................................................................................... 858.3. Types caractre ............................................................................................................................ 868.4. Types de donnes binaires .............................................................................................................. 878.5. Types date/heure .......................................................................................................................... 898.6. Type boolen ............................................................................................................................... 978.7. Types numration ....................................................................................................................... 988.8. Types gomtriques ...................................................................................................................... 998.9. Types adresses rseau ................................................................................................................. 1018.10. Type chane de bits ................................................................................................................... 1028.11. Types de recherche plein texte .................................................................................................... 1038.12. Type UUID ............................................................................................................................. 1058.13. Type XML .............................................................................................................................. 1068.14. Tableaux ................................................................................................................................. 1078.15. Types composites ..................................................................................................................... 1148.16. Types identifiant d'objet ............................................................................................................. 1178.17. Pseudo-Types .......................................................................................................................... 118

    9. Fonctions et oprateurs ........................................................................................................................ 1199.1. Oprateurs logiques .................................................................................................................... 1199.2. Oprateurs de comparaison .......................................................................................................... 1199.3. Fonctions et oprateurs mathmatiques ........................................................................................... 1219.4. Fonctions et oprateurs de chanes ................................................................................................. 1239.5. Fonctions et oprateurs de chanes binaires ...................................................................................... 1329.6. Fonctions et oprateurs sur les chanes de bits .................................................................................. 1349.7. Correspondance de motif ............................................................................................................. 1349.8. Fonctions de formatage des types de donnes .................................................................................. 1469.9. Fonctions et oprateurs sur date/heure ............................................................................................ 1519.10. Fonctions de support enum ......................................................................................................... 1609.11. Fonctions et oprateurs gomtriques ........................................................................................... 1619.12. Fonctions et oprateurs sur les adresses rseau ............................................................................... 1649.13. Fonctions et oprateurs de la recherche plein texte .......................................................................... 1669.14. Fonctions XML ........................................................................................................................ 1699.15. Fonctions de manipulation de squences ....................................................................................... 1789.16. Expressions conditionnelles ........................................................................................................ 1799.17. Fonctions et oprateurs de tableaux .............................................................................................. 1819.18. Fonctions d'agrgat ................................................................................................................... 1839.19. Fonctions Window .................................................................................................................... 1879.20. Expressions de sous-requtes ...................................................................................................... 1889.21. Comparaisons de lignes et de tableaux .......................................................................................... 1919.22. Fonctions retournant des ensembles ............................................................................................. 1939.23. Fonctions d'informations systme ................................................................................................ 1959.24. Fonctions d'administration systme .............................................................................................. 2029.25. Fonctions trigger ...................................................................................................................... 212

    10. Conversion de types .......................................................................................................................... 21410.1. Aperu ................................................................................................................................... 21410.2. Oprateurs ............................................................................................................................... 21510.3. Fonctions ................................................................................................................................ 21710.4. Stockage de valeurs ................................................................................................................... 21910.5. Constructions UNION, CASE et constructions relatives .................................................................... 220

    11. Index .............................................................................................................................................. 22211.1. Introduction ............................................................................................................................. 22211.2. Types d'index ........................................................................................................................... 22211.3. Index multicolonnes .................................................................................................................. 22411.4. Index et ORDER BY .................................................................................................................. 22411.5. Combiner des index multiples ..................................................................................................... 22511.6. Index d'unicit ......................................................................................................................... 22611.7. Index d'expressions ................................................................................................................... 22611.8. Index partiels ........................................................................................................................... 22711.9. Classes et familles d'oprateurs ................................................................................................... 22811.10. Index et collationnements ......................................................................................................... 22911.11. Examiner l'utilisation des index ................................................................................................. 230

    12. Recherche plein texte ......................................................................................................................... 23112.1. Introduction ............................................................................................................................. 231

    Documentation PostgreSQL 9.1.14

    iv

  • 12.2. Tables et index ......................................................................................................................... 23312.3. Contrler la recherche plein texte ................................................................................................. 23512.4. Fonctionnalits supplmentaires .................................................................................................. 24012.5. Analyseurs .............................................................................................................................. 24412.6. Dictionnaires ........................................................................................................................... 24612.7. Exemple de configuration ........................................................................................................... 25212.8. Tester et dboguer la recherche plein texte ..................................................................................... 25312.9. Types d'index GiST et GIN ........................................................................................................ 25712.10. Support de psql ....................................................................................................................... 25812.11. Limites ................................................................................................................................. 26012.12. Migration partir d'une recherche plein texte antrieure 8.3 .......................................................... 260

    13. Contrle d'accs simultan .................................................................................................................. 26213.1. Introduction ............................................................................................................................. 26213.2. Isolation des transactions ........................................................................................................... 26213.3. Verrouillage explicite ................................................................................................................ 26613.4. Vrification de cohrence des donnes au niveau de l'application ....................................................... 270

    14. Conseils sur les performances .............................................................................................................. 27214.1. Utiliser EXPLAIN ................................................................................................................... 27214.2. Statistiques utilises par le planificateur ........................................................................................ 27614.3. Contrler le planificateur avec des clauses JOIN explicites .............................................................. 27714.4. Remplir une base de donnes ...................................................................................................... 27814.5. Configuration avec une perte accepte .......................................................................................... 281

    III. Administration du serveur ......................................................................................................................... 28215. Procdure d'installation de PostgreSQL du code source ......................................................................... 283

    15.1. Version courte ......................................................................................................................... 28315.2. Prrequis ................................................................................................................................. 28315.3. Obtenir les sources .................................................................................................................... 28415.4. Procdure d'installation .............................................................................................................. 28515.5. Initialisation post-installation ...................................................................................................... 29215.6. Dmarrer ................................................................................................................................ 29315.7. Et maintenant ? ........................................................................................................................ 29415.8. Plateformes supportes .............................................................................................................. 29415.9. Notes spcifiques des plateformes ............................................................................................. 295

    16. Installation partir du code source sur Windows .................................................................................. 30316.1. Construire avec Visual C++ ou le Platform SDK ...................................................................... 30316.2. Construire libpq avec Visual C++ ou Borland C++ ................................................................... 306

    17. Configuration du serveur et mise en place .............................................................................................. 30817.1. Compte utilisateur PostgreSQL ................................................................................................ 30817.2. Crer un groupe de base de donnes ............................................................................................. 30817.3. Lancer le serveur de bases de donnes .......................................................................................... 30917.4. Grer les ressources du noyau ..................................................................................................... 31117.5. Arrter le serveur ...................................................................................................................... 31817.6. Mise jour d'une instance PostgreSQL ...................................................................................... 31817.7. Empcher l'usurpation de serveur ................................................................................................. 32117.8. Options de chiffrement .............................................................................................................. 32117.9. Connexions tcp/ip scurises avec ssl ........................................................................................... 32217.10. Connexions tcp/ip scurises avec des tunnels ssh tunnels ............................................................... 323

    18. Configuration du serveur .................................................................................................................... 32518.1. Paramtres de configuration ........................................................................................................ 32518.2. Emplacement des fichiers ........................................................................................................... 32618.3. Connexions et authentification .................................................................................................... 32718.4. Consommation des ressources ..................................................................................................... 33018.5. Write Ahead Log ...................................................................................................................... 33318.6. Rplication .............................................................................................................................. 33718.7. Planification des requtes ........................................................................................................... 33918.8. Remonter et tracer les erreurs ...................................................................................................... 34318.9. Statistiques d'excution .............................................................................................................. 35018.10. Nettoyage (vacuum) automatique .............................................................................................. 35118.11. Valeurs par dfaut des connexions client ..................................................................................... 35218.12. Gestion des verrous ................................................................................................................. 35718.13. Compatibilit de version et de plateforme .................................................................................... 35718.14. Gestion des erreurs .................................................................................................................. 35918.15. Options prconfigures ............................................................................................................ 360

    Documentation PostgreSQL 9.1.14

    v

  • 18.16. Options personnalises ............................................................................................................. 36118.17. Options pour les dveloppeurs ................................................................................................... 36118.18. Options courtes ...................................................................................................................... 363

    19. Authentification du client ................................................................................................................... 36419.1. Le fichier pg_hba.conf ......................................................................................................... 36419.2. Correspondances d'utilisateurs .................................................................................................... 36919.3. Mthodes d'authentification ........................................................................................................ 37019.4. Problmes d'authentification ....................................................................................................... 376

    20. Rles de la base de donnes ................................................................................................................ 37720.1. Rles de la base de donnes ........................................................................................................ 37720.2. Attributs des rles ..................................................................................................................... 37720.3. Appartenance d'un rle .............................................................................................................. 37820.4. Scurit des fonctions et dclencheurs (triggers) ............................................................................. 380

    21. Administration des bases de donnes .................................................................................................... 38121.1. Aperu ................................................................................................................................... 38121.2. Cration d'une base de donnes ................................................................................................... 38121.3. Bases de donnes modles .......................................................................................................... 38221.4. Configuration d'une base de donnes ............................................................................................ 38321.5. Dtruire une base de donnes ...................................................................................................... 38321.6. Tablespaces ............................................................................................................................. 383

    22. Localisation ..................................................................................................................................... 38522.1. Support des locales ................................................................................................................... 38522.2. Support des collations ................................................................................................................ 38722.3. Support des jeux de caractres ..................................................................................................... 389

    23. Planifier les tches de maintenance ....................................................................................................... 39423.1. Nettoyages rguliers .................................................................................................................. 39423.2. R-indexation rgulire .............................................................................................................. 39923.3. Maintenance du fichier de traces .................................................................................................. 399

    24. Sauvegardes et restaurations ................................................................................................................ 40124.1. Sauvegarde SQL ...................................................................................................................... 40124.2. Sauvegarde de niveau systme de fichiers ...................................................................................... 40324.3. Archivage continu et rcupration d'un instantan (PITR) ................................................................. 404

    25. Haute disponibilit, rpartition de charge et rplication ............................................................................. 41225.1. Comparaison de diffrentes solutions ........................................................................................... 41225.2. Serveurs de Standby par transfert de journaux ................................................................................ 41525.3. Bascule (Failover) .................................................................................................................... 41925.4. Mthode alternative pour le log shipping ....................................................................................... 42025.5. Hot Standby ............................................................................................................................ 422

    26. Configuration de la rcupration .......................................................................................................... 42826.1. Paramtres de rcupration de l'archive ......................................................................................... 42826.2. Paramtres de cible de rcupration .............................................................................................. 42826.3. Paramtres de serveur de Standby ................................................................................................ 429

    27. Surveiller l'activit de la base de donnes ............................................................................................... 43127.1. Outils Unix standard ................................................................................................................. 43127.2. Le rcuprateur de statistiques ..................................................................................................... 43127.3. Visualiser les verrous ................................................................................................................ 44027.4. Traces dynamiques ................................................................................................................... 440

    28. Surveiller l'utilisation des disques ......................................................................................................... 44928.1. Dterminer l'utilisation des disques .............................................................................................. 44928.2. Panne pour disque satur ............................................................................................................ 450

    29. Fiabilit et journaux de transaction ....................................................................................................... 45129.1. Fiabilit .................................................................................................................................. 45129.2. Write-Ahead Logging (WAL) ..................................................................................................... 45229.3. Validation asynchrone (Asynchronous Commit) ............................................................................. 45229.4. Configuration des journaux de transaction ..................................................................................... 45329.5. Vue interne des journaux de transaction ........................................................................................ 455

    30. Tests de rgression ............................................................................................................................ 45730.1. Lancer les tests ......................................................................................................................... 45730.2. valuation des tests ................................................................................................................... 45930.3. Fichiers de comparaison de variants ............................................................................................. 46130.4. Examen de la couverture du test .................................................................................................. 462

    IV. Interfaces client ...................................................................................................................................... 46331. libpq - Bibliothque C ........................................................................................................................ 464

    Documentation PostgreSQL 9.1.14

    vi

  • 31.1. Fonctions de contrle de connexion la base de donnes .................................................................. 46431.2. Fonctions de statut de connexion ................................................................................................. 47031.3. Fonctions de commandes d'excution ........................................................................................... 47331.4. Traitement des commandes asynchrones ....................................................................................... 48431.5. Annuler des requtes en cours d'excution ..................................................................................... 48731.6. Interface chemin rapide ........................................................................................................... 48731.7. Notification asynchrone ............................................................................................................. 48831.8. Fonctions associes avec la commande COPY ............................................................................... 48931.9. Fonctions de contrle ................................................................................................................ 49231.10. Fonctions diverses ................................................................................................................... 49331.11. Traitement des messages .......................................................................................................... 49531.12. Systme d'vnements ............................................................................................................. 49631.13. Variables d'environnement ........................................................................................................ 50131.14. Fichier de mots de passe ........................................................................................................... 50231.15. Fichier des connexions de service ............................................................................................... 50331.16. Recherches LDAP des paramtres de connexion ........................................................................... 50331.17. Support de SSL ...................................................................................................................... 50431.18. Comportement des programmes threads ..................................................................................... 50731.19. Construire des applications avec libpq ......................................................................................... 50831.20. Exemples de programmes ......................................................................................................... 508

    32. Objets larges .................................................................................................................................... 51632.1. Introduction ............................................................................................................................. 51632.2. Fonctionnalits d'implmentation ................................................................................................. 51632.3. Interfaces client ........................................................................................................................ 51632.4. Fonctions du ct serveur ........................................................................................................... 51832.5. Programme d'exemple ............................................................................................................... 519

    33. ECPG SQL embarqu en C ................................................................................................................. 52433.1. Le Concept .............................................................................................................................. 52433.2. Grer les Connexions la Base de Donnes ................................................................................... 52433.3. Excuter des Commandes SQL ................................................................................................... 52633.4. Utiliser des Variables Htes ........................................................................................................ 52833.5. SQL Dynamique ...................................................................................................................... 54033.6. Librairie pgtypes ...................................................................................................................... 54133.7. Utiliser les Zones de Descripteur ................................................................................................. 55233.8. Gestion des Erreurs ................................................................................................................... 56233.9. Directives de Prprocesseur ........................................................................................................ 56833.10. Traiter des Programmes en SQL Embarqu .................................................................................. 56933.11. Fonctions de la Librairie ........................................................................................................... 57033.12. Large Objects ......................................................................................................................... 57033.13. Applications C++ .................................................................................................................... 57233.14. Commandes SQL Embarques .................................................................................................. 57533.15. Mode de Compatibilit Informix ............................................................................................. 59333.16. Fonctionnement Interne ............................................................................................................ 604

    34. Schma d'information ........................................................................................................................ 60734.1. Le schma ............................................................................................................................... 60734.2. Types de donnes ..................................................................................................................... 60734.3. information_schema_catalog_name ............................................................................... 60834.4. administrable_role_authorizations ........................................................................... 60834.5. applicable_roles ............................................................................................................. 60834.6. attributes ......................................................................................................................... 60834.7. character_sets ................................................................................................................. 61034.8. check_constraint_routine_usage ................................................................................. 61134.9. check_constraints ........................................................................................................... 61234.10. collations ........................................................................................................................ 61234.11. collation_character_set_applicability .................................................................. 61234.12. column_domain_usage ...................................................................................................... 61334.13. column_privileges .......................................................................................................... 61334.14. column_udt_usage ............................................................................................................ 61434.15. columns .............................................................................................................................. 61434.16. constraint_column_usage .............................................................................................. 61734.17. constraint_table_usage ................................................................................................ 61734.18. data_type_privileges .................................................................................................... 61734.19. domain_constraints ........................................................................................................ 618

    Documentation PostgreSQL 9.1.14

    vii

  • 34.20. domain_udt_usage ............................................................................................................ 61834.21. domains .............................................................................................................................. 61934.22. element_types .................................................................................................................. 62034.23. enabled_roles .................................................................................................................. 62234.24. foreign_data_wrapper_options .................................................................................... 62234.25. foreign_data_wrappers .................................................................................................. 62234.26. foreign_server_options ................................................................................................ 62334.27. foreign_servers .............................................................................................................. 62334.28. foreign_table_options .................................................................................................. 62334.29. foreign_tables ................................................................................................................ 62434.30. key_column_usage ............................................................................................................ 62434.31. parameters ........................................................................................................................ 62534.32. referential_constraints .............................................................................................. 62634.33. role_column_grants ........................................................................................................ 62734.34. role_routine_grants ...................................................................................................... 62734.35. role_table_grants .......................................................................................................... 62834.36. role_usage_grants .......................................................................................................... 62834.37. routine_privileges ........................................................................................................ 62834.38. routines ............................................................................................................................ 62934.39. schemata ............................................................................................................................ 63234.40. sequences .......................................................................................................................... 63334.41. sql_features .................................................................................................................... 63434.42. sql_implementation_info .............................................................................................. 63434.43. sql_languages .................................................................................................................. 63434.44. sql_packages .................................................................................................................... 63534.45. sql_parts .......................................................................................................................... 63534.46. sql_sizing ........................................................................................................................ 63634.47. sql_sizing_profiles ...................................................................................................... 63634.48. table_constraints .......................................................................................................... 63634.49. table_privileges ............................................................................................................ 63734.50. tables ................................................................................................................................ 63734.51. triggered_update_columns ............................................................................................ 63834.52. triggers ............................................................................................................................ 63834.53. usage_privileges ............................................................................................................ 64034.54. user_mapping_options .................................................................................................... 64034.55. user_mappings .................................................................................................................. 64134.56. view_column_usage .......................................................................................................... 64134.57. view_routine_usage ........................................................................................................ 64134.58. view_table_usage ............................................................................................................ 64234.59. views .................................................................................................................................. 642

    V. Programmation serveur ............................................................................................................................. 64435. tendre SQL .................................................................................................................................... 645

    35.1. L'extensibilit .......................................................................................................................... 64535.2. Le systme des types de PostgreSQL ......................................................................................... 64535.3. Fonctions utilisateur .................................................................................................................. 64635.4. Fonctions en langage de requtes (SQL) ........................................................................................ 64735.5. Surcharge des fonctions ............................................................................................................. 65735.6. Catgories de volatilit des fonctions ............................................................................................ 65735.7. Fonctions en langage de procdures ............................................................................................. 65835.8. Fonctions internes ..................................................................................................................... 65835.9. Fonctions en langage C .............................................................................................................. 65935.10. Agrgats utilisateur ................................................................................................................. 67735.11. Types utilisateur ..................................................................................................................... 67935.12. Oprateurs dfinis par l'utilisateur .............................................................................................. 68135.13. Informations sur l'optimisation d'un oprateur .............................................................................. 68235.14. Interfacer des extensions d'index ................................................................................................ 68535.15. Empaqueter des objets dans une extension ................................................................................... 69435.16. Outils de construction d'extension .............................................................................................. 699

    36. Dclencheurs (triggers) ...................................................................................................................... 70136.1. Aperu du comportement des dclencheurs .................................................................................... 70136.2. Visibilit des modifications des donnes ....................................................................................... 70236.3. crire des fonctions dclencheurs en C ......................................................................................... 70336.4. Un exemple complet de trigger .................................................................................................... 705

    Documentation PostgreSQL 9.1.14

    viii

  • 37. Systme de rgles .............................................................................................................................. 70837.1. Arbre de requtes ..................................................................................................................... 70837.2. Vues et systme de rgles ........................................................................................................... 70937.3. Rgles sur insert, update et delete .............................................................................................. 71537.4. Rgles et droits ........................................................................................................................ 72337.5. Rgles et statut de commande ..................................................................................................... 72437.6. Rgles contre dclencheurs ......................................................................................................... 724

    38. Langages de procdures ..................................................................................................................... 72738.1. Installation des langages de procdures ......................................................................................... 727

    39. PL/pgSQL - Langage de procdures SQL .............................................................................................. 72939.1. Aperu ................................................................................................................................... 72939.2. Structure de PL/pgSQL .............................................................................................................. 73039.3. Dclarations ............................................................................................................................ 73139.4. Expressions ............................................................................................................................. 73539.5. Instructions de base ................................................................................................................... 73639.6. Structures de contrle ................................................................................................................ 74139.7. Curseurs ................................................................................................................................. 75039.8. Erreurs et messages ................................................................................................................... 75539.9. Procdures trigger ..................................................................................................................... 75639.10. Les dessous de PL/pgSQL ........................................................................................................ 76139.11. Astuces pour dvelopper en PL/pgSQL ....................................................................................... 76439.12. Portage d'Oracle PL/SQL ...................................................................................................... 766

    40. PL/Tcl - Langage de procdures Tcl ..................................................................................................... 77440.1. Aperu ................................................................................................................................... 77440.2. Fonctions et arguments PL/Tcl .................................................................................................... 77440.3. Valeurs des donnes avec PL/Tcl ................................................................................................. 77540.4. Donnes globales avec PL/Tcl ..................................................................................................... 77540.5. Accs la base de donnes depuis PL/Tcl ..................................................................................... 77640.6. Procdures pour dclencheurs en PL/Tcl ....................................................................................... 77740.7. Les modules et la commande unknown ....................................................................................... 77940.8. Noms de procdure Tcl .............................................................................................................. 779

    41. PL/Perl - Langage de procdures Perl .................................................................................................... 78041.1. Fonctions et arguments PL/Perl ................................................................................................... 78041.2. Valeurs en PL/Perl .................................................................................................................... 78341.3. Fonction incluses ...................................................................................................................... 78341.4. Valeurs globales dans PL/Perl ..................................................................................................... 78741.5. Niveaux de confiance de PL/Perl ................................................................................................. 78741.6. Dclencheurs PL/Perl ................................................................................................................ 78841.7. PL/Perl sous le capot ................................................................................................................. 789

    42. PL/Python - Langage de procdures Python ........................................................................................... 79142.1. Python 2 et Python 3 ................................................................................................................. 79142.2. Fonctions PL/Python ................................................................................................................. 79242.3. Valeur des donnes avec PL/Python ............................................................................................. 79342.4. Sharing Data ............................................................................................................................ 79742.5. Blocs de code anonymes ............................................................................................................ 79742.6. Fonctions de dclencheurs .......................................................................................................... 79742.7. Accs la base de donnes ......................................................................................................... 79842.8. Sous-transactions explicites ........................................................................................................ 79942.9. Fonctions outils ........................................................................................................................ 80042.10. Variables d'environnement ........................................................................................................ 801

    43. Interface de programmation serveur ...................................................................................................... 80243.1. Fonctions d'interface ................................................................................................................. 80243.2. Fonctions de support d'interface .................................................................................................. 83043.3. Gestion de la mmoire ............................................................................................................... 83843.4. Visibilit des modifications de donnes ......................................................................................... 84743.5. Exemples ................................................................................................................................ 847

    VI. Rfrence .............................................................................................................................................. 850I. Commandes SQL ................................................................................................................................ 851

    ABORT ......................................................................................................................................... 852ALTER AGGREGATE ..................................................................................................................... 853ALTER COLLATION ...................................................................................................................... 854ALTER CONVERSION .................................................................................................................... 855ALTER DATABASE ....................................................................................................................... 856

    Documentation PostgreSQL 9.1.14

    ix

  • ALTER DEFAULT PRIVILEGES ...................................................................................................... 858ALTER DOMAIN ........................................................................................................................... 860ALTER EXTENSION ...................................................................................................................... 862ALTER FOREIGN DATA WRAPPER ................................................................................................ 865ALTER FOREIGN TABLE ............................................................................................................... 867ALTER FUNCTION ........................................................................................................................ 869ALTER GROUP .............................................................................................................................. 871ALTER INDEX ............................................................................................................................... 872ALTER LANGUAGE ....................................................................................................................... 874ALTER LARGE OBJECT ................................................................................................................. 875ALTER OPERATOR ........................................................................................................................ 876ALTER OPERATOR CLASS ............................................................................................................ 877ALTER OPERATOR FAMILY .......................................................................................................... 878ALTER ROLE ................................................................................................................................ 881ALTER SCHEMA ........................................................................................................................... 884ALTER SEQUENCE ........................................................................................................................ 885ALTER SERVER ............................................................................................................................ 887ALTER TABLE .............................................................................................................................. 888ALTER TABLESPACE .................................................................................................................... 896ALTER TEXT SEARCH CONFIGURATION ...................................................................................... 897ALTER TEXT SEARCH DICTIONARY ............................................................................................. 899ALTER TEXT SEARCH PARSER ..................................................................................................... 901ALTER TEXT SEARCH TEMPLATE ................................................................................................ 902ALTER TRIGGER ........................................................................................................................... 903ALTER TYPE ................................................................................................................................. 904ALTER USER ................................................................................................................................. 907ALTER USER MAPPING ................................................................................................................. 908ALTER VIEW ................................................................................................................................ 909ANALYZE ..................................................................................................................................... 910BEGIN .......................................................................................................................................... 912CHECKPOINT ................................................................................................................................ 914CLOSE .......................................................................................................................................... 915CLUSTER ...................................................................................................................................... 916COMMENT .................................................................................................................................... 918COMMIT ....................................................................................................................................... 921COMMIT PREPARED ..................................................................................................................... 922COPY ............................................................................................................................................ 923CREATE AGGREGATE ................................................................................................................... 930CREATE CAST .............................................................................................................................. 933CREATE COLLATION .................................................................................................................... 937CREATE CONVERSION ................................................................................................................. 939CREATE DATABASE ..................................................................................................................... 941CREATE DOMAIN ......................................................................................................................... 943CREATE EXTENSION .................................................................................................................... 945CREATE FOREIGN DATA WRAPPER .............................................................................................. 947CREATE FOREIGN TABLE ............................................................................................................. 949CREATE FUNCTION ...................................................................................................................... 951CREATE GROUP ............................................................................................................................ 957CREATE INDEX ............................................................................................................................. 958CREATE LANGUAGE .................................................................................................................... 963CREATE OPERATOR ..................................................................................................................... 966CREATE OPERATOR CLASS .......................................................................................................... 968CREATE OPERATOR FAMILY ........................................................................................................ 971CREATE ROLE .............................................................................................................................. 972CREATE RULE .............................................................................................................................. 975CREATE SCHEMA ......................................................................................................................... 977CREATE SEQUENCE ..................................................................................................................... 979CREATE SERVER .......................................................................................................................... 982CREATE TABLE ............................................................................................................................ 984CREATE TABLE AS ....................................................................................................................... 995CREATE TABLESPACE .................................................................................................................. 997CREATE TEXT SEARCH CONFIGURATION .................................................................................... 998CREATE TEXT SEARCH DICTIONARY ........................................................................................... 999

    Documentation PostgreSQL 9.1.14

    x

  • CREATE TEXT SEARCH PARSER ................................................................................................. 1000CREATE TEXT SEARCH TEMPLATE ............................................................................................ 1001CREATE TRIGGER ...................................................................................................................... 1002CREATE TYPE ............................................................................................................................. 1006CREATE USER ............................................................................................................................ 1012CREATE USER MAPPING ............................................................................................................. 1013CREATE VIEW ............................................................................................................................ 1014DEALLOCATE ............................................................................................................................. 1016DECLARE ................................................................................................................................... 1017DELETE ...................................................................................................................................... 1020DISCARD .................................................................................................................................... 1022DO .............................................................................................................................................. 1023DROP AGGREGATE ..................................................................................................................... 1024DROP CAST ................................................................................................................................ 1025DROP COLLATION ...................................................................................................................... 1026DROP CONVERSION ................................................................................................................... 1027DROP DATABASE ....................................................................................................................... 1028DROP DOMAIN ........................................................................................................................... 1029DROP EXTENSION ...................................................................................................................... 1030DROP FOREIGN DATA WRAPPER ................................................................................................ 1031DROP FOREIGN TABLE ............................................................................................................... 1032DROP FUNCTION ........................................................................................................................ 1033DROP GROUP .............................................................................................................................. 1034DROP INDEX ............................................................................................................................... 1035DROP LANGUAGE ...................................................................................................................... 1036DROP OPERATOR ....................................................................................................................... 1037DROP OPERATOR CLASS ............................................................................................................ 1038DROP OPERATOR FAMILY .......................................................................................................... 1039DROP OWNED ............................................................................................................................. 1040DROP ROLE ................................................................................................................................ 1041DROP RULE ................................................................................................................................ 1042DROP SCHEMA ........................................................................................................................... 1043DROP SEQUENCE ........................................................................................................................ 1044DROP SERVER ............................................................................................................................ 1045DROP TABLE .............................................................................................................................. 1046DROP TABLESPACE .................................................................................................................... 1047DROP TEXT SEARCH CONFIGURATION ...................................................................................... 1048DROP TEXT SEARCH DICTIONARY ............................................................................................. 1049DROP TEXT SEARCH PARSER ..................................................................................................... 1050DROP TEXT SEARCH TEMPLATE ................................................................................................ 1051DROP TRIGGER ........................................................................................................................... 1052DROP TYPE ................................................................................................................................. 1053DROP USER ................................................................................................................................ 1054DROP USER MAPPING ................................................................................................................. 1055DROP VIEW ................................................................................................................................ 1056END ............................................................................................................................................ 1057EXECUTE ................................................................................................................................... 1058EXPLAIN .................................................................................................................................... 1059FETCH ........................................................................................................................................ 1063GRANT ....................................................................................................................................... 1066INSERT ....................................................................................................................................... 1071LISTEN ....................................................................................................................................... 1074LOAD ......................................................................................................................................... 1075LOCK .......................................................................................................................................... 1076MOVE ......................................................................................................................................... 1078NOTIFY ...................................................................................................................................... 1080PREPARE .................................................................................................................................... 1082PREPARE TRANSACTION ............................................................................................................ 1084REASSIGN OWNED ..................................................................................................................... 1086REINDEX .................................................................................................................................... 1087RELEASE SAVEPOINT ................................................................................................................. 1089RESET ........................................................................................................................................ 1090REVOKE ..................................................................................................................................... 1091

    Documentation PostgreSQL 9.1.14

    xi

  • ROLLBACK ................................................................................................................................. 1094ROLLBACK PREPARED ............................................................................................................... 1095ROLLBACK TO SAVEPOINT ........................................................................................................ 1096SAVEPOINT ................................................................................................................................ 1098SECURITY LABEL ....................................................................................................................... 1099SELECT ...................................................................................................................................... 1101SELECT INTO .............................................................................................................................. 1115SET ............................................................................................................................................. 1117SET CONSTRAINTS ..................................................................................................................... 1120SET ROLE ................................................................................................................................... 1121SET SESSION AUTHORIZATION .................................................................................................. 1123SET TRANSACTION .................................................................................................................... 1124SHOW ......................................................................................................................................... 1126START TRANSACTION ................................................................................................................ 1128TRUNCATE ................................................................................................................................. 1129UNLISTEN .................................................................................................................................. 1131UPDATE ...................................................................................................................................... 1132VACUUM .................................................................................................................................... 1135VALUES ...................................................................................................................................... 1138

    II. Applications client de PostgreSQL ...................................................................................................... 1140clusterdb ...................................................................................................................................... 1141createdb ....................................................................................................................................... 1143createlang ..................................................................................................................................... 1145createuser ..................................................................................................................................... 1147dropdb ......................................................................................................................................... 1150droplang ....................................................................................................................................... 1152dropuser ....................................................................................................................................... 1154ecpg ............................................................................................................................................ 1156pg_basebackup .............................................................................................................................. 1158pg_config ..................................................................................................................................... 1161pg_dump ...................................................................................................................................... 1163pg_dumpall ................................................................................................................................... 1170pg_restore ..................................................................................................................................... 1174psql ............................................................................................................................................. 1179reindexdb ..................................................................................................................................... 1200vacuumdb ..................................................................................................................................... 1202

    III. Applications relatives au serveur PostgreSQL ....................................................................................... 1204initdb ........................................................................................................................................... 1205pg_controldata ............................................................................................................................... 1208pg_ctl .......................................................................................................................................... 1209pg_resetxlog ................................................................................................................................. 1213postgres ........................................................................................................................................ 1215postmaster .................................................................................................................................... 1220

    VII. Internes .............................................................................................................................................. 122144. Prsentation des mcanismes internes de PostgreSQL ............................................................................ 1222

    44.1. Chemin d'une requte .............................................................................................................. 122244.2. tablissement des connexions ................................................................................................... 122244.3. tape d'analyse ...................................................................................................................... 122344.4. Systme de rgles de PostgreSQL ........................................................................................... 122344.5. Planificateur/Optimiseur .......................................................................................................... 122444.6. Excuteur .............................................................................................................................. 1225

    45. Catalogues systme ......................................................................................................................... 122645.1. Aperu ................................................................................................................................. 122645.2. pg_aggregate ..............................................