October 15, 2026: PostgreSQL 19 RC 1 Released!
Supported Versions: Current (18) / 17 / 16 / 15 / 14
Development Versions: 19 / devel
Unsupported versions: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

51.39. pg_proc #

The catalog pg_proc stores information about functions, procedures, aggregate functions, and window functions (collectively also known as routines). See CREATE FUNCTION, CREATE PROCEDURE, and Section 36.3 for more information.

If prokind indicates that the entry is for an aggregate function, there should be a matching row in pg_aggregate.

Table 51.39. pg_proc Columns

Column Type

Description

oid oid

Row identifier

proname name

Name of the function

pronamespace oid (references pg_namespace.oid)

The OID of the namespace that contains this function

proowner oid (references pg_authid.oid)

Owner of the function

prolang oid (references pg_language.oid)

Implementation language or call interface of this function

procost float4

Estimated execution cost (in units of cpu_operator_cost); if proretset, this is cost per row returned

prorows float4

Estimated number of result rows (zero if not proretset)

provariadic oid (references pg_type.oid)

Data type of the variadic array parameter's elements, or zero if the function does not have a variadic parameter

prosupport regproc (references pg_proc.oid)

Planner support function for this function (see Section 36.11), or zero if none

prokind char

f for a normal function, p for a procedure, a for an aggregate function, or w for a window function

prosecdef bool

Function is a security definer (i.e., a “setuid” function)

proleakproof bool

The function has no side effects. No information about the arguments is conveyed except via the return value. Any function that might throw an error depending on the values of its arguments is not leak-proof.

proisstrict bool