FDW 作者需要实现一个处理函数,以及可选的验证函数。这两个函数都必须使用 C 语言等编译型语言编写,使用 version-1 接口。有关 C 语言调用约定和动态加载的详细信息,请参阅 第 36.10 节。
处理函数只需返回一个函数指针结构,指向计划器、执行器和各种维护命令将要调用的回调函数。编写 FDW 的大部分工作都在于实现这些回调函数。处理函数必须使用 PostgreSQL 注册,要求其不接受任何参数并返回特殊的伪类型 fdw_handler
。回调函数是普通的 C 函数,在 SQL 层面不可见或不可调用。回调函数的描述在 第 58.2 节。
验证函数负责验证 CREATE
和 ALTER
命令中为外部数据包装器、外部服务器、用户映射和使用该包装器的外部表提供的选项。验证函数必须注册为接受两个参数:一个包含待验证选项的文本数组,以及一个代表选项关联对象类型的 OID。后者对应于对象将存储的系统目录的 OID,以下之一:
AttributeRelationId
ForeignDataWrapperRelationId
ForeignServerRelationId
ForeignTableRelationId
UserMappingRelationId
如果没有提供验证函数,则在对象创建或修改时不会检查选项。
如果您在文档中发现任何不正确之处、与您实际体验不符或需要进一步阐明的地方,请使用 此表单 报告文档问题。