Le catalogue pg_pltemplate stocke les informations modèles (« template ») des langages de procédures. Un modèle de langage permet la création de ce langage dans une base de données particulière à l'aide d'une simple commande CREATE LANGUAGE , sans qu'il soit nécessaire de spécifier les détails de l'implantation.
Contrairement à la plupart des catalogues système, pg_pltemplate est partagé par toutes les bases de données d'un cluster : il n'existe qu'une seule copie de pg_pltemplate par cluster, et non pas une par base de données. L'information est de ce fait accessible à toute base de données.
Tableau 43.26. Colonnes de pg_pltemplate
Nom | Type | Description |
---|---|---|
tmplname | name | Nom du langage auquel est associé le modèle |
tmpltrusted | boolean | True s'il s'agit d'un langage de confiance |
tmplhandler | text | Nom de la fonction de gestion des appels |
tmplvalidator | text | Nom de la fonction de validation, ou NULL si aucune |
tmpllibrary | text | Chemin de la bibliothèque partagée qui code le langage |
tmplacl | aclitem[] | Droits d'accès au modèle (actuellement inutilisé) |
Il n'existe actuellement aucune commande de manipulation des modèles de langages procéduraux ; pour modifier l'information intégrée, un superutilisateur doit modifier la table en utilisant les commandes INSERT , DELETE ou UPDATE habituelles. Il est probable qu'une future version de PostgreSQL™ propose des commandes permettant de modifier les entrées de façon plus propre.
Lorsqu'il est renseigné, le champ tmplacl gère le contrôle des accès au modèle (c'est-à-dire le droit de créer un langage à partir de ce modèle), mais pas le contrôle des accès aux langages créés à partir de ce modèle.