9.3 9.4 9.5 9.6 10 11 12 13 14 15 16 17 Current(18)
PostgreSQL中文社区 问题报告 纠错本页面

58.1. 外部数据包装器函数 #

FDW的作者需要实现一个处理函数,并且可以选择性地实现一个验证函数。两个函数都必须用一种编译语言(如 C)来编写,并使用版本-1接口。关于 C 语言调用规范和动态加载的细节,请见第 36.10 节

处理函数简单地返回一个包含多个回调函数指针的结构体,回调函数将被规划器、执行器和多种维护命令调用。编写一个FDW的大部分工作量都在实现这些回调函数上。处理函数必须在PostgreSQL中注册,并且注册为不需要参数并返回特殊的伪类型fdw_handler。回调函数是普通的 C 函数,并且在 SQL 层是不可见或不可调用的。回调函数在第 58.2 节中描述。

验证函数负责验证在CREATEALTER命令中给定的选项, 以及使用该包装器的外部服务器、用户映射和外部表。 验证函数必须注册为接受两个参数,一个包含要验证的选项的文本数组, 另一个表示选项所关联的对象类型的OID。后者对应于对象将存储在的系统目录的OID之一:

如果没有提供验证函数,则在对象创建时间或对象更改时间不会检查选项。