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.
  
    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.