pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
文档 / 扩展钩子
钩子让扩展在查询规划、执行、认证和资源管理等环节接入 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 的校验与赋值回调、前端接口、过程语言插件和扩展私有接口。