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

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

百科 / 扩展钩子

PostgreSQL 扩展钩子

钩子让扩展在查询规划、执行、认证和资源管理等环节接入 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 的校验与赋值回调、前端接口、过程语言插件和扩展私有接口。