56.1. 外部数据包装器功能

FDW 作者需要实现一个处理函数,以及一个可选的验证函数。必须使用版本 1 接口以诸如 C 之类的编译语言编写这两个函数。有关 C 语言调用约定和动态加载的详细信息,请参见Section 37.9

处理程序函数仅返回指向回调函数的函数指针的结构,该回调函数将由计划者,执行者和各种维护命令调用。编写 FDW 的大部分工作是实现这些回调函数。必须在 PostgreSQL 中注册处理程序函数,因为该函数不带任何参数并返回特殊的伪类型fdw_handler。回调函数是纯 C 函数,在 SQL 级别不可见或不可调用。回调函数在Section 56.2中描述。

验证器功能负责验证CREATEALTER命令中为其外部数据包装器以及使用该包装器的外部服务器,用户 Map 和外部表提供的选项。验证器函数必须注册为带有两个参数,一个文本数组包含要验证的选项,一个 OID 表示与该选项相关联的对象的类型(将以存储该对象的系统目录的 OID 的形式ForeignDataWrapperRelationIdForeignServerRelationIdUserMappingRelationIdForeignTableRelationId)。如果没有提供验证器功能,则在对象创建时或对象更改时不检查选项。

上一章 首页 下一章