PostgreSQL 19 ← 18
SYSTEM CATALOG · System catalog
pg_language
The catalog pg_language registers languages in which you can write functions or stored procedures. See CREATE LANGUAGE and Chapter 40 for more information about language handlers.
Checked column by column against a PostgreSQL 18.6 instance · Raw measurement record ↗
Columns PostgreSQL 18
pg_language| COLUMN | TYPE | DESCRIPTION |
|---|---|---|
oid |
oidNOT NULL |
Row identifier |
lanname |
nameNOT NULL |
Name of the language |
lanowner |
oidNOT NULL |
Owner of the languageReferences:pg_authid.oid |
lanispl |
booleanNOT NULLDocumented as:bool |
This is false for internal languages (such as SQL) and true for user-defined languages. Currently, pg_dump still uses this to determine which languages need to be dumped, but this might be replaced by a different mechanism in the future. |
lanpltrusted |
booleanNOT NULLDocumented as:bool |
True if this is a trusted language, which means that it is believed not to grant access to anything outside the normal SQL execution environment. Only superusers can create functions in untrusted languages. |
lanplcallfoid |
oidNOT NULL |
For noninternal languages this references the language handler, which is a special function that is responsible for executing all functions that are written in the particular language. Zero for internal languages.References:pg_proc.oid |
laninline |
oidNOT NULL |
This references a function that is responsible for executing “inline” anonymous code blocks (DO blocks). Zero if inline blocks are not supported.References:pg_proc.oid |
lanvalidator |
oidNOT NULL |
This references a language validator function that is responsible for checking the syntax and validity of new functions when they are created. Zero if no validator is provided.References:pg_proc.oid |
lanacl |
aclitem[] |
Access privileges; see Section 5.8 for details |
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.
| Columns | Type | attnum |
|---|---|---|
tableoid | oid | -6 |
cmax | cid | -5 |
xmax | xid | -4 |
cmin | cid | -3 |
xmin | xid | -2 |
ctid | tid | -1 |
Column evolution matrix
Hover a cell for the column type| COLUMN | 9.0 | 9.1 | 9.2 | 9.3 | 9.4 | 9.5 | 9.6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
oid |
|||||||||||||||||
lanname |
|||||||||||||||||
lanowner |
|||||||||||||||||
lanispl |
|||||||||||||||||
lanpltrusted |
|||||||||||||||||
lanplcallfoid |
|||||||||||||||||
laninline |
|||||||||||||||||
lanvalidator |
|||||||||||||||||
lanacl |
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 majorsPostgreSQL 17 ← 16
PostgreSQL 14 ← 13
PostgreSQL 12 ← 11
PostgreSQL 11 ← 10
PostgreSQL 10 ← 9.6
PostgreSQL 9.6 ← 9.5
PostgreSQL 9.3 ← 9.2
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.