FDW 作者需要实现一个处理程序函数,以及可选的验证器函数。这两个函数都必须使用编译语言(例如 C)编写,并使用版本 1 接口。有关 C 语言调用约定和动态加载的详细信息,请参阅第 36.10 节。
处理程序函数简单地返回一个函数指针结构体,这些指针指向将由规划器、执行器和各种维护命令调用的回调函数。编写 FDW 的大部分工作在于实现这些回调函数。处理程序函数必须在 PostgreSQL 中注册为不带参数并返回特殊伪类型 fdw_handler
。回调函数是普通的 C 函数,在 SQL 级别不可见或不可调用。回调函数在第 57.2 节中进行了描述。
验证器函数负责验证在其外部数据包装器以及外部服务器、用户映射和使用该包装器的外部表中给出的 CREATE
和 ALTER
命令中的选项。验证器函数必须注册为接收两个参数:一个包含要验证的选项的文本数组,以及一个表示与选项关联的对象类型的 OID。后者对应于对象将存储在其中的系统目录的 OID,其中之一为
AttributeRelationId
ForeignDataWrapperRelationId
ForeignServerRelationId
ForeignTableRelationId
UserMappingRelationId
如果未提供验证器函数,则在对象创建时或对象更改时不会检查选项。
如果您在文档中看到任何不正确的内容,与您对特定功能的体验不符,或者需要进一步澄清,请使用此表单报告文档问题。