51.37. 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 51.37. pg_pltemplate Columns
| Name | Type | Description | 
|---|---|---|
| tmplname | name | Name of the language this template is for | 
| tmpltrusted | boolean | True if language is considered trusted | 
| tmpldbacreate | boolean | True if language may be created by a database owner | 
| tmplhandler | text | Name of call handler function | 
| tmplinline | text | Name of anonymous-block handler function, or null if none | 
| tmplvalidator | text | Name of validator function, or null if none | 
| tmpllibrary | text | Path of shared library that implements language | 
| tmplacl | aclitem[] | Access privileges for template (not actually 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. 
Note
 It is likely that pg_pltemplate will be removed in some future release of PostgreSQL, in favor of keeping this knowledge about procedural languages in their respective extension installation scripts.