Skip to content
← Catalog atlas / pg_pltemplate

SYSTEM CATALOG · System catalog

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.

First seen PG 9.0Last seen PG 12Columns 8

Checked column by column against a PostgreSQL 12.22 instance · Raw measurement record ↗

Columns PostgreSQL 12

pg_pltemplate
COLUMNTYPEDESCRIPTION
tmplname nameNOT NULL Name of the language this template is for
tmpltrusted booleanNOT NULL True if language is considered trusted
tmpldbacreate booleanNOT NULL True if language may be created by a database owner
tmplhandler textNOT NULL 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 textNOT NULL Path of shared library that implements language
tmplacl aclitem[] Access privileges for template (not actually used)

Columns marked "implicit" are not included in SELECT *; some early statistics views are completed from same-version source, and the extra provenance is shown in the column description.

Common system columns 6

System attributes PostgreSQL provides, normally not expanded by SELECT *. Kept separately so they are not mixed in with ordinary columns.

ColumnsTypeattnum
tableoidoid-6
cmaxcid-5
xmaxxid-4
cmincid-3
xminxid-2
ctidtid-1

Column evolution matrix

Hover a cell for the column type
PresentAdded / type or attribute changeRemoved
COLUMN9.09.19.29.39.49.59.610111213141516171819
tmplname
tmpltrusted
tmpldbacreate
tmplhandler
tmplinline
tmplvalidator
tmpllibrary
tmplacl

9.0 is the coverage baseline; a column already present in the baseline is not marked as added. The matrix aligns columns by name, so a rename appears as the old column removed and a new column added.

Evolution timeline

Changes between adjacent majors

PostgreSQL 13 ← 12Catalog removed

− tmplname− tmpltrusted− tmpldbacreate− tmplhandler− tmplinline− tmplvalidator− tmpllibrary− tmplacl

PostgreSQL 10 ← 9.6

Catalog description updated

PostgreSQL 9.5 ← 9.4

~ tmplhandler: not_null: false → true~ tmpllibrary: not_null: false → true

PostgreSQL 9.1 ← 9.0

1 column description updates

Compare any two versions

Pick two versions to see added, removed, and retyped columns. The interactive comparison needs JavaScript; the evolution timeline reads fine without it.