问题标签 [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.
postgresql - 无法在 Postgresql 上安装扩展
我尝试在我的 Postgresql 12 上安装 semver。我成功安装了 postgis 并使用以下命令在我的 Centos 7 服务器上安装 pg-semver( semver扩展):
然后我跑了
我收到以下错误:
无法打开扩展控制文件/usr/pgsql-12/share/extension/semver.control:没有这样的文件或目录
我将所有文件从“/usr/share/pgsql/extension/”复制到“/usr/pgsql-12/share/extension”。现在我收到以下错误:
错误:错误:无法访问文件“semver”:没有这样的文件或目录
更新(2020 年 2 月 28 日):
我删除了 pg-semver,因为它为 PSQL 9.2 提供。我现在尝试使用开发人员提供的文档来构建自己。
我从https://github.com/theory/pg-semver/archive/master.zip下载了 semver 扩展,然后解压缩。之后我运行以下命令:
并得到:
make:对于“all”目标没有什么可做的。然后:
并得到:
/bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh -c -m 644 ./semver.control '/usr/share/pgsql/extension/' / bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh -c -m 644 ./sql/semver--0.20.0.sql ./sql/semver- -unpackaged--0.2.1.sql ./sql/semver--0.20.0--0.21.0.sql ./sql/semver--0.12.0--0.13.0.sql ./sql/semver-- 0.3.0--0.4.0.sql ./sql/semver--0.16.0--0.17.0.sql ./sql/semver--0.13.0--0.15.0.sql ./sql/semver- -0.11.0--0.12.0.sql ./sql/semver--0.2.4--0.3.0.sql ./sql/semver--0.2.1--0.2.4.sql ./sql/semver --0.5.0--0.10.0.sql ./sql/semver--0.10.0--0.11.0.sql ./sql/semver.sql ./sql/semver--0.17.0--0.20。 0.sql ./sql/semver--0.15.0--0.16.0.sql '/usr/share/pgsql/extension/' /bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/.. /../config/install-sh -c -m 755 src/semver.so '/usr/lib64/pgsql/'/bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh -c -m 644 ./doc/semver.mmd '/usr/share/doc/pgsql/扩大/'
然后:
并得到:
==============删除数据库“contrib_regression”==============删除数据库==============创建数据库“contrib_regression” ============== CREATE DATABASE ALTER DATABASE ============== 安装 plpgsql ============ == CREATE LANGUAGE ============== 运行回归测试查询 ============== 测试库 ... FAILED(测试过程以退出代码 3 退出)
--------------- 1 个测试中的 1 个失败。
可以在文件“/tmp/ttt/pg-semver-master/regression.diffs”中查看导致某些测试失败的差异。您在上面看到的测试摘要的副本保存在文件“/tmp/ttt/pg-semver-master/regression.out”中。
make: *** [installcheck] 错误 1
regression.out的内容:
……!好的 278 - 次要版本检查!好的 279 - 函数 get_semver_patch() 应该存在!好的280-semver!好的 281 - 函数 get_semver_patch() 应该返回整数!好的 282 - 补丁版本检查!好的 283 - 函数 get_semver_prerelease() 应该存在!好的 284 - semver !好的 285 - 函数 get_semver_prerelease() 应该返回文本!好的 286 - 预发布标签检查!好的 287 - 1.0.0 应该在 [1.0.0, 2.0.0] 范围内!好的 288 - 1.0.0 不应该在 [1.0.1, 2.0.0] 范围内!好的 289 - 2.0.0 不应该在 [1.0.1, 2.0.0) 范围内!好的 290 - 1.9999.9999 应该在 [1.0.1, 2.0.0) 范围内!好的 291 - 1000.0.0 应该在 [1.0.0,) 范围内!好的 292 - 应该能够使用 semverranges 数组 --- 1,2 ---- \set ECHO none !psql:sql/semver.sql:30:错误:无法访问文件“semver”:没有这样的文件或目录
/usr/pgsql-12/lib/ 中没有 semver.so,/usr/lib64/pgsql/ 中有 semver.so 但它也适用于 9.2 版?
postgresql - 错误:在 Postgresql 中创建扩展时库不兼容
我使用 Centos 7 和 Postgresql 12。我已经安装了 PostGIS 并成功创建了它的扩展。我现在正在尝试使用create extension semver安装 semver 扩展并收到以下错误:
错误:库不兼容 »/usr/pgsql-12/lib/semver.so«:版本不匹配
根据开发人员的说法,这个版本应该适用于我的 Postgresql 12。为什么我会收到这个错误?
谢谢!
c - 如何让 Postgres 后台工作人员在收到信号时睡觉和醒来?
PostgreSQL 利用后台工作者来允许进程以并发方式工作,并且它们有一个 API 供后端/扩展开发人员控制它们。到目前为止,我已经成功地在一个演示扩展中使用了这个功能,成功地产生了一些工人。
我的情况是,我的一名工人必须等待另一名工人完成。到目前为止,我正在做的是一个空闲工作人员的无限循环,直到正在等待的工作人员完成,这可能非常低效。所以我想知道如何让空闲进程休眠,直到发送一些信号?我会寻找什么?是否有一个扩展可以做类似的事情,以便我可以用来指导?
postgresql - 如何使用正确的 PostgreSQL 版本安装 pgxn?
On sudo -H pgxn install semver
, 关于错误 PostgreSQL 版本的错误 (它是 v10 而不是 v12),
我也尝试修复“postgresql headers”,通过这条线索使用sudo apt install postgresql-server-dev-10
,但没有效果。
我使用的是pgxn.org扩展,它的主页上没有明显的“安装指南”。似乎该指南是pgxn.github.io/pgxnclient,但它没有说明更改 PostgreSQL 配置(但关于 extend-pgxs 的 Pg 指南可能会说些什么)。
有关json_fdw/issues和this other question的更多详细信息。
环境细节
开启
psql "postgres://postgres:passwd@localhost/myBase" -c "select version()"
= PostgreSQL 10.12旧服务器 UBUNTU 16 LTS
psql --version
= 12.2(但 SQL 是 10.12!)pgxn
由 安装sudo easy_install pgxnclient
。
重做sudo -H pip install --upgrade pgxnclient
pgxn --version
= pgxnclient 1.3对于在pgxn install
json_fdw
之前准备好的包,使用sucess 。sudo apt install zlib1g-dev libyajl-dev
似乎真正的问题是 PostgreSQL 版本混淆:两者存在,ls /usr/share/postgresql/10/extension
并且ls /usr/share/postgresql/12/extension
postgresql - 如何使扩展不可重定位?
我有一个扩展:https ://github.com/CraigTyle/Mathexp
我的任务是使扩展不可重定位:应该可以在任何模式中安装扩展,但应该不可能更改该模式。
有人告诉我这是怎么做的:不要使用运算符,而是@extschema@
为本地定义的类型和对象使用前缀。好吧,不要声明可重定位扩展。
我到底该怎么做?
postgresql - 如何在 GCP 的 PostgreSQL 中安装外部扩展
我在这里看到只能在 Google Cloud Platform 的 PostgreSQL 上安装允许的扩展。是否有可能添加未在支持的扩展中列出的扩展?我需要的扩展是 pg_semver。
postgresql - libpqxx C 聚合扩展返回错误数据?
我正在学习如何创建 C 聚合扩展并在客户端使用 libpqxx 和 C++ 来处理数据。
我的玩具聚合扩展有一个类型参数,bytea
状态也是类型bytea
。以下是我的问题的最简单示例:
服务器端:
客户端:
客户端的结果打印:
模式30
重复直到字符串结尾,十六进制打印字符串为 512 字节。
我希望收到一个长度为 128 字节的数组,其中每个字节都设置为零。我究竟做错了什么?
libpqxx 版本是 7.2 和 Ubuntu 20.04 上的 PostgreSQL 12。
附录
安装扩展sql语句;
c - C中的Postgres自定义并行聚合扩展,共享状态?
我正在创建一个 Postgres C 扩展,它是一个并行聚合函数。有什么方法可以在所有工作人员中共享状态或我选择的任何状态/内存块?我不希望每个工作进程都有自己的副本,我希望每个人都有一个全局副本。
任何帮助将不胜感激。
c - Postgres C扩展并行聚合,如何获取worker id和行号?
我正在为并行聚合函数编写 Postgres C 扩展。通常,在 C 或 C++ 中,我得到我的线程 ID 和要完成的工作的索引,然后我可以确保可以在没有依赖关系的情况下完成工作,并且最终结果总是正确的。
在我正在操作的行上没有获得索引(表上的行号,而不是 postgres 索引)以及工作人员 ID,我无法使用我的聚合函数处理任何内容并保证正确性。
- 有没有办法在 postgres 上获取 worker_id 以进行并行 C 聚合扩展?
- 有没有办法从 C 聚合函数中获取行索引/id/编号,而不必在 SQL 中计算它并将其作为列传递给我的函数?
至少我知道工人ID存在,只是不知道如何获得它。
database - pg_cron 扩展连接失败
需要 pg_cron 扩展的帮助:我是第一次使用它:它因“连接失败”错误而失败。我已遵循所有https://github.com/citusdata/pg_cron提到的说明。任何人都可以帮我解决这个问题:就我而言,它因连接失败错误而失败。但是,在实际的数据库日志中,我看不到任何错误。为什么会这样?