52.1. 外数据封装函数
FDW作者需要实现一个处理函数,并且任选一个验证函数。这两个函数必须写在一个编译语言里比如C, 使用版本-1接口。关于在C语言中调用约定和动态加载的详细细节,参阅Section 35.9。
处理函数只返回调用函数的函数指针结构,其中通过规划器,执行器,以及各种维护命令 调用回调函数。写FDW的努力在于实现这些回调函数。 使用无参的PostgreSQL注册处理函数, 并且返回特殊伪类型fdw_handler
。 回调函数是普通C函数,是不可见的或者在SQL级别上可随时调用的。 在Section 52.2中描述回调函数。
验证函数负责验证 由CREATE
和ALTER
命令为外数据封装,以及外服务器,用户映射和使用封装的外表 给定的选项,验证函数必须作为两个参数来注册,验证包含该选项的文本数组,并且该选项与表示对象类型的OID相关联( 在系统目录OID形式下该对象被存储在,要么ForeignDataWrapperRelationId
, ForeignServerRelationId
, UserMappingRelationId
, 或者ForeignTableRelationId
中)。 如果不提供验证函数,则在对象创建时间或者对象变更时间不检查该选项。