Skip to content

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

FDW 作者需要实现一个处理函数,还可以选择实现一个验证函数。这两个函数都必须使用版本 1 接口以编译语言(例如 C)编写。有关 C 语言调用约定和动态加载的详细信息,请参阅第 38.10 节

处理函数只返回一个函数指针结构,指向将由规划器、执行器和各种维护命令调用的回调函数。编写 FDW 的大部分工作在于实现这些回调函数。处理函数必须在PostgreSQL中注册为不带任何参数,并返回特殊伪类型fdw_handler。回调函数是普通的 C 函数,在 SQL 级别不可见或不可调用。回调函数在第 59.2 节中进行了描述。

验证函数负责验证CREATEALTER命令中给定的选项,以及使用包装器的外部服务器、用户映射和外部表。验证函数必须注册为带两个参数,一个包含要验证的选项的文本数组,一个表示选项关联的对象类型的 OID。后者对应于对象将存储在其中的系统目录的 OID,其中之一为

  • 属性关系 ID

  • 外部数据包装器关系 ID

  • 外部服务器关系 ID

  • 外部表关系 ID

  • 用户映射关系 ID

如果没有提供验证器函数,则在创建对象时或更改对象时不会检查选项。