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

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

PostgreSQL 文档检索

PG 18 · 按类别浏览,或输入名称与关键词

分类索引39
build_simple_rel_hook扩展钩子本站词条在基础关系的规划数据结构建立后介入。 基础关系初始化 查询规划 规划器构建简单关系的 RelOptInfo 时调用此钩子,并提供所属 PlannerInfo 与范围表条目。扩展可以在后续路径生成前检查或补充该关系的规划信息。 typedef void (*build_simple_rel_hook_type) (PlannerInfo *root, RelOptInfo *re…扩展钩子 · 查询规划 check_password_hook扩展钩子本站词条在创建或修改角色密码时施加密码策略。 角色密码检查 认证与连接 角色创建或修改命令设置密码时调用此钩子,提供用户名、密码内容、密码类型和有效期。密码可能是明文,也可能已经是散列表示;检查逻辑必须先看 PasswordType,不能一律按明文密码处理。 typedef void (*check_password_hook_type) (const char *username, …扩展钩子 · 认证与连接 ClientAuthentication_hook扩展钩子本站词条在客户端认证完成后检查认证结果。 客户端认证结果 认证与连接 客户端认证过程结束时调用此钩子,传入连接 Port 和认证状态。扩展可据此执行附加的连接准入检查或记录认证事件;具体可访问的连接信息以对应版本的 Port 结构为准。 typedef void (*ClientAuthentication_hook_type) (Port *, int); extern PGDLLI…扩展钩子 · 认证与连接 create_upper_paths_hook扩展钩子本站词条在分组、排序等上层查询阶段增补路径。 上层查询路径 查询规划 规划器建立上层关系的路径时调用此钩子,通过 UpperRelationKind 区分当前规划阶段。它提供输入关系和输出关系,扩展可向输出关系加入候选路径。PostgreSQL 11 起还传入该阶段的附加信息。 typedef void (*create_upper_paths_hook_type) (PlannerI…扩展钩子 · 查询规划 emit_log_hook扩展钩子本站词条在错误或日志消息写入服务器日志之前介入。 服务器日志输出 日志与函数调用 消息准备发送到服务器日志时调用此钩子,传入 ErrorData。扩展可检查消息或调整服务器日志输出标志;该入口并不等同于客户端消息输出接口。 typedef void (*emit_log_hook_type) (ErrorData *edata); extern PGDLLIMPORT emit_log…扩展钩子 · 日志与函数调用 ExecutorCheckPerms_hook扩展钩子本站词条在核心关系权限检查之外实施附加检查。 执行权限检查 权限与对象访问 执行器进行关系权限检查时调用此钩子。返回布尔值表示附加检查是否通过,report 或 ereport_on_violation 参数决定失败是否应直接报错。此入口用于额外的权限规则,不能假定它会取消核心已经执行的权限检查。 typedef bool (*ExecutorCheckPerms_hook_type)…扩展钩子 · 权限与对象访问 ExecutorEnd_hook扩展钩子本站词条介入执行器结束及查询资源释放。 执行器结束 查询执行 ExecutorEnd 负责结束一次查询并释放执行器资源。此钩子可在资源释放前读取执行状态或完成扩展自己的清理,随后转交原钩子或 standard_ExecutorEnd。 typedef void (*ExecutorEnd_hook_type) (QueryDesc *queryDesc); extern PGDLLIM…扩展钩子 · 查询执行 ExecutorFinish_hook扩展钩子本站词条介入查询执行结束前的完成阶段。 执行器完成 查询执行 ExecutorFinish 在计划主体的运行完成后处理尚需完成的执行工作,例如完成写入和触发器相关工作。安装此钩子的包装型扩展应继续调用原钩子或 standard_ExecutorFinish,不能把它当作单纯的资源释放回调。 typedef void (*ExecutorFinish_hook_type) (QueryD…扩展钩子 · 查询执行 ExecutorRun_hook扩展钩子本站词条介入执行器取行和运行查询计划的阶段。 执行器运行 查询执行 ExecutorRun 运行已初始化的查询计划时调用此钩子。方向与行数参数影响本次执行请求;同一 QueryDesc 可能被多次运行,因此一次调用不一定代表整条查询已经结束。 typedef void (*ExecutorRun_hook_type) (QueryDesc *queryDesc, ScanDirecti…扩展钩子 · 查询执行 ExecutorStart_hook扩展钩子本站词条介入执行器初始化,准备执行查询计划。 执行器启动 查询执行 ExecutorStart 在查询执行开始前调用此钩子,传入 QueryDesc 与执行标志。包装型扩展通常在此建立查询级状态,并转交先前的钩子或 standard_ExecutorStart 完成执行器初始化。 typedef void (*ExecutorStart_hook_type) (QueryDesc *q…扩展钩子 · 查询执行 explain_get_index_name_hook扩展钩子本站词条为执行计划中的索引提供显示名称。 EXPLAIN 索引名称 执行计划说明 EXPLAIN 输出索引名称前调用此钩子,以索引 OID 查询扩展提供的名称。返回空指针时继续使用核心的名称查找路径;这为规划阶段构造的特殊索引对象提供显示入口。 typedef const char *(*explain_get_index_name_hook_type) (Oid indexId); …扩展钩子 · 执行计划说明 explain_per_node_hook扩展钩子本站词条向单个执行计划节点补充 EXPLAIN 输出。 EXPLAIN 节点附加信息 执行计划说明 EXPLAIN 展示单个计划节点时调用此钩子,传入 PlanState、祖先节点和节点所在关系的显示信息。扩展可在当前节点的输出分组中增加属性。 typedef void (*explain_per_node_hook_type) (PlanState *planstate, List …扩展钩子 · 执行计划说明 explain_per_plan_hook扩展钩子本站词条向每份执行计划补充 EXPLAIN 输出。 EXPLAIN 计划附加信息 执行计划说明 EXPLAIN 输出一份计划时调用此钩子,提供计划语句、ExplainState 和相关查询上下文。扩展可为整份计划加入附加信息,无需接管整个 ExplainOneQuery 流程。 typedef void (*explain_per_plan_hook_type) (PlannedStm…扩展钩子 · 执行计划说明 explain_validate_options_hook扩展钩子本站词条在 EXPLAIN 的选项解析后校验扩展选项。 EXPLAIN 选项校验 执行计划说明 EXPLAIN 完成选项处理后调用此钩子,让扩展检查当前 ExplainState、原始选项列表和解析上下文。它用于跨选项约束或扩展自己的校验规则,不是查询计划的执行入口。 typedef void (*explain_validate_options_hook_type) (struct …扩展钩子 · 执行计划说明 ExplainOneQuery_hook扩展钩子本站词条接管单条查询的 EXPLAIN 处理入口。 单条查询的 EXPLAIN 执行计划说明 EXPLAIN 准备解释一条查询时,若此钩子已安装便交由扩展处理。参数包含查询树、ExplainState 和查询上下文,扩展可据此包装或替换该条查询的计划说明过程。 typedef void (*ExplainOneQuery_hook_type) (Query *query, int cu…扩展钩子 · 执行计划说明 fmgr_hook扩展钩子本站词条接收被选中函数的调用开始、正常结束和异常事件。 函数调用事件 日志与函数调用 对 needs_fmgr_hook 选中的函数,函数管理器通过此钩子报告调用事件。FmgrHookEventType 区分进入、正常返回和异常退出,FmgrInfo 标识被调用函数,private 指针可保存扩展状态。 typedef void (*fmgr_hook_type) (FmgrHookE…扩展钩子 · 日志与函数调用 get_attavgwidth_hook扩展钩子本站词条覆盖规划器使用的属性平均宽度估算。 平均属性宽度 统计信息与估算 get_attavgwidth 查询给定关系属性的平均宽度时先调用此钩子。返回正数时采用扩展提供的字节宽度;没有可用结果时继续读取 PostgreSQL 的统计信息。 typedef int32 (*get_attavgwidth_hook_type) (Oid relid, AttrNumber attnum)…扩展钩子 · 统计信息与估算 get_index_stats_hook扩展钩子本站词条为选择率估算提供索引列或表达式的统计信息。 索引表达式统计信息 统计信息与估算 估算表达式的选择率需要读取索引统计信息时调用此钩子。扩展可以根据索引 OID 和索引属性号填充 VariableStatData,并用返回值指明是否接管此次获取。 typedef bool (*get_index_stats_hook_type) (PlannerInfo *root, Oid in…扩展钩子 · 统计信息与估算 get_relation_info_hook扩展钩子本站词条在关系的目录与索引信息装入规划器后介入。 关系规划信息 查询规划 get_relation_info 从系统目录收集表及其索引的规划信息后调用此钩子。扩展拿到关系 OID、继承标志和 RelOptInfo,可调整规划器看到的关系信息。 typedef void (*get_relation_info_hook_type) (PlannerInfo *root, Oid rela…扩展钩子 · 查询规划 get_relation_stats_hook扩展钩子本站词条为选择率估算提供表列统计信息。 表列统计信息 统计信息与估算 选择率估算器读取关系属性的统计信息时可调用此钩子。钩子接收规划上下文、范围表条目、属性号和 VariableStatData;返回值说明扩展是否接管了此次统计信息获取。 typedef bool (*get_relation_stats_hook_type) (PlannerInfo *root, RangeTblE…扩展钩子 · 统计信息与估算 join_path_setup_hook扩展钩子本站词条在具体连接路径生成前调整连接准备信息。 连接路径准备 查询规划 add_paths_to_joinrel 准备计算连接路径时调用此钩子,提供连接类型、两侧关系和 JoinPathExtraData。它位于连接路径的准备阶段,与生成阶段末尾的 set_join_pathlist_hook 是不同入口。 typedef void (*join_path_setup_hook_typ…扩展钩子 · 查询规划 join_search_hook扩展钩子本站词条替换标准的多关系连接顺序搜索。 连接顺序搜索 查询规划 规划器选择连接顺序搜索方法时优先使用此钩子,输入是初始关系列表及需要完成的连接层数,返回连接结果的 RelOptInfo。需要保持标准搜索行为的扩展可调用 standard_join_search。 typedef RelOptInfo *(*join_search_hook_type) (PlannerInfo *roo…扩展钩子 · 查询规划 joinrel_setup_hook扩展钩子本站词条在连接关系的数据结构初始化阶段介入。 连接关系初始化 查询规划 规划器准备连接关系时调用此钩子,提供连接双方、特殊连接约束及限制条件列表。扩展可在连接路径计算前补充 joinrel 的规划信息。 typedef void (*joinrel_setup_hook_type) (PlannerInfo *root, RelOptInfo *joinrel, RelOptInfo …扩展钩子 · 查询规划 ldap_password_hook扩展钩子本站词条在 LDAP 搜索绑定之前转换配置的绑定密码。 LDAP 绑定密码转换 认证与连接 LDAP 认证需要执行搜索绑定时,把配置的 ldapbindpasswd 交给此钩子,再使用返回的字符串执行绑定。默认实现原样返回密码,扩展可提供自己的转换逻辑;它处理的是目录服务绑定密码,不是客户端登录密码。 typedef char *(*auth_password_hook_typ) (c…扩展钩子 · 认证与连接 needs_fmgr_hook扩展钩子本站词条决定给定函数是否需要进入 fmgr 调用追踪。 函数调用追踪筛选 日志与函数调用 函数管理器准备函数调用信息时,用此钩子根据函数 OID 判断是否启用 fmgr_hook。它负责选择需要追踪的函数,实际的进入、退出与异常事件由 fmgr_hook 接收。 typedef bool (*needs_fmgr_hook_type) (Oid fn_oid); extern PGDL…扩展钩子 · 日志与函数调用 object_access_hook扩展钩子本站词条按对象 OID 接收创建、删除或访问等对象事件。 对象访问事件 权限与对象访问 核心在对象创建、删除、修改和访问等指定位置调用此钩子。access 表示事件种类,classId、objectId 和 subId 标识对象,arg 的含义随事件变化;扩展需要按 ObjectAccessType 解读事件专有参数。 typedef void (*object_access_hook…扩展钩子 · 权限与对象访问 object_access_hook_str扩展钩子本站词条按对象名称接收对象访问事件。 按名称访问对象 权限与对象访问 这套对象访问入口以字符串名称标识对象,适用于没有普通对象 OID 的检查路径,例如配置参数的权限检查。它与按 OID 传参的 object_access_hook 类型不同,应分别安装并按事件类型处理参数。 typedef void (*object_access_hook_type_str) (ObjectAcce…扩展钩子 · 权限与对象访问 openssl_tls_init_hook扩展钩子本站词条在服务器初始化 TLS 上下文时调整 OpenSSL 设置。 OpenSSL 上下文初始化 认证与连接 服务器建立 OpenSSL SSL_CTX 时调用此钩子,并通过 isServerStart 区分服务器启动和之后的重载。默认实现执行 PostgreSQL 的 TLS 初始化工作;自定义实现需要核对默认实现承担的职责,避免遗漏必要设置。 typedef void (*ope…扩展钩子 · 认证与连接 planner_hook扩展钩子本站词条接管查询规划入口,返回可执行的计划。 查询规划入口 查询规划 查询即将生成 PlannedStmt 时调用此钩子。它接收分析和重写后的查询以及规划参数,返回计划语句。扩展可包装 standard_planner 来观测或调整规划过程,也可以提供自己的规划实现。 typedef PlannedStmt *(*planner_hook_type) (Query *parse, in…扩展钩子 · 查询规划 planner_setup_hook扩展钩子本站词条在标准规划器开始规划子查询之前介入初始化。 规划器初始化 查询规划 标准规划器建立全局规划状态后、进入子查询规划之前调用此钩子。它提供 PlannerGlobal、查询树和游标选项,便于扩展为这次规划准备状态。 typedef void (*planner_setup_hook_type) (PlannerGlobal *glob, Query *parse, const ch…扩展钩子 · 查询规划 planner_shutdown_hook扩展钩子本站词条在标准规划器生成计划后执行收尾处理。 规划器收尾 查询规划 标准规划器完成 PlannedStmt 构建后调用此钩子,并传入全局规划状态、原查询与生成的结果。扩展可利用仍可访问的规划上下文整理此次规划的附加信息。 typedef void (*planner_shutdown_hook_type) (PlannerGlobal *glob, Query *parse, cons…扩展钩子 · 查询规划 post_parse_analyze_hook扩展钩子本站词条在查询完成语义分析后取得查询树。 语义分析后处理 解析与命令处理 解析器把原始语法树转换为 Query 后调用此钩子,传入解析状态与已分析的查询。扩展可在此检查或记录查询,后续仍会经过重写、规划和执行;这里不是原始 SQL 文本的词法分析入口。 typedef void (*post_parse_analyze_hook_type) (ParseState *pstate, Q…扩展钩子 · 解析与命令处理 ProcessUtility_hook扩展钩子本站词条介入 DDL、事务控制等实用命令的分派。 实用命令处理 解析与命令处理 ProcessUtility 处理不走普通查询执行器的实用命令时,若此钩子已安装便把命令交给它。扩展可检查命令或增加前后处理;要继续 PostgreSQL 原有行为,需要转交先前安装的钩子或 standard_ProcessUtility。 typedef void (*ProcessUtility_hoo…扩展钩子 · 解析与命令处理 row_security_policy_hook_permissive扩展钩子本站词条向关系补充宽松模式的行安全策略。 宽松行安全策略 权限与对象访问 重写器为当前命令与关系收集行安全策略时调用此钩子。返回的策略加入宽松策略集合;宽松策略之间采用 OR 组合,与限制策略一起决定哪些行可见或可写。 typedef List *(*row_security_policy_hook_type) (CmdType cmdtype, Relation relation);…扩展钩子 · 权限与对象访问 row_security_policy_hook_restrictive扩展钩子本站词条向关系补充限制模式的行安全策略。 限制行安全策略 权限与对象访问 重写器收集当前命令的行安全策略时调用此钩子,将返回结果加入限制策略集合。限制策略之间采用 AND 组合,并约束宽松策略允许的行;仅有限制策略并不会自动授予行访问权。 typedef List *(*row_security_policy_hook_type) (CmdType cmdtype, Relation …扩展钩子 · 权限与对象访问 set_join_pathlist_hook扩展钩子本站词条在一对关系的连接路径生成阶段增补路径。 连接访问路径 查询规划 规划器为指定的外侧关系、内侧关系及连接类型建立连接路径时调用此钩子。它同时提供目标连接关系和 JoinPathExtraData,适合扩展连接路径,而不是直接执行连接。 typedef void (*set_join_pathlist_hook_type) (PlannerInfo *root, RelOptInf…扩展钩子 · 查询规划 set_rel_pathlist_hook扩展钩子本站词条在单个关系的访问路径生成阶段增补或调整路径。 关系访问路径 查询规划 规划器为关系准备访问路径时调用此钩子,传入关系、范围表下标及范围表条目。扩展可在普通扫描路径之外增加自己的访问路径;路径随后仍参加代价比较和计划选择。 typedef void (*set_rel_pathlist_hook_type) (PlannerInfo *root, RelOptInfo *rel,…扩展钩子 · 查询规划 shmem_request_hook扩展钩子本站词条在共享内存分配前申报扩展的内存与锁需求。 共享内存需求申报 启动与共享内存 服务器处理预加载模块的共享内存需求时调用此钩子。扩展可在这里调用 RequestAddinShmemSpace 和 RequestNamedLWLockTranche,申报后续初始化所需的空间和轻量锁。 typedef void (*shmem_request_hook_type) (void); ex…扩展钩子 · 启动与共享内存 shmem_startup_hook扩展钩子本站词条在核心共享内存完成初始化后初始化扩展状态。 共享内存初始化 启动与共享内存 服务器建立共享内存并完成核心结构初始化后调用此钩子。预加载扩展可在这里创建或连接自己的共享内存结构;这与分配前申报空间需求的阶段不同。 typedef void (*shmem_startup_hook_type) (void); extern PGDLLIMPORT shmem_startup_hoo…扩展钩子 · 启动与共享内存

输入名称或关键词,从 PostgreSQL 手册与扩展目录中直接找到定义。

pg17: 限定版本 ex: 只搜扩展 ↑↓ 选择 ↵ 打开