object_access_hook_str
按名称访问对象
object_access_hook_str 是在 src/include/catalog/objectaccess.h 中声明的核心扩展钩子。下方保留精确接口与调用位置。
当前查看 PostgreSQL 18。
中文定义与说明
object_access_hook_str 是在 src/include/catalog/objectaccess.h 中声明的核心扩展钩子。下方保留精确接口与调用位置。
以下中文为本站依据所列 PostgreSQL 源码注释编译的说明。
接口声明
typedef void (*object_access_hook_type_str) (ObjectAccessType access, Oid classId, const char *objectStr, int subId, void *arg); extern PGDLLIMPORT object_access_hook_type_str object_access_hook_str;
调用位置
src/backend/catalog/objectaccess.c:169src/backend/catalog/objectaccess.c:191src/backend/catalog/objectaccess.c:207src/backend/catalog/objectaccess.c:230src/backend/catalog/objectaccess.c:252src/backend/catalog/objectaccess.c:270
核心调用上下文:src/backend/catalog/objectaccess.c:163–177
/* caller should check, but just in case... */ Assert(object_access_hook_str != NULL); memset(&pc_arg, 0, sizeof(ObjectAccessPostCreate)); pc_arg.is_internal = is_internal; (*object_access_hook_str) (OAT_POST_CREATE, classId, objectName, subId, &pc_arg); } /* * RunObjectDropHookStr * * OAT_DROP object name based event hook entrypoint
核心调用上下文:src/backend/catalog/objectaccess.c:185–199
/* caller should check, but just in case... */ Assert(object_access_hook_str != NULL); memset(&drop_arg, 0, sizeof(ObjectAccessDrop)); drop_arg.dropflags = dropflags; (*object_access_hook_str) (OAT_DROP, classId, objectName, subId, &drop_arg); } /* * RunObjectTruncateHookStr * * OAT_TRUNCATE object name based event hook entrypoint
核心调用上下文:src/backend/catalog/objectaccess.c:201–215
void
RunObjectTruncateHookStr(const char *objectName)
{
/* caller should check, but just in case... */
Assert(object_access_hook_str != NULL);
(*object_access_hook_str) (OAT_TRUNCATE,
RelationRelationId, objectName, 0,
NULL);
}
/*
* RunObjectPostAlterHookStr
*
* OAT_POST_ALTER object name based event hook entrypoint说明
object_access_hook_str 是在 src/include/catalog/objectaccess.h 中声明的核心扩展钩子。下方保留精确接口与调用位置。
- 接口类型
- object_access_hook_type_str
- 声明头文件
- src/include/catalog/objectaccess.h
- 调用阶段
- 权限与对象访问
- 初始值
- NULL(未安装钩子)
接口签名
typedef void (*object_access_hook_type_str) (ObjectAccessType access, Oid classId, const char *objectStr, int subId, void *arg);
extern PGDLLIMPORT object_access_hook_type_str object_access_hook_str;调用位置
src/backend/catalog/objectaccess.c:169
src/backend/catalog/objectaccess.c:191
src/backend/catalog/objectaccess.c:207
src/backend/catalog/objectaccess.c:230
src/backend/catalog/objectaccess.c:252
src/backend/catalog/objectaccess.c:270
文档与源码
查看来源构建
- 版本
- 18
- 构建
- REL_18_STABLE
- 来源指纹
753057e340da8f22e57c9a409ea7a235fd6a46bd
同类条目
返回扩展钩子 · 此条目的收录范围为 PostgreSQL 15 至 20;起点不一定是实际引入版本。