Documentation PostgreSQL 9.4.26 The PostgreSQL Global ... · 11.7. Index d'expressions ..... 272

1870
Documentation PostgreSQL 9.4.26 The PostgreSQL Global Development Group

Transcript of Documentation PostgreSQL 9.4.26 The PostgreSQL Global ... · 11.7. Index d'expressions ..... 272

  • Documentation PostgreSQL 9.4.26

    The PostgreSQL Global Development Group

  • Documentation PostgreSQL 9.4.26The PostgreSQL Global Development GroupCopyright © 1996-2020 The PostgreSQL Global Development Group

    Legal Notice

    PostgreSQL™ is Copyright (c) 1996-2020 by the PostgreSQL Global Development Group.

    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 awritten agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two para-graphs appear in all copies.

    IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USEOF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVI-SED OF THE POSSIBILITY OF SUCH DAMAGE.

    THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMI-TED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THESOFTWARE PROVIDED HEREUNDER IS ON AN « AS-IS » BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NOOBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

  • Préface ...................................................................................................................................................... xviii1. Définition de PostgreSQL™ ................................................................................................................ xviii2. Bref historique de PostgreSQL™ .......................................................................................................... xviii3. Conventions ........................................................................................................................................ xx4. Pour plus d'informations ......................................................................................................................... xx5. Lignes de conduite pour les rapports de bogues .......................................................................................... xx

    I. Tutoriel ...................................................................................................................................................... 11. Démarrage ............................................................................................................................................ 2

    1.1. Installation ................................................................................................................................... 21.2. Concepts architecturaux de base ....................................................................................................... 21.3. Création d'une base de données ........................................................................................................ 21.4. Accéder à une base ........................................................................................................................ 4

    2. Le langage SQL .................................................................................................................................... 52.1. Introduction ................................................................................................................................. 52.2. Concepts ..................................................................................................................................... 52.3. Créer 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'agrégat ........................................................................................................................ 92.8. Mises à jour ................................................................................................................................ 112.9. Suppressions ............................................................................................................................... 11

    3. Fonctionnalités avancées ........................................................................................................................ 123.1. Introduction ................................................................................................................................ 123.2. Vues .......................................................................................................................................... 123.3. Clés étrangères ............................................................................................................................ 123.4. Transactions ................................................................................................................................ 133.5. Fonctions de fenêtrage .................................................................................................................. 143.6. Héritage ........................................................................................................................................3.7. Conclusion .................................................................................................................................. 18

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

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

    5. Définition des données ........................................................................................................................... 405.1. Notions fondamentales sur les tables ................................................................................................ 405.2. Valeurs par défaut ........................................................................................................................ 415.3. Contraintes ................................................................................................................................. 415.4. Colonnes système ......................................................................................................................... 485.5. Modification des tables .................................................................................................................. 495.6. Droits ......................................................................................................................................... 505.7. Schémas ..................................................................................................................................... 515.8. L'héritage ......................................................................................................................................5.9. Partitionnement ............................................................................................................................ 575.10. Données distantes ....................................................................................................................... 635.11. Autres objets de la base de données ................................................................................................ 635.12. Gestion des dépendances .............................................................................................................. 64

    6. Manipulation de données ........................................................................................................................ 656.1. Insérer des données ....................................................................................................................... 656.2. Actualiser les données ................................................................................................................... 666.3. Supprimer des données .................................................................................................................. 666.4. Renvoyer des données provenant de lignes modifiées .......................................................................... 67

    7. Requêtes ............................................................................................................................................. 687.1. Aperçu ....................................................................................................................................... 687.2. Expressions de table ..................................................................................................................... 687.3. Listes de sélection ........................................................................................................................ 787.4. Combiner des requêtes .................................................................................................................. 797.5. Tri des lignes ............................................................................................................................... 797.6. LIMIT et OFFSET ....................................................................................................................... 807.7. Listes VALUES ............................................................................................................................ 817.8. Requêtes WITH (Common Table Expressions) ................................................................................... 81

    iii

  • 8. Types de données ................................................................................................................................. 878.1. Types numériques ........................................................................................................................ 888.2. Types monétaires ......................................................................................................................... 918.3. Types caractère ............................................................................................................................ 928.4. Types de données binaires .............................................................................................................. 948.5. Types date/heure .......................................................................................................................... 958.6. Type booléen ............................................................................................................................. 1048.7. Types énumération ..................................................................................................................... 1058.8. Types géométriques .................................................................................................................... 1068.9. Types adresses réseau ................................................................................................................. 1088.10. Type chaîne de bits ................................................................................................................... 1108.11. Types de recherche plein texte .................................................................................................... 1108.12. Type UUID ............................................................................................................................. 1138.13. Type XML .............................................................................................................................. 1138.14. Types JSON ............................................................................................................................ 1158.15. Tableaux ................................................................................................................................. 1208.16. Types composites ..................................................................................................................... 1278.17. Types intervalle de valeurs ......................................................................................................... 1328.18. Types identifiant d'objet ............................................................................................................. 1378.19. pg_lsn Type ............................................................................................................................. 1388.20. Pseudo-Types .......................................................................................................................... 138

    9. Fonctions et opérateurs ........................................................................................................................ 1409.1. Opérateurs logiques .................................................................................................................... 1409.2. Opérateurs de comparaison .......................................................................................................... 1409.3. Fonctions et opérateurs mathématiques ........................................................................................... 1429.4. Fonctions et opérateurs de chaînes ................................................................................................. 1449.5. Fonctions et opérateurs de chaînes binaires ...................................................................................... 1559.6. Fonctions et opérateurs sur les chaînes de bits .................................................................................. 1579.7. Correspondance de motif ............................................................................................................. 1589.8. Fonctions de formatage des types de données .................................................................................. 1709.9. Fonctions et opérateurs sur date/heure ............................................................................................ 1759.10. Fonctions de support enum ......................................................................................................... 1859.11. Fonctions et opérateurs géométriques ........................................................................................... 1869.12. Fonctions et opérateurs sur les adresses réseau ............................................................................... 1899.13. Fonctions et opérateurs de la recherche plein texte .......................................................................... 1919.14. Fonctions XML ........................................................................................................................ 1949.15. Fonctions et opérateurs JSON ..................................................................................................... 2039.16. Fonctions de manipulation de séquences ....................................................................................... 2089.17. Expressions conditionnelles ........................................................................................................ 2109.18. Fonctions et opérateurs de tableaux .............................................................................................. 2129.19. Fonctions et opérateurs sur les données de type range ...................................................................... 2159.20. Fonctions d'agrégat ................................................................................................................... 2169.21. Fonctions Window .................................................................................................................... 2249.22. Expressions de sous-requêtes ...................................................................................................... 2269.23. Comparaisons de lignes et de tableaux .......................................................................................... 2289.24. Fonctions retournant des ensembles ............................................................................................. 2309.25. Fonctions d'informations système ................................................................................................ 2339.26. Fonctions d'administration système .............................................................................................. 2429.27. Fonctions trigger ...................................................................................................................... 2559.28. Fonctions des triggers sur les événements ...................................................................................... 256

    10. Conversion de types .......................................................................................................................... 25810.1. Aperçu ................................................................................................................................... 25810.2. Opérateurs ............................................................................................................................... 25910.3. Fonctions ................................................................................................................................ 26210.4. Stockage de valeurs ................................................................................................................... 26410.5. Constructions UNION, CASE et constructions relatives .................................................................... 265

    11. Index .............................................................................................................................................. 26811.1. Introduction ............................................................................................................................. 26811.2. Types d'index ........................................................................................................................... 26811.3. Index multicolonnes .................................................................................................................. 27011.4. Index et ORDER BY .................................................................................................................. 27111.5. Combiner des index multiples ..................................................................................................... 27111.6. Index d'unicité ......................................................................................................................... 272

    Documentation PostgreSQL 9.4.26

    iv

  • 11.7. Index d'expressions ................................................................................................................... 27211.8. Index partiels ........................................................................................................................... 27311.9. Classes et familles d'opérateurs ................................................................................................... 27511.10. Index et collationnements ......................................................................................................... 27611.11. Examiner l'utilisation des index ................................................................................................. 277

    12. Recherche plein texte ......................................................................................................................... 27812.1. Introduction ............................................................................................................................. 27812.2. Tables et index ......................................................................................................................... 28012.3. Contrôler la recherche plein texte ................................................................................................. 28212.4. Fonctionnalités supplémentaires .................................................................................................. 28712.5. Analyseurs .............................................................................................................................. 29112.6. Dictionnaires ........................................................................................................................... 29312.7. Exemple de configuration ........................................................................................................... 29912.8. Tester et déboguer la recherche plein texte ..................................................................................... 30112.9. Types d'index GiST et GIN ........................................................................................................ 30412.10. Support de psql ....................................................................................................................... 30512.11. Limites ................................................................................................................................. 30712.12. Migration à partir d'une recherche plein texte antérieure à 8.3 .......................................................... 308

    13. Contrôle d'accès simultané .................................................................................................................. 30913.1. Introduction ............................................................................................................................. 30913.2. Isolation des transactions ........................................................................................................... 30913.3. Verrouillage explicite ................................................................................................................ 31313.4. Vérification de cohérence des données au niveau de l'application ....................................................... 31813.5. Avertissements ......................................................................................................................... 31913.6. Verrous et index ....................................................................................................................... 319

    14. Conseils sur les performances .............................................................................................................. 32014.1. Utiliser EXPLAIN ................................................................................................................... 32014.2. Statistiques utilisées par le planificateur ........................................................................................ 32814.3. Contrôler le planificateur avec des clauses JOIN explicites .............................................................. 32914.4. Remplir une base de données ...................................................................................................... 33114.5. Configuration avec une perte acceptée .......................................................................................... 333

    III. Administration du serveur ......................................................................................................................... 33515. Procédure d'installation de PostgreSQL™ du code source ......................................................................... 336

    15.1. Version courte ......................................................................................................................... 33615.2. Prérequis ................................................................................................................................. 33615.3. Obtenir les sources .................................................................................................................... 33815.4. Procédure d'installation .............................................................................................................. 33815.5. Initialisation post-installation ...................................................................................................... 34715.6. Démarrer ................................................................................................................................ 34815.7. Et maintenant ? ........................................................................................................................ 34815.8. Plateformes supportées .............................................................................................................. 34915.9. Notes spécifiques à des plateformes ............................................................................................. 349

    16. Installation à partir du code source sur Windows™ .................................................................................. 35716.1. Construire avec Visual C++™ ou le Microsoft Windows SDK™ ....................................................... 35716.2. Construire libpq avec Visual C++™ ou Borland C++™ ................................................................... 361

    17. Configuration du serveur et mise en place .............................................................................................. 36317.1. Compte utilisateur PostgreSQL™ ................................................................................................ 36317.2. Créer un groupe de base de données ............................................................................................. 36317.3. Lancer le serveur de bases de données .......................................................................................... 36417.4. Gérer les ressources du noyau ..................................................................................................... 36617.5. Arrêter le serveur ...................................................................................................................... 37417.6. Mise à jour d'une instance PostgreSQL™ ...................................................................................... 37517.7. Empêcher l'usurpation de serveur ................................................................................................. 37717.8. Options de chiffrement .............................................................................................................. 37717.9. Connexions tcp/ip sécurisées avec ssl ........................................................................................... 37817.10. Connexions tcp/ip sécurisées avec des tunnels ssh tunnels ............................................................... 38117.11. Enregistrer le journal des événements sous Windows .................................................................... 381

    18. Configuration du serveur .................................................................................................................... 38318.1. Paramètres de configuration ........................................................................................................ 38318.2. Emplacement des fichiers ........................................................................................................... 38618.3. Connexions et authentification .................................................................................................... 38718.4. Consommation des ressources ..................................................................................................... 39118.5. Write Ahead Log ...................................................................................................................... 395

    Documentation PostgreSQL 9.4.26

    v

  • 18.6. Réplication .............................................................................................................................. 39918.7. Planification des requêtes ........................................................................................................... 40118.8. Remonter et tracer les erreurs ...................................................................................................... 40518.9. Statistiques d'exécution .............................................................................................................. 41218.10. Nettoyage (vacuum) automatique .............................................................................................. 41318.11. Valeurs par défaut des connexions client ..................................................................................... 41518.12. Gestion des verrous ................................................................................................................. 42118.13. Compatibilité de version et de plateforme .................................................................................... 42118.14. Gestion des erreurs .................................................................................................................. 42318.15. Options préconfigurées ............................................................................................................ 42418.16. Options personnalisées ............................................................................................................. 42518.17. Options pour les développeurs ................................................................................................... 42518.18. Options courtes ...................................................................................................................... 427

    19. Authentification du client ................................................................................................................... 42919.1. Le fichier pg_hba.conf ......................................................................................................... 42919.2. Correspondances d'utilisateurs .................................................................................................... 43419.3. Méthodes d'authentification ........................................................................................................ 43519.4. Problèmes d'authentification ....................................................................................................... 441

    20. Rôles de la base de données ................................................................................................................ 44320.1. Rôles de la base de données ........................................................................................................ 44320.2. Attributs des rôles ..................................................................................................................... 44320.3. Appartenance d'un rôle .............................................................................................................. 44420.4. Supprimer des rôles ................................................................................................................... 44620.5. Sécurité des fonctions ................................................................................................................ 446

    21. Administration des bases de données .................................................................................................... 44721.1. Aperçu ................................................................................................................................... 44721.2. Création d'une base de données ................................................................................................... 44721.3. Bases de données modèles .......................................................................................................... 44821.4. Configuration d'une base de données ............................................................................................ 44921.5. Détruire une base de données ...................................................................................................... 44921.6. Tablespaces ............................................................................................................................. 449

    22. Localisation ..................................................................................................................................... 45222.1. Support des locales ................................................................................................................... 45222.2. Support des collations ................................................................................................................ 45422.3. Support des jeux de caractères ..................................................................................................... 456

    23. Planifier les tâches de maintenance ....................................................................................................... 46123.1. Nettoyages réguliers .................................................................................................................. 46123.2. Ré-indexation régulière .............................................................................................................. 46723.3. Maintenance du fichier de traces .................................................................................................. 467

    24. Sauvegardes et restaurations ................................................................................................................ 46924.1. Sauvegarde SQL ...................................................................................................................... 46924.2. Sauvegarde de niveau système de fichiers ...................................................................................... 47124.3. Archivage continu et récupération d'un instantané (PITR) ................................................................. 472

    25. Haute disponibilité, répartition de charge et réplication ............................................................................. 48125.1. Comparaison de différentes solutions ........................................................................................... 48125.2. Serveurs de Standby par transfert de journaux ................................................................................ 48325.3. Bascule (Failover) .................................................................................................................... 49025.4. Méthode alternative pour le log shipping ....................................................................................... 49025.5. Hot Standby ............................................................................................................................ 492

    26. Configuration de la récupération .......................................................................................................... 49926.1. Paramètres de récupération de l'archive ......................................................................................... 49926.2. Paramètres de cible de récupération .............................................................................................. 50026.3. Paramètres de serveur de Standby ................................................................................................ 500

    27. Surveiller l'activité de la base de données ............................................................................................... 50227.1. Outils Unix standard ................................................................................................................. 50227.2. Le récupérateur de statistiques ..................................................................................................... 50327.3. Visualiser les verrous ................................................................................................................ 51427.4. Traces dynamiques ................................................................................................................... 514

    28. Surveiller l'utilisation des disques ......................................................................................................... 52328.1. Déterminer l'utilisation des disques .............................................................................................. 52328.2. Panne pour disque saturé ............................................................................................................ 524

    29. Fiabilité et journaux de transaction ....................................................................................................... 52529.1. Fiabilité .................................................................................................................................. 525

    Documentation PostgreSQL 9.4.26

    vi

  • 29.2. Write-Ahead Logging (WAL) ..................................................................................................... 52629.3. Validation asynchrone (Asynchronous Commit) ............................................................................. 52729.4. Configuration des journaux de transaction ..................................................................................... 52829.5. Vue interne des journaux de transaction ........................................................................................ 530

    30. Tests de régression ............................................................................................................................ 53230.1. Lancer les tests ......................................................................................................................... 53230.2. Évaluation des tests ................................................................................................................... 53430.3. Fichiers de comparaison de variants ............................................................................................. 53630.4. TAP Tests ............................................................................................................................... 53730.5. Examen de la couverture du test .................................................................................................. 537

    IV. Interfaces client ...................................................................................................................................... 53831. libpq - Bibliothèque C ........................................................................................................................ 539

    31.1. Fonctions de contrôle de connexion à la base de données .................................................................. 53931.2. Fonctions de statut de connexion ................................................................................................. 54831.3. Fonctions de commandes d'exécution ........................................................................................... 55131.4. Traitement des commandes asynchrones ....................................................................................... 56331.5. Récupérer le résultats des requêtes ligne par ligne ........................................................................... 56731.6. Annuler des requêtes en cours d'exécution ..................................................................................... 56731.7. Interface à chemin rapide ........................................................................................................... 56831.8. Notification asynchrone ............................................................................................................. 56931.9. Fonctions associées avec la commande COPY ............................................................................... 56931.10. Fonctions de contrôle ............................................................................................................... 57331.11. Fonctions diverses ................................................................................................................... 57431.12. Traitement des messages .......................................................................................................... 57631.13. Système d'événements ............................................................................................................. 57731.14. Variables d'environnement ........................................................................................................ 58231.15. Fichier de mots de passe ........................................................................................................... 58331.16. Fichier des connexions de service ............................................................................................... 58431.17. Recherches LDAP des paramètres de connexion ........................................................................... 58431.18. Support de SSL ...................................................................................................................... 58531.19. Comportement des programmes threadés ..................................................................................... 58831.20. Construire des applications avec libpq ......................................................................................... 58931.21. Exemples de programmes ......................................................................................................... 590

    32. Objets larges .................................................................................................................................... 59932.1. Introduction ............................................................................................................................. 59932.2. Fonctionnalités d'implémentation ................................................................................................. 59932.3. Interfaces client ........................................................................................................................ 59932.4. Fonctions du côté serveur ........................................................................................................... 60232.5. Programme d'exemple ............................................................................................................... 603

    33. ECPG SQL embarqué en C ................................................................................................................. 60833.1. Le Concept .............................................................................................................................. 60833.2. Gérer les Connexions à la Base de Données ................................................................................... 60833.3. Exécuter des Commandes SQL ................................................................................................... 61133.4. Utiliser des Variables Hôtes ........................................................................................................ 61333.5. SQL Dynamique ...................................................................................................................... 62533.6. Librairie pgtypes ...................................................................................................................... 62633.7. Utiliser les Zones de Descripteur ................................................................................................. 63833.8. Gestion des Erreurs ................................................................................................................... 64933.9. Directives de Préprocesseur ........................................................................................................ 65433.10. Traiter des Programmes en SQL Embarqué .................................................................................. 65633.11. Fonctions de la Librairie ........................................................................................................... 65633.12. Large Objects ......................................................................................................................... 65733.13. Applications C++ .................................................................................................................... 65833.14. Commandes SQL Embarquées .................................................................................................. 66133.15. Mode de Compatibilité Informix™ ............................................................................................. 68133.16. Fonctionnement Interne ............................................................................................................ 693

    34. Schéma d'information ........................................................................................................................ 69534.1. Le schéma ............................................................................................................................... 69534.2. Types de données ..................................................................................................................... 69534.3. information_schema_catalog_name ............................................................................... 69534.4. administrable_role_authorizations ........................................................................... 69634.5. applicable_roles ............................................................................................................. 69634.6. attributes ......................................................................................................................... 696

    Documentation PostgreSQL 9.4.26

    vii

  • 34.7. character_sets ................................................................................................................. 69934.8. check_constraint_routine_usage ................................................................................. 70034.9. check_constraints ........................................................................................................... 70034.10. collations ........................................................................................................................ 70034.11. collation_character_set_applicability .................................................................. 70134.12. column_domain_usage ...................................................................................................... 70134.13. column_options ................................................................................................................ 70134.14. column_privileges .......................................................................................................... 70234.15. column_udt_usage ............................................................................................................ 70234.16. columns .............................................................................................................................. 70334.17. constraint_column_usage .............................................................................................. 70534.18. constraint_table_usage ................................................................................................ 70634.19. data_type_privileges .................................................................................................... 70634.20. domain_constraints ........................................................................................................ 70734.21. domain_udt_usage ............................................................................................................ 70734.22. domains .............................................................................................................................. 70834.23. element_types .................................................................................................................. 70934.24. enabled_roles .................................................................................................................. 71134.25. foreign_data_wrapper_options .................................................................................... 71134.26. foreign_data_wrappers .................................................................................................. 71234.27. foreign_server_options ................................................................................................ 71234.28. foreign_servers .............................................................................................................. 71234.29. foreign_table_options .................................................................................................. 71334.30. foreign_tables ................................................................................................................ 71334.31. key_column_usage ............................................................................................................ 71334.32. parameters ........................................................................................................................ 71434.33. referential_constraints .............................................................................................. 71534.34. role_column_grants ........................................................................................................ 71634.35. role_routine_grants ...................................................................................................... 71634.36. role_table_grants .......................................................................................................... 71734.37. role_udt_grants .............................................................................................................. 71734.38. role_usage_grants .......................................................................................................... 71834.39. routine_privileges ........................................................................................................ 71834.40. routines ............................................................................................................................ 71934.41. schemata ............................................................................................................................ 72234.42. sequences .......................................................................................................................... 72334.43. sql_features .................................................................................................................... 72334.44. sql_implementation_info .............................................................................................. 72434.45. sql_languages .................................................................................................................. 72434.46. sql_packages .................................................................................................................... 72534.47. sql_parts .......................................................................................................................... 72534.48. sql_sizing ........................................................................................................................ 72534.49. sql_sizing_profiles ...................................................................................................... 72634.50. table_constraints .......................................................................................................... 72634.51. table_privileges ............................................................................................................ 72634.52. tables ................................................................................................................................ 72734.53. triggered_update_columns ............................................................................................ 72834.54. triggers ............................................................................................................................ 72834.55. udt_privileges ................................................................................................................ 72934.56. usage_privileges ............................................................................................................ 73034.57. user_defined_types ........................................................................................................ 73034.58. user_mapping_options .................................................................................................... 73134.59. user_mappings .................................................................................................................. 73234.60. view_column_usage .......................................................................................................... 73234.61. view_routine_usage ........................................................................................................ 73334.62. view_table_usage ............................................................................................................ 73334.63. views .................................................................................................................................. 734

    V. Programmation serveur ............................................................................................................................. 73535. Étendre SQL .................................................................................................................................... 736

    35.1. L'extensibilité .......................................................................................................................... 73635.2. Le système des types de PostgreSQL™ ......................................................................................... 73635.3. Fonctions utilisateur .................................................................................................................. 73735.4. Fonctions en langage de requêtes (SQL) ........................................................................................ 738

    Documentation PostgreSQL 9.4.26

    viii

  • 35.5. Surcharge des fonctions ............................................................................................................. 74935.6. Catégories de volatilité des fonctions ............................................................................................ 75035.7. Fonctions en langage de procédures ............................................................................................. 75135.8. Fonctions internes ..................................................................................................................... 75135.9. Fonctions en langage C .............................................................................................................. 75135.10. Agrégats utilisateur ................................................................................................................. 77035.11. Types utilisateur ..................................................................................................................... 77535.12. Opérateurs définis par l'utilisateur .............................................................................................. 77835.13. Informations sur l'optimisation d'un opérateur .............................................................................. 77835.14. Interfacer des extensions d'index ................................................................................................ 78235.15. Empaqueter des objets dans une extension ................................................................................... 79135.16. Outils de construction d'extension .............................................................................................. 796

    36. Déclencheurs (triggers) ...................................................................................................................... 79936.1. Aperçu du comportement des déclencheurs .................................................................................... 79936.2. Visibilité des modifications des données ....................................................................................... 80136.3. Écrire des fonctions déclencheurs en C ......................................................................................... 80136.4. Un exemple complet de trigger .................................................................................................... 803

    37. Déclencheurs (triggers) sur évènement .................................................................................................. 80637.1. Aperçu du fonctionnement des triggers sur évènement ..................................................................... 80637.2. Matrice de déclenchement des triggers sur évènement ...................................................................... 80637.3. Écrire des fonctions trigger sur événement en C .............................................................................. 80937.4. Un exemple complet de trigger sur événement ................................................................................ 810

    38. Système de règles .............................................................................................................................. 81238.1. Arbre de requêtes ..................................................................................................................... 81238.2. Vues et système de règles ........................................................................................................... 81338.3. Vues matérialisées .................................................................................................................... 81938.4. Règles sur insert, update et delete .............................................................................................. 82138.5. Règles et droits ........................................................................................................................ 83038.6. Règles et statut de commande ..................................................................................................... 83238.7. Règles contre déclencheurs ......................................................................................................... 832

    39. Langages de procédures ..................................................................................................................... 83539.1. Installation des langages de procédures ......................................................................................... 835

    40. PL/pgSQL - Langage de procédures SQL .............................................................................................. 83740.1. Aperçu ................................................................................................................................... 83740.2. Structure de PL/pgSQL .............................................................................................................. 83840.3. Déclarations ............................................................................................................................ 83940.4. Expressions ............................................................................................................................. 84440.5. Instructions de base ................................................................................................................... 84440.6. Structures de contrôle ................................................................................................................ 85040.7. Curseurs ................................................................................................................................. 86240.8. Erreurs et messages ................................................................................................................... 86740.9. Procédures trigger ..................................................................................................................... 86940.10. Les dessous de PL/pgSQL ........................................................................................................ 87540.11. Astuces pour développer en PL/pgSQL ....................................................................................... 87840.12. Portage d'Oracle™ PL/SQL ...................................................................................................... 880

    41. PL/Tcl - Langage de procédures Tcl ..................................................................................................... 88941.1. Aperçu ................................................................................................................................... 88941.2. Fonctions et arguments PL/Tcl .................................................................................................... 88941.3. Valeurs des données avec PL/Tcl ................................................................................................. 89041.4. Données globales avec PL/Tcl ..................................................................................................... 89041.5. Accès à la base de données depuis PL/Tcl ..................................................................................... 89141.6. Procédures pour déclencheurs en PL/Tcl ....................................................................................... 89241.7. Procédures de trigger sur événement en PL/Tcl .............................................................................. 89441.8. Les modules et la commande unknown ....................................................................................... 89441.9. Noms de procédure Tcl .............................................................................................................. 895

    42. PL/Perl - Langage de procédures Perl .................................................................................................... 89642.1. Fonctions et arguments PL/Perl ................................................................................................... 89642.2. Valeurs en PL/Perl .................................................................................................................... 89942.3. Fonction incluses ...................................................................................................................... 89942.4. Valeurs globales dans PL/Perl ..................................................................................................... 90342.5. Niveaux de confiance de PL/Perl ................................................................................................. 90342.6. Déclencheurs PL/Perl ................................................................................................................ 90442.7. Triggers sur événements avec PL/Perl .......................................................................................... 905

    Documentation PostgreSQL 9.4.26

    ix

  • 42.8. PL/Perl sous le capot ................................................................................................................. 90643. PL/Python - Langage de procédures Python ........................................................................................... 908

    43.1. Python 2 et Python 3 ................................................................................................................. 90843.2. Fonctions PL/Python ................................................................................................................. 90943.3. Valeur des données avec PL/Python ............................................................................................. 91043.4. Sharing Data ............................................................................................................................ 91443.5. Blocs de code anonymes ............................................................................................................ 91443.6. Fonctions de déclencheurs .......................................................................................................... 91443.7. Accès à la base de données ......................................................................................................... 91543.8. Sous-transactions explicites ........................................................................................................ 91843.9. Fonctions outils ........................................................................................................................ 91943.10. Variables d'environnement ........................................................................................................ 920

    44. Interface de programmation serveur ...................................................................................................... 92144.1. Fonctions d'interface ................................................................................................................. 92144.2. Fonctions de support d'interface .................................................................................................. 95144.3. Gestion de la mémoire ............................................................................................................... 95944.4. Visibilité des modifications de données ......................................................................................... 96844.5. Exemples ................................................................................................................................ 968

    45. Processus en tâche de fond (background worker) ..................................................................................... 97146. Décodage logique (Logical Decoding) .................................................................................................. 973

    46.1. Exemples de décodage logique .................................................................................................... 97346.2. Concepts de décodage logique ..................................................................................................... 97546.3. Interface du protocole de réplication par flux ................................................................................. 97646.4. Interface SQL de décodage logique .............................................................................................. 97646.5. Catalogues systèmes liés au décodage logique ................................................................................ 97646.6. Plugins de sortie de décodage logique ........................................................................................... 97646.7. Écrivains de sortie de décodage logique ........................................................................................ 97846.8. Support de la réplication synchrone pour le décodage logique ........................................................... 979

    VI. Référence .............................................................................................................................................. 980I. Commandes SQL ................................................................................................................................ 981

    ABORT ......................................................................................................................................... 982ALTER AGGREGATE ..................................................................................................................... 983ALTER COLLATION ...................................................................................................................... 985ALTER CONVERSION .................................................................................................................... 986ALTER DATABASE ....................................................................................................................... 987ALTER DEFAULT PRIVILEGES ...................................................................................................... 989ALTER DOMAIN ........................................................................................................................... 992ALTER EVENT TRIGGER ............................................................................................................... 995ALTER EXTENSION ...................................................................................................................... 996ALTER FOREIGN DATA WRAPPER ................................................................................................ 999ALTER FOREIGN TABLE ............................................................................................................. 1001ALTER FUNCTION ...................................................................................................................... 1004ALTER GROUP ............................................................................................................................ 1007ALTER INDEX ............................................................................................................................. 1008ALTER LANGUAGE ..................................................................................................................... 1010ALTER LARGE OBJECT ............................................................................................................... 1011ALTER MATERIALIZED VIEW ..................................................................................................... 1012ALTER OPERATOR ...................................................................................................................... 1014ALTER OPERATOR CLASS .......................................................................................................... 1015ALTER OPERATOR FAMILY ........................................................................................................ 1016ALTER ROLE .............................................................................................................................. 1019ALTER RULE .............................................................................................................................. 1022ALTER SCHEMA ......................................................................................................................... 1023ALTER SEQUENCE ...................................................................................................................... 1024ALTER SERVER .......................................................................................................................... 1026ALTER SYSTEM .......................................................................................................................... 1027ALTER TABLE ............................................................................................................................ 1029ALTER TABLESPACE .................................................................................................................. 1038ALTER TEXT SEARCH CONFIGURATION .................................................................................... 1039ALTER TEXT SEARCH DICTIONARY ........................................................................................... 1041ALTER TEXT SEARCH PARSER ................................................................................................... 1043ALTER TEXT SEARCH TEMPLATE .............................................................................................. 1044ALTER TRIGGER ......................................................................................................................... 1045

    Documentation PostgreSQL 9.4.26

    x

  • ALTER TYPE ............................................................................................................................... 1046ALTER USER ............................................................................................................................... 1049ALTER USER MAPPING ............................................................................................................... 1050ALTER VIEW .............................................................................................................................. 1051ANALYZE ................................................................................................................................... 1053BEGIN ........................................................................................................................................ 1055CHECKPOINT .............................................................................................................................. 1057CLOSE ........................................................................................................................................ 1058CLUSTER .................................................................................................................................... 1059COMMENT .................................................................................................................................. 1061COMMIT ..................................................................................................................................... 1064COMMIT PREPARED ................................................................................................................... 1065COPY .......................................................................................................................................... 1066CREATE AGGREGATE ................................................................................................................. 1074CREATE CAST ............................................................................................................................ 1079CREATE COLLATION .................................................................................................................. 1083CREATE CONVERSION ............................................................................................................... 1085CREATE DATABASE ................................................................................................................... 1087CREATE DOMAIN ....................................................................................................................... 1089CREATE EVENT TRIGGER ........................................................................................................... 1091CREATE EXTENSION .................................................................................................................. 1093CREATE FOREIGN DATA WRAPPER ............................................................................................ 1095CREATE FOREIGN TABLE ........................................................................................................... 1097CREATE FUNCTION .................................................................................................................... 1099CREATE GROUP .......................................................................................................................... 1105CREATE INDEX ........................................................................................................................... 1106CREATE LANGUAGE .................................................................................................................. 1111CREATE MATERIALIZED VIEW ................................................................................................... 1114CREATE OPERATOR ................................................................................................................... 1115CREATE OPERATOR CLASS ........................................................................................................ 1117CREATE OPERATOR FAMILY ...................................................................................................... 1120CREATE ROLE ............................................................................................................................ 1121CREATE RULE ............................................................................................................................ 1124CREATE SCHEMA ....................................................................................................................... 1127CREATE SEQUENCE ................................................................................................................... 1129CREATE SERVER ........................................................................................................................ 1132CREATE TABLE .......................................................................................................................... 1134CREATE TABLE AS ..................................................................................................................... 1145CREATE TABLESPACE ................................................................................................................ 1147CREATE TEXT SEARCH CONFIGURATION .................................................................................. 1149CREATE TEXT SEARCH DICTIONARY ......................................................................................... 1150CREATE TEXT SEARCH PARSER ................................................................................................. 1151CREATE TEXT SEARCH TEMPLATE ............................................................................................ 1152CREATE TRIGGER ...................................................................................................................... 1153CREATE TYPE ............................................................................................................................. 1158CREATE USER ............................................................................................................................ 1165CREATE USER MAPPING ............................................................................................................. 1166CREATE VIEW ............................................................................................................................ 1167DEALLOCATE ............................................................................................................................. 1171DECLARE ................................................................................................................................... 1172DELETE ...................................................................................................................................... 1175DISCARD .................................................................................................................................... 1177DO .............................................................................................................................................. 1178DROP AGGREGATE ..................................................................................................................... 1179DROP CAST ................................................................................................................................ 1181DROP COLLATION ...................................................................................................................... 1182DROP CONVERSION ................................................................................................................... 1183DROP DATABASE ....................................................................................................................... 1184DROP DOMAIN ........................................................................................................................... 1185DROP EXTENSION ...................................................................................................................... 1186DROP EVENT TRIGGER ............................................................................................................... 1187DROP FOREIGN DATA WRAPPER ................................................................................................ 1188DROP FOREIGN TABLE ............................................................................................................... 1189

    Documentation PostgreSQL 9.4.26

    xi

  • DROP FUNCTION ........................................................................................................................ 1190DROP GROUP .............................................................................................................................. 1191DROP INDEX ............................................................................................................................... 1192DROP LANGUAGE ...................................................................................................................... 1193DROP MATERIALIZED VIEW ....................................................................................................... 1194DROP OPERATOR ....................................................................................................................... 1195DROP OPERATOR CLASS ............................................................................................................ 1196DROP OPERATOR FAMILY .......................................................................................................... 1197DROP OWNED ............................................................................................................................. 1198DROP ROLE ................................................................................................................................ 1199DROP RULE ................................................................................................................................ 1200DROP SCHEMA ........................................................................................................................... 1201DROP SEQUENCE ........................................................................................................................ 1202DROP SERVER ............................................................................................................................ 1203DROP TABLE .............................................................................................................................. 1204DROP TABLESPACE .................................................................................................................... 1205DROP TEXT SEARCH CONFIGURATION ...................................................................................... 1206DROP TEXT SEARCH DICTIONARY ............................................................................................. 1207DROP TEXT SEARCH PARSER ..................................................................................................... 1208DROP TEXT SEARCH TEMPLATE ................................................................................................ 1209DROP TRIGGER ........................................................................................................................... 1210DROP TYPE ................................................................................................................................. 1211DROP USER ................................................................................................................................ 1212DROP USER MAPPING ................................................................................................................. 1213DROP VIEW ................................................................................................................................ 1214END ............................................................................................................................................ 1215EXECUTE ................................................................................................................................... 1216EXPLAIN .................................................................................................................................... 1217FETCH ........................................................................................................................................ 1221GRANT ....................................................................................................................................... 1224INSERT ....................................................................................................................................... 1230LISTEN ....................................................................................................................................... 1233LOAD ......................................................................................................................................... 1234LOCK .......................................................................................................................................... 1235MOVE ......................................................................................................................................... 1237NOTIFY ...................................................................................................................................... 1239PREPARE .................................................................................................................................... 1241PREPARE TRANSACTION ............................................................................................................ 1243REASSIGN OWNED ..................................................................................................................... 1245REFRESH MATERIALIZED VIEW ................................................................................................. 1246REINDEX .................................................................................................................................... 1248RELEASE SAVEPOINT ................................................................................................................. 1250RESET ........................................................................................................................................ 1251REVOKE ..................................................................................................................................... 1252ROLLBACK ................................................................................................................................. 1255ROLLBACK PREPARED ............................................................................................................... 1256ROLLBACK TO SAVEPOINT ........................................................................................................ 1257SAVEPOINT ................................................................................................................................ 1259SECURITY LABEL ....................................................................................................................... 1261SELECT ...................................................................................................................................... 1263SELECT INTO .............................................................................................................................. 1279SET ............................................................................................................................................. 1