Updated on 2024-06-03 GMT+08:00

PG_LANGUAGE

PG_LANGUAGE registers programming languages. You can use them and interfaces 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

-

  • true: user-defined language.
  • false: internal language, for example, SQL.

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

-

  • true: The language is trusted, which means that it is believed not to grant access to anything outside the normal SQL execution environment.
  • false: The language is untrusted. 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

PG_PROC.oid

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

PG_PROC.oid

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