↑↓ select↵ open⌫ change scopeOpen full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Unsupported versions: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1
Historical version. PostgreSQL 9.0 has reached end of support. 2015-10-08. See the current manual.

45.31. 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 45-31. pg_pltemplate Columns

NameTypeDescription
tmplnamenameName of the language this template is for
tmpltrustedbooleanTrue if language is considered trusted
tmpldbacreatebooleanTrue if language may be created by a database owner
tmplhandlertextName of call handler function
tmplinlinetextName of anonymous-block handler function, or null if none
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.

Report a documentation issue

Read the upstream documentation. For corrections, first check the current manual.