{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2016-05-12", "build": "9.2.17", "major": "9.2", "minor": 17, "manual": "9.2", "status": "stable", "doc_git": "", "version": "9.2.17", "eol_date": "2017-11-09", "date_text": "2016-05-12", "supported": false, "manual_url": "/docs/9.2/release-9-2-17.html", "source_url": "/docs/release/9.2.17/", "entry_count": 14, "placeholder": false, "content_hash": "899315be91d9c313bffd05803d2fb61aa01813964cc49e33161c15f087c2f5e5", "manual_build": "9.2.24", "source_as_of": "", "changes_count": 14, "doc_loaded_at": "2026-09-26T02:56:46.946617", "migration_html": "<p>    对于运行 9.2.X 的用户，不需要进行转储/恢复。</p><p>    不过，如果你是从早于 9.2.11 的版本升级，请参见<a href=\"/docs/9.2/release-9-2-11.html\" title=\"E.14. 版本 9.2.11\">第 E.14 节</a>。</p>", "compatibility_count": 0, "label": "9.2.17", "status_label": "历史版本", "eol": "2017-11-09", "age_days": 3793, "support_days": -3247}, "groups": [{"date": "2016-05-12", "build": "9.2.17", "major": "9.2", "minor": 17, "manual": "9.2", "status": "stable", "doc_git": "", "version": "9.2.17", "eol_date": "2017-11-09", "date_text": "2016-05-12", "supported": false, "manual_url": "/docs/9.2/release-9-2-17.html", "source_url": "/docs/release/9.2.17/", "entry_count": 14, "placeholder": false, "content_hash": "899315be91d9c313bffd05803d2fb61aa01813964cc49e33161c15f087c2f5e5", "manual_build": "9.2.24", "source_as_of": "", "changes_count": 14, "doc_loaded_at": "2026-09-26T02:56:46.946617", "migration_html": "<p>    对于运行 9.2.X 的用户，不需要进行转储/恢复。</p><p>    不过，如果你是从早于 9.2.11 的版本升级，请参见<a href=\"/docs/9.2/release-9-2-11.html\" title=\"E.14. 版本 9.2.11\">第 E.14 节</a>。</p>", "compatibility_count": 0, "label": "9.2.17", "status_label": "历史版本", "eol": "2017-11-09", "age_days": 3793, "support_days": -3247, "entries": [{"id": "9.2.17-49ea0453a5768b7a", "cves": [], "html": "<p>      在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空（Peter Geoghegan、Dave Vitek、Peter Eisentraut）\n     </p><p>      此变更可防止在单个进程内存在多条使用 OpenSSL 的连接、且相关代码并非全部遵循相同的错误队列清空规则时出现问题。特别是当客户端应用并发使用 <span>libpq</span> 的 SSL 连接和 PHP、Python 或 Ruby 的 OpenSSL 封装库的 SSL 连接时，已有失败报告。如果扩展模块建立外向 SSL 连接，服务器内部也可能出现类似问题。\n     </p>", "text": "在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空（Peter Geoghegan、Dave Vitek、Peter Eisentraut） 此变更可防止在单个进程内存在多条使用 OpenSSL 的连接、且相关代码并非全部遵循相同的错误队列清空规则时出现问题。特别是当客户端应用并发使用 libpq 的 SSL 连接和 PHP、Python 或 Ruby 的 OpenSSL 封装库的 SSL 连接时，已有失败报告。如果扩展模块建立外向 SSL 连接，服务器内部也可能出现类似问题。", "title": "在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "9237a97d823d6221147e19eee9f36023227d8ab356015f8c7b7f9e2486df29e7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Clear the OpenSSL error queue before OpenSSL calls, rather than assuming it's clear already; and make sure we leave it clear afterwards (Peter Geoghegan, Dave Vitek, Peter Eisentraut) This change prevents problems when there are multiple connections using OpenSSL within a single process and not all the code involved follows the same rules for when to clear the error queue. Failures have been reported specifically when a client application uses SSL connections in libpq concurrently with SSL connections using the PHP, Python, or Ruby wrappers for OpenSSL. It's possible for similar problems to arise within the server as well, if an extension module establishes an outgoing SSL connection.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/001", "db_id": "62f20c0d05d29bf341e3aaee06275c55", "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc", "relations": [{"rule": 2, "type": "equivalent", "target": "4b7db9362a26183bd17c5103480fbee1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}}, {"rule": 2, "type": "equivalent", "target": "91ac1006417b49305cc67423f60912db", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}}, {"rule": 2, "type": "equivalent", "target": "9fa608c377aee746ac2c611e33319396", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}}, {"rule": 2, "type": "equivalent", "target": "e600a65fa6acd98ee339fbf365447dbc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}}], "version": "9.2.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b7db9362a26183bd17c5103480fbee1", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}, "url": "/docs/compare/?release=9.5.3#9.5.3-49ea0453a5768b7a", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "9fa608c377aee746ac2c611e33319396", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}, "url": "/docs/compare/?release=9.4.8#9.4.8-49ea0453a5768b7a", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "e600a65fa6acd98ee339fbf365447dbc", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}, "url": "/docs/compare/?release=9.3.13#9.3.13-49ea0453a5768b7a", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}, {"db_id": "91ac1006417b49305cc67423f60912db", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "在调用 OpenSSL 之前清空 OpenSSL 错误队列，而不是假设它已经为空；并确保调用之后也让它保持为空", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "538b4824fa0c903d31fd2f283cfb7d4a7ea1d2d8a6417468be19e445ce4736dc"}, "url": "/docs/compare/?release=9.1.22#9.1.22-49ea0453a5768b7a", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.2.17-c4937b44d8ec8762", "cves": [], "html": "<p>      修复左连接右侧包含全连接时规划器出现<span>“<span>failed to build any <em><code>N</code></em>-way joins</span>”</span>错误的问题（Tom Lane）\n     </p>", "text": "修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题（Tom Lane）", "title": "修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "17387065ecc97ba49aef3c9cd5e7cc860ceea6a0dc2a622e7979fae5f0a7320a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix failed to build any N-way joins planner error with a full join enclosed in the right-hand side of a left join (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/002", "db_id": "e4320446d7334c9e58ccf5dc74856b6f", "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704", "relations": [{"rule": 2, "type": "equivalent", "target": "5bd965c9aad8a1025186c6e34273b4a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}}, {"rule": 2, "type": "equivalent", "target": "a1381391d5e4f3d2ad49fca1e339a37b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}}, {"rule": 2, "type": "equivalent", "target": "a537cb7093824ef93e612e2110dd6e79", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}}, {"rule": 2, "type": "equivalent", "target": "dbb0f62fc7a76e48c3dc546d1181865b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}}], "version": "9.2.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5bd965c9aad8a1025186c6e34273b4a6", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}, "url": "/docs/compare/?release=9.5.3#9.5.3-c4937b44d8ec8762", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "a1381391d5e4f3d2ad49fca1e339a37b", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复左连接右侧包含全连接时出现“failed to build any N-way joins”规划器错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}, "url": "/docs/compare/?release=9.4.8#9.4.8-3f0cbcae051220ae", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "a537cb7093824ef93e612e2110dd6e79", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}, "url": "/docs/compare/?release=9.3.13#9.3.13-c4937b44d8ec8762", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}, {"db_id": "dbb0f62fc7a76e48c3dc546d1181865b", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "修复左连接右侧包含全连接时规划器出现“failed to build any N-way joins”错误的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "424d4851e66a3292648b8e73220e0a214e0fc736e0bb8d73dc8f0630bc99a704"}, "url": "/docs/compare/?release=9.1.22#9.1.22-c4937b44d8ec8762", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.2.17-c28eb88979662b11", "cves": [], "html": "<p>      修复多层级 nestloop 计划中等价类测试的处理不正确的问题（Tom Lane）\n     </p><p>      对于三个或更多变量的等价类（例如 <code>X.X = Y.Y = Z.Z</code>），规划器可能遗漏一些确保所有变量确实相等的测试，导致输出不满足 <code>WHERE</code> 子句的连接行。由于种种原因，实践中很少选中错误的计划，因此这个 bug 长期未被发现。\n     </p>", "text": "修复多层级 nestloop 计划中等价类测试的处理不正确的问题（Tom Lane） 对于三个或更多变量的等价类（例如 X.X = Y.Y = Z.Z），规划器可能遗漏一些确保所有变量确实相等的测试，导致输出不满足 WHERE 子句的连接行。由于种种原因，实践中很少选中错误的计划，因此这个 bug 长期未被发现。", "title": "修复多层级 nestloop 计划中等价类测试的处理不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "19afd0025d014b69ba2c478f2f3e2c9e897111d72b08403521ad956b48174f39", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect handling of equivalence-class tests in multilevel nestloop plans (Tom Lane) Given a three-or-more-way equivalence class of variables, such as X.X = Y.Y = Z.Z, it was possible for the planner to omit some of the tests needed to enforce that all the variables are actually equal, leading to join rows being output that didn't satisfy the WHERE clauses. For various reasons, erroneous plans were seldom selected in practice, so that this bug has gone undetected for a long time.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/003", "db_id": "a591d7fb30a19ac1fb7fa4682eea85a0", "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b", "relations": [{"rule": 2, "type": "equivalent", "target": "1dce94c98aa5f0c56a05efee097c5813", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b"}}, {"rule": 2, "type": "equivalent", "target": "bf6d8e775756f9e92f946f44a25167e8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b"}}, {"rule": 2, "type": "equivalent", "target": "c6e0819be96584028fc9634442b895bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b"}}], "version": "9.2.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1dce94c98aa5f0c56a05efee097c5813", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复多层级 nestloop 计划中等价类测试的处理不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b"}, "url": "/docs/compare/?release=9.5.3#9.5.3-c28eb88979662b11", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "c6e0819be96584028fc9634442b895bc", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复多层级 nestloop 计划中等价类测试的处理不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b"}, "url": "/docs/compare/?release=9.4.8#9.4.8-c28eb88979662b11", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "bf6d8e775756f9e92f946f44a25167e8", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "修复多层级 nestloop 计划中等价类测试的处理不正确的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "39d57538bd4ec5f2b5bebd700402685db3bb968bc9b8e4033f3000f27f91878b"}, "url": "/docs/compare/?release=9.3.13#9.3.13-c28eb88979662b11", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}]}, {"id": "9.2.17-9c4fb0901af4626e", "cves": [], "html": "<p>      修复 <code>to_timestamp()</code> 中 <code>TH</code>、<code>th</code> 和 <code>Y,YYY</code> 格式代码可能的错误行为（Tom Lane）\n     </p><p>      这些代码可能越过输入字符串末尾，导致后续格式代码读取垃圾数据。\n     </p>", "text": "修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为（Tom Lane） 这些代码可能越过输入字符串末尾，导致后续格式代码读取垃圾数据。", "title": "修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "f3cec4f93dd255ccc1aa536d8961c9974ec1421185627648064faa833aa1be2e", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible misbehavior of TH, th, and Y,YYY format codes in to_timestamp() (Tom Lane) These could advance off the end of the input string, causing subsequent format codes to read garbage.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/004", "db_id": "366779bac19088d552991e951754241f", "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81", "relations": [{"rule": 2, "type": "equivalent", "target": "42f903f018fa1beaa8ee03a199b65c53", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}}, {"rule": 2, "type": "equivalent", "target": "7164f936ae309710c73da3cb2981db31", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}}, {"rule": 2, "type": "equivalent", "target": "9f6cefd6666bebbaa2d32d82c79a6a7e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}}, {"rule": 2, "type": "equivalent", "target": "f07bcffec9ce123ed674a9e6d146e64d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}}], "version": "9.2.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9f6cefd6666bebbaa2d32d82c79a6a7e", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}, "url": "/docs/compare/?release=9.5.3#9.5.3-9c4fb0901af4626e", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "f07bcffec9ce123ed674a9e6d146e64d", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}, "url": "/docs/compare/?release=9.4.8#9.4.8-9c4fb0901af4626e", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "42f903f018fa1beaa8ee03a199b65c53", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}, "url": "/docs/compare/?release=9.3.13#9.3.13-9c4fb0901af4626e", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}, {"db_id": "7164f936ae309710c73da3cb2981db31", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "修复 to_timestamp() 中 TH、th 和 Y,YYY 格式代码可能的错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "60f0142c5486b145bd4a996a2a5bb2dc222192497df359187868e92109d72f81"}, "url": "/docs/compare/?release=9.1.22#9.1.22-9c4fb0901af4626e", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.2.17-eb65414c12f67eb7", "cves": [], "html": "<p>      修复对这样的规则和视图的转储：<code><em><code>value</code></em> <em><code>operator</code></em> ANY (<em><code>array</code></em>)</code> 结构的 <em><code>array</code></em> 参数是子 SELECT（Tom Lane）\n     </p>", "text": "修复对这样的规则和视图的转储：value operator ANY (array) 结构的 array 参数是子 SELECT（Tom Lane）", "title": "修复对这样的规则和视图的转储：value operator ANY (array) 结构的 array 参数是子 SELECT", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "fd4b1524450c1ee0b24fcdda834b60985e8a3c2b1ea43075670ff5a8b39e7bf3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix dumping of rules and views in which the array argument of a value operator ANY (array) construct is a sub-SELECT (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/005", "db_id": "54052bff4c90837071042d50a7fe7cc2", "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756", "relations": [{"rule": 2, "type": "equivalent", "target": "2863c53ebf45db469ef041d1f6d99c17", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}}, {"rule": 2, "type": "equivalent", "target": "36ff8c45b3e88c8731029c9d47e99c0a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}}, {"rule": 2, "type": "equivalent", "target": "486ec00869568cfeb91f9781dd8d8973", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}}, {"rule": 2, "type": "equivalent", "target": "b1cc85e77e70b614188e52ae51af907c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}}], "version": "9.2.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "36ff8c45b3e88c8731029c9d47e99c0a", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复对这样的规则和视图的转储：value operator ANY (array) 结构的 array 参数是子 SELECT", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}, "url": "/docs/compare/?release=9.5.3#9.5.3-eb65414c12f67eb7", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "486ec00869568cfeb91f9781dd8d8973", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复value operator ANY (array)结构的array参数为子 SELECT 时规则和视图的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}, "url": "/docs/compare/?release=9.4.8#9.4.8-47ebf27e4bc499cd", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "2863c53ebf45db469ef041d1f6d99c17", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "修复对这样的规则和视图的转储：value operator ANY (array) 结构的 array 参数是子 SELECT", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}, "url": "/docs/compare/?release=9.3.13#9.3.13-eb65414c12f67eb7", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}, {"db_id": "b1cc85e77e70b614188e52ae51af907c", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "修复对这样的规则和视图的转储：value operator ANY (array) 结构的 array 参数是子 SELECT", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3c96c02a651a1cbcc7a614c7171c9ba39a99b092e1b90e1e65598689c1a50756"}, "url": "/docs/compare/?release=9.1.22#9.1.22-eb65414c12f67eb7", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.2.17-baad701ca12dd111", "cves": [], "html": "<p>      使 <span>pg_regress</span> 在设置了 <code>PGCTLTIMEOUT</code> 环境变量时使用其中的启动超时（Tom Lane）\n     </p><p>      这是为了与最近添加到 <span>pg_ctl</span> 的行为保持一致；它方便了在慢速机器上进行自动化测试。\n     </p>", "text": "使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时（Tom Lane） 这是为了与最近添加到 pg_ctl 的行为保持一致；它方便了在慢速机器上进行自动化测试。", "title": "使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "3a87570f806f3937c9571aa5f9bb22a678709761a8410a338609edc6ae50fc8c", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_regress use a startup timeout from the PGCTLTIMEOUT environment variable, if that's set (Tom Lane) This is for consistency with a behavior recently added to pg_ctl; it eases automated testing on slow machines.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/006", "db_id": "2ce275053c28723ba1f1be8f29c5f7dd", "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e", "relations": [{"rule": 2, "type": "equivalent", "target": "8bc8cda2e133d09a52e7c1055bf2041b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}}, {"rule": 2, "type": "equivalent", "target": "8e6b40fe0e5a908a3e5fa86b1e5245d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}}, {"rule": 2, "type": "equivalent", "target": "c415a1e7cea295cdb2c5d5bfc63e8dec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}}, {"rule": 2, "type": "equivalent", "target": "d81adfb5b072cb2ca0685aee8eae6ca2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}}], "version": "9.2.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8bc8cda2e133d09a52e7c1055bf2041b", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}, "url": "/docs/compare/?release=9.5.3#9.5.3-baad701ca12dd111", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "d81adfb5b072cb2ca0685aee8eae6ca2", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}, "url": "/docs/compare/?release=9.4.8#9.4.8-baad701ca12dd111", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "8e6b40fe0e5a908a3e5fa86b1e5245d7", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}, "url": "/docs/compare/?release=9.3.13#9.3.13-baad701ca12dd111", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}, {"db_id": "c415a1e7cea295cdb2c5d5bfc63e8dec", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "使 pg_regress 在设置了 PGCTLTIMEOUT 环境变量时使用其中的启动超时", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a2b191b0403d00f404dfc01085db53ae78407265223bbbd3520616f7d9dd679e"}, "url": "/docs/compare/?release=9.1.22#9.1.22-baad701ca12dd111", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.2.17-ed0cf090821efeae", "cves": [], "html": "<p>      修复 <span>pg_upgrade</span> 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题（Tom Lane）\n     </p><p>      在这种情况下，操作符族会被恢复到新数据库中，但不再被标记为扩展的一部分。这没有直接的坏影响，但会导致后续 <span>pg_dump</span> 运行产生在恢复时引发（无害）错误的输出。\n     </p>", "text": "修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题（Tom Lane） 在这种情况下，操作符族会被恢复到新数据库中，但不再被标记为扩展的一部分。这没有直接的坏影响，但会导致后续 pg_dump 运行产生在恢复时引发（无害）错误的输出。", "title": "修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "a6d34b69677d2f20d653538190f1ae2503eba3dc077f99e4379219faae8344db", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_upgrade to correctly restore extension membership for operator families containing only one operator class (Tom Lane) In such a case, the operator family was restored into the new database, but it was no longer marked as part of the extension. This had no immediate ill effects, but would cause later pg_dump runs to emit output that would cause (harmless) errors on restore.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/007", "db_id": "9705472832c0c7cbceea1131065a8aab", "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953", "relations": [{"rule": 2, "type": "equivalent", "target": "47d0f0c5b40b9c550b968d5651c6f301", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}}, {"rule": 2, "type": "equivalent", "target": "4c64b8a24772abea3a1b65548126c81d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}}, {"rule": 2, "type": "equivalent", "target": "7c7076996d977e64c38b5a365b48b4c2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}}, {"rule": 2, "type": "equivalent", "target": "f91fdd52872619c7dcfff3b1b5a0f7a5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}}], "version": "9.2.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "47d0f0c5b40b9c550b968d5651c6f301", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}, "url": "/docs/compare/?release=9.5.3#9.5.3-ed0cf090821efeae", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "7c7076996d977e64c38b5a365b48b4c2", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}, "url": "/docs/compare/?release=9.4.8#9.4.8-ed0cf090821efeae", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "f91fdd52872619c7dcfff3b1b5a0f7a5", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}, "url": "/docs/compare/?release=9.3.13#9.3.13-ed0cf090821efeae", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}, {"db_id": "4c64b8a24772abea3a1b65548126c81d", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "修复 pg_upgrade 对仅包含一个操作符类的操作符族正确恢复扩展成员关系的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "42a67df0b603e189af9ec165ccc13e98aae95587ce816f12af83e76546828953"}, "url": "/docs/compare/?release=9.1.22#9.1.22-ed0cf090821efeae", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.2.17-3618cd389432f0a6", "cves": [], "html": "<p>      把 9.4 时代的内存屏障代码变更回移植到 9.2 和 9.3（Tom Lane）\n     </p><p>      这些变更在 9.4 之前的分支中原本并不需要，但我们最近回移植了一个要求屏障代码正常工作的修复。只有 IA64（使用 icc 时）、HPPA 和 Alpha 平台受影响。\n     </p>", "text": "把 9.4 时代的内存屏障代码变更回移植到 9.2 和 9.3（Tom Lane） 这些变更在 9.4 之前的分支中原本并不需要，但我们最近回移植了一个要求屏障代码正常工作的修复。只有 IA64（使用 icc 时）、HPPA 和 Alpha 平台受影响。", "title": "把 9.4 时代的内存屏障代码变更回移植到 9.2 和 9.3", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "36e2f1e7df1fc7eaec3b2d7f9ab0ad62c620e40df1f50a3a5e334864fa4f2c2d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Back-port 9.4-era memory-barrier code changes into 9.2 and 9.3 (Tom Lane) These changes were not originally needed in pre-9.4 branches, but we recently back-patched a fix that expected the barrier code to work properly. Only IA64 (when using icc), HPPA, and Alpha platforms are affected.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/008", "db_id": "fe535d25051693509dd560fc0ee06e9c", "patch_ids": [], "statement_hash": "eaf369959d2b4d8b942f63ded11b12358488d595e08ec7d0295853ab78602179", "relations": [{"rule": 2, "type": "equivalent", "target": "6e6ec47160b2d5703c52fd84453c040b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaf369959d2b4d8b942f63ded11b12358488d595e08ec7d0295853ab78602179"}}], "version": "9.2.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6e6ec47160b2d5703c52fd84453c040b", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "把 9.4 时代的内存屏障代码变更回移植到 9.2 和 9.3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "eaf369959d2b4d8b942f63ded11b12358488d595e08ec7d0295853ab78602179"}, "url": "/docs/compare/?release=9.3.13#9.3.13-3618cd389432f0a6", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}]}, {"id": "9.2.17-4b9de6bff121d19f", "cves": [], "html": "<p>      减少配置了 <code>--disable-spinlocks</code> 的构建所使用的 SysV 信号量数量（Tom Lane）\n     </p>", "text": "减少配置了 --disable-spinlocks 的构建所使用的 SysV 信号量数量（Tom Lane）", "title": "减少配置了 --disable-spinlocks 的构建所使用的 SysV 信号量数量", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "636c229deaac457348a35786326c32c882953f65dd85192a81e6bf0f10460316", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reduce the number of SysV semaphores used by a build configured with --disable-spinlocks (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/009", "db_id": "33c5c7b70971a0d393e0aea021e0a3f7", "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af", "relations": [{"rule": 2, "type": "equivalent", "target": "cb24c362a321d2bebb433956de788e20", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af"}}, {"rule": 2, "type": "equivalent", "target": "ccffb7da59097f758f46a81e9d9d38ae", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af"}}, {"rule": 2, "type": "equivalent", "target": "d21a98772764cb94acd1734c61fa88fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af"}}], "version": "9.2.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d21a98772764cb94acd1734c61fa88fe", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "减少配置了 --disable-spinlocks 的构建所使用的 SysV 信号量数量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af"}, "url": "/docs/compare/?release=9.5.3#9.5.3-4b9de6bff121d19f", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "ccffb7da59097f758f46a81e9d9d38ae", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "减少以--disable-spinlocks配置的构建所使用的 SysV 信号量数量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af"}, "url": "/docs/compare/?release=9.4.8#9.4.8-a83fb75c19d36f28", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "cb24c362a321d2bebb433956de788e20", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "减少配置了 --disable-spinlocks 的构建所使用的 SysV 信号量数量", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c297ebcf7355bed20055ec3672232bb915d3b51254fa450207fcf561652ff5af"}, "url": "/docs/compare/?release=9.3.13#9.3.13-4b9de6bff121d19f", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}]}, {"id": "9.2.17-4c575f265273afda", "cves": [], "html": "<p>      把内部函数 <code>strtoi()</code> 重命名为 <code>strtoint()</code>，以避免与 NetBSD 库函数冲突（Thomas Munro）\n     </p>", "text": "把内部函数 strtoi() 重命名为 strtoint()，以避免与 NetBSD 库函数冲突（Thomas Munro）", "title": "把内部函数 strtoi() 重命名为 strtoint()，以避免与 NetBSD 库函数冲突", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "92c08fcd0cfcc866cc9b5ad870a74973851d75150d0904d3c5e1de7180f39cf6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Rename internal function strtoi() to strtoint() to avoid conflict with a NetBSD library function (Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/010", "db_id": "265b4d732f27dacc36314edf518923c7", "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66", "relations": [{"rule": 2, "type": "equivalent", "target": "07795696d6a7ab8af1ad49d41cecb393", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}}, {"rule": 2, "type": "equivalent", "target": "35f0f4507cf02f3a765a76888b94e3a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}}, {"rule": 2, "type": "equivalent", "target": "6787c135c33be1a810d12eed7af6ec76", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}}, {"rule": 2, "type": "equivalent", "target": "f18b040e106e1164a59e5356999c0025", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}}], "version": "9.2.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6787c135c33be1a810d12eed7af6ec76", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "把内部函数 strtoi() 重命名为 strtoint()，以避免与 NetBSD 库函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}, "url": "/docs/compare/?release=9.5.3#9.5.3-4c575f265273afda", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "35f0f4507cf02f3a765a76888b94e3a4", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "将内部函数strtoi()重命名为strtoint()，以避免与 NetBSD 库函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}, "url": "/docs/compare/?release=9.4.8#9.4.8-4f81d66e74fea724", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "f18b040e106e1164a59e5356999c0025", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "把内部函数 strtoi() 重命名为 strtoint()，以避免与 NetBSD 库函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}, "url": "/docs/compare/?release=9.3.13#9.3.13-4c575f265273afda", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}, {"db_id": "07795696d6a7ab8af1ad49d41cecb393", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "把内部函数 strtoi() 重命名为 strtoint()，以避免与 NetBSD 库函数冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "daf37b8873ec7d489cc0b91d3259e1cf9092f1f7b73e0b3c07150b1b41082b66"}, "url": "/docs/compare/?release=9.1.22#9.1.22-4c575f265273afda", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.2.17-cd087175f2b48cbf", "cves": [], "html": "<p>      修复 Windows 上 <code>bind()</code> 和 <code>listen()</code> 系统调用错误的报告（Tom Lane）\n     </p>", "text": "修复 Windows 上 bind() 和 listen() 系统调用错误的报告（Tom Lane）", "title": "修复 Windows 上 bind() 和 listen() 系统调用错误的报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "4d0010776317ea20db12b153a84a498a532485649d4f2e9801b0ae72b2bfa109", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix reporting of errors from bind() and listen() system calls on Windows (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/011", "db_id": "8cd431978c2501c0e48cb95d54e3b96c", "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e", "relations": [{"rule": 2, "type": "equivalent", "target": "116ddf534cc4298b2ce9e58d67cb2fe8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}}, {"rule": 2, "type": "equivalent", "target": "6bc0398b17ec9e3ad2d18735b7b5d72e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}}, {"rule": 2, "type": "equivalent", "target": "855ced2f2e5cab1357a39946a69e1fbb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}}, {"rule": 2, "type": "equivalent", "target": "c0b7aec873e8f99f8e07b587338bcc9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}}], "version": "9.2.17", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6bc0398b17ec9e3ad2d18735b7b5d72e", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "修复 Windows 上 bind() 和 listen() 系统调用错误的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}, "url": "/docs/compare/?release=9.5.3#9.5.3-cd087175f2b48cbf", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "c0b7aec873e8f99f8e07b587338bcc9e", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "修复 Windows 上bind()和listen()系统调用错误的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}, "url": "/docs/compare/?release=9.4.8#9.4.8-88ff8c221a0d260f", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "855ced2f2e5cab1357a39946a69e1fbb", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "修复 Windows 上 bind() 和 listen() 系统调用错误的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}, "url": "/docs/compare/?release=9.3.13#9.3.13-cd087175f2b48cbf", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}, {"db_id": "116ddf534cc4298b2ce9e58d67cb2fe8", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "修复 Windows 上 bind() 和 listen() 系统调用错误的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bf2f2fe0361a5a5b6b13d12099850bfa36ba78eaeed89fdd45b6cb4bb6ab6a8e"}, "url": "/docs/compare/?release=9.1.22#9.1.22-cd087175f2b48cbf", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.2.17-14713f1d4b930720", "cves": [], "html": "<p>      减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度（Christian Ullrich）\n     </p>", "text": "减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度（Christian Ullrich）", "title": "减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "fc9f728bb7578321d22405fb46f840f6f79f1527d7506f576a78d1d8b336ad56", "section_path": ["变更"], "commit_groups": [], "identity_text": "Reduce verbosity of compiler output when building with Microsoft Visual Studio (Christian Ullrich)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/012", "db_id": "d71802d2c796bee0af2e0ef03a38f9de", "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d", "relations": [{"rule": 2, "type": "equivalent", "target": "61232729f0482913301cc0d7e6c440a1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}}, {"rule": 2, "type": "equivalent", "target": "7a3891afe9938736bea802a096e04138", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}}, {"rule": 2, "type": "equivalent", "target": "cf56b471bd29a03824536d7212b750e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}}, {"rule": 2, "type": "equivalent", "target": "f136ad3114dcbc143b8c85c170721a1d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}}], "version": "9.2.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "61232729f0482913301cc0d7e6c440a1", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}, "url": "/docs/compare/?release=9.5.3#9.5.3-14713f1d4b930720", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "7a3891afe9938736bea802a096e04138", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "降低使用 Microsoft Visual Studio 构建时编译器输出的详细程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}, "url": "/docs/compare/?release=9.4.8#9.4.8-1ebb646ed46fb913", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "f136ad3114dcbc143b8c85c170721a1d", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}, "url": "/docs/compare/?release=9.3.13#9.3.13-14713f1d4b930720", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}, {"db_id": "cf56b471bd29a03824536d7212b750e3", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "减少使用 Microsoft Visual Studio 构建时编译器输出的冗长程度", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "09e50e6e202fa28451fddcdf0afee83b4b3defc8fa42cec3c632756845f8ef0d"}, "url": "/docs/compare/?release=9.1.22#9.1.22-14713f1d4b930720", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.2.17-f6bc5b62d3be56bc", "cves": [], "html": "<p>      避免可能不安全地使用 Windows 的 <code>FormatMessage()</code> 函数（Christian Ullrich）\n     </p><p>      在适当之处使用 <code>FORMAT_MESSAGE_IGNORE_INSERTS</code> 标志。目前不知道这里存在实际的 bug，但小心谨慎似乎是明智的。\n     </p>", "text": "避免可能不安全地使用 Windows 的 FormatMessage() 函数（Christian Ullrich） 在适当之处使用 FORMAT_MESSAGE_IGNORE_INSERTS 标志。目前不知道这里存在实际的 bug，但小心谨慎似乎是明智的。", "title": "避免可能不安全地使用 Windows 的 FormatMessage() 函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "c51616cdd2e96f073fa266202f9f29c7de93048477510dad55fbc41e8ce0a0a6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid possibly-unsafe use of Windows' FormatMessage() function (Christian Ullrich) Use the FORMAT_MESSAGE_IGNORE_INSERTS flag where appropriate. No live bug is known to exist here, but it seems like a good idea to be careful.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/013", "db_id": "c8f12bcc3a5d2869fd3159cf8aad42b3", "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba", "relations": [{"rule": 2, "type": "equivalent", "target": "1374cce413b2405053b6174d2b9dd2a4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}}, {"rule": 2, "type": "equivalent", "target": "83547afdd12a20fb7887af738b9429f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}}, {"rule": 2, "type": "equivalent", "target": "843ff6f7a705472abc8ca1bf3a66d2dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}}, {"rule": 2, "type": "equivalent", "target": "9e736f2478d30355bea81a22347b74e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}}], "version": "9.2.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "83547afdd12a20fb7887af738b9429f9", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "避免可能不安全地使用 Windows 的 FormatMessage() 函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}, "url": "/docs/compare/?release=9.5.3#9.5.3-f6bc5b62d3be56bc", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "9e736f2478d30355bea81a22347b74e4", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "避免可能不安全地使用 Windows 的 FormatMessage() 函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}, "url": "/docs/compare/?release=9.4.8#9.4.8-f6bc5b62d3be56bc", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "1374cce413b2405053b6174d2b9dd2a4", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "避免可能不安全地使用 Windows 的 FormatMessage() 函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}, "url": "/docs/compare/?release=9.3.13#9.3.13-f6bc5b62d3be56bc", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}, {"db_id": "843ff6f7a705472abc8ca1bf3a66d2dd", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "避免可能不安全地使用 Windows 的 FormatMessage() 函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4f0eb8a21a6ee7835478ee8b39a7a3a9445d6521a51d6e6230dce3af243f31ba"}, "url": "/docs/compare/?release=9.1.22#9.1.22-f6bc5b62d3be56bc", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}, {"id": "9.2.17-0f7afee00aec2c4f", "cves": [], "html": "<p>      把时区数据文件更新到 <span>tzdata</span> 2016d 版，涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 <code>Europe/Kirov</code> 和 <code>Asia/Tomsk</code>，以反映这些地区现在与相邻地区有不同的时区历史。\n     </p>", "text": "把时区数据文件更新到 tzdata 2016d 版，涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk，以反映这些地区现在与相邻地区有不同的时区历史。", "title": "把时区数据文件更新到 tzdata 2016d 版，涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk，以反映这些地区现在与相邻地区有不同的时区历史。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.2.17/#id-1.11.6.12.5", "source_hash": "576753c595f492c28360ee740466a151e91c19b300733100f3d86544acf84783", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2016d for DST law changes in Russia and Venezuela. There are new zone names Europe/Kirov and Asia/Tomsk to reflect the fact that these regions now have different time zone histories from adjacent regions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.2.17/changes/014", "db_id": "d2b408cac57b270129b64b56ed0557f0", "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e", "relations": [{"rule": 2, "type": "equivalent", "target": "691cfe52509ead5429d7f97ff5bf105b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}}, {"rule": 2, "type": "equivalent", "target": "72850db23891e29cc2438e350a1ea33b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}}, {"rule": 2, "type": "equivalent", "target": "79f54e8b0b7b27ff93837ee34ccf5720", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}}, {"rule": 2, "type": "equivalent", "target": "dbc73dfd3e223f7a6162474c523aca1d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}}], "version": "9.2.17", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "691cfe52509ead5429d7f97ff5bf105b", "kind": "equivalent", "version": "9.5.3", "label": "9.5.3", "title": "把时区数据文件更新到 tzdata 2016d 版，涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk，以反映这些地区现在与相邻地区有不同的时区历史。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}, "url": "/docs/compare/?release=9.5.3#9.5.3-0f7afee00aec2c4f", "source_url": "/docs/release/9.5.3/#id-1.11.6.27.5"}, {"db_id": "72850db23891e29cc2438e350a1ea33b", "kind": "equivalent", "version": "9.4.8", "label": "9.4.8", "title": "将时区数据文件更新到tzdata发行版 2016d，以反映俄罗斯和委内瑞拉的夏令时法规变更。新增了时区名Europe/Kirov和Asia/Tomsk，以反映这些地区现在与邻近地区有不同的时区历史。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}, "url": "/docs/compare/?release=9.4.8#9.4.8-c4d043d9e59bcb42", "source_url": "/docs/release/9.4.8/#id-1.11.6.23.5"}, {"db_id": "dbc73dfd3e223f7a6162474c523aca1d", "kind": "equivalent", "version": "9.3.13", "label": "9.3.13", "title": "把时区数据文件更新到 tzdata 2016d 版，涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk，以反映这些地区现在与相邻地区有不同的时区历史。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}, "url": "/docs/compare/?release=9.3.13#9.3.13-0f7afee00aec2c4f", "source_url": "/docs/release/9.3.13/#id-1.11.6.17.5"}, {"db_id": "79f54e8b0b7b27ff93837ee34ccf5720", "kind": "equivalent", "version": "9.1.22", "label": "9.1.22", "title": "把时区数据文件更新到 tzdata 2016d 版，涉及俄罗斯和委内瑞拉的夏令时法规变更。新增时区名称 Europe/Kirov 和 Asia/Tomsk，以反映这些地区现在与相邻地区有不同的时区历史。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fee40e3c98d325f9913c0780bdacc75d834d5a2e3476deca5c8b25342cf81a8e"}, "url": "/docs/compare/?release=9.1.22#9.1.22-0f7afee00aec2c4f", "source_url": "/docs/release/9.1.22/#id-1.11.6.7.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 14}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 6}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 8}], "total": 14, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 14, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}