Summary
The catalog pg_language registers languages in which you can write functions or stored procedures. See createlanguage and xplang for more information about language handlers.
(Description quoted from the official PostgreSQL documentation.)
Columns
The pg_language system catalog exposes the following columns (names, types and descriptions are taken verbatim from the PostgreSQL documentation):
oidoid
Row identifierlannamename
Name of the languagelanowneroidreferencespg_authid.oid
Owner of the languagelanisplbool
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.lanpltrustedbool
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.lanplcallfoidoidreferencespg_proc.oid
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.laninlineoidreferencespg_proc.oid
This references a function that is responsible for executing “inline” anonymous code blocks (do blocks). Zero if inline blocks are not supported.lanvalidatoroidreferencespg_proc.oid
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.lanaclaclitem[]
Access privileges; see ddl_priv for details
Related catalogs
This object references the following other system catalogs:
Version applicability
Present in PostgreSQL 17, 18, 19 (verified against each release’s documentation). This is a long-standing system object that also exists in earlier PostgreSQL releases.
Related & references
Reference: PostgreSQL documentation — pg_language.