PostgreSQL TOAST 索引读取失败
最近,应用开发报来一个问题,错误信息如下:
1 | ERROR: could not read block 0 in file "base/16385/2294016": read only 0 of 8192 bytes |
这个错误信息和之前遇到的 PostgreSQL HASH 索引拾遗一文的情况很像。但是这里的数据库是 10.4,且是单节点模式,因此排除 HASH 索引的问题。
最近,应用开发报来一个问题,错误信息如下:
1 | ERROR: could not read block 0 in file "base/16385/2294016": read only 0 of 8192 bytes |
这个错误信息和之前遇到的 PostgreSQL HASH 索引拾遗一文的情况很像。但是这里的数据库是 10.4,且是单节点模式,因此排除 HASH 索引的问题。
最近在迁移 Oracle 数据库到 PostgreSQL 时遇到了 PostgreSQL 中调用存储过程异常的情况。本文简要记录以下定位及其修复过程。
在 PostgreSQL 中,查询一般会经历以下几个阶段:
pg_cron 是 PostgreSQL 数据库的一个作业调度器插件,通过该插件我们可以定时的执行一些特殊的任务。它遵循 Linux crontab 的配置语法,您可以通过在线工具 crontab.guru 来验证您的 cron 表达式。目前,pg_cron 仅支持 PostgreSQL 10 及其之后的版本。本文将简要介绍 pg_cron 的安装及其使用。
在 Oracle 中可以通过 utl_http 来发送 HTTP 请求,PostgreSQL 中默认不支持,但是,我们可以通过 plpython3u 插件来实现这个功能。
在 Oracle 迁移到 PostgreSQL 数据库的过程中,我们通常使用 PostgreSQL 中的 VARCHAR
类型替换 Oracle 中的 VARCHAR2
类型。本文将针对 Oracle 中的 VARCHAR2
类型和 PostgreSQL 中的 VARCHAR
类型进行简要的比较。
最近在浏览 PostgreSQL 邮件列表时发现一个 bug:逻辑复制时,如果发布者和订阅者的 datestyle
不一致可能导致逻辑复制失败。本文简要记录这个问题的分析与修复方法。
在最近发布的 PostgreSQL 14 中,我们最兴奋的功能之一是引入了 multirange 类型。简而言之,multirange 类型是一组不重叠的范围(range)。与范围数组不同,它们防止重叠,因此允许你有效地建立有间隙的范围模型。
我们对它们的一个用例是建立时间模型。例如,如果您想记录累积的时间和某人在医院的天数,您可以将其存储为一个 datemultirange 类型。
在 PostgreSQL 14 中,有相当多的运算符和函数可用,但我们需要的一些明显的运算符和函数包括聚合,如联合聚合,目前还不存在。然而,还有一些标准的运算符,如 +
(合并两个范围)和 *
表示两个范围相交,-
表示两个范围的差,以及常见的包含布尔运算符。