选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

PostgreSQL 博览 RSS 订阅

当天收录 24 条。

异常处理里调用槽函数出错会漏掉复制槽释放

Bharath RupireddyPostgreSQL hackers

PL/pgSQL、PL/Perl 等语言的异常块捕获错误时,SQL 可调用的复制槽函数不会释放已获取的槽,因为异常处理跑在内部子事务里,绕过了顶层错误处理路径。修法是新增 AtEOSubXact_ReplicationSlot(),在子事务结束时释放。Bharath Rupireddy 在 v13 里处理了大部分审查意见,并提议回移到 PG14:这个缺陷用简单 SQL 就能复现,可能导致崩溃、槽泄漏和 vacuum 受阻。

在线调整 shared_buffers 补丁被审出一串底层问题

Palak ChaturvediPostgreSQL hackers

shared_buffers 在线调整补丁集被审出不少问题。Palak Chaturvedi 发现 TAP 测试有约五分之一概率因 SIGHUP 投递时序而失败。Yuhang Qiu 的问题更深:持有全部分区锁期间不检查中断、madvise(MADV_REMOVE) 的范围盖住了 PROT_NONE 区域引发 EACCES 崩溃、EvictExtraBuffers() 用错缓冲区标志,而且大页对齐让测试其实没触发到 madvise。

LibreDB Studio 把 SQL IDE 部署到数据库旁边

LibreDBPostgreSQL 新闻

LibreDB Studio 是 MIT 许可的自托管 PostgreSQL SQL IDE,在浏览器里使用,以容器、Helm Chart 或 npm 包部署在它所管理的数据库旁,而不是装在每个开发者机器上。连接走连接池,用显式的 BEGIN/COMMIT/ROLLBACK 配合自动回滚超时,靠记录的后端 PID 取消查询。模式内省为上百张表的库做了分轮加载,监控读 pg_stat_* 视图,权限不足时降级显示而不是直接失败。

把 SQL Server 的多语言全文检索迁到 PostgreSQL

Ken ZhangAWS 数据库博客

Ken Zhang 梳理了多语言全文检索从 SQL Server 迁到 Aurora PostgreSQL 或 RDS 时的结果差异。SQL Server 用列语言、停用词表和重音敏感设置统一管理排序规则与检索,PostgreSQL 则把排序规则和文本搜索配置分开。文章覆盖八种语言的分词,用 unaccent 与 ICU 做不区分重音的检索,用 pg_bigm 给中日韩文本建二元组索引。托管环境装不了自定义词典是主要限制。

pg_shmemviz 把共享内存快照画进浏览器

Bertrand Drouvot个人博客

Bertrand Drouvot 发布调试工具 pg_shmemviz:它不附着到运行中的服务器,而是对共享内存做一次顺序无锁复制存成离线快照,再用浏览器交互查看。四个视图分别是分配布局图、借 DWARF 信息展开结构体字段与填充的检查器、按字段分类的原始字节面板,以及可选的 pg_buffercache 摘要,还能比对两次快照。需要带调试符号的构建,作者明确不要在生产实例上跑。

共享哈希表做并行聚合,倾斜一来就全盘皆输

Andrei LepikhovpgEdge 博客

PostgreSQL 目前的并行聚合走部分聚合加最终聚合,数据压不下去时,重新分组的最终阶段会吃掉大部分执行时间。Andrei Lepikhov 试了让所有 worker 直接更新一张共享哈希表:48 核机器上八个 worker,分布均匀时快 4.82 倍,2% 倾斜时 4.49 倍,但 80-20 分布已经打平,热点占到 95% 时只剩 0.04 倍。他的结论是进程模型为共享可变状态付出的代价远高于线程模型,不如按分组哈希做分区。

pg_statviz 1.2 支持 PostgreSQL 19 并新增锁阻塞模块

Jimmy Angelakos个人博客

Jimmy Angelakos 发布 pg_statviz 1.2。这个扩展与命令行工具的组合做内部统计的时序分析与可视化,全部在库内完成,不需要外部代理或常驻连接。新版支持 PostgreSQL 19 的新 WAL 指标与配置项,覆盖 13 到 19 beta3;新增阻塞锁分析模块,用 pg_blocking_pids() 按锁类型追踪阻塞方;AI 集成新增 OpenAI 及兼容服务。