{"Entry":{"collection":"catalog","key":"pg_language","name":"pg_language","aliases":[],"metadata":{"changed_in":["8.3","9.0","12"],"changes":[{"added":[],"attributes":[],"description_changed":true,"descriptions":[{"from":"Access privileges","name":"lanacl","to":"Access privileges; see GRANT and REVOKE for details."},{"from":"Name of the language (to be specified when creating a function)","name":"lanname","to":"Name of the language"},{"from":"This is a trusted language. See under CREATE LANGUAGE what this means. If this is an internal language (lanispl is false) then this column is meaningless.","name":"lanpltrusted","to":"This is a trusted language. If this is an internal language (lanispl is false) then this column is meaningless."},{"from":"This references a language validator function that is responsible for checking the syntax and validity of new functions when they are created. See under CREATE LANGUAGE for further information about validators.","name":"lanvalidator","to":"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."}],"from":"7.4","listing":[],"order":false,"removed":[],"status":"reworded","to":"8.0","types":[],"unlisted":[]},{"added":[],"attributes":[],"description_changed":true,"descriptions":[{"from":"This is a trusted language. If this is an internal language (lanispl is false) then this column is meaningless.","name":"lanpltrusted","to":"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."}],"from":"8.0","listing":[],"order":false,"removed":[],"status":"reworded","to":"8.1","types":[],"unlisted":[]},{"added":[],"attributes":[],"description_changed":true,"descriptions":[{"from":"Access privileges; see GRANT and REVOKE for details.","name":"lanacl","to":"Access privileges; see GRANT and REVOKE for details"},{"from":"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.","name":"lanispl","to":"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"},{"from":"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.","name":"lanplcallfoid","to":"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"},{"from":"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.","name":"lanpltrusted","to":"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"},{"from":"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.","name":"lanvalidator","to":"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"}],"from":"8.1","listing":[],"order":false,"removed":[],"status":"reworded","to":"8.2","types":[],"unlisted":[]},{"added":["lanowner"],"attributes":[],"description_changed":true,"descriptions":[{"from":"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","name":"lanispl","to":"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"},{"from":"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","name":"lanpltrusted","to":"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"}],"from":"8.2","listing":[],"order":false,"removed":[],"status":"changed","to":"8.3","types":[],"unlisted":[]},{"added":["laninline"],"attributes":[],"description_changed":true,"descriptions":[{"from":"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","name":"lanispl","to":"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."},{"from":"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","name":"lanpltrusted","to":"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."},{"from":"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","name":"lanvalidator","to":"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."}],"from":"8.4","listing":[],"order":false,"removed":[],"status":"changed","to":"9.0","types":[],"unlisted":[]},{"added":[],"attributes":[],"description_changed":true,"descriptions":[],"from":"9.2","listing":[],"order":false,"removed":[],"status":"reworded","to":"9.3","types":[],"unlisted":[]},{"added":[],"attributes":[],"description_changed":true,"descriptions":[],"from":"9.5","listing":[],"order":false,"removed":[],"status":"reworded","to":"9.6","types":[],"unlisted":[]},{"added":[],"attributes":[],"description_changed":true,"descriptions":[{"from":"This references a function that is responsible for executing \"inline\" anonymous code blocks (DO blocks). Zero if inline blocks are not supported.","name":"laninline","to":"This references a function that is responsible for executing “inline” anonymous code blocks (DO blocks). Zero if inline blocks are not supported."}],"from":"9.6","listing":[],"order":false,"removed":[],"status":"reworded","to":"10","types":[],"unlisted":[]},{"added":[],"attributes":[],"description_changed":true,"descriptions":[],"from":"10","listing":[],"order":false,"removed":[],"status":"reworded","to":"11","types":[],"unlisted":[]},{"added":[],"attributes":[{"attribute":"hidden","from":true,"name":"oid","to":false}],"description_changed":true,"descriptions":[{"from":"Access privileges; see GRANT and REVOKE for details","name":"lanacl","to":"Access privileges; see Section 5.7 for details"}],"from":"11","listing":[],"order":false,"removed":[],"status":"changed","to":"12","types":[],"unlisted":[]},{"added":[],"attributes":[],"description_changed":true,"descriptions":[{"from":"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","name":"lanplcallfoid","to":"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."}],"from":"13","listing":[],"order":false,"removed":[],"status":"reworded","to":"14","types":[],"unlisted":[]},{"added":[],"attributes":[],"description_changed":true,"descriptions":[{"from":"Access privileges; see Section 5.7 for details","name":"lanacl","to":"Access privileges; see Section 5.8 for details"}],"from":"16","listing":[],"order":false,"removed":[],"status":"reworded","to":"17","types":[],"unlisted":[]},{"added":[],"attributes":[],"description_changed":false,"descriptions":[{"from":"Access privileges; see Section 5.8 for details","name":"lanacl","to":"Access privileges; see Section 5.9 for details"}],"from":"18","listing":[],"order":false,"removed":[],"status":"reworded","to":"19","types":[],"unlisted":[]}],"column_count":9,"content_hash":"32539c95a50c4f28cb30913f6b0e9b919bdde5d9f525fe2572ec020955a3e6aa","first_version":"7.4","imported_at":"2026-09-30T00:40:55.592819+08:00","kind":"catalog","last_version":"20","name":"pg_language","position":40,"present_in":["7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"relation_oid":null,"relkind":"r","shared":false,"source_rev":"english-manuals:6c96f466f8e90a9154f65e2c56ed10b40e5a17b0170307b1095031f0459a76b1","summary":"The catalog pg_language registers languages in which you can write functions or stored procedures.","summary_zh":""}},"Definition":{"Collection":"catalog","Key":"pg_language","SourceDatabase":"center","Version":"18","SourceTable":"catalog","SourceKey":"pg_language","SourceRevision":"english-manuals:6c96f466f8e90a9154f65e2c56ed10b40e5a17b0170307b1095031f0459a76b1","Facts":{"columns":[{"array_dimensions":0,"attnum":1,"description":"Row identifier","description_zh":"","documented":true,"documented_name":"oid","hidden":false,"name":"oid","not_null":true,"references":"","type":"oid","type_modifier":-1,"type_oid":26},{"array_dimensions":0,"attnum":2,"description":"Name of the language","description_zh":"","documented":true,"documented_name":"lanname","hidden":false,"name":"lanname","not_null":true,"references":"","type":"name","type_modifier":-1,"type_oid":19},{"array_dimensions":0,"attnum":3,"description":"Owner of the language","description_zh":"","documented":true,"documented_name":"lanowner","hidden":false,"name":"lanowner","not_null":true,"references":"pg_authid.oid","type":"oid","type_modifier":-1,"type_oid":26},{"array_dimensions":0,"attnum":4,"description":"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.","description_zh":"","documented":true,"documented_name":"lanispl","hidden":false,"name":"lanispl","not_null":true,"references":"","type":"bool","type_modifier":-1,"type_oid":16},{"array_dimensions":0,"attnum":5,"description":"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.","description_zh":"","documented":true,"documented_name":"lanpltrusted","hidden":false,"name":"lanpltrusted","not_null":true,"references":"","type":"bool","type_modifier":-1,"type_oid":16},{"array_dimensions":0,"attnum":6,"description":"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.","description_zh":"","documented":true,"documented_name":"lanplcallfoid","hidden":false,"name":"lanplcallfoid","not_null":true,"references":"pg_proc.oid","type":"oid","type_modifier":-1,"type_oid":26},{"array_dimensions":0,"attnum":7,"description":"This references a function that is responsible for executing “inline” anonymous code blocks (DO blocks). Zero if inline blocks are not supported.","description_zh":"","documented":true,"documented_name":"laninline","hidden":false,"name":"laninline","not_null":true,"references":"pg_proc.oid","type":"oid","type_modifier":-1,"type_oid":26},{"array_dimensions":0,"attnum":8,"description":"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.","description_zh":"","documented":true,"documented_name":"lanvalidator","hidden":false,"name":"lanvalidator","not_null":true,"references":"pg_proc.oid","type":"oid","type_modifier":-1,"type_oid":26},{"array_dimensions":1,"attnum":9,"description":"Access privileges; see Section 5.8 for details","description_zh":"","documented":true,"documented_name":"lanacl","hidden":false,"name":"lanacl","not_null":false,"references":"","type":"aclitem[]","type_modifier":-1,"type_oid":1034}],"description":"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.","description_zh":"","doc":{"anchor":"id-1.10.4.31.4","file":"catalog-pg-language.html","lang":"en","sha256":"2c41712ff678379c6d1e48ab95599df21a0e527bc7f03aeaf736bc78bc5ec4e8","slug":"18"},"kind":"catalog","lang":"en","measured_attributes":true,"metadata_release":"18.6","runtime_columns":["oid","lanname","lanowner","lanispl","lanpltrusted","lanplcallfoid","laninline","lanvalidator","lanacl"],"runtime_verified":false,"source":"english-manual"},"ManualEvidence":{"doc":{"anchor":"id-1.10.4.31.4","file":"catalog-pg-language.html","lang":"en","sha256":"2c41712ff678379c6d1e48ab95599df21a0e527bc7f03aeaf736bc78bc5ec4e8","slug":"18"}},"MeasuredEvidence":{"measured_attributes":true,"metadata_release":"18.6","runtime_columns":["oid","lanname","lanowner","lanispl","lanpltrusted","lanplcallfoid","laninline","lanvalidator","lanacl"],"runtime_verified":false}},"Text":{"Collection":"catalog","Key":"pg_language","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"pg_language","Summary":"目录pg_language注册了可用于编写函数或存储过程的语言。更多关于语言处理器的信息请参阅CREATE LANGUAGE和第 40 章。","BodyHTML":"\u003cp\u003e目录pg_language注册了可用于编写函数或存储过程的语言。更多关于语言处理器的信息请参阅CREATE LANGUAGE和第 40 章。\u003c/p\u003e","SourceRevision":"2026-09-27@419045e","ContentHash":"bd647e27500be6dd8bec69bcae2165973dd1f6ea0d017d746f2e4ea931f15fe5","Payload":{"columns":[{"description_zh":"行标识符","name":"oid","type":"oid","zh_from":"doc"},{"description_zh":"语言的名字","name":"lanname","type":"name","zh_from":"doc"},{"description_zh":"语言的拥有者","name":"lanowner","type":"oid","zh_from":"doc"},{"description_zh":"内部语言为假（如SQL），用户定义语言为真。当前，pg_dump仍然使用这个列来决定要转储哪些语言，但在未来这可能会被一种不同的机制所取代。","name":"lanispl","type":"boolean","zh_from":"doc"},{"description_zh":"为真表示这是一种受信任的语言，即认为它不会允许访问正常 SQL 执行环境以外的任何内容。只有超级用户可以用不受信任的语言创建函数。","name":"lanpltrusted","type":"boolean","zh_from":"doc"},{"description_zh":"对于非内部语言，此列引用语言处理器，它是一个特殊函数，负责执行所有用这种语言编写的函数。对于内部语言用零。","name":"lanplcallfoid","type":"oid","zh_from":"doc"},{"description_zh":"此列引用一个负责执行“内联”匿名代码块的函数（DO块）。如果不支持内联块则为0。","name":"laninline","type":"oid","zh_from":"doc"},{"description_zh":"此列引用一个负责在函数创建时对其进行语法和有效性检查的语言验证函数。如果没有提供验证器则为0。","name":"lanvalidator","type":"oid","zh_from":"doc"},{"description_zh":"访问权限，详情参见第 5.8 节","name":"lanacl","type":"aclitem[]","zh_from":"doc"}],"description_zh":"目录pg_language注册了可用于编写函数或存储过程的语言。更多关于语言处理器的信息请参阅CREATE LANGUAGE和第 40 章。","zh_from":"doc"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","7.4","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
