{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2016-08-11", "build": "9.1.23", "major": "9.1", "minor": 23, "manual": "9.1", "status": "stable", "doc_git": "", "version": "9.1.23", "eol_date": "2016-10-27", "date_text": "2016-08-11", "supported": false, "manual_url": "/docs/9.1/release-9-1-23.html", "source_url": "/docs/release/9.1.23/", "entry_count": 22, "placeholder": false, "content_hash": "914fabef548a94f58a2eb7a39ffa848c4f732c41353d020a8c16203e855ba75c", "manual_build": "9.1.24", "source_as_of": "", "changes_count": 22, "doc_loaded_at": "2026-09-26T02:56:47.783417", "migration_html": "<p>对于运行 9.1.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.1.16 的版本升级，请参见<a href=\"/docs/9.1/release-9-1-16.html\" title=\"E.9. 版本 9.1.16\">第 E.9 节</a>。</p>", "compatibility_count": 0, "label": "9.1.23", "status_label": "历史版本", "eol": "2016-10-27", "age_days": 3702, "support_days": -3625}, "groups": [{"date": "2016-08-11", "build": "9.1.23", "major": "9.1", "minor": 23, "manual": "9.1", "status": "stable", "doc_git": "", "version": "9.1.23", "eol_date": "2016-10-27", "date_text": "2016-08-11", "supported": false, "manual_url": "/docs/9.1/release-9-1-23.html", "source_url": "/docs/release/9.1.23/", "entry_count": 22, "placeholder": false, "content_hash": "914fabef548a94f58a2eb7a39ffa848c4f732c41353d020a8c16203e855ba75c", "manual_build": "9.1.24", "source_as_of": "", "changes_count": 22, "doc_loaded_at": "2026-09-26T02:56:47.783417", "migration_html": "<p>对于运行 9.1.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，如果你是从早于 9.1.16 的版本升级，请参见<a href=\"/docs/9.1/release-9-1-16.html\" title=\"E.9. 版本 9.1.16\">第 E.9 节</a>。</p>", "compatibility_count": 0, "label": "9.1.23", "status_label": "历史版本", "eol": "2016-10-27", "age_days": 3702, "support_days": -3625, "entries": [{"id": "9.1.23-d1f1d0d139e01566", "cves": ["CVE-2016-5423"], "html": "<p>修复嵌套 <code>CASE</code>-<code>WHEN</code> 表达式可能被错误评估的问题（Heikki Linnakangas、Michael Paquier、Tom Lane）</p>\n<p>出现在另一个 <code>CASE</code> 的测试值子表达式中的 <code>CASE</code> 表达式，可能会混淆其自身的测试值是否为空。此外，内联实现 <code>CASE</code> 表达式所用相等操作符的 SQL 函数时，可能向该 SQL 函数体内 <code>CASE</code> 表达式中调用的函数传递错误的测试值。如果测试值的数据类型不同，可能导致崩溃；而且此类情况可被滥用以泄露服务器内存的部分内容。（CVE-2016-5423）</p>", "text": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题（Heikki Linnakangas、Michael Paquier、Tom Lane） 出现在另一个 CASE 的测试值子表达式中的 CASE 表达式，可能会混淆其自身的测试值是否为空。此外，内联实现 CASE 表达式所用相等操作符的 SQL 函数时，可能向该 SQL 函数体内 CASE 表达式中调用的函数传递错误的测试值。如果测试值的数据类型不同，可能导致崩溃；而且此类情况可被滥用以泄露服务器内存的部分内容。（CVE-2016-5423）", "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "0efa049643d6b3b855c5a4697f1d34991cf83b804fceab9bc8040fb6effd5961", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible mis-evaluation of nested CASE-WHEN expressions (Heikki Linnakangas, Michael Paquier, Tom Lane) A CASE expression appearing within the test value subexpression of another CASE could become confused about whether its own test value was null or not. Also, inlining of a SQL function implementing the equality operator used by a CASE expression could result in passing the wrong test value to functions called within a CASE expression in the SQL function's body. If the test values were of different data types, a crash might result; moreover such situations could be abused to allow disclosure of portions of server memory. (CVE-2016-5423)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/001", "db_id": "20369c4b753f3d315b62e264eb569653", "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98", "relations": [{"rule": 2, "type": "equivalent", "target": "22a6aed054525b0b0f9d97d013474e08", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}}, {"rule": 2, "type": "equivalent", "target": "40eafab23c000915239f7d2bfd29a8b8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}}, {"rule": 2, "type": "equivalent", "target": "51e9df159c68363e33052bdb085f9f1d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}}, {"rule": 2, "type": "equivalent", "target": "9853d3caf6ac25d7cf5c2c5828c00df8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}}], "version": "9.1.23", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "51e9df159c68363e33052bdb085f9f1d", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}, "url": "/docs/compare/?release=9.5.4#9.5.4-d1f1d0d139e01566", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "40eafab23c000915239f7d2bfd29a8b8", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}, "url": "/docs/compare/?release=9.4.9#9.4.9-d1f1d0d139e01566", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "22a6aed054525b0b0f9d97d013474e08", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}, "url": "/docs/compare/?release=9.3.14#9.3.14-d1f1d0d139e01566", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "9853d3caf6ac25d7cf5c2c5828c00df8", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}, "url": "/docs/compare/?release=9.2.18#9.2.18-d1f1d0d139e01566", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-5569510630fb5e18", "cves": ["CVE-2016-5424"], "html": "<p>修复客户端程序对数据库名和角色名中特殊字符的处理（Noah Misch、Nathan Bossart、Michael Paquier）</p>\n<p><span>vacuumdb</span> 及其他客户端程序中的许多地方，可能会被包含双引号或反斜杠的数据库名和角色名弄混。收紧引用规则以使其安全。同时确保当 conninfo 字符串被用作这些程序的数据库名参数时，全程都被正确地如此对待。</p>\n<p>修复 <span>psql</span> 的 <code>\\connect</code> 和 <code>\\password</code> 命令中对成对双引号的处理，使其与文档一致。</p>\n<p>在 <span>psql</span> 的 <code>\\connect</code> 命令中引入新的 <code>-reuse-previous</code> 选项，以显式控制是否复用先前连接的连接参数。（若不使用该选项，则与以前一样，根据数据库名是否看起来像 conninfo 字符串来决定。）这使 <span>pg_dumpall</span> 脚本能够安全地处理包含特殊字符的数据库名。</p>\n<p><span>pg_dumpall</span> 现在拒绝处理包含回车或换行的数据库名和角色名，因为在 Windows 上安全地引用这些字符似乎不切实际。将来我们可能会在服务器端拒绝此类名称，但尚未采取这一步骤。</p>\n<p>这些被视为安全修复，因为包含特殊字符的恶意构造的对象名，可能在超级用户下次执行 <span>pg_dumpall</span> 或其他例行维护操作时被用于以超级用户权限执行命令。（CVE-2016-5424）</p>", "text": "修复客户端程序对数据库名和角色名中特殊字符的处理（Noah Misch、Nathan Bossart、Michael Paquier） vacuumdb 及其他客户端程序中的许多地方，可能会被包含双引号或反斜杠的数据库名和角色名弄混。收紧引用规则以使其安全。同时确保当 conninfo 字符串被用作这些程序的数据库名参数时，全程都被正确地如此对待。 修复 psql 的 \\connect 和 \\password 命令中对成对双引号的处理，使其与文档一致。 在 psql 的 \\connect 命令中引入新的 -reuse-previous 选项，以显式控制是否复用先前连接的连接参数。（若不使用该选项，则与以前一样，根据数据库名是否看起来像 conninfo 字符串来决定。）这使 pg_dumpall 脚本能够安全地处理包含特殊字符的数据库名。 pg_dumpall 现在拒绝处理包含回车或换行的数据库名和角色名，因为在 Windows 上安全地引用这些字符似乎不切实际。将来我们可能会在服务器端拒绝此类名称，但尚未采取这一步骤。 这些被视为安全修复，因为包含特殊字符的恶意构造的对象名，可能在超级用户下次执行 pg_dumpall 或其他例行维护操作时被用于以超级用户权限执行命令。（CVE-2016-5424）", "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "ca2b6878e53cc11cd1b116fd4af6da17672152dac6da4c13bfc5933713660d86", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix client programs' handling of special characters in database and role names (Noah Misch, Nathan Bossart, Michael Paquier) Numerous places in vacuumdb and other client programs could become confused by database and role names containing double quotes or backslashes. Tighten up quoting rules to make that safe. Also, ensure that when a conninfo string is used as a database name parameter to these programs, it is correctly treated as such throughout. Fix handling of paired double quotes in psql's \\connect and \\password commands to match the documentation. Introduce a new -reuse-previous option in psql's \\connect command to allow explicit control of whether to re-use connection parameters from a previous connection. (Without this, the choice is based on whether the database name looks like a conninfo string, as before.) This allows secure handling of database names containing special characters in pg_dumpall scripts. pg_dumpall now refuses to deal with database and role names containing carriage returns or newlines, as it seems impractical to quote those characters safely on Windows. In future we may reject such names on the server side, but that step has not been taken yet. These are considered security fixes because crafted object names containing special characters could have been used to execute commands with superuser privileges the next time a superuser executes pg_dumpall or other routine maintenance operations. (CVE-2016-5424)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/002", "db_id": "63c43a4b0f3c1339cd9941cad497e347", "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58", "relations": [{"rule": 2, "type": "equivalent", "target": "29a6715fee30882466fe9bcbd6034c92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}}, {"rule": 2, "type": "equivalent", "target": "2bdc53db8b84c45c46ad3f4b2a21506a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}}, {"rule": 2, "type": "equivalent", "target": "7a7b683c7ab6c4ba5877842aace85792", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}}, {"rule": 2, "type": "equivalent", "target": "bdb6b8e74fc06a96ecfb7b5ad29967cd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}}], "version": "9.1.23", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "bdb6b8e74fc06a96ecfb7b5ad29967cd", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}, "url": "/docs/compare/?release=9.5.4#9.5.4-5569510630fb5e18", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "29a6715fee30882466fe9bcbd6034c92", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}, "url": "/docs/compare/?release=9.4.9#9.4.9-5569510630fb5e18", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "2bdc53db8b84c45c46ad3f4b2a21506a", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}, "url": "/docs/compare/?release=9.3.14#9.3.14-5569510630fb5e18", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "7a7b683c7ab6c4ba5877842aace85792", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}, "url": "/docs/compare/?release=9.2.18#9.2.18-5569510630fb5e18", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-87b533c688a1318e", "cves": [], "html": "<p>修复对嵌套组合值应用 <code>IS NULL</code>/<code>IS NOT NULL</code> 时的边界错误行为（Andrew Gierth、Tom Lane）</p>\n<p>SQL 标准规定，对于全空值的行，<code>IS NULL</code> 应返回 TRUE（因此 <code>ROW(NULL,NULL) IS NULL</code> 得到 TRUE），但这并不意味着递归适用（因此 <code>ROW(NULL, ROW(NULL,NULL)) IS NULL</code> 得到 FALSE）。核心执行器对此处理正确，但某些规划器优化把该测试当作递归的（因而在两种情况下都产生 TRUE），而 <code>contrib/postgres_fdw</code> 可能产生类似错误行为的远程查询。</p>", "text": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为（Andrew Gierth、Tom Lane） SQL 标准规定，对于全空值的行，IS NULL 应返回 TRUE（因此 ROW(NULL,NULL) IS NULL 得到 TRUE），但这并不意味着递归适用（因此 ROW(NULL, ROW(NULL,NULL)) IS NULL 得到 FALSE）。核心执行器对此处理正确，但某些规划器优化把该测试当作递归的（因而在两种情况下都产生 TRUE），而 contrib/postgres_fdw 可能产生类似错误行为的远程查询。", "title": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "ddfd3b1ebbfbfe3de4728d43783d19a30fd5f0aa09844a2f83a1815ca91a8ba8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix corner-case misbehaviors for IS NULL/IS NOT NULL applied to nested composite values (Andrew Gierth, Tom Lane) The SQL standard specifies that IS NULL should return TRUE for a row of all null values (thus ROW(NULL,NULL) IS NULL yields TRUE), but this is not meant to apply recursively (thus ROW(NULL, ROW(NULL,NULL)) IS NULL yields FALSE). The core executor got this right, but certain planner optimizations treated the test as recursive (thus producing TRUE in both cases), and contrib/postgres_fdw could produce remote queries that misbehaved similarly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/003", "db_id": "f3ac524c779beb413068db9c5bc7f203", "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca", "relations": [{"rule": 2, "type": "equivalent", "target": "0e93aac7e3320e342eb8ac00449e464d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}}, {"rule": 2, "type": "equivalent", "target": "1325513f170836bb70f5236c128157b2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}}, {"rule": 2, "type": "equivalent", "target": "23596836707a86a1f17cdd49c6dd5bc0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}}, {"rule": 2, "type": "equivalent", "target": "e64926da86c30a13474ac25027caf070", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}}], "version": "9.1.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1325513f170836bb70f5236c128157b2", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}, "url": "/docs/compare/?release=9.5.4#9.5.4-87b533c688a1318e", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "0e93aac7e3320e342eb8ac00449e464d", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}, "url": "/docs/compare/?release=9.4.9#9.4.9-87b533c688a1318e", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "e64926da86c30a13474ac25027caf070", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}, "url": "/docs/compare/?release=9.3.14#9.3.14-87b533c688a1318e", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "23596836707a86a1f17cdd49c6dd5bc0", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}, "url": "/docs/compare/?release=9.2.18#9.2.18-87b533c688a1318e", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-56b487394f50223a", "cves": [], "html": "<p>使 <code>inet</code> 和 <code>cidr</code> 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址（Tom Lane）</p>", "text": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址（Tom Lane）", "title": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "ce52bad7a9c14eaaa33474b96f0c78289ee3a6da2b3ab967d1ab7dd9a152c80b", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make the inet and cidr data types properly reject IPv6 addresses with too many colon-separated fields (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/004", "db_id": "ea28dbf9995366c5e20e174ab1b33268", "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f", "relations": [{"rule": 2, "type": "equivalent", "target": "0d519db02c1fdabaf13711a6221c86c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}}, {"rule": 2, "type": "equivalent", "target": "31c696a6b04710163c5299592a12e89d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}}, {"rule": 2, "type": "equivalent", "target": "b2f4463d234de946367ddf3e394b0d74", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}}, {"rule": 2, "type": "equivalent", "target": "cb3d9a3e3d73aae5f22d0a54c7f2128f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}}], "version": "9.1.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2f4463d234de946367ddf3e394b0d74", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}, "url": "/docs/compare/?release=9.5.4#9.5.4-56b487394f50223a", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "cb3d9a3e3d73aae5f22d0a54c7f2128f", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}, "url": "/docs/compare/?release=9.4.9#9.4.9-56b487394f50223a", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "31c696a6b04710163c5299592a12e89d", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}, "url": "/docs/compare/?release=9.3.14#9.3.14-56b487394f50223a", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "0d519db02c1fdabaf13711a6221c86c9", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}, "url": "/docs/compare/?release=9.2.18#9.2.18-56b487394f50223a", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-8d7dfab887d6be73", "cves": [], "html": "<p>防止 <code>close_ps()</code>（<code>point</code> <code>##</code> <code>lseg</code> 操作符）在输入坐标为 NaN 时崩溃（Tom Lane）</p>\n<p>使其返回 NULL 而不是崩溃。</p>", "text": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃（Tom Lane） 使其返回 NULL 而不是崩溃。", "title": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "59d700b4c1cb7e2dc2e473eeb1c7e0830d7a2746253c1d205839a156b77a6cbd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent crash in close_ps() (the point ## lseg operator) for NaN input coordinates (Tom Lane) Make it return NULL instead of crashing.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/005", "db_id": "f6befc78e79b4d8983bc10b5fe95eb05", "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d", "relations": [{"rule": 2, "type": "equivalent", "target": "150314a28315cd1e0603509c3918c96d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}}, {"rule": 2, "type": "equivalent", "target": "8271c1db5d9ade21a59abd4e5f549de0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}}, {"rule": 2, "type": "equivalent", "target": "bacd1fafc9c5dad12ad6451a6563e6b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}}, {"rule": 2, "type": "equivalent", "target": "be987efacf6f2d9fc768f60a36407b4a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}}], "version": "9.1.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bacd1fafc9c5dad12ad6451a6563e6b5", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}, "url": "/docs/compare/?release=9.5.4#9.5.4-8d7dfab887d6be73", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "8271c1db5d9ade21a59abd4e5f549de0", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}, "url": "/docs/compare/?release=9.4.9#9.4.9-8d7dfab887d6be73", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "150314a28315cd1e0603509c3918c96d", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}, "url": "/docs/compare/?release=9.3.14#9.3.14-8d7dfab887d6be73", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "be987efacf6f2d9fc768f60a36407b4a", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}, "url": "/docs/compare/?release=9.2.18#9.2.18-8d7dfab887d6be73", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-a55daa0626d05db7", "cves": [], "html": "<p>修复 <code>to_number()</code> 中几处一字节缓冲区过读（Peter Eisentraut）</p>\n<p>在几种情况下，<code>to_number()</code> 函数会从输入字符串中多读取一个字符。如果输入恰好位于内存末尾附近，则有很小的崩溃可能。</p>", "text": "修复 to_number() 中几处一字节缓冲区过读（Peter Eisentraut） 在几种情况下，to_number() 函数会从输入字符串中多读取一个字符。如果输入恰好位于内存末尾附近，则有很小的崩溃可能。", "title": "修复 to_number() 中几处一字节缓冲区过读", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "a0133b7faee72a73976ba3f2b96e39f27025f84ced6ee5ad8d57e6f97520d085", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix several one-byte buffer over-reads in to_number() (Peter Eisentraut) In several cases the to_number() function would read one more character than it should from the input string. There is a small chance of a crash, if the input happens to be adjacent to the end of memory.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/006", "db_id": "983d2a8843882bd744c784b543d8b20e", "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea", "relations": [{"rule": 2, "type": "equivalent", "target": "1c549be0c9b5119a54f3ce0563a8a584", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}}, {"rule": 2, "type": "equivalent", "target": "435638beeeb265cc6a3e544860e061f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}}, {"rule": 2, "type": "equivalent", "target": "af56b4116bfc5b4cb97814922822e4e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}}, {"rule": 2, "type": "equivalent", "target": "b14b7597ee496cab4e7e0a88fbb68974", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}}], "version": "9.1.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1c549be0c9b5119a54f3ce0563a8a584", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复 to_number() 中几处一字节缓冲区过读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}, "url": "/docs/compare/?release=9.5.4#9.5.4-a55daa0626d05db7", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "b14b7597ee496cab4e7e0a88fbb68974", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复 to_number() 中几处一字节缓冲区过读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}, "url": "/docs/compare/?release=9.4.9#9.4.9-a55daa0626d05db7", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "435638beeeb265cc6a3e544860e061f9", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "修复 to_number() 中几处一字节缓冲区过读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}, "url": "/docs/compare/?release=9.3.14#9.3.14-a55daa0626d05db7", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "af56b4116bfc5b4cb97814922822e4e4", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复 to_number() 中几处一字节缓冲区过读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}, "url": "/docs/compare/?release=9.2.18#9.2.18-a55daa0626d05db7", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-bb2e1976fd24c39d", "cves": [], "html": "<p>避免在经过 <code>heap_update()</code> 的高开销路径中出现不安全的中间状态（Masahiko Sawada、Andres Freund）</p>\n<p>以前，这些情况会锁定目标元组（通过设置其 XMAX），但不为该动作记录 WAL，因此如果页面被刷出到磁盘，随后在元组更新完成之前发生数据库崩溃，就有数据完整性问题的风险。</p>", "text": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态（Masahiko Sawada、Andres Freund） 以前，这些情况会锁定目标元组（通过设置其 XMAX），但不为该动作记录 WAL，因此如果页面被刷出到磁盘，随后在元组更新完成之前发生数据库崩溃，就有数据完整性问题的风险。", "title": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "4a0afefbf47db6028f3b70b82d1aafb7f8ee4ba2282e01a8b38c1f6f901f1f6d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid unsafe intermediate state during expensive paths through heap_update() (Masahiko Sawada, Andres Freund) Previously, these cases locked the target tuple (by setting its XMAX) but did not WAL-log that action, thus risking data integrity problems if the page were spilled to disk and then a database crash occurred before the tuple update could be completed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/007", "db_id": "5b02640f40138234e43a578c68fa2c74", "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355", "relations": [{"rule": 2, "type": "equivalent", "target": "21693008fe1c0f2471c27ebaaad6833e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}}, {"rule": 2, "type": "equivalent", "target": "6f92390ea146bf21a0a2ec006c21e01a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}}, {"rule": 2, "type": "equivalent", "target": "a2779b66f6afaccc1659cb5dd1bbdfa9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}}, {"rule": 2, "type": "equivalent", "target": "a278009cf4c5b491be6b9a16568fd64f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}}], "version": "9.1.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2779b66f6afaccc1659cb5dd1bbdfa9", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}, "url": "/docs/compare/?release=9.5.4#9.5.4-bb2e1976fd24c39d", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "a278009cf4c5b491be6b9a16568fd64f", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}, "url": "/docs/compare/?release=9.4.9#9.4.9-bb2e1976fd24c39d", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "21693008fe1c0f2471c27ebaaad6833e", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}, "url": "/docs/compare/?release=9.3.14#9.3.14-bb2e1976fd24c39d", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "6f92390ea146bf21a0a2ec006c21e01a", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}, "url": "/docs/compare/?release=9.2.18#9.2.18-bb2e1976fd24c39d", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-dfd1c606bedf6e4a", "cves": [], "html": "<p>避免在 <code>VACUUM</code> 期间消耗事务 ID（Alexander Korotkov）</p>\n<p><code>VACUUM</code> 中的某些情况会不必要地导致向当前事务分配 XID。通常这可以忽略不计，但如果已接近 XID 回卷限制，在防回卷清理期间消耗更多 XID 就非常糟糕了。</p>", "text": "避免在 VACUUM 期间消耗事务 ID（Alexander Korotkov） VACUUM 中的某些情况会不必要地导致向当前事务分配 XID。通常这可以忽略不计，但如果已接近 XID 回卷限制，在防回卷清理期间消耗更多 XID 就非常糟糕了。", "title": "避免在 VACUUM 期间消耗事务 ID", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "80f05ba6b94fe18d95021820357ebd2972d1f7701729489dd73b9717f7a9404d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid consuming a transaction ID during VACUUM (Alexander Korotkov) Some cases in VACUUM unnecessarily caused an XID to be assigned to the current transaction. Normally this is negligible, but if one is up against the XID wraparound limit, consuming more XIDs during anti-wraparound vacuums is a very bad thing.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/008", "db_id": "a78cb47b904bd16b9167821289ef89be", "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b", "relations": [{"rule": 2, "type": "equivalent", "target": "245bacac3613e40c66473815f0e6656b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}}, {"rule": 2, "type": "equivalent", "target": "657e321b0618cbd443eb28ab46d13fa2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}}, {"rule": 2, "type": "equivalent", "target": "74f25ef9f85c73f84d0430c2c30b93a8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}}, {"rule": 2, "type": "equivalent", "target": "aa5013f92e23459cae03189df920b368", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}}], "version": "9.1.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "657e321b0618cbd443eb28ab46d13fa2", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "避免在 VACUUM 期间消耗事务 ID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}, "url": "/docs/compare/?release=9.5.4#9.5.4-dfd1c606bedf6e4a", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "245bacac3613e40c66473815f0e6656b", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免在 VACUUM 期间消耗事务 ID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}, "url": "/docs/compare/?release=9.4.9#9.4.9-dfd1c606bedf6e4a", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "74f25ef9f85c73f84d0430c2c30b93a8", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "避免在 VACUUM 期间消耗事务 ID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}, "url": "/docs/compare/?release=9.3.14#9.3.14-dfd1c606bedf6e4a", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "aa5013f92e23459cae03189df920b368", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "避免在 VACUUM 期间消耗事务 ID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}, "url": "/docs/compare/?release=9.2.18#9.2.18-dfd1c606bedf6e4a", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-12b9ce4197313dc2", "cves": [], "html": "<p>避免在<code>VACUUM FREEZE</code>期间取消热备查询（Simon Riggs, Álvaro Herrera）</p>\n<p>在原本空闲的主库服务器上执行<code>VACUUM FREEZE</code>可能导致其备库服务器上的查询被不必要地取消。</p>", "text": "避免在VACUUM FREEZE期间取消热备查询（Simon Riggs, Álvaro Herrera） 在原本空闲的主库服务器上执行VACUUM FREEZE可能导致其备库服务器上的查询被不必要地取消。", "title": "避免在VACUUM FREEZE期间取消热备查询", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "1addc5db897818489cfede6d0ae6199902873c9d76c6092d239b59ef15ccbe85", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid canceling hot-standby queries during VACUUM FREEZE (Simon Riggs, Álvaro Herrera) VACUUM FREEZE on an otherwise-idle master server could result in unnecessary cancellations of queries on its standby servers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/009", "db_id": "e19974cfde491d28968cc534d02cea19", "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1", "relations": [{"rule": 2, "type": "equivalent", "target": "75f1921ddd970814b9f5034593f43de8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1"}}, {"rule": 2, "type": "equivalent", "target": "821347b9c75a5d4148d52b1d75ebc803", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1"}}, {"rule": 2, "type": "equivalent", "target": "9a7546de35219a55f154bf78ca9115a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1"}}], "version": "9.1.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "821347b9c75a5d4148d52b1d75ebc803", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免在VACUUM FREEZE期间取消热备查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1"}, "url": "/docs/compare/?release=9.4.9#9.4.9-12b9ce4197313dc2", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "75f1921ddd970814b9f5034593f43de8", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "避免在VACUUM FREEZE期间取消热备查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1"}, "url": "/docs/compare/?release=9.3.14#9.3.14-12b9ce4197313dc2", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "9a7546de35219a55f154bf78ca9115a6", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "避免在VACUUM FREEZE期间取消热备查询", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a3302c24a2a7741e0621cf3ba14bbf3a90146122a33776b6ff0b8ca2a819d9f1"}, "url": "/docs/compare/?release=9.2.18#9.2.18-12b9ce4197313dc2", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-7d5bb828a704b277", "cves": [], "html": "<p>当手动 <code>ANALYZE</code> 指定列列表时，不要重置表的 <code>changes_since_analyze</code> 计数器（Tom Lane）</p>\n<p>如果只分析部分列，就不应阻止其他列的例行自动分析。</p>", "text": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器（Tom Lane） 如果只分析部分列，就不应阻止其他列的例行自动分析。", "title": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "d273dde683360d52a62e4dd7ee702279b71fe5466e66a86b05ab539bcd92f052", "section_path": ["变更"], "commit_groups": [], "identity_text": "When a manual ANALYZE specifies a column list, don't reset the table's changes_since_analyze counter (Tom Lane) If we're only analyzing some columns, we should not prevent routine auto-analyze from happening for the other columns.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/010", "db_id": "bc1038861b281c19b4cecd2d71c33330", "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76", "relations": [{"rule": 2, "type": "equivalent", "target": "345a1c6e4fb97650731701be6759c4e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}}, {"rule": 2, "type": "equivalent", "target": "9fe407a179f44493611c74d98f28b0fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}}, {"rule": 2, "type": "equivalent", "target": "a0982f1894cb857a9fdfa9c9421eaa3f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}}, {"rule": 2, "type": "equivalent", "target": "d0d31d5de2ab5aac71747d5f00234c49", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}}], "version": "9.1.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9fe407a179f44493611c74d98f28b0fe", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}, "url": "/docs/compare/?release=9.5.4#9.5.4-7d5bb828a704b277", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "d0d31d5de2ab5aac71747d5f00234c49", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}, "url": "/docs/compare/?release=9.4.9#9.4.9-7d5bb828a704b277", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "345a1c6e4fb97650731701be6759c4e4", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}, "url": "/docs/compare/?release=9.3.14#9.3.14-7d5bb828a704b277", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "a0982f1894cb857a9fdfa9c9421eaa3f", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}, "url": "/docs/compare/?release=9.2.18#9.2.18-7d5bb828a704b277", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-d31ebed3e6a9579d", "cves": [], "html": "<p>修复 <code>ANALYZE</code> 对包含大量空值的唯一或近似唯一列的 <code>n_distinct</code> 高估（Tom Lane）</p>\n<p>空值可能被当作它们本身就是不同的值来计数，导致某些类型查询中规划器的严重误估。</p>", "text": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估（Tom Lane） 空值可能被当作它们本身就是不同的值来计数，导致某些类型查询中规划器的严重误估。", "title": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "be614ccb503d7cc3e69fddc383ce8a17aece7268b840910b912511790ee1add8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ANALYZE's overestimation of n_distinct for a unique or nearly-unique column with many null entries (Tom Lane) The nulls could get counted as though they were themselves distinct values, leading to serious planner misestimates in some types of queries.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/011", "db_id": "b9296c5607958d701591d8838e457c82", "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6", "relations": [{"rule": 2, "type": "equivalent", "target": "134f5aed845f23b414894823718d3af6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}}, {"rule": 2, "type": "equivalent", "target": "177156399342421bd75ba803062889ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}}, {"rule": 2, "type": "equivalent", "target": "9ac4048d0ff5ec6d336e41628f113d38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}}, {"rule": 2, "type": "equivalent", "target": "c073e87855b0afe241efe9d2730dc9e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}}], "version": "9.1.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "134f5aed845f23b414894823718d3af6", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}, "url": "/docs/compare/?release=9.5.4#9.5.4-d31ebed3e6a9579d", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "177156399342421bd75ba803062889ce", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}, "url": "/docs/compare/?release=9.4.9#9.4.9-d31ebed3e6a9579d", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "c073e87855b0afe241efe9d2730dc9e9", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}, "url": "/docs/compare/?release=9.3.14#9.3.14-d31ebed3e6a9579d", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "9ac4048d0ff5ec6d336e41628f113d38", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}, "url": "/docs/compare/?release=9.2.18#9.2.18-d31ebed3e6a9579d", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-1cbf601805b0b84a", "cves": [], "html": "<p>防止自动清理为同一共享目录启动多个工作进程（Álvaro Herrera）</p>\n<p>通常这不是什么大问题，因为清理本来就不会花很长时间；但在目录严重膨胀的情况下，这可能导致除一个工作进程外的所有工作进程都在无用地等待，而不是对其他表做有用的工作。</p>", "text": "防止自动清理为同一共享目录启动多个工作进程（Álvaro Herrera） 通常这不是什么大问题，因为清理本来就不会花很长时间；但在目录严重膨胀的情况下，这可能导致除一个工作进程外的所有工作进程都在无用地等待，而不是对其他表做有用的工作。", "title": "防止自动清理为同一共享目录启动多个工作进程", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "16cee8989066019aca7b83d8ad78270da3a8941804a5a47d497104ba7f59efe3", "section_path": ["变更"], "commit_groups": [], "identity_text": "Prevent autovacuum from starting multiple workers for the same shared catalog (Álvaro Herrera) Normally this isn't much of a problem because the vacuum doesn't take long anyway; but in the case of a severely bloated catalog, it could result in all but one worker uselessly waiting instead of doing useful work on other tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/012", "db_id": "95a843298907e62a2807accb18b9a438", "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664", "relations": [{"rule": 2, "type": "equivalent", "target": "2ab0a4a562fbca40a7331b9d1e3e3b05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}}, {"rule": 2, "type": "equivalent", "target": "614dfe33f20384930f1639fe3c2d9ba4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}}, {"rule": 2, "type": "equivalent", "target": "70bc2d61ad2d94d10c79d337e9f4199b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}}, {"rule": 2, "type": "equivalent", "target": "a37863195bb69cd86a31001058feea8c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}}], "version": "9.1.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2ab0a4a562fbca40a7331b9d1e3e3b05", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "防止自动清理为同一共享目录启动多个工作进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}, "url": "/docs/compare/?release=9.5.4#9.5.4-1cbf601805b0b84a", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "70bc2d61ad2d94d10c79d337e9f4199b", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "防止自动清理为同一共享目录启动多个工作进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}, "url": "/docs/compare/?release=9.4.9#9.4.9-1cbf601805b0b84a", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "a37863195bb69cd86a31001058feea8c", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "防止自动清理为同一共享目录启动多个工作进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}, "url": "/docs/compare/?release=9.3.14#9.3.14-1cbf601805b0b84a", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "614dfe33f20384930f1639fe3c2d9ba4", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "防止自动清理为同一共享目录启动多个工作进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}, "url": "/docs/compare/?release=9.2.18#9.2.18-1cbf601805b0b84a", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-6734f4b7eecdbfdd", "cves": [], "html": "<p>修复 <code>contrib/btree_gin</code>，使其正确处理 <code>bigint</code> 的最小可能值（Peter Eisentraut）</p>", "text": "修复 contrib/btree_gin，使其正确处理 bigint 的最小可能值（Peter Eisentraut）", "title": "修复 contrib/btree_gin，使其正确处理 bigint 的最小可能值", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "3e67dad62bb840f836d056609d36479d4e3eca7b9e57c01a1fca9a937c44a889", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix contrib/btree_gin to handle the smallest possible bigint value correctly (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/013", "db_id": "b332bfa26e9af409591a979c6287bf45", "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a", "relations": [{"rule": 2, "type": "equivalent", "target": "2ad11cdb92cc42cb735a45158efb36df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}}, {"rule": 2, "type": "equivalent", "target": "55bb20de58ee7a397aa906e37be5b229", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}}, {"rule": 2, "type": "equivalent", "target": "587037ffd575b38371c6be2c35e059a9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}}, {"rule": 2, "type": "equivalent", "target": "bc8969b026c0895f03dd2c362bdd9678", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}}], "version": "9.1.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2ad11cdb92cc42cb735a45158efb36df", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复 contrib/btree_gin，使其正确处理 bigint 的最小可能值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}, "url": "/docs/compare/?release=9.5.4#9.5.4-6734f4b7eecdbfdd", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "bc8969b026c0895f03dd2c362bdd9678", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复contrib/btree_gin以正确处理最小的bigint值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}, "url": "/docs/compare/?release=9.4.9#9.4.9-7c7df4e625488122", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "55bb20de58ee7a397aa906e37be5b229", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "修复 contrib/btree_gin，使其正确处理 bigint 的最小可能值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}, "url": "/docs/compare/?release=9.3.14#9.3.14-6734f4b7eecdbfdd", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "587037ffd575b38371c6be2c35e059a9", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复 contrib/btree_gin，使其正确处理 bigint 的最小可能值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}, "url": "/docs/compare/?release=9.2.18#9.2.18-6734f4b7eecdbfdd", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-496ddb27628ef734", "cves": [], "html": "<p>让 libpq 能正确解码来自未来版本服务器的服务器版本号（Peter Eisentraut）</p>\n<p>计划在 9.6 之后的版本中把服务器版本号从三段式改为两段式。确保 <code>PQserverVersion()</code> 在此类情况下返回正确的值。</p>", "text": "让 libpq 能正确解码来自未来版本服务器的服务器版本号（Peter Eisentraut） 计划在 9.6 之后的版本中把服务器版本号从三段式改为两段式。确保 PQserverVersion() 在此类情况下返回正确的值。", "title": "让 libpq 能正确解码来自未来版本服务器的服务器版本号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "037faca77d2291f8f8b5fecfbe65312bd3b11d459e2cf1314129cdaa75243d6d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Teach libpq to correctly decode server version from future servers (Peter Eisentraut) It's planned to switch to two-part instead of three-part server version numbers for releases after 9.6. Make sure that PQserverVersion() returns the correct value for such cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/014", "db_id": "a1b0d935ae30d4b7aceb893e43274c6d", "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc", "relations": [{"rule": 2, "type": "equivalent", "target": "0d75a6918c0036eb63647167fbbdf001", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}}, {"rule": 2, "type": "equivalent", "target": "4ea77f563dc74b537a0b730565713d4e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}}, {"rule": 2, "type": "equivalent", "target": "64dabf4a46a4fbdf83ab654ec32b1891", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}}, {"rule": 2, "type": "equivalent", "target": "d3dea0a37bb7be0d842b70f31da2da95", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}}], "version": "9.1.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d3dea0a37bb7be0d842b70f31da2da95", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "让 libpq 能正确解码来自未来版本服务器的服务器版本号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}, "url": "/docs/compare/?release=9.5.4#9.5.4-496ddb27628ef734", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "64dabf4a46a4fbdf83ab654ec32b1891", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "让 libpq 能正确解码来自未来版本服务器的服务器版本号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}, "url": "/docs/compare/?release=9.4.9#9.4.9-496ddb27628ef734", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "4ea77f563dc74b537a0b730565713d4e", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "让 libpq 能正确解码来自未来版本服务器的服务器版本号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}, "url": "/docs/compare/?release=9.3.14#9.3.14-496ddb27628ef734", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "0d75a6918c0036eb63647167fbbdf001", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "让 libpq 能正确解码来自未来版本服务器的服务器版本号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}, "url": "/docs/compare/?release=9.2.18#9.2.18-496ddb27628ef734", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-e923f8acb1ada608", "cves": [], "html": "<p>修复 <span>ecpg</span> 中 <code>unsigned long long</code> 数组元素的代码（Michael Meskes）</p>", "text": "修复 ecpg 中 unsigned long long 数组元素的代码（Michael Meskes）", "title": "修复 ecpg 中 unsigned long long 数组元素的代码", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "db789f742fe14a7caf5af2ecbc136693da96837a48a05bc6b998162128991dd4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix ecpg's code for unsigned long long array elements (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/015", "db_id": "acd56826b2908ff9c6dfb20e6684e475", "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3", "relations": [{"rule": 2, "type": "equivalent", "target": "0e08237a09253b1b32b7e6a798b39ddf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}}, {"rule": 2, "type": "equivalent", "target": "7327c5f25aa5b103c2c19ca65e3de4a8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}}, {"rule": 2, "type": "equivalent", "target": "979f7b7202004478df5772fdbe6eba93", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}}, {"rule": 2, "type": "equivalent", "target": "9b544144b9c506e13ca4b1040dbd103a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}}], "version": "9.1.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e08237a09253b1b32b7e6a798b39ddf", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复 ecpg 中 unsigned long long 数组元素的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}, "url": "/docs/compare/?release=9.5.4#9.5.4-e923f8acb1ada608", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "979f7b7202004478df5772fdbe6eba93", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复ecpg对unsigned long long数组元素的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}, "url": "/docs/compare/?release=9.4.9#9.4.9-8b5e4ba7b5541614", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "7327c5f25aa5b103c2c19ca65e3de4a8", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "修复 ecpg 中 unsigned long long 数组元素的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}, "url": "/docs/compare/?release=9.3.14#9.3.14-e923f8acb1ada608", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "9b544144b9c506e13ca4b1040dbd103a", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复 ecpg 中 unsigned long long 数组元素的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}, "url": "/docs/compare/?release=9.2.18#9.2.18-e923f8acb1ada608", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-837b3af589f84e8b", "cves": [], "html": "<p>使 <span>pg_basebackup</span> 接受 <code>-Z 0</code> 表示不压缩（Fujii Masao）</p>", "text": "使 pg_basebackup 接受 -Z 0 表示不压缩（Fujii Masao）", "title": "使 pg_basebackup 接受 -Z 0 表示不压缩", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "5fd07d5cc411bba55640af3cdaa97b98922a96899d045d135664702b050567b5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make pg_basebackup accept -Z 0 as specifying no compression (Fujii Masao)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/016", "db_id": "471095d089d64d7833a66af614a4edbc", "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc", "relations": [{"rule": 2, "type": "equivalent", "target": "724e3ee8e79e2cba3959fa538627b3c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}}, {"rule": 2, "type": "equivalent", "target": "7386ac5a4198ae4dbceaaf92341c6087", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}}, {"rule": 2, "type": "equivalent", "target": "7b1f0637cd7dda75aa90d8ea186b2fc6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}}, {"rule": 2, "type": "equivalent", "target": "a2b44fd104d6fb5e65925050b55eb4d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}}], "version": "9.1.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a2b44fd104d6fb5e65925050b55eb4d6", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "使 pg_basebackup 接受 -Z 0 表示不压缩", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}, "url": "/docs/compare/?release=9.5.4#9.5.4-837b3af589f84e8b", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "7b1f0637cd7dda75aa90d8ea186b2fc6", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "使pg_basebackup接受-Z 0表示不压缩", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}, "url": "/docs/compare/?release=9.4.9#9.4.9-0eee3f96038afbcc", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "724e3ee8e79e2cba3959fa538627b3c6", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "使 pg_basebackup 接受 -Z 0 表示不压缩", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}, "url": "/docs/compare/?release=9.3.14#9.3.14-837b3af589f84e8b", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "7386ac5a4198ae4dbceaaf92341c6087", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "使 pg_basebackup 接受 -Z 0 表示不压缩", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}, "url": "/docs/compare/?release=9.2.18#9.2.18-837b3af589f84e8b", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-a124b508dc6ff096", "cves": [], "html": "<p>恢复 <code>pg_ctl start -w</code> 的旧启发式超时（Tom Lane）</p>\n<p>9.1.20 采用的新方法在启用 <code>silent_mode</code> 时不工作，因此改回旧方法。</p>", "text": "恢复 pg_ctl start -w 的旧启发式超时（Tom Lane） 9.1.20 采用的新方法在启用 silent_mode 时不工作，因此改回旧方法。", "title": "恢复 pg_ctl start -w 的旧启发式超时", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "d49c1d2e541bf592c1cf5261d9eaf96d554c54bf3142dbc44aa494a224d672a3", "section_path": ["变更"], "commit_groups": [["354b3a3ac"], ["d56c02f1a"]], "identity_text": "Revert to the old heuristic timeout for pg_ctl start -w (Tom Lane) The new method adopted as of release 9.1.20 does not work when silent_mode is enabled, so go back to the old way.", "commit_aliases": ["354b3a3ac", "d56c02f1a"], "source_commits": ["354b3a3ac", "d56c02f1a"], "source_entry_id": "9.1.23/changes/017", "db_id": "8189908a9015c51d9e4b468444a37d44", "patch_ids": ["2e32c9b04d9ca1ac5d63278d055187b9", "8327da055ea8c9ec4f4e87b570ddbbae"], "statement_hash": "f6fbdbc823d32a4a4036f24703bc573434a310e4a44a4840cb6c76e8d6696cc3", "relations": [], "version": "9.1.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.1.23-bd9a015afd646c00", "cves": [], "html": "<p>修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全（Noah Misch）</p>", "text": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全（Noah Misch）", "title": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "bd2a808e41ade45c2cc861e491b66b112886c8710be9dcd4ef12152e193e2def", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix makefiles' rule for building AIX shared libraries to be safe for parallel make (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/018", "db_id": "27645d535e2f92f79878519a74a73148", "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056", "relations": [{"rule": 2, "type": "equivalent", "target": "1d5170914cfb163de312a761bf54de09", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}}, {"rule": 2, "type": "equivalent", "target": "c2ab009a22046d907eb7fdbb4f9c7146", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}}, {"rule": 2, "type": "equivalent", "target": "cbc09f1037666430426aa7dedd740be2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}}, {"rule": 2, "type": "equivalent", "target": "cf866cf26cb6dda9e8584d403479b8d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}}], "version": "9.1.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d5170914cfb163de312a761bf54de09", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}, "url": "/docs/compare/?release=9.5.4#9.5.4-bd9a015afd646c00", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "cf866cf26cb6dda9e8584d403479b8d5", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}, "url": "/docs/compare/?release=9.4.9#9.4.9-bd9a015afd646c00", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "cbc09f1037666430426aa7dedd740be2", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}, "url": "/docs/compare/?release=9.3.14#9.3.14-bd9a015afd646c00", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "c2ab009a22046d907eb7fdbb4f9c7146", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}, "url": "/docs/compare/?release=9.2.18#9.2.18-bd9a015afd646c00", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-2e9b678f47ba8ea9", "cves": [], "html": "<p>修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作（Michael Paquier、Kyotaro Horiguchi）</p>", "text": "修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作（Michael Paquier、Kyotaro Horiguchi）", "title": "修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "8d0756b5f48f0c734d520db24b130ea4c5e97120309ed04fe3890cdc9e6d6f5d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix TAP tests and MSVC scripts to work when build directory's path name contains spaces (Michael Paquier, Kyotaro Horiguchi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/019", "db_id": "375d55c939c37461f50255bedaf6e5ff", "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474", "relations": [{"rule": 2, "type": "equivalent", "target": "24e8f01cdd2d72c10f3177cdaf1427b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}}, {"rule": 2, "type": "equivalent", "target": "5b01e3d8f3cc76198f413c56fceb07ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}}, {"rule": 2, "type": "equivalent", "target": "5d1ecf43946510eedace3e37a1b3cb78", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}}, {"rule": 2, "type": "equivalent", "target": "ab36738ba09a1eed04b586c4ca47241b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}}], "version": "9.1.23", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5b01e3d8f3cc76198f413c56fceb07ed", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}, "url": "/docs/compare/?release=9.5.4#9.5.4-2e9b678f47ba8ea9", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "24e8f01cdd2d72c10f3177cdaf1427b5", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复构建目录路径名包含空格时 TAP 测试和 MSVC 脚本的工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}, "url": "/docs/compare/?release=9.4.9#9.4.9-15e7dcd0adee28bd", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "ab36738ba09a1eed04b586c4ca47241b", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}, "url": "/docs/compare/?release=9.3.14#9.3.14-2e9b678f47ba8ea9", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "5d1ecf43946510eedace3e37a1b3cb78", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}, "url": "/docs/compare/?release=9.2.18#9.2.18-2e9b678f47ba8ea9", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-5b57121f6a030906", "cves": [], "html": "<p>使回归测试在丹麦语和威尔士语区域设置下安全（Jeff Janes、Tom Lane）</p>\n<p>修改了一些会触发这些区域设置特殊排序规则的测试数据。</p>", "text": "使回归测试在丹麦语和威尔士语区域设置下安全（Jeff Janes、Tom Lane） 修改了一些会触发这些区域设置特殊排序规则的测试数据。", "title": "使回归测试在丹麦语和威尔士语区域设置下安全", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "be27c893e0c8ab29a35b8d0fe3de638859e72e78ff61febeee313d529bed5653", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make regression tests safe for Danish and Welsh locales (Jeff Janes, Tom Lane) Change some test data that triggered the unusual sorting rules of these locales.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/020", "db_id": "6d8bf42628454cb9b89f312a447a8059", "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66", "relations": [{"rule": 2, "type": "equivalent", "target": "0a119b4ded4fe121283823c900790489", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}}, {"rule": 2, "type": "equivalent", "target": "95a5c1287830769e6d08e7554603221c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}}, {"rule": 2, "type": "equivalent", "target": "9cf8e2271b8f47a33fd9a2434087ae0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}}, {"rule": 2, "type": "equivalent", "target": "c2989094feebf0e230356c42a84221a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}}], "version": "9.1.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9cf8e2271b8f47a33fd9a2434087ae0f", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "使回归测试在丹麦语和威尔士语区域设置下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}, "url": "/docs/compare/?release=9.5.4#9.5.4-5b57121f6a030906", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "95a5c1287830769e6d08e7554603221c", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "使回归测试在丹麦语和威尔士语区域设置下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}, "url": "/docs/compare/?release=9.4.9#9.4.9-5b57121f6a030906", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "c2989094feebf0e230356c42a84221a6", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "使回归测试在丹麦语和威尔士语区域设置下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}, "url": "/docs/compare/?release=9.3.14#9.3.14-5b57121f6a030906", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "0a119b4ded4fe121283823c900790489", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "使回归测试在丹麦语和威尔士语区域设置下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}, "url": "/docs/compare/?release=9.2.18#9.2.18-5b57121f6a030906", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-3b12e1f7a08bfe53", "cves": [], "html": "<p>更新我们的时区代码副本，以匹配 IANA 的 <span>tzcode</span> 2016c 版（Tom Lane）</p>\n<p>这是为了应对时区数据文件未来预期的变更。它还修复了处理特殊时区方面的一些边界 bug。</p>", "text": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版（Tom Lane） 这是为了应对时区数据文件未来预期的变更。它还修复了处理特殊时区方面的一些边界 bug。", "title": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "52620e83c650fe3b76630491616dff93fc923ffc9ea767fed92de1ebc3475edd", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update our copy of the timezone code to match IANA's tzcode release 2016c (Tom Lane) This is needed to cope with anticipated future changes in the time zone data files. It also fixes some corner-case bugs in coping with unusual time zones.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/021", "db_id": "7b723c790e049e2fe118e55137c1d903", "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b", "relations": [{"rule": 2, "type": "equivalent", "target": "3f295b8ef66edd5c265371b70c9f24f5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}}, {"rule": 2, "type": "equivalent", "target": "5d4a6db928e502186dd349272ae749f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}}, {"rule": 2, "type": "equivalent", "target": "6b4cd2fcbee6bcb0f6bd77636904ead5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}}, {"rule": 2, "type": "equivalent", "target": "df175839b1d65d04164caddc02872072", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}}], "version": "9.1.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5d4a6db928e502186dd349272ae749f9", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}, "url": "/docs/compare/?release=9.5.4#9.5.4-3b12e1f7a08bfe53", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "df175839b1d65d04164caddc02872072", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}, "url": "/docs/compare/?release=9.4.9#9.4.9-3b12e1f7a08bfe53", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "6b4cd2fcbee6bcb0f6bd77636904ead5", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}, "url": "/docs/compare/?release=9.3.14#9.3.14-3b12e1f7a08bfe53", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "3f295b8ef66edd5c265371b70c9f24f5", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}, "url": "/docs/compare/?release=9.2.18#9.2.18-3b12e1f7a08bfe53", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.1.23-b3308c6ee9bb59f9", "cves": [], "html": "<p>把时区数据文件更新到 <span>tzdata</span> 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。</p>", "text": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "title": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6", "source_hash": "2eb7a837623eac259af75f5dba4dc42541f56261a2c77b266f5ab19b7c0797f9", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2016f for DST law changes in Kemerovo and Novosibirsk, plus historical corrections for Azerbaijan, Belarus, and Morocco.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.23/changes/022", "db_id": "867458da35dac57e6a7478b5194c0273", "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11", "relations": [{"rule": 2, "type": "equivalent", "target": "4e46b74009f0208ecbee49c16369e84a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}}, {"rule": 2, "type": "equivalent", "target": "8a4bc998111a4a4a657ca1a38f90ce6d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}}, {"rule": 2, "type": "equivalent", "target": "c12e05d4a490df9283b7388753f60e53", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}}, {"rule": 2, "type": "equivalent", "target": "ec5e2b93b6a9086145207b71ca1aa9d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}}], "version": "9.1.23", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8a4bc998111a4a4a657ca1a38f90ce6d", "kind": "equivalent", "version": "9.5.4", "label": "9.5.4", "title": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}, "url": "/docs/compare/?release=9.5.4#9.5.4-b3308c6ee9bb59f9", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5"}, {"db_id": "4e46b74009f0208ecbee49c16369e84a", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "将时区数据文件更新到tzdata发行版 2016f，以反映克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}, "url": "/docs/compare/?release=9.4.9#9.4.9-2bd79f039a562d42", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "ec5e2b93b6a9086145207b71ca1aa9d5", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}, "url": "/docs/compare/?release=9.3.14#9.3.14-b3308c6ee9bb59f9", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "c12e05d4a490df9283b7388753f60e53", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}, "url": "/docs/compare/?release=9.2.18#9.2.18-b3308c6ee9bb59f9", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 22}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 8}, {"key": "security", "label": "安全相关", "count": 2}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 12}], "total": 22, "release_count": 1, "cross_major": false, "cve_count": 2, "cves": [{"id": "CVE-2016-5424", "url": "https://www.postgresql.org/support/security/CVE-2016-5424/", "fixed": {"9.1": "9.1.23", "9.2": "9.2.18", "9.3": "9.3.14", "9.4": "9.4.9", "9.5": "9.5.4"}, "score": 8.5, "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "vector": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "affected": {"9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5"}, "component": "client", "published": {"9.1": "2016-08-11", "9.2": "2016-08-11", "9.3": "2016-08-11", "9.4": "2016-08-11", "9.5": "2016-08-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2016-08-11", "fixed_version": "9.1.23"}, {"id": "CVE-2016-5423", "url": "https://www.postgresql.org/support/security/CVE-2016-5423/", "fixed": {"9.1": "9.1.23", "9.2": "9.2.18", "9.3": "9.3.14", "9.4": "9.4.9", "9.5": "9.5.4"}, "score": 4.3, "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "affected": {"9.1": "9.1", "9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5"}, "component": "core server", "published": {"9.1": "2016-08-11", "9.2": "2016-08-11", "9.3": "2016-08-11", "9.4": "2016-08-11", "9.5": "2016-08-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2016-08-11", "fixed_version": "9.1.23"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 22, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}