Top 5 Hacker 技术讨论
本周讨论涵盖逻辑复制冲突日志、索引预取及行模式识别等主题。冲突日志表设计围绕 ERROR 级别冲突的可靠写入方式及延迟内存累积策略展开争论。REPACK CONCURRENTLY 正式确认推迟至 PG20。发布 EXCEPT 子句清理补丁在评审后被放弃。索引预取 V31 修复了与主分支的冲突,但因出差安排提交时间再度推迟。RPR 针对 Oracle 和 Trino 的交叉测试发现三处匹配器正确性缺陷及一个潜在的计划期死循环。
|
提案:逻辑复制的冲突日志历史表
讨论围绕逻辑复制的冲突日志表(CLT)功能展开,核心问题是:当发生 ERROR 级别冲突时,如何可靠地将冲突记录写入该表。Masahiko Sawada 认为,冲突记录的插入不应以是否抛出错误为前提,建议在实际修改表之前就检测冲突,或将 ERROR 级别冲突作为软错误处理——先回滚 apply 事务,再在新事务中插入冲突元组。他还指出,若 apply 事务…
阅读讨论
|
|
在发布中跳过模式变更
Vignesh C提出了一个补丁来处理PostgreSQL发布中UNLOGGED表转换的问题。当发布EXCEPT子句中列出的表被转换为UNLOGGED时,会在pg_publication_rel中留下陈旧条目,因为UNLOGGED表不支持复制。原始补丁会移除这些条目并发出NOTICE。然而,Shveta Malik担心从EXCEPT列表中移除表会在转换回L…
阅读讨论
|
|
添加 REPACK [concurrently]
该讨论涉及拟议中的 `REPACK [CONCURRENTLY]` 特性。Alvaro Herrera 此前建议将该补丁推迟至 PG20 周期,在 PG20 发布前争取更多时间发现潜在问题。Heikki Linnakangas 注意到该特性仍列在 PG19 wiki 的待处理事项中,询问是否已确认推迟决定。Amit Kapila 表示同意该决定,并指出应将…
阅读讨论
|
|
行模式识别
Henson Choi 对 PostgreSQL 的 Row Pattern Recognition (RPR) 匹配器进行了系统性交叉验证,参照引擎为 Oracle 23ai 和 Trino 471,共测试约 1,000 条 PATTERN 语句。验证发现匹配器优先级逻辑中存在三个正确性缺陷:循环守卫对重复变量状态的误判、空迭代停止规则处理不当,以及固定…
阅读讨论
|
|
索引预取机制
Peter Geoghegan 发布了 index prefetching 补丁集的 V31 版本,主要目的是修复与当前 master 分支的冲突,与上一版本相比差异不大。他原计划在 7–10 天内提交第一个补丁(0001),但因时间不足加上下周有出差安排,提交时间将至少再推迟一周。V31 的一个值得关注的结构调整是,"Limit get_actual_v…
阅读讨论
|
|