后台工作者 worker_spi 示例 PostgreSQL

Background Worker worker_spi Example PostgreSQL

我正在尝试 运行 PostgreSQL 文档中的演示后台工作者示例。我从以下网址下载:https://github.com/postgres/postgres/tree/master/src/test/modules/worker_spi

我能够编译代码并创建以下文件: "worker_spi.o" 和 "worker_spi.so"

我然后 运行 worker_spi--1.0.sql 与:- \i worker_spi--1.0.sql。 最后,在连接到数据库后,我创建了一个在 SQL 文件中指定的扩展名。但是,我认为它不起作用。我是否需要将这个“.so”文件放在其他目录中?非常感谢任何帮助。

是的,需要将 .so 文件安装到 PKGLIBDIR 中。

你可以通过运行"pg_config"找到PKGLIBDIR是什么。例如,在装有 PostgreSQL 9.4 的 Ubuntu 系统上,pg_config 将 return:

PKGLIBDIR = /usr/lib/postgresql/9.4/lib

此外,worker_spi--1.0.sql 应该安装到 SHAREDIR/extension。在装有 PostgreSQL 9.4 的 Ubuntu 系统上,从 pg_config 编辑的 SHAREDIR return 是:

SHAREDIR = /usr/share/postgresql/9.4

安装 worker_spi--1.0.sql 的目录是:

/usr/share/postgresql/9.4/分机

将 worker_spi--1.0.sql 和 worker_spi.so 文件安装到正确位置后,您应该能够执行:

创建扩展 worker_spi;

来自任何数据库并安装扩展。

使用“\i worker_spi--1.0.sql”不会将其作为扩展安装,而是作为一组独立的对象安装。