documentation postgresql 10 · documentation postgresql 10 ... préface xix

2087
Documentation PostgreSQL 10.14 The PostgreSQL Global Development Group

Upload: others

Post on 01-Aug-2020

98 views

Category:

Documents


0 download

TRANSCRIPT

  • Documentation PostgreSQL 10.14

    The PostgreSQL Global Development Group

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

  • Préface ........................................................................................................................................................ xix1. Définition de PostgreSQL™ .................................................................................................................. xix2. Bref historique de PostgreSQL™ ............................................................................................................ xix3. Conventions ....................................................................................................................................... xxi4. Pour plus d'informations ........................................................................................................................ xxi5. Lignes de conduite pour les rapports de bogues ......................................................................................... xxi

    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 ..................................................................................................................... 38

    5. Définition des données ........................................................................................................................... 415.1. Notions fondamentales sur les tables ................................................................................................ 415.2. Valeurs par défaut ........................................................................................................................ 425.3. Contraintes ................................................................................................................................. 425.4. Colonnes système ......................................................................................................................... 495.5. Modification des tables .................................................................................................................. 505.6. Droits ......................................................................................................................................... 525.7. Row Security Policies ................................................................................................................... 525.8. Schémas ..................................................................................................................................... 575.9. L'héritage ......................................................................................................................................5.10. Partitionnement de tables ............................................................................................................. 635.11. Données distantes ....................................................................................................................... 735.12. Autres objets de la base de données ................................................................................................ 735.13. Gestion des dépendances .............................................................................................................. 74

    6. Manipulation de données ........................................................................................................................ 766.1. Insérer des données ....................................................................................................................... 766.2. Actualiser les données ................................................................................................................... 776.3. Supprimer des données .................................................................................................................. 776.4. Renvoyer des données provenant de lignes modifiées .......................................................................... 78

    7. Requêtes ............................................................................................................................................. 797.1. Aperçu ....................................................................................................................................... 797.2. Expressions de table ..................................................................................................................... 797.3. Listes de sélection ........................................................................................................................ 917.4. Combiner des requêtes .................................................................................................................. 927.5. Tri des lignes ............................................................................................................................... 927.6. LIMIT et OFFSET ....................................................................................................................... 937.7. Listes VALUES ............................................................................................................................ 94

    iii

  • 7.8. Requêtes WITH (Common Table Expressions) ................................................................................... 958. Types de données ............................................................................................................................... 100

    8.1. Types numériques ...................................................................................................................... 1018.2. Types monétaires ....................................................................................................................... 1058.3. Types caractère .......................................................................................................................... 1058.4. Types de données binaires ............................................................................................................ 1078.5. Types date/heure ........................................................................................................................ 1098.6. Type booléen ............................................................................................................................. 1168.7. Types énumération ..................................................................................................................... 1178.8. Types géométriques .................................................................................................................... 1198.9. Types adresses réseau ................................................................................................................. 1218.10. Type chaîne de bits ................................................................................................................... 1238.11. Types de recherche plein texte .................................................................................................... 1248.12. Type UUID ............................................................................................................................. 1268.13. Type XML .............................................................................................................................. 1278.14. Types JSON ............................................................................................................................ 1288.15. Tableaux ................................................................................................................................. 1348.16. Types composites ..................................................................................................................... 1418.17. Types intervalle de valeurs ......................................................................................................... 1468.18. Types identifiant d'objet ............................................................................................................. 1518.19. pg_lsn Type ............................................................................................................................. 1528.20. Pseudo-Types .......................................................................................................................... 152

    9. Fonctions et opérateurs ........................................................................................................................ 1549.1. Opérateurs logiques .................................................................................................................... 1549.2. Fonctions et opérateurs de comparaison .......................................................................................... 1549.3. Fonctions et opérateurs mathématiques ........................................................................................... 1569.4. Fonctions et opérateurs de chaînes ................................................................................................. 1599.5. Fonctions et opérateurs de chaînes binaires ...................................................................................... 1709.6. Fonctions et opérateurs sur les chaînes de bits .................................................................................. 1739.7. Correspondance de motif ............................................................................................................. 1749.8. Fonctions de formatage des types de données .................................................................................. 1869.9. Fonctions et opérateurs sur date/heure ............................................................................................ 1929.10. Fonctions de support enum ......................................................................................................... 2029.11. Fonctions et opérateurs géométriques ........................................................................................... 2039.12. Fonctions et opérateurs sur les adresses réseau ............................................................................... 2069.13. Fonctions et opérateurs de la recherche plein texte .......................................................................... 2089.14. Fonctions XML ........................................................................................................................ 2139.15. Fonctions et opérateurs JSON ..................................................................................................... 2249.16. Fonctions de manipulation de séquences ....................................................................................... 2329.17. Expressions conditionnelles ........................................................................................................ 2349.18. Fonctions et opérateurs de tableaux .............................................................................................. 2369.19. Fonctions et opérateurs sur les données de type range ...................................................................... 2399.20. Fonctions d'agrégat ................................................................................................................... 2409.21. Fonctions Window .................................................................................................................... 2509.22. Expressions de sous-requêtes ...................................................................................................... 2529.23. Comparaisons de lignes et de tableaux .......................................................................................... 2549.24. Fonctions retournant des ensembles ............................................................................................. 2579.25. Fonctions d'informations système ................................................................................................ 2599.26. Fonctions d'administration système .............................................................................................. 2739.27. Fonctions trigger ...................................................................................................................... 2919.28. Fonctions des triggers sur les événements ...................................................................................... 292

    10. Conversion de types .......................................................................................................................... 29510.1. Aperçu ................................................................................................................................... 29510.2. Opérateurs ............................................................................................................................... 29610.3. Fonctions ................................................................................................................................ 29910.4. Stockage de valeurs ................................................................................................................... 30110.5. Constructions UNION, CASE et constructions relatives .................................................................... 30210.6. Colonnes de sortie du SELECT ................................................................................................... 304

    11. Index .............................................................................................................................................. 30511.1. Introduction ............................................................................................................................. 30511.2. Types d'index ........................................................................................................................... 30511.3. Index multicolonnes .................................................................................................................. 30711.4. Index et ORDER BY .................................................................................................................. 308

    Documentation PostgreSQL 10.14

    iv

  • 11.5. Combiner des index multiples ..................................................................................................... 30911.6. Index d'unicité ......................................................................................................................... 30911.7. Index d'expressions ................................................................................................................... 31011.8. Index partiels ........................................................................................................................... 31011.9. Classes et familles d'opérateurs ................................................................................................... 31211.10. Index et collationnements ......................................................................................................... 31411.11. Parcours d'index seul ............................................................................................................... 31411.12. Examiner l'utilisation des index ................................................................................................. 316

    12. Recherche plein texte ......................................................................................................................... 31712.1. Introduction ............................................................................................................................. 31712.2. Tables et index ......................................................................................................................... 32012.3. Contrôler la recherche plein texte ................................................................................................. 32212.4. Fonctionnalités supplémentaires .................................................................................................. 32712.5. Analyseurs .............................................................................................................................. 33212.6. Dictionnaires ........................................................................................................................... 33312.7. Exemple de configuration ........................................................................................................... 34112.8. Tester et déboguer la recherche plein texte ..................................................................................... 34212.9. Types d'index GiST et GIN ........................................................................................................ 34612.10. Support de psql ....................................................................................................................... 34612.11. Limites ................................................................................................................................. 349

    13. Contrôle d'accès simultané .................................................................................................................. 35013.1. Introduction ............................................................................................................................. 35013.2. Isolation des transactions ........................................................................................................... 35013.3. Verrouillage explicite ................................................................................................................ 35513.4. Vérification de cohérence des données au niveau de l'application ....................................................... 35913.5. Avertissements ......................................................................................................................... 36013.6. Verrous et index ....................................................................................................................... 361

    14. Conseils sur les performances .............................................................................................................. 36214.1. Utiliser EXPLAIN ................................................................................................................... 36214.2. Statistiques utilisées par le planificateur ........................................................................................ 37114.3. Contrôler le planificateur avec des clauses JOIN explicites .............................................................. 37414.4. Remplir une base de données ...................................................................................................... 37514.5. Configuration avec une perte acceptée .......................................................................................... 378

    15. Requêtes parallélisées ........................................................................................................................ 37915.1. Comment fonctionne la parallélisation des requêtes ......................................................................... 37915.2. Quand la parallélisation des requêtes peut-elle être utilisée ? ............................................................. 37915.3. Plans parallélisés ...................................................................................................................... 38015.4. Sécurité sur la parallélisation ...................................................................................................... 382

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

    16.1. Version courte ......................................................................................................................... 38416.2. Prérequis ................................................................................................................................. 38416.3. Obtenir les sources .................................................................................................................... 38516.4. Procédure d'installation .............................................................................................................. 38616.5. Initialisation post-installation ...................................................................................................... 39516.6. Démarrer ................................................................................................................................ 39616.7. Et maintenant ? ........................................................................................................................ 39716.8. Plateformes supportées .............................................................................................................. 39716.9. Notes spécifiques à des plateformes ............................................................................................. 397

    17. Installation à partir du code source sur Windows™ .................................................................................. 40417.1. Construire avec Visual C++™ ou le Microsoft Windows SDK™ ....................................................... 404

    18. Configuration du serveur et mise en place .............................................................................................. 40918.1. Compte utilisateur PostgreSQL™ ................................................................................................ 40918.2. Créer un groupe de base de données ............................................................................................. 40918.3. Lancer le serveur de bases de données .......................................................................................... 41018.4. Gérer les ressources du noyau ..................................................................................................... 41318.5. Arrêter le serveur ...................................................................................................................... 42018.6. Mise à jour d'une instance PostgreSQL™ ...................................................................................... 42118.7. Empêcher l'usurpation de serveur ................................................................................................. 42318.8. Options de chiffrement .............................................................................................................. 42418.9. Connexions tcp/ip sécurisées avec ssl ........................................................................................... 42518.10. Connexions tcp/ip sécurisées avec des tunnels ssh tunnels ............................................................... 42718.11. Enregistrer le journal des événements sous Windows .................................................................... 428

    Documentation PostgreSQL 10.14

    v

  • 19. Configuration du serveur .................................................................................................................... 42919.1. Paramètres de configuration ........................................................................................................ 42919.2. Emplacement des fichiers ........................................................................................................... 43219.3. Connexions et authentification .................................................................................................... 43319.4. Consommation des ressources ..................................................................................................... 43719.5. Write Ahead Log ...................................................................................................................... 44219.6. Réplication .............................................................................................................................. 44719.7. Planification des requêtes ........................................................................................................... 45119.8. Remonter et tracer les erreurs ...................................................................................................... 45519.9. Statistiques d'exécution .............................................................................................................. 46419.10. Nettoyage (vacuum) automatique .............................................................................................. 46419.11. Valeurs par défaut des connexions client ..................................................................................... 46619.12. Gestion des verrous ................................................................................................................. 47219.13. Compatibilité de version et de plateforme .................................................................................... 47319.14. Gestion des erreurs .................................................................................................................. 47519.15. Options préconfigurées ............................................................................................................ 47519.16. Options personnalisées ............................................................................................................. 47719.17. Options pour les développeurs ................................................................................................... 47719.18. Options courtes ...................................................................................................................... 479

    20. Authentification du client ................................................................................................................... 48120.1. Le fichier pg_hba.conf ......................................................................................................... 48120.2. Correspondances d'utilisateurs .................................................................................................... 48620.3. Méthodes d'authentification ........................................................................................................ 48820.4. Problèmes d'authentification ....................................................................................................... 495

    21. Rôles de la base de données ................................................................................................................ 49721.1. Rôles de la base de données ........................................................................................................ 49721.2. Attributs des rôles ..................................................................................................................... 49721.3. Appartenance d'un rôle .............................................................................................................. 49821.4. Supprimer des rôles ................................................................................................................... 50021.5. Rôles par défaut ....................................................................................................................... 50021.6. Sécurité des fonctions ................................................................................................................ 501

    22. Administration des bases de données .................................................................................................... 50222.1. Aperçu ................................................................................................................................... 50222.2. Création d'une base de données ................................................................................................... 50222.3. Bases de données modèles .......................................................................................................... 50322.4. Configuration d'une base de données ............................................................................................ 50422.5. Détruire une base de données ...................................................................................................... 50422.6. Tablespaces ............................................................................................................................. 504

    23. Localisation ..................................................................................................................................... 50723.1. Support des locales ................................................................................................................... 50723.2. Support des collations ................................................................................................................ 50923.3. Support des jeux de caractères ..................................................................................................... 513

    24. Planifier les tâches de maintenance ....................................................................................................... 51924.1. Nettoyages réguliers .................................................................................................................. 51924.2. Ré-indexation régulière .............................................................................................................. 52524.3. Maintenance du fichier de traces .................................................................................................. 525

    25. Sauvegardes et restaurations ................................................................................................................ 52725.1. Sauvegarde SQL ...................................................................................................................... 52725.2. Sauvegarde de niveau système de fichiers ...................................................................................... 52925.3. Archivage continu et récupération d'un instantané (PITR) ................................................................. 530

    26. Haute disponibilité, répartition de charge et réplication ............................................................................. 54026.1. Comparaison de différentes solutions ........................................................................................... 54026.2. Serveurs de Standby par transfert de journaux ................................................................................ 54326.3. Bascule (Failover) .................................................................................................................... 55026.4. Méthode alternative pour le log shipping ....................................................................................... 55126.5. Hot Standby ............................................................................................................................ 552

    27. Configuration de la récupération .......................................................................................................... 55927.1. Paramètres de récupération de l'archive ......................................................................................... 55927.2. Paramètres de cible de récupération .............................................................................................. 56027.3. Paramètres de serveur de Standby ................................................................................................ 561

    28. Surveiller l'activité de la base de données ............................................................................................... 56328.1. Outils Unix standard ................................................................................................................. 56328.2. Le récupérateur de statistiques ..................................................................................................... 564

    Documentation PostgreSQL 10.14

    vi

  • 28.3. Visualiser les verrous ................................................................................................................ 58928.4. Rapporter la progression ............................................................................................................ 58928.5. Traces dynamiques ................................................................................................................... 591

    29. Surveiller l'utilisation des disques ......................................................................................................... 60029.1. Déterminer l'utilisation des disques .............................................................................................. 60029.2. Panne pour disque saturé ............................................................................................................ 601

    30. Fiabilité et journaux de transaction ....................................................................................................... 60230.1. Fiabilité .................................................................................................................................. 60230.2. Write-Ahead Logging (WAL) ..................................................................................................... 60330.3. Validation asynchrone (Asynchronous Commit) ............................................................................. 60430.4. Configuration des journaux de transaction ..................................................................................... 60530.5. Vue interne des journaux de transaction ........................................................................................ 607

    31. Réplication logique ........................................................................................................................... 60931.1. Publication .............................................................................................................................. 60931.2. Abonnement ............................................................................................................................ 61031.3. Conflits .................................................................................................................................. 61131.4. Restrictions ............................................................................................................................. 61131.5. Architecture ............................................................................................................................. 61131.6. Supervision ............................................................................................................................. 61231.7. Sécurité .................................................................................................................................. 61231.8. Paramètres de configuration ........................................................................................................ 61331.9. Démarrage rapide ..................................................................................................................... 613

    32. Tests de régression ............................................................................................................................ 61432.1. Lancer les tests ......................................................................................................................... 61432.2. Évaluation des tests ................................................................................................................... 61632.3. Fichiers de comparaison de variants ............................................................................................. 61832.4. TAP Tests ............................................................................................................................... 61932.5. Examen de la couverture du test .................................................................................................. 619

    IV. Interfaces client ...................................................................................................................................... 62033. libpq - Bibliothèque C ........................................................................................................................ 621

    33.1. Fonctions de contrôle de connexion à la base de données .................................................................. 62133.2. Fonctions de statut de connexion ................................................................................................. 63133.3. Fonctions de commandes d'exécution ........................................................................................... 63633.4. Traitement des commandes asynchrones ....................................................................................... 64833.5. Récupérer le résultats des requêtes ligne par ligne ........................................................................... 65133.6. Annuler des requêtes en cours d'exécution ..................................................................................... 65233.7. Interface à chemin rapide ........................................................................................................... 65333.8. Notification asynchrone ............................................................................................................. 65333.9. Fonctions associées avec la commande COPY ............................................................................... 65433.10. Fonctions de contrôle ............................................................................................................... 65833.11. Fonctions diverses ................................................................................................................... 65933.12. Traitement des messages .......................................................................................................... 66233.13. Système d'événements ............................................................................................................. 66233.14. Variables d'environnement ........................................................................................................ 66833.15. Fichier de mots de passe ........................................................................................................... 66933.16. Fichier des connexions de service ............................................................................................... 66933.17. Recherches LDAP des paramètres de connexion ........................................................................... 67033.18. Support de SSL ...................................................................................................................... 67033.19. Comportement des programmes threadés ..................................................................................... 67433.20. Construire des applications avec libpq ......................................................................................... 67433.21. Exemples de programmes ......................................................................................................... 676

    34. Objets larges .................................................................................................................................... 68434.1. Introduction ............................................................................................................................. 68434.2. Fonctionnalités d'implémentation ................................................................................................. 68434.3. Interfaces client ........................................................................................................................ 68434.4. Fonctions du côté serveur ........................................................................................................... 68734.5. Programme d'exemple ............................................................................................................... 688

    35. ECPG SQL embarqué en C ................................................................................................................. 69335.1. Le Concept .............................................................................................................................. 69335.2. Gérer les Connexions à la Base de Données ................................................................................... 69335.3. Exécuter des Commandes SQL ................................................................................................... 69635.4. Utiliser des Variables Hôtes ........................................................................................................ 69835.5. SQL Dynamique ...................................................................................................................... 710

    Documentation PostgreSQL 10.14

    vii

  • 35.6. Librairie pgtypes ...................................................................................................................... 71235.7. Utiliser les Zones de Descripteur ................................................................................................. 72335.8. Gestion des Erreurs ................................................................................................................... 73435.9. Directives de Préprocesseur ........................................................................................................ 73935.10. Traiter des Programmes en SQL Embarqué .................................................................................. 74135.11. Fonctions de la Librairie ........................................................................................................... 74235.12. Large Objects ......................................................................................................................... 74235.13. Applications C++ .................................................................................................................... 74435.14. Commandes SQL Embarquées .................................................................................................. 74735.15. Mode de Compatibilité Informix™ ............................................................................................. 76735.16. Fonctionnement Interne ............................................................................................................ 779

    36. Schéma d'information ........................................................................................................................ 78136.1. Le schéma ............................................................................................................................... 78136.2. Types de données ..................................................................................................................... 78136.3. information_schema_catalog_name ............................................................................... 78136.4. administrable_role_authorizations ........................................................................... 78236.5. applicable_roles ............................................................................................................. 78236.6. attributes ......................................................................................................................... 78236.7. character_sets ................................................................................................................. 78536.8. check_constraint_routine_usage ................................................................................. 78636.9. check_constraints ........................................................................................................... 78636.10. collations ........................................................................................................................ 78636.11. collation_character_set_applicability .................................................................. 78736.12. column_domain_usage ...................................................................................................... 78736.13. column_options ................................................................................................................ 78736.14. column_privileges .......................................................................................................... 78836.15. column_udt_usage ............................................................................................................ 78836.16. columns .............................................................................................................................. 78936.17. constraint_column_usage .............................................................................................. 79136.18. constraint_table_usage ................................................................................................ 79236.19. data_type_privileges .................................................................................................... 79236.20. domain_constraints ........................................................................................................ 79336.21. domain_udt_usage ............................................................................................................ 79336.22. domains .............................................................................................................................. 79436.23. element_types .................................................................................................................. 79536.24. enabled_roles .................................................................................................................. 79736.25. foreign_data_wrapper_options .................................................................................... 79736.26. foreign_data_wrappers .................................................................................................. 79836.27. foreign_server_options ................................................................................................ 79836.28. foreign_servers .............................................................................................................. 79836.29. foreign_table_options .................................................................................................. 79936.30. foreign_tables ................................................................................................................ 79936.31. key_column_usage ............................................................................................................ 79936.32. parameters ........................................................................................................................ 80036.33. referential_constraints .............................................................................................. 80136.34. role_column_grants ........................................................................................................ 80236.35. role_routine_grants ...................................................................................................... 80236.36. role_table_grants .......................................................................................................... 80336.37. role_udt_grants .............................................................................................................. 80336.38. role_usage_grants .......................................................................................................... 80436.39. routine_privileges ........................................................................................................ 80436.40. routines ............................................................................................................................ 80536.41. schemata ............................................................................................................................ 80836.42. sequences .......................................................................................................................... 80936.43. sql_features .................................................................................................................... 80936.44. sql_implementation_info .............................................................................................. 81036.45. sql_languages .................................................................................................................. 81036.46. sql_packages .................................................................................................................... 81136.47. sql_parts .......................................................................................................................... 81136.48. sql_sizing ........................................................................................................................ 81136.49. sql_sizing_profiles ...................................................................................................... 81236.50. table_constraints .......................................................................................................... 81236.51. table_privileges ............................................................................................................ 812

    Documentation PostgreSQL 10.14

    viii

  • 36.52. tables ................................................................................................................................ 81336.53. transforms ........................................................................................................................ 81436.54. triggered_update_columns ............................................................................................ 81436.55. triggers ............................................................................................................................ 81436.56. udt_privileges ................................................................................................................ 81636.57. usage_privileges ............................................................................................................ 81636.58. user_defined_types ........................................................................................................ 81736.59. user_mapping_options .................................................................................................... 81836.60. user_mappings .................................................................................................................. 81836.61. view_column_usage .......................................................................................................... 81936.62. view_routine_usage ........................................................................................................ 81936.63. view_table_usage ............................................................................................................ 82036.64. views .................................................................................................................................. 820

    V. Programmation serveur ............................................................................................................................. 82237. Étendre SQL .................................................................................................................................... 823

    37.1. L'extensibilité .......................................................................................................................... 82337.2. Le système des types de PostgreSQL™ ......................................................................................... 82337.3. Fonctions utilisateur .................................................................................................................. 82437.4. Fonctions en langage de requêtes (SQL) ........................................................................................ 82537.5. Surcharge des fonctions ............................................................................................................. 83737.6. Catégories de volatilité des fonctions ............................................................................................ 83837.7. Fonctions en langage de procédures ............................................................................................. 83937.8. Fonctions internes ..................................................................................................................... 83937.9. Fonctions en langage C .............................................................................................................. 83937.10. Agrégats utilisateur ................................................................................................................. 85737.11. Types utilisateur ..................................................................................................................... 86237.12. Opérateurs définis par l'utilisateur .............................................................................................. 86637.13. Informations sur l'optimisation d'un opérateur .............................................................................. 86637.14. Interfacer des extensions d'index ................................................................................................ 87037.15. Empaqueter des objets dans une extension ................................................................................... 88037.16. Outils de construction d'extension .............................................................................................. 887

    38. Déclencheurs (triggers) ...................................................................................................................... 89038.1. Aperçu du comportement des déclencheurs .................................................................................... 89038.2. Visibilité des modifications des données ....................................................................................... 89238.3. Écrire des fonctions déclencheurs en C ......................................................................................... 89238.4. Un exemple complet de trigger .................................................................................................... 894

    39. Déclencheurs (triggers) sur évènement .................................................................................................. 89839.1. Aperçu du fonctionnement des triggers sur évènement ..................................................................... 89839.2. Matrice de déclenchement des triggers sur évènement ...................................................................... 89839.3. Écrire des fonctions trigger sur événement en C .............................................................................. 90239.4. Un exemple complet de trigger sur événement ................................................................................ 90339.5. Un exemple de trigger sur événement de table modifiée ................................................................... 904

    40. Système de règles .............................................................................................................................. 90640.1. Arbre de requêtes ..................................................................................................................... 90640.2. Vues et système de règles ........................................................................................................... 90740.3. Vues matérialisées .................................................................................................................... 91340.4. Règles sur insert, update et delete .............................................................................................. 91540.5. Règles et droits ........................................................................................................................ 92440.6. Règles et statut de commande ..................................................................................................... 92640.7. Règles contre déclencheurs ......................................................................................................... 926

    41. Langages de procédures ..................................................................................................................... 92941.1. Installation des langages de procédures ......................................................................................... 929

    42. PL/pgSQL - Langage de procédures SQL .............................................................................................. 93142.1. Aperçu ................................................................................................................................... 93142.2. Structure de PL/pgSQL .............................................................................................................. 93242.3. Déclarations ............................................................................................................................ 93342.4. Expressions ............................................................................................................................. 93842.5. Instructions de base ................................................................................................................... 93842.6. Structures de contrôle ................................................................................................................ 94542.7. Curseurs ................................................................................................................................. 95742.8. Erreurs et messages ................................................................................................................... 96242.9. Procédures trigger ..................................................................................................................... 96442.10. Les dessous de PL/pgSQL ........................................................................................................ 971

    Documentation PostgreSQL 10.14

    ix

  • 42.11. Astuces pour développer en PL/pgSQL ....................................................................................... 97442.12. Portage d'Oracle™ PL/SQL ...................................................................................................... 976

    43. PL/Tcl - Langage de procédures Tcl ..................................................................................................... 98543.1. Aperçu ................................................................................................................................... 98543.2. Fonctions et arguments PL/Tcl .................................................................................................... 98543.3. Valeurs des données avec PL/Tcl ................................................................................................. 98743.4. Données globales avec PL/Tcl ..................................................................................................... 98743.5. Accès à la base de données depuis PL/Tcl ..................................................................................... 98743.6. Procédures pour déclencheurs en PL/Tcl ....................................................................................... 98943.7. Procédures de trigger sur événement en PL/Tcl .............................................................................. 99043.8. Gestion des erreurs avec PL/Tcl .................................................................................................. 99143.9. Sous-transactions explicites dans PL/Tcl ....................................................................................... 99143.10. Configuration PL/Tcl ............................................................................................................... 99243.11. Noms de procédure Tcl ............................................................................................................ 993

    44. PL/Perl - Langage de procédures Perl .................................................................................................... 99444.1. Fonctions et arguments PL/Perl ................................................................................................... 99444.2. Valeurs en PL/Perl .................................................................................................................... 99744.3. Fonction incluses ...................................................................................................................... 99744.4. Valeurs globales dans PL/Perl ................................................................................................... 100144.5. Niveaux de confiance de PL/Perl ............................................................................................... 100144.6. Déclencheurs PL/Perl .............................................................................................................. 100244.7. Triggers sur événements avec PL/Perl ........................................................................................ 100344.8. PL/Perl sous le capot ............................................................................................................... 1004

    45. PL/Python - Langage de procédures Python ......................................................................................... 100645.1. Python 2 et Python 3 ............................................................................................................... 100645.2. Fonctions PL/Python ............................................................................................................... 100745.3. Valeur des données avec PL/Python ........................................................................................... 100845.4. Sharing Data .......................................................................................................................... 101245.5. Blocs de code anonymes .......................................................................................................... 101245.6. Fonctions de déclencheurs ........................................................................................................ 101345.7. Accès à la base de données ....................................................................................................... 101345.8. Sous-transactions explicites ...................................................................................................... 101645.9. Fonctions outils ...................................................................................................................... 101845.10. Variables d'environnement ...................................................................................................... 1018

    46. Interface de programmation serveur .................................................................................................... 102046.1. Fonctions d'interface ............................................................................................................... 102046.2. Fonctions de support d'interface ................................................................................................ 105146.3. Gestion de la mémoire ............................................................................................................. 105946.4. Visibilité des modifications de données ....................................................................................... 106846.5. Exemples .............................................................................................................................. 1068

    47. Processus en tâche de fond (background worker) ................................................................................... 107148. Décodage logique (Logical Decoding) ................................................................................................ 1074

    48.1. Exemples de décodage logique .................................................................................................. 107448.2. Concepts de décodage logique ................................................................................................... 107648.3. Interface du protocole de réplication par flux ............................................................................... 107748.4. Interface SQL de décodage logique ............................................................................................ 107748.5. Catalogues systèmes liés au décodage logique .............................................................................. 107748.6. Plugins de sortie de décodage logique ......................................................................................... 107748.7. Écrivains de sortie de décodage logique ...................................................................................... 108048.8. Support de la réplication synchrone pour le décodage logique ......................................................... 1080

    49. Tracer la progression de la réplication ................................................................................................. 1082VI. Référence ............................................................................................................................................ 1083

    I. Commandes SQL .............................................................................................................................. 1084ABORT ....................................................................................................................................... 1085ALTER AGGREGATE ................................................................................................................... 1086ALTER COLLATION .................................................................................................................... 1088ALTER CONVERSION .................................................................................................................. 1090ALTER DATABASE ..................................................................................................................... 1091ALTER DEFAULT PRIVILEGES .................................................................................................... 1093ALTER DOMAIN ......................................................................................................................... 1096ALTER EVENT TRIGGER ............................................................................................................. 1099ALTER EXTENSION .................................................................................................................... 1100ALTER FOREIGN DATA WRAPPER .............................................................................................. 1103

    Documentation PostgreSQL 10.14

    x

  • ALTER FOREIGN TABLE ............................................................................................................. 1105ALTER FUNCTION ...................................................................................................................... 1109ALTER GROUP ............................................................................................................................ 1112ALTER INDEX ............................................................................................................................. 1113ALTER LANGUAGE ..................................................................................................................... 1115ALTER LARGE OBJECT ............................................................................................................... 1116ALTER MATERIALIZED VIEW ..................................................................................................... 1117ALTER OPERATOR ...................................................................................................................... 1119ALTER OPERATOR CLASS .......................................................................................................... 1121ALTER OPERATOR FAMILY ........................................................................................................ 1122ALTER POLICY ........................................................................................................................... 1125ALTER PUBLICATION ................................................................................................................. 1126ALTER ROLE .............................................................................................................................. 1128ALTER RULE .............................................................................................................................. 1131ALTER SCHEMA ......................................................................................................................... 1132ALTER SEQUENCE ...................................................................................................................... 1133ALTER SERVER .......................................................................................................................... 1136ALTER STATISTICS ..................................................................................................................... 1137ALTER SUBSCRIPTION ............................................................................................................... 1138ALTER SYSTEM .......................................................................................................................... 1140ALTER TABLE ............................................................................................................................ 1142ALTER TABLESPACE .................................................................................................................. 1153ALTER TEXT SEARCH CONFIGURATION .................................................................................... 1154ALTER TEXT SEARCH DICTIONARY ........................................................................................... 1156ALTER TEXT SEARCH PARSER ................................................................................................... 1158ALTER TEXT SEARCH TEMPLATE .............................................................................................. 1159ALTER TRIGGER ......................................................................................................................... 1160ALTER TYPE ............................................................................................................................... 1161ALTER USER ............................................................................................................................... 1164ALTER USER MAPPING ............................................................................................................... 1165ALTER VIEW .............................................................................................................................. 1166ANALYZE ................................................................................................................................... 1168BEGIN ........................................................................................................................................ 1170CHECKPOINT .............................................................................................................................. 1172CLOSE ........................................................................................................................................ 1173CLUSTER .................................................................................................................................... 1174COMMENT .................................................................................................................................. 1176COMMIT ..................................................................................................................................... 1179COMMIT PREPARED ................................................................................................................... 1180COPY .......................................................................................................................................... 1181CREATE ACCESS METHOD ......................................................................................................... 1189CREATE AGGREGATE ................................................................................................................. 1190CREATE CAST ............................................................................................................................ 1196CREATE COLLATION .................................................................................................................. 1200CREATE CONVERSION ............................................................................................................... 1202CREATE DATABASE ................................................................................................................... 1204CREATE DOMAIN ....................................................................................................................... 1207CREATE EVENT TRIGGER ........................................................................................................... 1210CREATE EXTENSION .................................................................................................................. 1212CREATE FOREIGN DATA WRAPPER ............................................................................................ 1215CREATE FOREIGN TABLE ........................................................................................................... 1217CREATE FUNCTION .................................................................................................................... 1220CREATE GROUP .......................................................................................................................... 1226CREATE INDEX ........................................................................................................................... 1227CREATE LANGUAGE .................................................................................................................. 1232CREATE MATERIALIZED VIEW ................................................................................................... 1235CREATE OPERATOR ................................................................................................................... 1236CREATE OPERATOR CLASS ........................................................................................................ 1238CREATE OPERATOR FAMILY ...................................................................................................... 1241CREATE POLICY ......................................................................................................................... 1242CREATE PUBLICATION ............................................................................................................... 1247CREATE ROLE ............................................................................................................................ 1249CREATE RULE ............................................................................................................................ 1253

    Documentation PostgreSQL 10.14

    xi

  • CREATE SCHEMA ....................................................................................................................... 1256CREATE SEQUENCE ................................................................................................................... 1258CREATE SERVER ........................................................................................................................ 1261CREATE STATISTICS .................................................................................................................. 1263CREATE SUBSCRIPTION ............................................................................................................. 1265CREATE TABLE .......................................................................................................................... 1267CREATE TABLE AS ..................................................................................................................... 1282CREATE TABLESPACE ................................................................................................................ 1285CREATE TEXT SEARCH CONFIGURATION .................................................................................. 1287CREATE TEXT SEARCH DICTIONARY ......................................................................................... 1288CREATE TEXT SEARCH PARSER ................................................................................................. 1289CREATE TEXT SEARCH TEMPLATE ............................................................................................ 1290CREATE TRANSFORM ................................................................................................................ 1291CREATE TRIGGER ...................................................................................................................... 1293CREATE TYPE ............................................................................................................................. 1299CREATE USER ............................................................................................................................ 1306CREATE USER MAPPING ............................................................................................................. 1307CREATE VIEW ............................................................................................................................ 1308DEALLOCATE ............................................................................................................................. 1312DECLARE ................................................................................................................................... 1313DELETE ...................................................................................................................................... 1316DISCARD .................................................................................................................................... 1319DO .............................................................................................................................................. 1320DROP ACCESS METHOD ............................................................................................................. 1321DROP AGGREGATE ..................................................................................................................... 1322DROP CAST ................................................................................................................................ 1324DROP COLLATION ...................................................................................................................... 1325DROP CONVERSION ................................................................................................................... 1326DROP DATABASE ....................................................................................................................... 1327DROP DOMAIN ........................................................................................................................... 1328DROP EXTENSION ...................................................................................................................... 1329DROP EVENT TRIGGER ............................................................................................................... 1330DROP FOREIGN DATA WRAPPER ................................................................................................ 1331DROP FOREIGN TABLE ............................................................................................................... 1332DROP FUNCTION ........................................................................................................................ 1333DROP GROUP .............................................................................................................................. 1335DROP INDEX ............................................................................................................................... 1336DROP LANGUAGE ...................................................................................................................... 1337DROP MATERIALIZED VIEW ....................................................................................................... 1338DROP OPERATOR ....................................................................................................................... 1339DROP OPERATOR CLASS ............................................................................................................ 1340DROP OPERATOR FAMILY .......................................................................................................... 1341DROP OWNED ............................................................................................................................. 1342DROP POLICY ............................................................................................................................. 1343DROP PUBLICATION ................................................................................................................... 1344DROP ROLE ................................................................................................................................ 1345DROP RULE ................................................................................................................................ 1346DROP SCHEMA ........................................................................................................................... 1347DROP SEQUENCE ........................................................................................................................ 1348DROP SERVER ............................................................................................................................ 1349DROP STATISTICS ...................................................................................................................... 1350DROP SUBSCRIPTION .........................................................................................................