最近整理了 MySQL 的 8.0.0 到 8.0.37 的版本中主要的更新内容要点和官方的链接的位置,PG 在版本上功能上,更新的速度相对 MySQL 有过之而无不及,本期我们也过一过 PG 从 PG 12 到 PG 16 中小版本的更新的功能和 Bug Fixed。这里我们从 PG12 开始的每个小版本一直到 PG16 的每个小版本中的更新的 release note 的记录中挑拣重要的进行列表。PG12中各个小版本的内容更新较多,可能由于时间的原因和个人的能力原因,忽略掉您认为重要的更新,您可以告诉我将其进行完善,通过梳理这里发现 PG12中的PG12.13版本有一些与系统崩溃相关的内容,根据这个信息,建议如果使用PG12的同志可以选择PG12.13后的版本。
PG12 版本是从 2019-10-3 号发布的,12 版本是 PG 重大更新和走向成熟以及使用量较多的一个版本,目前 12 已经更新到了 12.19 版本
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.0 | 主要针对分区表功能的更新,从性能上彻底更新之前 PG 在分区表中需要使用分区插件的历史,12 这个版本的分区功能不在需要配合使用 pg_path 这个功能插件来进行数据表的分区 | https://www.postgresql.org/docs/release/12.0/ |
12.0 | 添加了 reindex concurrently 的在线重建索引的功能 | www.postgresql.org/docs/release/12.0 |
12.0 | 提供了可以对创建索引,重建索引,vacuum full 进度的查看功能 | |
12.0 | 提供了 pg_dumpall 对数据库进行转储和还原的功能,帮助用户可以更快的进行数据库的版本升级 | https://www.postgresql.org/docs/12/upgrading.html |
12.0 | 移除了 recovery.conf 的设置,将配置移入到 postgresql.conf 中 | https://www.postgresql.org/docs/12/runtime-config-wal.html#RUNTIME-CONFIG-WAL-RECOVERY-TARGET |
12.0 | 增强了算法提高了 real,double precision 值的输出性能 | |
12.0 | Alter table attach partition 命令的锁的性能提升了 | ALTER TABLE ATTACH PARTITION is now performed with reduced locking requirements (Robert Haas) |
12.0 | pg_checksum 功能可以在数据库关闭的情况下对数据库文件进行校验,确认数据库的数据正确与否 |
12.1
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.1 | 修复了 reindex concurrently 的 bug | 在获取锁和释放锁上的问题 |
12.1 | 修复了 vacuum 在工作中错误的冻结正在运行的事务的问题 | Prevent VACUUM from trying to freeze an old multixact ID involving a still-running transaction (Nathan Bossart, Jeremy Schneider) |
12.1 | 修复分区表中与分区表和父表之间列的删除引起的 BUG 问题 | Fix dropping of indexed columns in partitioned tables (Amit Langote, Michael Paquier) |
12.1 | 修复分区索引重建失败后的清理问题 | Ensure that a partition index can be dropped after a failure to reindex it concurrently (Michael Paquier) |
12.2
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.2 | bug fixed 分区表中如果使用级联中的表被截断引起的问题 | https://www.postgresql.org/docs/release/12.2/ |
12.2 | 修复无法将外键约束附加到子分区的问题 | |
12.2 | 逻辑复制中在表进行 DDL 变更后导致的订阅失败或崩溃的问题 | Fix crash in logical replication subscriber after DDL changes on a subscribed relation (Jehan-Guillaume de Rorthais, Vignesh C) |
12.2 | 解决在 windows 上 PG 段时间重启后失败的问题 | On Windows, work around sharing violations for the postmaster's log file when pg_ctl is used to start the postmaster very shortly after it's been stopped, for example by pg_ctl restart (Alexander Lakhin) |
12.3
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.3 | 修复 information_schema.triggers 视图中的性能回归问题 | Repair performance regression in information_schema.triggers view (Tom Lane) |
12.3 | 在 pg_dump 中,将事件触发器的恢复推迟到最后 |
12.4
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.4 | 在逻辑复制的 walsender 中,修复在发送保持活动消息后无法发送反馈消息的问题 | https://www.postgresql.org/docs/release/12.4/ |
12.4 | 在处理外部表时执行计划未考虑外部表导致的 Group by 执行计划的错误 | Avoid believing that a never-analyzed foreign table has zero tuples (Tom Lane) |
12.5
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.5 | 修复未有超级用户权限的普通用户利用漏洞使用超级用户权限来执行任意的 SQL 代码 | |
12.5 | 修复 pl/pgsql 调用存储过程中的内存泄露问题 | Fix memory leaks in PL/pgsql's CALL processing (Pavel Stehule, Tom Lane) |
12.6
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.6 | 修复 GIST 索引插入时导致并发页面拆分的错误检测的程序 | Fix incorrect detection of concurrent page splits while inserting into a GiST index (Heikki Linnakangas) |
12.6 | 修复 create index concurrently 创建索引时可能导致的事务读取数据缺失的问题 | https://www.postgresql.org/docs/release/12.6/ |
12.7
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.7 | 在数组下标计算中防止整数溢出 | (CVE-2021-32027) |
12.7 | 修复 INSERT ... ON CONFLICT ... UPDATE 目标列表中对“无用”列的错误处理 | (CVE-2021-32028) |
12.7 | 修复 pg_dump 在分区表中的生成列数据的导出 | Fix pg_dump's dumping of generated columns in partitioned tables (Peter Eisentraut) |
12.8
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.8 | 修复多个 SQL 命令的错误问题,如查询中的别名冲突等 | |
12.8 | 更新特定查询中的内心泄露的问题 | CVE-2021-3677 |
12.9
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.9 | 修复物理复制在主服务器发送部分 WAL 记录后崩溃的问题 | https://www.postgresql.org/docs/release/12.9/ |
12.9 | 修复 create index concurrently 中未考虑 prepare transaction 命令在数据库中正在运行的事务 | |
12.9 | 修复在 create tablespace 崩溃恢复期间防止数据丢失当 wal_level 被设置为 minimal | |
12.9 | 修复并行进程时由于隔离级别低于 RR 导致查询数据错误的问题 | |
12.9 | 修复空指针,在你使用 Postgres_fdw 使用时导致崩溃的问题 | Fix null-pointer crash when contrib/postgres_fdw tries to report a data conversion error (Tom Lane) |
12.10
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.10 | 在操作 reindex concurrently 时对于 TOAST 表更新导致索引被损坏的问题 | Enforce standard locking protocol for TOAST table updates, to prevent problems with REINDEX CONCURRENTLY (Michael Paquier) |
12.10 | 修复 pg_dump,pg_basebackup 工作中错误报告回馈的问题 |
12.11
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.11 | 修复在进行 autovacuum ,index 操作中的安全漏洞,防止普通用户具有超级用户的权限 | The PostgreSQL Project thanks Alexander Lakhin for reporting this problem. (CVE-2022-1552) |
12.11 | 修复了 index_only 时读取不应该读取的列的问题 | Fix plan generation for index-only scans on indexes with both returnable and non-returnable columns (Tom Lane) |
12.11 | DROP TABLESPACE 在操作中无法完成表空间文件清理的工作的修复 | Fix race condition between DROP TABLESPACE and checkpointing (Nathan Bossart) |
12.11 | truncate 命令与 checkpoint 重合后导致的系统崩溃的可能 | Fix possible trouble in crash recovery after a TRUNCATE command that overlaps a checkpoint (Kyotaro Horiguchi, Heikki Linnakangas, Robert Haas) |
12.12
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.12 | 提高了 create extension 中的安全性,修补了漏洞 | (CVE-2022-2625) |
12.12 | 在创建索引时的权限检查问题 | CVE-2022-1552 |
12.12 | 修复 wal 一致性检查能正确处理 brin_evacuate_page | Fix WAL consistency checking logic to correctly handle BRIN_EVACUATE_PAGE flags (Haiyang Wang) |
12.13
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.13 | 避免内核崩溃的出现,尤其在 update,delete 操作与 vacuum 同时发生的情况下,导致的较少情况的系统崩溃的问题 | Avoid rare PANIC during updates occurring concurrently with VACUUM (Tom Lane, Jeff Davis) |
12.13 | 由于 vacuum 的操作导致损坏索引而引起的 PG 无法回收事务号的问题 | Fix VACUUM to press on if an attempted page deletion in a btree index fails to find the page's parent downlink (Peter Geoghegan) |
12.13 | 修复事务和子事务运行中可能产生的错误,导致的断言失败引起的内存泄露 | These errors could lead to assertion failures in debug builds, and otherwise to memory leaks. |
12.13 | 避免在数据复制的数据库系统中由于函数错误导致的系统崩溃的问题 | Avoid crash after function syntax error in replication workers (Maxim Orlov, Anton Melnikov, Masahiko Sawada, Tom Lane) |
12.14 跳过
12.15
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.15 | 当在 CREATE SCHEMA 中省略新架构名称时避免崩溃 | Avoid crash when the new schema name is omitted in CREATE SCHEMA (Michael Paquier) |
12.15 | COPY TO 不会从子表复制任何行 | The documentation is quite clear that COPY TO copies rows from only the named table, not any inheritance children it may have. However, if row-level security was enabled on the table then this stopped being true. |
12.16
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.16 | 修复 BRIN 索引中空白(无行)范围和全 NULL 范围之间的混淆,以及全 NULL 摘要的不正确合并 | This fix will not in itself correct faulty BRIN entries. It's recommended to REINDEX any BRIN indexes that may be used to search for nulls. |
12.16 | DROP DATABASE 时特殊情况导致的无法删除数据文件问题 | Avoid leaving a corrupted database behind when DROP DATABASE is interrupted (Andres Freund) |
12.6 | 避免为具有伪常量连接子句的外连接生成不正确的计划 | Avoid producing incorrect plans for foreign joins with pseudoconstant join clauses (Etsuro Fujita) |
12.17
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.7 | 防止pg_signal_backend角色向后台工作进程和自动清理进程发送信号 | Prevent the pg_signal_backend role from signalling background workers and autovacuum processes (Noah Misch, Jelte Fennema-Nio) |
12.7 | 在 GiST 索引构建期间修复递归页面拆分中的不当行为 | Fix a case where the location of a page downlink was incorrectly tracked, and introduce some logic to allow recovering from such situations rather than silently doing the wrong thing. This error could result in incorrect answers from subsequent index searches. It may be advisable to reindex all GiST indexes after installing this update. |
12.7 | 避免在使用pg_basebackup 中产生无效的临时复制槽 | Avoid generating invalid temporary slot names in pg_basebackup (Jelte Fennema) |
12.18
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.8 | 在 Windows 上,在 pg_ctl 和 pg_regress 中启动子进程时抑制自动运行选项(Kyotaro Horiguchi) |
12.19
版本号 | 更新要点/bug fixed | 链接/注释 |
---|---|---|
12.9 | 当事务的ID超过2的31次方,可能会导致pg_xact_status(),txid_status()函数认为新的事务ID为现有的并造成运行错误 | Fix detection of old transaction IDs in XID status functions (Karina Litskevich) |
12.9 | 在contrib/xml2中,避免使用在 libxml2 的最新版本中已弃用的库函数 | In contrib/xml2, avoid use of library functions that have been deprecated in recent versions of libxml2 (Dmitry Koval) |