## 51.29. `pg_language`

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

Table 51.29. `pg_language` Columns

Column Type Description
`oid` `oid` Row identifier
`lanname` `name` Name of the language
`lanowner` `oid` (references `pg_authid`.`oid`) Owner 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 might be replaced by a different mechanism in the future.
`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 can create functions in untrusted languages.
`lanplcallfoid` `oid` (references `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
`laninline` `oid` (references `pg_proc`.`oid`) This references a function that is responsible for executing “inline” anonymous code blocks (DO blocks). Zero if inline blocks are not supported.
`lanvalidator` `oid` (references `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 Section 5.7 for details