pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
百科 / 扩展钩子
钩子让扩展在查询规划、执行、认证和资源管理等环节接入 PostgreSQL。这里按调用场景整理核心头文件 src/include 中导出的全局钩子变量,逐版本列出接口签名与声明位置。
当前查看 PostgreSQL 18。
共 39 个条目,PostgreSQL 18 收录 34 个。
| 名称与用途 | 分类 | 版本记录 |
|---|---|---|
| shmem_request_hook共享内存需求申报 shmem_request_hook 是在 src/include/miscadmin.h 中声明的核心扩展钩子。下方保留精确接口与调用位置。 |
启动与共享内存 | |
| shmem_startup_hook共享内存初始化 此时允许可加载模块设置其共享内存分配。 |
启动与共享内存 | |
| ExplainOneQuery_hook单条查询的 EXPLAIN 供插件在 ExplainOneQuery() 中接管处理的钩子。 |
执行计划说明 | |
| explain_get_index_name_hookEXPLAIN 索引名称 供插件在 explain_get_index_name() 中接管处理的钩子。 |
执行计划说明 | |
| explain_per_node_hookEXPLAIN 节点附加信息 供 EXPLAIN 插件在单个计划节点上输出额外字段的钩子。 |
执行计划说明 | |
| explain_per_plan_hookEXPLAIN 计划附加信息 供 EXPLAIN 插件为每个计划输出额外信息的钩子。 |
执行计划说明 | |
| explain_validate_options_hookEXPLAIN 选项校验 对 EXPLAIN 选项执行额外校验的钩子。 |
执行计划说明 | |
| emit_log_hook服务器日志输出 在消息写入服务器日志之前拦截消息的钩子。 |
日志与函数调用 | |
| fmgr_hook函数调用事件 函数管理器钩子。 |
日志与函数调用 | |
| needs_fmgr_hook函数调用追踪筛选 用于函数调用的钩子。 |
日志与函数调用 | |
| ExecutorCheckPerms_hook执行权限检查 供插件在 ExecCheckPermissions() 中接管处理的钩子。 |
权限与对象访问 | |
| object_access_hook对象访问事件 插件提供与这些签名之一或两者匹配的钩子函数。 |
权限与对象访问 | |
| object_access_hook_str按名称访问对象 object_access_hook_str 是在 src/include/catalog/objectaccess.h 中声明的核心扩展钩子。下方保留精确接口与调用位置。 |
权限与对象访问 | |
| row_security_policy_hook_permissive宽松行安全策略 这些钩子允许扩展添加自己的安全策略。row_security_policy_hook_permissive 添加的策略通过 OR 与其他宽松策略组合;row_security_policy_hook_restrictive 添加的策略始终必须满足,通过 AND 与其他策略组合。 |
权限与对象访问 | |
| row_security_policy_hook_restrictive限制行安全策略 row_security_policy_hook_restrictive 是在 src/include/rewrite/rowsecurity.h 中声明的核心扩展钩子。下方保留精确接口与调用位置。 |
权限与对象访问 | |
| ExecutorEnd_hook执行器结束 供插件在 ExecutorEnd() 中接管处理的钩子。 |
查询执行 | |
| ExecutorFinish_hook执行器完成 供插件在 ExecutorFinish() 中接管处理的钩子。 |
查询执行 | |
| ExecutorRun_hook执行器运行 供插件在 ExecutorRun() 中接管处理的钩子。 |
查询执行 | |
| ExecutorStart_hook执行器启动 供插件在 ExecutorStart() 中接管处理的钩子。 |
查询执行 | |
| build_simple_rel_hook基础关系初始化 供插件在 build_simple_rel() 中接管处理的钩子。 |
查询规划此版未收录 | |
| create_upper_paths_hook上层查询路径 供插件在 grouping_planner() 规划上层关系时接管处理的钩子。 |
查询规划 | |
| get_relation_info_hook关系规划信息 供插件在 get_relation_info() 中接管处理的钩子。 |
查询规划 | |
| join_path_setup_hook连接路径准备 供插件在 set_rel_pathlist() 中接管处理的钩子。 |
查询规划此版未收录 | |
| join_search_hook连接顺序搜索 供插件替换 standard_join_search() 的钩子。 |
查询规划 | |
| joinrel_setup_hook连接关系初始化 供插件在连接关系初始化期间接管处理的钩子。 |
查询规划此版未收录 | |
| planner_hook查询规划入口 供插件在 planner() 中接管处理的钩子。 |
查询规划 | |
| planner_setup_hook规划器初始化 供插件在 PlannerGlobal 初始化后接管处理的钩子。 |
查询规划此版未收录 | |
| planner_shutdown_hook规划器收尾 供插件在 PlannerGlobal 被丢弃前接管处理的钩子。 |
查询规划此版未收录 | |
| set_join_pathlist_hook连接访问路径 供插件在 add_paths_to_joinrel() 中接管处理的钩子。 |
查询规划 | |
| set_rel_pathlist_hook关系访问路径 供插件在 set_rel_pathlist() 中接管处理的钩子。 |
查询规划 | |
| get_attavgwidth_hook平均属性宽度 供插件在 get_attavgwidth() 中接管处理的钩子。 |
统计信息与估算 | |
| get_index_stats_hook索引表达式统计信息 get_index_stats_hook 是在 src/include/utils/selfuncs.h 中声明的核心扩展钩子。下方保留精确接口与调用位置。 |
统计信息与估算 | |
| get_relation_stats_hook表列统计信息 供插件在请求统计信息时接管处理的钩子。 |
统计信息与估算 | |
| ProcessUtility_hook实用命令处理 供插件在 ProcessUtility() 中接管处理的钩子。 |
解析与命令处理 | |
| post_parse_analyze_hook语义分析后处理 供插件在语法分析后的语义分析结束时接管处理的钩子。 |
解析与命令处理 | |
| ClientAuthentication_hook客户端认证结果 供插件在 ClientAuthentication() 中接管处理的钩子。 |
认证与连接 | |
| check_password_hook角色密码检查 在 CreateRole() 和 AlterRole() 中检查密码的钩子。 |
认证与连接 | |
| ldap_password_hookLDAP 绑定密码转换 用于处理密码的钩子类型。 |
认证与连接 | |
| openssl_tls_init_hookOpenSSL 上下文初始化 openssl_tls_init_hook 是在 src/include/libpq/libpq-be.h 中声明的核心扩展钩子。下方保留精确接口与调用位置。 |
认证与连接 |
已收录首次出现接口或属性变化不再收录
版本方格表示本次采样中的记录;最早收录版本不一定是实际引入版本。点击方格查看对应版本的说明与来源。
C 接口可能随大版本改变。开发扩展时请以目标版本的声明和调用位置为准,并在安装自己的回调前保存原有钩子,按该接口的约定衔接调用。本栏目不含逐对象回调、GUC 的校验与赋值回调、前端接口、过程语言插件和扩展私有接口。