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.