PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

58.1. 外部数据包装器函数 #

FDW 作者需要实现一个处理器函数,还可以选择性地实现一个验证器 函数。 这两个函数都必须用 C 等编译型语言编写,使用 version-1 接口。 关于 C 语言调用约定和动态加载的细节,见 Section 36.10。

处理器函数只是返回一个包含指向回调函数的函数指针的结构, 这些回调函数会被规划器、执行器和各种维护命令调用。 编写 FDW 的大部分工作就在于实现这些回调函数。 处理器函数必须以 PostgreSQL 注册为不接收参数并返回特殊 伪类型 fdw_handler 的函数。 回调函数是普通 C 函数,在 SQL 层面不可见也不可调用。 回调函数在 Section 58.2 中描述。

验证器函数负责验证其外部数据包装器在 CREATE 和 ALTER 命令中给出的 选项,以及使用该包装器的外部服务器、用户映射和外部表的 选项。 验证器函数必须被注册为接收两个参数:一个包含要验证选项的 text 数组,以及一个表示选项所关联对象类型的 OID。 后者对应于该对象将被存入的系统目录的 OID,它是以下之一:

如果未提供验证器函数,选项在对象创建和修改时都不会被检查。