DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

43.26. pg_pltemplate

The catalog pg_pltemplate stores "template" information for procedural languages. A template for a language allows the language to be created in a particular database by a simple CREATE LANGUAGE command, with no need to specify implementation details.

Unlike most system catalogs, pg_pltemplate is shared across all databases of a cluster: there is only one copy of pg_pltemplate per cluster, not one per database. This allows the information to be accessible in each database as it is needed.

Table 43-26. pg_pltemplate Columns

NameTypeDescription 
tmplnamenameName of the language this template is for 
tmpltrustedbooleanTrue if language is considered trusted 
tmplhandlertextName of call handler function 
tmplvalidatortextName of validator function, or NULL if none 
tmpllibrarytextPath of shared library that implements language 
tmplaclaclitem[]Access privileges for template (not yet used) 

There are not currently any commands that manipulate procedural language templates; to change the built-in information, a superuser must modify the table using ordinary INSERT, DELETE, or UPDATE commands. It is likely that a future release of PostgreSQL will offer commands to change the entries in a cleaner fashion.

When implemented, the tmplacl field will provide access control for the template itself (i.e., the right to create a language using it), not for the languages created from the template.