FDW 作者需要实现一个处理程序函数和一个验证函数(可选)。这两个函数都必须使用版本 1 接口用 C 等编译语言编写。有关 C 语言调用约定的详细信息,请参见 第 36.10 节。
处理程序函数只是将返回一个函数指针数组的结构体,里面是计划程序、执行程序和各种维护命令会在何时调用的回调函数中。编写 FDW 大部分的工作都在于实现这些回调函数。处理程序函数必须使用 PostgreSQL 注册,不接收任何参数,同时返回特殊伪类型 fdw_handler
。回调函数是纯粹的 C 语言函数,在 SQL 层面无法看到或调用它们。回调函数在 57.2 节 中进行了描述。
验证程序函数负责验证 CREATE
和 ALTER
命令中给定的其外国数据包装器以及外来服务器、用户映射和使用包装器的外来表格的选项。验证程序函数必须注册为接受两个参数,一个包含要验证的选项的文本数组,以及一个表示选项所关联对象的类型的 OID。后者对应于对象将被存储到系统目录中的 OID,它之一是
AttributeRelationId
ForeignDataWrapperRelationId
ForeignServerRelationId
ForeignTableRelationId
UserMappingRelationId
如果没有提供验证程序函数,那么在对象创建时间或对象修改时间将不会检查选项。