问题标签 [postgresql-12]

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 投票
1 回答
75 浏览

sql - 在 C 中编写 PostgreSQL 函数:经典 SPI_execq 示例 - 不打印为日志消息?

我是用 C 编写函数以与 SQL 一起使用的新手。到目前为止,我已经看过这个使用 SPI 执行查询的示例。但是,它将结果打印为日志消息。我想知道如何更改此示例以使我将结果作为正常查询返回(正常情况就像我在 pgAdmin 中执行 SQL 查询时如何查看它一样)?

0 投票
2 回答
313 浏览

postgresql - 将 VARCHAR 值转换为格式化日期,忽略错误

我有一列包含格式的日期yyyy-mm-dd。现在我正在运行一个SELECT查询,将该日期转换为dd/mm/yyyy使用TO_CHAR(dob :: DATE, 'dd/mm/yyyy') AS dob它工作得很好。现在我遇到的问题是该列中有一些坏记录,下面是一个有好记录和坏记录的示例表:

我在 id 2 上遇到的错误是:

我想要的是有条件地检查是否可以,TO_CHAR(dob :: DATE, 'dd/mm/yyyy')否则只需使用 dob 而不进行转换。有什么办法把它拉下来?

我正在使用 Postges 12

0 投票
1 回答
83 浏览

postgresql - 如何检查 pg_proc 中的函数输入是否具有伪类型?

所以我知道我可以查询 PostgreSQL pg_proc 表来查看注册函数的输入类型。像这样的东西:

好吧,一个函数可以有一种“伪类型”,例如 any 或 void。如何检查该类型是否是这些类型之一?

0 投票
1 回答
56 浏览

postgresql - 如何从 PostgreSQL 查询计划中获取解析和重写时间?

该文件明确指出

EXPLAIN ANALYZE 显示的 Planning time 是从解析的查询生成查询计划并对其进行优化所花费的时间。它不包括解析或重写。

那么如何获得这个不包括在内的时间(由他们自己解析和重写)?我知道一个人可以花费总查询时间,但除此之外,是否有可能以不同的方式单独获得这个时间?

我问的原因是因为我处于无法记录总时间的情况(相反,我想从计划中得出它,这似乎缺少一些信息)。

0 投票
1 回答
35 浏览

postgresql - 防止可能的 PostgreSQL GUC 参数竞争条件?

假设我有两个数据库客户端并行执行对 PostgreSQL 集群的查询。我决定让其中一个在 2 时使用max_parallel_workers_per_gather,而另一个在 6 时使用。

所以,客户端#1会做

客户#2会做

我期待序列 A->B->C->D 以便 B 和 D 使用指定的参数同时执行。但是顺序 A->C->B->D 可能吗?这会给两个客户 6,这不是我想要的!

我正在使用我认为不支持异步执行的SPI 。

0 投票
1 回答
45 浏览

json - Postgresql JSON 使用 WITH RECURSIVE

我的json是

我需要用一个数字迭代 id(仅当它为 null 且没有 id 键时)并形成与下面相同的 json,即使缺少键(id)。它必须是自动 ​​id 生成,因为我永远不知道这个聚合中有多少元素。

我相信 RECURSIVE CTE 工作,但我无法找到解决这个问题的方法。请帮忙

0 投票
1 回答
141 浏览

sql - PostgreSQL - 如何更新嵌套的 JSONB 元素

我找到了一些资料,但有些资料没有解释清楚或例子难以理解。此示例在 PostgreSQL 12 上成功执行。要求是使用 PostgreSQL 部分更改 JSON 结构。JSONB 用作数据类型。

数据结构有以下外观

数据记录将被更改。该属性$.person.name必须更改并将$.person.gender添加。

结果包含相应的修改。

JSONB 列的更新语句data如下所示

0 投票
2 回答
607 浏览

postgresql - 在 RAMdisk 上进行 PostgreSQL 基准测试?

我一直在考虑迁移到 RAMdisk 的想法。我知道它的风险,但只是想做一个小基准。我只有两个问题:(a)在读取查询计划时,它是否仍能区分磁盘命中和缓冲区命中?如果是这样,我应该假设两者都同样昂贵,还是应该假设它们之间存在差异?(b) RAM 磁盘不是持久的,但如果我想将一些结果导出到持久存储,我需要采取一些预防措施吗?它和平常一样吗,例如 COPY 命令?

0 投票
1 回答
486 浏览

postgresql - 将 PostgreSQL 11 备份恢复到 12 挂起。我该如何调试它?

我正在尝试使用复制方法将 heroku PostgreSQL 实例从 pg11 升级到 pg12,因为我的测试环境是在业余爱好实例上。在进程结束时,它似乎挂了很长时间(对于 120MB 的数据库,超过 30 分钟后不会退出)。数据存储视图表明一切都很好,我的行数相同,但存在问题。

这似乎是物化视图的错误。如果我连接到数据库并查看表和视图,只有一个看起来是空的。使用 postico,它会等待视图的结构,但不会对未填充的视图给出通常的警告。

我可以通过创建本地 pg12 数据库并尝试将 pg_restore 与最近的备份一起使用来重新创建停止行为。同样,我似乎能够通过创建一个空的本地数据库、运行所有数据库迁移、截断所有表和序列,然后--data-only --disable-triggers从同一个备份进行加载来使其工作。不是一个特别顺利或鼓舞人心的迁移计划。使用--verbose没有显示任何明显的错误,我得到的最后一件事是它正在创建有问题的物化视图。

我也设置log_statementall,我得到的最后一个是它正在刷新有问题的视图。此时,postgres 命令开始使用 ~100% CPU。

在本地,我使用这个命令来恢复:

pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name database_backup.dump

这是我们经常使用的命令来恢复本地开发的生产备份。

从 11 升级到 12 是否有任何已知的陷阱,或者我可能能够提取有关正在发生的事情的更多信息的方法?

0 投票
1 回答
1435 浏览

postgresql - 在 CentOS 8 上安装 PostgreSQL 12 时出现问题

安装 PostgreSQL 12:

然后,contrib 包的附加功能:sudo dnf install postgresql-contrib

之后,当我尝试初始化 PostgreSQL 数据库时:

我越来越:sudo: postgresql-setup: command not found

另外,当我尝试检查状态时:

收到此错误:Unit postgresql.service could not be found.

我做错了什么?如果这种安装方式不对,在centos上安装postgresql还有别的选择吗?