Nordic PGDay 2022 将于2022年3月22日在芬兰赫尔辛基的 Hilton Helsinki Strand Hotel 举行。征稿截止日期为2021年12月31日 详情
PGroonga 2.3.4,一个支持全语言的全文搜索平台, 已发布。
Pgpool-II 4.2.6、4.1.9、4.0.16、3.7.21 和 3.6.28,一个用于 PostgreSQL 的连接池和语句复制系统, 已 发 布 。
Ora2Pg 23.0,一个用于将 Oracle 数据库迁移到 PostgreSQL 的工具,已发布。 https://github.com/darold/ora2pg/blob/master/changelog
BigAnimal,一个 Azure 上的托管 PostgreSQL 数据库, 已发布。
pgAdmin4 6.2,一个用于 PostgreSQL 的 Web 和原生 GUI 控制中心, 已发布。
https://archives.postgresql.org/pgsql-jobs/2021-11/
Planet PostgreSQL:https://planet.postgresql.org/
本周 PostgreSQL 每周新闻由 David Fetter 为您呈现
请于太平洋时间周日下午3:00前将新闻和公告提交至 david@fetter.org。
Robert Haas 推送了:
修复 bbsink_throttle_manifest_contents 中的逻辑错误。由 Dmitry Dolgov 报告和诊断。Discussion: http://postgr.es/m/20211115162641.dmo6l32fklh64gnw@localhost https://git.postgresql.org/pg/commitdiff/1b098da2009362e0e8d9a1d0a6aac2f2bd3e2f0b
将 InitXLogInsert() 调用从 InitXLOGAccess() 移至 BaseInit()。目前,有一个未文档化的编码规则,即在尝试写入 WAL 之前必须调用 RecoveryInProgress()(或执行导致调用 InitXLogInsert() 的其他操作)。否则 WAL 构造缓冲区将不会初始化,导致失败。由于依赖像 RecoveryInProgress() 这样的状态查询函数来产生初始化关键数据结构的副作用不是好的做法,改为在后端首次启动时更早地执行初始化。补丁由我编写。Reviewed by Nathan Bossart and Michael Paquier. Discussion: http://postgr.es/m/CA+TgmoY7b65qRjzHN_tWUk8B4sJqk1vj1d31uepVzmgPnZKeLg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/e51c46991f0ee99cca222305619dee5543a1290a
Amit Kapila 推送了:
在更改 REPLICA IDENTITY 索引时使 relcache 失效。当将 REPLICA IDENTITY INDEX 更改为另一个时,目标表的 relcache 没有被失效。这导致在订阅者端的应用期间跳过更新/删除操作,因为搜索对应行所需的列不会被记录。Author: Tang Haiying, Hou Zhijie Reviewed-by: Euler Taveira, Amit Kapila Backpatch-through: 10 Discussion: https://postgr.es/m/OS0PR01MB61133CA11630DAE45BC6AD95FB939@OS0PR01MB6113.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/354a1f8d220fbbb07b0ded32c5ade72646afb801
修复阻止最老 xmin 推进的并行操作。在确定 xid 范围时,我们跳过正在运行 Vacuum 的后端。我们也忽略 Create Index Concurrently 或 Reindex Concurrently 以计算 Vacuum 的 Xmin。但我们在并行执行这些操作时没有设置对应的标志,阻止了 Xid 范围的推进。跳过 Create Index Concurrently 或 Reindex Concurrently 操作的优化在 PG-14 中实现,但修复对并行 Vacuum 也是相同的,因此回溯移植到 PG-13。Author: Masahiko Sawada Reviewed-by: Amit Kapila Backpatch-through: 13 Discussion: https://postgr.es/m/CAD21AoCLQqgM1sXh9BrDFq0uzd3RBFKi=Vfo6cjjKODm0Onr5w@mail.gmail.com https://git.postgresql.org/pg/commitdiff/0f0cfb494004befb0f6e89d3129347869420c509
Álvaro Herrera 推送了:
Michaël Paquier 推送了:
移除 xlog.c 中的全局变量 "LastRec"。此变量现在仅由 StartupXLOG() 使用,所以让它成为局部变量以简化代码。Author: Amul Sul Reviewed-by: Tom Lane, Michael Paquier Discussion: https://postgr.es/m/CAAJ_b96Qd023itERBRN9Z7P2saNDT3CYvGuMO8RXwndVNN6z7g@mail.gmail.com https://git.postgresql.org/pg/commitdiff/f975fc3a3542005ed0dd689bdb5bd9ed4e1f4d52
为 pg_upgrade 的二进制兼容性检查在回归测试中添加表。此提交在主回归测试套件中添加了一个包含所有核心数据类型(有一些例外)的表。此表不会被删除,以便 pg_upgrade 能够检查表中跟踪的类型的二进制兼容性。如果在核心中添加了新类型,测试的这部分需要刷新,但测试被设计为如果发生这种情况会失败。由于这对升级很有用,而且这些升级依赖于旧版本回归测试套件中创建的对象,因此回溯移植到 12,这是最后一次进行二进制不兼容更改的版本(7c15cef)。这有望足以发现在开发新版本 Postgres 期间是否有什么被破坏,以便在这种情况下可以在 pg_upgrade 本身中采取行动(如 0ccfc28 对 sql_identifier)。尚未覆盖的一个领域与外部模块有关,它们可能创建自己的类型。pg_upgrade 的测试基础设施尚未与核心中存储的外部模块集成。Author: Justin Pryzby Reviewed-by: Jacob Champion, Peter Eisentraut, Tom Lane, Michael Paquier Discussion: https://postgr.es/m/20201206180248.GI24052@telsasoft.com Backpatch-through: 12 https://git.postgresql.org/pg/commitdiff/835bcba8b8d72a00cecc5431b67e70bbea93f947
修复升级二进制兼容性检查表中 ACL 项的引号。根据构建农场成员 prion,它在使用包含连字符的角色名下运行回归测试。问题由 835bcba 引入。Discussion: https://postgr.es/m/YZW4MvzCZ+hQ34vw@paquier.xyz Backpatch-through: 12 https://git.postgresql.org/pg/commitdiff/ac1c7458b17633d1e53a01393d12774c10cb6a91
改进 psql 对转换、域和序列的 tab 补全。完成了以下改进:- 添加了 CREATE DOMAIN 的一些 tab 补全。- 添加了 CREATE TRANSFORM 的一些 tab 补全。- 添加了 CREATE SEQUENCE AS 的类型补全。Author: Ken Kato Reviewed-by: Kyotaro Horiguchi, Michael Paquier Discussion: https://postgr.es/m/8d370135aef066659eef8e8fbfa6315b@oss.nttdata.com https://git.postgresql.org/pg/commitdiff/0cd6d3b3c5aeac81903aa7de92e406f8567898a2
Peter Eisentraut 推送了:
Daniel Gustafsson 推送了:
Doc: 为 CREATE PUBLICATION 添加参见引用。CREATE PUBLICATION 参考页面上的"参见"部分与 CREATE SUBSCRIPTION 及其 ALTER 对应物上的交叉引用不匹配。通过添加到 CREATE 和 ALTER SUBSCRIPTION 页面的 xref 来修复。回溯移植到引入 CREATE PUBLICATION 的 v10。Author: Peter Smith smithpb2250@gmail.com Reviewed-by: Masahiko Sawada sawada.mshk@gmail.com Discussion: https://postgr.es/m/CAHut+PvGWd3-Ktn96c-z6uq-8TGVVP=TPOkEovkEfntoo2mRhw@mail.gmail.com Backpatch-through: 10 https://git.postgresql.org/pg/commitdiff/3374a87b62cc553fa65f57ade019dcf3104ae639
改进发布错误消息。提交 81d5995b4b 为发布的不正确 relkind 引入了更细粒度的错误消息,但非日志表和临时表使用了相同的消息报告。这为这些类型的 relpersistence 提供了单独的错误消息。Author: Bharath Rupireddy bharath.rupireddyforpostgres@gmail.com Reviewed-by: Peter Eisentraut peter.eisentraut@enterprisedb.com Reviewed-by: Jeevan Ladhe jeevan.ladhe@enterprisedb.com Reviewed-by: Euler Taveira euler@eulerto.com Discussion: https://postgr.es/m/CALj2ACW9S=AswyQHjtO6WMcsergMkCBTtzXGrM8DX26DzfeTLQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/aa12781b0d039d93e1a851ece4bc75c3746cbd43
Tom Lane 推送了:
修复 INSERT/SELECT 中 SQL 标准函数参数的显示。如果 SQL 标准函数体包含 INSERT ... SELECT 语句,SELECT 中引用的任何函数参数始终以 $N 风格打印,而不是使用参数名称(如果有)。虽然严格来说不是错误,但这不是预期行为,而且与此类参数在任何其他类型的语句中的打印方式不一致。原因是从 get_insert_query_def 到 get_query_def 的递归忽略了传递 context->namespaces 列表,而是传递了常量 NIL。这是一个非常古老的疏忽,但据我分析,在提交 e717a9a18 添加了一个带有函数参数的最外层命名空间之前,它没有可见的后果。根据 Erki Eessaar 的报告。代码修复由我完成,回归测试用例由 Masahiko Sawada 完成。Discussion: https://postgr.es/m/AM9PR01MB8268347BED344848555167FAFE949@AM9PR01MB8268.eurprd01.prod.exchangelabs.com https://git.postgresql.org/pg/commitdiff/a8d8445a7b2f80f6d0bfe97b19f90bd2cbef8759
在 pg_dump 和 pg_basebackup 中更健壮地处理 close() 失败。Coverity 报告在失败的 gzclose 后应用 get_gz_error(如我们在 pg_basebackup 的一个地方所做的)是不安全的。我认为它是对的:该调用很可能触及已释放的内存。将其更改为检查 errno,就像我们对其他 gzclose 调用所做的那样。同时,在我们关心错误状态的任何 gzclose() 调用之前,小心地将 errno 初始化为零。另外,修复了几个完全未能检查关闭时错误的地方。回溯移植到 v12。补丁由我编写;感谢 Michael Paquier 的审查。Discussion: https://postgr.es/m/1343113.1636489231@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/3cac2c8caaefc642332e6994ce80032cc7d4cfdf
清理 pg_basebackup walmethods.c 中的错误处理。这里的错误处理一团糟,原因是根本性的设计不当(依赖 errno 保持其值远超安全假设的时间)以及大量的粗心大意。此外,最近添加的 LZ4 压缩完全破坏了事情,因为 liblz4 不使用 errno 来报告错误。为改善这一点,在 DirectoryMethodData 或 TarMethodData 结构中保持错误状态,并添加一个字符串字段来处理不设置 errno 的情况。回溯移植到引入 walmethods.c 的 v10。补丁由我编写;感谢 Michael Paquier 的审查。Discussion: https://postgr.es/m/1343113.1636489231@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/248c3a937dd018a72095f407cff727c9f08db0c1
为 starts_with() 添加规划器支持函数。这填补了 starts_with() 和等效的 ^@ 运算符在规划器支持方面的一些空白:* "textcol ^@ constant" 这样的条件现在可以使用常规 btree 索引,而不仅仅是 SP-GiST 索引,只要索引的排序规则是 C。* "starts_with(textcol, constant)" 可以像 "textcol ^@ constant" 一样被优化。* 固定前缀的 LIKE 和正则表达式模式现在在另一方面更像 starts_with():如果你对 SPGiST 索引列应用一个,你将得到使用 ^@ 的索引条件,而不是两个使用 >= 和 < 的索引条件。根据 Shay Rojansky 的反馈。补丁由我编写;感谢 Nathan Bossart 的审查。Discussion: https://postgr.es/m/232599.1633800229@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/a148f8bc04b9980f019ea0d4b89311cf0bdc22b7
提供可被 ^C 中断的 simple_prompt() 变体。到目前为止,你无法通过输入 control-C(或其他本地 SIGINT 拼写)来退出 psql 的 \password 命令。这对用户非常不友好,所以改进它。Nathan Bossart,由我稍做调整 Discussion: https://postgr.es/m/747443.1635536754@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/5f1148224bd78bcf3bf7d916b8fe85dd820c52c6
在编译 bitcode 时使用适当的 -Wno-warning 开关。回溯移植到我们开始构建 bitcode 文件的 v11。Discussion: https://postgr.es/m/2921539.1637254619@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/276517a96484f9e39a7a1095ab39fa76ef1ee8cc
允许 psql 的其他 simple_prompt() 使用也可被 ^C 中断。这完成了 5f1148224 中遗留的工作。\prompt 现在可以取消退出,\connect 期间发出的密码提示也可以。Nathan Bossart Discussion: https://postgr.es/m/747443.1635536754@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/46d665bc26ce57b5afecbc218c8fc3c6848211d8
修复二进制兼容情况下的 SP-GiST 扫描初始化逻辑。提交 ac9099fc1 重新排列了 spgGetCache() 中确定索引的 attType 和 leafType 的逻辑。事实证明这破坏了以下情况:(a) 实际输入数据类型与名义类型不同,(b) 操作类的 config 函数保留了 leafType 默认值,(c) 操作类没有 "compress" 函数。根据 Ilya Anfimov 的 bug #17294。回溯移植到 v14。Discussion: https://postgr.es/m/17294-8f6c7962ce877edc@postgresql.org https://git.postgresql.org/pg/commitdiff/f4e7ae2b8a67ad6801726553a024a3306716ef80
Doc: 更新与最低 Test::More 版本相关的一些内容。提交 405f32fc4 中的疏忽。 https://git.postgresql.org/pg/commitdiff/92e70796e91e2f9086fad0156e0e91513e54a66b
pg_receivewal, pg_recvlogical: 允许取消初始密码提示。以前在提示输入密码时无法通过 control-C 终止这些程序。回溯移植到所有支持的版本。Tom Lane and Nathan Bossart Discussion: https://postgr.es/m/747443.1635536754@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/282b6d00abf5cebece6f94c796a4ed807a0176db
Andres Freund 推送了:
Andrew Dunstan 推送了: