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

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

文档 / 扩展钩子

PostgreSQL 扩展钩子

钩子让扩展在查询规划、执行、认证和资源管理等环节接入 PostgreSQL。这里按调用场景整理核心头文件 src/include 中导出的全局钩子变量,逐版本列出接口签名与声明位置。

当前查看 PostgreSQL 18。

共 39 个条目,PostgreSQL 18 收录 34 个。

名称与用途分类版本记录
shmem_request_hook共享内存需求申报

在共享内存分配前申报扩展的内存与锁需求。

启动与共享内存
shmem_startup_hook共享内存初始化

在核心共享内存完成初始化后初始化扩展状态。

启动与共享内存
ExplainOneQuery_hook单条查询的 EXPLAIN

接管单条查询的 EXPLAIN 处理入口。

执行计划说明
explain_get_index_name_hookEXPLAIN 索引名称

为执行计划中的索引提供显示名称。

执行计划说明
explain_per_node_hookEXPLAIN 节点附加信息

向单个执行计划节点补充 EXPLAIN 输出。

执行计划说明
explain_per_plan_hookEXPLAIN 计划附加信息

向每份执行计划补充 EXPLAIN 输出。

执行计划说明
explain_validate_options_hookEXPLAIN 选项校验

在 EXPLAIN 的选项解析后校验扩展选项。

执行计划说明
emit_log_hook服务器日志输出

在错误或日志消息写入服务器日志之前介入。

日志与函数调用
fmgr_hook函数调用事件

接收被选中函数的调用开始、正常结束和异常事件。

日志与函数调用
needs_fmgr_hook函数调用追踪筛选

决定给定函数是否需要进入 fmgr 调用追踪。

日志与函数调用
ExecutorCheckPerms_hook执行权限检查

在核心关系权限检查之外实施附加检查。

权限与对象访问
object_access_hook对象访问事件

按对象 OID 接收创建、删除或访问等对象事件。

权限与对象访问
object_access_hook_str按名称访问对象

按对象名称接收对象访问事件。

权限与对象访问
row_security_policy_hook_permissive宽松行安全策略

向关系补充宽松模式的行安全策略。

权限与对象访问
row_security_policy_hook_restrictive限制行安全策略

向关系补充限制模式的行安全策略。

权限与对象访问
ExecutorEnd_hook执行器结束

介入执行器结束及查询资源释放。

查询执行
ExecutorFinish_hook执行器完成

介入查询执行结束前的完成阶段。

查询执行
ExecutorRun_hook执行器运行

介入执行器取行和运行查询计划的阶段。

查询执行
ExecutorStart_hook执行器启动

介入执行器初始化,准备执行查询计划。

查询执行
build_simple_rel_hook基础关系初始化

在基础关系的规划数据结构建立后介入。

查询规划此版未收录
create_upper_paths_hook上层查询路径

在分组、排序等上层查询阶段增补路径。

查询规划
get_relation_info_hook关系规划信息

在关系的目录与索引信息装入规划器后介入。

查询规划
join_path_setup_hook连接路径准备

在具体连接路径生成前调整连接准备信息。

查询规划此版未收录
join_search_hook连接顺序搜索

替换标准的多关系连接顺序搜索。

查询规划
joinrel_setup_hook连接关系初始化

在连接关系的数据结构初始化阶段介入。

查询规划此版未收录
planner_hook查询规划入口

接管查询规划入口,返回可执行的计划。

查询规划
planner_setup_hook规划器初始化

在标准规划器开始规划子查询之前介入初始化。

查询规划此版未收录
planner_shutdown_hook规划器收尾

在标准规划器生成计划后执行收尾处理。

查询规划此版未收录
set_join_pathlist_hook连接访问路径

在一对关系的连接路径生成阶段增补路径。

查询规划
set_rel_pathlist_hook关系访问路径

在单个关系的访问路径生成阶段增补或调整路径。

查询规划
get_attavgwidth_hook平均属性宽度

覆盖规划器使用的属性平均宽度估算。

统计信息与估算
get_index_stats_hook索引表达式统计信息

为选择率估算提供索引列或表达式的统计信息。

统计信息与估算
get_relation_stats_hook表列统计信息

为选择率估算提供表列统计信息。

统计信息与估算
ProcessUtility_hook实用命令处理

介入 DDL、事务控制等实用命令的分派。

解析与命令处理
post_parse_analyze_hook语义分析后处理

在查询完成语义分析后取得查询树。

解析与命令处理
ClientAuthentication_hook客户端认证结果

在客户端认证完成后检查认证结果。

认证与连接
check_password_hook角色密码检查

在创建或修改角色密码时施加密码策略。

认证与连接
ldap_password_hookLDAP 绑定密码转换

在 LDAP 搜索绑定之前转换配置的绑定密码。

认证与连接
openssl_tls_init_hookOpenSSL 上下文初始化

在服务器初始化 TLS 上下文时调整 OpenSSL 设置。

认证与连接

已收录首次出现接口或属性变化不再收录

版本方格表示本次采样中的记录;最早收录版本不一定是实际引入版本。点击方格查看对应版本的说明与来源。

使用说明

C 接口可能随大版本改变。开发扩展时请以目标版本的声明和调用位置为准,并在安装自己的回调前保存原有钩子,按该接口的约定衔接调用。本栏目不含逐对象回调、GUC 的校验与赋值回调、前端接口、过程语言插件和扩展私有接口。