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 37, Étendre SQL (qui traitent des fonctions) avant de se plonger dans les langages de programmation serveur.

Table des matières

37. Étendre SQL
37.1. L'extensibilité
37.2. Le système des types de PostgreSQL
37.3. Fonctions utilisateur
37.4. Fonctions en langage de requêtes (SQL)
37.5. Surcharge des fonctions
37.6. Catégories de volatilité des fonctions
37.7. Fonctions en langage de procédures
37.8. Fonctions internes
37.9. Fonctions en langage C
37.10. Agrégats utilisateur
37.11. Types utilisateur
37.12. Opérateurs définis par l'utilisateur
37.13. Informations sur l'optimisation d'un opérateur
37.14. Interfacer des extensions d'index
37.15. Empaqueter des objets dans une extension
37.16. Outils de construction d'extension
38. Déclencheurs (triggers)
38.1. Aperçu du comportement des déclencheurs
38.2. Visibilité des modifications des données
38.3. Écrire des fonctions déclencheurs en C
38.4. Un exemple complet de trigger
39. Déclencheurs (triggers) sur évènement
39.1. Aperçu du fonctionnement des triggers sur évènement
39.2. Matrice de déclenchement des triggers sur évènement
39.3. Écrire des fonctions trigger sur événement en C
39.4. Un exemple complet de trigger sur événement
39.5. Un exemple de trigger sur événement de table modifiée
40. Système de règles
40.1. Arbre de requêtes
40.2. Vues et système de règles
40.3. Vues matérialisées
40.4. Règles sur insert, update et delete
40.5. Règles et droits
40.6. Règles et statut de commande
40.7. Règles contre déclencheurs
41. Langages de procédures
41.1. Installation des langages de procédures
42. PL/pgSQL - Langage de procédures SQL
42.1. Aperçu
42.2. Structure de PL/pgSQL
42.3. Déclarations
42.4. Expressions
42.5. Instructions de base
42.6. Structures de contrôle
42.7. Curseurs
42.8. Erreurs et messages
42.9. Procédures trigger
42.10. Les dessous de PL/pgSQL
42.11. Astuces pour développer en PL/pgSQL
42.12. Portage d'Oracle™ PL/SQL
43. PL/Tcl - Langage de procédures Tcl
43.1. Aperçu
43.2. Fonctions et arguments PL/Tcl
43.3. Valeurs des données avec PL/Tcl
43.4. Données globales avec PL/Tcl
43.5. Accès à la base de données depuis PL/Tcl
43.6. Procédures pour déclencheurs en PL/Tcl
43.7. Procédures de trigger sur événement en PL/Tcl
43.8. Gestion des erreurs avec PL/Tcl
43.9. Sous-transactions explicites dans PL/Tcl
43.10. Configuration PL/Tcl
43.11. Noms de procédure Tcl
44. PL/Perl - Langage de procédures Perl
44.1. Fonctions et arguments PL/Perl
44.2. Valeurs en PL/Perl
44.3. Fonction incluses
44.4. Valeurs globales dans PL/Perl
44.5. Niveaux de confiance de PL/Perl
44.6. Déclencheurs PL/Perl
44.7. Triggers sur événements avec PL/Perl
44.8. PL/Perl sous le capot
45. PL/Python - Langage de procédures Python
45.1. Python 2 et Python 3
45.2. Fonctions PL/Python
45.3. Valeur des données avec PL/Python
45.4. Sharing Data
45.5. Blocs de code anonymes
45.6. Fonctions de déclencheurs
45.7. Accès à la base de données
45.8. Sous-transactions explicites
45.9. Fonctions outils
45.10. Variables d'environnement
46. Interface de programmation serveur
46.1. Fonctions d'interface
46.2. Fonctions de support d'interface
46.3. Gestion de la mémoire
46.4. Visibilité des modifications de données
46.5. Exemples
47. Processus en tâche de fond (background worker)
48. Décodage logique (Logical Decoding)
48.1. Exemples de décodage logique
48.2. Concepts de décodage logique
48.3. Interface du protocole de réplication par flux
48.4. Interface SQL de décodage logique
48.5. Catalogues systèmes liés au décodage logique
48.6. Plugins de sortie de décodage logique
48.7. Écrivains de sortie de décodage logique
48.8. Support de la réplication synchrone pour le décodage logique
49. Tracer la progression de la réplication