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 49-35. pg_pltemplate Columns
|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.
Please use this form to add your own comments regarding your experience with particular features of PostgreSQL, clarifications of the documentation, or hints for other users. Please note, this is not a support forum, and your IP address will be logged. If you have a question or need help, please see the faq, try a mailing list, or join us on IRC. Note that submissions containing URLs or other keywords commonly found in 'spam' comments may be silently discarded. Please contact the webmaster if you think this is happening to you in error.
Proceed to the comment form.