PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 15.9 » 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 des langages de programmation côté serveur. Il est essentiel de lire au minimum les premières sections du Chapitre 38 (sur les fonctions) avant de se plonger dans les langages de programmation serveur.

Table des matières

38. Étendre SQL
38.1. L'extensibilité
38.2. Le système des types de PostgreSQL
38.3. Fonctions utilisateur
38.4. Procédures utilisateur
38.5. Fonctions en langage de requêtes (SQL)
38.6. Surcharge des fonctions
38.7. Catégories de volatilité des fonctions
38.8. Fonctions en langage de procédures
38.9. Fonctions internes
38.10. Fonctions en langage C
38.11. Informations d'optimisation de fonction
38.12. Agrégats utilisateur
38.13. Types utilisateur
38.14. Opérateurs définis par l'utilisateur
38.15. Informations sur l'optimisation d'un opérateur
38.16. Interfacer des extensions d'index
38.17. Empaqueter des objets dans une extension
38.18. Outils de construction d'extension
39. Triggers (triggers)
39.1. Aperçu du comportement des triggers
39.2. Visibilité des modifications des données
39.3. Écrire des fonctions triggers en C
39.4. Un exemple complet de trigger
40. Triggers sur événement
40.1. Aperçu du fonctionnement des triggers sur événement
40.2. Matrice de déclenchement des triggers sur événement
40.3. Écrire des fonctions trigger sur événement en C
40.4. Un exemple complet de trigger sur événement
40.5. Un exemple de trigger sur événement de table modifiée
41. Système de règles
41.1. Arbre de requêtes
41.2. Vues et système de règles
41.3. Vues matérialisées
41.4. Règles sur insert, update et delete
41.5. Règles et droits
41.6. Règles et statut de commande
41.7. Règles contre triggers
42. Langages de procédures
42.1. Installation des langages de procédures
43. PL/pgSQL -- Langage de procédures SQL
43.1. Aperçu
43.2. Structure de PL/pgSQL
43.3. Déclarations
43.4. Expressions
43.5. Instructions de base
43.6. Structures de contrôle
43.7. Curseurs
43.8. Gestion des transactions
43.9. Erreurs et messages
43.10. Fonctions trigger
43.11. Les dessous de PL/pgSQL
43.12. Astuces pour développer en PL/pgSQL
43.13. Portage d'Oracle PL/SQL
44. PL/Tcl -- Langage de procédures Tcl
44.1. Aperçu
44.2. Fonctions et arguments PL/Tcl
44.3. Valeurs des données avec PL/Tcl
44.4. Données globales avec PL/Tcl
44.5. Accès à la base de données depuis PL/Tcl
44.6. Fonctions triggers en PL/Tcl
44.7. Fonctions trigger sur événement en PL/Tcl
44.8. Gestion des erreurs avec PL/Tcl
44.9. Sous-transactions explicites dans PL/Tcl
44.10. Gestion des transactions
44.11. Configuration PL/Tcl
44.12. Noms de procédure Tcl
45. PL/Perl -- Langage de procédures Perl
45.1. Fonctions et arguments PL/Perl
45.2. Valeurs en PL/Perl
45.3. Fonction incluses
45.4. Valeurs globales dans PL/Perl
45.5. Niveaux de confiance de PL/Perl
45.6. Triggers PL/Perl
45.7. Triggers sur événements avec PL/Perl
45.8. PL/Perl sous le capot
46. PL/Python -- Langage de procédures Python
46.1. Fonctions PL/Python
46.2. Valeur des données avec PL/Python
46.3. Partage de données
46.4. Blocs de code anonymes
46.5. Fonctions de triggers
46.6. Accès à la base de données
46.7. Sous-transactions explicites
46.8. Gestion des transactions
46.9. Fonctions outils
46.10. Python 2 versus Python 3
46.11. Variables d'environnement
47. Interface de programmation serveur
47.1. Fonctions d'interface
47.2. Fonctions de support d'interface
47.3. Gestion de la mémoire
47.4. Gestion des transactions
47.5. Visibilité des modifications de données
47.6. Exemples
48. Processus en tâche de fond (background worker)
49. Décodage logique (Logical Decoding)
49.1. Exemples de décodage logique
49.2. Concepts de décodage logique
49.3. Interface du protocole de réplication par flux
49.4. Interface SQL de décodage logique
49.5. Catalogues systèmes liés au décodage logique
49.6. Plugins de sortie de décodage logique
49.7. Écrivains de sortie de décodage logique
49.8. Support de la réplication synchrone pour le décodage logique
49.9. Envoi en flux de grosses transactions pour le décodage logique
49.10. Support du Two-phase commit pour le décodage logique
50. Tracer la progression de la réplication
51. Modules d'archivage
51.1. Fonctions d'initialisation
51.2. Fonctions de support d'un module d'archivage