Le catalogue pg_pltemplate stocke les informations squelettes (« template ») des langages procéduraux. Un squelette 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 une par base de données. L'information est de ce fait accessible à toute base de données.
Tableau 45.31. 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 |
tmpldbacreate | boolean | True s'il s'agit d'un langage créé par le propriétaire de la base |
tmplhandler | text | Nom de la fonction de gestion des appels |
tmplinline | text | Nom de la fonction de gestion des blocs anonymes. NULL sinon |
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.