| Documentation PostgreSQL 8.1.23 > Programmation serveur > Extension de SQL | |
| Programmation serveur | Système de typage de PostgreSQLSuivant |
Dans cette section, nous discutons de la façon d'étendre le langage de requêtes PostgreSQLTM en ajoutant des :
fonctions (commençant à la Section 32.3, « Fonctions définies par l'utilisateur ») ;
agrégats (commençant à la Section 32.10, « Agrégats utilisateur ») ;
types de données (commençant à la Section 32.11, « Types utilisateur ») ;
opérateurs (commençant à la Section 32.12, « Opérateurs définis par l'utilisateur ») ;
classes d'opérateurs pour les index (commençant à la Section 32.14, « Interfacer des extensions d'index »).
PostgreSQLTM est extensible parce qu'il opère grâce à un catalogue. Si vous êtes familier avec les systèmes standards de bases de données, vous savez qu'ils enregistrent les informations concernant les bases de données, les tables, les colonnes, etc., 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 apparaissent comme des tables ordinaires mais le SGBD y enregistre ses écritures internes. Une différence essentielle entre PostgreSQLTM et les systèmes de bases de données relationnelles est que PostgreSQLTM enregistre beaucoup plus d'informations dans ses catalogues : pas seulement l'information à propos des tables et des colonnes, mais aussi l'information au sujet des types de données, des fonctions, des méthodes d'accès, etc. Ces tables peuvent être modifiées par l'utilisateur et, puisque PostgreSQLTM fonde ses opérations sur ces tables, cela signifie que PostgreSQLTM peut être étendu par les utilisateurs. En comparaison, les systèmes de bases de données conventionnels peuvent seulement être étendus en modifiant les procédures dans le code source ou en installant des modules spécifiquement écrits par le vendeur de SGBD.
Encore mieux, le serveur PostgreSQLTM peut s'ajouter du code écrit par l'utilisateur grâce au chargement dynamique. C'est-à-dire que l'utilisateur peut spécifier un fichier de code objet (par exemple une bibliothèque partagée) qui implémente un nouveau type ou une nouvelle fonction et que PostgreSQLTM chargera à la demande. Il est encore plus évident d'ajouter au serveur du code écrit en SQL. Cette possibilité de modifier son fonctionnement « à la volée » fait de PostgreSQLTM un outil unique pour le prototypage rapide de nouvelles applications et de structures de stockage.