33. Étendre le SQL

33.1. L'extensibilité
33.2. Le système des types de PostgreSQL
33.3. Fonctions utilisateur
33.4. Fonctions en langage de requêtes (SQL)
33.5. Surcharge des fonctions
33.6. Catégories de volatilité des fonctions
33.7. Fonctions en langage de procédures
33.8. Fonctions internes
33.9. Fonctions en langage C
33.10. Agrégats utilisateur
33.11. Types utilisateur
33.12. Opérateurs définis par l'utilisateur
33.13. Informations sur l'optimisation d'un opérateur
33.14. Interfacer des extensions d'index

Les sections qui suivent présentent les possibilités d'étendre le langage SQL de requêtage de PostgreSQL™ par l'ajout :

33.1. L'extensibilité

PostgreSQL™ est extensible parce qu'il opère grâce à un système de catalogues. Quiconque est familier des systèmes de bases de données relationnelles standard sait que les informations concernant les bases, les tables, les colonnes, etc. y sont stockées dans ce qu'on nomme communément des catalogues systèmes (certains systèmes appellent cela le dictionnaire de données). Pour l'utilisateur, les catalogues ressemblent à des tables ordinaires, mais le SGBD y enregistre ses registres internes. À la différence des autres systèmes, PostgreSQL™ enregistre beaucoup informations dans ses catalogues : non seulement l'information concernant les tables et les colonnes, mais aussi l'information concernant les types de données, les fonctions, les méthodes d'accès, etc.

Ces tables peuvent être modifiées par l'utilisateur. Qui plus est, puisque PostgreSQL™ fonde ses opérations sur ces tables, il peut être étendu par les utilisateurs. En comparaison, les systèmes de bases de données conventionnels ne peuvent être étendus qu'en modifiant les procédures dans le code source ou en installant des modules spécifiquement écrits par le vendeur de SGBD.

De plus, le serveur PostgreSQL™ peut incorporer utilisateur grâce au chargement dynamique. C'est-à-dire que l'utilisateur peut indiquer un fichier de code objet (par exemple une bibliothèque partagée) qui code un nouveau type ou une nouvelle fonction et PostgreSQL™ le chargera au besoin. Il est encore plus facile d'ajouter au serveur du code écrit en SQL. La possibilité de modifier son fonctionnement « à la volée » fait de PostgreSQL™ un outil unique pour le prototypage rapide de nouvelles applications et de structures de stockage.