{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2019-11-14", "build": "12.1", "major": "12", "minor": 1, "manual": "12", "status": "stable", "doc_git": "", "version": "12.1", "eol_date": "2024-11-21", "date_text": "2019-11-14", "supported": false, "manual_url": "/docs/12/release-12-1.html", "source_url": "/docs/release/12.1/", "entry_count": 51, "placeholder": false, "content_hash": "30a7000e73eae8c7996ee4f16a2ff278823a5e3e5e43d56c4039b1c3ca72b1a4", "manual_build": "12.22", "source_as_of": "", "changes_count": 51, "doc_loaded_at": "2026-09-26T02:56:41.471523", "migration_html": "<p>对于运行 12.X 的用户，不需要执行导出/恢复。</p>", "compatibility_count": 0, "label": "12.1", "status_label": "历史版本", "eol": "2024-11-21", "age_days": 2512, "support_days": -678}, "groups": [{"date": "2019-11-14", "build": "12.1", "major": "12", "minor": 1, "manual": "12", "status": "stable", "doc_git": "", "version": "12.1", "eol_date": "2024-11-21", "date_text": "2019-11-14", "supported": false, "manual_url": "/docs/12/release-12-1.html", "source_url": "/docs/release/12.1/", "entry_count": 51, "placeholder": false, "content_hash": "30a7000e73eae8c7996ee4f16a2ff278823a5e3e5e43d56c4039b1c3ca72b1a4", "manual_build": "12.22", "source_as_of": "", "changes_count": 51, "doc_loaded_at": "2026-09-26T02:56:41.471523", "migration_html": "<p>对于运行 12.X 的用户，不需要执行导出/恢复。</p>", "compatibility_count": 0, "label": "12.1", "status_label": "历史版本", "eol": "2024-11-21", "age_days": 2512, "support_days": -678, "entries": [{"id": "12.1-1a60920d2a5aae19", "cves": [], "html": "<p>修复 <code>ALTER TABLE</code> 添加没有默认值的列，同时进行需要重写表的其他更改时发生的崩溃（Andres Freund）<a href=\"https://postgr.es/c/f224c7c11\">§</a> <a href=\"https://postgr.es/c/3b25de620\">§</a></p>", "text": "修复 ALTER TABLE 添加没有默认值的列，同时进行需要重写表的其他更改时发生的崩溃（Andres Freund）§ §", "title": "修复 ALTER TABLE 添加没有默认值的列，同时进行需要重写表的其他更改时发生的崩溃", "commits": ["3b25de620", "f224c7c11"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "ab398b21f867a1768163f65a806101637ea7e48c46fa2bb2c185b2ece73de490", "section_path": ["变更"], "commit_groups": [["3b25de620", "ae5cae54c"], ["93765bd95", "f224c7c11"]], "identity_text": "Fix crash when ALTER TABLE adds a column without a default value along with making other changes that require a table rewrite (Andres Freund)", "commit_aliases": ["3b25de620", "93765bd95", "ae5cae54c", "f224c7c11"], "source_commits": ["3b25de620", "f224c7c11"], "source_entry_id": "12.1/changes/001", "db_id": "269b1fb4d89e12195e81b0bc9782327a", "patch_ids": ["475092c2f036d6e4babb0ddcb38e4f3a", "f3e46f9a12d8451fe9e1837152cab2b6"], "statement_hash": "8e5e5f55d6f16242eca59bddc73bd1db4b5cdd6a70b7c349d61aeeb4ae1b0efa", "relations": [], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-aa08710dd582d2bb", "cves": [], "html": "<p>修复 <code>REINDEX CONCURRENTLY</code> 中的锁处理（Michael Paquier）<a href=\"https://postgr.es/c/7668d4847\">§</a> <a href=\"https://postgr.es/c/7f84b0ef0\">§</a></p>\n<p><code>REINDEX CONCURRENTLY</code> 遗漏了对新索引版本获取会话级锁，可能允许其他会话过早地操作它。此外，如果查询取消或会话终止中断在不恰当的时刻到达，可能导致 <code>REINDEX CONCURRENTLY</code> 未能释放它所持有的会话级锁。</p>", "text": "修复 REINDEX CONCURRENTLY 中的锁处理（Michael Paquier）§ § REINDEX CONCURRENTLY 遗漏了对新索引版本获取会话级锁，可能允许其他会话过早地操作它。此外，如果查询取消或会话终止中断在不恰当的时刻到达，可能导致 REINDEX CONCURRENTLY 未能释放它所持有的会话级锁。", "title": "修复 REINDEX CONCURRENTLY 中的锁处理", "commits": ["7668d4847", "7f84b0ef0"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "3ef19871a99543a393bf9e92f98c28e9fdb44ac1441ab2fb808979db78a7e0f0", "section_path": ["变更"], "commit_groups": [["5d3500da7", "7668d4847"], ["7f84b0ef0", "8270a0d9a"]], "identity_text": "Fix lock handling in REINDEX CONCURRENTLY (Michael Paquier) REINDEX CONCURRENTLY neglected to take a session-level lock on the new index version, potentially allowing other sessions to manipulate it too soon. Also, a query-cancel or session-termination interrupt arriving at the wrong time could result in failure to release the session-level locks that REINDEX CONCURRENTLY does hold.", "commit_aliases": ["5d3500da7", "7668d4847", "7f84b0ef0", "8270a0d9a"], "source_commits": ["7668d4847", "7f84b0ef0"], "source_entry_id": "12.1/changes/002", "db_id": "939110b2bb5faaf4d35ac37d8a4d9b00", "patch_ids": ["a3fa337eacfa722b68dd9c1adc447aea", "b1c68ba98c4dd12f4ec55b9b7efba477"], "statement_hash": "c39e772b45ffc9e1d841ca2558c32520a30794724a8c65694bd44c8dbe0e7233", "relations": [], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-505ed065cfd12264", "cves": [], "html": "<p>避免报告 <code>CREATE INDEX CONCURRENTLY</code> 或 <code>REINDEX CONCURRENTLY</code> 命令的进度时因竞争条件而发生的崩溃（Álvaro Herrera）<a href=\"https://postgr.es/c/1cd5bc3cc\">§</a></p>", "text": "避免报告 CREATE INDEX CONCURRENTLY 或 REINDEX CONCURRENTLY 命令的进度时因竞争条件而发生的崩溃（Álvaro Herrera）§", "title": "避免报告 CREATE INDEX CONCURRENTLY 或 REINDEX CONCURRENTLY 命令的进度时因竞争条件而发生的崩溃", "commits": ["1cd5bc3cc"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "050ddbf5db8ea8c52aa2b823ad32f3ba1e0dc5ea1ab9b33d0e37f882e51063e8", "section_path": ["变更"], "commit_groups": [["0d21f919e", "1cd5bc3cc"]], "identity_text": "Avoid crash due to race condition when reporting the progress of a CREATE INDEX CONCURRENTLY or REINDEX CONCURRENTLY command (Álvaro Herrera)", "commit_aliases": ["0d21f919e", "1cd5bc3cc"], "source_commits": ["1cd5bc3cc"], "source_entry_id": "12.1/changes/003", "db_id": "4a3606a7bc1e50139f3262d87c4b3727", "patch_ids": ["9420b4ad48ea0d99d9cfd9b62dddd12c"], "statement_hash": "872d350247b6ea331470e21bf6e4dcee5d41fadcd4fa68a07b20ec1fdd899983", "relations": [], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-4aee57fd6f9cf2a3", "cves": [], "html": "<p>避免在 <code>REINDEX CONCURRENTLY</code> 期间创建重复的依赖条目（Michael Paquier）<a href=\"https://postgr.es/c/5e5f32284\">§</a></p>\n<p>此缺陷导致 <code>pg_depend</code> 膨胀，但没有更严重的后果。</p>", "text": "避免在 REINDEX CONCURRENTLY 期间创建重复的依赖条目（Michael Paquier）§ 此缺陷导致 pg_depend 膨胀，但没有更严重的后果。", "title": "避免在 REINDEX CONCURRENTLY 期间创建重复的依赖条目", "commits": ["5e5f32284"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "86e7925c2ef2e5cae15983564f47ef6dbc5397214fb8fdc2d3b2ac9d782767d9", "section_path": ["变更"], "commit_groups": [["5e5f32284", "68ac9cf24"]], "identity_text": "Avoid creating duplicate dependency entries during REINDEX CONCURRENTLY (Michael Paquier) This bug resulted in bloat in pg_depend, but no worse consequences than that.", "commit_aliases": ["5e5f32284", "68ac9cf24"], "source_commits": ["5e5f32284"], "source_entry_id": "12.1/changes/004", "db_id": "d51a821fd28524bb220b70f58a56a47e", "patch_ids": ["8ba185aa4cece6d01b1aa63d4c50cd32"], "statement_hash": "43bf6eff628f79b3d528b0ac2957d1dff473cea17ba88bfa0cb0bdd6be79f1f5", "relations": [], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-03ce7d8051285d3a", "cves": [], "html": "<p>防止 <code>VACUUM</code> 尝试冻结涉及仍在运行事务的旧 multixact ID（Nathan Bossart，Jeremy Schneider）<a href=\"https://postgr.es/c/486a8f152\">§</a></p>\n<p>这种情况会导致 <code>VACUUM</code> 一直失败，直到旧事务终止。</p>", "text": "防止 VACUUM 尝试冻结涉及仍在运行事务的旧 multixact ID（Nathan Bossart，Jeremy Schneider）§ 这种情况会导致 VACUUM 一直失败，直到旧事务终止。", "title": "防止 VACUUM 尝试冻结涉及仍在运行事务的旧 multixact ID", "commits": ["486a8f152"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "070465aa5bd4c718b22e2764c7b01816c2bbafa8d4705defcfc80251d1c2f385", "section_path": ["变更"], "commit_groups": [["0640f032a", "080cf32d2", "486a8f152", "583d86f92", "6bda2af03", "6f1e336de", "c1443eebe"]], "identity_text": "Prevent VACUUM from trying to freeze an old multixact ID involving a still-running transaction (Nathan Bossart, Jeremy Schneider) This case would lead to VACUUM failing until the old transaction terminates.", "commit_aliases": ["0640f032a", "080cf32d2", "486a8f152", "583d86f92", "6bda2af03", "6f1e336de", "c1443eebe"], "source_commits": ["486a8f152"], "source_entry_id": "12.1/changes/005", "db_id": "5c6d43c35ae888f0c0b29165ff45738e", "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123", "relations": [{"rule": 2, "type": "equivalent", "target": "3a32e884c53d7d9d998e171b2c0fee41", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}}, {"rule": 2, "type": "equivalent", "target": "522a4efb8f7025b59c955d4981799d03", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}}, {"rule": 2, "type": "equivalent", "target": "6c8551b80cab90994547479c3079c61c", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}}, {"rule": 2, "type": "equivalent", "target": "f9a8ec5b02182ced9ecb5f30c93601e4", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}}, {"rule": 2, "type": "equivalent", "target": "fa826bc875c8ea5b61b9dd7da2abdb9e", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "522a4efb8f7025b59c955d4981799d03", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "防止 VACUUM 尝试冻结涉及仍在运行事务的旧 multixact ID", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}, "url": "/docs/compare/?release=11.6#11.6-500f2da382ce3ac5", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "fa826bc875c8ea5b61b9dd7da2abdb9e", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "防止 VACUUM 尝试冻结涉及仍在运行事务的旧 multixact ID", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}, "url": "/docs/compare/?release=10.11#10.11-500f2da382ce3ac5", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "6c8551b80cab90994547479c3079c61c", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "防止 VACUUM 尝试冻结涉及仍在运行的事务的旧多事务 ID", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}, "url": "/docs/compare/?release=9.6.16#9.6.16-f99d5c2e4e648987", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "f9a8ec5b02182ced9ecb5f30c93601e4", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "防止 VACUUM 尝试冻结涉及仍在运行的事务的旧多事务 ID", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}, "url": "/docs/compare/?release=9.5.20#9.5.20-f99d5c2e4e648987", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "3a32e884c53d7d9d998e171b2c0fee41", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "防止 VACUUM 尝试冻结涉及仍在运行的事务的旧多事务 ID", "evidence": {"same_day": true, "patch_ids": ["9311cce21ebf176e990d4c8797dc5f4f"], "statement_hash": "cbef18f9f36d7cfabe7071d45c459f38d2c5fba3bcd661c85f3cda95f35e2123"}, "url": "/docs/compare/?release=9.4.25#9.4.25-f99d5c2e4e648987", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-c9125c7a472099d0", "cves": [], "html": "<p>修复尝试按表达式索引执行 <code>CLUSTER</code> 时发生的 <span>“<span>wrong type of slot</span>”</span> 错误（Andres Freund）<a href=\"https://postgr.es/c/6d3fe6b6b\">§</a></p>", "text": "修复尝试按表达式索引执行 CLUSTER 时发生的 “wrong type of slot” 错误（Andres Freund）§", "title": "修复尝试按表达式索引执行 CLUSTER 时发生的 “wrong type of slot” 错误", "commits": ["6d3fe6b6b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "c22e29e1741a7fac8356a0ed2604cb95a5c89cf46f21b942e6791984268fd20f", "section_path": ["变更"], "commit_groups": [["6d3fe6b6b", "cef82eda1"]], "identity_text": "Fix wrong type of slot error when trying to CLUSTER on an expression index (Andres Freund)", "commit_aliases": ["6d3fe6b6b", "cef82eda1"], "source_commits": ["6d3fe6b6b"], "source_entry_id": "12.1/changes/006", "db_id": "4f5ef92e986ca08e2c50d63170940bcd", "patch_ids": ["e80c792c4dc154aff7f9fca4efbe911f"], "statement_hash": "b7c938fd96b1f3418c3b3009d58bd337b9e99aece738db0729e041aa5a0b0e90", "relations": [], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-b7720d8065d04100", "cves": [], "html": "<p><code>SET CONSTRAINTS ... DEFERRED</code> 在分区表上执行失败，错误地报告缺少触发器（Álvaro Herrera）<a href=\"https://postgr.es/c/b75ccddcd\">§</a></p>", "text": "SET CONSTRAINTS ... DEFERRED 在分区表上执行失败，错误地报告缺少触发器（Álvaro Herrera）§", "title": "SET CONSTRAINTS ... DEFERRED 在分区表上执行失败，错误地报告缺少触发器", "commits": ["b75ccddcd"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "829f6d822c520e38c0a494ff49fae7a89d639017add5db25ad7a73c23c886887", "section_path": ["变更"], "commit_groups": [["b4bcc6bfd", "b75ccddcd", "e4baecf1e"]], "identity_text": "SET CONSTRAINTS ... DEFERRED failed on partitioned tables, incorrectly complaining about lack of triggers (Álvaro Herrera)", "commit_aliases": ["b4bcc6bfd", "b75ccddcd", "e4baecf1e"], "source_commits": ["b75ccddcd"], "source_entry_id": "12.1/changes/007", "db_id": "7c1deace58bf9b41d1771fe5a4e88219", "patch_ids": ["0498286cdbe968d0b4e8200abd58dfc8"], "statement_hash": "fdcce4c324626a6e48191a4883109349ce44f65433d39d3a4f8a3ea89916f2bc", "relations": [{"rule": 2, "type": "equivalent", "target": "e813b0f7ef7f2b0e3650122bc758670b", "evidence": {"same_day": true, "patch_ids": ["0498286cdbe968d0b4e8200abd58dfc8"], "statement_hash": "fdcce4c324626a6e48191a4883109349ce44f65433d39d3a4f8a3ea89916f2bc"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e813b0f7ef7f2b0e3650122bc758670b", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "SET CONSTRAINTS ... DEFERRED 在分区表上执行失败，错误地报告缺少触发器", "evidence": {"same_day": true, "patch_ids": ["0498286cdbe968d0b4e8200abd58dfc8"], "statement_hash": "fdcce4c324626a6e48191a4883109349ce44f65433d39d3a4f8a3ea89916f2bc"}, "url": "/docs/compare/?release=11.6#11.6-a649070e3ed267f6", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}]}, {"id": "12.1-0166e1236f0db686", "cves": [], "html": "<p>修复父分区表包含已删除列时为分区创建索引发生的失败（Michael Paquier）<a href=\"https://postgr.es/c/7963c4c4b\">§</a></p>", "text": "修复父分区表包含已删除列时为分区创建索引发生的失败（Michael Paquier）§", "title": "修复父分区表包含已删除列时为分区创建索引发生的失败", "commits": ["7963c4c4b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "b8139be1b0b8acd6f28b7c04dc510614a9c5073b34bf1d7e488abbfec2a9e8a4", "section_path": ["变更"], "commit_groups": [["7963c4c4b", "dc816e581", "f10815c5b"]], "identity_text": "Fix failure when creating indexes for a partition, if the parent partitioned table contains any dropped columns (Michael Paquier)", "commit_aliases": ["7963c4c4b", "dc816e581", "f10815c5b"], "source_commits": ["7963c4c4b"], "source_entry_id": "12.1/changes/008", "db_id": "2ed536683fefc30c6111710d7c42fa25", "patch_ids": ["af7ab2ddb0f267b1950b0d2d4d36de68"], "statement_hash": "9d77ccbfeb1d4e7bf04c0e00a05eac901a7a3a251818ac67fe0d1734567bd7ff", "relations": [{"rule": 2, "type": "equivalent", "target": "ab1ceaca016cc84dee00c4ad5f08cc82", "evidence": {"same_day": true, "patch_ids": ["af7ab2ddb0f267b1950b0d2d4d36de68"], "statement_hash": "9d77ccbfeb1d4e7bf04c0e00a05eac901a7a3a251818ac67fe0d1734567bd7ff"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ab1ceaca016cc84dee00c4ad5f08cc82", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复父分区表包含已删除列时为分区创建索引发生的失败", "evidence": {"same_day": true, "patch_ids": ["af7ab2ddb0f267b1950b0d2d4d36de68"], "statement_hash": "9d77ccbfeb1d4e7bf04c0e00a05eac901a7a3a251818ac67fe0d1734567bd7ff"}, "url": "/docs/compare/?release=11.6#11.6-26bd34bfd7f3108c", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}]}, {"id": "12.1-d196a7b3422ee01c", "cves": [], "html": "<p>修复对分区表中已索引列的删除（Amit Langote，Michael Paquier）<a href=\"https://postgr.es/c/3a58c5f14\">§</a> <a href=\"https://postgr.es/c/9fd9af97f\">§</a></p>\n<p>以前，这可能失败并报告有关索引依赖关系的错误。正确行为应是自动删除这些索引。</p>", "text": "修复对分区表中已索引列的删除（Amit Langote，Michael Paquier）§ § 以前，这可能失败并报告有关索引依赖关系的错误。正确行为应是自动删除这些索引。", "title": "修复对分区表中已索引列的删除", "commits": ["3a58c5f14", "9fd9af97f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "539cf17308fafb27798378e7ae263079366847ab60fc9f7332df6dca8e2d35e2", "section_path": ["变更"], "commit_groups": [["14ac4237c", "9fd9af97f"], ["1df5875d3", "3a58c5f14"]], "identity_text": "Fix dropping of indexed columns in partitioned tables (Amit Langote, Michael Paquier) Previously this might fail with an error message complaining about the dependencies of the indexes. It should automatically drop the indexes, instead.", "commit_aliases": ["14ac4237c", "1df5875d3", "3a58c5f14", "9fd9af97f"], "source_commits": ["3a58c5f14", "9fd9af97f"], "source_entry_id": "12.1/changes/009", "db_id": "cc17f8133f62291da23279a1dc405aa6", "patch_ids": ["d043a201d56b3a28a2a4dac285c154da", "ff6b5ebbd460c918c0896819b1f21291"], "statement_hash": "afcf3581f7b7e676712387c418fc287e5f65aeb80e49b3374fcabcb0aecea944", "relations": [], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-a6682d4feb3ffcad", "cves": [], "html": "<p>确保分区索引在并发重建失败后仍可被删除（Michael Paquier）<a href=\"https://postgr.es/c/eae1ba65f\">§</a></p>\n<p>这种情况下，索引的 <code>pg_class</code>.<code>relispartition</code> 标志被留在了错误状态，导致 <code>DROP INDEX</code> 失败。</p>", "text": "确保分区索引在并发重建失败后仍可被删除（Michael Paquier）§ 这种情况下，索引的 pg_class.relispartition 标志被留在了错误状态，导致 DROP INDEX 失败。", "title": "确保分区索引在并发重建失败后仍可被删除", "commits": ["eae1ba65f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "0f27146e4f760cb7532926900c81ab4a446716708672d79c987e16291909791f", "section_path": ["变更"], "commit_groups": [["d80be6f2f", "eae1ba65f"]], "identity_text": "Ensure that a partition index can be dropped after a failure to reindex it concurrently (Michael Paquier) The index's pg_class.relispartition flag was left in the wrong state in such a case, causing DROP INDEX to fail.", "commit_aliases": ["d80be6f2f", "eae1ba65f"], "source_commits": ["eae1ba65f"], "source_entry_id": "12.1/changes/010", "db_id": "a83f5e01e4f7418e8f6afedd1865b24b", "patch_ids": ["bb1de9b6cd16dda53d43bea3e31530a7"], "statement_hash": "964b9c681af56a13de80248b54c52539ca601c35968d2c511eea4de67206c803", "relations": [], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-58838a618bd5c33a", "cves": [], "html": "<p>修复逐分区连接中对等价类成员的处理（Amit Langote）<a href=\"https://postgr.es/c/a9db37a18\">§</a></p>\n<p>这一疏漏可能导致无法使用可行的逐分区连接计划，或发生 <span>“<span>could not find pathkey item to sort</span>”</span> 规划器失败。</p>", "text": "修复逐分区连接中对等价类成员的处理（Amit Langote）§ 这一疏漏可能导致无法使用可行的逐分区连接计划，或发生 “could not find pathkey item to sort” 规划器失败。", "title": "修复逐分区连接中对等价类成员的处理", "commits": ["a9db37a18"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "aa9ba613f9300cb1b108112e610fee1845db7a5b6e7fefc590d562b2beaa5880", "section_path": ["变更"], "commit_groups": [["529ebb20a", "a9db37a18"]], "identity_text": "Fix handling of equivalence class members for partition-wise joins (Amit Langote) This oversight could lead either to failure to use a feasible partition-wise join plan, or to a could not find pathkey item to sort planner failure.", "commit_aliases": ["529ebb20a", "a9db37a18"], "source_commits": ["a9db37a18"], "source_entry_id": "12.1/changes/011", "db_id": "7f02e360a4f51896c422a97795c7a65f", "patch_ids": ["cbaaa6d2bd82ff913e0cbde3344c14f5"], "statement_hash": "ce7cc07655667abbf5e224a77829ac4ce54c8f4cd7b892c1fa75970a8d8aec5b", "relations": [], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-119d50d0f6cf35b0", "cves": [], "html": "<p>确保处理查询表达式时也处理 <code>WINDOW</code> 子句中的偏移量表达式（Andrew Gierth）<a href=\"https://postgr.es/c/0b11dc019\">§</a></p>\n<p>当偏移量是较复杂的表达式时，这一疏漏可能导致各种失败。例如，如果函数被内联，此类表达式中的函数参数引用就会失败。</p>", "text": "确保处理查询表达式时也处理 WINDOW 子句中的偏移量表达式（Andrew Gierth）§ 当偏移量是较复杂的表达式时，这一疏漏可能导致各种失败。例如，如果函数被内联，此类表达式中的函数参数引用就会失败。", "title": "确保处理查询表达式时也处理 WINDOW 子句中的偏移量表达式", "commits": ["0b11dc019"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "818794a03777f8ce3ec93c41cbe3cb2724e110c17f8b1e69d21ca3b02f9c9182", "section_path": ["变更"], "commit_groups": [["0a445f279", "0b11dc019", "3473f81dd", "6db0d7f35", "b7a1c5539", "d2427f11b", "ede0ab6cc"]], "identity_text": "Ensure that offset expressions in WINDOW clauses are processed when a query's expressions are manipulated (Andrew Gierth) This oversight could result in assorted failures when the offsets are nontrivial expressions. One example is that a function parameter reference in such an expression would fail if the function was inlined.", "commit_aliases": ["0a445f279", "0b11dc019", "3473f81dd", "6db0d7f35", "b7a1c5539", "d2427f11b", "ede0ab6cc"], "source_commits": ["0b11dc019"], "source_entry_id": "12.1/changes/012", "db_id": "87328496fe1ff4fe1e4cba6a35b8ff0e", "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e", "relations": [{"rule": 2, "type": "equivalent", "target": "051cfcbf21f9ff3ad7f3b7145cfb8239", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}}, {"rule": 2, "type": "equivalent", "target": "253f8c0da0e1b976098cbde686e376f0", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}}, {"rule": 2, "type": "equivalent", "target": "514ca97d8fc5e1b9913fa206c2ab3b7c", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}}, {"rule": 2, "type": "equivalent", "target": "786a8eb68b27a6e848bfa72505a70b7b", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}}, {"rule": 2, "type": "equivalent", "target": "b353f1899827134e9fe629738825aa8a", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "514ca97d8fc5e1b9913fa206c2ab3b7c", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "确保处理查询表达式时也处理 WINDOW 子句中的偏移量表达式", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}, "url": "/docs/compare/?release=11.6#11.6-e8bea20d416c7b06", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "051cfcbf21f9ff3ad7f3b7145cfb8239", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "确保处理查询表达式时也处理 WINDOW 子句中的偏移量表达式", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}, "url": "/docs/compare/?release=10.11#10.11-e8bea20d416c7b06", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "b353f1899827134e9fe629738825aa8a", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "确保查询表达式被改写时 WINDOW 子句中的偏移表达式也得到处理", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}, "url": "/docs/compare/?release=9.6.16#9.6.16-c09b9f7dccb0b665", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "253f8c0da0e1b976098cbde686e376f0", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "确保查询表达式被改写时 WINDOW 子句中的偏移表达式也得到处理", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}, "url": "/docs/compare/?release=9.5.20#9.5.20-c09b9f7dccb0b665", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "786a8eb68b27a6e848bfa72505a70b7b", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "确保查询表达式被改写时 WINDOW 子句中的偏移表达式也得到处理", "evidence": {"same_day": true, "patch_ids": ["8235cc73f9a36fb23483c21b4d478ab6"], "statement_hash": "9367d99ad3c83d87b1b66563cc87db04a17a16aad9c314c1aa66646533c1d89e"}, "url": "/docs/compare/?release=9.4.25#9.4.25-c09b9f7dccb0b665", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-1ee3e3dab4caeacf", "cves": [], "html": "<p>避免 postmaster 子进程数组已无空闲槽位时，并行查询请求后台工作进程导致 postmaster 失败（Tom Lane）<a href=\"https://postgr.es/c/7e8d0eb63\">§</a></p>", "text": "避免 postmaster 子进程数组已无空闲槽位时，并行查询请求后台工作进程导致 postmaster 失败（Tom Lane）§", "title": "避免 postmaster 子进程数组已无空闲槽位时，并行查询请求后台工作进程导致 postmaster 失败", "commits": ["7e8d0eb63"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "3a05162fae59c17ff90eaf6891c10e8ade71eab931f24b3f85cfb52e56002ca7", "section_path": ["变更"], "commit_groups": [["021065aac", "1b5c2ddcd", "3887e9455", "7e8d0eb63", "8c2910ce5", "c69e982a6"]], "identity_text": "Avoid postmaster failure if a parallel query requests a background worker when no postmaster child process array slots remain free (Tom Lane)", "commit_aliases": ["021065aac", "1b5c2ddcd", "3887e9455", "7e8d0eb63", "8c2910ce5", "c69e982a6"], "source_commits": ["7e8d0eb63"], "source_entry_id": "12.1/changes/013", "db_id": "6d5136787092da5d45ab2ca5be03299b", "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977", "relations": [{"rule": 2, "type": "equivalent", "target": "2796791ad0615cd972274fc27cfa15c2", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}}, {"rule": 2, "type": "equivalent", "target": "34b9e07ede55d67ae654c7c040b465b5", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}}, {"rule": 2, "type": "equivalent", "target": "6cb33d9008a7674a50e355939da5e32a", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}}, {"rule": 2, "type": "equivalent", "target": "998e1240a8474fc87758996a60323d84", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2796791ad0615cd972274fc27cfa15c2", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免 postmaster 子进程数组已无空闲槽位时，并行查询请求后台工作进程导致 postmaster 失败", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}, "url": "/docs/compare/?release=11.6#11.6-9ea3d713ace46e17", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "34b9e07ede55d67ae654c7c040b465b5", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免 postmaster 子进程数组已无空闲槽位时，并行查询请求后台工作进程导致 postmaster 失败", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}, "url": "/docs/compare/?release=10.11#10.11-9ea3d713ace46e17", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "6cb33d9008a7674a50e355939da5e32a", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "避免并行查询在没有空闲 postmaster 子进程数组槽位时请求后台工作者导致 postmaster 失败", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}, "url": "/docs/compare/?release=9.6.16#9.6.16-0564e460aeb91f1f", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "998e1240a8474fc87758996a60323d84", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "避免并行查询在没有空闲 postmaster 子进程数组槽位时请求后台工作者导致 postmaster 失败", "evidence": {"same_day": true, "patch_ids": ["96d0aacaad882c2d32ec347beb727443"], "statement_hash": "59eaa010be2a4d75cef37cd13bf56abb667da2b61444f4abcbb1f9498e5c7977"}, "url": "/docs/compare/?release=9.5.20#9.5.20-0564e460aeb91f1f", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "12.1-b3af97076f938b28", "cves": [], "html": "<p>修复对带有 <code>BEFORE UPDATE</code> 触发器的表进行 EvalPlanQual 复检所引发的崩溃（Andres Freund）<a href=\"https://postgr.es/c/60e97d63e\">§</a></p>", "text": "修复对带有 BEFORE UPDATE 触发器的表进行 EvalPlanQual 复检所引发的崩溃（Andres Freund）§", "title": "修复对带有 BEFORE UPDATE 触发器的表进行 EvalPlanQual 复检所引发的崩溃", "commits": ["60e97d63e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "68d63f39aa713ca506f61b0fd99bdcfff6cf96dab0876a64127cb1e51404eb66", "section_path": ["变更"], "commit_groups": [["60e97d63e", "d986d4e87"]], "identity_text": "Fix crash triggered by an EvalPlanQual recheck on a table with a BEFORE UPDATE trigger (Andres Freund)", "commit_aliases": ["60e97d63e", "d986d4e87"], "source_commits": ["60e97d63e"], "source_entry_id": "12.1/changes/014", "db_id": "8e64d4e30d242117f43df486da741d2b", "patch_ids": ["23c3e302e68f3526cf8483e0ba8ecbab"], "statement_hash": "ed1b971fd395e33551a0f635efe61edadd31877ea0e65492433fab8385d2c2ea", "relations": [], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-05dcbbc766c68f4f", "cves": [], "html": "<p>修复查询尝试访问 TOAST 表时发生的 <span>“<span>unexpected relkind</span>”</span> 错误（John Hsu，Michael Paquier，Tom Lane）<a href=\"https://postgr.es/c/791864193\">§</a></p>\n<p>错误应说明权限被拒绝，但代码重构破坏了这种情况的处理。</p>", "text": "修复查询尝试访问 TOAST 表时发生的 “unexpected relkind” 错误（John Hsu，Michael Paquier，Tom Lane）§ 错误应说明权限被拒绝，但代码重构破坏了这种情况的处理。", "title": "修复查询尝试访问 TOAST 表时发生的 “unexpected relkind” 错误", "commits": ["791864193"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "13b930900aace1600502c72fd274fbe08b43c47b2501f58af8d9a3be83c293cf", "section_path": ["变更"], "commit_groups": [["2bfe015b5", "791864193", "a30531c5c"]], "identity_text": "Fix unexpected relkind error when a query tries to access a TOAST table (John Hsu, Michael Paquier, Tom Lane) The error should say that permission is denied, but this case got broken during code refactoring.", "commit_aliases": ["2bfe015b5", "791864193", "a30531c5c"], "source_commits": ["791864193"], "source_entry_id": "12.1/changes/015", "db_id": "b1ac0f531f9ceaf6a8763e41ce5dd827", "patch_ids": ["838081d3b1b6e8a5ea52066d7b96572d"], "statement_hash": "79e26bd775cf765ffb65aeefc9746ff590c003124c7cd091a9b8fa18d15bb253", "relations": [{"rule": 2, "type": "equivalent", "target": "b31d41d1020b770977ec490b4391f980", "evidence": {"same_day": true, "patch_ids": ["838081d3b1b6e8a5ea52066d7b96572d"], "statement_hash": "79e26bd775cf765ffb65aeefc9746ff590c003124c7cd091a9b8fa18d15bb253"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b31d41d1020b770977ec490b4391f980", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复查询尝试访问 TOAST 表时发生的 “unexpected relkind” 错误", "evidence": {"same_day": true, "patch_ids": ["838081d3b1b6e8a5ea52066d7b96572d"], "statement_hash": "79e26bd775cf765ffb65aeefc9746ff590c003124c7cd091a9b8fa18d15bb253"}, "url": "/docs/compare/?release=11.6#11.6-3ba222959c407921", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}]}, {"id": "12.1-0f140a3388870cc6", "cves": [], "html": "<p>在并行工作进程启动期间设置 GUC 参数发生错误时，提供相关的错误上下文行（Thomas Munro）<a href=\"https://postgr.es/c/3af7c64fe\">§</a></p>", "text": "在并行工作进程启动期间设置 GUC 参数发生错误时，提供相关的错误上下文行（Thomas Munro）§", "title": "在并行工作进程启动期间设置 GUC 参数发生错误时，提供相关的错误上下文行", "commits": ["3af7c64fe"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "3823613c05feee52dd7be08a06f998a8f8c50fb10a312202f31a39b106ffcde5", "section_path": ["变更"], "commit_groups": [["3af7c64fe", "3c8c55dd5", "6737111a7", "89a3cdb32", "cdbb39213", "fd5ffa425"]], "identity_text": "Provide a relevant error context line when an error occurs while setting GUC parameters during parallel worker startup (Thomas Munro)", "commit_aliases": ["3af7c64fe", "3c8c55dd5", "6737111a7", "89a3cdb32", "cdbb39213", "fd5ffa425"], "source_commits": ["3af7c64fe"], "source_entry_id": "12.1/changes/016", "db_id": "4ea3d2bdb5ed937268773fde22216293", "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d", "relations": [{"rule": 2, "type": "equivalent", "target": "194858126ea4e7dfa00ddcca88d219a1", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}}, {"rule": 2, "type": "equivalent", "target": "1cdeecd950f87ad9f78cd449aa611815", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}}, {"rule": 2, "type": "equivalent", "target": "4c52b47c2e732d9889ddec4ca22e4589", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}}, {"rule": 2, "type": "equivalent", "target": "ffba4d83f366131db32533d2cf3a8fc8", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "1cdeecd950f87ad9f78cd449aa611815", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在并行工作进程启动期间设置 GUC 参数发生错误时，提供相关的错误上下文行", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}, "url": "/docs/compare/?release=11.6#11.6-1bb1197d56a5461c", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "ffba4d83f366131db32533d2cf3a8fc8", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在并行工作进程启动期间设置 GUC 参数发生错误时，提供相关的错误上下文行", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}, "url": "/docs/compare/?release=10.11#10.11-1bb1197d56a5461c", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "194858126ea4e7dfa00ddcca88d219a1", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "在并行工作者启动期间设置 GUC 参数发生错误时提供相关的错误上下文行", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}, "url": "/docs/compare/?release=9.6.16#9.6.16-813ccd9779c65243", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "4c52b47c2e732d9889ddec4ca22e4589", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在并行工作者启动期间设置 GUC 参数发生错误时提供相关的错误上下文行", "evidence": {"same_day": true, "patch_ids": ["1243fa5b0921820b1c554a187d60091f"], "statement_hash": "8baec96ef39b036a484908e57df8cc57b9eb9abcb96cc830db572873e8dde69d"}, "url": "/docs/compare/?release=9.5.20#9.5.20-813ccd9779c65243", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "12.1-379b4a761effb552", "cves": [], "html": "<p>确保仅对以读写模式打开的文件应用 <code>fsync()</code>（Andres Freund，Michael Paquier）<a href=\"https://postgr.es/c/c025165da\">§</a> <a href=\"https://postgr.es/c/07c314968\">§</a></p>\n<p>某些代码路径尝试在以只读方式打开文件后执行此操作，但在某些平台上，这会导致 <span>“<span>bad file descriptor</span>”</span> 或类似错误。</p>", "text": "确保仅对以读写模式打开的文件应用 fsync()（Andres Freund，Michael Paquier）§ § 某些代码路径尝试在以只读方式打开文件后执行此操作，但在某些平台上，这会导致 “bad file descriptor” 或类似错误。", "title": "确保仅对以读写模式打开的文件应用 fsync()", "commits": ["07c314968", "c025165da"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "43967b465dcbf86b172f73f3f3fe9db09506ce7eb52d392fcd449a442dd6feb2", "section_path": ["变更"], "commit_groups": [["07c314968", "4e7a8874a", "59800f7ce", "b8e19b932", "c50f95272", "e34358c43", "fbfc835b4"], ["a586cc4b6", "c025165da"]], "identity_text": "Ensure that fsync() is applied only to files that are opened read/write (Andres Freund, Michael Paquier) Some code paths tried to do this after opening a file read-only, but on some platforms that causes bad file descriptor or similar errors.", "commit_aliases": ["07c314968", "4e7a8874a", "59800f7ce", "a586cc4b6", "b8e19b932", "c025165da", "c50f95272", "e34358c43", "fbfc835b4"], "source_commits": ["07c314968", "c025165da"], "source_entry_id": "12.1/changes/017", "db_id": "73b65c3ca0a98f2f47a92ac14c9892a1", "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4", "relations": [{"rule": 2, "type": "equivalent", "target": "1590e5d3da6e6a81c25d73c6d83b4ebb", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}}, {"rule": 2, "type": "equivalent", "target": "2418c9453b30b777ebc1c9534c0e47b8", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}}, {"rule": 2, "type": "equivalent", "target": "92ea24556125b7bc544c03fdd7e3d122", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}}, {"rule": 2, "type": "equivalent", "target": "9937db66c444f4b87967159a57f1736f", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}}, {"rule": 2, "type": "equivalent", "target": "b8e91545f28e39be358c8cb0aaccd1ce", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2418c9453b30b777ebc1c9534c0e47b8", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "确保仅对以读写模式打开的文件应用 fsync()", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}, "url": "/docs/compare/?release=11.6#11.6-42511f5c7f00edda", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "1590e5d3da6e6a81c25d73c6d83b4ebb", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "确保仅对以读写模式打开的文件应用 fsync()", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}, "url": "/docs/compare/?release=10.11#10.11-42511f5c7f00edda", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "92ea24556125b7bc544c03fdd7e3d122", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "确保 fsync() 只应用于以读/写方式打开的文件", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}, "url": "/docs/compare/?release=9.6.16#9.6.16-c657548a46b98fe9", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "9937db66c444f4b87967159a57f1736f", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "确保 fsync() 只应用于以读/写方式打开的文件", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}, "url": "/docs/compare/?release=9.5.20#9.5.20-c657548a46b98fe9", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "b8e91545f28e39be358c8cb0aaccd1ce", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "确保 fsync() 只应用于以读/写方式打开的文件", "evidence": {"same_day": true, "patch_ids": ["20b648680404cadc5d357f6df2e8fc6a", "c84eb292a1f31e0c5216e30f34748b01"], "statement_hash": "811b1d7801f5dd7f13522b0ebdbbb031a29ab9ae3676e32a9f2c69c46c6510c4"}, "url": "/docs/compare/?release=9.4.25#9.4.25-c657548a46b98fe9", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-4a8deb84dc97eccf", "cves": [], "html": "<p>允许编码转换成功处理比以前更长的字符串（Álvaro Herrera，Tom Lane）<a href=\"https://postgr.es/c/8381242df\">§</a></p>\n<p>以前，输入字符串有 0.25GB 的硬性上限；现在，只要转换后的输出不超过 1GB，就能够成功转换。</p>", "text": "允许编码转换成功处理比以前更长的字符串（Álvaro Herrera，Tom Lane）§ 以前，输入字符串有 0.25GB 的硬性上限；现在，只要转换后的输出不超过 1GB，就能够成功转换。", "title": "允许编码转换成功处理比以前更长的字符串", "commits": ["8381242df"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "ff24dcace6c7fa81669d77d6c8704f668c2a423bc35b6165c5798d320012d311", "section_path": ["变更"], "commit_groups": [["226551e7c", "54d641da0", "677989cc0", "6899be289", "8381242df", "8e10405c7", "e5ff97571"]], "identity_text": "Allow encoding conversion to succeed on longer strings than before (Álvaro Herrera, Tom Lane) Previously, there was a hard limit of 0.25GB on the input string, but now it will work as long as the converted output is not over 1GB.", "commit_aliases": ["226551e7c", "54d641da0", "677989cc0", "6899be289", "8381242df", "8e10405c7", "e5ff97571"], "source_commits": ["8381242df"], "source_entry_id": "12.1/changes/018", "db_id": "e4b440de56d261ffc7855ea4fab821a0", "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a", "relations": [{"rule": 2, "type": "equivalent", "target": "875c0e4587609f405ccd5ffcf2b36ab2", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}}, {"rule": 2, "type": "equivalent", "target": "91d77091fad5f269b2db456b44d2a1e5", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}}, {"rule": 2, "type": "equivalent", "target": "cb4474cbfaedad6fefc693785965ee50", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}}, {"rule": 2, "type": "equivalent", "target": "e3986eda3d8a8bbe46aaaf7f25f8bce1", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}}, {"rule": 2, "type": "equivalent", "target": "e879d6402b17f3116c0664f3906d21a2", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e3986eda3d8a8bbe46aaaf7f25f8bce1", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "允许编码转换成功处理比以前更长的字符串", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}, "url": "/docs/compare/?release=11.6#11.6-22151d0d655f385c", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "91d77091fad5f269b2db456b44d2a1e5", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "允许编码转换成功处理比以前更长的字符串", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}, "url": "/docs/compare/?release=10.11#10.11-22151d0d655f385c", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "cb4474cbfaedad6fefc693785965ee50", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "允许编码转换在比以前更长的字符串上成功", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}, "url": "/docs/compare/?release=9.6.16#9.6.16-034419db242826ac", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "e879d6402b17f3116c0664f3906d21a2", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "允许编码转换在比以前更长的字符串上成功", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}, "url": "/docs/compare/?release=9.5.20#9.5.20-034419db242826ac", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "875c0e4587609f405ccd5ffcf2b36ab2", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "允许编码转换在比以前更长的字符串上成功", "evidence": {"same_day": true, "patch_ids": ["b59620aadb07a202a61119308e8705a3"], "statement_hash": "b00eedd46ac4216a9af5fe4a43bee7c45f6a7ba75da45a47d3da02bd1b18554a"}, "url": "/docs/compare/?release=9.4.25#9.4.25-034419db242826ac", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-f5c75d3ed183214d", "cves": [], "html": "<p>避免为窗口函数创建不必要地庞大的元组存储（Andrew Gierth）<a href=\"https://postgr.es/c/f57c63107\">§</a></p>\n<p>在某些情况下，元组存储会包含源表的所有列，而非仅包含查询所需的列。</p>", "text": "避免为窗口函数创建不必要地庞大的元组存储（Andrew Gierth）§ 在某些情况下，元组存储会包含源表的所有列，而非仅包含查询所需的列。", "title": "避免为窗口函数创建不必要地庞大的元组存储", "commits": ["f57c63107"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "7b866e9219d93b3a7de1e7860cf3ed3e2218ab3e7e10521789aef0c5c3b8ab26", "section_path": ["变更"], "commit_groups": [["6da5310e8", "747aac88f", "a9056cc63", "be99485b9", "f57c63107"]], "identity_text": "Avoid creating unnecessarily-bulky tuple stores for window functions (Andrew Gierth) In some cases the tuple storage would include all columns of the source table(s), not just the ones that are needed by the query.", "commit_aliases": ["6da5310e8", "747aac88f", "a9056cc63", "be99485b9", "f57c63107"], "source_commits": ["f57c63107"], "source_entry_id": "12.1/changes/019", "db_id": "c9ecc9c454fc3825dbe98be81173fe68", "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15", "relations": [{"rule": 2, "type": "equivalent", "target": "3d8474a55daa92357bdbbe434b361227", "evidence": {"same_day": true, "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15"}}, {"rule": 2, "type": "equivalent", "target": "b002daf8b62be7cd6900ee4c2bb24abe", "evidence": {"same_day": true, "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15"}}, {"rule": 2, "type": "equivalent", "target": "cefc20e114fe712d603a8c303183312a", "evidence": {"same_day": true, "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b002daf8b62be7cd6900ee4c2bb24abe", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免为窗口函数创建不必要地庞大的元组存储", "evidence": {"same_day": true, "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15"}, "url": "/docs/compare/?release=11.6#11.6-ea1534b076382130", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "cefc20e114fe712d603a8c303183312a", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免为窗口函数创建不必要地庞大的元组存储", "evidence": {"same_day": true, "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15"}, "url": "/docs/compare/?release=10.11#10.11-ea1534b076382130", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "3d8474a55daa92357bdbbe434b361227", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "避免为窗口函数创建不必要地庞大的元组存储", "evidence": {"same_day": true, "patch_ids": ["077ab1f10e9b6607b8d2de77233fc395"], "statement_hash": "dea0ff8dd73fb79808c36402906348dd94bd297fb10d52e4b38e6f3fdee0ca15"}, "url": "/docs/compare/?release=9.6.16#9.6.16-ea1534b076382130", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}]}, {"id": "12.1-a2ec2f586645e8e1", "cves": [], "html": "<p>允许 <code>repalloc()</code> 在大型内存块缩小时归还空间（Tom Lane）<a href=\"https://postgr.es/c/9a407209a\">§</a></p>", "text": "允许 repalloc() 在大型内存块缩小时归还空间（Tom Lane）§", "title": "允许 repalloc() 在大型内存块缩小时归还空间", "commits": ["9a407209a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "a93793243675039ee1fb9b75b33a8691f228bcbf114560a8426c9251140e32ea", "section_path": ["变更"], "commit_groups": [["1534531fe", "4829576ba", "82d0a46ea", "9a407209a", "9ad1b572d", "c477f3e44", "e5e4f12a5"]], "identity_text": "Allow repalloc() to give back space when a large chunk is reduced in size (Tom Lane)", "commit_aliases": ["1534531fe", "4829576ba", "82d0a46ea", "9a407209a", "9ad1b572d", "c477f3e44", "e5e4f12a5"], "source_commits": ["9a407209a"], "source_entry_id": "12.1/changes/020", "db_id": "28919380efd74ee005a86d31c864365e", "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e", "relations": [{"rule": 2, "type": "equivalent", "target": "24afa646cbd19aebb703398a8e69ae9a", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}}, {"rule": 2, "type": "equivalent", "target": "2c6aa131fceedc010dc04aff452c5264", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}}, {"rule": 2, "type": "equivalent", "target": "3c8bb8c27d4809d5d8005285a64216ab", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}}, {"rule": 2, "type": "equivalent", "target": "3ddc36c22adaef5e20bf87318b5a0c0d", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}}, {"rule": 2, "type": "equivalent", "target": "e6486a60df156f2ff4e70bc5d0f23c47", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3c8bb8c27d4809d5d8005285a64216ab", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "允许 repalloc() 在大型内存块缩小时归还空间", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}, "url": "/docs/compare/?release=11.6#11.6-049d3d7c5b4b4e66", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "3ddc36c22adaef5e20bf87318b5a0c0d", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "允许 repalloc() 在大型内存块缩小时归还空间", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}, "url": "/docs/compare/?release=10.11#10.11-049d3d7c5b4b4e66", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "e6486a60df156f2ff4e70bc5d0f23c47", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "允许 repalloc() 在大块被缩小时归还空间", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}, "url": "/docs/compare/?release=9.6.16#9.6.16-bcf8d3ad38d6bdd2", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "24afa646cbd19aebb703398a8e69ae9a", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "允许 repalloc() 在大块被缩小时归还空间", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}, "url": "/docs/compare/?release=9.5.20#9.5.20-bcf8d3ad38d6bdd2", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "2c6aa131fceedc010dc04aff452c5264", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "允许 repalloc() 在大块被缩小时归还空间", "evidence": {"same_day": true, "patch_ids": ["bb8fc1b453328d13052098eec48907e8"], "statement_hash": "c9f63c307d511d35bb2fd9fd28932c6e54276a89b95bb4a9be16994a664ee03e"}, "url": "/docs/compare/?release=9.4.25#9.4.25-bcf8d3ad38d6bdd2", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-0af630729a0e4453", "cves": [], "html": "<p>确保归档恢复结束时删除临时 WAL 文件和历史文件（Sawada Masahiko）<a href=\"https://postgr.es/c/2a724cdbf\">§</a></p>", "text": "确保归档恢复结束时删除临时 WAL 文件和历史文件（Sawada Masahiko）§", "title": "确保归档恢复结束时删除临时 WAL 文件和历史文件", "commits": ["2a724cdbf"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "990a333f7f602ba740e0820fc3ce5749f7fe05806baad441b29aaaed3f595bee", "section_path": ["变更"], "commit_groups": [["2a724cdbf", "7ca35472c", "ac1efdd08", "ae205dfe6", "b978de0eb", "df86e52ca"]], "identity_text": "Ensure that temporary WAL and history files are removed at the end of archive recovery (Sawada Masahiko)", "commit_aliases": ["2a724cdbf", "7ca35472c", "ac1efdd08", "ae205dfe6", "b978de0eb", "df86e52ca"], "source_commits": ["2a724cdbf"], "source_entry_id": "12.1/changes/021", "db_id": "b3a030c28ed4cda30af5cca05ade9f8a", "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d", "relations": [{"rule": 2, "type": "equivalent", "target": "0a3d67e35b576d9c2bd99c64ce426a2f", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}}, {"rule": 2, "type": "equivalent", "target": "c1828ccc97f9d3e0be5e49a6b93cf6f5", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}}, {"rule": 2, "type": "equivalent", "target": "c6f2ad7ebe26a63bb7848f935183d7e0", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}}, {"rule": 2, "type": "equivalent", "target": "f506a3173b1e3502d0666e1319af57c5", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c1828ccc97f9d3e0be5e49a6b93cf6f5", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "确保归档恢复结束时删除临时 WAL 文件和历史文件", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}, "url": "/docs/compare/?release=11.6#11.6-f73cc40d1aa4eb11", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "0a3d67e35b576d9c2bd99c64ce426a2f", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "确保归档恢复结束时删除临时 WAL 文件和历史文件", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}, "url": "/docs/compare/?release=10.11#10.11-f73cc40d1aa4eb11", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "c6f2ad7ebe26a63bb7848f935183d7e0", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "确保归档恢复结束时移除临时 WAL 和历史文件", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}, "url": "/docs/compare/?release=9.6.16#9.6.16-2e3934bf7ad8cbc9", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "f506a3173b1e3502d0666e1319af57c5", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "确保归档恢复结束时移除临时 WAL 和历史文件", "evidence": {"same_day": true, "patch_ids": ["eccec0a934f6b798a4ca948a6e5ed54f"], "statement_hash": "d9171030eaa0d655092fd4688db8b2e56f3529964d1e2d2c0b2c5e9b0624166d"}, "url": "/docs/compare/?release=9.5.20#9.5.20-2e3934bf7ad8cbc9", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "12.1-f78af228a28346b5", "cves": [], "html": "<p>避免启用 <code>recovery_min_apply_delay</code> 时归档恢复发生失败（Fujii Masao）<a href=\"https://postgr.es/c/9dfbf9a04\">§</a></p>\n<p><code>recovery_min_apply_delay</code> 通常不用于这种配置，但它应该能够正常工作。</p>", "text": "避免启用 recovery_min_apply_delay 时归档恢复发生失败（Fujii Masao）§ recovery_min_apply_delay 通常不用于这种配置，但它应该能够正常工作。", "title": "避免启用 recovery_min_apply_delay 时归档恢复发生失败", "commits": ["9dfbf9a04"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "f8e0976bdf657999b8fee798fdbf6b02d0aa0c67efeda42be941f146860286ca", "section_path": ["变更"], "commit_groups": [["14c59185b", "1b2ba8874", "579996bc2", "9dfbf9a04", "c455ee88c", "ec1259e88", "f7b70700b"]], "identity_text": "Avoid failure in archive recovery if recovery_min_apply_delay is enabled (Fujii Masao) recovery_min_apply_delay is not typically used in this configuration, but it should work.", "commit_aliases": ["14c59185b", "1b2ba8874", "579996bc2", "9dfbf9a04", "c455ee88c", "ec1259e88", "f7b70700b"], "source_commits": ["9dfbf9a04"], "source_entry_id": "12.1/changes/022", "db_id": "fa558941bd8859034c26a7e06f232001", "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8", "relations": [{"rule": 2, "type": "equivalent", "target": "2c676ad7ae5a140c73c5484e2a474f97", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}}, {"rule": 2, "type": "equivalent", "target": "5351f22144da31bd09273d698e148e9d", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}}, {"rule": 2, "type": "equivalent", "target": "78eba3ce05625f4d39ef243ce787088e", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}}, {"rule": 2, "type": "equivalent", "target": "86fe720617b772ba68ec054d99e2c4fb", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}}, {"rule": 2, "type": "equivalent", "target": "fd6bbf706f57582b1c80a0dc91d956ac", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fd6bbf706f57582b1c80a0dc91d956ac", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免启用 recovery_min_apply_delay 时归档恢复发生失败", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}, "url": "/docs/compare/?release=11.6#11.6-cd2c64147cc9cd78", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "86fe720617b772ba68ec054d99e2c4fb", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免启用 recovery_min_apply_delay 时归档恢复发生失败", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}, "url": "/docs/compare/?release=10.11#10.11-cd2c64147cc9cd78", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "78eba3ce05625f4d39ef243ce787088e", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "避免启用 recovery_min_apply_delay 时归档恢复的失败", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}, "url": "/docs/compare/?release=9.6.16#9.6.16-c5869d56fef3833b", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "2c676ad7ae5a140c73c5484e2a474f97", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "避免启用 recovery_min_apply_delay 时归档恢复的失败", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}, "url": "/docs/compare/?release=9.5.20#9.5.20-c5869d56fef3833b", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "5351f22144da31bd09273d698e148e9d", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "避免启用 recovery_min_apply_delay 时归档恢复的失败", "evidence": {"same_day": true, "patch_ids": ["e75885c6d2c42369afc35699bb66a795"], "statement_hash": "09f824fa7d7bbaa0a16df6a4623ac4b9ffa8763b9d5fa689d28fd9957afa50e8"}, "url": "/docs/compare/?release=9.4.25#9.4.25-c5869d56fef3833b", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-57baaa324ade6feb", "cves": [], "html": "<p>在崩溃恢复期间忽略 <code>restore_command</code>、<code>recovery_end_command</code> 和 <code>recovery_min_apply_delay</code> 设置（Fujii Masao）<a href=\"https://postgr.es/c/fcf7f8d92\">§</a> <a href=\"https://postgr.es/c/03666dfa1\">§</a></p>\n<p>现在这些设置可以在 <code>postgresql.conf</code> 中指定，因此可能在崩溃恢复期间被启用，但此时遵循这些设置并不合适。应忽略它们，直到崩溃恢复完成。</p>", "text": "在崩溃恢复期间忽略 restore_command、recovery_end_command 和 recovery_min_apply_delay 设置（Fujii Masao）§ § 现在这些设置可以在 postgresql.conf 中指定，因此可能在崩溃恢复期间被启用，但此时遵循这些设置并不合适。应忽略它们，直到崩溃恢复完成。", "title": "在崩溃恢复期间忽略 restore_command、recovery_end_command 和 recovery_min_apply_delay 设置", "commits": ["03666dfa1", "fcf7f8d92"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "af7e6b0d92563a931c640b82612fb83ab8e5ec0038b06728d1dcbe0c8ef0dd7a", "section_path": ["变更"], "commit_groups": [["03666dfa1", "9b95a36be"], ["20961ceaf", "fcf7f8d92"]], "identity_text": "Ignore restore_command, recovery_end_command, and recovery_min_apply_delay settings during crash recovery (Fujii Masao) Now that these settings can be specified in postgresql.conf, they could be turned on during crash recovery, but honoring them then is undesirable. Ignore these settings until crash recovery is complete.", "commit_aliases": ["03666dfa1", "20961ceaf", "9b95a36be", "fcf7f8d92"], "source_commits": ["03666dfa1", "fcf7f8d92"], "source_entry_id": "12.1/changes/023", "db_id": "7ed1bfe7fb362ef8c5fa3087a1ca2afd", "patch_ids": ["b5c23bc896d7090379f1b0b34cf51724", "ee76de4340e762e9a156852be06427e4"], "statement_hash": "9752e0957ec02dc7a6fbd68301b65639790f059d17e4d50d772889e1122a40f2", "relations": [], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-948d4cfa0b292ed3", "cves": [], "html": "<p>修复发布者和订阅者对表的复制标识列认定不一致时逻辑复制发生的失败（Jehan-Guillaume de Rorthais，Peter Eisentraut）<a href=\"https://postgr.es/c/d891d2c89\">§</a> <a href=\"https://postgr.es/c/f96756304\">§</a></p>\n<p>在订阅者上将发布者根本不存在的列声明为复制标识的一部分，会导致 <span>“<span>negative bitmapset member not allowed</span>”</span> 错误。</p>", "text": "修复发布者和订阅者对表的复制标识列认定不一致时逻辑复制发生的失败（Jehan-Guillaume de Rorthais，Peter Eisentraut）§ § 在订阅者上将发布者根本不存在的列声明为复制标识的一部分，会导致 “negative bitmapset member not allowed” 错误。", "title": "修复发布者和订阅者对表的复制标识列认定不一致时逻辑复制发生的失败", "commits": ["d891d2c89", "f96756304"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "c7c31259c5c5084d120803d6a11b6c1b14e451c318aae65507119927c6751e94", "section_path": ["变更"], "commit_groups": [["1c60e40ad", "2e00d5976", "7961da188", "d891d2c89"], ["806f9dc02", "aa9884578", "ef8fcbff5", "f96756304"]], "identity_text": "Fix logical replication failure when publisher and subscriber have different ideas about a table's replica identity columns (Jehan-Guillaume de Rorthais, Peter Eisentraut) Declaring a column as part of the replica identity on the subscriber, when it does not exist at all on the publisher, led to negative bitmapset member not allowed errors.", "commit_aliases": ["1c60e40ad", "2e00d5976", "7961da188", "806f9dc02", "aa9884578", "d891d2c89", "ef8fcbff5", "f96756304"], "source_commits": ["d891d2c89", "f96756304"], "source_entry_id": "12.1/changes/024", "db_id": "39d190e039df31b7769394fa2a757f17", "patch_ids": ["01bee7ee93a21f586fad49a6d03a4cff", "63e62199d910422917e20e7fddced293"], "statement_hash": "2d3205b5f95e63e135f0420ee555e22f5c84775b1611c879d2f54b392de376ca", "relations": [{"rule": 2, "type": "equivalent", "target": "06dcbe81968c5663a09fb913c4aaeae7", "evidence": {"same_day": true, "patch_ids": ["01bee7ee93a21f586fad49a6d03a4cff", "63e62199d910422917e20e7fddced293"], "statement_hash": "2d3205b5f95e63e135f0420ee555e22f5c84775b1611c879d2f54b392de376ca"}}, {"rule": 2, "type": "equivalent", "target": "a81899d12dd8e2823d50116dafd4d87f", "evidence": {"same_day": true, "patch_ids": ["01bee7ee93a21f586fad49a6d03a4cff", "63e62199d910422917e20e7fddced293"], "statement_hash": "2d3205b5f95e63e135f0420ee555e22f5c84775b1611c879d2f54b392de376ca"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "06dcbe81968c5663a09fb913c4aaeae7", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复发布者和订阅者对表的复制标识列认定不一致时逻辑复制发生的失败", "evidence": {"same_day": true, "patch_ids": ["01bee7ee93a21f586fad49a6d03a4cff", "63e62199d910422917e20e7fddced293"], "statement_hash": "2d3205b5f95e63e135f0420ee555e22f5c84775b1611c879d2f54b392de376ca"}, "url": "/docs/compare/?release=11.6#11.6-293aedf9da2f91a9", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "a81899d12dd8e2823d50116dafd4d87f", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复发布者和订阅者对表的复制标识列认定不一致时逻辑复制发生的失败", "evidence": {"same_day": true, "patch_ids": ["01bee7ee93a21f586fad49a6d03a4cff", "63e62199d910422917e20e7fddced293"], "statement_hash": "2d3205b5f95e63e135f0420ee555e22f5c84775b1611c879d2f54b392de376ca"}, "url": "/docs/compare/?release=10.11#10.11-293aedf9da2f91a9", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}]}, {"id": "12.1-9156f4650864dbe2", "cves": [], "html": "<p>避免逻辑复制 WAL 发送进程关闭期间出现不必要的延迟（Craig Ringer，Álvaro Herrera）<a href=\"https://postgr.es/c/1391c13ce\">§</a></p>", "text": "避免逻辑复制 WAL 发送进程关闭期间出现不必要的延迟（Craig Ringer，Álvaro Herrera）§", "title": "避免逻辑复制 WAL 发送进程关闭期间出现不必要的延迟", "commits": ["1391c13ce"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "376572f0c56b0d04e61e351adabe3a1e3e1fcbdb9ee63d272c9464cb799df0cc", "section_path": ["变更"], "commit_groups": [["0d9fcbada", "1391c13ce", "38ddeab13", "45e4067c0", "5f038991e", "abd5071d2", "b2ab06e02"]], "identity_text": "Avoid unwanted delay during shutdown of a logical replication walsender (Craig Ringer, Álvaro Herrera)", "commit_aliases": ["0d9fcbada", "1391c13ce", "38ddeab13", "45e4067c0", "5f038991e", "abd5071d2", "b2ab06e02"], "source_commits": ["1391c13ce"], "source_entry_id": "12.1/changes/025", "db_id": "823d796e301349805ab4d2ac9acbc490", "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6", "relations": [{"rule": 2, "type": "equivalent", "target": "09624a4b7d028d79469bd522109140be", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}}, {"rule": 2, "type": "equivalent", "target": "285efa4027b4403c87885822e031d662", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}}, {"rule": 2, "type": "equivalent", "target": "55db924fa4a72e2667fcd540c5f2ad31", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}}, {"rule": 2, "type": "equivalent", "target": "9d38fb0ff879db91f1511d933dadcfd1", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}}, {"rule": 2, "type": "equivalent", "target": "f69d528db1bdcb00d217b3b5a9ca45c0", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9d38fb0ff879db91f1511d933dadcfd1", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免逻辑复制 WAL 发送进程关闭期间出现不必要的延迟", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}, "url": "/docs/compare/?release=11.6#11.6-96d2529e0cf6e6a9", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "285efa4027b4403c87885822e031d662", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免逻辑复制 WAL 发送进程关闭期间出现不必要的延迟", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}, "url": "/docs/compare/?release=10.11#10.11-96d2529e0cf6e6a9", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "09624a4b7d028d79469bd522109140be", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "避免逻辑复制 walsender 关闭期间的不必要延迟", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}, "url": "/docs/compare/?release=9.6.16#9.6.16-ff881244eee2a94e", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "f69d528db1bdcb00d217b3b5a9ca45c0", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "避免逻辑复制 walsender 关闭期间的不必要延迟", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}, "url": "/docs/compare/?release=9.5.20#9.5.20-ff881244eee2a94e", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "55db924fa4a72e2667fcd540c5f2ad31", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "避免逻辑复制 walsender 关闭期间的不必要延迟", "evidence": {"same_day": true, "patch_ids": ["e55df08a6f9e29930aef6f293862575c"], "statement_hash": "9e7d15d882673512c3d1da08242816a71acc3100093a83564d9ded908580e8f6"}, "url": "/docs/compare/?release=9.4.25#9.4.25-ff881244eee2a94e", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-56812038d2a3fd33", "cves": [], "html": "<p>修复逻辑复制 WAL 接收进程进程中的超时处理（Julien Rouhaud）<a href=\"https://postgr.es/c/04510dbe3\">§</a></p>\n<p>错误的逻辑导致 <code>wal_receiver_timeout</code> 在逻辑复制部署中无法生效。</p>", "text": "修复逻辑复制 WAL 接收进程进程中的超时处理（Julien Rouhaud）§ 错误的逻辑导致 wal_receiver_timeout 在逻辑复制部署中无法生效。", "title": "修复逻辑复制 WAL 接收进程进程中的超时处理", "commits": ["04510dbe3"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "be8d73f5091fec1ab8fe07d032c9ea2b033008b6bdc6222717b134d59e6ecdbd", "section_path": ["变更"], "commit_groups": [["04510dbe3", "3f60f690f", "47698b4b6", "feed5ee47"]], "identity_text": "Fix timeout handling in logical replication walreceiver processes (Julien Rouhaud) Erroneous logic prevented wal_receiver_timeout from working in logical replication deployments.", "commit_aliases": ["04510dbe3", "3f60f690f", "47698b4b6", "feed5ee47"], "source_commits": ["04510dbe3"], "source_entry_id": "12.1/changes/026", "db_id": "2a67fc442c03ec0a39aa7808d14e5949", "patch_ids": ["cc72ae7102a19e896fdecfcbc78dd309"], "statement_hash": "c6b75de69d9fab56df13a79cf2259bca28a1a3ab5a0f813b64b525314f89a8db", "relations": [{"rule": 2, "type": "equivalent", "target": "cfda64c9fe8538dc456bd896d9b2e333", "evidence": {"same_day": true, "patch_ids": ["cc72ae7102a19e896fdecfcbc78dd309"], "statement_hash": "c6b75de69d9fab56df13a79cf2259bca28a1a3ab5a0f813b64b525314f89a8db"}}, {"rule": 2, "type": "equivalent", "target": "ff56738e5ba8ef1c477e180201af3e55", "evidence": {"same_day": true, "patch_ids": ["cc72ae7102a19e896fdecfcbc78dd309"], "statement_hash": "c6b75de69d9fab56df13a79cf2259bca28a1a3ab5a0f813b64b525314f89a8db"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cfda64c9fe8538dc456bd896d9b2e333", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复逻辑复制 WAL 接收进程进程中的超时处理", "evidence": {"same_day": true, "patch_ids": ["cc72ae7102a19e896fdecfcbc78dd309"], "statement_hash": "c6b75de69d9fab56df13a79cf2259bca28a1a3ab5a0f813b64b525314f89a8db"}, "url": "/docs/compare/?release=11.6#11.6-1fe602fb0c9ed956", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "ff56738e5ba8ef1c477e180201af3e55", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复逻辑复制 WAL 接收进程进程中的超时处理", "evidence": {"same_day": true, "patch_ids": ["cc72ae7102a19e896fdecfcbc78dd309"], "statement_hash": "c6b75de69d9fab56df13a79cf2259bca28a1a3ab5a0f813b64b525314f89a8db"}, "url": "/docs/compare/?release=10.11#10.11-1fe602fb0c9ed956", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}]}, {"id": "12.1-54e8617fa635fc6d", "cves": [], "html": "<p>为逻辑解码的复制消息正确添加时间戳（Jeff Janes）<a href=\"https://postgr.es/c/9ae4bdadf\">§</a></p>\n<p>例如，这一疏漏导致 <code>pg_stat_subscription</code>.<code>last_msg_send_time</code> 通常显示为 NULL。</p>", "text": "为逻辑解码的复制消息正确添加时间戳（Jeff Janes）§ 例如，这一疏漏导致 pg_stat_subscription.last_msg_send_time 通常显示为 NULL。", "title": "为逻辑解码的复制消息正确添加时间戳", "commits": ["9ae4bdadf"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "f34ab09337e32996ada0bb4c2f5499ca548b86e3a452fc9d045a78f142ad5ffc", "section_path": ["变更"], "commit_groups": [["15d90a02a", "16b43e091", "404d25f3c", "5f6b1eb0c", "9ae4bdadf", "cb6d7f985", "f7b0d0704"]], "identity_text": "Correctly time-stamp replication messages for logical decoding (Jeff Janes) This oversight resulted, for example, in pg_stat_subscription.last_msg_send_time usually reading as NULL.", "commit_aliases": ["15d90a02a", "16b43e091", "404d25f3c", "5f6b1eb0c", "9ae4bdadf", "cb6d7f985", "f7b0d0704"], "source_commits": ["9ae4bdadf"], "source_entry_id": "12.1/changes/027", "db_id": "3be07536ad9b2277d140c94c222b41c7", "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892", "relations": [{"rule": 2, "type": "equivalent", "target": "0b271fea6b0974ce6a01e39336dca929", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}}, {"rule": 2, "type": "equivalent", "target": "162cf51033c717d6a9cc67ff386a5c57", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}}, {"rule": 2, "type": "equivalent", "target": "3446fe6e4dee75dc2a6d3a7e1185dab1", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}}, {"rule": 2, "type": "equivalent", "target": "40cdffee03547d5befa5bcd7dabc89c3", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}}, {"rule": 2, "type": "equivalent", "target": "7021c91f732261c9b0c2649153458065", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "40cdffee03547d5befa5bcd7dabc89c3", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "为逻辑解码的复制消息正确添加时间戳", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}, "url": "/docs/compare/?release=11.6#11.6-e731126d1ce9f26f", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "162cf51033c717d6a9cc67ff386a5c57", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "为逻辑解码的复制消息正确添加时间戳", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}, "url": "/docs/compare/?release=10.11#10.11-e731126d1ce9f26f", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "0b271fea6b0974ce6a01e39336dca929", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "为逻辑解码正确地为复制消息打时间戳", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}, "url": "/docs/compare/?release=9.6.16#9.6.16-390265d6d1c8be8e", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "3446fe6e4dee75dc2a6d3a7e1185dab1", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "为逻辑解码正确地为复制消息打时间戳", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}, "url": "/docs/compare/?release=9.5.20#9.5.20-390265d6d1c8be8e", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "7021c91f732261c9b0c2649153458065", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "为逻辑解码正确地为复制消息打时间戳", "evidence": {"same_day": true, "patch_ids": ["5b20656ac352ea2c7191a936062f6972"], "statement_hash": "c19a57cff82ca689249668b69a120e07040fa5792d96387c02e4fccd81d6d892"}, "url": "/docs/compare/?release=9.4.25#9.4.25-390265d6d1c8be8e", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-6c90cfa8ba825249", "cves": [], "html": "<p>修复后端进程此前曾等待同步复制时，在退出期间发生的竞争条件（Dongming Liu）<a href=\"https://postgr.es/c/7b8c2de64\">§</a></p>", "text": "修复后端进程此前曾等待同步复制时，在退出期间发生的竞争条件（Dongming Liu）§", "title": "修复后端进程此前曾等待同步复制时，在退出期间发生的竞争条件", "commits": ["7b8c2de64"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "4a604906d60473ec9f9fd852c31ee1c1595f4f2d1ada327a0858b01fce715615", "section_path": ["变更"], "commit_groups": [["0927d0c25", "20345197f", "52684bc7d", "61f238392", "7b8c2de64", "b99bfc3c9", "f88f7206e"]], "identity_text": "Fix race condition during backend exit, when the backend process has previously waited for synchronous replication to occur (Dongming Liu)", "commit_aliases": ["0927d0c25", "20345197f", "52684bc7d", "61f238392", "7b8c2de64", "b99bfc3c9", "f88f7206e"], "source_commits": ["7b8c2de64"], "source_entry_id": "12.1/changes/028", "db_id": "a01ee12cafc2d030088ea21e537886ee", "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1", "relations": [{"rule": 2, "type": "equivalent", "target": "252e3bebcac161cd2a788bee45dbbf68", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}}, {"rule": 2, "type": "equivalent", "target": "31c3805880f27375b26c15d27836bd54", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}}, {"rule": 2, "type": "equivalent", "target": "4e314055a876588ca9d12be8b3c839e6", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}}, {"rule": 2, "type": "equivalent", "target": "8cc965a6c7b1379876e047ae6dbdc5a6", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}}, {"rule": 2, "type": "equivalent", "target": "eb3c8ddca3d37c6b609a8844f3b368ad", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "eb3c8ddca3d37c6b609a8844f3b368ad", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复后端进程此前曾等待同步复制时，在退出期间发生的竞争条件", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}, "url": "/docs/compare/?release=11.6#11.6-90492db584c32535", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "8cc965a6c7b1379876e047ae6dbdc5a6", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复后端进程此前曾等待同步复制时，在退出期间发生的竞争条件", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}, "url": "/docs/compare/?release=10.11#10.11-90492db584c32535", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "31c3805880f27375b26c15d27836bd54", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "修复后端进程此前等待过同步复制时，后端退出期间的竞态条件", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}, "url": "/docs/compare/?release=9.6.16#9.6.16-701e4597a418336c", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "252e3bebcac161cd2a788bee45dbbf68", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复后端进程此前等待过同步复制时，后端退出期间的竞态条件", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}, "url": "/docs/compare/?release=9.5.20#9.5.20-701e4597a418336c", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "4e314055a876588ca9d12be8b3c839e6", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复后端进程此前等待过同步复制时，后端退出期间的竞态条件", "evidence": {"same_day": true, "patch_ids": ["4b3ea7c4276af2c59b503f7435657beb"], "statement_hash": "3789d1d50180cb6be08ab86cf5c8349bfd117d62b04c3ab06b7281c5e26eebc1"}, "url": "/docs/compare/?release=9.4.25#9.4.25-701e4597a418336c", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-a58f485526548a94", "cves": [], "html": "<p>避免在使用 PAM 认证时记录有关已放弃连接的报错消息（Tom Lane）<a href=\"https://postgr.es/c/f9bd3b6d9\">§</a></p>\n<p>基于 libpq 的客户端在需要密码时通常会尝试连接两次，因为它们直到第一次连接尝试失败后才会提示用户输入密码。因此，服务器在客户端收到密码请求后关闭连接时，不会生成无用的日志消息。然而，PAM 认证代码没有遵循这一约定，会为实际上并未发生的认证失败生成多条消息。</p>", "text": "避免在使用 PAM 认证时记录有关已放弃连接的报错消息（Tom Lane）§ 基于 libpq 的客户端在需要密码时通常会尝试连接两次，因为它们直到第一次连接尝试失败后才会提示用户输入密码。因此，服务器在客户端收到密码请求后关闭连接时，不会生成无用的日志消息。然而，PAM 认证代码没有遵循这一约定，会为实际上并未发生的认证失败生成多条消息。", "title": "避免在使用 PAM 认证时记录有关已放弃连接的报错消息", "commits": ["f9bd3b6d9"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "b67ef0cf4bb08e65e5c0eab99de175a9d9cd4220d88594e38e464179dc51592c", "section_path": ["变更"], "commit_groups": [["0238a5028", "383602f9a", "3affe76ef", "762b25653", "970372037", "97ddc47b9", "f9bd3b6d9"]], "identity_text": "Avoid logging complaints about abandoned connections when using PAM authentication (Tom Lane) libpq-based clients will typically make two connection attempts when a password is required, since they don't prompt their user for a password until their first connection attempt fails. Therefore the server is coded not to generate useless log spam when a client closes the connection upon being asked for a password. However, the PAM authentication code hadn't gotten that memo, and would generate several messages about a phantom authentication failure.", "commit_aliases": ["0238a5028", "383602f9a", "3affe76ef", "762b25653", "970372037", "97ddc47b9", "f9bd3b6d9"], "source_commits": ["f9bd3b6d9"], "source_entry_id": "12.1/changes/029", "db_id": "4e3562f65e838457039869a2ea8d4f43", "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64", "relations": [{"rule": 2, "type": "equivalent", "target": "21738c6288ddbe93871d642b6a7eab9a", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}}, {"rule": 2, "type": "equivalent", "target": "2cdbc623a7314338e7308414a6d64af8", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}}, {"rule": 2, "type": "equivalent", "target": "649b888ac67da1c428bc4a931c4d7a3a", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}}, {"rule": 2, "type": "equivalent", "target": "ab75a00c1d4c744db8203ddd46fc32dc", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}}, {"rule": 2, "type": "equivalent", "target": "fddc39c7b2ccc6541d31f1838c6c31b6", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2cdbc623a7314338e7308414a6d64af8", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免在使用 PAM 认证时记录有关已放弃连接的报错消息", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}, "url": "/docs/compare/?release=11.6#11.6-c2b91157b41e84cc", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "ab75a00c1d4c744db8203ddd46fc32dc", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免在使用 PAM 认证时记录有关已放弃连接的报错消息", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}, "url": "/docs/compare/?release=10.11#10.11-c2b91157b41e84cc", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "fddc39c7b2ccc6541d31f1838c6c31b6", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "避免使用 PAM 认证时记录关于废弃连接的抱怨", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}, "url": "/docs/compare/?release=9.6.16#9.6.16-677495fe8337b66f", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "21738c6288ddbe93871d642b6a7eab9a", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "避免使用 PAM 认证时记录关于废弃连接的抱怨", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}, "url": "/docs/compare/?release=9.5.20#9.5.20-677495fe8337b66f", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "649b888ac67da1c428bc4a931c4d7a3a", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "避免使用 PAM 认证时记录关于废弃连接的抱怨", "evidence": {"same_day": true, "patch_ids": ["9e1aa7a240466d5c5bfb5b1b5fe5c0ad"], "statement_hash": "f7c9739fb7a42f1d1dc795c7b7b8fc2774be6248f728701017feabfd341abb64"}, "url": "/docs/compare/?release=9.4.25#9.4.25-677495fe8337b66f", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-47a035bc731f2d2c", "cves": [], "html": "<p>修复 <code>bitshiftright()</code> 的错误行为（Tom Lane）<a href=\"https://postgr.es/c/860216efa\">§</a> <a href=\"https://postgr.es/c/6c3b6406d\">§</a></p>\n<p>当位串长度不是 8 的倍数时，位串右移操作符未能将结果最后一个字节中的填充空间清零。虽然大多数操作看不到这些填充位，但其中任何非零位都会导致意外的比较行为，因为位串比较预期这些额外的位始终为零，并未特意忽略它们。</p>\n<p>如果由于将 <code>bitshiftright()</code> 的输出保存在表中而导致数据不一致，可以使用类似以下语句进行修复：</p>\n<pre>UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol);\n</pre>", "text": "修复 bitshiftright() 的错误行为（Tom Lane）§ § 当位串长度不是 8 的倍数时，位串右移操作符未能将结果最后一个字节中的填充空间清零。虽然大多数操作看不到这些填充位，但其中任何非零位都会导致意外的比较行为，因为位串比较预期这些额外的位始终为零，并未特意忽略它们。 如果由于将 bitshiftright() 的输出保存在表中而导致数据不一致，可以使用类似以下语句进行修复： UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol);", "title": "修复 bitshiftright() 的错误行为", "commits": ["6c3b6406d", "860216efa"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "ffb0d7bac4505a6adae770162ce3de84cbf370e932f5c62dd1a4fa0642e69470", "section_path": ["变更"], "commit_groups": [["096d34c3b", "35eb13270", "5ac0d9360", "6ddd164aa", "7e7abed05", "860216efa", "8a17afe84"], ["30e5b3bbe", "61aa9f544", "6c3b6406d", "8b77f783b", "9faa9794f", "b6a6c129f", "b8ddf0bdf"]], "identity_text": "Fix misbehavior of bitshiftright() (Tom Lane) The bitstring right shift operator failed to zero out padding space that exists in the last byte of the result when the bitstring length is not a multiple of 8. While invisible to most operations, any nonzero bits there would result in unexpected comparison behavior, since bitstring comparisons don't bother to ignore the extra bits, expecting them to always be zero. If you have inconsistent data as a result of saving the output of bitshiftright() in a table, it's possible to fix it with something like UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol);", "commit_aliases": ["096d34c3b", "30e5b3bbe", "35eb13270", "5ac0d9360", "61aa9f544", "6c3b6406d", "6ddd164aa", "7e7abed05", "860216efa", "8a17afe84", "8b77f783b", "9faa9794f", "b6a6c129f", "b8ddf0bdf"], "source_commits": ["6c3b6406d", "860216efa"], "source_entry_id": "12.1/changes/030", "db_id": "b3087a5cf08f5bd2809940a9b7fca7fe", "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f", "relations": [{"rule": 2, "type": "equivalent", "target": "256c5f9a61f3e86e84e844f9956eb853", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}}, {"rule": 2, "type": "equivalent", "target": "42d9304af3b1d055979da4409d578bd4", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}}, {"rule": 2, "type": "equivalent", "target": "5bb57a83dbd452f009809b6376428161", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}}, {"rule": 2, "type": "equivalent", "target": "b28c4dab180e3c439120ed5a9c176c4f", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}}, {"rule": 2, "type": "equivalent", "target": "b31f85a3ca08998a31dc57a7946f8561", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5bb57a83dbd452f009809b6376428161", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 bitshiftright() 的错误行为", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}, "url": "/docs/compare/?release=11.6#11.6-96e84644309a1b8c", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "b28c4dab180e3c439120ed5a9c176c4f", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 bitshiftright() 的错误行为", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}, "url": "/docs/compare/?release=10.11#10.11-96e84644309a1b8c", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "b31f85a3ca08998a31dc57a7946f8561", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "修复 bitshiftright() 的错误行为", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}, "url": "/docs/compare/?release=9.6.16#9.6.16-96e84644309a1b8c", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "256c5f9a61f3e86e84e844f9956eb853", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 bitshiftright() 的错误行为", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}, "url": "/docs/compare/?release=9.5.20#9.5.20-96e84644309a1b8c", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "42d9304af3b1d055979da4409d578bd4", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 bitshiftright() 的错误行为", "evidence": {"same_day": true, "patch_ids": ["645e773743ded66708bfdeed1cca150a", "80cc4b25f456fae0cb55503971e08d3c"], "statement_hash": "018dc62423a960f38f4e021a35d213e72a0e5646bed012cf2a6b496e0bd6b17f"}, "url": "/docs/compare/?release=9.4.25#9.4.25-96e84644309a1b8c", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-3b1362d8224ce0d9", "cves": [], "html": "<p>修复搜索字符串为空时，文本 <code>position()</code> 函数（也称为 <code>strpos()</code>）的结果（Tom Lane）<a href=\"https://postgr.es/c/43e43771b\">§</a></p>\n<p>按历史行为和 SQL 标准，这种情况下结果应为一，但 12.0 返回了零。</p>", "text": "修复搜索字符串为空时，文本 position() 函数（也称为 strpos()）的结果（Tom Lane）§ 按历史行为和 SQL 标准，这种情况下结果应为一，但 12.0 返回了零。", "title": "修复搜索字符串为空时，文本 position() 函数（也称为 strpos()）的结果", "commits": ["43e43771b"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "e58d4c9f14c314f4e25739e52a80a597501358630199663f4952730636fb0ffa", "section_path": ["变更"], "commit_groups": [["43e43771b", "bd1ef5799"]], "identity_text": "Fix result of text position() function (also known as strpos()) for an empty search string (Tom Lane) Historically, and per the SQL standard, the result should be one in such cases, but 12.0 returned zero.", "commit_aliases": ["43e43771b", "bd1ef5799"], "source_commits": ["43e43771b"], "source_entry_id": "12.1/changes/031", "db_id": "2216e9d90394efe3dab7383cf53df4cb", "patch_ids": ["cb4c8273ea50bc5988ab9f4e221f3316"], "statement_hash": "1c6ccbc727eb03889251f43d2f67ee59b0620d4535c49627000215c7d7806336", "relations": [], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-0282ed12e06cabde", "cves": [], "html": "<p>修复对间隔乘法中边界情况下整数溢出的检测（Yuya Watari）<a href=\"https://postgr.es/c/f6e72dc9c\">§</a></p>", "text": "修复对间隔乘法中边界情况下整数溢出的检测（Yuya Watari）§", "title": "修复对间隔乘法中边界情况下整数溢出的检测", "commits": ["f6e72dc9c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "6995f83c1c139da7b538f2785779b23fbe1813a99852013788b3e7479b358e3e", "section_path": ["变更"], "commit_groups": [["15783d057", "5f794f757", "84780d468", "8d380864a", "a7145f6bc", "b49b7f944", "f6e72dc9c"], ["18622caa3", "30f6998ff", "a55018760"]], "identity_text": "Fix detection of edge-case integer overflow in interval multiplication (Yuya Watari)", "commit_aliases": ["15783d057", "18622caa3", "30f6998ff", "5f794f757", "84780d468", "8d380864a", "a55018760", "a7145f6bc", "b49b7f944", "f6e72dc9c"], "source_commits": ["a55018760", "f6e72dc9c"], "source_entry_id": "12.1/changes/032", "db_id": "7d17e70514638e9934682dd4384e78b1", "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c", "relations": [{"rule": 2, "type": "equivalent", "target": "109a8cfa77f3b4114f60c8757e03e330", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}}, {"rule": 2, "type": "equivalent", "target": "17545ebb5db752cf1bb80acb0053f9b0", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}}, {"rule": 2, "type": "equivalent", "target": "4f905d06a5c25d4b8d28e94c2622d366", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}}, {"rule": 2, "type": "equivalent", "target": "aa81f2865b69a4270c2849c5addde2d9", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}}, {"rule": 2, "type": "equivalent", "target": "f33041de3179ff43aa931a193e8e70b2", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f33041de3179ff43aa931a193e8e70b2", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复对间隔乘法中边界情况下整数溢出的检测", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}, "url": "/docs/compare/?release=11.6#11.6-41c54874cae13df3", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "17545ebb5db752cf1bb80acb0053f9b0", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复对间隔乘法中边界情况下整数溢出的检测", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}, "url": "/docs/compare/?release=10.11#10.11-41c54874cae13df3", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "109a8cfa77f3b4114f60c8757e03e330", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "修复间隔乘法中边界整数溢出的检测", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}, "url": "/docs/compare/?release=9.6.16#9.6.16-80c9ece70aeff5f7", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "aa81f2865b69a4270c2849c5addde2d9", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复间隔乘法中边界整数溢出的检测", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}, "url": "/docs/compare/?release=9.5.20#9.5.20-80c9ece70aeff5f7", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "4f905d06a5c25d4b8d28e94c2622d366", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复间隔乘法中边界整数溢出的检测", "evidence": {"same_day": true, "patch_ids": ["6133e47aab47749c29b127f2f4a7bdf4", "908fa4f29f05192ee59958f469e36ce1"], "statement_hash": "7cdcf76c6bf97331d0630b099eab8609f4d7f07848a4458a40876333a5abf76c"}, "url": "/docs/compare/?release=9.4.25#9.4.25-80c9ece70aeff5f7", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-6ec3b334cd31d5fc", "cves": [], "html": "<p>避免 <code>ispell</code> 文本检索词典包含错误的词缀数据时发生崩溃（Arthur Zakirov）<a href=\"https://postgr.es/c/43753c2cf\">§</a> <a href=\"https://postgr.es/c/6dd92138d\">§</a></p>", "text": "避免 ispell 文本检索词典包含错误的词缀数据时发生崩溃（Arthur Zakirov）§ §", "title": "避免 ispell 文本检索词典包含错误的词缀数据时发生崩溃", "commits": ["43753c2cf", "6dd92138d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "77dd9dfeef0903ce62791dc9df82d07e78d5a6c7e55b661cd199d80f6c03ad3c", "section_path": ["变更"], "commit_groups": [["4077e9ae1", "6dd92138d", "88d03d73c", "d43bd9dce", "db27b60f0"], ["43753c2cf", "51b9ac558", "65cdf8bc1", "680aabd2f", "8af1624e3"]], "identity_text": "Avoid crashes if ispell text search dictionaries contain wrong affix data (Arthur Zakirov)", "commit_aliases": ["4077e9ae1", "43753c2cf", "51b9ac558", "65cdf8bc1", "680aabd2f", "6dd92138d", "88d03d73c", "8af1624e3", "d43bd9dce", "db27b60f0"], "source_commits": ["43753c2cf", "6dd92138d"], "source_entry_id": "12.1/changes/033", "db_id": "cd5a7bde0978c05f1d476792dd368370", "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7", "relations": [{"rule": 2, "type": "equivalent", "target": "1791c3680867811f4b490595463226c2", "evidence": {"same_day": true, "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7"}}, {"rule": 2, "type": "equivalent", "target": "283e2cd004db7bde323feb3bd8b79693", "evidence": {"same_day": true, "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7"}}, {"rule": 2, "type": "equivalent", "target": "b81d2600384e59e638afb38285986d44", "evidence": {"same_day": true, "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1791c3680867811f4b490595463226c2", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免 ispell 文本检索词典包含错误的词缀数据时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7"}, "url": "/docs/compare/?release=11.6#11.6-989b2e62585bafb6", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "b81d2600384e59e638afb38285986d44", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免 ispell 文本检索词典包含错误的词缀数据时发生崩溃", "evidence": {"same_day": true, "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7"}, "url": "/docs/compare/?release=10.11#10.11-989b2e62585bafb6", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "283e2cd004db7bde323feb3bd8b79693", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "避免 ispell 文本搜索词典包含错误词缀数据时崩溃", "evidence": {"same_day": true, "patch_ids": ["2c9b96677e11556a7792ed984631cb47", "b826b9f7eb56918dfcdb7195e9ec5423"], "statement_hash": "a74aaf28fd044c4e8cf2f3fd2663204115fe3b04176e102b771bee4ba2c81aa7"}, "url": "/docs/compare/?release=9.6.16#9.6.16-67382bc92991ea84", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}]}, {"id": "12.1-050cdb8abfa219f8", "cves": [], "html": "<p>避免清理 GiST 索引时发生内存泄漏（Dilip Kumar）<a href=\"https://postgr.es/c/62f4dd379\">§</a></p>", "text": "避免清理 GiST 索引时发生内存泄漏（Dilip Kumar）§", "title": "避免清理 GiST 索引时发生内存泄漏", "commits": ["62f4dd379"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "2d31adcac91cd8e906eff05559919fc950785eecabb59aa3d3ad8e602f23166a", "section_path": ["变更"], "commit_groups": [["62f4dd379", "70a6c37d5"]], "identity_text": "Avoid memory leak while vacuuming a GiST index (Dilip Kumar)", "commit_aliases": ["62f4dd379", "70a6c37d5"], "source_commits": ["62f4dd379"], "source_entry_id": "12.1/changes/034", "db_id": "d760b62974fd3051f55218f0a8177e4a", "patch_ids": ["4c115fe827afb228ce89e63a1387ad96"], "statement_hash": "f6bec5a45f30fe8c5320384406a952cfaa7a134199a5229061d4733acb1adff7", "relations": [], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-d61548fa25c77231", "cves": [], "html": "<p>在 Windows 上，识别 <span>“<span>Norwegian (Bokmål)</span>”</span> 区域设置名称的更多拼写形式（Tom Lane）<a href=\"https://postgr.es/c/4f2ad5226\">§</a></p>", "text": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域设置名称的更多拼写形式（Tom Lane）§", "title": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域设置名称的更多拼写形式", "commits": ["4f2ad5226"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "04c3d2daca07f5664a592b4ebf4aafbed0abea34e330a699da607a7b0d087b0d", "section_path": ["变更"], "commit_groups": [["185253ab8", "4f2ad5226", "a05a04d0e", "aebe3ef0e", "db477b691", "e3267407e", "fedcab352"]], "identity_text": "On Windows, recognize additional spellings of the Norwegian (Bokmål) locale name (Tom Lane)", "commit_aliases": ["185253ab8", "4f2ad5226", "a05a04d0e", "aebe3ef0e", "db477b691", "e3267407e", "fedcab352"], "source_commits": ["4f2ad5226"], "source_entry_id": "12.1/changes/035", "db_id": "225febe7c77dd58718ec5f3f63a0812d", "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5", "relations": [{"rule": 2, "type": "equivalent", "target": "26d29236bce72fa79bbb285e2ee96b25", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}}, {"rule": 2, "type": "equivalent", "target": "605dd65b38b1599763cf75961ffcd71b", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}}, {"rule": 2, "type": "equivalent", "target": "73495a6bf973b70836e3aca3f2c2ac51", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}}, {"rule": 2, "type": "equivalent", "target": "789cec58ca9f82e639ee2a2dae1500f0", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}}, {"rule": 2, "type": "equivalent", "target": "be67afb148dc3575454e6d95f868998f", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "be67afb148dc3575454e6d95f868998f", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域设置名称的更多拼写形式", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}, "url": "/docs/compare/?release=11.6#11.6-e87de571f41d73e4", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "605dd65b38b1599763cf75961ffcd71b", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域设置名称的更多拼写形式", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}, "url": "/docs/compare/?release=10.11#10.11-e87de571f41d73e4", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "73495a6bf973b70836e3aca3f2c2ac51", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域名的更多拼法", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}, "url": "/docs/compare/?release=9.6.16#9.6.16-42261f0150d2b4d2", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "789cec58ca9f82e639ee2a2dae1500f0", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域名的更多拼法", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}, "url": "/docs/compare/?release=9.5.20#9.5.20-42261f0150d2b4d2", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "26d29236bce72fa79bbb285e2ee96b25", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "在 Windows 上，识别 “Norwegian (Bokmål)” 区域名的更多拼法", "evidence": {"same_day": true, "patch_ids": ["b4d55cbc4d3eb09a21b712947fc01446"], "statement_hash": "6365cced4f4ad597334c45749ccad9c902fd71e380f4a88b6dc5f99475529bf5"}, "url": "/docs/compare/?release=9.4.25#9.4.25-42261f0150d2b4d2", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-b3bfdf50212bc594", "cves": [], "html": "<p>修复 <span>libpq</span>，使其允许整数参数的字符串值包含尾部空白（Michael Paquier）<a href=\"https://postgr.es/c/2b0f959b5\">§</a> <a href=\"https://postgr.es/c/a6a95d4f3\">§</a></p>\n<p>版本 12 加强了 <span>libpq</span> 对整数参数的验证，但禁止尾部空白似乎并不合适。</p>", "text": "修复 libpq，使其允许整数参数的字符串值包含尾部空白（Michael Paquier）§ § 版本 12 加强了 libpq 对整数参数的验证，但禁止尾部空白似乎并不合适。", "title": "修复 libpq，使其允许整数参数的字符串值包含尾部空白", "commits": ["2b0f959b5", "a6a95d4f3"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "227ce51121e957d5e0571bba13b3347d22b2e5b58a472c29884f5aa43317a463", "section_path": ["变更"], "commit_groups": [["2b0f959b5", "4f4061b2d"], ["57379cd5a", "a6a95d4f3"]], "identity_text": "Fix libpq to allow trailing whitespace in the string values of integer parameters (Michael Paquier) Version 12 tightened libpq's validation of integer parameters, but disallowing trailing whitespace seems undesirable.", "commit_aliases": ["2b0f959b5", "4f4061b2d", "57379cd5a", "a6a95d4f3"], "source_commits": ["2b0f959b5", "a6a95d4f3"], "source_entry_id": "12.1/changes/036", "db_id": "756be4af3d72176f92a32520620d788d", "patch_ids": ["5d94f1749888b2b97972a4e00e0c536c", "7239af6a7bc0deb26fbf98dd336d3caf"], "statement_hash": "68d9124f8eebed62ff17a91dc3e02c6a95ddddb2864b67ecc58b81c1042e3537", "relations": [], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-3c879b6dcf67d4be", "cves": [], "html": "<p>在 <span>libpq</span> 中，因 <code>connect_timeout</code> 参数值语法无效而失败后，正确报告 <code>CONNECTION_BAD</code> 连接状态（Lars Kanis）<a href=\"https://postgr.es/c/ed5109a61\">§</a></p>", "text": "在 libpq 中，因 connect_timeout 参数值语法无效而失败后，正确报告 CONNECTION_BAD 连接状态（Lars Kanis）§", "title": "在 libpq 中，因 connect_timeout 参数值语法无效而失败后，正确报告 CONNECTION_BAD 连接状态", "commits": ["ed5109a61"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "8d9ef04795cc41ed9f1de7030589be4d8c51ff44dff08cb6023585577abfda44", "section_path": ["变更"], "commit_groups": [["ba19a6b73", "ed5109a61"]], "identity_text": "In libpq, correctly report CONNECTION_BAD connection status after a failure caused by a syntactically invalid connect_timeout parameter value (Lars Kanis)", "commit_aliases": ["ba19a6b73", "ed5109a61"], "source_commits": ["ed5109a61"], "source_entry_id": "12.1/changes/037", "db_id": "b9de9f1b42ddf18127caed289bdf8138", "patch_ids": ["b36918144623fc0e1b040e7b0ba0b712"], "statement_hash": "b3e85a5cf541cfafdf137228167c5ffef69d954fc5218a5660fc1fc34d4bf7d6", "relations": [], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-ce7ebd43ab385df1", "cves": [], "html": "<p>避免 ECPG 客户端在定义了 <code>ENABLE_NLS</code> 的情况下包含 <code>ecpglib.h</code> 时编译失败（Tom Lane）<a href=\"https://postgr.es/c/101654987\">§</a></p>\n<p>这种风险由位置不当的声明造成：<code>ecpg_gettext()</code> 不应对客户端代码可见。</p>", "text": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败（Tom Lane）§ 这种风险由位置不当的声明造成：ecpg_gettext() 不应对客户端代码可见。", "title": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败", "commits": ["101654987"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "5bfcf2a94727dd41877db24bfb885d400c833fc5e4c0dd02e784668d3462ba4a", "section_path": ["变更"], "commit_groups": [["101654987", "831ca9513", "89f56fc22", "b20233aac", "b705d6391", "baa483984", "c8cb98ec4"]], "identity_text": "Avoid compile failure if an ECPG client includes ecpglib.h while having ENABLE_NLS defined (Tom Lane) This risk was created by a misplaced declaration: ecpg_gettext() should not be visible to client code.", "commit_aliases": ["101654987", "831ca9513", "89f56fc22", "b20233aac", "b705d6391", "baa483984", "c8cb98ec4"], "source_commits": ["101654987"], "source_entry_id": "12.1/changes/038", "db_id": "7c1586338ffd8d223fe0cc443839c9a1", "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2", "relations": [{"rule": 2, "type": "equivalent", "target": "0c91cb7342abc42045e66b2fc60220ea", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}}, {"rule": 2, "type": "equivalent", "target": "6334c89fa50cd261cfba8ec3ecea1e0d", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}}, {"rule": 2, "type": "equivalent", "target": "87efcb322eba2bcd3c5866c05efb7858", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}}, {"rule": 2, "type": "equivalent", "target": "b2e8debef48ea50941c0aca040f3f968", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}}, {"rule": 2, "type": "equivalent", "target": "cc36cdeec3fc81996f44d5aa3db09334", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0c91cb7342abc42045e66b2fc60220ea", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}, "url": "/docs/compare/?release=11.6#11.6-f502876330bb9416", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "cc36cdeec3fc81996f44d5aa3db09334", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}, "url": "/docs/compare/?release=10.11#10.11-f502876330bb9416", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "b2e8debef48ea50941c0aca040f3f968", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}, "url": "/docs/compare/?release=9.6.16#9.6.16-f502876330bb9416", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "87efcb322eba2bcd3c5866c05efb7858", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}, "url": "/docs/compare/?release=9.5.20#9.5.20-f502876330bb9416", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "6334c89fa50cd261cfba8ec3ecea1e0d", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "避免 ECPG 客户端在定义了 ENABLE_NLS 的情况下包含 ecpglib.h 时编译失败", "evidence": {"same_day": true, "patch_ids": ["4271d7cbf24fc433df10f32277f71586"], "statement_hash": "31feebda6c644e959d30a708c1b9ddb76fe72cec5499690660e97ed0843ba0e2"}, "url": "/docs/compare/?release=9.4.25#9.4.25-f502876330bb9416", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-438976e98ae2f00b", "cves": [], "html": "<p>修复分区表上外键约束的并行恢复调度（Álvaro Herrera）<a href=\"https://postgr.es/c/b304b2b65\">§</a></p>\n<p><span>pg_dump</span> 未能输出分区表外键的完整依赖信息。这可能让并行 <span>pg_restore</span> 过早地尝试重新创建外键约束。</p>", "text": "修复分区表上外键约束的并行恢复调度（Álvaro Herrera）§ pg_dump 未能输出分区表外键的完整依赖信息。这可能让并行 pg_restore 过早地尝试重新创建外键约束。", "title": "修复分区表上外键约束的并行恢复调度", "commits": ["b304b2b65"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "905c2702c790ab979170d7ac2eca093ed3c4b22f595626ef0a0cc8eb31748c0f", "section_path": ["变更"], "commit_groups": [["1752e3516", "b304b2b65"]], "identity_text": "Fix scheduling of parallel restore of a foreign key constraint on a partitioned table (Álvaro Herrera) pg_dump failed to emit full dependency information for partitioned tables' foreign keys. This could allow parallel pg_restore to try to recreate a foreign key constraint too soon.", "commit_aliases": ["1752e3516", "b304b2b65"], "source_commits": ["b304b2b65"], "source_entry_id": "12.1/changes/039", "db_id": "88a1c5e4a5c6c9fa58526357c4111d9c", "patch_ids": ["adeacf4df6acf3281f7e6f6e3a171d92"], "statement_hash": "83bd701e513b64b4ac350d22a82280d822783d79ad1981a01ba2a7b2d4b43c71", "relations": [], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-f86364d7db67984c", "cves": [], "html": "<p>在 <span>pg_dump</span> 中，确保名称相似的触发器和行级安全策略对象的输出顺序稳定（Benjie Gillam）<a href=\"https://postgr.es/c/ca27a84c9\">§</a></p>\n<p>以前，如果不同表上的两个触发器同名，它们会按 OID 排序，这不如按表名排序合适。RLS 策略也存在同样的问题。</p>", "text": "在 pg_dump 中，确保名称相似的触发器和行级安全策略对象的输出顺序稳定（Benjie Gillam）§ 以前，如果不同表上的两个触发器同名，它们会按 OID 排序，这不如按表名排序合适。RLS 策略也存在同样的问题。", "title": "在 pg_dump 中，确保名称相似的触发器和行级安全策略对象的输出顺序稳定", "commits": ["ca27a84c9"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "0f65b47b65b87507c697edc04487c7b51e771cb44112bbf43afd0a6a1be6b873", "section_path": ["变更"], "commit_groups": [["078f5bc8e", "5102f3944", "648f17879", "74d32ee70", "ca27a84c9", "da5cd7a68", "ee8b95f26"]], "identity_text": "In pg_dump, ensure stable output order for similarly-named triggers and row-level-security policy objects (Benjie Gillam) Previously, if two triggers on different tables had the same names, they would be sorted in OID-based order, which is less desirable than sorting them by table name. Likewise for RLS policies.", "commit_aliases": ["078f5bc8e", "5102f3944", "648f17879", "74d32ee70", "ca27a84c9", "da5cd7a68", "ee8b95f26"], "source_commits": ["ca27a84c9"], "source_entry_id": "12.1/changes/040", "db_id": "fa647ca113a1508559005eb20a936e44", "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913", "relations": [{"rule": 2, "type": "equivalent", "target": "1eb55e45430b0c45783250806e8815e0", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}}, {"rule": 2, "type": "equivalent", "target": "23135c2ddd64175efaa2b46647c07c11", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}}, {"rule": 2, "type": "equivalent", "target": "25bd821359a3753038ddadded63e6f3a", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}}, {"rule": 2, "type": "equivalent", "target": "921c2a7e63d27aaae4036e625c6887fd", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}}, {"rule": 2, "type": "equivalent", "target": "a8a5d43ed77e0081ab73103ceb2ae846", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "23135c2ddd64175efaa2b46647c07c11", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在 pg_dump 中，确保名称相似的触发器和行级安全策略对象的输出顺序稳定", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}, "url": "/docs/compare/?release=11.6#11.6-51c6c1ae1d07494b", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "921c2a7e63d27aaae4036e625c6887fd", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在 pg_dump 中，确保名称相似的触发器和行级安全策略对象的输出顺序稳定", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}, "url": "/docs/compare/?release=10.11#10.11-51c6c1ae1d07494b", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "25bd821359a3753038ddadded63e6f3a", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "在 pg_dump 中，确保同名触发器和行级安全策略对象的稳定输出顺序", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}, "url": "/docs/compare/?release=9.6.16#9.6.16-bd8167949664b141", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "1eb55e45430b0c45783250806e8815e0", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在 pg_dump 中，确保同名触发器和行级安全策略对象的稳定输出顺序", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}, "url": "/docs/compare/?release=9.5.20#9.5.20-bd8167949664b141", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "a8a5d43ed77e0081ab73103ceb2ae846", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "在 pg_dump 中，确保同名触发器和行级安全策略对象的稳定输出顺序", "evidence": {"same_day": true, "patch_ids": ["942313a05555b57ba0897a803f711227"], "statement_hash": "cda6c53c513e726a6397771aeafd5bec7d15381a61afc0f0239a83be49bb9913"}, "url": "/docs/compare/?release=9.4.25#9.4.25-bd8167949664b141", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-3bca93f5bb28ed2c", "cves": [], "html": "<p>在 <span>pg_upgrade</span> 中拒绝包含 <code>sql_identifier</code> 类型列的表，因为该类型在版本 12 中更改了表示形式（Tomas Vondra）<a href=\"https://postgr.es/c/eaf900e84\">§</a> <a href=\"https://postgr.es/c/702fd3b71\">§</a></p>", "text": "在 pg_upgrade 中拒绝包含 sql_identifier 类型列的表，因为该类型在版本 12 中更改了表示形式（Tomas Vondra）§ §", "title": "在 pg_upgrade 中拒绝包含 sql_identifier 类型列的表，因为该类型在版本 12 中更改了表示形式", "commits": ["702fd3b71", "eaf900e84"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "10a422c2fdf4dd0bedf8c5ca7b76528ac39f275db049c6d6ade60ab768ed938b", "section_path": ["变更"], "commit_groups": [["0ccfc2822", "eaf900e84"], ["3a0e85739", "702fd3b71"]], "identity_text": "In pg_upgrade, reject tables with columns of type sql_identifier, as that has changed representation in version 12 (Tomas Vondra)", "commit_aliases": ["0ccfc2822", "3a0e85739", "702fd3b71", "eaf900e84"], "source_commits": ["702fd3b71", "eaf900e84"], "source_entry_id": "12.1/changes/041", "db_id": "aba3448dc903118b1a052252c6bb0862", "patch_ids": ["04adf501cfddee72de0614f427c1be35", "1a792d3adaa5681cd308dcb4e1d89931"], "statement_hash": "4321bed3ebc32f6bc9ea043987e50934502a546e77cdd86325c2d1218fb65729", "relations": [], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-3bb64889a255ec2b", "cves": [], "html": "<p>改进 <span>pg_upgrade</span> 对使用了表示形式已变更的数据类型（如 <code>line</code>）的检查（Tomas Vondra）<a href=\"https://postgr.es/c/ebb4caa91\">§</a> <a href=\"https://postgr.es/c/a8e49ae0c\">§</a></p>\n<p>当所关注的数据类型是某个已存储域类型或复合类型列的底层类型时，以前的代码可能漏检。</p>", "text": "改进 pg_upgrade 对使用了表示形式已变更的数据类型（如 line）的检查（Tomas Vondra）§ § 当所关注的数据类型是某个已存储域类型或复合类型列的底层类型时，以前的代码可能漏检。", "title": "改进 pg_upgrade 对使用了表示形式已变更的数据类型（如 line）的检查", "commits": ["a8e49ae0c", "ebb4caa91"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "f6786d49c71026969481a22463b4d5a9cf80113fef052a7dd9b26c749510e0da", "section_path": ["变更"], "commit_groups": [["0a643de08", "2218fdca4", "235a52ca0", "8d48e6a72", "a970b6cde", "ebb4caa91", "f57b01dd7"], ["984aa0ede", "bc3a94dc0", "e09ab32a2"], ["a524f50d0", "a8e49ae0c", "d071a2539", "e86ece221"]], "identity_text": "Improve pg_upgrade's checks for the use of a data type that has changed representation, such as line (Tomas Vondra) The previous coding could be fooled by cases where the data type of interest underlies a stored column of a domain or composite type.", "commit_aliases": ["0a643de08", "2218fdca4", "235a52ca0", "8d48e6a72", "984aa0ede", "a524f50d0", "a8e49ae0c", "a970b6cde", "bc3a94dc0", "d071a2539", "e09ab32a2", "e86ece221", "ebb4caa91", "f57b01dd7"], "source_commits": ["a8e49ae0c", "e09ab32a2", "ebb4caa91"], "source_entry_id": "12.1/changes/042", "db_id": "00e22fc3b19209ebf05ca425b9ea27ba", "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb", "relations": [{"rule": 2, "type": "equivalent", "target": "072900c922faab2411c7ca0e25dc834b", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}}, {"rule": 2, "type": "equivalent", "target": "c6dbec348b8c1f9ac693d8cfecf5b92e", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}}, {"rule": 2, "type": "equivalent", "target": "ca14a9b1b159c7912770289654a6f0b9", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}}, {"rule": 2, "type": "equivalent", "target": "dc3f72604090aa81b343e5c1103d3d82", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}}, {"rule": 2, "type": "equivalent", "target": "f5f7037586fa92a8bf4ff4d15a9afea2", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c6dbec348b8c1f9ac693d8cfecf5b92e", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "改进 pg_upgrade 对使用了表示形式已变更的数据类型（如 line）的检查", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}, "url": "/docs/compare/?release=11.6#11.6-32c01997a9104b98", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "dc3f72604090aa81b343e5c1103d3d82", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "改进 pg_upgrade 对使用了表示形式已变更的数据类型（如 line）的检查", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}, "url": "/docs/compare/?release=10.11#10.11-32c01997a9104b98", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "072900c922faab2411c7ca0e25dc834b", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "改进 pg_upgrade 对使用表示已更改的数据类型（如 line）的检查", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}, "url": "/docs/compare/?release=9.6.16#9.6.16-330be4324045f5cd", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "f5f7037586fa92a8bf4ff4d15a9afea2", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "改进 pg_upgrade 对使用表示已更改的数据类型（如 line）的检查", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}, "url": "/docs/compare/?release=9.5.20#9.5.20-330be4324045f5cd", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "ca14a9b1b159c7912770289654a6f0b9", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "改进 pg_upgrade 对使用表示已更改的数据类型（如 line）的检查", "evidence": {"same_day": true, "patch_ids": ["0e623a704a7e6eb0fc8d588ecdb76af5", "199f05d03ba135f80467a01b7586ee3c", "64e1457e23cab5d9aa9fd7e39ad09645"], "statement_hash": "270077457021aa52ded0d5d6bc4e1f642f17f2bf5810b6cb9111f6006f565dbb"}, "url": "/docs/compare/?release=9.4.25#9.4.25-330be4324045f5cd", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-363be92f4ceb0b6a", "cves": [], "html": "<p>在带有 <code>--dry-run</code> 选项的 <span>pg_rewind</span> 中，避免更新 <code>pg_control</code>（Alexey Kondratov）<a href=\"https://postgr.es/c/c2e3b311d\">§</a></p>\n<p>这可能导致之后的 <span>pg_rewind</span> 尝试失败。</p>", "text": "在带有 --dry-run 选项的 pg_rewind 中，避免更新 pg_control（Alexey Kondratov）§ 这可能导致之后的 pg_rewind 尝试失败。", "title": "在带有 --dry-run 选项的 pg_rewind 中，避免更新 pg_control", "commits": ["c2e3b311d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "241fbaa33518276f01b80e7a572593c6c0383d6642e88ec0be0961a469fdf4e8", "section_path": ["变更"], "commit_groups": [["6f3823b03", "c2e3b311d"]], "identity_text": "In pg_rewind with the --dry-run option, avoid updating pg_control (Alexey Kondratov) This could lead to failures in subsequent pg_rewind attempts.", "commit_aliases": ["6f3823b03", "c2e3b311d"], "source_commits": ["c2e3b311d"], "source_entry_id": "12.1/changes/043", "db_id": "4bc094599788ccef2a105c73648fafa4", "patch_ids": ["a4b7dbb55d7d3bbe61283e600002866c"], "statement_hash": "5d54fd95b6e6688ceb1d4b450a2f93e49d0cf69040901672dde206ab1063a68b", "relations": [], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-fe030c8bef799a16", "cves": [], "html": "<p>修复使用 <code>-s</code> 选项时，延续的 WAL 记录恰好在页面边界处结束导致 <span>pg_waldump</span> 失败的问题（Andrey Lepikhov）<a href=\"https://postgr.es/c/e5cfb8cbb\">§</a></p>", "text": "修复使用 -s 选项时，延续的 WAL 记录恰好在页面边界处结束导致 pg_waldump 失败的问题（Andrey Lepikhov）§", "title": "修复使用 -s 选项时，延续的 WAL 记录恰好在页面边界处结束导致 pg_waldump 失败的问题", "commits": ["e5cfb8cbb"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "6e833cf2f8de3350e12c8d57143e2006cf2b22e64152c62dcc6db34676b691f5", "section_path": ["变更"], "commit_groups": [["127ad57f5", "1accf9974", "a0c96856e", "aa7cd6a8e", "b1bebc2ce", "e5cfb8cbb", "fb53c4c07"]], "identity_text": "Fix failure in pg_waldump with the -s option, when a continuation WAL record ends exactly at a page boundary (Andrey Lepikhov)", "commit_aliases": ["127ad57f5", "1accf9974", "a0c96856e", "aa7cd6a8e", "b1bebc2ce", "e5cfb8cbb", "fb53c4c07"], "source_commits": ["e5cfb8cbb"], "source_entry_id": "12.1/changes/044", "db_id": "c1c6b5f65ea570a78790482b40d232d5", "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272", "relations": [{"rule": 2, "type": "equivalent", "target": "2369fe2c2a869184066de21b760a4519", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}}, {"rule": 2, "type": "equivalent", "target": "4970c4c81427d42399ce716c0f0f4018", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}}, {"rule": 2, "type": "equivalent", "target": "574a674aabeb09a243b13790922c5efa", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}}, {"rule": 2, "type": "equivalent", "target": "a2dc04935e730e361e88365cbe325fda", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}}, {"rule": 2, "type": "equivalent", "target": "e110397ffcad28e37fd7a3608aa6799f", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2dc04935e730e361e88365cbe325fda", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复使用 -s 选项时，延续的 WAL 记录恰好在页面边界处结束导致 pg_waldump 失败的问题", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}, "url": "/docs/compare/?release=11.6#11.6-f944d1f887e85779", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "2369fe2c2a869184066de21b760a4519", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复使用 -s 选项时，延续的 WAL 记录恰好在页面边界处结束导致 pg_waldump 失败的问题", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}, "url": "/docs/compare/?release=10.11#10.11-f944d1f887e85779", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "e110397ffcad28e37fd7a3608aa6799f", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "修复 pg_waldump 使用 -s 选项且延续 WAL 记录恰好在页边界结束时失败的问题", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}, "url": "/docs/compare/?release=9.6.16#9.6.16-cdcc327d2292fd7b", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "574a674aabeb09a243b13790922c5efa", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 pg_waldump 使用 -s 选项且延续 WAL 记录恰好在页边界结束时失败的问题", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}, "url": "/docs/compare/?release=9.5.20#9.5.20-cdcc327d2292fd7b", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "4970c4c81427d42399ce716c0f0f4018", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 pg_waldump 使用 -s 选项且延续 WAL 记录恰好在页边界结束时失败的问题", "evidence": {"same_day": true, "patch_ids": ["b228afe783c311b1b43ff90892a58071"], "statement_hash": "302d2abc8965cf0a3067b66c0e6a3c7efc31898b6f47fa1d7f7139557bff6272"}, "url": "/docs/compare/?release=9.4.25#9.4.25-cdcc327d2292fd7b", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-802ccc60cd2e6372", "cves": [], "html": "<p>在使用 <code>--bkp-details</code> 选项的 <span>pg_waldump</span> 中，避免为涉及整页写入的 WAL 记录输出多余换行（Andres Freund）<a href=\"https://postgr.es/c/d4b5206b2\">§</a></p>", "text": "在使用 --bkp-details 选项的 pg_waldump 中，避免为涉及整页写入的 WAL 记录输出多余换行（Andres Freund）§", "title": "在使用 --bkp-details 选项的 pg_waldump 中，避免为涉及整页写入的 WAL 记录输出多余换行", "commits": ["d4b5206b2"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "1848ccb0605ed3b25adc80b250e5f8b4db3e195bdf57ebdfa6b94c68f94567da", "section_path": ["变更"], "commit_groups": [["39ff656a4", "3b24cf732", "82200115e", "bc4f56c18", "d4b5206b2", "e4d92126f"]], "identity_text": "In pg_waldump with the --bkp-details option, avoid emitting extra newlines for WAL records involving full-page writes (Andres Freund)", "commit_aliases": ["39ff656a4", "3b24cf732", "82200115e", "bc4f56c18", "d4b5206b2", "e4d92126f"], "source_commits": ["d4b5206b2"], "source_entry_id": "12.1/changes/045", "db_id": "fa7ad1b2c24010480c51f3d6c8be8177", "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe", "relations": [{"rule": 2, "type": "equivalent", "target": "0ddb02cd224fddc4143cc8006506daa7", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}}, {"rule": 2, "type": "equivalent", "target": "39a40a49fbfc72bf4e2832f9482e8b98", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}}, {"rule": 2, "type": "equivalent", "target": "85bd35d0a4872ff79b6f95987143b35a", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}}, {"rule": 2, "type": "equivalent", "target": "fb99b80b398327ae1c20cc6ea034ca09", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0ddb02cd224fddc4143cc8006506daa7", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在使用 --bkp-details 选项的 pg_waldump 中，避免为涉及整页写入的 WAL 记录输出多余换行", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}, "url": "/docs/compare/?release=11.6#11.6-87aa18b745d498ab", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "85bd35d0a4872ff79b6f95987143b35a", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在使用 --bkp-details 选项的 pg_waldump 中，避免为涉及整页写入的 WAL 记录输出多余换行", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}, "url": "/docs/compare/?release=10.11#10.11-87aa18b745d498ab", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "fb99b80b398327ae1c20cc6ea034ca09", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "在 pg_waldump 使用 --bkp-details 选项时，避免为涉及整页写入的 WAL 记录输出多余换行", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}, "url": "/docs/compare/?release=9.6.16#9.6.16-703092ca61cbd873", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "39a40a49fbfc72bf4e2832f9482e8b98", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在 pg_waldump 使用 --bkp-details 选项时，避免为涉及整页写入的 WAL 记录输出多余换行", "evidence": {"same_day": true, "patch_ids": ["cea33ab4e8e96096259e175035dab32c"], "statement_hash": "01728d61f09903915b2a45d3a3dabe6dbedbe7e078a6313a0ec9b927b207dcfe"}, "url": "/docs/compare/?release=9.5.20#9.5.20-703092ca61cbd873", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "12.1-cd3ed8b41b409a46", "cves": [], "html": "<p>修复 <span>pg_waldump</span> 中少量的内存泄漏（Andres Freund）<a href=\"https://postgr.es/c/4ab353c47\">§</a></p>", "text": "修复 pg_waldump 中少量的内存泄漏（Andres Freund）§", "title": "修复 pg_waldump 中少量的内存泄漏", "commits": ["4ab353c47"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "a8a964575b9acfcd734a2bb7b8fc34fed5cb09fbd6728d76b855ca96923fe133", "section_path": ["变更"], "commit_groups": [["4ab353c47", "95f2efd50", "af67aee69", "c3882f8b8", "e0f76f204", "e3ff8c360"]], "identity_text": "Fix small memory leak in pg_waldump (Andres Freund)", "commit_aliases": ["4ab353c47", "95f2efd50", "af67aee69", "c3882f8b8", "e0f76f204", "e3ff8c360"], "source_commits": ["4ab353c47"], "source_entry_id": "12.1/changes/046", "db_id": "bebccf73c4af811901025375ccdfbebd", "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513", "relations": [{"rule": 2, "type": "equivalent", "target": "004531c58099418b981264409ffab976", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}}, {"rule": 2, "type": "equivalent", "target": "1460ba3faf2cd8d16684769788c3075a", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}}, {"rule": 2, "type": "equivalent", "target": "3872e4058f1918ff68c2e88e1098e7b4", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}}, {"rule": 2, "type": "equivalent", "target": "b16a64bdaeba1cc341e7fd8a07edced3", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1460ba3faf2cd8d16684769788c3075a", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 pg_waldump 中少量的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}, "url": "/docs/compare/?release=11.6#11.6-107c61d847951e1e", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "3872e4058f1918ff68c2e88e1098e7b4", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 pg_waldump 中少量的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}, "url": "/docs/compare/?release=10.11#10.11-107c61d847951e1e", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "b16a64bdaeba1cc341e7fd8a07edced3", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "修复 pg_waldump 中的小内存泄漏", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}, "url": "/docs/compare/?release=9.6.16#9.6.16-378787a10a1c8093", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "004531c58099418b981264409ffab976", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 pg_waldump 中的小内存泄漏", "evidence": {"same_day": true, "patch_ids": ["45bc406d2f100371b2941471e0b0b54e"], "statement_hash": "67fcd239598e1e156ee1c8a966633149eaaca4043e732f859d0dafb16f0a8513"}, "url": "/docs/compare/?release=9.5.20#9.5.20-378787a10a1c8093", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}]}, {"id": "12.1-1d236a7f8e383809", "cves": [], "html": "<p>恢复将 <code>pqsignal()</code> 作为 <span>libpq</span> 的导出符号（Tom Lane）<a href=\"https://postgr.es/c/7ed1bcaed\">§</a></p>\n<p>此前移除此函数的理由是客户端都不应使用它，但事实证明，这会使很旧版本的 <span>psql</span> 无法使用当前的 <span>libpq</span>，也可能影响其他应用。</p>", "text": "恢复将 pqsignal() 作为 libpq 的导出符号（Tom Lane）§ 此前移除此函数的理由是客户端都不应使用它，但事实证明，这会使很旧版本的 psql 无法使用当前的 libpq，也可能影响其他应用。", "title": "恢复将 pqsignal() 作为 libpq 的导出符号", "commits": ["7ed1bcaed"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "cbf347b4520f26010c324a15c07df73aafb9ac80f38d88fb583b290f41db9544", "section_path": ["变更"], "commit_groups": [["06a367c38", "7ed1bcaed"]], "identity_text": "Put back pqsignal() as an exported libpq symbol (Tom Lane) This function was removed on the grounds that no clients should be using it, but that turns out to break usage of current libpq with very old versions of psql, and perhaps other applications.", "commit_aliases": ["06a367c38", "7ed1bcaed"], "source_commits": ["7ed1bcaed"], "source_entry_id": "12.1/changes/047", "db_id": "f46f478dae43046bf2685ae481352115", "patch_ids": ["538f3731929efb5ed7bd727ae693fd33"], "statement_hash": "98c939966fa696835f3fe337118b1f2416fc193500506bde5807ce95972a0466", "relations": [], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "12.1-99f6039b4eeef498", "cves": [], "html": "<p>修复 <span>configure</span> 对 libperl 是否存在的测试，使其适用于近期的 Red Hat 发行版（Tom Lane）<a href=\"https://postgr.es/c/ca658c91a\">§</a> <a href=\"https://postgr.es/c/aa5bb828a\">§</a></p>\n<p>以前，如果用户将 <code>CFLAGS</code> 设置为 <code>-O0</code>，此测试可能失败。</p>", "text": "修复 configure 对 libperl 是否存在的测试，使其适用于近期的 Red Hat 发行版（Tom Lane）§ § 以前，如果用户将 CFLAGS 设置为 -O0，此测试可能失败。", "title": "修复 configure 对 libperl 是否存在的测试，使其适用于近期的 Red Hat 发行版", "commits": ["aa5bb828a", "ca658c91a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "3e251f8728484a0e8cd28edf8ad3e6e4fe43a3205e8d97489ad933c6d0ee9809", "section_path": ["变更"], "commit_groups": [["11330c311", "44273ce4f", "62ca50ad7", "727c2ccfe", "99c51d5ed", "aa5bb828a", "e167b1ae3"], ["328b81348", "34621cb12", "4e19bd41d", "6d2b18d07", "8835e0bd4", "ca658c91a", "d995fd667"]], "identity_text": "Fix configure's test for presence of libperl so that it works on recent Red Hat releases (Tom Lane) Previously, it could fail if the user sets CFLAGS to -O0.", "commit_aliases": ["11330c311", "328b81348", "34621cb12", "44273ce4f", "4e19bd41d", "62ca50ad7", "6d2b18d07", "727c2ccfe", "8835e0bd4", "99c51d5ed", "aa5bb828a", "ca658c91a", "d995fd667", "e167b1ae3"], "source_commits": ["aa5bb828a", "ca658c91a"], "source_entry_id": "12.1/changes/048", "db_id": "e65a0bcc76d2449ccb89d3f468ee1eff", "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451", "relations": [{"rule": 2, "type": "equivalent", "target": "212dc5fe34c06a25c876b16b320e5689", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}}, {"rule": 2, "type": "equivalent", "target": "25d5d7c59f2689f4c06c495b36e8d802", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}}, {"rule": 2, "type": "equivalent", "target": "725903f3b8afeb5774cf49246f3755a9", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}}, {"rule": 2, "type": "equivalent", "target": "75230e6bbe167a096994950e2e09aadf", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}}, {"rule": 2, "type": "equivalent", "target": "c7cf81b808f75cf9c89123e47accd94d", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "25d5d7c59f2689f4c06c495b36e8d802", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 configure 对 libperl 是否存在的测试，使其适用于近期的 Red Hat 发行版", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}, "url": "/docs/compare/?release=11.6#11.6-dceb1e7c16b596f4", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "75230e6bbe167a096994950e2e09aadf", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 configure 对 libperl 是否存在的测试，使其适用于近期的 Red Hat 发行版", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}, "url": "/docs/compare/?release=10.11#10.11-dceb1e7c16b596f4", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "212dc5fe34c06a25c876b16b320e5689", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "修复 configure 的 libperl 存在性测试，使其在最近的 Red Hat 版本上工作", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}, "url": "/docs/compare/?release=9.6.16#9.6.16-4b66ce1846ba7cfe", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "725903f3b8afeb5774cf49246f3755a9", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 configure 的 libperl 存在性测试，使其在最近的 Red Hat 版本上工作", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}, "url": "/docs/compare/?release=9.5.20#9.5.20-4b66ce1846ba7cfe", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "c7cf81b808f75cf9c89123e47accd94d", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 configure 的 libperl 存在性测试，使其在最近的 Red Hat 版本上工作", "evidence": {"same_day": true, "patch_ids": ["446147c285dc903dc3e4faf62644ce57", "6f6aa2e2923a811aa937c950e3174c37"], "statement_hash": "51afeab0645fe6584ab15ccc885ccc13c3eac17780ec49fd2b35619f90f68451"}, "url": "/docs/compare/?release=9.4.25#9.4.25-4b66ce1846ba7cfe", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-afaf21c56e603ca4", "cves": [], "html": "<p>确保为 PowerPC 上的自旋锁生成正确的代码（Noah Misch）<a href=\"https://postgr.es/c/ef13f914e\">§</a></p>\n<p>以前的自旋锁代码允许编译器为不接受零号寄存器的汇编指令选择该寄存器，导致构建失败。我们仅见过一份很久以前的报告与此缺陷吻合，但它可能给尝试构建修改过的 <span>PostgreSQL</span> 代码或使用非常规编译器选项的用户带来问题。</p>", "text": "确保为 PowerPC 上的自旋锁生成正确的代码（Noah Misch）§ 以前的自旋锁代码允许编译器为不接受零号寄存器的汇编指令选择该寄存器，导致构建失败。我们仅见过一份很久以前的报告与此缺陷吻合，但它可能给尝试构建修改过的 PostgreSQL 代码或使用非常规编译器选项的用户带来问题。", "title": "确保为 PowerPC 上的自旋锁生成正确的代码", "commits": ["ef13f914e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "b840ba13528d33cabe75db24cd72372d61abb1eda68b9ba69392255f328aacf9", "section_path": ["变更"], "commit_groups": [["083929372", "09d74aef3", "62e881946", "89b4d7744", "930787c7f", "af4477b00", "ef13f914e"]], "identity_text": "Ensure correct code generation for spinlocks on PowerPC (Noah Misch) The previous spinlock coding allowed the compiler to select register zero for use with an assembly instruction that does not accept that register, causing a build failure. We have seen only one long-ago report that matches this bug, but it could cause problems for people trying to build modified PostgreSQL code or use atypical compiler options.", "commit_aliases": ["083929372", "09d74aef3", "62e881946", "89b4d7744", "930787c7f", "af4477b00", "ef13f914e"], "source_commits": ["ef13f914e"], "source_entry_id": "12.1/changes/049", "db_id": "30f686bb56c6183a946651745f6076b2", "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994", "relations": [{"rule": 2, "type": "equivalent", "target": "2aa3efae39f2f031a040399699d14a89", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}}, {"rule": 2, "type": "equivalent", "target": "2c2c8ac71213410432d41370129ec1b1", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}}, {"rule": 2, "type": "equivalent", "target": "4f9266e65955529ae7ace087cf3c8721", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}}, {"rule": 2, "type": "equivalent", "target": "7814bc4e330e8e50c0034a932fc6bed3", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}}, {"rule": 2, "type": "equivalent", "target": "c4af76c82f44bec31f14ff0296b77b40", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2aa3efae39f2f031a040399699d14a89", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "确保为 PowerPC 上的自旋锁生成正确的代码", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}, "url": "/docs/compare/?release=11.6#11.6-72f6d5016fe849da", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "7814bc4e330e8e50c0034a932fc6bed3", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "确保为 PowerPC 上的自旋锁生成正确的代码", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}, "url": "/docs/compare/?release=10.11#10.11-72f6d5016fe849da", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "c4af76c82f44bec31f14ff0296b77b40", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "确保 PowerPC 上自旋锁的正确代码生成", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}, "url": "/docs/compare/?release=9.6.16#9.6.16-8e03bd160d038d58", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "4f9266e65955529ae7ace087cf3c8721", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "确保 PowerPC 上自旋锁的正确代码生成", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}, "url": "/docs/compare/?release=9.5.20#9.5.20-8e03bd160d038d58", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "2c2c8ac71213410432d41370129ec1b1", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "确保 PowerPC 上自旋锁的正确代码生成", "evidence": {"same_day": true, "patch_ids": ["9e49644de8f316d79e920bb5c0ebf3b5"], "statement_hash": "fdd4a033e7ba3da61f1339c7ba266b5f8e802311fc4b0c72df81a5ede463a994"}, "url": "/docs/compare/?release=9.4.25#9.4.25-8e03bd160d038d58", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-95ff6454bde5ffe3", "cves": [], "html": "<p>在 AIX 上不再使用编译器选项 <code>-qsrcmsg</code>（Noah Misch）<a href=\"https://postgr.es/c/3fb14cfcb\">§</a></p>\n<p>这避免了 xlc v16.1.0 的内部编译器错误，除了改变编译器错误消息的格式之外，几乎没有其他影响。</p>", "text": "在 AIX 上不再使用编译器选项 -qsrcmsg（Noah Misch）§ 这避免了 xlc v16.1.0 的内部编译器错误，除了改变编译器错误消息的格式之外，几乎没有其他影响。", "title": "在 AIX 上不再使用编译器选项 -qsrcmsg", "commits": ["3fb14cfcb"], "section": "变更", "category": "improvement", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "b75905a63fb87b8b62863142f464ef6d1a2d3d4a87398ee02122a78e0ff721e1", "section_path": ["变更"], "commit_groups": [["3fb14cfcb", "5f3d271d0", "77cc4a595", "b705582b4", "c73f4f680", "e40eb31c0", "e5b4926ef"]], "identity_text": "On AIX, don't use the compiler option -qsrcmsg (Noah Misch) This avoids an internal compiler error with xlc v16.1.0, with little consequence other than changing the format of compiler error messages.", "commit_aliases": ["3fb14cfcb", "5f3d271d0", "77cc4a595", "b705582b4", "c73f4f680", "e40eb31c0", "e5b4926ef"], "source_commits": ["3fb14cfcb"], "source_entry_id": "12.1/changes/050", "db_id": "5ff20ba9783100b29d6a950489beaf5c", "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c", "relations": [{"rule": 2, "type": "equivalent", "target": "416b05485065dc8bf461bb9a38cea5d5", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}}, {"rule": 2, "type": "equivalent", "target": "760aa42d630d7db3ee283c2c1bf4e8a4", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}}, {"rule": 2, "type": "equivalent", "target": "822c329930f6839fd4e003bb6199daad", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}}, {"rule": 2, "type": "equivalent", "target": "d96568514755bd9c64b47ceb2569ea10", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}}, {"rule": 2, "type": "equivalent", "target": "e1709c0b2254841b5b2e038b0d095cd0", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}}], "version": "12.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e1709c0b2254841b5b2e038b0d095cd0", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "在 AIX 上不再使用编译器选项 -qsrcmsg", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}, "url": "/docs/compare/?release=11.6#11.6-fd088abedec41d3c", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "d96568514755bd9c64b47ceb2569ea10", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "在 AIX 上不再使用编译器选项 -qsrcmsg", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}, "url": "/docs/compare/?release=10.11#10.11-fd088abedec41d3c", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "822c329930f6839fd4e003bb6199daad", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "在 AIX 上，不使用编译器选项 -qsrcmsg", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}, "url": "/docs/compare/?release=9.6.16#9.6.16-661671e4f6b6f300", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "760aa42d630d7db3ee283c2c1bf4e8a4", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "在 AIX 上，不使用编译器选项 -qsrcmsg", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}, "url": "/docs/compare/?release=9.5.20#9.5.20-661671e4f6b6f300", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "416b05485065dc8bf461bb9a38cea5d5", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "在 AIX 上，不使用编译器选项 -qsrcmsg", "evidence": {"same_day": true, "patch_ids": ["1599bea98b7d92f4dc430eb31aab3c06"], "statement_hash": "0435870f8b6f137509a3cee94109abae59caa3c0c4b218a4acb90dcba10d8b6c"}, "url": "/docs/compare/?release=9.4.25#9.4.25-661671e4f6b6f300", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}, {"id": "12.1-e3ccc580f9073809", "cves": [], "html": "<p>修复 MSVC 构建过程，使其能够处理 OpenSSL 文件路径中的空格（Andrew Dunstan）<a href=\"https://postgr.es/c/ec38d2311\">§</a></p>", "text": "修复 MSVC 构建过程，使其能够处理 OpenSSL 文件路径中的空格（Andrew Dunstan）§", "title": "修复 MSVC 构建过程，使其能够处理 OpenSSL 文件路径中的空格", "commits": ["ec38d2311"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/12.1/#id-1.11.6.27.5", "source_hash": "af641bb2864b7a0751b79315ad22e6610997e72b1b8d2d7acf66072fb7b4794e", "section_path": ["变更"], "commit_groups": [["1e9a0487d", "3b9c22700", "62d2caed6", "6ca51b155", "8f8809091", "ad7595b89", "ec38d2311"]], "identity_text": "Fix MSVC build process to cope with spaces in the file path of OpenSSL (Andrew Dunstan)", "commit_aliases": ["1e9a0487d", "3b9c22700", "62d2caed6", "6ca51b155", "8f8809091", "ad7595b89", "ec38d2311"], "source_commits": ["ec38d2311"], "source_entry_id": "12.1/changes/051", "db_id": "928237d2a0d6a7f0f1d701177479ae8f", "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607", "relations": [{"rule": 2, "type": "equivalent", "target": "0893554c398dc6e15ad4901312cba282", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}}, {"rule": 2, "type": "equivalent", "target": "90f6af2221cf19865a9a78e940ca4f64", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}}, {"rule": 2, "type": "equivalent", "target": "9e8d143fba38db76992300f11c8d84f9", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}}, {"rule": 2, "type": "equivalent", "target": "a6f8353053480f849627a17f462805c4", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}}, {"rule": 2, "type": "equivalent", "target": "b15b4c64c40679e329e5756bfde4fbd6", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}}], "version": "12.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0893554c398dc6e15ad4901312cba282", "kind": "equivalent", "version": "11.6", "label": "11.6", "title": "修复 MSVC 构建过程，使其能够处理 OpenSSL 文件路径中的空格", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}, "url": "/docs/compare/?release=11.6#11.6-8af5f9d4642c2ecf", "source_url": "/docs/release/11.6/#id-1.11.6.21.5"}, {"db_id": "90f6af2221cf19865a9a78e940ca4f64", "kind": "equivalent", "version": "10.11", "label": "10.11", "title": "修复 MSVC 构建过程，使其能够处理 OpenSSL 文件路径中的空格", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}, "url": "/docs/compare/?release=10.11#10.11-8af5f9d4642c2ecf", "source_url": "/docs/release/10.11/#id-1.11.6.17.5"}, {"db_id": "a6f8353053480f849627a17f462805c4", "kind": "equivalent", "version": "9.6.16", "label": "9.6.16", "title": "修复 MSVC 构建过程以应对 OpenSSL 文件路径中的空格", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}, "url": "/docs/compare/?release=9.6.16#9.6.16-cca0d9db341e5aeb", "source_url": "/docs/release/9.6.16/#id-1.11.6.13.5"}, {"db_id": "9e8d143fba38db76992300f11c8d84f9", "kind": "equivalent", "version": "9.5.20", "label": "9.5.20", "title": "修复 MSVC 构建过程以应对 OpenSSL 文件路径中的空格", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}, "url": "/docs/compare/?release=9.5.20#9.5.20-cca0d9db341e5aeb", "source_url": "/docs/release/9.5.20/#id-1.11.6.10.5"}, {"db_id": "b15b4c64c40679e329e5756bfde4fbd6", "kind": "equivalent", "version": "9.4.25", "label": "9.4.25", "title": "修复 MSVC 构建过程以应对 OpenSSL 文件路径中的空格", "evidence": {"same_day": true, "patch_ids": ["26f1bde951b659e5d5df4cc603319c36"], "statement_hash": "6329ec64f2b04403d027d3c8f47f3500d7f507364e5a0b4c15a85144769fa607"}, "url": "/docs/compare/?release=9.4.25#9.4.25-cca0d9db341e5aeb", "source_url": "/docs/release/9.4.25/#id-1.11.6.6.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 51}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 24}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 27}], "total": 51, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 51, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}