pg_parse_query 和 pg_rewrite_query 函数返回值分析
最近被朋友问到 pg_parse_query()
函数在什么情况下会返回多个 RawStmt
,因为在大多数情况下,该函数仅会返回一个 RawStmt
。这个问题与之前另一个朋友咨询的 pg_rewrite_query()
有点类似,但当时自己并没有整理记录,因此借着这个机会对这两个问题稍微整理一下。
Cybertec TDE 无法启动 PostgreSQL 数据库
最近 Cybertec 发布了新的 TDE 解决方案,通过在制作安装包时打补丁的方式添加数据库透明加解密功能,不得不说这种方式比之前的引入到整个代码库中要清晰的多。
PostgreSQL ICU 回归测试失败
最近遇到一个比较有意思的问题,我在运行 PostgreSQL 的回归测试时发现 collate.icu.utf8
这个测试用例在 REL_14_STABLE
分支始终无法跑过,但是在 REL_15_STABLE
却可以正常运行。同时由于 collate.icu.utf8
失败还将导致 foreign_data
测试用例也失败了。
PostgreSQL 表空间备份
本文简要记录一下 PostgreSQL 中关于表空间的备份,主要涉及到了 pg_basebackup
和 pg_probackup
两种备份方式。
PostgreSQL SCRAM 认证密码迭代次数
在上一篇文章中,我们聊到了 PostgreSQL 的认证机制,其中提到了 SCRAM-SHA-256 认证,在我写那篇文章的前两天,PostgreSQL 支持了 SCRAM 迭代次数的修改,它引入了一个 scram_iterations
参数来定义 SCRAM 的迭代次数。
聊聊 PostgreSQL 中的密码
本文将简单的聊聊 PostgreSQL 的密码存储以及认证过程。在 PostgreSQL 10 之前,密码存储是采用明文和 MD5 进行存储的,在 10 版本之后则采用 MD5 和 SCRAM 进行存储,废弃了明文存储。
PostgreSQL 中 timestamp 与 timestamptz 的区别
PostgreSQL 数据库提供了 timestamp
和 timestamptz
两种时间戳,它们的区别在于后者是带了时区信息,而前者没有时区信息。本文将对两种类型的时间戳进行分析。
PostgreSQL 获取分区键信息
PostgreSQL 从版本 10 开始便支持了声明式分区表,本文简要介绍如何获取分区表的分区键信息。