# pg_language The `pg_language` system catalog table registers languages in which you can write functions or stored procedures. It is populated by `CREATE LANGUAGE`. Table 1. `pg_catalog.pg_language` | column | type | references | description | | :-------------- | :-------- | :---------- | :----------------------------------------------------------- | |`oid`| oid || The object ID |`lanname`| name || Name of the language |`lanowner`| oid | pg_authid.oid| Owner of the language |`lanispl`| boolean || 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 in the future. |`lanpltrusted`| boolean || 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 running all functions that are written in the particular language. |`laninline`| oid | pg_proc.oid| This references a function that is responsible for running inline anonymous code blocks (see the DO command). Zero if inline blocks are not supported. |`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 for the language