问题标签 [postgresql-extensions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
128 浏览

c - 使用多个源文件编译 postgres 扩展

这很可能源于我完全缺乏使用 C/C++ 工具链的经验。

我正在尝试为 postgres 构建一个简单的扩展。我遵循了官方文档(缺少一些示例)。这是一个简单的例子:

extension.c

这是扩展 Makefile:

我的问题是生成的库没有来自file.c. 当我将扩展加载到我的 PG 实例中时,它会抱怨undefined symbols.

我阅读了 gcc,看来我必须指定它应该使用的源文件。所以我将我的 Makefile 更改为:

我得到:

gcc:致命错误:不能用“-c”、“-S”或“-E”指定“-o”和多个文件

所以一些进一步的阅读把我带到了MODULE_big. 文件说:

从多个源文件构建的共享库(在 OBJS 中列出目标文件)

这听起来正是我想要的!所以新的makefile看起来像:

运行 make 给了我:

在这一点上,我真的不知道从这里去哪里。

folder/file.c我可以通过将内容粘贴到extension.c并使用makefile的第一个示例来完全解决这个问题。这显然不是一个很好的解决方案,但是......

就像我说的,这很可能只是我对 C/C++ 工具链不够了解。

0 投票
1 回答
207 浏览

postgresql - 如何安装 PostgreSQL tablefunc 扩展?

我无法在我的 PostgreSQL 服务器中运行以下命令:

CREATE EXTENSION tablefunc;

当我运行此命令时,我收到以下错误消息:

ERROR: could not open extension control file "/usr/local/pgsql/share/extension/tablefunc.control": No such file or directory

我在网上找不到任何解释如何安装此文件/目录的资源。任何帮助将不胜感激。

0 投票
0 回答
90 浏览

database - 关机后如何启动 pg_cron 扩展

不得不终止由 pg_cron 运行的进程。但是,在这样做之后 pg_cron 扩展停止了。以下是来自服务器的日志:

现在,没有作业正在运行。如何在不重新启动 PostgreSQL 服务器的情况下重新启动扩展。

0 投票
0 回答
135 浏览

postgresql - Install postgres extension PGXN "fatal error: unistd.h: No such file or directory"

I need to sync some postgres tables with elasticsearch and come to conclusion that the best solution for my case is the one described here. Unfortunately I'm still failing to install required postgres extension amqp.

I use docker so I start from image postgres:13-alpine.

Here is how my Dockerfile looks like so far:

Then when you enter the container and try to run pgxn install pg_amqp you will get following error.

It seems that I am out of the ideas what to do with that. Any help?

0 投票
0 回答
52 浏览

github - 如何在 postgresql 13/windows 10 中安装 pg_background 扩展?

我想在 PostgreSQL 中执行原子事务,我找到了这个“https://github.com/vibhorkum/pg_background”链接,但是在 gitbash 上安装它时遇到了错误。任何人都可以帮助如何在 Windows 10/postgres 13 上安装这个扩展,也许使用 gitbash?

0 投票
0 回答
123 浏览

postgresql - 如何在 AWS Aurora 中使用 pg_proctab 扩展进行监控?

我最近遇到了这个 pg_proctab 扩展,通过它我们应该能够获取操作系统统计信息的详细信息。但是我无法从此扩展构建的函数中获取值,这是 GIT 代码中的自述文件 -

我相信 procpid 在 postgresql 的更高版本中已停止使用,因此请WHERE pg_stat_activity.pid= pg_proctab.pid;改用。

当我跑步时

这些列是什么?当我将其与 pg_stat_activity 连接时,它与 postgreSQL 进程有何关系?

来自 pg_proctab() 的列-

0 投票
0 回答
42 浏览

postgresql - 使用 Windows 在 PostgreSQL 上构建 set_user 扩展模块

谁能建议在 PostgreSQL 中配置 set_user 扩展模块的步骤?我正在使用 Windows 机器。我尝试使用 Cygwin 构建并设法生成 set_user.dll,但在启动 PostgreSQL 时遇到问题。事件查看器中的错误消息:2021-10-25 18:50:06.013 +08 [27964] 致命:无法加载库“C:/Program Files/PostgreSQL/13/lib/set_user.dll”:指定的过程无法被发现。

下载源代码:https ://github.com/pgaudit/set_user

我在 Cygwin 中执行以生成 set_user.dll 的步骤:

在我得到 set_user.dll 之后,

  1. 我在 C:\Program Files\PostgreSQL\13\lib 中复制了 set_user.dll
  2. 然后我将 github 源代码中的 set_user.control 和 set_user--3.0.sql 复制到 C:\Program Files\PostgreSQL\13\share\extension
  3. 然后在 postgresql.conf 中添加了shared_preload_libraries = 'pgaudit,set_user'然后重启 postgresql 服务,但是无法启动 postgresql 服务。
0 投票
2 回答
65 浏览

c - 没有 -Wdeclaration-after-statement 的 PostgreSQL C 扩展

目前,当我编译我的扩展时,我得到,

PostgreSQL 当前-Wdeclaration-after-statement在编译期间使用。他们专门在pgxs我的机器上的全局make文件中设置了这个选项,

它与他们的CFLAGS,

无论如何要禁用-Wdeclaration-after-statement还是每个 PostgreSQL 扩展作者都必须采用相同的约定?我可以在我的扩展程序中覆盖 CFLAGS 吗?

0 投票
1 回答
24 浏览

c - 编译 PostgreSQL 扩展,得到“错误:'work_mem' undeclared (first use in this function)”

当我编译我得到的扩展时,我得到了

什么标题包括work_mem

0 投票
0 回答
46 浏览

postgresql - 为非超级用户安装 PostgreSQL 扩展

我的应用程序的数据库有一个像这样具有完全访问权限的专用用户;

在我的应用程序启动时,我有以下查询以确保 UUID 扩展可用;

这很好用。但是我最近尝试添加一个相同的查询来创建像这样的“pgcrypto”扩展;

这未能声称我需要超级用户权限来创建扩展。所以我决定以超级用户的身份手动创建它。但是,即使我在 Adminer 中以 postgres 用户身份登录并成功创建了扩展,它也不能用于我的应用程序(mydb 用户)中的查询。

我不熟悉 PostgreSQL 中使用的命名空间机制,所以我想知道如何创建扩展,以便它可以在我的应用代码中可用,而无需授予应用用户超级用户权限?