# 57.1.外部数据包装函数

FDW作者需要实现一个处理程序函数,以及一个可选的验证器函数。这两个函数都必须使用1版接口,用C等编译语言编写。有关C语言调用约定和动态加载的详细信息,请参阅第38.10节.

handler函数只返回一个回调函数的函数指针结构,这些回调函数将由计划器、执行器和各种维护命令调用。编写FDW的大部分工作是实现这些回调函数。处理函数必须在PostgreSQL中注册为不带参数并返回特殊伪类型fdw_处理器.回调函数是普通的C函数,在SQL级别不可见或不可调用。中介绍了回调函数第57.2节.

validator函数负责验证中给出的选项创造改变用于外部数据包装器的命令,以及使用包装器的外部服务器、用户映射和外部表。validator函数必须注册为具有两个参数,一个包含要验证的选项的文本数组,以及一个表示与选项关联的对象类型的OID(以对象将存储在的系统目录的OID的形式)ForeignDataWrapperRelationId,外国关系,UserMappingRelationId外国关系)。如果未提供验证程序功能,则在对象创建或对象更改时不会检查选项。