Updated on 2025-03-13 GMT+08:00

PG_LANGUAGE

PG_LANGUAGE registers programming languages. You can use them and APIs to write functions or stored procedures.

Table 1 PG_LANGUAGE columns

Name

Type

Reference

Description

oid

oid

-

Row identifier (hidden attribute, which must be specified).

lanname

name

-

Language name.

lanowner

oid

oid in PG_AUTHID

Owner of the language.

lanispl

Boolean

-

The value is false for internal languages (such as SQL) and true for user-defined languages. Currently, gs_dump still uses this column to determine which languages need to be dumped, but this might be replaced by a different mechanism in the future.

lanpltrusted

Boolean

-

The value is 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. The value is false if this is an untrusted language. Only the initial user can create functions in untrusted languages.

lanplcallfoid

oid

oid in PG_PROC

For non-internal languages, this column references the language handler, which is a special function responsible for executing all functions that are written in the particular language.

laninline

oid

oid in PG_PROC

This column references a function responsible for executing "inline" anonymous code blocks (DO blocks). The value is 0 if inline blocks are not supported.

lanvalidator

oid

oid in PG_PROC

This column references a language validator function responsible for checking the syntax and validity of new functions when they are created. The value is 0 if no validator is provided.

lanacl

aclitem[]

-

Access permissions