FUNCTION系统管理函数
pg_log_backend_memory_contexts
请求记录具有指定进程 ID 的后端进程的内存上下文。此函数可以向除日志记录进程以外的后端进程和辅助进程发送请求。这些内存上下文将以 LOG 消息级别记录,并根据日志配置出现在服务器日志中(详见第 19.8 节);无论 client_min_messages 如何设置,都不会发送给客户端。
Requests to log the memory contexts of the backend with the specified process ID.
系统管理函数 引入 14 现存至 20 devel 1 条签名 0 次签名变更
- 分组
- 系统管理函数
- 签名数
- 1 条
- 引入版本
- 14
- 状态
- 现存
- 签名变更
- 未变过
- 本版来源
- 英文原文
版本轨迹
相对 PostgreSQL 17 无变化。
说明
LOG 消息级别记录,并根据日志配置出现在服务器日志中(详见第 19.8 节);无论 client_min_messages 如何设置,都不会发送给客户端。pg_log_backend_memory_contexts ( pid integer ) → boolean请求记录具有指定进程 ID 的后端进程的内存上下文。此函数可以向除日志记录进程以外的后端进程和辅助进程发送请求。这些内存上下文将以
LOG 消息级别记录,并根据日志配置出现在服务器日志中(详见第 19.8 节);无论 client_min_messages 如何设置,都不会发送给客户端。签名
PostgreSQL 18.7 里 pg_log_backend_memory_contexts 的 1 条签名,按上游手册顺序排列。参数名用斜体,类型用弱化色, 之后是返回类型。中文说明来自同版本手册与审阅译文,悬停可查看每条说明的来源。
-
pg_log_backend_memory_contexts(pidinteger) →boolean请求记录具有指定进程 ID 的后端进程的内存上下文。此函数可以向除日志记录进程以外的后端进程和辅助进程发送请求。这些内存上下文将以LOG消息级别记录,并根据日志配置出现在服务器日志中(详见第 19.8 节);无论 client_min_messages 如何设置,都不会发送给客户端。
演化历史
相邻两个大版本之间的差异,新的在前。版本号链到该版的签名。
-
PostgreSQL 17 ← 16 说明更新
说明更新
-
PostgreSQL 15 ← 14 说明更新
说明更新
-
PostgreSQL 14 ← 13 新增此函数
PostgreSQL 14 起可用
签名矩阵
每条签名在给出了签名的 7 个版本里的存在情况;方格指向该版的签名。只在正文里提到此函数、没有给出签名的版本不列进来,上面的版本轨迹里仍然有它们。签名文本在 PostgreSQL 13 前后写法不同,跨越那一跳的同一条签名会显示成两行。
存在 不存在
同组函数
| 函数 | 签名 | 主签名 | 版本变动 | 最近变更 |
|---|---|---|---|---|
brin_desummarize_range |
1 | brin_desummarize_range ( index regclass, blockNumber bigint ) → void |
— | |
| 如果存在涵盖指定表块的页面范围摘要,则删除对应的 BRIN 索引元组。 | 现存 | |||
brin_summarize_new_values |
1 | brin_summarize_new_values ( index regclass ) → integer |
9.61 次 | |
| 扫描指定的 BRIN 索引以查找基表中当前尚未生成索引摘要的页面范围;对于任何这样的范围,它都通过扫描这些表页来创建一个新的摘要索引元组。返回插入到索引中的新页面范围摘要的数量。 | 现存 | |||
brin_summarize_range |
1 | brin_summarize_range ( index regclass, blockNumber bigint ) → integer |
— | |
| 对覆盖给定块的页面范围执行摘要(如果尚未摘要)。这类似于 brin_summarize_new_values,区别在于它只处理包含给定表块编号的页面范围。 | 现存 | |||
current_setting |
1 | current_setting ( setting_name text [, missing_ok boolean ] ) → text |
9.61 次 | |
| 返回设置 setting_name 的当前值。如果没有这样的设置,current_setting 将抛出一个错误,除非 missing_ok 被提供并且为 true(在此情况下返回 NULL)。这个函数对应于 SQL 命令 SHOW。 | 现存 | |||
gin_clean_pending_list |
1 | gin_clean_pending_list ( index regclass ) → bigint |
— | |
| 将指定 GIN 索引的“待处理”列表中的条目批量移入主 GIN 数据结构,从而清理该列表。返回从待处理列表中移除的页数。如果参数是禁用 fastupdate 选项构建的 GIN 索引,则不会进行清理,结果为零,因为该索引没有待处理列表。有关待处理列表和 fastupdate 选项的详细信息,参见第 65.4.4.1 节和第 65.4.5 节。 | 现存 | |||
pg_advisory_lock |
2 | pg_advisory_lock ( key bigint ) → void |
— | |
| 获取一个排他的会话级咨询锁,如有必要则等待。 | 现存 | |||
pg_advisory_lock_shared |
2 | pg_advisory_lock_shared ( key bigint ) → void |
— | |
| 获取一个共享的会话级咨询锁,如有必要则等待。 | 现存 | |||
pg_advisory_unlock |
2 | pg_advisory_unlock ( key bigint ) → boolean |
— | |
| 释放以前获取的排他会话级咨询锁。如果锁成功释放则返回 true。如果锁没有被持有,则返回 false,此外,服务器将报告一个 SQL 警告。 | 现存 | |||
pg_advisory_unlock_all |
1 | pg_advisory_unlock_all () → void |
— | |
| 释放当前会话所持有的所有会话级咨询锁。(即使客户端异常断开连接,这个函数也会在会话结束时被隐式调用。) | 现存 | |||
pg_advisory_unlock_shared |
2 | pg_advisory_unlock_shared ( key bigint ) → boolean |
— | |
| 释放以前获取的共享会话级咨询锁。如果锁成功释放则返回 true。如果锁没有被持有,则返回 false,此外,服务器将报告一个 SQL 警告。 | 现存 | |||
pg_advisory_xact_lock |
2 | pg_advisory_xact_lock ( key bigint ) → void |
— | |
| 获取一个排他的事务级咨询锁,如有必要则等待。 | 现存 | |||
pg_advisory_xact_lock_shared |
2 | pg_advisory_xact_lock_shared ( key bigint ) → void |
— | |
| 获取一个共享的事务级咨询锁,如有必要则等待。 | 现存 | |||
pg_backup_start |
1 | pg_backup_start ( label text [, fast boolean ] ) → pg_lsn |
— | |
| 准备服务器开始在线备份。唯一必需的参数是用户任意指定的备份标签。(通常是备份转储文件将要保存的名称。)如果可选的第二个参数为 true,则尽快执行 pg_backup_start。这会强制执行快速检查点,使 I/O 操作量陡增,并降低并发执行的查询的速度。 | 现存 | |||
pg_backup_start_time |
1 | pg_backup_start_time () → timestamp with time zone |
— | |
| 如果正在进行在线排他备份,返回其开始时间,否则返回 NULL。 | 于 15 移除 | |||
pg_backup_stop |
1 | pg_backup_stop ( [wait_for_archive boolean ] ) → record ( lsn pg_lsn, labelfile text, spcmapfile text ) |
— | |
| 结束在线备份。备份标签文件和表空间映射文件所需的内容作为函数结果的一部分返回,必须将其写入备份区域中的文件。切勿将这些文件写入正在使用的数据目录(否则发生崩溃后 PostgreSQL 将无法重新启动)。 | 现存 | |||
pg_cancel_backend |
1 | pg_cancel_backend ( pid integer ) → boolean |
8.11 次 | |
| 取消具有指定进程 ID 的后端进程的会话的当前查询。如果调用角色是被取消的后端进程所属角色的成员,或者调用角色具有 pg_signal_backend 的权限,则也允许执行此操作,但只有超级用户可以取消超级用户后端进程。例外情况是,具有 pg_signal_autovacuum_worker 角色权限的角色可以取消 autovacuum 工作进程,而这些进程原本被视为超级用户后端。 | 现存 | |||
pg_clear_attribute_stats |
1 | pg_clear_attribute_stats ( schemaname text, relname text, attname text, inherited boolean ) → void |
— | |
| 清除给定关系和属性的列级统计信息,就像该表是新创建的一样。 | 现存 | |||
pg_clear_extended_stats |
1 | pg_clear_extended_stats ( schemaname name, relname name, statistics_schemaname name, statistics_name name, inherited boolean ) → void |
— | |
| 清空扩展统计对象的数据,就像该对象是新建的一样。必需的参数包括 schemaname 和 relname,用于指定要清空其统计信息的关系的模式和表名,以及 statistics_schemaname 和 statistics_name,用于指定要清空的扩展统计对象的模式和扩展统计名称。 | 现存 | |||
pg_clear_relation_stats |
1 | pg_clear_relation_stats ( schemaname text, relname text ) → void |
— | |
| 清除给定关系的表级统计信息,就像该表是新创建的一样。 | 现存 | |||
pg_collation_actual_version |
1 | pg_collation_actual_version ( oid ) → text |
— | |
| 返回当前安装在操作系统中的该排序规则对象的实际版本。如果这个版本与 pg_collation.collversion 中的值不同,则依赖于该排序规则的对象可能需要被重建。还可以参考 ALTER COLLATION。 | 现存 | |||
pg_column_compression |
1 | pg_column_compression ( "any" ) → text |
— | |
| 显示用于压缩单个变长值的压缩算法。如果值没有被压缩,则返回 NULL。 | 现存 | |||
pg_column_size |
1 | pg_column_size ( "any" ) → integer |
— | |
| 显示用于存储任何单个数据值的字节数。如果直接应用于表的列值,则反映所做的任何压缩。 | 现存 | |||
pg_column_toast_chunk_id |
1 | pg_column_toast_chunk_id ( "any" ) → oid8 |
201 次 | |
| 显示磁盘上经过 TOAST 处理的值的 chunk_id。如果该值未经过 TOAST 处理或不在磁盘上,则返回 NULL。有关 TOAST 的更多信息,请参见第 66.2 节。 | 现存 | |||
pg_copy_logical_replication_slot |
1 | pg_copy_logical_replication_slot ( src_slot_name name, dst_slot_name name [, temporary boolean [, plugin name ]] ) → record ( slot_name name, lsn pg_lsn ) |
— | |
| 复制一个名为 src_slot_name 的现有逻辑复制槽到一个名为 dst_slot_name 的逻辑复制槽,可选地更改输出插件和持久性。新槽名称不能是 pg_conflict_detection,因为该名称保留用于冲突检测。被复制的逻辑槽从与源逻辑槽相同的 LSN 开始。temporary 和 plugin 都是可选的。如果它们被省略了,使用与源逻辑槽相同的值。源逻辑槽的 failover 选项不会被复制,而是默认设为 false。这是为了避免故障切换到正在同步该槽的备库后无法继续逻辑复制的风险。不能复制已失效的槽。 | 现存 | |||
pg_copy_physical_replication_slot |
1 | pg_copy_physical_replication_slot ( src_slot_name name, dst_slot_name name [, temporary boolean ] ) → record ( slot_name name, lsn pg_lsn ) |
— | |
| 将一个名为 src_slot_name 的现有物理复制槽复制到一个名为 dst_slot_name 的物理复制槽。新槽名称不能是 pg_conflict_detection,因为它保留给冲突检测。复制后的物理槽从与源槽相同的 LSN 开始保留 WAL。temporary 是可选的。如果省略了 temporary,则使用与源槽相同的值。不能复制已失效的槽。 | 现存 | |||
pg_create_logical_replication_slot |
1 | pg_create_logical_replication_slot ( slot_name name, plugin name [, temporary boolean, twophase boolean, failover boolean ] ) → record ( slot_name name, lsn pg_lsn ) |
173 次 | |
| 创建一个名为 slot_name 的新逻辑(解码)复制槽,使用输出插件 plugin。槽名称不能是 pg_conflict_detection,因为它保留给冲突检测槽。可选的第三个参数 temporary,当设置为真时,指定槽不应永久存储到磁盘,仅供当前会话使用。临时槽也会在任何错误发生时释放。可选的第四个参数 twophase,当设置为真时,指定为此槽启用预备事务的解码。可选的第五个参数 failover,当设置为真时,指定启用此槽同步到备库,以便在故障切换后可以恢复逻辑复制。调用此函数的效果与复制协议命令 CREATE_REPLICATION_SLOT ... LOGICAL 相同。 | 现存 | |||
pg_create_physical_replication_slot |
1 | pg_create_physical_replication_slot ( slot_name name [, immediately_reserve boolean, temporary boolean ] ) → record ( slot_name name, lsn pg_lsn ) |
102 次 | |
| 创建名为 slot_name 的新物理复制槽。槽名称不能是 pg_conflict_detection,因为它保留给冲突检测槽。可选的第二个参数为 true 时,指定立即为此复制槽保留 LSN;否则在流复制客户端首次连接时保留 LSN。从物理槽流式传输更改只能使用流复制协议 — 参见第 54.4 节。可选的第三个参数 temporary 为真时,指定该槽不永久存储到磁盘,且仅供当前会话使用。发生任何错误时,临时槽也会被释放。此函数对应复制协议命令 CREATE_REPLICATION_SLOT ... PHYSICAL。 | 现存 | |||
pg_create_restore_point |
1 | pg_create_restore_point ( name text ) → pg_lsn |
9.41 次 | |
| 在预写式日志中创建一条命名标记记录,供以后用作恢复目标,并返回相应的预写式日志位置。随后可以在 recovery_target_name 中使用给定名称,指定恢复到哪一点。应避免创建多个同名恢复点,因为恢复会在第一个名称匹配恢复目标的恢复点停止。 | 现存 | |||
pg_current_wal_flush_lsn |
1 | pg_current_wal_flush_lsn () → pg_lsn |
— | |
| 返回当前预写式日志刷盘位置(参见下文说明)。 | 现存 | |||
pg_current_wal_insert_lsn |
1 | pg_current_wal_insert_lsn () → pg_lsn |
— | |
| 返回当前预写式日志插入位置(参见下文说明)。 | 现存 | |||
pg_current_wal_lsn |
1 | pg_current_wal_lsn () → pg_lsn |
— | |
| 返回当前预写式日志写入位置(参见下文说明)。 | 现存 | |||
pg_current_xlog_flush_location |
1 | pg_current_xlog_flush_location ( ) → pg_lsn |
— | |
| 获取当前预写式日志刷盘位置 | 于 10 移除 | |||
pg_current_xlog_insert_location |
1 | pg_current_xlog_insert_location ( ) → pg_lsn |
9.41 次 | |
| 获取当前预写式日志插入位置 | 于 10 移除 | |||
pg_current_xlog_location |
1 | pg_current_xlog_location ( ) → pg_lsn |
9.41 次 | |
| 获取当前预写式日志写入位置 | 于 10 移除 | |||
pg_database_collation_actual_version |
1 | pg_database_collation_actual_version ( oid ) → text |
— | |
| 返回数据库当前在操作系统中安装的排序规则的实际版本。如果这与 pg_database.datcollversion 中的值不同,则依赖于排序规则的对象可能需要重新构建。参见 ALTER DATABASE。 | 现存 | |||
pg_database_size |
2 | pg_database_size ( name ) → bigint |
— | |
| 计算具有指定名称或 OID 的数据库使用的总磁盘空间。要使用此函数,您必须对指定数据库具有 CONNECT 权限(默认情况下授予),或者具有 pg_read_all_stats 角色的权限。如果数据库不存在,则抛出错误。 | 现存 | |||
pg_disable_data_checksums |
1 | pg_disable_data_checksums () → void |
— | |
| 为集簇禁用数据校验和的计算与验证。这会在禁用数据校验和的过程中把状态设置为 inprogress-off。当所有活动后端都停止验证数据校验和后,数据校验和状态将被设置为 off。 | 现存 | |||
pg_drop_replication_slot |
1 | pg_drop_replication_slot ( slot_name name ) → void |
— | |
| 删除名为 slot_name 的物理或逻辑复制槽。与复制协议命令 DROP_REPLICATION_SLOT 相同。 | 现存 | |||
pg_enable_data_checksums |
1 | pg_enable_data_checksums ( [cost_delay int [, cost_limit int]] ) → void |
— | |
| 启动为集簇启用数据校验和的过程。这会把数据校验和状态设置为 inprogress-on,并启动一个后台工作进程来处理所有数据库中的所有页并为其启用数据校验和。当所有页都处理完后,集簇会自动把数据校验和状态设置为 on。该操作会写入 WAL,并复制到所有备库。 | 现存 | |||
pg_export_snapshot |
1 | pg_export_snapshot () → text |
— | |
| 保存事务的当前快照并返回 text 字符串以标识该快照。必须将此字符串传递(在数据库之外)给希望导入快照的客户端。快照仅在导出它的事务结束之前才可用于导入。 | 现存 | |||
pg_filenode_relation |
1 | pg_filenode_relation ( tablespace oid, filenode oid ) → regclass |
— | |
| 根据关系所在表空间的 OID 和文件节点返回该关系的 OID。这本质上是 pg_relation_filepath 的反向映射。对于数据库默认表空间中的关系,表空间可以指定为 0。如果当前数据库中没有与给定值关联的关系,或者该关系是临时关系,则返回 NULL。 | 现存 | |||
pg_get_wal_replay_pause_state |
1 | pg_get_wal_replay_pause_state () → text |
— | |
| 返回恢复暂停状态。如果没有请求暂停,返回值是 not paused,如果请求暂停但恢复还没有暂停,返回值是 pause requested,如果恢复实际已经暂停,返回值是 paused。 | 现存 | |||
pg_get_wal_resource_managers |
1 | pg_get_wal_resource_managers () → setof record ( rm_id integer, rm_name text, rm_builtin boolean ) |
— | |
| 返回系统中当前加载的 WAL 资源管理器。列 rm_builtin 指示它是内置资源管理器还是由扩展加载的自定义资源管理器。 | 现存 | |||
pg_import_system_collations |
1 | pg_import_system_collations ( schema regnamespace ) → integer |
— | |
| 根据操作系统中找到的所有区域设置,向系统目录 pg_collation 添加排序规则。initdb 使用的就是此函数;更多信息见第 23.2.2 节。如果以后在操作系统中安装了其他区域设置,可以再次运行此函数,为新区域设置添加排序规则。与 pg_collation 中现有条目匹配的区域设置会被跳过。(但此函数不会删除基于操作系统中已不存在的区域设置的排序规则对象。)schema 参数通常为 pg_catalog,但并非必须如此;也可以将排序规则安装到其他模式中。函数返回新建的排序规则对象数量。此函数仅限超级用户使用。 | 现存 | |||
pg_indexes_size |
1 | pg_indexes_size ( regclass ) → bigint |
— | |
| 计算附加到指定表的索引所使用的总磁盘空间。 | 现存 | |||
pg_is_in_backup |
1 | pg_is_in_backup () → boolean |
— | |
| 如果正在进行在线排他备份,则返回 true。 | 于 15 移除 | |||
pg_is_in_recovery |
1 | pg_is_in_recovery () → boolean |
— | |
| 如果恢复仍在进行则返回真。 | 现存 | |||
pg_is_wal_replay_paused |
1 | pg_is_wal_replay_paused () → boolean |
— | |
| 如果已请求暂停恢复,则返回真。 | 现存 | |||
pg_is_xlog_replay_paused |
1 | pg_is_xlog_replay_paused ( ) → bool |
— | |
| 如果恢复已暂停,则为真。 | 于 10 移除 | |||
pg_last_wal_receive_lsn |
1 | pg_last_wal_receive_lsn () → pg_lsn |
— | |
| 返回流复制最近接收并同步到磁盘的预写式日志位置。在流复制进行期间,该值单调增加。如果恢复已完成,该值将保持为恢复期间最后接收并同步到磁盘的 WAL 记录的位置。如果禁用了流复制,或者流复制尚未开始,此函数返回 NULL。 | 现存 | |||
pg_last_wal_replay_lsn |
1 | pg_last_wal_replay_lsn () → pg_lsn |
— | |
| 返回恢复期间最近重放的预写式日志位置。如果恢复仍在进行,该值单调增加。如果恢复已完成,该值将保持为该次恢复期间最后应用的 WAL 记录的位置。如果服务器未经恢复而正常启动,此函数返回 NULL。 | 现存 | |||
pg_last_xact_replay_timestamp |
1 | pg_last_xact_replay_timestamp () → timestamp with time zone |
— | |
| 返回恢复期间最近重放事务的时间戳,即该事务的提交或中止 WAL 记录在主库上生成的时间。如果恢复期间尚未重放任何事务,此函数返回 NULL。否则,如果恢复仍在进行,该值单调增加。如果恢复已完成,该值将保持为该次恢复期间最后应用的事务的时间戳。如果服务器未经恢复而正常启动,此函数返回 NULL。 | 现存 | |||
pg_last_xlog_receive_location |
1 | pg_last_xlog_receive_location ( ) → pg_lsn |
9.41 次 | |
| 获取流复制最近接收并同步到磁盘的预写式日志位置。在流复制进行期间,该值单调增加。如果恢复已完成,该值将保持为恢复期间最后接收并同步到磁盘的 WAL 记录的位置。如果禁用了流复制,或者流复制尚未开始,此函数返回 NULL。 | 于 10 移除 | |||
pg_last_xlog_replay_location |
1 | pg_last_xlog_replay_location ( ) → pg_lsn |
9.41 次 | |
| 获取恢复期间最近重放的预写式日志位置。如果恢复仍在进行,该值单调增加。如果恢复已完成,该值将保持为该次恢复期间最后应用的 WAL 记录的位置。如果服务器未经恢复而正常启动,此函数返回 NULL。 | 于 10 移除 | |||
pg_log_backend_memory_contexts |
1 | pg_log_backend_memory_contexts ( pid integer ) → boolean |
— | |
| 请求记录具有指定进程 ID 的后端进程的内存上下文。此函数可以向除日志记录进程以外的后端进程和辅助进程发送请求。这些内存上下文将以 LOG 消息级别记录,并根据日志配置出现在服务器日志中(详见第 19.8 节);无论 client_min_messages 如何设置,都不会发送给客户端。 | 现存 | |||
pg_log_standby_snapshot |
1 | pg_log_standby_snapshot () → pg_lsn |
— | |
| 为进行中的事务拍摄快照并将其写入 WAL,无须等待后台写入器或检查点进程记录快照。这对备用服务器上的逻辑解码很有用,因为创建逻辑复制槽必须等待此类记录在备用服务器上重放。 | 现存 | |||
pg_logical_emit_message |
2 | pg_logical_emit_message ( transactional boolean, prefix text, content text [, flush boolean DEFAULT false] ) → pg_lsn |
171 次 | |
| 发出逻辑解码消息。这可用于通过 WAL 向逻辑解码插件传递通用消息。transactional 参数指定消息是作为当前事务的一部分,还是立即写入并在逻辑解码器读到该记录时立即解码。prefix 参数是一个文本前缀,便于逻辑解码插件识别其关注的消息。content 参数是消息内容,可以文本或二进制形式给出。flush 参数(默认为 false)控制是否立即将消息对应的 WAL 记录刷盘。transactional 为真时,flush 不起作用,因为消息的 WAL 记录会与其事务一起刷盘。 | 现存 | |||
pg_logical_slot_get_binary_changes |
1 | pg_logical_slot_get_binary_changes ( slot_name name, upto_lsn pg_lsn, upto_nchanges integer, VARIADIC options text[] ) → setof record ( lsn pg_lsn, xid xid, data bytea ) |
101 次 | |
| 行为就像 pg_logical_slot_get_changes() 函数,不过改变会以 bytea 返回。 | 现存 | |||
pg_logical_slot_get_changes |
1 | pg_logical_slot_get_changes ( slot_name name, upto_lsn pg_lsn, upto_nchanges integer, VARIADIC options text[] ) → setof record ( lsn pg_lsn, xid xid, data text ) |
101 次 | |
| 返回槽 slot_name 中自上次消费更改的位置起的更改。如果 upto_lsn 和 upto_nchanges 都为 NULL,逻辑解码会持续到 WAL 末尾。如果 upto_lsn 非 NULL,解码仅包含在指定 LSN 之前提交的事务。如果 upto_nchanges 非 NULL,解码产生的行数超过指定值时就会停止。不过,实际返回行数可能更大,因为只有在添加完对每个新事务提交进行解码所产生的行后,才会检查此限制。如果指定的槽是逻辑故障切换槽,则只有在 synchronized_standby_slots 中指定的所有物理槽都确认已接收 WAL 后,该函数才会返回。 | 现存 | |||
pg_logical_slot_peek_binary_changes |
1 | pg_logical_slot_peek_binary_changes ( slot_name name, upto_lsn pg_lsn, upto_nchanges integer, VARIADIC options text[] ) → setof record ( lsn pg_lsn, xid xid, data bytea ) |
101 次 | |
| 行为就像 pg_logical_slot_peek_changes() 函数,不过改变会以 bytea 返回。 | 现存 | |||
pg_logical_slot_peek_changes |
1 | pg_logical_slot_peek_changes ( slot_name name, upto_lsn pg_lsn, upto_nchanges integer, VARIADIC options text[] ) → setof record ( lsn pg_lsn, xid xid, data text ) |
101 次 | |
| 行为就像 pg_logical_slot_get_changes() 函数,不过改变不会被消费,即在未来的调用中还会返回这些改变。 | 现存 | |||
pg_ls_archive_statusdir |
1 | pg_ls_archive_statusdir () → setof record ( name text, size bigint, modification timestamp with time zone ) |
— | |
| 返回服务器 WAL 归档状态目录(pg_wal/archive_status)中每个普通文件的名称、大小和最后修改时间(mtime)。以点号开头的文件名、目录以及其他特殊文件都不会包含在结果中。 | 现存 | |||
pg_ls_dir |
1 | pg_ls_dir ( dirname text [, missing_ok boolean, include_dot_dirs boolean ] ) → setof text |
9.51 次 | |
| 返回指定目录中所有文件的名称(包括目录及其他特殊文件)。include_dot_dirs 参数指示结果集中是否包含“.”和“..”;默认不包含它们。在 missing_ok 为 true 时,包含它们有助于区分不存在的目录和空目录。 | 现存 | |||
pg_ls_logdir |
1 | pg_ls_logdir () → setof record ( name text, size bigint, modification timestamp with time zone ) |
— | |
| 返回服务器日志目录中每个普通文件的名称、大小和最后修改时间(mtime)。以点开头的文件名、目录和其他特殊文件将被排除。 | 现存 | |||
pg_ls_logicalmapdir |
1 | pg_ls_logicalmapdir () → setof record ( name text, size bigint, modification timestamp with time zone ) |
— | |
| 返回服务器的 pg_logical/mappings 目录中每个普通文件的名称、大小和最后修改时间(mtime)。以点开头的文件名、目录和其他特殊文件将被排除。 | 现存 | |||
pg_ls_logicalsnapdir |
1 | pg_ls_logicalsnapdir () → setof record ( name text, size bigint, modification timestamp with time zone ) |
— | |
| 返回服务器的 pg_logical/snapshots 目录中每个普通文件的名称、大小和最后修改时间(mtime)。以点开头的文件名、目录和其他特殊文件将被排除。 | 现存 | |||
pg_ls_replslotdir |
1 | pg_ls_replslotdir ( slot_name text ) → setof record ( name text, size bigint, modification timestamp with time zone ) |
— | |
| 返回服务器的 pg_replslot/slot_name 目录中每个普通文件的名称、大小和最后修改时间(mtime),其中 slot_name 是作为函数输入提供的复制槽的名称。以点开头的文件名、目录和其他特殊文件将被排除。 | 现存 | |||
pg_ls_summariesdir |
1 | pg_ls_summariesdir () → setof record ( name text, size bigint, modification timestamp with time zone ) |
— | |
| 返回服务器 WAL 摘要目录(pg_wal/summaries)中每个普通文件的名称、大小和最后修改时间(mtime)。排除名称以点开头的文件、目录及其他特殊文件。 | 现存 | |||
pg_ls_tmpdir |
1 | pg_ls_tmpdir ( [ tablespace oid ] ) → setof record ( name text, size bigint, modification timestamp with time zone ) |
— | |
| 返回针对指定 tablespace 的临时文件目录中每个普通文件的名称、大小和最后修改时间(mtime)。如果未提供 tablespace,则检查 pg_default 表空间。以点号开头的文件名、目录以及其他特殊文件都不会包含在结果中。 | 现存 | |||
pg_ls_waldir |
1 | pg_ls_waldir () → setof record ( name text, size bigint, modification timestamp with time zone ) |
— | |
| 返回服务器的预写式日志(WAL)目录中每个普通文件的名称、大小和最后修改时间(mtime)。以点开头的文件名、目录和其他特殊文件将被排除。 | 现存 | |||
pg_partition_ancestors |
1 | pg_partition_ancestors ( regclass ) → setof regclass |
— | |
| 列出给定分区的祖先关系,包括关系本身。如果关系不存在,或者不是分区或分区表,则不返回行。 | 现存 | |||
pg_partition_root |
1 | pg_partition_root ( regclass ) → regclass |
— | |
| 返回给定关系所属的分区树的最顶级父节点。如果关系不存在,或者不是分区或分区表,则返回 NULL。 | 现存 | |||
pg_partition_tree |
1 | pg_partition_tree ( regclass ) → setof record ( relid regclass, parentrelid regclass, isleaf boolean, level integer ) |
— | |
| 列出给定分区表或分区索引的分区树中的表或索引,每行对应一个分区。提供的信息包括分区的 OID、其直接父的 OID、一个布尔值以告知分区是否是叶子,以及一个整数用来告诉分区在层次结构中的级别。对于输入表或索引,级别值为 0,其直接子分区的为 1,它们的分区为 2,以此类推。如果关系不存在,或者不是分区或分区表,则不返回行。 | 现存 | |||
pg_promote |
1 | pg_promote ( wait boolean DEFAULT true, wait_seconds integer DEFAULT 60 ) → boolean |
— | |
| 将备库提升为主库状态。当 wait 设置为 true(默认值)时,函数将等待直到提升完成或 wait_seconds 秒数已过,如果提升成功则返回 true,否则返回 false。如果 wait 设置为 false,则该函数在向 postmaster 发送 SIGUSR1 信号以触发提升后立即返回 true。 | 现存 | |||
pg_read_binary_file |
1 | pg_read_binary_file ( filename text [, offset bigint, length bigint ] [, missing_ok boolean ] ) → bytea |
162 次 | |
| 返回文件的全部或部分。该函数与 pg_read_file 完全相同,只是它可以读取任意二进制数据,并返回 bytea 而不是 text;因此不会执行编码检查。 | 现存 | |||
pg_read_file |
1 | pg_read_file ( filename text [, offset bigint, length bigint ] [, missing_ok boolean ] ) → text |
163 次 | |
| 返回一个文本文件的全部或部分,从给定的字节 offset 开始,最多返回 length 字节(如果先到达文件末尾,则返回更少)。如果 offset 为负,则它相对于文件末尾计算。如果省略 offset 和 length,则返回整个文件。从文件中读取的字节会按数据库编码解释为字符串;如果它们在该编码下无效,则会抛出错误。 | 现存 | |||
pg_relation_filenode |
1 | pg_relation_filenode ( relation regclass ) → oid |
— | |
| 返回当前分配给指定关系的“文件节点”编号。文件节点是关系所用文件名的基本组成部分(更多信息见第 66.1 节)。对于大多数关系,结果与 pg_class.relfilenode 相同;但某些系统目录的 relfilenode 为零,必须使用此函数获取正确值。如果传入的关系没有存储空间(例如视图),函数返回 NULL。 | 现存 | |||
pg_relation_filepath |
1 | pg_relation_filepath ( relation regclass ) → text |
— | |
| 返回关系的完整文件路径名称(相对于数据库集簇的数据目录,即 PGDATA)。 | 现存 | |||
pg_relation_size |
1 | pg_relation_size ( relation regclass [, fork text ] ) → bigint |
8.41 次 | |
| 计算指定关系的一个“分支”所使用的磁盘空间。(注意在大多数情况下,使用更高级的函数 pg_total_relation_size 或 pg_table_size 更方便,它们将所有分支的大小相加。)使用一个参数,这将返回关系的主数据分支的大小。第二个参数可以用来指定要检查哪个分支: | 现存 | |||
pg_reload_conf |
1 | pg_reload_conf () → boolean |
— | |
| 使 PostgreSQL 服务器的所有进程重新加载其配置文件。(这是通过向 postmaster 进程发送 SIGHUP 信号来启动的,postmaster 进程又向其每个子进程发送 SIGHUP。)您可以使用 pg_file_settings、pg_hba_file_rules 和 pg_ident_file_mappings 视图来检查可能存在的错误,然后再重新加载配置文件。 | 现存 | |||
pg_replication_origin_advance |
1 | pg_replication_origin_advance ( node_name text, lsn pg_lsn ) → void |
101 次 | |
| 将给定节点的复制进度设置为给定的位置。这主要用于设置初始位置,或在配置更改或类似的变更后设置新位置。请注意这个函数的不当使用可能会导致不一致的复制数据。 | 现存 | |||
pg_replication_origin_create |
1 | pg_replication_origin_create ( node_name text ) → oid |
— | |
| 用给定的外部名称创建一个复制源,并且返回分配给它的内部 ID。该名称长度不得超过 512 字节。 | 现存 | |||
pg_replication_origin_drop |
1 | pg_replication_origin_drop ( node_name text ) → void |
— | |
| 删除一个以前创建的复制源,包括任何相关的重放进度。 | 现存 | |||
pg_replication_origin_oid |
1 | pg_replication_origin_oid ( node_name text ) → oid |
— | |
| 通过名称查找复制源并返回其内部 ID。如果未找到这样的复制源,则返回 NULL。 | 现存 | |||
pg_replication_origin_progress |
1 | pg_replication_origin_progress ( node_name text, flush boolean ) → pg_lsn |
— | |
| 返回给定复制源的重放位置。参数 flush 决定是否保证对应的本地事务已刷盘。 | 现存 | |||
pg_replication_origin_session_is_setup |
1 | pg_replication_origin_session_is_setup () → boolean |
— | |
| 如果在当前会话中选择了复制源则返回真。 | 现存 | |||
pg_replication_origin_session_progress |
1 | pg_replication_origin_session_progress ( flush boolean ) → pg_lsn |
— | |
| 返回当前会话中选择的复制源的重放位置。参数 flush 决定是否保证对应的本地事务已刷盘。 | 现存 | |||
pg_replication_origin_session_reset |
1 | pg_replication_origin_session_reset () → void |
— | |
| 取消 pg_replication_origin_session_setup() 的效果。 | 现存 | |||
pg_replication_origin_session_setup |
1 | pg_replication_origin_session_setup ( node_name text [, pid integer DEFAULT 0] ) → void |
191 次 | |
| 将当前会话标记为从给定的复制源重放,从而允许跟踪重放进度。只能在当前没有选择复制源时使用。使用 pg_replication_origin_session_reset 来撤销。如果多个进程可以安全地使用同一个复制源(例如,并行应用进程),则可选的 pid 参数可用于指定第一个进程的进程 ID。第一个进程必须提供 pid 等于 0,而共享同一复制源的其他进程应提供第一个进程的进程 ID。 | 现存 | |||
pg_replication_origin_xact_reset |
1 | pg_replication_origin_xact_reset () → void |
9.61 次 | |
| 取消 pg_replication_origin_xact_setup() 的效果。 | 现存 | |||
pg_replication_origin_xact_setup |
1 | pg_replication_origin_xact_setup ( origin_lsn pg_lsn, origin_timestamp timestamp with time zone ) → void |
— | |
| 将当前事务标记为重放在给定 LSN 和时间戳上提交的事务。只能在使用 pg_replication_origin_session_setup 选择复制源时调用。 | 现存 | |||
pg_replication_slot_advance |
1 | pg_replication_slot_advance ( slot_name name, upto_lsn pg_lsn ) → record ( slot_name name, end_lsn pg_lsn ) |
— | |
| 推进名为 slot_name 的复制槽当前已确认的位置。该槽不会后退,也不会越过当前插入位置。返回槽名及其实际推进到的位置。如果发生了推进,更新后的槽位置信息会在下一个检查点写出。因此,发生崩溃时,槽可能回到更早的位置。如果指定的槽是逻辑故障切换槽,则只有在 synchronized_standby_slots 中指定的所有物理槽都确认已接收 WAL 后,该函数才会返回。 | 现存 | |||
pg_restore_attribute_stats |
1 | pg_restore_attribute_stats ( VARIADIC kwargs "any" ) → boolean |
— | |
| 创建或更新列级统计信息。通常这些统计信息会自动收集或作为 VACUUM 或 ANALYZE 的一部分更新,因此不必调用此函数。但它在恢复后很有用,可以在尚未运行 ANALYZE 时帮助优化器选择更好的计划。 | 现存 | |||
pg_restore_extended_stats |
1 | pg_restore_extended_stats ( VARIADIC kwargs "any" ) → boolean |
— | |
| 创建或更新统计对象的统计信息。通常这些统计会自动收集,或者作为 VACUUM 或 ANALYZE 的一部分更新,因此通常不必调用此函数。不过,如果恢复后 ANALYZE 还没有运行,它可帮助优化器选择更好的计划。 | 现存 | |||
pg_restore_relation_stats |
1 | pg_restore_relation_stats ( VARIADIC kwargs "any" ) → boolean |
— | |
| 更新表级统计信息。通常这些统计信息会自动收集或作为 VACUUM 或 ANALYZE 的一部分更新,因此不必调用此函数。但它在恢复后很有用,可以在尚未运行 ANALYZE 时帮助优化器选择更好的计划。 | 现存 | |||
pg_rotate_logfile |
1 | pg_rotate_logfile () → boolean |
— | |
| 通知日志文件管理器立即切换到一个新的输出文件。这仅在内置日志收集器运行时有效,因为否则没有日志文件管理器子进程。 | 现存 | |||
pg_size_bytes |
1 | pg_size_bytes ( text ) → bigint |
— | |
| 将人类可读格式的大小(由 pg_size_pretty 返回)转换为字节。有效的单位为 bytes、B、kB、MB、GB、TB 和 PB。 | 现存 | |||
pg_size_pretty |
2 | pg_size_pretty ( bigint ) → text |
9.21 次 | |
| 将字节大小转换为更易于人类阅读的格式,带有大小单位(字节,kB,MB,GB,TB 或 PB)。请注意,单位是 2 的幂,而不是 10 的幂,因此 1kB 是 1024 字节,1MB 是 10242 = 1048576 字节,依此类推。 | 现存 | |||
pg_split_walfile_name |
1 | pg_split_walfile_name ( file_name text ) → record ( segment_number numeric, timeline_id bigint ) |
— | |
| 从 WAL 文件名中提取序列号和时间线 ID。 | 现存 | |||
pg_start_backup |
1 | pg_start_backup ( label text [, fast boolean [, exclusive boolean ]] ) → pg_lsn |
9.64 次 | |
| 准备服务器开始在线备份。唯一必需的参数是用户任意指定的备份标签。(通常是备份转储文件将要保存的名称。)如果可选的第二个参数为 true,则尽快执行 pg_start_backup。这会强制立即执行检查点,使 I/O 操作量陡增,并降低并发执行的查询的速度。可选的第三个参数指定执行排他备份还是非排他备份(默认为排他备份)。 | 于 15 移除 | |||
pg_stat_file |
1 | pg_stat_file ( filename text [, missing_ok boolean ] ) → record ( size bigint, access timestamp with time zone, modification timestamp with time zone, change timestamp with time zone, creation timestamp with time zone, isdir boolean ) |
9.51 次 | |
| 返回一个记录,包含文件大小、最后访问时间戳、最后修改时间戳、最后文件状态变更时间戳(仅限 Unix 平台)、文件创建时间戳(仅限 Windows)以及一个指示其是否为目录的标志。 | 现存 | |||
pg_stop_backup |
2 | pg_stop_backup ( exclusive boolean [, wait_for_archive boolean ] ) → setof record ( lsn pg_lsn, labelfile text, spcmapfile text ) |
103 次 | |
| 结束排他或非排他的在线备份。exclusive 参数必须与先前调用 pg_start_backup 时的值一致。在排他备份中,pg_stop_backup 会移除由 pg_start_backup 创建的备份标签文件,以及表空间映射文件(如果存在)。在非排他备份中,这些文件所需的内容作为函数结果的一部分返回,应将其写入备份区域中的文件(而不是数据目录)。 | 于 15 移除 | |||
pg_switch_wal |
1 | pg_switch_wal () → pg_lsn |
— | |
| 强制服务器切换到新的预写式日志文件,使当前文件可以归档(假设正在使用连续归档)。返回值是刚完成的预写式日志文件中的结束预写式日志位置加 1。如果自上次切换预写式日志以来没有发生任何预写式日志活动,pg_switch_wal 不执行任何操作,并返回当前使用的预写式日志文件的起始位置。 | 现存 | |||
pg_switch_xlog |
1 | pg_switch_xlog ( ) → pg_lsn |
9.41 次 | |
| 强制切换到新的预写式日志文件(默认仅限超级用户,但可以向其他用户授予EXECUTE权限以运行此函数) | 于 10 移除 | |||
pg_sync_replication_slots |
1 | pg_sync_replication_slots () → void |
— | |
| 将逻辑故障切换复制槽从主库同步到备库。此函数只能在备库上执行。临时同步的槽(如果有)不能用于逻辑解码,必须在提升后删除。此函数会循环重试,直到在函数调用开始时存在于主库上的所有故障切换槽都同步完成。详见第 47.2.3 节。请注意,如果 sync_replication_slots 已启用且 slotsync 工作进程已在运行以执行槽同步,则无法执行此函数。 | 现存 | |||
pg_table_size |
1 | pg_table_size ( regclass ) → bigint |
— | |
| 计算指定表所使用的磁盘空间,不包括索引(但包括其 TOAST 表(如有)、空闲空间映射和可见性映射)。 | 现存 | |||
pg_tablespace_size |
2 | pg_tablespace_size ( name ) → bigint |
— | |
| 计算具有指定名称或 OID 的表空间中使用的总磁盘空间。要使用此函数,您必须对指定的表空间具有 CREATE 权限,或者具有 pg_read_all_stats 角色的权限,除非它是当前数据库的默认表空间。如果表空间不存在,则抛出错误。 | 现存 | |||
pg_terminate_backend |
1 | pg_terminate_backend ( pid integer, timeout bigint DEFAULT 0 ) → boolean |
141 次 | |
| 终止具有指定进程 ID 的后端进程的会话。如果调用角色是正在终止的后端的角色的成员,或者调用角色具有 pg_signal_backend 的权限,则也允许执行此操作,但只有超级用户才能终止超级用户后端。例外情况是,具有 pg_signal_autovacuum_worker 角色权限的角色可以终止 autovacuum 工作进程,而这些进程原本被视为超级用户后端。 | 现存 | |||
pg_total_relation_size |
1 | pg_total_relation_size ( regclass ) → bigint |
8.41 次 | |
| 计算指定表所使用的总磁盘空间,包括所有索引和 TOAST 数据。结果等价于 pg_table_size + pg_indexes_size。 | 现存 | |||
pg_try_advisory_lock |
2 | pg_try_advisory_lock ( key bigint ) → boolean |
— | |
| 尝试获取一个排他的会话级咨询锁。如果能立即获取到锁,就返回 true;否则立即返回 false,而不等待。 | 现存 | |||
pg_try_advisory_lock_shared |
2 | pg_try_advisory_lock_shared ( key bigint ) → boolean |
— | |
| 尝试获取一个共享的会话级咨询锁。如果能立即获取到锁,就返回 true;否则立即返回 false,而不等待。 | 现存 | |||
pg_try_advisory_xact_lock |
2 | pg_try_advisory_xact_lock ( key bigint ) → boolean |
— | |
| 尝试获取一个排他的事务级咨询锁。如果能立即获取到锁,就返回 true;否则立即返回 false,而不等待。 | 现存 | |||
pg_try_advisory_xact_lock_shared |
2 | pg_try_advisory_xact_lock_shared ( key bigint ) → boolean |
— | |
| 尝试获取一个共享的事务级咨询锁。如果能立即获取到锁,就返回 true;否则立即返回 false,而不等待。 | 现存 | |||
pg_wal_lsn_diff |
1 | pg_wal_lsn_diff ( lsn1 pg_lsn, lsn2 pg_lsn ) → numeric |
— | |
| 计算两个预写式日志位置之间的字节差(lsn1 - lsn2)。可以将它与 pg_stat_replication 或表 9.99 中的某些函数配合使用,以获取复制延迟。 | 现存 | |||
pg_wal_replay_pause |
1 | pg_wal_replay_pause () → void |
— | |
| 请求暂停恢复。请求不意味着恢复马上停止。如果你想要保证恢复实际上是暂停的,你需要检查 pg_get_wal_replay_pause_state() 返回的恢复暂停状态。注意,pg_is_wal_replay_paused() 返回是否作出请求。在恢复暂停时,不会应用进一步的数据库更改。如果热备是激活的,所有新查询将看到相同的一致的数据库快照,并且在恢复继续之前不会生成进一步的查询冲突。 | 现存 | |||
pg_wal_replay_resume |
1 | pg_wal_replay_resume () → void |
— | |
| 如果暂停了,则重新启动恢复。 | 现存 | |||
pg_walfile_name |
1 | pg_walfile_name ( lsn pg_lsn ) → text |
— | |
| 将预写式日志位置转换为包含该位置的 WAL 文件的名称。 | 现存 | |||
pg_walfile_name_offset |
1 | pg_walfile_name_offset ( lsn pg_lsn ) → record ( file_name text, file_offset integer ) |
— | |
| 将预写式日志位置转换为 WAL 文件名和该文件中的字节偏移量。 | 现存 | |||
pg_xlog_location_diff |
1 | pg_xlog_location_diff ( location pg_lsn, location pg_lsn ) → numeric |
9.41 次 | |
| 计算两个事务日志位置之差 | 于 10 移除 | |||
pg_xlog_replay_pause |
1 | pg_xlog_replay_pause ( ) → void |
— | |
| 立即暂停恢复(默认仅限超级用户,但可以向其他用户授予EXECUTE权限以运行此函数)。 | 于 10 移除 | |||
pg_xlog_replay_resume |
1 | pg_xlog_replay_resume ( ) → void |
— | |
| 如果恢复已暂停,则重新开始恢复(默认仅限超级用户,但可以向其他用户授予EXECUTE权限以运行此函数)。 | 于 10 移除 | |||
pg_xlogfile_name |
1 | pg_xlogfile_name ( location pg_lsn ) → text |
9.41 次 | |
| 将事务日志位置字符串转换为文件名 | 于 10 移除 | |||
pg_xlogfile_name_offset |
1 | pg_xlogfile_name_offset ( location pg_lsn ) → text, integer |
9.41 次 | |
| 将事务日志位置字符串转换为文件名和文件内的十进制字节偏移量 | 于 10 移除 | |||
set_config |
1 | set_config ( setting_name text, new_value text, is_local boolean ) → text |
— | |
| 将参数 setting_name 设置为 new_value,并返回该值。如果 is_local 为 true,新值仅在当前事务期间生效。如果希望新值在当前会话的剩余时间内生效,则使用 false。此函数对应 SQL 命令 SET。 | 现存 | |||