支持的版本: 当前 (17) / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1

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

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

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

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

  • AttributeRelationId

  • ForeignDataWrapperRelationId

  • ForeignServerRelationId

  • ForeignTableRelationId

  • UserMappingRelationId

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

提交更正

如果您发现文档中任何不正确、与您使用特定功能的体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。