PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 17.2 » Programmation serveur

Partie 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 triggers, etc. Il est préférable de n'aborder ces sujets avancés qu'après avoir compris tout le reste de la documentation. Les derniers chapitres décrivent les langages de programmation serveur disponibles avec PostgreSQL ainsi que les problèmes généraux de la programmation côté serveur. Il est essentiel de lire au minimum les premières sections du Chapitre 36 (sur les fonctions) avant de se plonger dans la programmation côté serveur.

Table des matières

36. Étendre SQL
36.1. L'extensibilité
36.2. Le système des types de PostgreSQL
36.3. Fonctions utilisateur
36.4. Procédures utilisateur
36.5. Fonctions en langage de requêtes (SQL)
36.6. Surcharge des fonctions
36.7. Catégories de volatilité des fonctions
36.8. Fonctions en langage de procédures
36.9. Fonctions internes
36.10. Fonctions en langage C
36.11. Informations d'optimisation de fonction
36.12. Agrégats utilisateur
36.13. Types utilisateur
36.14. Opérateurs définis par l'utilisateur
36.15. Informations sur l'optimisation d'un opérateur
36.16. Interfacer des extensions d'index
36.17. Empaqueter des objets dans une extension
36.18. Outils de construction d'extension
37. Triggers (triggers)
37.1. Aperçu du comportement des triggers
37.2. Visibilité des modifications des données
37.3. Écrire des fonctions triggers en C
37.4. Un exemple complet de trigger
38. Triggers sur événement
38.1. Aperçu du fonctionnement des triggers sur événement
38.2. Matrice de déclenchement des triggers sur événement
38.3. Écrire des fonctions trigger sur événement en C
38.4. Un exemple complet de trigger sur événement
38.5. Un exemple de trigger sur événement de table modifiée
38.6. Exemple de trigger sur événement de connexion
39. Système de règles
39.1. Arbre de requêtes
39.2. Vues et système de règles
39.3. Vues matérialisées
39.4. Règles sur insert, update et delete
39.5. Règles et droits
39.6. Règles et statut de commande
39.7. Règles contre triggers
40. Langages de procédures
40.1. Installation des langages de procédures
41. PL/pgSQL -- Langage de procédures SQL
41.1. Aperçu
41.2. Structure de PL/pgSQL
41.3. Déclarations
41.4. Expressions
41.5. Instructions de base
41.6. Structures de contrôle
41.7. Curseurs
41.8. Gestion des transactions
41.9. Erreurs et messages
41.10. Fonctions trigger
41.11. Les dessous de PL/pgSQL
41.12. Astuces pour développer en PL/pgSQL
41.13. Portage d'Oracle PL/SQL
42. PL/Tcl -- Langage de procédures Tcl
42.1. Aperçu
42.2. Fonctions et arguments PL/Tcl
42.3. Valeurs des données avec PL/Tcl
42.4. Données globales avec PL/Tcl
42.5. Accès à la base de données depuis PL/Tcl
42.6. Fonctions triggers en PL/Tcl
42.7. Fonctions trigger sur événement en PL/Tcl
42.8. Gestion des erreurs avec PL/Tcl
42.9. Sous-transactions explicites dans PL/Tcl
42.10. Gestion des transactions
42.11. Configuration PL/Tcl
42.12. Noms de procédure Tcl
43. PL/Perl -- Langage de procédures Perl
43.1. Fonctions et arguments PL/Perl
43.2. Valeurs en PL/Perl
43.3. Fonction incluses
43.4. Valeurs globales dans PL/Perl
43.5. Niveaux de confiance de PL/Perl
43.6. Triggers PL/Perl
43.7. Triggers sur événements avec PL/Perl
43.8. PL/Perl sous le capot
44. PL/Python -- Langage de procédures Python
44.1. Fonctions PL/Python
44.2. Valeur des données avec PL/Python
44.3. Partage de données
44.4. Blocs de code anonymes
44.5. Fonctions de triggers
44.6. Accès à la base de données
44.7. Sous-transactions explicites
44.8. Gestion des transactions
44.9. Fonctions outils
44.10. Python 2 versus Python 3
44.11. Variables d'environnement
45. Interface de programmation serveur
45.1. Fonctions d'interface
45.2. Fonctions de support d'interface
45.3. Gestion de la mémoire
45.4. Gestion des transactions
45.5. Visibilité des modifications de données
45.6. Exemples
46. Processus en tâche de fond (background worker)
47. Décodage logique (Logical Decoding)
47.1. Exemples de décodage logique
47.2. Concepts de décodage logique
47.3. Interface du protocole de réplication par flux
47.4. Interface SQL de décodage logique
47.5. Catalogues systèmes liés au décodage logique
47.6. Plugins de sortie de décodage logique
47.7. Écrivains de sortie de décodage logique
47.8. Support de la réplication synchrone pour le décodage logique
47.9. Envoi en flux de grosses transactions pour le décodage logique
47.10. Support du Two-phase commit pour le décodage logique
48. Tracer la progression de la réplication
49. Modules d'archivage
49.1. Fonctions d'initialisation
49.2. Fonctions de support d'un module d'archivage