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.34. 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 (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 que pg_pltemplate sera supprimé dans une prochaine version de PostgreSQL™, pour conserver cette information des langages de procédure dans leur scripts d'installation respectifs.