firebird_fdw
Firebird外部数据源包装器
仓库
ibarwick/firebird_fdw
https://github.com/ibarwick/firebird_fdw
源码
firebird_fdw-1.4.2.tar.gz
firebird_fdw-1.4.2.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
firebird_fdw | 1.4.2 | FDW | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 8750 | firebird_fdw | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | mysql_fdw tds_fdw db2_fdw oracle_fdw sqlite_fdw informix_fdw postgres_fdw db2fce orafce db_migrator |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.4.2 | 1817161514 | firebird_fdw | - |
| RPM | PIGSTY | 1.4.2 | 1817161514 | firebird_fdw_$v | libfq |
| DEB | PIGSTY | 1.4.2 | 1817161514 | postgresql-$v-firebird-fdw | libfq |
构建
您可以使用 pig build 命令构建 firebird_fdw 扩展的 RPM / DEB 包:
BASH
安装
您可以直接安装 firebird_fdw 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
创建扩展:
SQL
用法
来源:upstream README、1.4.2 README、1.4.2 tag。
firebird_fdw 通过外部数据包装器 API 将 PostgreSQL 连接到 Firebird 数据库。它支持读取、写入、IMPORT FOREIGN SCHEMA、受支持表达式的谓词下推、连接缓存,以及 PostgreSQL 14+ 上的外部表 TRUNCATE。
创建服务器
SQL
服务器选项包括:
address,默认localhost。port,默认3050。database,Firebird 数据库名称或路径。updatable,默认true;表级设置可以覆盖它。disable_pushdowns,用于调试或基准测试。quote_identifiers,默认引用表名和列名标识符。implicit_bool_type,用于由整数承载的 Firebird 布尔列。batch_size,用于 PostgreSQL 14+ 上的多行插入。
创建用户映射
SQL
创建外部表
SQL
使用列名映射:
SQL
使用自定义查询时,外部表是只读的:
SQL
表选项包括 table_name、query、updatable、estimated_row_count、quote_identifier 和 batch_size。列选项包括 column_name、quote_identifier 和 implicit_bool_type。
导入外部模式
SQL
导入选项包括 import_not_null、import_views、updatable 和 verbose。模式名在 Firebird 中没有特殊含义,可以是 PostgreSQL IMPORT FOREIGN SCHEMA 语法接受的任意值。
CRUD 操作
SQL
UPDATE 和 DELETE 使用 Firebird 的 RDB$DB_KEY。由于 Firebird 没有原生 TRUNCATE 语句,TRUNCATE 会实现为不带条件的 Firebird DELETE。
工具函数
firebird_fdw_version()返回 FDW 版本整数。firebird_fdw_close_connections()关闭当前 PostgreSQL 会话中缓存的 Firebird 连接。firebird_fdw_server_options(servername text)显示有效服务器选项值,以及每个选项是否由用户显式提供。firebird_fdw_diag()返回诊断键值数据,包括 FDW 和libfq版本。firebird_version()报告已配置外部服务器的 Firebird 服务端版本;为此它可能会打开连接。
注意事项
- Pigsty 为 PostgreSQL 14-18 打包
firebird_fdw1.4.2。上游文档声明兼容 PostgreSQL 10-19,其中较新的 FDW API 功能只在较新的 PostgreSQL 版本中可用。 - 上游支持 Firebird 2.5 及更高版本;更旧的 Firebird 版本不是已测试目标。
firebird_fdw与libfq共同开发,因此包兼容性取决于这些库是否匹配。- 基于自定义查询的外部表不能更新。
implicit_bool_type功能仍属实验性质,面向使用整数列表示布尔值的场景。