↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 函数百科 / 系统信息函数和操作符

FUNCTION系统信息函数和操作符

pg_get_database_ddl

重建指定数据库的 CREATE DATABASE 语句,随后返回用于连接数上限、模板状态和配置设置的 ALTER DATABASE 语句。每条语句作为单独一行返回。当 pretty 为 true 时,启用美化输出。当 owner 为 false 时,省略 OWNER 子句。当 tablespace 为 false 时,省略 TABLESPACE 子句。

Reconstructs the CREATE DATABASE statement for the specified database, followed by ALTER DATABASE statements for connection limit, template status, and configuration settings.

系统信息函数和操作符 引入 20 现存至 20 devel 1 条签名 0 次签名变更 开发版

签名数
1 条
引入版本
20
状态
现存
签名变更
未变过
本版来源
同版手册译文

PostgreSQL 20 devel 手册 · 9.28 系统信息函数和操作符 官方文档

版本轨迹

PostgreSQL 20 新增此函数,共 1 条签名。 PostgreSQL 20 开发版尚未定稿:函数清单取自固定英文手册快照,中文说明取自本站同版手册,正式发布前仍可能变化。

说明

重建指定数据库的 CREATE DATABASE 语句,随后返回用于连接数上限、模板状态和配置设置的 ALTER DATABASE 语句。每条语句作为单独一行返回。当 pretty 为 true 时,启用美化输出。当 owner 为 false 时,省略 OWNER 子句。当 tablespace 为 false 时,省略 TABLESPACE 子句。
pg_get_database_ddl ( database regdatabase [, pretty boolean DEFAULT false] [, owner boolean DEFAULT true] [, tablespace boolean DEFAULT true] ) → setof text
重建指定数据库的 CREATE DATABASE 语句,随后返回用于连接数上限、模板状态和配置设置的 ALTER DATABASE 语句。每条语句作为单独一行返回。当 pretty 为 true 时,启用美化输出。当 owner 为 false 时,省略 OWNER 子句。当 tablespace 为 false 时,省略 TABLESPACE 子句。

签名

PostgreSQL 20 devel 里 pg_get_database_ddl 的 1 条签名,按上游手册顺序排列。参数名用斜体,类型用弱化色, 之后是返回类型。中文说明来自同版本手册与审阅译文,悬停可查看每条说明的来源。

  1. pg_get_database_ddl ( database regdatabase [, pretty boolean DEFAULT false] [, owner boolean DEFAULT true] [, tablespace boolean DEFAULT true] ) → setof text

    重建指定数据库的 CREATE DATABASE 语句,随后返回用于连接数上限、模板状态和配置设置的 ALTER DATABASE 语句。每条语句作为单独一行返回。当 pretty 为 true 时,启用美化输出。当 owner 为 false 时,省略 OWNER 子句。当 tablespace 为 false 时,省略 TABLESPACE 子句。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的签名。

  1. PostgreSQL 20 ← 19 新增此函数

    PostgreSQL 20 起可用

签名矩阵

每条签名在给出了签名的 1 个版本里的存在情况;方格指向该版的签名。只在正文里提到此函数、没有给出签名的版本不列进来,上面的版本轨迹里仍然有它们。签名文本在 PostgreSQL 13 前后写法不同,跨越那一跳的同一条签名会显示成两行。

存在 不存在

签名 20
pg_get_database_ddl ( database regdatabase [, pretty boolean DEFAULT false] [, owner boolean DEFAULT true] [, tablespace boolean DEFAULT true] ) → setof text 存在

同组函数

函数 签名 主签名 版本变动 最近变更
SYSTEM INFORMATION FUNCTIONS AND OPERATORS 系统信息函数和操作符 145 个 ↗
acldefault 1 acldefault ( type "char", ownerId oid ) → aclitem[] —
构造一个 aclitem 数组,保存类型为 type、属于 OID 为 ownerId 的角色的对象的默认访问权限。当对象的 ACL 条目为空值时,会采用这些访问权限。(默认访问权限见第 5.9 节。)type 参数必须为以下值之一:'c' 表示 COLUMN,'r' 表示 TABLE 和类似表的对象,'s' 表示 SEQUENCE,'d' 表示 DATABASE,'f' 表示 FUNCTION 或 PROCEDURE,'l' 表示 LANGUAGE,'L' 表示 LARGE OBJECT,'n' 表示 SCHEMA,'p' 表示 PARAMETER,'t' 表示 TABLESPACE,'F' 表示 FOREIGN DATA WRAPPER,'S' 表示 FOREIGN SERVER,'T' 表示 TYPE 或 DOMAIN。 现存
aclexplode 1 aclexplode ( aclitem[] ) → setof record ( grantor oid, grantee oid, privilege_type text, is_grantable boolean ) —
以行集的形式返回 aclitem 数组。如果被授权者是伪角色 PUBLIC,则在 grantee 列中用零表示。每项授予的权限表示为 SELECT、INSERT 等(完整列表见表 5.1)。注意,每项权限都会拆成单独的一行,因此 privilege_type 列中只会出现一个关键字。 现存
col_description 1 col_description ( table oid, column integer ) → text 7.41 次
返回表列的注释,列由所属表的 OID 和列号指定。(obj_description 不能用于表列,因为列没有自身的 OID。) 现存
current_catalog 1 current_catalog → name —
返回当前数据库的名称。(SQL 标准将数据库称为“目录(catalogs)”,因此 current_catalog 是标准中的写法。) 现存
current_database 1 current_database () → name —
返回当前数据库的名称。(SQL 标准将数据库称为“目录(catalogs)”,因此 current_catalog 是标准中的写法。) 现存
current_query 1 current_query () → text —
返回客户端提交的当前正在执行的查询文本(可能包含多条语句)。 现存
current_role 1 current_role → name —
这个等同于 current_user。 现存
current_schema 2 current_schema → name 8.41 次
返回在搜索路径中的第一个模式的名称(如果搜索路径为空则返回空值)。这个模式将用于没有指定目标模式就创建的任何表或其他已命名对象。 现存
current_schemas 1 current_schemas ( include_implicit boolean ) → name[] —
返回当前有效搜索路径中所有模式名称的数组,按优先级排序。(当前 search_path 设置中不对应于已存在且可搜索的模式的项会被省略。)如果布尔参数为 true,结果还会包含 pg_catalog 等隐式搜索的系统模式。 现存
current_user基线 1 current_user → name —
返回当前执行上下文的用户名。 现存
format_type 1 format_type ( type oid, typemod integer ) → text —
返回由其类型 OID 和可能的类型修饰符标识的数据类型的 SQL 名称。如果没有已知的类型修饰符,则传递 NULL 值给类型修饰符。 现存
has_any_column_privilege 1 has_any_column_privilege ( [ user name or oid, ] table text or oid, privilege text ) → boolean —
用户是否对表的至少一列具有权限?如果拥有整个表的权限,或至少一列获得了该权限的列级授权,则返回真。允许的权限类型为 SELECT、INSERT、UPDATE 和 REFERENCES。 现存
has_column_privilege 1 has_column_privilege ( [ user name or oid, ] table text or oid, column text or smallint, privilege text ) → boolean —
用户对指定的表列有权限么?如果对整个表持有权限,或者对列授予了列级别的权限,则会成功。可以通过名称或属性编号(pg_attribute.attnum)指定列。允许的权限类型为 SELECT、INSERT、UPDATE 和 REFERENCES。 现存
has_database_privilege 1 has_database_privilege ( [ user name or oid, ] database text or oid, privilege text ) → boolean 7.41 次
用户对数据库有权限吗?允许的权限类型为 CREATE、CONNECT、TEMPORARY 和 TEMP(相当于 TEMPORARY)。 现存
has_foreign_data_wrapper_privilege 1 has_foreign_data_wrapper_privilege ( [ user name or oid, ] fdw text or oid, privilege text ) → boolean —
用户是否具有外部数据包装器权限?唯一允许的权限类型为 USAGE。 现存
has_function_privilege 1 has_function_privilege ( [ user name or oid, ] function text or oid, privilege text ) → boolean 7.41 次
用户对函数有权限吗?唯一允许的权限类型是 EXECUTE。 现存
has_language_privilege 1 has_language_privilege ( [ user name or oid, ] language text or oid, privilege text ) → boolean 7.41 次
用户对语言有权限吗?唯一允许的权限类型是 USAGE。 现存
has_largeobject_privilege 1 has_largeobject_privilege ( [ user name or oid, ] largeobject oid, privilege text ) → boolean —
用户是否拥有大对象的权限?可用的权限类型是 SELECT 和 UPDATE。 现存
has_parameter_privilege 1 has_parameter_privilege ( [ user name or oid, ] parameter text, privilege text ) → boolean —
用户是否具有配置参数的权限?参数名称不区分大小写。允许的权限类型为 SET 和 ALTER SYSTEM。 现存
has_schema_privilege 1 has_schema_privilege ( [ user name or oid, ] schema text or oid, privilege text ) → boolean 7.41 次
用户对模式有权限吗?允许的权限类型是 CREATE 和 USAGE。 现存
has_sequence_privilege 1 has_sequence_privilege ( [ user name or oid, ] sequence text or oid, privilege text ) → boolean —
用户是否具有序列权限?允许的权限类型为 USAGE、SELECT 和 UPDATE。 现存
has_server_privilege 1 has_server_privilege ( [ user name or oid, ] server text or oid, privilege text ) → boolean —
用户是否对外部服务器有权限?唯一允许的权限类型是 USAGE。 现存
has_table_privilege 1 has_table_privilege ( [ user name or oid, ] table text or oid, privilege text ) → boolean 7.41 次
用户对表有权限吗?允许的权限类型有 SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER 和 MAINTAIN。 现存
has_tablespace_privilege 1 has_tablespace_privilege ( [ user name or oid, ] tablespace text or oid, privilege text ) → boolean —
用户对表空间有权限吗?唯一允许的权限类型是 CREATE。 现存
has_type_privilege 1 has_type_privilege ( [ user name or oid, ] type text or oid, privilege text ) → boolean —
用户对数据类型有权限吗?唯一允许的权限类型是 USAGE。当通过名称而不是 OID 指定类型时,允许的输入与 regtype 数据类型相同(参见第 8.19 节)。 现存
icu_unicode_version 1 icu_unicode_version () → text —
如果服务器在构建时启用了 ICU 支持,则返回一个表示 ICU 所使用的 Unicode 版本的字符串;否则返回 NULL。 现存
inet_client_addr 1 inet_client_addr () → inet —
返回当前客户端的 IP 地址;如果当前连接通过 Unix 域套接字建立,则返回 NULL。 现存
inet_client_port 1 inet_client_port () → integer 8.11 次
返回当前客户端的 IP 端口号,如果当前连接是通过 Unix 域套接字则返回 NULL。 现存
inet_server_addr 1 inet_server_addr () → inet —
返回服务器接受当前连接的 IP 地址,如果当前连接是通过 Unix 域套接字则返回 NULL。 现存
inet_server_port 1 inet_server_port () → integer 8.11 次
返回服务器接受当前连接的 IP 端口号,如果当前连接是通过 Unix 域套接字则返回 NULL。 现存
makeaclitem 1 makeaclitem ( grantee oid, grantor oid, privileges text, is_grantable boolean ) → aclitem —
使用给定的属性构造 aclitem。privileges 是以逗号分隔的权限名列表,例如 SELECT、INSERT 等,列出的所有权限都会设置在结果中。(权限字符串不区分大小写,权限名之间允许有额外的空白,但权限名内部不允许。) 现存
mxid_age 1 mxid_age ( xid ) → integer —
返回给定多事务 ID 与当前多事务计数器之间的多事务 ID 数。 现存
obj_description 2 obj_description ( object oid, catalog name ) → text 7.41 次
返回数据库对象的注释,对象由其 OID 和所在系统目录的名称指定。例如,obj_description(123456, 'pg_class') 会获取 OID 为 123456 的表的注释。 现存
pg_available_wal_summaries 1 pg_available_wal_summaries () → setof record ( tli bigint, start_lsn pg_lsn, end_lsn pg_lsn ) —
返回数据目录中 pg_wal/summaries 下现有 WAL 汇总文件的信息。每个 WAL 汇总文件返回一行。每个文件都汇总了指定 TLI 上、指定 LSN 范围内的 WAL。该函数可用于判断服务器上是否存在足够的 WAL 汇总,从而基于某个已知起始 LSN 的先前备份执行增量备份。 现存
pg_backend_pid 1 pg_backend_pid () → integer —
返回附加到当前会话的服务器进程的进程 ID。 现存
pg_basetype 1 pg_basetype ( regtype ) → regtype —
返回由类型 OID 标识的域的基础类型 OID。如果参数是非域类型的 OID,则原样返回该参数。如果参数不是有效的类型 OID,则返回 NULL。如果存在域依赖链,则递归查找,直到找到基础类型。 现存
pg_blocking_pids 1 pg_blocking_pids ( integer ) → integer[] —
返回一个数组,包含阻止指定进程 ID 对应的服务器进程获取锁的会话进程 ID;如果不存在这样的服务器进程,或该进程未被阻塞,则返回空数组。 现存
pg_char_to_encoding 1 pg_char_to_encoding ( encoding name ) → integer —
将提供的编码名称转换为表示在某些系统目录表中使用的内部标识符的整数。如果提供了未知的编码名称,则返回 -1。 现存
pg_collation_is_visible 1 pg_collation_is_visible ( collation oid ) → boolean —
排序规则在搜索路径中可见吗? 现存
pg_conf_load_time 1 pg_conf_load_time () → timestamp with time zone —
返回服务器配置文件最近一次加载的时间。如果当时当前会话已经存在,则返回该会话自身重新读取配置文件的时间(因此不同会话中的返回时间会略有不同)。否则,返回 postmaster 进程重新读取配置文件的时间。 现存
pg_control_checkpoint 1 pg_control_checkpoint () → record —
返回有关当前检查点状态的信息,如表 9.90 所展示。 现存
pg_control_init 1 pg_control_init () → record —
返回有关集簇初始化状态的信息,如表 9.92 所展示。 现存
pg_control_recovery 1 pg_control_recovery () → record —
返回有关恢复状态的信息,如表 9.93 所展示。 现存
pg_control_system 1 pg_control_system () → record —
返回有关当前控制文件状态的信息,如表 9.91 所展示。 现存
pg_conversion_is_visible 1 pg_conversion_is_visible ( conversion oid ) → boolean —
转换在搜索路径中可见吗? 现存
pg_current_logfile 1 pg_current_logfile ( [ text ] ) → text —
返回当前由日志收集器使用的日志文件的路径名。路径包括 log_directory 目录和单独的日志文件名。如果日志收集器已禁用,则结果为 NULL。当存在多个日志文件,每个以不同格式存在时,不带参数的 pg_current_logfile 返回有序列表中找到的第一个格式的文件路径:stderr,csvlog,jsonlog。如果没有任何日志文件具有这些格式,则返回 NULL。要请求有关特定日志文件格式的信息,请将 csvlog,jsonlog 或 stderr 作为可选参数的值。如果请求的日志格式未在 log_destination 中配置,则结果为 NULL。结果反映 current_logfiles 文件的内容。 现存
pg_current_snapshot 1 pg_current_snapshot () → pg_snapshot —
返回当前快照,即显示哪些事务 ID 正在进行中的数据结构。快照中只包含顶层事务 ID,不显示子事务 ID;详见第 67.3 节。 现存
pg_current_xact_id 1 pg_current_xact_id () → xid8 —
返回当前事务的 ID。如果当前事务还没有一个 ID(因为它还没有执行任何数据库更新),它将分配一个新的事务 ID;详见第 67.1 节。如果在子事务中执行,它将返回顶层事务的 ID;详见第 67.3 节。 现存
pg_current_xact_id_if_assigned 1 pg_current_xact_id_if_assigned () → xid8 —
返回当前事务的 ID;如果尚未分配 ID,则返回 NULL。(如果事务本来可能是只读的,最好使用此变体,以免不必要地消耗 XID。)如果在子事务中执行,则返回顶层事务 ID。 现存
pg_describe_object 1 pg_describe_object ( classid oid, objid oid, objsubid integer ) → text 9.51 次
返回数据库对象的文本描述,对象由系统目录 OID、对象 OID 和子对象 ID 指定(例如表中的列号;引用整个对象时,子对象 ID 为零)。该描述供人阅读,并可能根据服务器配置被翻译。这对于确定 pg_depend 系统目录中所引用对象的标识尤其有用。对于未定义的对象,此函数返回 NULL。 现存
pg_encoding_to_char 1 pg_encoding_to_char ( encoding integer ) → name —
将在某些系统目录表中用作编码内部标识符的整数转换为可读的字符串。如果提供了无效的编码编号,则返回空字符串。 现存
pg_function_is_visible 1 pg_function_is_visible ( function oid ) → boolean 7.41 次
函数在搜索路径中可见吗?(这也适用于过程和聚合。) 现存
pg_get_acl 1 pg_get_acl ( classid oid, objid oid, objsubid integer ) → aclitem[] —
返回由系统目录 OID、对象 OID 和子对象 ID 指定的数据库对象的 ACL。对于未定义的对象,此函数返回 NULL 值。 现存
pg_get_catalog_foreign_keys 1 pg_get_catalog_foreign_keys () → setof record ( fktable regclass, fkcols text[], pktable regclass, pkcols text[], is_array boolean, is_opt boolean ) —
返回一组记录,描述存在于 PostgreSQL 系统目录中的外键关系。fktable 列包含引用目录的名称,fkcols 列包含引用列的名称。类似地,pktable 列包含被引用目录的名称,而 pkcols 列包含被引用列的名称。如果 is_array 为真,则最后一个引用列是一个数组,其每个元素都应该与被引用目录中的某个条目匹配。如果 is_opt 为真,则允许引用列包含零而不是有效引用。 现存
pg_get_constraintdef 1 pg_get_constraintdef ( constraint oid [, pretty boolean ] ) → text 7.41 次
重建约束的创建命令。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_database_ddl 1 pg_get_database_ddl ( database regdatabase [, pretty boolean DEFAULT false] [, owner boolean DEFAULT true] [, tablespace boolean DEFAULT true] ) → setof text —
重建指定数据库的 CREATE DATABASE 语句,随后返回用于连接数上限、模板状态和配置设置的 ALTER DATABASE 语句。每条语句作为单独一行返回。当 pretty 为 true 时,启用美化输出。当 owner 为 false 时,省略 OWNER 子句。当 tablespace 为 false 时,省略 TABLESPACE 子句。 现存
pg_get_expr 1 pg_get_expr ( expr pg_node_tree, relation oid [, pretty boolean ] ) → text 9.11 次
反编译存储在系统目录中的表达式的内部形式,例如列的默认值。如果表达式可能包含 Var 节点,请将它们所引用的关系的 OID 指定为第二个参数;如果预计不含 Var 节点,传入零即可。 现存
pg_get_function_arguments 1 pg_get_function_arguments ( func oid ) → text —
重建函数或过程的参数列表,采用其在 CREATE FUNCTION 中应有的形式(包括默认值)。 现存
pg_get_function_identity_arguments 1 pg_get_function_identity_arguments ( func oid ) → text —
重建标识函数或过程所需的参数列表,采用其在 ALTER FUNCTION 等命令中应有的形式。这种形式省略默认值。 现存
pg_get_function_result 1 pg_get_function_result ( func oid ) → text —
重建函数的 RETURNS 子句,采用其在 CREATE FUNCTION 中应有的形式。对于过程,返回 NULL。 现存
pg_get_functiondef 1 pg_get_functiondef ( func oid ) → text —
重建函数或过程的创建命令。(这是反编译重建的结果,并非命令的原始文本。)结果是一条完整的 CREATE OR REPLACE FUNCTION 或 CREATE OR REPLACE PROCEDURE 语句。 现存
pg_get_indexdef 1 pg_get_indexdef ( index oid [, column integer, pretty boolean ] ) → text 7.41 次
重建索引的创建命令。(这是反编译重建的结果,并非命令的原始文本。)如果提供了 column 而且不为零,则只重建该列的定义。 现存
pg_get_keywords 1 pg_get_keywords () → setof record ( word text, catcode "char", barelabel boolean, catdesc text, baredesc text ) 141 次
返回描述服务器所识别 SQL 关键字的一组记录。word 列包含关键字。catcode 列包含类别代码:U 表示非保留关键字,C 表示可用作列名的关键字,T 表示可用作类型名或函数名的关键字,R 表示完全保留的关键字。如果关键字可以在 SELECT 列表中用作“裸”列标签,barelabel 列为 true;如果只能在 AS 之后使用,则为 false。catdesc 列包含描述关键字类别的字符串,该字符串可能已被本地化。baredesc 列包含描述关键字列标签状态的字符串,该字符串可能已被本地化。 现存
pg_get_loaded_modules 1 pg_get_loaded_modules () → setof record ( module_name text, version text, file_name text ) —
返回当前服务器会话中已加载的可加载模块列表。除非模块作者使用 PG_MODULE_MAGIC_EXT 宏提供了这些值,否则 module_name 和 version 字段为 NULL。file_name 字段给出模块(共享库)的文件名。 现存
pg_get_multixact_members 1 pg_get_multixact_members ( multixid xid ) → setof record ( xid xid, mode text ) —
返回指定多事务 ID 中每个成员的事务 ID 和锁模式。锁模式 forupd、fornokeyupd、sh 和 keysh 分别对应于第 13.3.2 节中描述的行级锁 FOR UPDATE、FOR NO KEY UPDATE、FOR SHARE 和 FOR KEY SHARE。另有两种多事务特有的模式:nokeyupd 用于不修改键列的更新,upd 用于修改键列的更新或删除。 现存
pg_get_multixact_stats 1 pg_get_multixact_stats () → record ( num_mxids integer, num_members bigint, members_size bigint, oldest_multixact xid ) —
返回当前多事务使用情况的统计信息:num_mxids 是系统中当前存在的多事务 ID 总数,num_members 是系统中当前存在的多事务成员条目总数,members_size 是 pg_multixact/members 目录中 num_members 占用的存储空间,oldest_multixact 是仍在使用的最旧多事务 ID。 现存
pg_get_object_address 1 pg_get_object_address ( type text, object_names text[], object_args text[] ) → record ( classid oid, objid oid, objsubid integer ) 111 次
返回一行,其中包含足以唯一标识数据库对象的信息,该对象由类型代码、对象名称数组和参数数组指定。返回的值就是 pg_depend 等系统目录中使用的值;它们可以传给 pg_describe_object 或 pg_identify_object 等其他系统函数。classid 是包含该对象的系统目录的 OID;objid 是对象自身的 OID;objsubid 是子对象 ID,没有子对象时为零。此函数执行 pg_identify_object_as_address 的逆操作。未定义的对象以 NULL 值标识。 现存
pg_get_partition_constraintdef 1 pg_get_partition_constraintdef ( table oid ) → text —
重建分区约束的定义。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_partkeydef 1 pg_get_partkeydef ( table oid ) → text —
重建分区表的分区键定义,采用其在 CREATE TABLE 的 PARTITION BY 子句中的形式。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_role_ddl 1 pg_get_role_ddl ( role regrole [, pretty boolean DEFAULT false] [, memberships boolean DEFAULT true] ) → setof text —
重建给定角色的 CREATE ROLE 语句以及任何 ALTER ROLE ... SET 语句。每条语句作为单独一行返回。密码信息绝不会包含在输出中。当 pretty 为 true 时,启用美化输出。当 memberships 为 false 时,省略用于角色成员关系的 GRANT 语句。 现存
pg_get_ruledef 1 pg_get_ruledef ( rule oid [, pretty boolean ] ) → text 7.42 次
重建规则的创建命令。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_serial_sequence 1 pg_get_serial_sequence ( table text, column text ) → text —
返回与列相关联的序列名称,如果没有序列与该列相关联则返回 NULL。如果列是标识列,则关联序列是在内部为该列创建的序列。对于使用一种 serial 类型(serial、smallserial、bigserial)创建的列,它是为该 serial 列定义创建的序列。在后一种情况下,可以使用 ALTER SEQUENCE OWNED BY 修改或删除关联。(这个函数可能应该被称为 pg_get_owned_sequence;它的当前名称反映了它在历史上曾与 serial 类型的列一起使用。)第一个参数是具有可选模式的表名,第二个参数是列名。由于第一个参数可能包含模式名和表名,因此按照通常的 SQL 规则解析它,这意味着默认情况下它是小写的。第二个参数只是一个列名,按照字面来处理,因此保留了它的大小写。结果经过了适当的格式化,可以传递给序列函数(参见第 9.18 节)。 现存
pg_get_statisticsobjdef 1 pg_get_statisticsobjdef ( statobj oid ) → text —
重建扩展统计对象的创建命令。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_tablespace_ddl 2 pg_get_tablespace_ddl ( tablespace oid [, pretty boolean DEFAULT false] [, owner boolean DEFAULT true] ) → setof text —
重建指定表空间(按 OID 或名称指定)的 CREATE TABLESPACE 语句。如果该表空间设置了选项,还会返回一条 ALTER TABLESPACE ... SET 语句。每条语句作为单独一行返回。当 pretty 为 true 时,启用美化输出。当 owner 为 false 时,省略 OWNER 子句。 现存
pg_get_triggerdef 1 pg_get_triggerdef ( trigger oid [, pretty boolean ] ) → text 9.01 次
重建触发器的创建命令。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_userbyid 1 pg_get_userbyid ( role oid ) → name 8.42 次
根据 OID 返回角色名。 现存
pg_get_viewdef 3 pg_get_viewdef ( view oid [, pretty boolean ] ) → text 9.23 次
重建定义视图或物化视图的 SELECT 命令。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_wal_summarizer_state 1 pg_get_wal_summarizer_state () → record ( summarized_tli bigint, summarized_lsn pg_lsn, pending_lsn pg_lsn, summarizer_pid int ) —
返回有关 WAL 汇总器进度的信息。如果自实例启动以来 WAL 汇总器从未运行过,则 summarized_tli 和 summarized_lsn 将分别为 0 和 0/00000000;否则,它们将是最近写入磁盘的 WAL 汇总文件的 TLI 和结束 LSN。如果 WAL 汇总器当前正在运行,pending_lsn 将是它已消费的最后一条记录的结束 LSN,该值必定始终大于或等于 summarized_lsn;如果 WAL 汇总器未在运行,则它将等于 summarized_lsn。summarizer_pid 是 WAL 汇总器进程的 PID;如果它正在运行则返回该 PID,否则为 NULL。 现存
pg_has_role 1 pg_has_role ( [ user name or oid, ] role text or oid, privilege text ) → boolean —
用户是否具有角色权限?允许的权限类型为 MEMBER、USAGE 和 SET。MEMBER 表示对该角色的直接或间接成员资格,而不考虑由此授予的具体权限。USAGE 表示该角色的权限是否无需执行 SET ROLE 即可立即使用,而 SET 表示是否可以使用 SET ROLE 命令切换到该角色。任一权限类型后面都可以附加 WITH ADMIN OPTION 或 WITH GRANT OPTION,用于测试是否持有 ADMIN 权限(这六种写法测试的都是同一件事)。此函数不允许将 user 设置为 public 这一特殊情况,因为 PUBLIC 伪角色永远不能成为实际角色的成员。 现存
pg_identify_object 1 pg_identify_object ( classid oid, objid oid, objsubid integer ) → record ( type text, schema text, name text, identity text ) 9.51 次
返回一行,其中包含足以唯一标识数据库对象的信息,该对象由系统目录 OID、对象 OID 和子对象 ID 指定。这些信息供机器读取,永远不会被翻译。type 标识数据库对象的类型;schema 是对象所属的模式名,对于不属于模式的对象类型则为 NULL;如果对象名(以及适用时的模式名)足以唯一标识该对象,name 就是对象名,并在必要时加引号,否则为 NULL;identity 是完整的对象标识,其具体格式取决于对象类型,格式中的每个名称都会根据需要加上模式限定和引号。未定义的对象以 NULL 值标识。 现存
pg_identify_object_as_address 1 pg_identify_object_as_address ( classid oid, objid oid, objsubid integer ) → record ( type text, object_names text[], object_args text[] ) —
返回一行,其中包含足以唯一标识数据库对象的信息,该对象由系统目录 OID、对象 OID 和子对象 ID 指定。返回的信息与当前服务器无关,也就是说,它也能用于标识另一台服务器上名称相同的对象。type 标识数据库对象的类型;object_names 和 object_args 是 text 数组,共同构成对该对象的引用。将这三个值传给 pg_get_object_address 可以获得对象的内部地址。 现存
pg_index_column_has_property 1 pg_index_column_has_property ( index regclass, column integer, property text ) → boolean —
测试一个索引列是否具有指定名称的属性。表 9.78 列出了常用索引列属性。(注意,扩展访问方法可以为其索引定义额外的属性名。)如果属性名未知或不适用于特定对象,或者 OID 或列号不能识别有效的对象,则返回 NULL。 现存
pg_index_has_property 1 pg_index_has_property ( index regclass, property text ) → boolean —
测试一个索引是否具有指定名称的属性。表 9.79 列出了常用的索引属性。(注意,扩展访问方法可以为其索引定义额外的属性名。)如果属性名未知或不适用于特定对象,或者 OID 不能识别有效的对象,则返回 NULL。 现存
pg_indexam_has_property 1 pg_indexam_has_property ( am oid, property text ) → boolean —
测试索引访问方法是否具有指定名称的属性。访问方法属性如表 9.80 所示。如果属性名未知或不适用于特定对象,或者 OID 不能识别有效的对象,则返回 NULL。 现存
pg_input_error_info 1 pg_input_error_info ( string text, type text ) → record ( message text, detail text, hint text, sql_error_code text ) —
测试给定的 string 是否是指定数据类型的有效输入;如果不是,则返回本应抛出的错误详情。如果输入有效,则结果为 NULL。输入参数与 pg_input_is_valid 相同。 现存
pg_input_is_valid 1 pg_input_is_valid ( string text, type text ) → boolean —
测试给定的 string 是否是指定数据类型的有效输入,返回 true 或 false。 现存
pg_is_other_temp_schema 1 pg_is_other_temp_schema ( oid ) → boolean —
如果给定的 OID 是另一个会话的临时模式的 OID 则返回真。(这可能是有用的,例如,在目录显示中排除其他会话的临时表。) 现存
pg_jit_available 1 pg_jit_available () → boolean —
如果 JIT 编译器扩展可用(参见第 30 章),并且 jit 配置参数设置为 on,则返回真。 现存
pg_last_committed_xact 1 pg_last_committed_xact () → record ( xid xid, timestamp timestamp with time zone, roident oid ) 141 次
返回最近提交事务的事务 ID、提交时间戳和复制源。 现存
pg_listening_channels 1 pg_listening_channels () → setof text —
返回当前会话正在侦听的异步通知通道的名称集。 现存
pg_my_temp_schema 1 pg_my_temp_schema () → oid —
返回当前会话的临时模式的 OID,如果没有则返回 0(因为它没有创建任何临时表)。 现存
pg_notification_queue_usage 1 pg_notification_queue_usage () → double precision —
返回待处理通知当前占用的空间占异步通知队列最大容量的比例(0–1)。更多信息请参见 LISTEN 和 NOTIFY。 现存
pg_numa_available 1 pg_numa_available () → boolean —
如果服务器在编译时启用了 NUMA 支持,则返回真。 现存
pg_opclass_is_visible 1 pg_opclass_is_visible ( opclass oid ) → boolean 7.41 次
操作符类在搜索路径中可见吗? 现存
pg_operator_is_visible 1 pg_operator_is_visible ( operator oid ) → boolean 7.41 次
操作符在搜索路径中可见吗? 现存
pg_opfamily_is_visible 1 pg_opfamily_is_visible ( opclass oid ) → boolean —
操作符族在搜索路径中可见吗? 现存
pg_options_to_table 1 pg_options_to_table ( options_array text[] ) → setof record ( option_name text, option_value text ) —
返回源自 pg_class.reloptions 或 pg_attribute.attoptions 的值表示的存储选项集。 现存
pg_postmaster_start_time 1 pg_postmaster_start_time () → timestamp with time zone —
返回服务器启动时的时间。 现存
pg_safe_snapshot_blocking_pids 1 pg_safe_snapshot_blocking_pids ( integer ) → integer[] —
返回一个数组,包含阻止指定进程 ID 对应的服务器进程获取安全快照的会话进程 ID;如果不存在这样的服务器进程,或该进程未被阻塞,则返回空数组。 现存
pg_settings_get_flags 1 pg_settings_get_flags ( guc text ) → text[] —
返回与给定 GUC 关联的标志数组;如果该 GUC 不存在,则返回 NULL。如果 GUC 存在但没有要显示的标志,则结果为空数组。此函数仅公开表 9.81 中列出的最有用的标志。 现存
pg_snapshot_xip 1 pg_snapshot_xip ( pg_snapshot ) → setof xid8 —
返回快照中包含的正在进行的事务 ID 集。 现存
pg_snapshot_xmax 1 pg_snapshot_xmax ( pg_snapshot ) → xid8 —
返回快照的 xmax。 现存
pg_snapshot_xmin 1 pg_snapshot_xmin ( pg_snapshot ) → xid8 —
返回快照的 xmin。 现存
pg_statistics_obj_is_visible 1 pg_statistics_obj_is_visible ( stat oid ) → boolean —
统计对象在搜索路径中可见吗? 现存
pg_table_is_visible 1 pg_table_is_visible ( table oid ) → boolean 7.41 次
表在搜索路径中可见吗?(这适用于所有类型的关系,包括视图、物化视图、索引、序列和外部表。) 现存
pg_tablespace_databases 1 pg_tablespace_databases ( tablespace oid ) → setof oid —
返回在指定表空间中存储了对象的数据库 OID 集合。如果此函数返回任何行,则说明该表空间不为空,不能删除。要查看存放在该表空间中的具体对象,需要连接到 pg_tablespace_databases 标识的数据库,并查询它们的 pg_class 系统目录。 现存
pg_tablespace_location 1 pg_tablespace_location ( tablespace oid ) → text —
返回表空间所在的文件系统路径。 现存
pg_trigger_depth 1 pg_trigger_depth () → integer —
返回 PostgreSQL 触发器的当前嵌套层级(如果不是从触发器内部直接或间接调用,则为 0)。 现存
pg_ts_config_is_visible 1 pg_ts_config_is_visible ( config oid ) → boolean —
全文检索配置是否在搜索路径中可见? 现存
pg_ts_dict_is_visible 1 pg_ts_dict_is_visible ( dict oid ) → boolean —
全文检索词典是否在搜索路径中可见? 现存
pg_ts_parser_is_visible 1 pg_ts_parser_is_visible ( parser oid ) → boolean —
全文检索解析器是否在搜索路径中可见? 现存
pg_ts_template_is_visible 1 pg_ts_template_is_visible ( template oid ) → boolean —
全文检索模板是否在搜索路径中可见? 现存
pg_type_is_visible 1 pg_type_is_visible ( type oid ) → boolean 7.41 次
类型(或域)在搜索路径中可见吗? 现存
pg_typeof 1 pg_typeof ( "any" ) → regtype —
返回所传入值的数据类型的 OID。这有助于排查问题或动态构造 SQL 查询。函数声明的返回类型是 regtype,它是一种 OID 别名类型(参见第 8.19 节);这意味着它在比较时与 OID 相同,但显示为类型名。 现存
pg_visible_in_snapshot 1 pg_visible_in_snapshot ( xid8, pg_snapshot ) → boolean —
根据此快照,给定的事务 ID 是否可见(即该事务是否在生成快照之前完成)?注意,此函数无法为子事务 ID(subxid)给出正确结果;详见第 67.3 节。 现存
pg_wal_summary_contents 1 pg_wal_summary_contents ( tli bigint, start_lsn pg_lsn, end_lsn pg_lsn ) → setof record ( relfilenode oid, reltablespace oid, reldatabase oid, relforknumber smallint, relblocknumber bigint, is_limit_block boolean ) —
返回由 TLI 以及起始和结束 LSN 标识的单个 WAL 汇总文件内容的信息。每一行中,如果 is_limit_block 为 false,则表示其余输出列所标识的块在该文件所汇总的 WAL 记录范围内被至少一条 WAL 记录修改过。每一行中,如果 is_limit_block 为 true,则表示以下两种情况之一:(a) 该关系分支在相关 WAL 记录范围内被截断到 relblocknumber 给出的长度;或者 (b) 该关系分支在相关 WAL 记录范围内被创建或删除;在创建或删除的情况下,relblocknumber 将为零。 现存
pg_xact_commit_timestamp 1 pg_xact_commit_timestamp ( xid ) → timestamp with time zone —
返回事务的提交时间戳。 现存
pg_xact_commit_timestamp_origin 1 pg_xact_commit_timestamp_origin ( xid ) → record ( timestamp timestamp with time zone, roident oid) —
返回事务的提交时间戳和复制源。 现存
pg_xact_status 1 pg_xact_status ( xid8 ) → text —
报告近期事务的提交状态。只要事务足够新,系统仍保留其提交状态,结果就为 in progress、committed 或 aborted。如果事务已足够旧,系统中不再有对它的引用,且提交状态信息已被丢弃,则返回 NULL。例如,在 COMMIT 进行过程中应用与数据库服务器断开连接时,应用可以用此函数判断事务是提交了还是中止了。注意,预备事务被报告为 in progress;如果需要确定某个事务 ID 是否为预备事务,应用必须检查 pg_prepared_xacts。 现存
row_security_active 1 row_security_active ( table text or oid ) → boolean —
在当前用户和当前环境的上下文中,指定表的行级安全是否生效? 现存
session_user基线 1 session_user → name —
返回会话用户名。 现存
shobj_description 1 shobj_description ( object oid, catalog name ) → text —
返回共享数据库对象的注释,对象由其 OID 和所在系统目录的名称指定。此函数与 obj_description 类似,但用于获取共享对象(即数据库、角色和表空间)的注释。有些系统目录由数据库集簇中的所有数据库全局共享,其中对象的描述也全局存储。 现存
system_user 1 system_user → text —
返回用户在被分配数据库角色之前,于认证周期中提供的认证方法和身份(如果有)。结果表示为 auth_method:identity;如果用户未被认证(例如使用了 Trust 认证),则返回 NULL。 现存
to_regclass 1 to_regclass ( text ) → regclass —
将文本关系名转换为它的 OID。通过将字符串类型转换为 regclass 可以得到类似的结果(参见第 8.19 节);但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regcollation 1 to_regcollation ( text ) → regcollation —
将文本排序规则名称转换为它的 OID。通过将字符串类型转换为 regcollation(参见第 8.19 节)可以得到类似的结果;但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regdatabase 1 to_regdatabase ( text ) → regdatabase —
将文本数据库名转换为它的 OID。通过将字符串类型转换为 regdatabase 可以得到类似的结果(参见第 8.19 节);但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regnamespace 1 to_regnamespace ( text ) → regnamespace —
将文本模式名转换为它的 OID。通过将字符串转换为 regnamespace 类型(参见第 8.19 节)可以得到类似的结果;但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regoper 1 to_regoper ( text ) → regoper —
将文本操作符名称转换为它的 OID。通过将字符串类型转换为 regoper(参见第 8.19 节)可以得到类似的结果;但是,如果找不到名称或名称有多义性,该函数将返回 NULL 而不会抛出错误。 现存
to_regoperator 1 to_regoperator ( text ) → regoperator —
将文本操作符名称(带有参数类型)转换为其 OID。通过将字符串转换为 regoperator 类型(参见第 8.19 节)可以得到类似的结果;但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regproc 1 to_regproc ( text ) → regproc —
将文本函数或过程名转换为其 OID。通过将字符串转换为 regproc 类型(参见第 8.19 节)可以得到类似的结果;但是,如果找不到名称或名称有多义性,该函数将返回 NULL 而不会抛出错误。 现存
to_regprocedure 1 to_regprocedure ( text ) → regprocedure —
将文本函数或过程名(带有参数类型)转换为其 OID。通过将字符串类型转换为 regprocedure 可以得到类似的结果(参见第 8.19 节);但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regrole 1 to_regrole ( text ) → regrole —
将文本角色名转换为它的 OID。通过将字符串类型转换为 regrole 可以得到类似的结果(参见第 8.19 节);但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regtype 1 to_regtype ( text ) → regtype —
解析文本字符串,从中提取可能的类型名,并将该名称转换为类型 OID。字符串中的语法错误会导致报错;但如果字符串是语法有效的类型名,只是在系统目录中找不到该类型,结果就是 NULL。将字符串转换为 regtype 类型也能得到类似的结果(参见第 8.19 节),区别在于类型转换会在找不到名称时报错。 现存
to_regtypemod 1 to_regtypemod ( text ) → integer —
解析文本字符串,从中提取可能的类型名称,并转换其类型修饰符(如果有)。字符串中的语法错误会引发错误;但如果字符串是语法有效的类型名称,只是在系统目录中找不到,则结果为 NULL。如果没有类型修饰符,则结果为 -1。 现存
txid_current 1 txid_current () → bigint —
参见 pg_current_xact_id()。 现存
txid_current_if_assigned 1 txid_current_if_assigned () → bigint —
参见 pg_current_xact_id_if_assigned()。 现存
txid_current_snapshot 1 txid_current_snapshot () → txid_snapshot —
参见 pg_current_snapshot()。 现存
txid_snapshot_xip 1 txid_snapshot_xip ( txid_snapshot ) → setof bigint —
参见 pg_snapshot_xip()。 现存
txid_snapshot_xmax 1 txid_snapshot_xmax ( txid_snapshot ) → bigint —
参见 pg_snapshot_xmax()。 现存
txid_snapshot_xmin 1 txid_snapshot_xmin ( txid_snapshot ) → bigint —
参见 pg_snapshot_xmin()。 现存
txid_status 1 txid_status ( bigint ) → text —
参见 pg_xact_status()。 现存
txid_visible_in_snapshot 1 txid_visible_in_snapshot ( bigint, txid_snapshot ) → boolean —
参见 pg_visible_in_snapshot()。 现存
unicode_version 1 unicode_version () → text —
返回一个表示 PostgreSQL 所使用的 Unicode 版本的字符串。 现存
user 1 user → name —
这个相当于 current_user。 现存
version 1 version () → text 7.31 次
返回描述 PostgreSQL 服务器版本的字符串。你还可以从 server_version 获得此信息,或者对于机器可读的版本,使用 server_version_num。软件开发人员应该使用 server_version_num(自 8.2 起可用)或 PQserverVersion,而不是解析文本版本。 现存

本站手册收录 pg_get_database_ddl 的版本:20 devel

签名与示例依据同版本 PostgreSQL 手册,中文说明来自已核对的同版本手册与审阅译文,最后同步 2026-10-22。

译文有误请提交到 pgsty/pgdoc;本站渲染或数据的问题提交到 pgsty/pgweb。