PostgreSQLLa base de données la plus sophistiquée au monde.

Version anglaise

V. Programmation serveur

Cette partie traite des possibilités d'extension des fonctionnalités du serveur par l'ajout de fonctions utilisateur, de types de données, de déclencheurs (triggers), etc. Il est préférable de n'aborder ces sujets, avancés, qu'après avoir compris tous les autres.

Les derniers chapitres décrivent les langages de programmation serveur disponibles avec PostgreSQL™ ainsi que les problèmes de ces langages en général. Il est essentiel de lire au minimum les premières sections du Chapitre 35, Étendre SQL (qui traitent des fonctions) avant de se plonger dans les langages de programmation serveur.

Table des matières

35. Étendre SQL
35.1. L'extensibilité
35.2. Le système des types de PostgreSQL
35.3. Fonctions utilisateur
35.4. Fonctions en langage de requêtes (SQL)
35.5. Surcharge des fonctions
35.6. Catégories de volatilité des fonctions
35.7. Fonctions en langage de procédures
35.8. Fonctions internes
35.9. Fonctions en langage C
35.10. Agrégats utilisateur
35.11. Types utilisateur
35.12. Opérateurs définis par l'utilisateur
35.13. Informations sur l'optimisation d'un opérateur
35.14. Interfacer des extensions d'index
35.15. Empaqueter des objets dans une extension
35.16. Outils de construction d'extension
36. Déclencheurs (triggers)
36.1. Aperçu du comportement des déclencheurs
36.2. Visibilité des modifications des données
36.3. Écrire des fonctions déclencheurs en C
36.4. Un exemple complet de trigger
37. Déclencheurs (triggers) sur évènement
37.1. Aperçu du fonctionnement des triggers sur évènement
37.2. Matrice de déclenchement des triggers sur évènement
37.3. Écrire des fonctions trigger sur événement en C
37.4. Un exemple complet de trigger sur événement
37.5. Un exemple de trigger sur événement de table modifiée
38. Système de règles
38.1. Arbre de requêtes
38.2. Vues et système de règles
38.3. Vues matérialisées
38.4. Règles sur insert, update et delete
38.5. Règles et droits
38.6. Règles et statut de commande
38.7. Règles contre déclencheurs
39. Langages de procédures
39.1. Installation des langages de procédures
40. PL/pgSQL - Langage de procédures SQL
40.1. Aperçu
40.2. Structure de PL/pgSQL
40.3. Déclarations
40.4. Expressions
40.5. Instructions de base
40.6. Structures de contrôle
40.7. Curseurs
40.8. Erreurs et messages
40.9. Procédures trigger
40.10. Les dessous de PL/pgSQL
40.11. Astuces pour développer en PL/pgSQL
40.12. Portage d'Oracle™ PL/SQL
41. PL/Tcl - Langage de procédures Tcl
41.1. Aperçu
41.2. Fonctions et arguments PL/Tcl
41.3. Valeurs des données avec PL/Tcl
41.4. Données globales avec PL/Tcl
41.5. Accès à la base de données depuis PL/Tcl
41.6. Procédures pour déclencheurs en PL/Tcl
41.7. Procédures de trigger sur événement en PL/Tcl
41.8. Les modules et la commande unknown
41.9. Noms de procédure Tcl
42. PL/Perl - Langage de procédures Perl
42.1. Fonctions et arguments PL/Perl
42.2. Valeurs en PL/Perl
42.3. Fonction incluses
42.4. Valeurs globales dans PL/Perl
42.5. Niveaux de confiance de PL/Perl
42.6. Déclencheurs PL/Perl
42.7. Triggers sur événements avec PL/Perl
42.8. PL/Perl sous le capot
43. PL/Python - Langage de procédures Python
43.1. Python 2 et Python 3
43.2. Fonctions PL/Python
43.3. Valeur des données avec PL/Python
43.4. Sharing Data
43.5. Blocs de code anonymes
43.6. Fonctions de déclencheurs
43.7. Accès à la base de données
43.8. Sous-transactions explicites
43.9. Fonctions outils
43.10. Variables d'environnement
44. Interface de programmation serveur
44.1. Fonctions d'interface
44.2. Fonctions de support d'interface
44.3. Gestion de la mémoire
44.4. Visibilité des modifications de données
44.5. Exemples
45. Processus en tâche de fond (background worker)
46. Décodage logique (Logical Decoding)
46.1. Exemples de décodage logique
46.2. Concepts de décodage logique
46.3. Interface du protocole de réplication par flux
46.4. Interface SQL de décodage logique
46.5. Catalogues systèmes liés au décodage logique
46.6. Plugins de sortie de décodage logique
46.7. Écrivains de sortie de décodage logique
46.8. Support de la réplication synchrone pour le décodage logique
47. Tracer la progression de la réplication