{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2016-08-11", "build": "9.5.4", "major": "9.5", "minor": 4, "manual": "9.5", "status": "stable", "doc_git": "", "version": "9.5.4", "eol_date": "2021-02-11", "date_text": "2016-08-11", "supported": false, "manual_url": "/docs/9.5/release-9-5-4.html", "source_url": "/docs/release/9.5.4/", "entry_count": 51, "placeholder": false, "content_hash": "18f3f33d94334a394ed018492ca96b2f3687b17b4a704cdc76a23f58e5bdbcbc", "manual_build": "9.5.25", "source_as_of": "", "changes_count": 51, "doc_loaded_at": "2026-09-26T02:56:44.718140", "migration_html": "<p>对于运行 9.5.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.5.2 之前的版本升级，参见<a href=\"/docs/9.5/release-9-5-2.html\" title=\"E.24. 版本 9.5.2\">第 E.24 节</a>。</p>", "compatibility_count": 0, "label": "9.5.4", "status_label": "历史版本", "eol": "2021-02-11", "age_days": 3702, "support_days": -2057}, "groups": [{"date": "2016-08-11", "build": "9.5.4", "major": "9.5", "minor": 4, "manual": "9.5", "status": "stable", "doc_git": "", "version": "9.5.4", "eol_date": "2021-02-11", "date_text": "2016-08-11", "supported": false, "manual_url": "/docs/9.5/release-9-5-4.html", "source_url": "/docs/release/9.5.4/", "entry_count": 51, "placeholder": false, "content_hash": "18f3f33d94334a394ed018492ca96b2f3687b17b4a704cdc76a23f58e5bdbcbc", "manual_build": "9.5.25", "source_as_of": "", "changes_count": 51, "doc_loaded_at": "2026-09-26T02:56:44.718140", "migration_html": "<p>对于运行 9.5.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你是从 9.5.2 之前的版本升级，参见<a href=\"/docs/9.5/release-9-5-2.html\" title=\"E.24. 版本 9.5.2\">第 E.24 节</a>。</p>", "compatibility_count": 0, "label": "9.5.4", "status_label": "历史版本", "eol": "2021-02-11", "age_days": 3702, "support_days": -2057, "entries": [{"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "0dfa6973f796366089450cb4f57e66a1926faf40ebeaed346ea4446989b8fb1d", "section_path": ["变更"], "commit_groups": [["5327b764a", "6c954a6a5", "8b32516db", "98b0c6280", "f0c7b789a", "f40618092"]], "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": ["5327b764a", "6c954a6a5", "8b32516db", "98b0c6280", "f0c7b789a", "f40618092"], "source_commits": ["98b0c6280"], "source_entry_id": "9.5.4/changes/001", "db_id": "51e9df159c68363e33052bdb085f9f1d", "patch_ids": ["aee3327284ae0f5539187370552da34d"], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98", "relations": [{"rule": 2, "type": "equivalent", "target": "20369c4b753f3d315b62e264eb569653", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}}, {"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": "9853d3caf6ac25d7cf5c2c5828c00df8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}}], "version": "9.5.4", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "20369c4b753f3d315b62e264eb569653", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复嵌套 CASE-WHEN 表达式可能被错误评估的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581361769da8e46e9db3a43d51b43ab2aa3c7286cf8803cc0698a769d8907f98"}, "url": "/docs/compare/?release=9.1.23#9.1.23-d1f1d0d139e01566", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "af1ba936be8fb61797d66f25bc4e45d8575ea654be3e2b15d0a7a0ec88a45666", "section_path": ["变更"], "commit_groups": [["05abd3bcf", "61c2cd88d", "640768ceb", "aed038795", "c40071717", "ffbdab65d"], ["0cc3b12d2", "aed766ab5"], ["0f679d2c1", "142c24c23", "2d69f5b12", "483715529", "6bec1a6c8", "ec3aebdbd"], ["18392ed4a", "2e5e90d8d", "395d565ac", "a19edcd24", "bd6537185", "c761c9fee"], ["254eb04f1", "286c8bc64", "95a6855c5", "a2385cac1", "e8f4922c8", "fcd15f135"], ["41f18f021", "6df8ff49d", "8adff3783", "c1b048f49", "d2dd5df51", "f1d0b09cf"], ["6655c0757", "9d924e9a6", "a466ea33c", "afabfcc0e", "ba8c4089d", "dfb2d8039"], ["984e5beb3", "a44d71351", "cf7e5f55b", "db951dd19", "f744e8906", "fed83cdac"]], "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": ["05abd3bcf", "0cc3b12d2", "0f679d2c1", "142c24c23", "18392ed4a", "254eb04f1", "286c8bc64", "2d69f5b12", "2e5e90d8d", "395d565ac", "41f18f021", "483715529", "61c2cd88d", "640768ceb", "6655c0757", "6bec1a6c8", "6df8ff49d", "8adff3783", "95a6855c5", "984e5beb3", "9d924e9a6", "a19edcd24", "a2385cac1", "a44d71351", "a466ea33c", "aed038795", "aed766ab5", "afabfcc0e", "ba8c4089d", "bd6537185", "c1b048f49", "c40071717", "c761c9fee", "cf7e5f55b", "d2dd5df51", "db951dd19", "dfb2d8039", "e8f4922c8", "ec3aebdbd", "f1d0b09cf", "f744e8906", "fcd15f135", "fed83cdac", "ffbdab65d"], "source_commits": ["0cc3b12d2", "286c8bc64", "2e5e90d8d", "640768ceb", "6655c0757", "8adff3783", "db951dd19", "ec3aebdbd"], "source_entry_id": "9.5.4/changes/002", "db_id": "bdb6b8e74fc06a96ecfb7b5ad29967cd", "patch_ids": ["07f83015ae5c85d0d8d38153ecbfdadc", "0dc72133c17ed7b01dda27ac687a46f2", "41eb22c90dec54678928c200c169ce89", "4b07a4800712d0afce841a9e3524bd91", "8c81c65250e2e86a03ddd78aa7c434a1", "cb5cdb420a7d53cbf1749c56ecc1241e", "cbd664d8c1d675a9844afb67e4bbfba2", "e3f241d312be19a21848bdbd860d46d5"], "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": "63c43a4b0f3c1339cd9941cad497e347", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}}, {"rule": 2, "type": "equivalent", "target": "7a7b683c7ab6c4ba5877842aace85792", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}}], "version": "9.5.4", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "63c43a4b0f3c1339cd9941cad497e347", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复客户端程序对数据库名和角色名中特殊字符的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4801b0fadc23576b16b34a3d66eb4b2b49fecccdc25aa38018e203c28f6acd58"}, "url": "/docs/compare/?release=9.1.23#9.1.23-5569510630fb5e18", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "ce9683edbd562f29230a5236b73ae27d2692e717b4deae8dfcaff352f4fe043e", "section_path": ["变更"], "commit_groups": [["069714387", "1e2f96f0a", "66f7e4081", "7b8526e5d", "9492cf86e", "c0e5096fc"], ["0733188cc", "4452000f3", "bcdd8a194", "c235d510e", "d243bf77c", "d2ef7758d"]], "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": ["069714387", "0733188cc", "1e2f96f0a", "4452000f3", "66f7e4081", "7b8526e5d", "9492cf86e", "bcdd8a194", "c0e5096fc", "c235d510e", "d243bf77c", "d2ef7758d"], "source_commits": ["1e2f96f0a", "d2ef7758d"], "source_entry_id": "9.5.4/changes/003", "db_id": "1325513f170836bb70f5236c128157b2", "patch_ids": ["5c033789bf87c3b63b6d2701147681af", "d11a9dadc4b5c983eea8fbb9d70c0161"], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca", "relations": [{"rule": 2, "type": "equivalent", "target": "0e93aac7e3320e342eb8ac00449e464d", "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"}}, {"rule": 2, "type": "equivalent", "target": "f3ac524c779beb413068db9c5bc7f203", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}}], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "f3ac524c779beb413068db9c5bc7f203", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复对嵌套组合值应用 IS NULL/IS NOT NULL 时的边界错误行为", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6794247292ae29ff448d21bf6d98e42a7951dd5e3b77e3cf584e7d6a0e4191ca"}, "url": "/docs/compare/?release=9.1.23#9.1.23-87b533c688a1318e", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-1eb8afaffabd6d84", "cves": [], "html": "<p>修复递归 CTE（<code>WITH</code> 项）中的 <code>INSERT ... ON CONFLICT</code> 出现<span>“<span>unrecognized node type</span>”</span>错误的问题（Peter Geoghegan）</p>", "text": "修复递归 CTE（WITH 项）中的 INSERT ... ON CONFLICT 出现“unrecognized node type”错误的问题（Peter Geoghegan）", "title": "修复递归 CTE（WITH 项）中的 INSERT ... ON CONFLICT 出现“unrecognized node type”错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "4ffa4bbb9a913039ffbcf7c24ef9e9a2e37dd393020d56fbf16b8f826c946d26", "section_path": ["变更"], "commit_groups": [["e504d915b", "eae1ad9b6"]], "identity_text": "Fix unrecognized node type error for INSERT ... ON CONFLICT within a recursive CTE (a WITH item) (Peter Geoghegan)", "commit_aliases": ["e504d915b", "eae1ad9b6"], "source_commits": ["e504d915b"], "source_entry_id": "9.5.4/changes/004", "db_id": "04c7b284be87fba12e9c392e772bcd6e", "patch_ids": ["32661b0fc6bd7c19e7a06f378ca6b660"], "statement_hash": "4bdf80c96ca8febb49082de27109b1e3e7555d920b704f359ea50145e7ec43a8", "relations": [], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-9160b49444438707", "cves": [], "html": "<p>修复 <code>INSERT ... ON CONFLICT</code>，使其能成功匹配在规划器表达式预处理阶段被简化的索引表达式或索引谓词（Tom Lane）</p>", "text": "修复 INSERT ... ON CONFLICT，使其能成功匹配在规划器表达式预处理阶段被简化的索引表达式或索引谓词（Tom Lane）", "title": "修复 INSERT ... ON CONFLICT，使其能成功匹配在规划器表达式预处理阶段被简化的索引表达式或索引谓词", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "12d3d669190fc996f6b5a254f274acd2755a9ab6dabb964fb1f621cc6508cb78", "section_path": ["变更"], "commit_groups": [["26e66184d", "58d802410"]], "identity_text": "Fix INSERT ... ON CONFLICT to successfully match index expressions or index predicates that are simplified during the planner's expression preprocessing phase (Tom Lane)", "commit_aliases": ["26e66184d", "58d802410"], "source_commits": ["58d802410"], "source_entry_id": "9.5.4/changes/005", "db_id": "3cb42366b3cd3cc91c4f24dd8d2b5270", "patch_ids": ["0a90301a26bc298d7857a03247b82537"], "statement_hash": "6259f1ae7ff61f0fa18cd284ab3d34427f1d30853e47688905a3b464ec814fee", "relations": [], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-0383dfccdc4dd2ad", "cves": [], "html": "<p>正确处理这样的排除约束冲突：约束作用于 <code>INSERT ... ON CONFLICT</code> 命令的目标表，但不是所选仲裁索引之一（Tom Lane）</p>\n<p>这种情况本应引发普通的约束冲突错误，但实际上陷入了无限循环。</p>", "text": "正确处理这样的排除约束冲突：约束作用于 INSERT ... ON CONFLICT 命令的目标表，但不是所选仲裁索引之一（Tom Lane） 这种情况本应引发普通的约束冲突错误，但实际上陷入了无限循环。", "title": "正确处理这样的排除约束冲突：约束作用于 INSERT ... ON CONFLICT 命令的目标表，但不是所选仲裁索引之一", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "d5c99dfacd40ddbbb2573545089e95a95f03997916abf4e6610da14069a7d511", "section_path": ["变更"], "commit_groups": [["31ce32ade", "9c810a2ed"]], "identity_text": "Correctly handle violations of exclusion constraints that apply to the target table of an INSERT ... ON CONFLICT command, but are not one of the selected arbiter indexes (Tom Lane) Such a case should raise a normal constraint-violation error, but it got into an infinite loop instead.", "commit_aliases": ["31ce32ade", "9c810a2ed"], "source_commits": ["31ce32ade"], "source_entry_id": "9.5.4/changes/006", "db_id": "4b7ff8a01dd7abd54517618218bd6ca6", "patch_ids": ["e9fe7df5ed2dd34661e95eb74fa486b7"], "statement_hash": "88a8e29681cd21cf77163918c7b63bf29352a1cc08f4bc32b5aae8cc682b4318", "relations": [], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-8cdfc283ffe54f01", "cves": [], "html": "<p>修复目标表在 OID 上有唯一索引时 <code>INSERT ... ON CONFLICT</code> 失败的问题（Tom Lane）</p>", "text": "修复目标表在 OID 上有唯一索引时 INSERT ... ON CONFLICT 失败的问题（Tom Lane）", "title": "修复目标表在 OID 上有唯一索引时 INSERT ... ON CONFLICT 失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "20e134b8266f739111f569db26d83d8c713cbbe1e6293218482f150971f7b9fb", "section_path": ["变更"], "commit_groups": [["428484ce1", "8a13d5e6d"]], "identity_text": "Fix INSERT ... ON CONFLICT to not fail if the target table has a unique index on OID (Tom Lane)", "commit_aliases": ["428484ce1", "8a13d5e6d"], "source_commits": ["428484ce1"], "source_entry_id": "9.5.4/changes/007", "db_id": "e73a4556bd38994daeec7f9f5273e91e", "patch_ids": ["8ed418820be424b1e4b73783b40687f2"], "statement_hash": "bb6a422f8bf733f5923d76f4bb90a5e556ff585af338179a7ddaaaa079218d44", "relations": [], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "c9476e72e3cbf26cdecfcdfc8a638b444abf112fbc4a32133850926fc51fc59f", "section_path": ["变更"], "commit_groups": [["2a8b5d210", "4c56f3269", "519445ba2", "7b97dafa2", "a41b14f94", "f66e0fec3"]], "identity_text": "Make the inet and cidr data types properly reject IPv6 addresses with too many colon-separated fields (Tom Lane)", "commit_aliases": ["2a8b5d210", "4c56f3269", "519445ba2", "7b97dafa2", "a41b14f94", "f66e0fec3"], "source_commits": ["a41b14f94"], "source_entry_id": "9.5.4/changes/008", "db_id": "b2f4463d234de946367ddf3e394b0d74", "patch_ids": ["056735e75a8c8093b346b03eb7fe83d4"], "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": "cb3d9a3e3d73aae5f22d0a54c7f2128f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}}, {"rule": 2, "type": "equivalent", "target": "ea28dbf9995366c5e20e174ab1b33268", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "ea28dbf9995366c5e20e174ab1b33268", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "使 inet 和 cidr 数据类型正确拒绝包含过多冒号分隔字段的 IPv6 地址", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d10558af9a3c96672b51761862cec313c309ea41054fd7281c7bcddfed6dd71f"}, "url": "/docs/compare/?release=9.1.23#9.1.23-56b487394f50223a", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "9406e6d946a2f2e086ec58a8b388189a90fa0a98a18b97ab48d7e35f7d171b33", "section_path": ["变更"], "commit_groups": [["16e28fcec", "278148907", "59fa0195c", "608cc0c41", "884bae143", "89b301104"]], "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": ["16e28fcec", "278148907", "59fa0195c", "608cc0c41", "884bae143", "89b301104"], "source_commits": ["884bae143"], "source_entry_id": "9.5.4/changes/009", "db_id": "bacd1fafc9c5dad12ad6451a6563e6b5", "patch_ids": ["c9e7c846fa7aa5ad59a708e9c701d5c7"], "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": "be987efacf6f2d9fc768f60a36407b4a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}}, {"rule": 2, "type": "equivalent", "target": "f6befc78e79b4d8983bc10b5fe95eb05", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}}], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "f6befc78e79b4d8983bc10b5fe95eb05", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "防止 close_ps()（point ## lseg 操作符）在输入坐标为 NaN 时崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a748730c201f9bdb465612f24408a891b422f45c68adfaf8d7a0162636d2c98d"}, "url": "/docs/compare/?release=9.1.23#9.1.23-8d7dfab887d6be73", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-33f376976fb7e36b", "cves": [], "html": "<p>避免向 <code>pg_get_expr()</code> 传入不一致的值时可能发生的崩溃（Michael Paquier、Thomas Munro）</p>", "text": "避免向 pg_get_expr() 传入不一致的值时可能发生的崩溃（Michael Paquier、Thomas Munro）", "title": "避免向 pg_get_expr() 传入不一致的值时可能发生的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "21d1f6c31be6f10b22d8fb2adff87a1146bec49d0838af60cb4dd034d3475051", "section_path": ["变更"], "commit_groups": [["0daeba0e9", "40d0bd8d5", "b0f20c2ea", "b25d87f91"]], "identity_text": "Avoid possible crash in pg_get_expr() when inconsistent values are passed to it (Michael Paquier, Thomas Munro)", "commit_aliases": ["0daeba0e9", "40d0bd8d5", "b0f20c2ea", "b25d87f91"], "source_commits": ["40d0bd8d5"], "source_entry_id": "9.5.4/changes/010", "db_id": "cec16839cb56fce18150e2aca9b04bf2", "patch_ids": ["c95557bee518bb20d8ea867f0a0a0439"], "statement_hash": "31fa0e151c8c196fc25b35667955883884133540145ab0758cdc0e738563ca93", "relations": [{"rule": 2, "type": "equivalent", "target": "0e54ed602764891091d2f1f1e6557b8e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31fa0e151c8c196fc25b35667955883884133540145ab0758cdc0e738563ca93"}}, {"rule": 2, "type": "equivalent", "target": "44cb70028da1e6f58d35f03cd7bf7618", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31fa0e151c8c196fc25b35667955883884133540145ab0758cdc0e738563ca93"}}], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e54ed602764891091d2f1f1e6557b8e", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免向 pg_get_expr() 传入不一致的值时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31fa0e151c8c196fc25b35667955883884133540145ab0758cdc0e738563ca93"}, "url": "/docs/compare/?release=9.4.9#9.4.9-33f376976fb7e36b", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "44cb70028da1e6f58d35f03cd7bf7618", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "避免向 pg_get_expr() 传入不一致的值时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "31fa0e151c8c196fc25b35667955883884133540145ab0758cdc0e738563ca93"}, "url": "/docs/compare/?release=9.3.14#9.3.14-33f376976fb7e36b", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "77e98590196a749e339d59b3afb7f013388a0c2092525b6692d1db35c8ab071b", "section_path": ["变更"], "commit_groups": [["04cee8f83", "20f870fd7", "43d7a0af5", "9a46324fd", "b0134fe84", "d555d2642"]], "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": ["04cee8f83", "20f870fd7", "43d7a0af5", "9a46324fd", "b0134fe84", "d555d2642"], "source_commits": ["04cee8f83"], "source_entry_id": "9.5.4/changes/011", "db_id": "1c549be0c9b5119a54f3ce0563a8a584", "patch_ids": ["33a9a07383f4d65e9c4b3f59e480a510"], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea", "relations": [{"rule": 2, "type": "equivalent", "target": "435638beeeb265cc6a3e544860e061f9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}}, {"rule": 2, "type": "equivalent", "target": "983d2a8843882bd744c784b543d8b20e", "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.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "983d2a8843882bd744c784b543d8b20e", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复 to_number() 中几处一字节缓冲区过读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d59e3c843790067281f2d3a42a9ed7d5af0a6910c57d4cce10d235a86ed3b7ea"}, "url": "/docs/compare/?release=9.1.23#9.1.23-a55daa0626d05db7", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-70f513fec5f49605", "cves": [], "html": "<p>当指定了 <code>WITH NO DATA</code> 时，不对 <code>CREATE MATERIALIZED VIEW</code> 或 <code>CREATE TABLE AS</code> 中包含的查询运行规划器（Michael Paquier、Tom Lane）</p>\n<p>这避免了一些不必要的失败条件，例如物化视图调用的稳定函数依赖某个尚不存在的表时。</p>", "text": "当指定了 WITH NO DATA 时，不对 CREATE MATERIALIZED VIEW 或 CREATE TABLE AS 中包含的查询运行规划器（Michael Paquier、Tom Lane） 这避免了一些不必要的失败条件，例如物化视图调用的稳定函数依赖某个尚不存在的表时。", "title": "当指定了 WITH NO DATA 时，不对 CREATE MATERIALIZED VIEW 或 CREATE TABLE AS 中包含的查询运行规划器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "d0d182cd68ed8e04accdd649e619be2543ba64518d88a0d03d5137337598dd43", "section_path": ["变更"], "commit_groups": [["1651b9aa2", "17bfef80e", "874fe3aea", "dc9e03bf4"]], "identity_text": "Do not run the planner on the query contained in CREATE MATERIALIZED VIEW or CREATE TABLE AS when WITH NO DATA is specified (Michael Paquier, Tom Lane) This avoids some unnecessary failure conditions, for example if a stable function invoked by the materialized view depends on a table that doesn't exist yet.", "commit_aliases": ["1651b9aa2", "17bfef80e", "874fe3aea", "dc9e03bf4"], "source_commits": ["1651b9aa2"], "source_entry_id": "9.5.4/changes/012", "db_id": "1d5baf57cb619725b74f259e6225c05e", "patch_ids": ["4c17565f94fbff89a023f8b41c6bc659"], "statement_hash": "8a2475ed16e563dd8bb46e85789f42648d96d30bf5233aed4c0ab48d7529020b", "relations": [{"rule": 2, "type": "equivalent", "target": "25fbdd9d2681899405fe3c5471954811", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a2475ed16e563dd8bb46e85789f42648d96d30bf5233aed4c0ab48d7529020b"}}, {"rule": 2, "type": "equivalent", "target": "a03d5b711ae6299c47dcb19562193d15", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a2475ed16e563dd8bb46e85789f42648d96d30bf5233aed4c0ab48d7529020b"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a03d5b711ae6299c47dcb19562193d15", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "当指定了 WITH NO DATA 时，不对 CREATE MATERIALIZED VIEW 或 CREATE TABLE AS 中包含的查询运行规划器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a2475ed16e563dd8bb46e85789f42648d96d30bf5233aed4c0ab48d7529020b"}, "url": "/docs/compare/?release=9.4.9#9.4.9-70f513fec5f49605", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "25fbdd9d2681899405fe3c5471954811", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "当指定了 WITH NO DATA 时，不对 CREATE MATERIALIZED VIEW 或 CREATE TABLE AS 中包含的查询运行规划器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a2475ed16e563dd8bb46e85789f42648d96d30bf5233aed4c0ab48d7529020b"}, "url": "/docs/compare/?release=9.3.14#9.3.14-70f513fec5f49605", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "9fa91b7e93329f736ed9654861fdeeb985eedc688adc7f1555edfed656c7588d", "section_path": ["变更"], "commit_groups": [["1f9534b49", "2e51ae1f6", "37276017f", "3d5b227ba", "941557f18", "bfa2ab56b"]], "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": ["1f9534b49", "2e51ae1f6", "37276017f", "3d5b227ba", "941557f18", "bfa2ab56b"], "source_commits": ["1f9534b49"], "source_entry_id": "9.5.4/changes/013", "db_id": "a2779b66f6afaccc1659cb5dd1bbdfa9", "patch_ids": ["0cc6689f2f127efea3a7085974b3f336"], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355", "relations": [{"rule": 2, "type": "equivalent", "target": "21693008fe1c0f2471c27ebaaad6833e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}}, {"rule": 2, "type": "equivalent", "target": "5b02640f40138234e43a578c68fa2c74", "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": "a278009cf4c5b491be6b9a16568fd64f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "5b02640f40138234e43a578c68fa2c74", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "避免在经过 heap_update() 的高开销路径中出现不安全的中间状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9e33b6e7cbc1665080a571fe40b3ca4f4edf3fbc0bc20f0846eeef47171f8355"}, "url": "/docs/compare/?release=9.1.23#9.1.23-bb2e1976fd24c39d", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-3b66deefa4802e4b", "cves": [], "html": "<p>修复行锁定操作 WAL 重放期间的提示位更新（Andres Freund）</p>\n<p>此问题唯一已知的后果是，已预备但未提交的事务所持有的行锁，在崩溃并重启之后可能无法被执行。</p>", "text": "修复行锁定操作 WAL 重放期间的提示位更新（Andres Freund） 此问题唯一已知的后果是，已预备但未提交的事务所持有的行锁，在崩溃并重启之后可能无法被执行。", "title": "修复行锁定操作 WAL 重放期间的提示位更新", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "40ba4b2e4fea014d9fe4e26815851961effcb7724dcc18277479276b7b6001b2", "section_path": ["变更"], "commit_groups": [["46acbeb2f", "a4d357bfb", "b33e81cba", "f66828ba6"]], "identity_text": "Fix hint bit update during WAL replay of row locking operations (Andres Freund) The only known consequence of this problem is that row locks held by a prepared, but uncommitted, transaction might fail to be enforced after a crash and restart.", "commit_aliases": ["46acbeb2f", "a4d357bfb", "b33e81cba", "f66828ba6"], "source_commits": ["b33e81cba"], "source_entry_id": "9.5.4/changes/014", "db_id": "5642042574e9c83ccb28ae30665ef9f1", "patch_ids": ["0d4a41836922ede0ef8063f6f0d6a0ee"], "statement_hash": "7d7c3f1befffdbefc8ca2f5134741a288b4ce50c7833d8521042e7c883e11bbc", "relations": [{"rule": 2, "type": "equivalent", "target": "49b0e1c9b0d99f08f45ff4aee8c59679", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d7c3f1befffdbefc8ca2f5134741a288b4ce50c7833d8521042e7c883e11bbc"}}, {"rule": 2, "type": "equivalent", "target": "a94aca966b518753efc3e4c9dbf5713c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d7c3f1befffdbefc8ca2f5134741a288b4ce50c7833d8521042e7c883e11bbc"}}], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a94aca966b518753efc3e4c9dbf5713c", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复行锁定操作 WAL 重放期间的提示位更新", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d7c3f1befffdbefc8ca2f5134741a288b4ce50c7833d8521042e7c883e11bbc"}, "url": "/docs/compare/?release=9.4.9#9.4.9-3b66deefa4802e4b", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "49b0e1c9b0d99f08f45ff4aee8c59679", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "修复行锁定操作 WAL 重放期间的提示位更新", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d7c3f1befffdbefc8ca2f5134741a288b4ce50c7833d8521042e7c883e11bbc"}, "url": "/docs/compare/?release=9.3.14#9.3.14-3b66deefa4802e4b", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}]}, {"id": "9.5.4-4a11c8065ec1a413", "cves": [], "html": "<p>避免在可串行化模式下获取 <code>FOR KEY SHARE</code> 行锁时出现不必要的<span>“<span>could not serialize access</span>”</span>错误（Álvaro Herrera）</p>", "text": "避免在可串行化模式下获取 FOR KEY SHARE 行锁时出现不必要的“could not serialize access”错误（Álvaro Herrera）", "title": "避免在可串行化模式下获取 FOR KEY SHARE 行锁时出现不必要的“could not serialize access”错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "3eed4de1df9e8120b5ee2a5e80a8255e925c749ae226d1b7372b33a07e44866a", "section_path": ["变更"], "commit_groups": [["166873dd0", "533e9c6b0", "649dd1b58", "6c243f90a"]], "identity_text": "Avoid unnecessary could not serialize access errors when acquiring FOR KEY SHARE row locks in serializable mode (Álvaro Herrera)", "commit_aliases": ["166873dd0", "533e9c6b0", "649dd1b58", "6c243f90a"], "source_commits": ["649dd1b58"], "source_entry_id": "9.5.4/changes/015", "db_id": "662e598a56d9e748ac9870a1ad393e18", "patch_ids": ["a0880ed663c16f7a8ee36db50390323b"], "statement_hash": "41b2ee0ee9708ee3575cd0a77527db135ee4ff0401bd5c0722d4d566e9923229", "relations": [{"rule": 2, "type": "equivalent", "target": "08facd3e548c4e4a89ed64ae9fcd12ce", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41b2ee0ee9708ee3575cd0a77527db135ee4ff0401bd5c0722d4d566e9923229"}}, {"rule": 2, "type": "equivalent", "target": "7cfc0002bd89af62060e7ac6ea035bbf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41b2ee0ee9708ee3575cd0a77527db135ee4ff0401bd5c0722d4d566e9923229"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "08facd3e548c4e4a89ed64ae9fcd12ce", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免在可串行化模式下获取 FOR KEY SHARE 行锁时出现不必要的“could not serialize access”错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41b2ee0ee9708ee3575cd0a77527db135ee4ff0401bd5c0722d4d566e9923229"}, "url": "/docs/compare/?release=9.4.9#9.4.9-4a11c8065ec1a413", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "7cfc0002bd89af62060e7ac6ea035bbf", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "避免在可串行化模式下获取 FOR KEY SHARE 行锁时出现不必要的“could not serialize access”错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "41b2ee0ee9708ee3575cd0a77527db135ee4ff0401bd5c0722d4d566e9923229"}, "url": "/docs/compare/?release=9.3.14#9.3.14-4a11c8065ec1a413", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}]}, {"id": "9.5.4-3f587b1e5d1806f8", "cves": [], "html": "<p>确保计划节点返回的<span>“<span>展开</span>”</span>数据是只读的（Tom Lane）</p>\n<p>这避免了在某些情况下，下层计划节点的结果被上层节点多处引用时的失败。就核心 <span>PostgreSQL</span> 而言，只有 PL/pgSQL 函数返回的数组值有风险；但扩展可能将展开数据用于其他用途。</p>", "text": "确保计划节点返回的“展开”数据是只读的（Tom Lane） 这避免了在某些情况下，下层计划节点的结果被上层节点多处引用时的失败。就核心 PostgreSQL 而言，只有 PL/pgSQL 函数返回的数组值有风险；但扩展可能将展开数据用于其他用途。", "title": "确保计划节点返回的“展开”数据是只读的", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "6e11b2dbde4ac19466eda34dff0a2e23ece75c11c818f85bc487e4597eaab0a3", "section_path": ["变更"], "commit_groups": [["69f526aa4", "a102f98e2"], ["8355897ff", "9eaf5be50"]], "identity_text": "Make sure expanded datums returned by a plan node are read-only (Tom Lane) This avoids failures in some cases where the result of a lower plan node is referenced in multiple places in upper nodes. So far as core PostgreSQL is concerned, only array values returned by PL/pgSQL functions are at risk; but extensions might use expanded datums for other things.", "commit_aliases": ["69f526aa4", "8355897ff", "9eaf5be50", "a102f98e2"], "source_commits": ["8355897ff", "a102f98e2"], "source_entry_id": "9.5.4/changes/016", "db_id": "b102d745b20c67898bc0dd17f6512549", "patch_ids": ["3e9df9f7c34ffc51fd36a2f8c05e70f2", "5ccbf1864d826339c8f4c32092c1d1f8"], "statement_hash": "f7c50a3b93c6449ecbb609fa95cd5209a1be3c9e22650f905b7bbe90c21c032e", "relations": [], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-c5c42466b6ad775e", "cves": [], "html": "<p>避免当指定变量的字符串值为空时 <code>postgres -C</code> 崩溃（Michael Paquier）</p>", "text": "避免当指定变量的字符串值为空时 postgres -C 崩溃（Michael Paquier）", "title": "避免当指定变量的字符串值为空时 postgres -C 崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "234a90492d2e1094c280df38b01e15fa3585204f9b879318f0017a640c9e0855", "section_path": ["变更"], "commit_groups": [["0b0baf262", "23ed284a5", "29987b2e1", "4f5995dd9", "e542bfe61"], ["dafdcbb6c", "dd41661d2", "e45e990e4", "f22a3e5ce", "f2c28bb1f"]], "identity_text": "Avoid crash in postgres -C when the specified variable has a null string value (Michael Paquier)", "commit_aliases": ["0b0baf262", "23ed284a5", "29987b2e1", "4f5995dd9", "dafdcbb6c", "dd41661d2", "e45e990e4", "e542bfe61", "f22a3e5ce", "f2c28bb1f"], "source_commits": ["4f5995dd9", "f2c28bb1f"], "source_entry_id": "9.5.4/changes/017", "db_id": "7439bff03c357723aac21c06c266f942", "patch_ids": ["b840e786cca2ebee81de76a44ec28970", "e2d0a8699d708d38437fb541a95668fb"], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c", "relations": [{"rule": 2, "type": "equivalent", "target": "9ee927fd45dd8ecfd5f9e1057f822517", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c"}}, {"rule": 2, "type": "equivalent", "target": "f92c3ecbbd977721dde5cde6d5ed6818", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c"}}, {"rule": 2, "type": "equivalent", "target": "f97d135fa057b79827815df9bd79ff94", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c"}}], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f97d135fa057b79827815df9bd79ff94", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免当指定变量的字符串值为空时 postgres -C 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c"}, "url": "/docs/compare/?release=9.4.9#9.4.9-c5c42466b6ad775e", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "9ee927fd45dd8ecfd5f9e1057f822517", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "避免当指定变量的字符串值为空时 postgres -C 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c"}, "url": "/docs/compare/?release=9.3.14#9.3.14-c5c42466b6ad775e", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "f92c3ecbbd977721dde5cde6d5ed6818", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "避免当指定变量的字符串值为空时 postgres -C 崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ddeac3e8de8c9868accf230bc53dcf6cc99e67fa7a1c8aaa12388fb4d0595f8c"}, "url": "/docs/compare/?release=9.2.18#9.2.18-c5c42466b6ad775e", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.5.4-2d0d3245f706f8ba", "cves": [], "html": "<p>防止 WAL 发送器进程意外等待接收器（Kyotaro Horiguchi）</p>", "text": "防止 WAL 发送器进程意外等待接收器（Kyotaro Horiguchi）", "title": "防止 WAL 发送器进程意外等待接收器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "c9a587d1f9050458410795542c0de11962dff4ad2e3320dd2af7c147dcef34c2", "section_path": ["变更"], "commit_groups": [["80b346c20", "c8966a925"]], "identity_text": "Prevent unintended waits for the receiver in WAL sender processes (Kyotaro Horiguchi)", "commit_aliases": ["80b346c20", "c8966a925"], "source_commits": ["c8966a925"], "source_entry_id": "9.5.4/changes/018", "db_id": "a6e5b5cdf6fcc69ddfc18d57e76d0352", "patch_ids": ["50a5659ca1ddc2ed186910129378578e"], "statement_hash": "542045354897dac6e58b516b021227321aadf85c87a0be2700cb5dfe545badb6", "relations": [], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-468277d7b6d405fa", "cves": [], "html": "<p>修复逻辑解码中可能丢失大型子事务的问题（Petru-Florin Mihancea）</p>", "text": "修复逻辑解码中可能丢失大型子事务的问题（Petru-Florin Mihancea）", "title": "修复逻辑解码中可能丢失大型子事务的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "7780eebe1da99f80342c377c80fc842f1a223c129fc8a8d87edc3b10a96913bf", "section_path": ["变更"], "commit_groups": [["1843d88e0", "8caf9fe62", "f8c58554d"]], "identity_text": "Fix possible loss of large subtransactions in logical decoding (Petru-Florin Mihancea)", "commit_aliases": ["1843d88e0", "8caf9fe62", "f8c58554d"], "source_commits": ["8caf9fe62"], "source_entry_id": "9.5.4/changes/019", "db_id": "06c011e95fd3a489c059e71b4f8c6363", "patch_ids": ["47a5d0f28e13fe87b55c64cb88270e4a"], "statement_hash": "f354f29f73ac9942d52c4b1bc1a4e19dd24fa98da3c69936b6e05f279300f934", "relations": [{"rule": 2, "type": "equivalent", "target": "3bce5d7919b083efe8f33d616a83d647", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f354f29f73ac9942d52c4b1bc1a4e19dd24fa98da3c69936b6e05f279300f934"}}], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3bce5d7919b083efe8f33d616a83d647", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复逻辑解码中可能丢失大型子事务的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f354f29f73ac9942d52c4b1bc1a4e19dd24fa98da3c69936b6e05f279300f934"}, "url": "/docs/compare/?release=9.4.9#9.4.9-468277d7b6d405fa", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.5.4-21eae90dc5fa517c", "cves": [], "html": "<p>修复子事务不包含实际更改时逻辑解码失败的问题（Marko Tiikkaja、Andrew Gierth）</p>", "text": "修复子事务不包含实际更改时逻辑解码失败的问题（Marko Tiikkaja、Andrew Gierth）", "title": "修复子事务不包含实际更改时逻辑解码失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "979827d32d54b2b2bb1a1013f9196c221d6aacac5bafabb27c33fdca349344e8", "section_path": ["变更"], "commit_groups": [["71dca408c", "bcbecbce2", "c63588feb"]], "identity_text": "Fix failure of logical decoding when a subtransaction contains no actual changes (Marko Tiikkaja, Andrew Gierth)", "commit_aliases": ["71dca408c", "bcbecbce2", "c63588feb"], "source_commits": ["71dca408c"], "source_entry_id": "9.5.4/changes/020", "db_id": "ccc73ec16e1f4887660a7448a784b008", "patch_ids": ["a76df2c573fe2ccd3ccb92ed2c30418b"], "statement_hash": "b4d1c3ef55aa8f3bbfcd99671cc7c372f8694b3e3c1efada235bbdb494ea885b", "relations": [{"rule": 2, "type": "equivalent", "target": "430750f620e26405af521658e4e81094", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b4d1c3ef55aa8f3bbfcd99671cc7c372f8694b3e3c1efada235bbdb494ea885b"}}], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "430750f620e26405af521658e4e81094", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复子事务不包含实际更改时逻辑解码失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b4d1c3ef55aa8f3bbfcd99671cc7c372f8694b3e3c1efada235bbdb494ea885b"}, "url": "/docs/compare/?release=9.4.9#9.4.9-21eae90dc5fa517c", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.5.4-2cc63152b2a412b7", "cves": [], "html": "<p>确保后端能看到共享目录的最新统计信息（Tom Lane）</p>\n<p>统计收集器在普通后端发出请求后，未能更新共享目录的统计文件。这个问题被部分掩盖了，因为自动清理启动器会定期发出确实触发此类更新的请求；但在禁用自动清理时就变得明显了。</p>", "text": "确保后端能看到共享目录的最新统计信息（Tom Lane） 统计收集器在普通后端发出请求后，未能更新共享目录的统计文件。这个问题被部分掩盖了，因为自动清理启动器会定期发出确实触发此类更新的请求；但在禁用自动清理时就变得明显了。", "title": "确保后端能看到共享目录的最新统计信息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "df01ee3af5c5f0ad26c8fe55eeaae994d7d7b1fa05c3d50cf5e943d11131a903", "section_path": ["变更"], "commit_groups": [["463207630", "4b612a78f", "52e8fc3e2", "b2355a29c"]], "identity_text": "Ensure that backends see up-to-date statistics for shared catalogs (Tom Lane) The statistics collector failed to update the statistics file for shared catalogs after a request from a regular backend. This problem was partially masked because the autovacuum launcher regularly makes requests that did cause such updates; however, it became obvious with autovacuum disabled.", "commit_aliases": ["463207630", "4b612a78f", "52e8fc3e2", "b2355a29c"], "source_commits": ["b2355a29c"], "source_entry_id": "9.5.4/changes/021", "db_id": "f5980f69fbaabf1e1d1b9dcf28ddc235", "patch_ids": ["f6a7fb3c962702c3f7a37314a6791a2d"], "statement_hash": "c201aca81632d12ebf595d717b1fc7f89169986d89e932f63554a71df65ab2a7", "relations": [{"rule": 2, "type": "equivalent", "target": "295d88c0920c31525772683ebc75f470", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c201aca81632d12ebf595d717b1fc7f89169986d89e932f63554a71df65ab2a7"}}, {"rule": 2, "type": "equivalent", "target": "b56ae62d33eb2e9772652d78dc68e7d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c201aca81632d12ebf595d717b1fc7f89169986d89e932f63554a71df65ab2a7"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b56ae62d33eb2e9772652d78dc68e7d1", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "确保后端能看到共享目录的最新统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c201aca81632d12ebf595d717b1fc7f89169986d89e932f63554a71df65ab2a7"}, "url": "/docs/compare/?release=9.4.9#9.4.9-2cc63152b2a412b7", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "295d88c0920c31525772683ebc75f470", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "确保后端能看到共享目录的最新统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c201aca81632d12ebf595d717b1fc7f89169986d89e932f63554a71df65ab2a7"}, "url": "/docs/compare/?release=9.3.14#9.3.14-2cc63152b2a412b7", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}]}, {"id": "9.5.4-105dc0765f97edfc", "cves": [], "html": "<p>当多个后端相继请求更新时，避免统计文件的冗余写入（Tom Lane、Tomas Vondra）</p>", "text": "当多个后端相继请求更新时，避免统计文件的冗余写入（Tom Lane、Tomas Vondra）", "title": "当多个后端相继请求更新时，避免统计文件的冗余写入", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "cf562adbc89e9d75b7aaf77304b1b179eaa6b1eb9026be4c05b7e3c81accf968", "section_path": ["变更"], "commit_groups": [["22b27b4c9", "3ffff7257", "47215c16f", "a84cad224"]], "identity_text": "Avoid redundant writes of the statistics files when multiple backends request updates close together (Tom Lane, Tomas Vondra)", "commit_aliases": ["22b27b4c9", "3ffff7257", "47215c16f", "a84cad224"], "source_commits": ["47215c16f"], "source_entry_id": "9.5.4/changes/022", "db_id": "81de7ff9f9ccca8938d21c3d7f942d7b", "patch_ids": ["4b387c57dc2b3e21fcea4a68b62da5b6"], "statement_hash": "24d03e5815cb2c68c2b12c86d9cec8bc99fdf1737f2e4308d1bf0575af0fc81f", "relations": [{"rule": 2, "type": "equivalent", "target": "1f6658027f10ab69157926962b9d7ea6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d03e5815cb2c68c2b12c86d9cec8bc99fdf1737f2e4308d1bf0575af0fc81f"}}, {"rule": 2, "type": "equivalent", "target": "bb8413fa9276b00c6d807e33dc39b577", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d03e5815cb2c68c2b12c86d9cec8bc99fdf1737f2e4308d1bf0575af0fc81f"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "bb8413fa9276b00c6d807e33dc39b577", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免多个后端进程密集请求更新时统计信息文件的冗余写入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d03e5815cb2c68c2b12c86d9cec8bc99fdf1737f2e4308d1bf0575af0fc81f"}, "url": "/docs/compare/?release=9.4.9#9.4.9-23ce7ade02182a39", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "1f6658027f10ab69157926962b9d7ea6", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "当多个后端相继请求更新时，避免统计文件的冗余写入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "24d03e5815cb2c68c2b12c86d9cec8bc99fdf1737f2e4308d1bf0575af0fc81f"}, "url": "/docs/compare/?release=9.3.14#9.3.14-105dc0765f97edfc", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "91ea95379450ea2b2e8f49492c6aacfe381a95f542bfd2a2044bde70893d85a5", "section_path": ["变更"], "commit_groups": [["2d2e40e3b", "4cf0978ea", "5551dac59", "bbbe2c97e", "edd8873ff", "ff98ae908"], ["2e7f0c34a", "996d27397", "9f3e4c813", "a34c3dd50", "defe936ef", "fe1731fca"]], "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": ["2d2e40e3b", "2e7f0c34a", "4cf0978ea", "5551dac59", "996d27397", "9f3e4c813", "a34c3dd50", "bbbe2c97e", "defe936ef", "edd8873ff", "fe1731fca", "ff98ae908"], "source_commits": ["a34c3dd50", "bbbe2c97e"], "source_entry_id": "9.5.4/changes/023", "db_id": "657e321b0618cbd443eb28ab46d13fa2", "patch_ids": ["12e012aaa3f0071993ffc3a141097d7a", "8e12cf8e8ed3d8e0a9dfc5595f1f5787"], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b", "relations": [{"rule": 2, "type": "equivalent", "target": "245bacac3613e40c66473815f0e6656b", "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": "a78cb47b904bd16b9167821289ef89be", "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.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "a78cb47b904bd16b9167821289ef89be", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "避免在 VACUUM 期间消耗事务 ID", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "85d3c69959256ff358c0242b8fc79bcd0518c88db2021be295633711a00a551b"}, "url": "/docs/compare/?release=9.1.23#9.1.23-dfd1c606bedf6e4a", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-cfa4f2eb43e830f6", "cves": [], "html": "<p>防止在从 9.3 之前版本 pg_upgrade 而来的安装中清理多事务 ID 时可能出现的失败（Andrew Gierth、Álvaro Herrera）</p>\n<p>此 bug 的常见症状是类似<span>“<span>MultiXactId <em><code>NNN</code></em> has not been created yet -- apparent wraparound</span>”</span>的错误。</p>", "text": "防止在从 9.3 之前版本 pg_upgrade 而来的安装中清理多事务 ID 时可能出现的失败（Andrew Gierth、Álvaro Herrera） 此 bug 的常见症状是类似“MultiXactId NNN has not been created yet -- apparent wraparound”的错误。", "title": "防止在从 9.3 之前版本 pg_upgrade 而来的安装中清理多事务 ID 时可能出现的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "ee7699aa84cf8ae630427b89a495a3bb9c4a4097e56c14018a1f0d31e47cdffe", "section_path": ["变更"], "commit_groups": [["28f294afd", "61b24fef8", "d372cb173", "e3ad3ffa6"]], "identity_text": "Prevent possible failure when vacuuming multixact IDs in an installation that has been pg_upgrade'd from pre-9.3 (Andrew Gierth, Álvaro Herrera) The usual symptom of this bug is errors like MultiXactId NNN has not been created yet -- apparent wraparound.", "commit_aliases": ["28f294afd", "61b24fef8", "d372cb173", "e3ad3ffa6"], "source_commits": ["d372cb173"], "source_entry_id": "9.5.4/changes/024", "db_id": "b1a86802424e4c0174a0fbdb2e827456", "patch_ids": ["1c9b87e97d94c9c5a63efd72f80ad171"], "statement_hash": "66423bbc6d0e5b1aa710675e3cd5d21a50c7343ceef1e2badcf0487ce4bb0b81", "relations": [{"rule": 2, "type": "equivalent", "target": "b00e5205b05e445d6296c7a5327bf9f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66423bbc6d0e5b1aa710675e3cd5d21a50c7343ceef1e2badcf0487ce4bb0b81"}}, {"rule": 2, "type": "equivalent", "target": "c8f0aeebb104e69419897aa9ce07c780", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66423bbc6d0e5b1aa710675e3cd5d21a50c7343ceef1e2badcf0487ce4bb0b81"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c8f0aeebb104e69419897aa9ce07c780", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "防止在从 9.3 之前版本 pg_upgrade 而来的安装中清理多事务 ID 时可能出现的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66423bbc6d0e5b1aa710675e3cd5d21a50c7343ceef1e2badcf0487ce4bb0b81"}, "url": "/docs/compare/?release=9.4.9#9.4.9-cfa4f2eb43e830f6", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "b00e5205b05e445d6296c7a5327bf9f7", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "防止在从 9.3 之前版本 pg_upgrade 而来的安装中清理多事务 ID 时可能出现的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66423bbc6d0e5b1aa710675e3cd5d21a50c7343ceef1e2badcf0487ce4bb0b81"}, "url": "/docs/compare/?release=9.3.14#9.3.14-cfa4f2eb43e830f6", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "b28437886496f6d12e05c4e85f7f6e5b0a13deb49dce89d2589b8ff1e730d6c3", "section_path": ["变更"], "commit_groups": [["3201709de", "32ceb8dfb", "5acc58c5e", "5f3e0e84b", "a4400c251", "f64340e74"]], "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": ["3201709de", "32ceb8dfb", "5acc58c5e", "5f3e0e84b", "a4400c251", "f64340e74"], "source_commits": ["5acc58c5e"], "source_entry_id": "9.5.4/changes/025", "db_id": "9fe407a179f44493611c74d98f28b0fe", "patch_ids": ["7886aef30df31a8a6bb6a5d6f6c3f03b"], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76", "relations": [{"rule": 2, "type": "equivalent", "target": "345a1c6e4fb97650731701be6759c4e4", "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": "bc1038861b281c19b4cecd2d71c33330", "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.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "bc1038861b281c19b4cecd2d71c33330", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "当手动 ANALYZE 指定列列表时，不要重置表的 changes_since_analyze 计数器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "373a5dbff4cd459ef9618500d8d9979e7672906813c281782bcab49c8ec18a76"}, "url": "/docs/compare/?release=9.1.23#9.1.23-7d5bb828a704b277", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "b614f783e822d7710fb08a17210865ccd302df4ab1b0e016d1aa47b6d99cc1bb", "section_path": ["变更"], "commit_groups": [["127d73009", "20a859504", "8f180a6cc", "95bee941b", "a449ad095", "cb5c14984"]], "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": ["127d73009", "20a859504", "8f180a6cc", "95bee941b", "a449ad095", "cb5c14984"], "source_commits": ["cb5c14984"], "source_entry_id": "9.5.4/changes/026", "db_id": "134f5aed845f23b414894823718d3af6", "patch_ids": ["0ba2eacf4cd448f99c4ee7f0b8381290"], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6", "relations": [{"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": "b9296c5607958d701591d8838e457c82", "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.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "b9296c5607958d701591d8838e457c82", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复 ANALYZE 对包含大量空值的唯一或近似唯一列的 n_distinct 高估", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d9d9d6cf94a0d95645826b3ea267d61135ed9d7d564b4124c3577e5d76aede6"}, "url": "/docs/compare/?release=9.1.23#9.1.23-d31ebed3e6a9579d", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-1cbf601805b0b84a", "cves": [], "html": "<p>防止自动清理为同一共享目录启动多个工作进程（Álvaro Herrera）</p>\n<p>通常这不是什么大问题，因为清理本来就不会花很长时间；但在目录严重膨胀的情况下，这可能导致除一个工作进程外的所有工作进程都在无用地等待，而不是对其他表做有用的工作。</p>", "text": "防止自动清理为同一共享目录启动多个工作进程（Álvaro Herrera） 通常这不是什么大问题，因为清理本来就不会花很长时间；但在目录严重膨胀的情况下，这可能导致除一个工作进程外的所有工作进程都在无用地等待，而不是对其他表做有用的工作。", "title": "防止自动清理为同一共享目录启动多个工作进程", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "73f4e6150b014b14cfc9599ac83c74736f70ea63ea747f792ee1ec8b1488a1de", "section_path": ["变更"], "commit_groups": [["15739393e", "2152762c5", "7516cdb76", "92ebe509e", "ca4c6d043", "e9a273199"]], "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": ["15739393e", "2152762c5", "7516cdb76", "92ebe509e", "ca4c6d043", "e9a273199"], "source_commits": ["7516cdb76"], "source_entry_id": "9.5.4/changes/027", "db_id": "2ab0a4a562fbca40a7331b9d1e3e3b05", "patch_ids": ["5536a887322fb56b0329ade9b3ccfc72"], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664", "relations": [{"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": "95a843298907e62a2807accb18b9a438", "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.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "95a843298907e62a2807accb18b9a438", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "防止自动清理为同一共享目录启动多个工作进程", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9cba4093fbc4b0dcb5ccec4fb0f73a7a65826b030eba7db85a3a2bb09fe37664"}, "url": "/docs/compare/?release=9.1.23#9.1.23-1cbf601805b0b84a", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-583f7b74dbc8a6ab", "cves": [], "html": "<p>修复 b-tree 标记/恢复处理中的 bug（Kevin Grittner）</p>\n<p>此错误可能导致内部源节点为 b-tree 索引扫描的合并连接中出现错误的连接结果或断言失败。</p>", "text": "修复 b-tree 标记/恢复处理中的 bug（Kevin Grittner） 此错误可能导致内部源节点为 b-tree 索引扫描的合并连接中出现错误的连接结果或断言失败。", "title": "修复 b-tree 标记/恢复处理中的 bug", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "7755136e39942b53177b6606226d260784a6280b85a603b7abafa87169d00b5f", "section_path": ["变更"], "commit_groups": [["236d569f9", "7392eed7c"]], "identity_text": "Fix bug in b-tree mark/restore processing (Kevin Grittner) This error could lead to incorrect join results or assertion failures in a merge join whose inner source node is a b-tree indexscan.", "commit_aliases": ["236d569f9", "7392eed7c"], "source_commits": ["236d569f9"], "source_entry_id": "9.5.4/changes/028", "db_id": "65a1ea00c92f90a40cbbc851f24314a5", "patch_ids": ["cee102fd63543c7e67427e9565d2d8e7"], "statement_hash": "d00d6aec8ec00605eaf3ec13f33293944e173068ebe466a9490b8a7abf9deaf8", "relations": [], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-acc7d49aac821f4b", "cves": [], "html": "<p>避免在放弃 b-tree 索引页删除尝试时重复释放缓冲区锁（Tom Lane）</p>\n<p>在涉及损坏的 b-tree 索引的某些情况下，这一错误导致 <code>VACUUM</code> 无法完成。</p>", "text": "避免在放弃 b-tree 索引页删除尝试时重复释放缓冲区锁（Tom Lane） 在涉及损坏的 b-tree 索引的某些情况下，这一错误导致 VACUUM 无法完成。", "title": "避免在放弃 b-tree 索引页删除尝试时重复释放缓冲区锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "d5448ee5b4f1c789e9eb18c0cc7155a15b46d46f1e8c678528c32edc94d321d5", "section_path": ["变更"], "commit_groups": [["98d5f366b", "e89526d4f", "ee5d1de04"]], "identity_text": "Avoid duplicate buffer lock release when abandoning a b-tree index page deletion attempt (Tom Lane) This mistake prevented VACUUM from completing in some cases involving corrupt b-tree indexes.", "commit_aliases": ["98d5f366b", "e89526d4f", "ee5d1de04"], "source_commits": ["ee5d1de04"], "source_entry_id": "9.5.4/changes/029", "db_id": "b454901e5478a7d7b34f8e069795cf12", "patch_ids": ["8e3436695e83702c17d4a5e4d16f0f77"], "statement_hash": "7c43c1102cd208443d570757eae81f75b0a8042f03fb34938d03efb5d1c31714", "relations": [{"rule": 2, "type": "equivalent", "target": "ec4c0809e2df4d7f1d662a67bc477241", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c43c1102cd208443d570757eae81f75b0a8042f03fb34938d03efb5d1c31714"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec4c0809e2df4d7f1d662a67bc477241", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "避免在放弃 b-tree 索引页删除尝试时重复释放缓冲区锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7c43c1102cd208443d570757eae81f75b0a8042f03fb34938d03efb5d1c31714"}, "url": "/docs/compare/?release=9.4.9#9.4.9-acc7d49aac821f4b", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}]}, {"id": "9.5.4-7d648e3b6bc06f7d", "cves": [], "html": "<p>修复大型（大于 <code>shared_buffers</code>）哈希索引的构建（Tom Lane）</p>\n<p>用于大型索引的代码路径包含一个 bug，导致错误的哈希值被插入索引，因此后续的索引搜索总是失败——初始构建之后插入索引的元组除外。</p>", "text": "修复大型（大于 shared_buffers）哈希索引的构建（Tom Lane） 用于大型索引的代码路径包含一个 bug，导致错误的哈希值被插入索引，因此后续的索引搜索总是失败——初始构建之后插入索引的元组除外。", "title": "修复大型（大于 shared_buffers）哈希索引的构建", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "c6cf6d9ee51b3b9bc2431adc31102922ea05b1c7adb5ee36e96452b8ca8c8e35", "section_path": ["变更"], "commit_groups": [["07f69137b", "8cf739de8"]], "identity_text": "Fix building of large (bigger than shared_buffers) hash indexes (Tom Lane) The code path used for large indexes contained a bug causing incorrect hash values to be inserted into the index, so that subsequent index searches always failed, except for tuples inserted into the index after the initial build.", "commit_aliases": ["07f69137b", "8cf739de8"], "source_commits": ["07f69137b"], "source_entry_id": "9.5.4/changes/030", "db_id": "b2ca6fa9a152a98169df38b3d8d75a97", "patch_ids": ["fc3f8b8f4dfddfc359d073977c776266"], "statement_hash": "7aaadeb83d1257641f4b5b1d16db1a673bdc94d62d010107be75c64b987492dc", "relations": [], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-9cd882f3302ef244", "cves": [], "html": "<p>防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环（Tom Lane）</p>", "text": "防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环（Tom Lane）", "title": "防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "d71d531f1996af4720fba8370e15c7116afc9df17fd9ed96bef3496a8659a651", "section_path": ["变更"], "commit_groups": [["042009f24", "054052b3a", "1acf75725", "503546376", "57dba87a7"]], "identity_text": "Prevent infinite loop in GiST index build for geometric columns containing NaN component values (Tom Lane)", "commit_aliases": ["042009f24", "054052b3a", "1acf75725", "503546376", "57dba87a7"], "source_commits": ["503546376"], "source_entry_id": "9.5.4/changes/031", "db_id": "8e419a4c91a188367938f4c04aa919ce", "patch_ids": ["fd8022da5ce9aaaa1cb4f713d2151b1a"], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1", "relations": [{"rule": 2, "type": "equivalent", "target": "068ed40f26bb0c982c0517a87948e02e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1"}}, {"rule": 2, "type": "equivalent", "target": "d96b4a944a267c9e170e29d9c236bd82", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1"}}, {"rule": 2, "type": "equivalent", "target": "dfdcbff0dc6f1989a602511198247a02", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d96b4a944a267c9e170e29d9c236bd82", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "防止为包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1"}, "url": "/docs/compare/?release=9.4.9#9.4.9-122411c278f77e4b", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "068ed40f26bb0c982c0517a87948e02e", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1"}, "url": "/docs/compare/?release=9.3.14#9.3.14-9cd882f3302ef244", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "dfdcbff0dc6f1989a602511198247a02", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "防止对包含 NaN 分量值的几何列构建 GiST 索引时出现无限循环", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f88f00daba541519ce4a9369f111d2b3accbecbf348e6103474aecb45fa1bc1"}, "url": "/docs/compare/?release=9.2.18#9.2.18-9cd882f3302ef244", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.5.4-76c54b28f9816657", "cves": [], "html": "<p>修复对 <code>interval</code> 列上的 <code>contrib/btree_gist</code> 索引执行最近邻（按距离 <code>ORDER BY</code>）索引扫描时可能的崩溃（Peter Geoghegan）</p>", "text": "修复对 interval 列上的 contrib/btree_gist 索引执行最近邻（按距离 ORDER BY）索引扫描时可能的崩溃（Peter Geoghegan）", "title": "修复对 interval 列上的 contrib/btree_gist 索引执行最近邻（按距离 ORDER BY）索引扫描时可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "036d6cad307c1257a6d322bfea7483f505fa326947d540a030d61393e500b849", "section_path": ["变更"], "commit_groups": [["8a859691d", "a7aa61ffe"]], "identity_text": "Fix possible crash during a nearest-neighbor (ORDER BY distance) indexscan on a contrib/btree_gist index on an interval column (Peter Geoghegan)", "commit_aliases": ["8a859691d", "a7aa61ffe"], "source_commits": ["a7aa61ffe"], "source_entry_id": "9.5.4/changes/032", "db_id": "fbe07cdcee91f183e9e33857242749a5", "patch_ids": ["283ffbae0c63257d75b4e728660f7d53"], "statement_hash": "c3d1c3f6356a438aea7272e1810c314ca802d0d1dd834cefd688c3b1eaf4b129", "relations": [], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-c4bd517cfa8c1356", "cves": [], "html": "<p>修复尝试更新 BRIN 索引条目时出现<span>“<span>PANIC: failed to add BRIN tuple</span>”</span>错误的问题（Álvaro Herrera）</p>", "text": "修复尝试更新 BRIN 索引条目时出现“PANIC: failed to add BRIN tuple”错误的问题（Álvaro Herrera）", "title": "修复尝试更新 BRIN 索引条目时出现“PANIC: failed to add BRIN tuple”错误的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "e766660626f1ec3f592c5f5dab596dec36130545d049086e063545efcede9415", "section_path": ["变更"], "commit_groups": [["2973d7d02", "975ad4e60"]], "identity_text": "Fix PANIC: failed to add BRIN tuple error when attempting to update a BRIN index entry (Álvaro Herrera)", "commit_aliases": ["2973d7d02", "975ad4e60"], "source_commits": ["2973d7d02"], "source_entry_id": "9.5.4/changes/033", "db_id": "d7d02fc51d0ebb52eec9bb89a3d78166", "patch_ids": ["1859627365410c79eca28fa896e85222"], "statement_hash": "5dc59abd38bd9e68cdd08033727b929cd56f4c84835e0cd3bf5775dc131fa4d2", "relations": [], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-4a6a5d957f1e7e22", "cves": [], "html": "<p>修复后台工作进程关闭期间可能的崩溃（Dmitry Ivanov）</p>", "text": "修复后台工作进程关闭期间可能的崩溃（Dmitry Ivanov）", "title": "修复后台工作进程关闭期间可能的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "2e499fdc851ed408929d5f7f180fcfdd1b210f8ceef4427cc7dee9757684a68c", "section_path": ["变更"], "commit_groups": [["8d498a5c8", "c1d6ee879"]], "identity_text": "Fix possible crash during background worker shutdown (Dmitry Ivanov)", "commit_aliases": ["8d498a5c8", "c1d6ee879"], "source_commits": ["c1d6ee879"], "source_entry_id": "9.5.4/changes/034", "db_id": "b4cd9985689596960239a21937f64b75", "patch_ids": ["b33ee003e5f4b8456f883c2f8bda6b73"], "statement_hash": "b810f907fbd44130df3bab8ffed7d85d6c4b0b105608cfd1529c3659c3d02d8f", "relations": [], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-3d48f17c02d01bcc", "cves": [], "html": "<p>修复 PL/pgSQL 对 <code>IMPORT FOREIGN SCHEMA</code> 命令中 <code>INTO</code> 子句的处理（Tom Lane）</p>", "text": "修复 PL/pgSQL 对 IMPORT FOREIGN SCHEMA 命令中 INTO 子句的处理（Tom Lane）", "title": "修复 PL/pgSQL 对 IMPORT FOREIGN SCHEMA 命令中 INTO 子句的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "73c938f917d351154cacab3765e871bbbc1fbd66bfaa69b573e0754b49265508", "section_path": ["变更"], "commit_groups": [["a0943dbbe", "baebab3ac"]], "identity_text": "Fix PL/pgSQL's handling of the INTO clause within IMPORT FOREIGN SCHEMA commands (Tom Lane)", "commit_aliases": ["a0943dbbe", "baebab3ac"], "source_commits": ["a0943dbbe"], "source_entry_id": "9.5.4/changes/035", "db_id": "70d7744ad7f2ac3924bf663a6914fe24", "patch_ids": ["5d7914281170626bcb39420af17efb06"], "statement_hash": "7f096af6e87b0f2d40007a9821f310b71cc60a0c8fda3194ea5e9e2d3bf626cc", "relations": [], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "33ffb3848873eaf0c87cf63f49ba1ec08b782242f19337e46cd458a86dd2b4ef", "section_path": ["变更"], "commit_groups": [["6c0be49b2", "805f2bb53", "84d679204", "97d741650", "f36ca9af0", "fb279fc7a"]], "identity_text": "Fix contrib/btree_gin to handle the smallest possible bigint value correctly (Peter Eisentraut)", "commit_aliases": ["6c0be49b2", "805f2bb53", "84d679204", "97d741650", "f36ca9af0", "fb279fc7a"], "source_commits": ["fb279fc7a"], "source_entry_id": "9.5.4/changes/036", "db_id": "2ad11cdb92cc42cb735a45158efb36df", "patch_ids": ["1aab9b8613b92ad2b168db074f91b39b"], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a", "relations": [{"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": "b332bfa26e9af409591a979c6287bf45", "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.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "b332bfa26e9af409591a979c6287bf45", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复 contrib/btree_gin，使其正确处理 bigint 的最小可能值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "699b9aa756f5a5ca5aabed3df1e82dde549a8f91de7b1f86a4e79da43214174a"}, "url": "/docs/compare/?release=9.1.23#9.1.23-6734f4b7eecdbfdd", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "0c8c1d22f18f69cf9c0a35d00f0b742a14c159a2ce7b4ef2715ac2b240cc07e7", "section_path": ["变更"], "commit_groups": [["1f63b0e09", "3e40d9227", "69dc5ae40", "a3cd60ebf", "c3107f18a", "cae0d4f9b"]], "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": ["1f63b0e09", "3e40d9227", "69dc5ae40", "a3cd60ebf", "c3107f18a", "cae0d4f9b"], "source_commits": ["cae0d4f9b"], "source_entry_id": "9.5.4/changes/037", "db_id": "d3dea0a37bb7be0d842b70f31da2da95", "patch_ids": ["5411079025bc54cc9ae6251d7c971088"], "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": "a1b0d935ae30d4b7aceb893e43274c6d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "a1b0d935ae30d4b7aceb893e43274c6d", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "让 libpq 能正确解码来自未来版本服务器的服务器版本号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "05992fb2b12ef0f1187b0d459ca31064649b138c47fea5b48f5a29707541fabc"}, "url": "/docs/compare/?release=9.1.23#9.1.23-496ddb27628ef734", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "43f1cf65a4052641adcc4417778f06b415571fe9898e564646dbfb60ba81f4aa", "section_path": ["变更"], "commit_groups": [["057404854", "295edbecf", "3ca359426", "3ebc88e56", "c15f502b6", "dc6b20c6b"]], "identity_text": "Fix ecpg's code for unsigned long long array elements (Michael Meskes)", "commit_aliases": ["057404854", "295edbecf", "3ca359426", "3ebc88e56", "c15f502b6", "dc6b20c6b"], "source_commits": ["dc6b20c6b"], "source_entry_id": "9.5.4/changes/038", "db_id": "0e08237a09253b1b32b7e6a798b39ddf", "patch_ids": ["e1a0214f856b17da14343862b7048843"], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3", "relations": [{"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"}}, {"rule": 2, "type": "equivalent", "target": "acd56826b2908ff9c6dfb20e6684e475", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}}], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "acd56826b2908ff9c6dfb20e6684e475", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复 ecpg 中 unsigned long long 数组元素的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b0745913e84ac4db7b93694c8de8db97c64667d0c08f903241230d7397b6bbf3"}, "url": "/docs/compare/?release=9.1.23#9.1.23-e923f8acb1ada608", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-837c436b25b71ce0", "cves": [], "html": "<p>在同时使用 <code>-c</code> 和 <code>-C</code> 选项的 <span>pg_dump</span> 中，避免发出多余的 <code>CREATE SCHEMA public</code> 命令（David Johnston、Tom Lane）</p>", "text": "在同时使用 -c 和 -C 选项的 pg_dump 中，避免发出多余的 CREATE SCHEMA public 命令（David Johnston、Tom Lane）", "title": "在同时使用 -c 和 -C 选项的 pg_dump 中，避免发出多余的 CREATE SCHEMA public 命令", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "7ea6801c6bba77285237745dda201b6307a2daaf97f7a6ad966ff120ddf849a5", "section_path": ["变更"], "commit_groups": [["2ff8a2fc0", "6693c9d7b", "89c30d113", "a5a7caaa1", "e2e95f5ef"]], "identity_text": "In pg_dump with both -c and -C options, avoid emitting an unwanted CREATE SCHEMA public command (David Johnston, Tom Lane)", "commit_aliases": ["2ff8a2fc0", "6693c9d7b", "89c30d113", "a5a7caaa1", "e2e95f5ef"], "source_commits": ["89c30d113"], "source_entry_id": "9.5.4/changes/039", "db_id": "4cb086370e6d127649b5657330b1b1a0", "patch_ids": ["cfab4b8993dceaec82e4b3b67356caa4"], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2", "relations": [{"rule": 2, "type": "equivalent", "target": "2e4ca62fc9806e0cf7cee675639a97d5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2"}}, {"rule": 2, "type": "equivalent", "target": "38b71e2c820b75c41de329858e07a369", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2"}}, {"rule": 2, "type": "equivalent", "target": "70385fe3901ef3648518fa0516930530", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2e4ca62fc9806e0cf7cee675639a97d5", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复pg_dump同时使用-c和-C选项时避免输出多余的CREATE SCHEMA public命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2"}, "url": "/docs/compare/?release=9.4.9#9.4.9-36082d8cea4d291f", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "70385fe3901ef3648518fa0516930530", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "在同时使用 -c 和 -C 选项的 pg_dump 中，避免发出多余的 CREATE SCHEMA public 命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2"}, "url": "/docs/compare/?release=9.3.14#9.3.14-837c436b25b71ce0", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}, {"db_id": "38b71e2c820b75c41de329858e07a369", "kind": "equivalent", "version": "9.2.18", "label": "9.2.18", "title": "在同时使用 -c 和 -C 选项的 pg_dump 中，避免发出多余的 CREATE SCHEMA public 命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5db9f3a7aa710aa5d07c906662a32efcb461dfd6a0762b3a5445f2752628b3f2"}, "url": "/docs/compare/?release=9.2.18#9.2.18-837c436b25b71ce0", "source_url": "/docs/release/9.2.18/#id-1.11.6.11.5"}]}, {"id": "9.5.4-29ea6174b0549d62", "cves": [], "html": "<p>改进并行 <span>pg_dump</span> 和 <span>pg_restore</span> 对 <span>SIGTERM</span>/Ctrl-C 的处理（Tom Lane）</p>\n<p>确保工作进程迅速退出，并设法向所连接的后端发送查询取消请求，以防它们正在执行诸如 <code>CREATE INDEX</code> 之类的长时间运行操作。</p>", "text": "改进并行 pg_dump 和 pg_restore 对 SIGTERM/Ctrl-C 的处理（Tom Lane） 确保工作进程迅速退出，并设法向所连接的后端发送查询取消请求，以防它们正在执行诸如 CREATE INDEX 之类的长时间运行操作。", "title": "改进并行 pg_dump 和 pg_restore 对 SIGTERM/Ctrl-C 的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "3d3893364c225711203ad3939cea810c3169dc546f558e68d892cbb35b95cc0e", "section_path": ["变更"], "commit_groups": [["404429038", "5c9724305", "96aac0e6d", "e652273e0"], ["4a21c6fd7", "53c2601a5", "6c72a28e5", "ec5622351"]], "identity_text": "Improve handling of SIGTERM/control-C in parallel pg_dump and pg_restore (Tom Lane) Make sure that the worker processes will exit promptly, and also arrange to send query-cancel requests to the connected backends, in case they are doing something long-running such as a CREATE INDEX.", "commit_aliases": ["404429038", "4a21c6fd7", "53c2601a5", "5c9724305", "6c72a28e5", "96aac0e6d", "e652273e0", "ec5622351"], "source_commits": ["404429038", "ec5622351"], "source_entry_id": "9.5.4/changes/040", "db_id": "19b600acd6b70cede89b97d26d532236", "patch_ids": ["d127e2b3e838b0bd049ee18161669aa5", "dac0e13a764f6b03a4fcaf883e5889c7"], "statement_hash": "bcc048a2d9650d57692aac25dfa2892b6b057640dd9aee9499b3bd28e409f6a5", "relations": [{"rule": 2, "type": "equivalent", "target": "4c6ebc1700dcc5465897078e60b0c6f8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bcc048a2d9650d57692aac25dfa2892b6b057640dd9aee9499b3bd28e409f6a5"}}, {"rule": 2, "type": "equivalent", "target": "a0ff3f54ea10a1b091d2f2cbcdc5c694", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bcc048a2d9650d57692aac25dfa2892b6b057640dd9aee9499b3bd28e409f6a5"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a0ff3f54ea10a1b091d2f2cbcdc5c694", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "改进并行 pg_dump 和 pg_restore 对 SIGTERM/Ctrl-C 的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bcc048a2d9650d57692aac25dfa2892b6b057640dd9aee9499b3bd28e409f6a5"}, "url": "/docs/compare/?release=9.4.9#9.4.9-29ea6174b0549d62", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "4c6ebc1700dcc5465897078e60b0c6f8", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "改进并行 pg_dump 和 pg_restore 对 SIGTERM/Ctrl-C 的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bcc048a2d9650d57692aac25dfa2892b6b057640dd9aee9499b3bd28e409f6a5"}, "url": "/docs/compare/?release=9.3.14#9.3.14-29ea6174b0549d62", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}]}, {"id": "9.5.4-89016a9f4055218f", "cves": [], "html": "<p>修复并行 <span>pg_dump</span> 和 <span>pg_restore</span> 中的错误报告（Tom Lane）</p>\n<p>以前，<span>pg_dump</span> 或 <span>pg_restore</span> 工作进程报告的错误可能永远无法到达用户的控制台，因为消息要经过主进程传递，而存在多种会阻止主进程转发消息的死锁场景。现在改为把所有内容直接打印到 <code>stderr</code>。在某些情况下这会导致重复消息（例如所有工作进程都报告服务器关闭），但这似乎比没有消息要好。</p>", "text": "修复并行 pg_dump 和 pg_restore 中的错误报告（Tom Lane） 以前，pg_dump 或 pg_restore 工作进程报告的错误可能永远无法到达用户的控制台，因为消息要经过主进程传递，而存在多种会阻止主进程转发消息的死锁场景。现在改为把所有内容直接打印到 stderr。在某些情况下这会导致重复消息（例如所有工作进程都报告服务器关闭），但这似乎比没有消息要好。", "title": "修复并行 pg_dump 和 pg_restore 中的错误报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "eb994ee7826476ef52c4fa49252e847bf05347ad6d1a88ab257cff8873cf5882", "section_path": ["变更"], "commit_groups": [["1c8205159", "9abd64ec9", "af6555b80", "ea274b2f4"]], "identity_text": "Fix error reporting in parallel pg_dump and pg_restore (Tom Lane) Previously, errors reported by pg_dump or pg_restore worker processes might never make it to the user's console, because the messages went through the master process, and there were various deadlock scenarios that would prevent the master process from passing on the messages. Instead, just print everything to stderr. In some cases this will result in duplicate messages (for instance, if all the workers report a server shutdown), but that seems better than no message.", "commit_aliases": ["1c8205159", "9abd64ec9", "af6555b80", "ea274b2f4"], "source_commits": ["af6555b80"], "source_entry_id": "9.5.4/changes/041", "db_id": "f666994d0da92c600bd4ec33683110b1", "patch_ids": ["d4675425e4e9185d9226746b4c687bc3"], "statement_hash": "2d14ed621bd8cc5c84b758d25bb53c896eea691449b6863ad5d1bd24a291538f", "relations": [{"rule": 2, "type": "equivalent", "target": "582020da274e4e1a824e7220b7303e42", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d14ed621bd8cc5c84b758d25bb53c896eea691449b6863ad5d1bd24a291538f"}}, {"rule": 2, "type": "equivalent", "target": "da8be4387d9163bda929820852eba33c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d14ed621bd8cc5c84b758d25bb53c896eea691449b6863ad5d1bd24a291538f"}}], "version": "9.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "582020da274e4e1a824e7220b7303e42", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "修复并行 pg_dump 和 pg_restore 中的错误报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d14ed621bd8cc5c84b758d25bb53c896eea691449b6863ad5d1bd24a291538f"}, "url": "/docs/compare/?release=9.4.9#9.4.9-89016a9f4055218f", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "da8be4387d9163bda929820852eba33c", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "修复并行 pg_dump 和 pg_restore 中的错误报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d14ed621bd8cc5c84b758d25bb53c896eea691449b6863ad5d1bd24a291538f"}, "url": "/docs/compare/?release=9.3.14#9.3.14-89016a9f4055218f", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}]}, {"id": "9.5.4-17157ddd3f6e8077", "cves": [], "html": "<p>确保 Windows 上的并行 <span>pg_dump</span> 或 <span>pg_restore</span> 在出错后正确关闭（Kyotaro Horiguchi）</p>\n<p>以前，它会报告错误，然后就一直停在那里，直到用户手动停止。</p>", "text": "确保 Windows 上的并行 pg_dump 或 pg_restore 在出错后正确关闭（Kyotaro Horiguchi） 以前，它会报告错误，然后就一直停在那里，直到用户手动停止。", "title": "确保 Windows 上的并行 pg_dump 或 pg_restore 在出错后正确关闭", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "e07bd07b3626cd86b6a3af6c9b40f7a54bd2fac0a66233b865ae347a117f041f", "section_path": ["变更"], "commit_groups": [["6479df137", "b9784e1f7", "d32bc204c", "df8d2d8c4"]], "identity_text": "Ensure that parallel pg_dump or pg_restore on Windows will shut down properly after an error (Kyotaro Horiguchi) Previously, it would report the error, but then just sit until manually stopped by the user.", "commit_aliases": ["6479df137", "b9784e1f7", "d32bc204c", "df8d2d8c4"], "source_commits": ["6479df137"], "source_entry_id": "9.5.4/changes/042", "db_id": "f3d089f9319d1780eb3a1f842fcd50af", "patch_ids": ["618fa9b3584e7ad2969b43659d363a2f"], "statement_hash": "cb377985898d4de16f5635bfc7efb6043775633cc403e6682ca6d78358c56115", "relations": [{"rule": 2, "type": "equivalent", "target": "51890093c7303ff87dfcfc563ccaf592", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cb377985898d4de16f5635bfc7efb6043775633cc403e6682ca6d78358c56115"}}, {"rule": 2, "type": "equivalent", "target": "d5e9e7e92e1e4c612e72025c8a425afa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cb377985898d4de16f5635bfc7efb6043775633cc403e6682ca6d78358c56115"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d5e9e7e92e1e4c612e72025c8a425afa", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "确保 Windows 上的并行 pg_dump 或 pg_restore 在出错后正确关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cb377985898d4de16f5635bfc7efb6043775633cc403e6682ca6d78358c56115"}, "url": "/docs/compare/?release=9.4.9#9.4.9-17157ddd3f6e8077", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "51890093c7303ff87dfcfc563ccaf592", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "确保 Windows 上的并行 pg_dump 或 pg_restore 在出错后正确关闭", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cb377985898d4de16f5635bfc7efb6043775633cc403e6682ca6d78358c56115"}, "url": "/docs/compare/?release=9.3.14#9.3.14-17157ddd3f6e8077", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}]}, {"id": "9.5.4-abfd7416b81ec27b", "cves": [], "html": "<p>使并行 <span>pg_dump</span> 在对备库服务器运行时干净地失败（Magnus Hagander）</p>\n<p>除非指定 <code>--no-synchronized-snapshots</code>，否则不支持这种用法，但此前的错误处理并不好。</p>", "text": "使并行 pg_dump 在对备库服务器运行时干净地失败（Magnus Hagander） 除非指定 --no-synchronized-snapshots，否则不支持这种用法，但此前的错误处理并不好。", "title": "使并行 pg_dump 在对备库服务器运行时干净地失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "5e0a2f7174a96a0b50aa55bac1cd115ecf943dec03be6d9a95e49ab295766100", "section_path": ["变更"], "commit_groups": [["47e596976", "d74048def"]], "identity_text": "Make parallel pg_dump fail cleanly when run against a standby server (Magnus Hagander) This usage is not supported unless --no-synchronized-snapshots is specified, but the error was not handled very well.", "commit_aliases": ["47e596976", "d74048def"], "source_commits": ["47e596976"], "source_entry_id": "9.5.4/changes/043", "db_id": "d04a255f644a6e4fdd0ae7a358062a1e", "patch_ids": ["d1627a2053b6ee93010ec5fb13960a2f"], "statement_hash": "7b87f6ff21af6165c555cee4832f867ff4044424a7ceb0e6d62ea8d89ec9e789", "relations": [], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.5.4-963e904613ab0dd6", "cves": [], "html": "<p>使 <span>pg_dump</span> 在构建时未包含 zlib 支持时表现更好（Kyotaro Horiguchi）</p>\n<p>它在并行转储时不能正确工作，在其他情况下还会发出一些相当无意义的警告。</p>", "text": "使 pg_dump 在构建时未包含 zlib 支持时表现更好（Kyotaro Horiguchi） 它在并行转储时不能正确工作，在其他情况下还会发出一些相当无意义的警告。", "title": "使 pg_dump 在构建时未包含 zlib 支持时表现更好", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "8f5737d152deb42b448bacf57f0127de152eab309910eb6185a4df5bd6c29714", "section_path": ["变更"], "commit_groups": [["64b296976", "99565a1ef", "cae2bb198", "f2f18a37c"]], "identity_text": "Make pg_dump behave better when built without zlib support (Kyotaro Horiguchi) It didn't work right for parallel dumps, and emitted some rather pointless warnings in other cases.", "commit_aliases": ["64b296976", "99565a1ef", "cae2bb198", "f2f18a37c"], "source_commits": ["64b296976"], "source_entry_id": "9.5.4/changes/044", "db_id": "975f1dc7c28ee711f55cfc1034308906", "patch_ids": ["26c67e2dffed012fde531274555a96a4"], "statement_hash": "5b5f6dbe08e5b3eef80efd6134cdfa588dc8726da7040723a82066bd0071ad3f", "relations": [{"rule": 2, "type": "equivalent", "target": "b8640bcb977acf96b03332dbc91315d2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b5f6dbe08e5b3eef80efd6134cdfa588dc8726da7040723a82066bd0071ad3f"}}, {"rule": 2, "type": "equivalent", "target": "d1dc06504bf9600bffa67fbfdc64ad66", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b5f6dbe08e5b3eef80efd6134cdfa588dc8726da7040723a82066bd0071ad3f"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b8640bcb977acf96b03332dbc91315d2", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "使 pg_dump 在构建时未包含 zlib 支持时表现更好", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b5f6dbe08e5b3eef80efd6134cdfa588dc8726da7040723a82066bd0071ad3f"}, "url": "/docs/compare/?release=9.4.9#9.4.9-963e904613ab0dd6", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "d1dc06504bf9600bffa67fbfdc64ad66", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "使 pg_dump 在构建时未包含 zlib 支持时表现更好", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5b5f6dbe08e5b3eef80efd6134cdfa588dc8726da7040723a82066bd0071ad3f"}, "url": "/docs/compare/?release=9.3.14#9.3.14-963e904613ab0dd6", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "58e1a32d89b233f18409e802e56d20fb25c95fae95ac0683bf8b1f921927d8ef", "section_path": ["变更"], "commit_groups": [["013f42372", "366f4a962", "74d8c95b7", "928e92fda", "a21617759", "dbe56f2a1"]], "identity_text": "Make pg_basebackup accept -Z 0 as specifying no compression (Fujii Masao)", "commit_aliases": ["013f42372", "366f4a962", "74d8c95b7", "928e92fda", "a21617759", "dbe56f2a1"], "source_commits": ["928e92fda"], "source_entry_id": "9.5.4/changes/045", "db_id": "a2b44fd104d6fb5e65925050b55eb4d6", "patch_ids": ["3acd812d048bf6163d242ffb6b3e59cc"], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc", "relations": [{"rule": 2, "type": "equivalent", "target": "471095d089d64d7833a66af614a4edbc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}}, {"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"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "471095d089d64d7833a66af614a4edbc", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "使 pg_basebackup 接受 -Z 0 表示不压缩", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ee39d46109623663c32814d272524734efda54d0f1d0a628864772fe14a68cc"}, "url": "/docs/compare/?release=9.1.23#9.1.23-837b3af589f84e8b", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "1f8108b9e090bbc0616fb40733094cc3a71238771f15b73445b5359f7fd4e8de", "section_path": ["变更"], "commit_groups": [["98b7a3cf2", "a4daf59ee", "b1fa6c0eb", "cf35406f9", "e8564ef03", "f0c9e4697"]], "identity_text": "Fix makefiles' rule for building AIX shared libraries to be safe for parallel make (Noah Misch)", "commit_aliases": ["98b7a3cf2", "a4daf59ee", "b1fa6c0eb", "cf35406f9", "e8564ef03", "f0c9e4697"], "source_commits": ["cf35406f9"], "source_entry_id": "9.5.4/changes/046", "db_id": "1d5170914cfb163de312a761bf54de09", "patch_ids": ["d43f8d15078d55cfb8eadb9ea0bf2611"], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056", "relations": [{"rule": 2, "type": "equivalent", "target": "27645d535e2f92f79878519a74a73148", "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.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "27645d535e2f92f79878519a74a73148", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复构建 AIX 共享库的 makefile 规则，使其在并行 make 下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deba5ebfe4f8ff216a64ee6c3e74f23e98ca682199037fccf7ca0649a3b5c056"}, "url": "/docs/compare/?release=9.1.23#9.1.23-bd9a015afd646c00", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "26c314fd137bab59cc021de5836d82fac7515f28f5613f97e98f1dea8a53573d", "section_path": ["变更"], "commit_groups": [["02a898b00", "30b2731bd", "57e9ea2dd", "71af6c006", "f80395ca1", "fdf2ee62e"]], "identity_text": "Fix TAP tests and MSVC scripts to work when build directory's path name contains spaces (Michael Paquier, Kyotaro Horiguchi)", "commit_aliases": ["02a898b00", "30b2731bd", "57e9ea2dd", "71af6c006", "f80395ca1", "fdf2ee62e"], "source_commits": ["f80395ca1"], "source_entry_id": "9.5.4/changes/047", "db_id": "5b01e3d8f3cc76198f413c56fceb07ed", "patch_ids": ["98aa6146d674a180d2d154c480f30a50"], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474", "relations": [{"rule": 2, "type": "equivalent", "target": "24e8f01cdd2d72c10f3177cdaf1427b5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}}, {"rule": 2, "type": "equivalent", "target": "375d55c939c37461f50255bedaf6e5ff", "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.5.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "375d55c939c37461f50255bedaf6e5ff", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "修复 TAP 测试和 MSVC 脚本，使其在构建目录路径名包含空格时也能工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59c370059698dc5dce2848834323037ccf30f2acc24e3fc7394b2bb768269474"}, "url": "/docs/compare/?release=9.1.23#9.1.23-2e9b678f47ba8ea9", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-413697f8ce5c3c4c", "cves": [], "html": "<p>使<span>“<span>statement timeout</span>”</span>与<span>“<span>lock timeout</span>”</span>的报告更具可预测性（Tom Lane）</p>\n<p>在高负载机器上，回归测试有时会因报告<span>“<span>lock timeout</span>”</span>而失败，尽管语句超时本应先发生。</p>", "text": "使“statement timeout”与“lock timeout”的报告更具可预测性（Tom Lane） 在高负载机器上，回归测试有时会因报告“lock timeout”而失败，尽管语句超时本应先发生。", "title": "使“statement timeout”与“lock timeout”的报告更具可预测性", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "9d85a404edb85bb8ccc001d664c7005e49f4252ef0d6f165fca73b0aea82a6a9", "section_path": ["变更"], "commit_groups": [["1f1e70a87", "9dd4178ce", "c2651cd24", "cea17ba07"]], "identity_text": "Be more predictable about reporting statement timeout versus lock timeout (Tom Lane) On heavily loaded machines, the regression tests sometimes failed due to reporting lock timeout even though the statement timeout should have occurred first.", "commit_aliases": ["1f1e70a87", "9dd4178ce", "c2651cd24", "cea17ba07"], "source_commits": ["cea17ba07"], "source_entry_id": "9.5.4/changes/048", "db_id": "2c9290e4f88da269da155750090164c5", "patch_ids": ["7d0c80c809d40323d0a307f7922f093b"], "statement_hash": "0b5732c00a176eb50b8e1c555d62ac1081a077af573b71c9999607fe276d6ccc", "relations": [{"rule": 2, "type": "equivalent", "target": "0bceb2a0303407a781a33a837347c06e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b5732c00a176eb50b8e1c555d62ac1081a077af573b71c9999607fe276d6ccc"}}, {"rule": 2, "type": "equivalent", "target": "5d8b37cb363609e98dd67d7e99f9341e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b5732c00a176eb50b8e1c555d62ac1081a077af573b71c9999607fe276d6ccc"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5d8b37cb363609e98dd67d7e99f9341e", "kind": "equivalent", "version": "9.4.9", "label": "9.4.9", "title": "使“statement timeout”与“lock timeout”的报告更具可预测性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b5732c00a176eb50b8e1c555d62ac1081a077af573b71c9999607fe276d6ccc"}, "url": "/docs/compare/?release=9.4.9#9.4.9-413697f8ce5c3c4c", "source_url": "/docs/release/9.4.9/#id-1.11.6.22.5"}, {"db_id": "0bceb2a0303407a781a33a837347c06e", "kind": "equivalent", "version": "9.3.14", "label": "9.3.14", "title": "使“statement timeout”与“lock timeout”的报告更具可预测性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0b5732c00a176eb50b8e1c555d62ac1081a077af573b71c9999607fe276d6ccc"}, "url": "/docs/compare/?release=9.3.14#9.3.14-413697f8ce5c3c4c", "source_url": "/docs/release/9.3.14/#id-1.11.6.16.5"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "f159b0492e116d3da1537ecc029ba3de611a70a69f5f088f1e3c03f1f62f7284", "section_path": ["变更"], "commit_groups": [["0060638c8", "52502e7a5", "95810ed8e", "95e8b44f0", "dfddc452d", "f61ecd01e"], ["1156a9db8", "a1e750553", "ba64aed70", "d365dc3d1", "d70d11915", "e15e7886e"], ["2aa2533f2", "9d7abca90"], ["b3399cb0f", "fd507d542"]], "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": ["0060638c8", "1156a9db8", "2aa2533f2", "52502e7a5", "95810ed8e", "95e8b44f0", "9d7abca90", "a1e750553", "b3399cb0f", "ba64aed70", "d365dc3d1", "d70d11915", "dfddc452d", "e15e7886e", "f61ecd01e", "fd507d542"], "source_commits": ["2aa2533f2", "95e8b44f0", "d365dc3d1", "fd507d542"], "source_entry_id": "9.5.4/changes/049", "db_id": "9cf8e2271b8f47a33fd9a2434087ae0f", "patch_ids": ["64ba63acb792b6368560b7668957fac9", "6acd97436b13595493c8bfbdd25c1f69", "b11a7582432eb292e901553fae3819ce", "d9709e6ae069867fddafb942c219d372"], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66", "relations": [{"rule": 2, "type": "equivalent", "target": "0a119b4ded4fe121283823c900790489", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}}, {"rule": 2, "type": "equivalent", "target": "6d8bf42628454cb9b89f312a447a8059", "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": "c2989094feebf0e230356c42a84221a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}}], "version": "9.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "6d8bf42628454cb9b89f312a447a8059", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "使回归测试在丹麦语和威尔士语区域设置下安全", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "be8e835ff640f03c38f629768e9c282ecd8227547155778f61f96f82685ffb66"}, "url": "/docs/compare/?release=9.1.23#9.1.23-5b57121f6a030906", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-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.5.4/#id-1.11.6.26.5", "source_hash": "098438dc9a9a090027bb9f6aa80deecb2879d405ffa5e56bd614b97c397d5deb", "section_path": ["变更"], "commit_groups": [["0aabe80c6", "4d37b7cff", "bdbcfba35", "d70df7867", "f102bd868"], ["19d477aa6", "3928132ea", "590a7f82b", "5db14fad0", "cd951aa61"]], "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": ["0aabe80c6", "19d477aa6", "3928132ea", "4d37b7cff", "590a7f82b", "5db14fad0", "bdbcfba35", "cd951aa61", "d70df7867", "f102bd868"], "source_commits": ["0aabe80c6", "19d477aa6"], "source_entry_id": "9.5.4/changes/050", "db_id": "5d4a6db928e502186dd349272ae749f9", "patch_ids": ["1cb39765fe40e9e0ee1ddb94f91bf9b9", "3f02c6082a5e4caa43b77fca99d17bc0"], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b", "relations": [{"rule": 2, "type": "equivalent", "target": "3f295b8ef66edd5c265371b70c9f24f5", "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": "7b723c790e049e2fe118e55137c1d903", "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.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "7b723c790e049e2fe118e55137c1d903", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "更新我们的时区代码副本，以匹配 IANA 的 tzcode 2016c 版", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e74dc1c405548d97ef349f1ad8960fe137b7b4b90dd5ce71282dc66d6f9dc82b"}, "url": "/docs/compare/?release=9.1.23#9.1.23-3b12e1f7a08bfe53", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}, {"id": "9.5.4-b3308c6ee9bb59f9", "cves": [], "html": "<p>把时区数据文件更新到 <span>tzdata</span> 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。</p>", "text": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "title": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.5.4/#id-1.11.6.26.5", "source_hash": "8b01cc10aa118f99c1deaad0f3f459d1eea2d835787265e2deae036047487834", "section_path": ["变更"], "commit_groups": [["3fddd6484", "5630bd2ec", "7822792f7", "8080337b0", "a44388ffe", "a629330b2"]], "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": ["3fddd6484", "5630bd2ec", "7822792f7", "8080337b0", "a44388ffe", "a629330b2"], "source_commits": ["3fddd6484"], "source_entry_id": "9.5.4/changes/051", "db_id": "8a4bc998111a4a4a657ca1a38f90ce6d", "patch_ids": ["94ce36376ea949433487379325e0be24"], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11", "relations": [{"rule": 2, "type": "equivalent", "target": "4e46b74009f0208ecbee49c16369e84a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}}, {"rule": 2, "type": "equivalent", "target": "867458da35dac57e6a7478b5194c0273", "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.5.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"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"}, {"db_id": "867458da35dac57e6a7478b5194c0273", "kind": "equivalent", "version": "9.1.23", "label": "9.1.23", "title": "把时区数据文件更新到 tzdata 2016f 版，涉及克麦罗沃和新西伯利亚的夏令时法规变更，以及阿塞拜疆、白俄罗斯和摩洛哥的历史数据修正。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d8cb5e74e3067d99b07914f1fb52c22f433f4b353269b0a9e6df1b3a16efaa11"}, "url": "/docs/compare/?release=9.1.23#9.1.23-b3308c6ee9bb59f9", "source_url": "/docs/release/9.1.23/#id-1.11.6.6.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 51}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 23}, {"key": "security", "label": "安全相关", "count": 2}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 26}], "total": 51, "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.5.4"}, {"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.5.4"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 51, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}