42.20. pg_language

## 42.20. `pg_language`

The catalog `pg_language` registers languages in which you can write functions or stored procedures. See CREATE LANGUAGE and Chapter 35, Procedural Languages for more information about language handlers.

Table 42.20. `pg_language` Columns

Name | Type | References | Description
--- | --- | --- | ---
`lanname` | `name` |  | Name of the language
`lanispl` | `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 may be replaced by a different mechanism sometime.
`lanpltrusted` | `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 may create functions in untrusted languages.
`lanplcallfoid` | `oid` | ``pg_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.
`lanvalidator` | `oid` | ``pg_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.
`lanacl` | `aclitem[]` |  | Access privileges; see GRANT and REVOKE for details.