{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2011-12-05", "build": "9.0.6", "major": "9.0", "minor": 6, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.6", "eol_date": "2015-10-08", "date_text": "2011-12-05", "supported": false, "manual_url": "/docs/9.0/release-9-0-6.html", "source_url": "/docs/release/9.0.6/", "entry_count": 29, "placeholder": false, "content_hash": "16deef75611a51c7e2bbba51c8a9802703b584e2d9fc967ed4654dc9bc64f4fd", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 29, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，<code>information_schema.referential_constraints</code> 视图的定义中被发现存在一个长期错误。如果你依赖该视图的正确结果，应按下面第一条变更日志条目的说明替换其定义。</p>\n<p>不过，如果你是从早于 9.0.4 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-4.html\" title=\"E.20. 版本 9.0.4\">第 E.20 节</a>。</p>", "compatibility_count": 0, "label": "9.0.6", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5413, "support_days": -4010}, "groups": [{"date": "2011-12-05", "build": "9.0.6", "major": "9.0", "minor": 6, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.6", "eol_date": "2015-10-08", "date_text": "2011-12-05", "supported": false, "manual_url": "/docs/9.0/release-9-0-6.html", "source_url": "/docs/release/9.0.6/", "entry_count": 29, "placeholder": false, "content_hash": "16deef75611a51c7e2bbba51c8a9802703b584e2d9fc967ed4654dc9bc64f4fd", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 29, "doc_loaded_at": "2026-09-26T02:56:48.570247", "migration_html": "<p>对于运行 9.0.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，<code>information_schema.referential_constraints</code> 视图的定义中被发现存在一个长期错误。如果你依赖该视图的正确结果，应按下面第一条变更日志条目的说明替换其定义。</p>\n<p>不过，如果你是从早于 9.0.4 的版本升级，请参见<a href=\"/docs/9.0/release-9-0-4.html\" title=\"E.20. 版本 9.0.4\">第 E.20 节</a>。</p>", "compatibility_count": 0, "label": "9.0.6", "status_label": "历史版本", "eol": "2015-10-08", "age_days": 5413, "support_days": -4010, "entries": [{"id": "9.0.6-85fb024ac8fe0c73", "cves": [], "html": "<p>修复 <code>information_schema.referential_constraints</code> 视图中的缺陷（Tom Lane）</p>\n<p>该视图在把外键约束与它依赖的主键或唯一键约束匹配时不够谨慎。这可能导致某个外键约束完全不被显示、被显示多次，或者声称它依赖于一个并非其实际依赖的约束。</p>\n<p>由于该视图定义是由 <span>initdb</span> 安装的，仅靠升级不会修复问题。如果需要修复现有安装，可以（以超级用户身份）删除 <code>information_schema</code> 模式，然后通过载入 <code><em><code>SHAREDIR</code></em>/information_schema.sql</code> 重新创建它。（如果不确定 <em><code>SHAREDIR</code></em> 在哪里，运行 <code>pg_config --sharedir</code>。）这必须在每个要修复的数据库中重复执行。</p>", "text": "修复 information_schema.referential_constraints 视图中的缺陷（Tom Lane） 该视图在把外键约束与它依赖的主键或唯一键约束匹配时不够谨慎。这可能导致某个外键约束完全不被显示、被显示多次，或者声称它依赖于一个并非其实际依赖的约束。 由于该视图定义是由 initdb 安装的，仅靠升级不会修复问题。如果需要修复现有安装，可以（以超级用户身份）删除 information_schema 模式，然后通过载入 SHAREDIR/information_schema.sql 重新创建它。（如果不确定 SHAREDIR 在哪里，运行 pg_config --sharedir。）这必须在每个要修复的数据库中重复执行。", "title": "修复 information_schema.referential_constraints 视图中的缺陷", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "9386ddd652d57baa746058efa036cf75ef10fea8ba8ee2c433e5cc928df87982", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix bugs in information_schema.referential_constraints view (Tom Lane) This view was being insufficiently careful about matching the foreign-key constraint to the depended-on primary or unique key constraint. That could result in failure to show a foreign key constraint at all, or showing it multiple times, or claiming that it depends on a different constraint than the one it really does. Since the view definition is installed by initdb, merely upgrading will not fix the problem. If you need to fix this in an existing installation, you can (as a superuser) drop the information_schema schema then re-create it by sourcing SHAREDIR/information_schema.sql. (Run pg_config --sharedir if you're uncertain where SHAREDIR is.) This must be repeated in each database to be fixed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/001", "db_id": "d778743354ffc01e473254043b41fd7b", "patch_ids": [], "statement_hash": "f96bddcd07f383c75a22bd49a3b74bee3a57e498897d2dfe9c6460fd55bc8652", "relations": [{"rule": 2, "type": "equivalent", "target": "92e410bc23772d58172da9b62177555e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f96bddcd07f383c75a22bd49a3b74bee3a57e498897d2dfe9c6460fd55bc8652"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "92e410bc23772d58172da9b62177555e", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 information_schema.referential_constraints 视图中的缺陷", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f96bddcd07f383c75a22bd49a3b74bee3a57e498897d2dfe9c6460fd55bc8652"}, "url": "/docs/compare/?release=9.1.2#9.1.2-85fb024ac8fe0c73", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-d423eea4c859424b", "cves": [], "html": "<p>修复连接到返回标量的函数输出的 <code>UPDATE</code> 或 <code>DELETE</code> 期间可能崩溃的问题（Tom Lane）</p>\n<p>只有当目标行被并发更新时才可能崩溃，因此该问题只是间歇性出现。</p>", "text": "修复连接到返回标量的函数输出的 UPDATE 或 DELETE 期间可能崩溃的问题（Tom Lane） 只有当目标行被并发更新时才可能崩溃，因此该问题只是间歇性出现。", "title": "修复连接到返回标量的函数输出的 UPDATE 或 DELETE 期间可能崩溃的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "c5022c673435a151aba9fc74a3fbe306fa278a15cc2e885af53357ec4d9305be", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible crash during UPDATE or DELETE that joins to the output of a scalar-returning function (Tom Lane) A crash could only occur if the target row had been concurrently updated, so this problem surfaced only intermittently.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/002", "db_id": "51efaa949afc963ee0be46e420af00cd", "patch_ids": [], "statement_hash": "b2ae8b1345784902957b924a8733980e68d820938c3450b7d1a5af8f91899696", "relations": [{"rule": 2, "type": "equivalent", "target": "d108611113394e2d26922009679254f6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2ae8b1345784902957b924a8733980e68d820938c3450b7d1a5af8f91899696"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d108611113394e2d26922009679254f6", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复连接到返回标量的函数输出的 UPDATE 或 DELETE 期间可能崩溃的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2ae8b1345784902957b924a8733980e68d820938c3450b7d1a5af8f91899696"}, "url": "/docs/compare/?release=9.1.2#9.1.2-d423eea4c859424b", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-3006dd53a18cf688", "cves": [], "html": "<p>修复 GIN 索引更新 WAL 记录的错误重放（Tom Lane）</p>\n<p>这可能导致崩溃后或热备服务器上瞬时找不到索引项。不过，该问题会在该索引下一次 <code>VACUUM</code> 时被修复。</p>", "text": "修复 GIN 索引更新 WAL 记录的错误重放（Tom Lane） 这可能导致崩溃后或热备服务器上瞬时找不到索引项。不过，该问题会在该索引下一次 VACUUM 时被修复。", "title": "修复 GIN 索引更新 WAL 记录的错误重放", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "167c4b85bc96baf748ca0b5dedd16abfb3a2059fd233351bd63ac6c0a2991c06", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect replay of WAL records for GIN index updates (Tom Lane) This could result in transiently failing to find index entries after a crash, or on a hot-standby server. The problem would be repaired by the next VACUUM of the index, however.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/003", "db_id": "ca9a12aaa3d7ed46abd856a48c858d60", "patch_ids": [], "statement_hash": "63b2e2ee066d365afc6a1d2adc6f59dd1129304adead5d85510f0acb58969b70", "relations": [{"rule": 2, "type": "equivalent", "target": "449ca8bfa0477328631b2201078f6d47", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b2e2ee066d365afc6a1d2adc6f59dd1129304adead5d85510f0acb58969b70"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "449ca8bfa0477328631b2201078f6d47", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 GIN 索引更新 WAL 记录的错误重放", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "63b2e2ee066d365afc6a1d2adc6f59dd1129304adead5d85510f0acb58969b70"}, "url": "/docs/compare/?release=9.1.2#9.1.2-3006dd53a18cf688", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-2d9bfd29a0d320bd", "cves": [], "html": "<p>修复 <code>CREATE TABLE dest AS SELECT * FROM src</code> 或 <code>INSERT INTO dest SELECT * FROM src</code> 期间与 TOAST 相关的数据损坏（Tom Lane）</p>\n<p>如果表曾被 <code>ALTER TABLE ADD COLUMN</code> 修改过，在某些极端情况下，尝试把它的数据原样复制到另一个表可能产生损坏的结果。该问题只会在 8.4 及更高版本中以这种确切形式出现，但我们也给更早的版本打了补丁，以防有其他代码路径可能触发同一缺陷。</p>", "text": "修复 CREATE TABLE dest AS SELECT * FROM src 或 INSERT INTO dest SELECT * FROM src 期间与 TOAST 相关的数据损坏（Tom Lane） 如果表曾被 ALTER TABLE ADD COLUMN 修改过，在某些极端情况下，尝试把它的数据原样复制到另一个表可能产生损坏的结果。该问题只会在 8.4 及更高版本中以这种确切形式出现，但我们也给更早的版本打了补丁，以防有其他代码路径可能触发同一缺陷。", "title": "修复 CREATE TABLE dest AS SELECT * FROM src 或 INSERT INTO dest SELECT * FROM src 期间与 TOAST 相关的数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "38c351cf50b961352e3988a75508e16929e7156a1016ad8732aa4245dfd10cf1", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix TOAST-related data corruption during CREATE TABLE dest AS SELECT * FROM src or INSERT INTO dest SELECT * FROM src (Tom Lane) If a table has been modified by ALTER TABLE ADD COLUMN, attempts to copy its data verbatim to another table could produce corrupt results in certain corner cases. The problem can only manifest in this precise form in 8.4 and later, but we patched earlier versions as well in case there are other code paths that could trigger the same bug.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/004", "db_id": "629121ba75ba1de67b9add5a97908c01", "patch_ids": [], "statement_hash": "dd2201091a4cc7227358294105a2eccf81d3a4ca2c03ef4bbe38587e52a2aa74", "relations": [{"rule": 2, "type": "equivalent", "target": "1ceea89f0b8a90b77b21fb707733af30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2201091a4cc7227358294105a2eccf81d3a4ca2c03ef4bbe38587e52a2aa74"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1ceea89f0b8a90b77b21fb707733af30", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 CREATE TABLE dest AS SELECT * FROM src 或 INSERT INTO dest SELECT * FROM src 期间与 TOAST 相关的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "dd2201091a4cc7227358294105a2eccf81d3a4ca2c03ef4bbe38587e52a2aa74"}, "url": "/docs/compare/?release=9.1.2#9.1.2-2d9bfd29a0d320bd", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-7a6ebca2ca27750d", "cves": [], "html": "<p>修复热备启动期间可能的失败（Simon Riggs）</p>", "text": "修复热备启动期间可能的失败（Simon Riggs）", "title": "修复热备启动期间可能的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "db92f00d8102ba2ebb1b41eeeeeea69f1739176b4030f40dfdf7fec53387df95", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix possible failures during hot standby startup (Simon Riggs)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/005", "db_id": "464bad6cb768185648530f246457d8fc", "patch_ids": [], "statement_hash": "3a734e0738b5035f1c088d7ec3ee6ad860069e0f20e0bd57fd0beedaa26f55e9", "relations": [{"rule": 2, "type": "equivalent", "target": "4279106ec7d14d6a180402dbd6a1aa1a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a734e0738b5035f1c088d7ec3ee6ad860069e0f20e0bd57fd0beedaa26f55e9"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4279106ec7d14d6a180402dbd6a1aa1a", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复热备启动期间可能的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3a734e0738b5035f1c088d7ec3ee6ad860069e0f20e0bd57fd0beedaa26f55e9"}, "url": "/docs/compare/?release=9.1.2#9.1.2-7a6ebca2ca27750d", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-a3282037f9e26a02", "cves": [], "html": "<p>当初始快照不完整时更快地启动热备（Simon Riggs）</p>", "text": "当初始快照不完整时更快地启动热备（Simon Riggs）", "title": "当初始快照不完整时更快地启动热备", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "f72d85c544b092d85ada6aefcbfc457157a08a84ac08937b575fd5f5883c76f2", "section_path": ["变更"], "commit_groups": [], "identity_text": "Start hot standby faster when initial snapshot is incomplete (Simon Riggs)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/006", "db_id": "381014a2d7eeb21d89dae65da3b88aa1", "patch_ids": [], "statement_hash": "80cc6c7a6ab8b721008337f0b99dcfb42eaf67b987d75449cb1660a68ea82b0f", "relations": [{"rule": 2, "type": "equivalent", "target": "b2692b32fb6238969bfd723747c2a8f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "80cc6c7a6ab8b721008337f0b99dcfb42eaf67b987d75449cb1660a68ea82b0f"}}], "version": "9.0.6", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2692b32fb6238969bfd723747c2a8f7", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "当初始快照不完整时更快地启动热备", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "80cc6c7a6ab8b721008337f0b99dcfb42eaf67b987d75449cb1660a68ea82b0f"}, "url": "/docs/compare/?release=9.1.2#9.1.2-a3282037f9e26a02", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-6ca587f387d81b55", "cves": [], "html": "<p>修复从过期 syscache 条目访问 toast 表时的竞态条件（Tom Lane）</p>\n<p>典型症状是诸如 <span>“<span>missing chunk number 0 for toast value NNNNN in pg_toast_2619</span>”</span> 的瞬时错误，其中引用的 toast 表总是属于某个系统目录。</p>", "text": "修复从过期 syscache 条目访问 toast 表时的竞态条件（Tom Lane） 典型症状是诸如 “missing chunk number 0 for toast value NNNNN in pg_toast_2619” 的瞬时错误，其中引用的 toast 表总是属于某个系统目录。", "title": "修复从过期 syscache 条目访问 toast 表时的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "2e3e211a3ea2aa34745ec0d8f27ddef6bb29633a23ac079876909db554cc8c7f", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix race condition during toast table access from stale syscache entries (Tom Lane) The typical symptom was transient errors like missing chunk number 0 for toast value NNNNN in pg_toast_2619, where the cited toast table would always belong to a system catalog.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/007", "db_id": "7135434ccf1f94d793585668d2dbafa6", "patch_ids": [], "statement_hash": "4303d3923718a7e699240eb8653363ab228c015b5b056b2dd7095e99e607273e", "relations": [{"rule": 2, "type": "equivalent", "target": "8322f87d656dbb1125e148c5df89bc42", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4303d3923718a7e699240eb8653363ab228c015b5b056b2dd7095e99e607273e"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8322f87d656dbb1125e148c5df89bc42", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复从过期 syscache 条目访问 toast 表时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4303d3923718a7e699240eb8653363ab228c015b5b056b2dd7095e99e607273e"}, "url": "/docs/compare/?release=9.1.2#9.1.2-6ca587f387d81b55", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-893476778e22088f", "cves": [], "html": "<p>跟踪函数对参数默认值表达式中所用项的依赖（Tom Lane）</p>\n<p>此前，被引用的对象可以在未删除或修改函数的情况下被删除，导致函数被使用时行为异常。注意，仅仅安装此更新不会修复缺失的依赖条目；要做到这一点，之后需要对每个这样的函数执行 <code>CREATE OR REPLACE</code>。如果你的函数默认值依赖于非内建对象，建议这样做。</p>", "text": "跟踪函数对参数默认值表达式中所用项的依赖（Tom Lane） 此前，被引用的对象可以在未删除或修改函数的情况下被删除，导致函数被使用时行为异常。注意，仅仅安装此更新不会修复缺失的依赖条目；要做到这一点，之后需要对每个这样的函数执行 CREATE OR REPLACE。如果你的函数默认值依赖于非内建对象，建议这样做。", "title": "跟踪函数对参数默认值表达式中所用项的依赖", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "e2882a7bd9ed27d40c36e8e58b31f6ac69b888b8a44d26d4847708fff72f2bf6", "section_path": ["变更"], "commit_groups": [], "identity_text": "Track dependencies of functions on items used in parameter default expressions (Tom Lane) Previously, a referenced object could be dropped without having dropped or modified the function, leading to misbehavior when the function was used. Note that merely installing this update will not fix the missing dependency entries; to do that, you'd need to CREATE OR REPLACE each such function afterwards. If you have functions whose defaults depend on non-built-in objects, doing so is recommended.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/008", "db_id": "a76d2d4471da35f880c4a2e268ae8f3c", "patch_ids": [], "statement_hash": "612b9a10a05bd75b4678fcfc0fbf0e6b90f0fe083dff6fdc75f953200301f4eb", "relations": [{"rule": 2, "type": "equivalent", "target": "c1e12d9e6f83abe7227080d232de05fd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "612b9a10a05bd75b4678fcfc0fbf0e6b90f0fe083dff6fdc75f953200301f4eb"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c1e12d9e6f83abe7227080d232de05fd", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "跟踪函数对参数默认值表达式中所用项的依赖", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "612b9a10a05bd75b4678fcfc0fbf0e6b90f0fe083dff6fdc75f953200301f4eb"}, "url": "/docs/compare/?release=9.1.2#9.1.2-893476778e22088f", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-9ee1e8fca9b07877", "cves": [], "html": "<p>允许内联带多个 OUT 参数的集合返回 SQL 函数（Tom Lane）</p>", "text": "允许内联带多个 OUT 参数的集合返回 SQL 函数（Tom Lane）", "title": "允许内联带多个 OUT 参数的集合返回 SQL 函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "aa5bbedb9571e99f346c111f820072f5f7460c523b7eab77193ee53752126e44", "section_path": ["变更"], "commit_groups": [], "identity_text": "Allow inlining of set-returning SQL functions with multiple OUT parameters (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/009", "db_id": "aec336cc1b647e0433239a1198af40ce", "patch_ids": [], "statement_hash": "b7ca3851513c50c046d73c773ed0ad43ee2e9c7d63875a7c7a2a1b5958f1ec3f", "relations": [{"rule": 2, "type": "equivalent", "target": "541c3a93fe072ef35c169e7ba30f7275", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7ca3851513c50c046d73c773ed0ad43ee2e9c7d63875a7c7a2a1b5958f1ec3f"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "541c3a93fe072ef35c169e7ba30f7275", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "允许内联带多个 OUT 参数的集合返回 SQL 函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b7ca3851513c50c046d73c773ed0ad43ee2e9c7d63875a7c7a2a1b5958f1ec3f"}, "url": "/docs/compare/?release=9.1.2#9.1.2-9ee1e8fca9b07877", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-10b1995133f3beb7", "cves": [], "html": "<p>不要为连接消除信任延迟唯一索引（Tom Lane、Marti Raudsepp）</p>\n<p>延迟唯一约束在事务内可能不成立，因此假设它成立可能给出错误的查询结果。</p>", "text": "不要为连接消除信任延迟唯一索引（Tom Lane、Marti Raudsepp） 延迟唯一约束在事务内可能不成立，因此假设它成立可能给出错误的查询结果。", "title": "不要为连接消除信任延迟唯一索引", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "a92e6fe834794fee8d8ba4b76e0fe51eaa181fd567e66232f6803ba3d64bfa59", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't trust deferred-unique indexes for join removal (Tom Lane and Marti Raudsepp) A deferred uniqueness constraint might not hold intra-transaction, so assuming that it does could give incorrect query results.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/010", "db_id": "8ffb88c8e547d9e1663b4fd0aa0f5025", "patch_ids": [], "statement_hash": "da6ede1f26849a51706bba1754d473c176f65bba1c93650cf79c864d68f7828b", "relations": [{"rule": 2, "type": "equivalent", "target": "0f502bcca16bc46bc5b36787b214a3ec", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da6ede1f26849a51706bba1754d473c176f65bba1c93650cf79c864d68f7828b"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0f502bcca16bc46bc5b36787b214a3ec", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "不要为连接消除信任延迟唯一索引", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da6ede1f26849a51706bba1754d473c176f65bba1c93650cf79c864d68f7828b"}, "url": "/docs/compare/?release=9.1.2#9.1.2-10b1995133f3beb7", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-033fe8abb4248406", "cves": [], "html": "<p>让 <code>DatumGetInetP()</code> 解包带 1 字节头的 inet datum，并新增一个不做此事的宏 <code>DatumGetInetPP()</code>（Heikki Linnakangas）</p>\n<p>此变更不影响任何核心代码，但可能避免期望 <code>DatumGetInetP()</code> 按常规约定产生已解包 datum 的附加代码中的崩溃。</p>", "text": "让 DatumGetInetP() 解包带 1 字节头的 inet datum，并新增一个不做此事的宏 DatumGetInetPP()（Heikki Linnakangas） 此变更不影响任何核心代码，但可能避免期望 DatumGetInetP() 按常规约定产生已解包 datum 的附加代码中的崩溃。", "title": "让 DatumGetInetP() 解包带 1 字节头的 inet datum，并新增一个不做此事的宏 DatumGetInetPP()", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "dd1aed895170d6e5f08a6c112aae86fa6eccb9ce1ebef5b1367d248c30ad9f30", "section_path": ["变更"], "commit_groups": [], "identity_text": "Make DatumGetInetP() unpack inet datums that have a 1-byte header, and add a new macro, DatumGetInetPP(), that does not (Heikki Linnakangas) This change affects no core code, but might prevent crashes in add-on code that expects DatumGetInetP() to produce an unpacked datum as per usual convention.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/011", "db_id": "b985a7d1e68ec3966dc328793085a0ca", "patch_ids": [], "statement_hash": "581050ea251196f500f3fb2adac545a45512855a50c1165c4ec9ef93ef2a3968", "relations": [{"rule": 2, "type": "equivalent", "target": "5c08f8b38dffd2d5c6497ba46e6dc5a1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581050ea251196f500f3fb2adac545a45512855a50c1165c4ec9ef93ef2a3968"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5c08f8b38dffd2d5c6497ba46e6dc5a1", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "让 DatumGetInetP() 解包带 1 字节头的 inet datum，并新增一个不做此事的宏 DatumGetInetPP()", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "581050ea251196f500f3fb2adac545a45512855a50c1165c4ec9ef93ef2a3968"}, "url": "/docs/compare/?release=9.1.2#9.1.2-033fe8abb4248406", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-a4fe1ecf06987cea", "cves": [], "html": "<p>改进 <code>money</code> 类型输入和输出的区域支持（Tom Lane）</p>\n<p>除了不支持所有标准 <a href=\"/docs/9.0/runtime-config-client.html#GUC-LC-MONETARY\"><code>lc_monetary</code></a> 格式化选项外，输入和输出函数还不一致，这意味着在某些区域设置下转储的 <code>money</code> 值无法重新读取。</p>", "text": "改进 money 类型输入和输出的区域支持（Tom Lane） 除了不支持所有标准 lc_monetary 格式化选项外，输入和输出函数还不一致，这意味着在某些区域设置下转储的 money 值无法重新读取。", "title": "改进 money 类型输入和输出的区域支持", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "21dc0ba8d0c0b26bd77d4d3240bdf46c8b47254ca8ffc4569705f7288c95e26d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Improve locale support in money type's input and output (Tom Lane) Aside from not supporting all standard lc_monetary formatting options, the input and output functions were inconsistent, meaning there were locales in which dumped money values could not be re-read.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/012", "db_id": "b8101cca67318d05504da1a6d1226721", "patch_ids": [], "statement_hash": "8a60fe292710ee67f2ef93af31a3bc7bf5d714c153026f12105181b6114e0cd4", "relations": [{"rule": 2, "type": "equivalent", "target": "4f017b19b67e25b0dde727396e75eeb0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a60fe292710ee67f2ef93af31a3bc7bf5d714c153026f12105181b6114e0cd4"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4f017b19b67e25b0dde727396e75eeb0", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "改进 money 类型输入和输出的区域支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8a60fe292710ee67f2ef93af31a3bc7bf5d714c153026f12105181b6114e0cd4"}, "url": "/docs/compare/?release=9.1.2#9.1.2-a4fe1ecf06987cea", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-23ef48aa654da5b1", "cves": [], "html": "<p>不让 <a href=\"/docs/9.0/runtime-config-compatible.html#GUC-TRANSFORM-NULL-EQUALS\"><code>transform_null_equals</code></a> 影响 <code>CASE foo WHEN NULL ...</code> 构造（Heikki Linnakangas）</p>\n<p><code>transform_null_equals</code> 只应影响用户直接写的 <code>foo = NULL</code> 表达式，而不是这种形式的 <code>CASE</code> 在内部生成的相等性检查。</p>", "text": "不让 transform_null_equals 影响 CASE foo WHEN NULL ... 构造（Heikki Linnakangas） transform_null_equals 只应影响用户直接写的 foo = NULL 表达式，而不是这种形式的 CASE 在内部生成的相等性检查。", "title": "不让 transform_null_equals 影响 CASE foo WHEN NULL ... 构造", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "28a99d5c371223af7e58cd73d19fdaa0f55406e66fd270e0ae7d25a2ab6922d7", "section_path": ["变更"], "commit_groups": [], "identity_text": "Don't let transform_null_equals affect CASE foo WHEN NULL ... constructs (Heikki Linnakangas) transform_null_equals is only supposed to affect foo = NULL expressions written directly by the user, not equality checks generated internally by this form of CASE.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/013", "db_id": "afbc237f4cc3bdf977e490e34f485137", "patch_ids": [], "statement_hash": "2ed0f12d766f01cb207e0b976933b1ae61bf3d4e3959a14c187b0ebed7d89a65", "relations": [{"rule": 2, "type": "equivalent", "target": "a1cfc4dcbee44282c57eb780cb5c36d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ed0f12d766f01cb207e0b976933b1ae61bf3d4e3959a14c187b0ebed7d89a65"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a1cfc4dcbee44282c57eb780cb5c36d6", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "不让 transform_null_equals 影响 CASE foo WHEN NULL ... 构造", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2ed0f12d766f01cb207e0b976933b1ae61bf3d4e3959a14c187b0ebed7d89a65"}, "url": "/docs/compare/?release=9.1.2#9.1.2-23ef48aa654da5b1", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-7463fb5460a12278", "cves": [], "html": "<p>更改外键触发器的创建顺序，以更好地支持自引用外键（Tom Lane）</p>\n<p>对于引用自身表的级联外键，行更新会作为一个事件同时触发 <code>ON UPDATE</code> 触发器和 <code>CHECK</code> 触发器。<code>ON UPDATE</code> 触发器必须先执行，否则 <code>CHECK</code> 会检查行的非最终状态，并可能抛出不恰当的错误。然而这些触发器的触发顺序由其名称决定，而由于触发器使用遵循 <span>“<span>RI_ConstraintTrigger_NNNN</span>”</span> 约定的自动生成名称，它们通常按创建顺序排序。彻底的修复需要修改该约定（我们将在 9.2 中做），但在现有版本中更改它似乎有风险。因此此补丁只更改触发器的创建顺序。遇到这类错误的用户应删除并重新创建外键约束，使其触发器处于正确顺序。</p>", "text": "更改外键触发器的创建顺序，以更好地支持自引用外键（Tom Lane） 对于引用自身表的级联外键，行更新会作为一个事件同时触发 ON UPDATE 触发器和 CHECK 触发器。ON UPDATE 触发器必须先执行，否则 CHECK 会检查行的非最终状态，并可能抛出不恰当的错误。然而这些触发器的触发顺序由其名称决定，而由于触发器使用遵循 “RI_ConstraintTrigger_NNNN” 约定的自动生成名称，它们通常按创建顺序排序。彻底的修复需要修改该约定（我们将在 9.2 中做），但在现有版本中更改它似乎有风险。因此此补丁只更改触发器的创建顺序。遇到这类错误的用户应删除并重新创建外键约束，使其触发器处于正确顺序。", "title": "更改外键触发器的创建顺序，以更好地支持自引用外键", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "6b2cda3b8f198d0f2b5aac09f0fd7c58aa1e86112bbb04a86d9845635b45a98d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Change foreign-key trigger creation order to better support self-referential foreign keys (Tom Lane) For a cascading foreign key that references its own table, a row update will fire both the ON UPDATE trigger and the CHECK trigger as one event. The ON UPDATE trigger must execute first, else the CHECK will check a non-final state of the row and possibly throw an inappropriate error. However, the firing order of these triggers is determined by their names, which generally sort in creation order since the triggers have auto-generated names following the convention RI_ConstraintTrigger_NNNN. A proper fix would require modifying that convention, which we will do in 9.2, but it seems risky to change it in existing releases. So this patch just changes the creation order of the triggers. Users encountering this type of error should drop and re-create the foreign key constraint to get its triggers into the right order.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/014", "db_id": "5d217c24d55f825a088174cfa76f1298", "patch_ids": [], "statement_hash": "a5c0ba6d611829fb02aad58119ff5af98e457ecdcb6289fadf441d05da46212f", "relations": [{"rule": 2, "type": "equivalent", "target": "3c856dc7a3094049f46a14a8c5b172ac", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5c0ba6d611829fb02aad58119ff5af98e457ecdcb6289fadf441d05da46212f"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3c856dc7a3094049f46a14a8c5b172ac", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "更改外键触发器的创建顺序，以更好地支持自引用外键", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a5c0ba6d611829fb02aad58119ff5af98e457ecdcb6289fadf441d05da46212f"}, "url": "/docs/compare/?release=9.1.2#9.1.2-7463fb5460a12278", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-03616927317171bb", "cves": [], "html": "<p>避免在跟踪缓冲区分配率时发生浮点下溢（Greg Matthews）</p>\n<p>虽然这本身无害，但在某些平台上会导致烦人的内核日志消息。</p>", "text": "避免在跟踪缓冲区分配率时发生浮点下溢（Greg Matthews） 虽然这本身无害，但在某些平台上会导致烦人的内核日志消息。", "title": "避免在跟踪缓冲区分配率时发生浮点下溢", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "5206ddbdf0128e968684164409308aa0e4a779f60cb4af22ed9a821a2dcc6b05", "section_path": ["变更"], "commit_groups": [], "identity_text": "Avoid floating-point underflow while tracking buffer allocation rate (Greg Matthews) While harmless in itself, on certain platforms this would result in annoying kernel log messages.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/015", "db_id": "54df9680074d23e2395b887b812446b9", "patch_ids": [], "statement_hash": "8f83e270b485160f65aeb788da3dabf090d68aadc6058a48749bd947e8097edc", "relations": [{"rule": 2, "type": "equivalent", "target": "5a21e745ac07215afa9997ea186d5f42", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f83e270b485160f65aeb788da3dabf090d68aadc6058a48749bd947e8097edc"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "5a21e745ac07215afa9997ea186d5f42", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "避免在跟踪缓冲区分配率时发生浮点下溢", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f83e270b485160f65aeb788da3dabf090d68aadc6058a48749bd947e8097edc"}, "url": "/docs/compare/?release=9.1.2#9.1.2-03616927317171bb", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-0e31cb5366dd90e4", "cves": [], "html": "<p>在 Windows 下启动子进程时保留配置文件名和行号值（Tom Lane）</p>\n<p>此前它们不会在 <code>pg_settings</code> 视图中正确显示。</p>", "text": "在 Windows 下启动子进程时保留配置文件名和行号值（Tom Lane） 此前它们不会在 pg_settings 视图中正确显示。", "title": "在 Windows 下启动子进程时保留配置文件名和行号值", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "faa4d22cde182e684be767edfc8f7f57c68f604302e9ef19769695172c2a3d36", "section_path": ["变更"], "commit_groups": [], "identity_text": "Preserve configuration file name and line number values when starting child processes under Windows (Tom Lane) Formerly, these would not be displayed correctly in the pg_settings view.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/016", "db_id": "976328605e20c89c9fba186bae2f5196", "patch_ids": [], "statement_hash": "bd237e247cbed31af8aca5feb2e4b2d2b936f89fffb02ff1f40c771ffce86c2a", "relations": [{"rule": 2, "type": "equivalent", "target": "fd16442a2e69564a43f1c63804a0b74e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd237e247cbed31af8aca5feb2e4b2d2b936f89fffb02ff1f40c771ffce86c2a"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "fd16442a2e69564a43f1c63804a0b74e", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "在 Windows 下启动子进程时保留配置文件名和行号值", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd237e247cbed31af8aca5feb2e4b2d2b936f89fffb02ff1f40c771ffce86c2a"}, "url": "/docs/compare/?release=9.1.2#9.1.2-0e31cb5366dd90e4", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-dbec5f2950d9ea54", "cves": [], "html": "<p>修复 <span>ecpg</span> 的 SQLDA 区域中不正确的字段对齐（Zoltan Boszormenyi）</p>", "text": "修复 ecpg 的 SQLDA 区域中不正确的字段对齐（Zoltan Boszormenyi）", "title": "修复 ecpg 的 SQLDA 区域中不正确的字段对齐", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "b337e09da25ff824f0f15aa57aa85014ba5a4e5918304bb57a0b088e3c27f743", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect field alignment in ecpg's SQLDA area (Zoltan Boszormenyi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/017", "db_id": "e2cbbff27a71e75bc0b96456d57223cf", "patch_ids": [], "statement_hash": "88c6a4237cc486a702e3820ce3aa6717f306b4a80670d3fff44e0988f677b390", "relations": [{"rule": 2, "type": "equivalent", "target": "bd986ef8d9e45f60957b6ca7659b7741", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "88c6a4237cc486a702e3820ce3aa6717f306b4a80670d3fff44e0988f677b390"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bd986ef8d9e45f60957b6ca7659b7741", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 ecpg 的 SQLDA 区域中不正确的字段对齐", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "88c6a4237cc486a702e3820ce3aa6717f306b4a80670d3fff44e0988f677b390"}, "url": "/docs/compare/?release=9.1.2#9.1.2-dbec5f2950d9ea54", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-0ee60edb4d385095", "cves": [], "html": "<p>在 <span>psql</span> 的命令历史中保留命令内的空行（Robert Haas）</p>\n<p>例如，如果从字符串字面量中删除了空行，先前的行为可能导致问题。</p>", "text": "在 psql 的命令历史中保留命令内的空行（Robert Haas） 例如，如果从字符串字面量中删除了空行，先前的行为可能导致问题。", "title": "在 psql 的命令历史中保留命令内的空行", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "c5fadb66e5c5beab22df276bbfa7422ba1813e33b6f1c9d61f631c64d88e5a9d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Preserve blank lines within commands in psql's command history (Robert Haas) The former behavior could cause problems if an empty line was removed from within a string literal, for example.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/018", "db_id": "8f13aae171202168dd3a54cc46997805", "patch_ids": [], "statement_hash": "7d942cdb9fa1249b9034db931ef6331592837d713e664b7be772629178cf32b8", "relations": [{"rule": 2, "type": "equivalent", "target": "c964558d808089b18305d9f549a0c5ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d942cdb9fa1249b9034db931ef6331592837d713e664b7be772629178cf32b8"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c964558d808089b18305d9f549a0c5ca", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "在 psql 的命令历史中保留命令内的空行", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7d942cdb9fa1249b9034db931ef6331592837d713e664b7be772629178cf32b8"}, "url": "/docs/compare/?release=9.1.2#9.1.2-0ee60edb4d385095", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-5f819232c0e909b9", "cves": [], "html": "<p>修复 <span>pg_dump</span>，使其转储自动生成类型（如表行类型）之间的用户定义转换（Tom Lane）</p>", "text": "修复 pg_dump，使其转储自动生成类型（如表行类型）之间的用户定义转换（Tom Lane）", "title": "修复 pg_dump，使其转储自动生成类型（如表行类型）之间的用户定义转换", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "0033c3950939d16c772624ae675bec9b1675703d8382043dc489ffe5d742d7fb", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix pg_dump to dump user-defined casts between auto-generated types, such as table rowtypes (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/019", "db_id": "df73aa2735e64b3b7036b9a42c2da21e", "patch_ids": [], "statement_hash": "6f9ef46a3916bb4571be53509150d69f5e7efc90ad6c903764309147c73ab6cc", "relations": [{"rule": 2, "type": "equivalent", "target": "a87162c891d862282b062652a16a60e1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f9ef46a3916bb4571be53509150d69f5e7efc90ad6c903764309147c73ab6cc"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a87162c891d862282b062652a16a60e1", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 pg_dump，使其转储自动生成类型（如表行类型）之间的用户定义转换", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6f9ef46a3916bb4571be53509150d69f5e7efc90ad6c903764309147c73ab6cc"}, "url": "/docs/compare/?release=9.1.2#9.1.2-5f819232c0e909b9", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-add49306e3e119aa", "cves": [], "html": "<p>对 <span>pg_upgrade</span> 的若干修复（Bruce Momjian）</p>\n<p>正确处理排他约束、避免 Windows 上的失败、不再对 8.4 数据库中不匹配的 toast 表名报错。</p>", "text": "对 pg_upgrade 的若干修复（Bruce Momjian） 正确处理排他约束、避免 Windows 上的失败、不再对 8.4 数据库中不匹配的 toast 表名报错。", "title": "对 pg_upgrade 的若干修复", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "9cc4448558805deeaa3087ba9087e653ebb4bbc972bac23e13db9daadd593464", "section_path": ["变更"], "commit_groups": [], "identity_text": "Assorted fixes for pg_upgrade (Bruce Momjian) Handle exclusion constraints correctly, avoid failures on Windows, don't complain about mismatched toast table names in 8.4 databases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/020", "db_id": "4e9272e7420d2950829395f90390b377", "patch_ids": [], "statement_hash": "ba440a21e24dc0dfef64dbed35401a81581e8b10390b69a8776d45e896905437", "relations": [{"rule": 2, "type": "equivalent", "target": "1974083edace1bdae89eb4ecbae5c779", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba440a21e24dc0dfef64dbed35401a81581e8b10390b69a8776d45e896905437"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1974083edace1bdae89eb4ecbae5c779", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "对 pg_upgrade 的若干修复", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba440a21e24dc0dfef64dbed35401a81581e8b10390b69a8776d45e896905437"}, "url": "/docs/compare/?release=9.1.2#9.1.2-add49306e3e119aa", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-47765f2b21a5e358", "cves": [], "html": "<p>使用首选版本的 <span>xsubpp</span> 构建 PL/Perl，而不一定是操作系统的主副本（David Wheeler、Alex Hunsaker）</p>", "text": "使用首选版本的 xsubpp 构建 PL/Perl，而不一定是操作系统的主副本（David Wheeler、Alex Hunsaker）", "title": "使用首选版本的 xsubpp 构建 PL/Perl，而不一定是操作系统的主副本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "c0f00b01ad2424cd17c36b4d35f00213f2c1cab581ab342ab368bd715a757c42", "section_path": ["变更"], "commit_groups": [], "identity_text": "Use the preferred version of xsubpp to build PL/Perl, not necessarily the operating system's main copy (David Wheeler and Alex Hunsaker)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/021", "db_id": "a1821edd0d0c327bc815fb2775778774", "patch_ids": [], "statement_hash": "0c04ffc129379757bc71747cbab20fc54fff1556febd7505a0443009bbd3a2f5", "relations": [{"rule": 2, "type": "equivalent", "target": "c1753ef4146fadbf60910a1e9abfe31e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0c04ffc129379757bc71747cbab20fc54fff1556febd7505a0443009bbd3a2f5"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c1753ef4146fadbf60910a1e9abfe31e", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "使用首选版本的 xsubpp 构建 PL/Perl，而不一定是操作系统的主副本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0c04ffc129379757bc71747cbab20fc54fff1556febd7505a0443009bbd3a2f5"}, "url": "/docs/compare/?release=9.1.2#9.1.2-47765f2b21a5e358", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-f76314c606184658", "cves": [], "html": "<p>修复 <code>contrib/dict_int</code> 和 <code>contrib/dict_xsyn</code> 中的错误编码（Tom Lane）</p>\n<p>一些函数错误地假定 <code>palloc()</code> 返回的内存保证被清零。</p>", "text": "修复 contrib/dict_int 和 contrib/dict_xsyn 中的错误编码（Tom Lane） 一些函数错误地假定 palloc() 返回的内存保证被清零。", "title": "修复 contrib/dict_int 和 contrib/dict_xsyn 中的错误编码", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "d901e0d87f38c160c8660a8c4cad422d9247a4ae6741d761ad7ff707c832c75a", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect coding in contrib/dict_int and contrib/dict_xsyn (Tom Lane) Some functions incorrectly assumed that memory returned by palloc() is guaranteed zeroed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/022", "db_id": "451d61d5e81dfa6cca805dcde7476269", "patch_ids": [], "statement_hash": "49ba02709b9bbf2c5cf57be27b8c0f9fd6347143c33a082a0b8e1bfb82614e31", "relations": [{"rule": 2, "type": "equivalent", "target": "d7923ba53ac52d74adb79a0fa44f4cda", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49ba02709b9bbf2c5cf57be27b8c0f9fd6347143c33a082a0b8e1bfb82614e31"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d7923ba53ac52d74adb79a0fa44f4cda", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 contrib/dict_int 和 contrib/dict_xsyn 中的错误编码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "49ba02709b9bbf2c5cf57be27b8c0f9fd6347143c33a082a0b8e1bfb82614e31"}, "url": "/docs/compare/?release=9.1.2#9.1.2-f76314c606184658", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-91f6d65c2873b4b1", "cves": [], "html": "<p>修复 <code>contrib/unaccent</code> 配置文件解析中的若干错误（Tom Lane）</p>", "text": "修复 contrib/unaccent 配置文件解析中的若干错误（Tom Lane）", "title": "修复 contrib/unaccent 配置文件解析中的若干错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "8ee8d64057a7a1990505927d953549991d3cddaaa2a46fb73680a37c4b787ef0", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix assorted errors in contrib/unaccent's configuration file parsing (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/023", "db_id": "65668c3bcd03a2b93cf4f5b39705db80", "patch_ids": [], "statement_hash": "18b18bdc840787c6e58aa8f54409bd59f135fa848a5c27a73371997a42aac7d2", "relations": [{"rule": 2, "type": "equivalent", "target": "9bd711eada9a21c91a1e00fa925ceeff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "18b18bdc840787c6e58aa8f54409bd59f135fa848a5c27a73371997a42aac7d2"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9bd711eada9a21c91a1e00fa925ceeff", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复 contrib/unaccent 配置文件解析中的若干错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "18b18bdc840787c6e58aa8f54409bd59f135fa848a5c27a73371997a42aac7d2"}, "url": "/docs/compare/?release=9.1.2#9.1.2-91f6d65c2873b4b1", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-2992e3678bb7b453", "cves": [], "html": "<p>让 <code>pgstatindex()</code> 及时响应查询取消中断（Robert Haas）</p>", "text": "让 pgstatindex() 及时响应查询取消中断（Robert Haas）", "title": "让 pgstatindex() 及时响应查询取消中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "9d8c1a35ef166df5deccb3036b7f47d29c90f750ad3802dd04ce5e126b718509", "section_path": ["变更"], "commit_groups": [], "identity_text": "Honor query cancel interrupts promptly in pgstatindex() (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/024", "db_id": "fee7c8d1ebaa1542aa0493891cbbaafd", "patch_ids": [], "statement_hash": "e04cff4dc22ebfeb96c875ffa23f12907f6d30581ba1471a464f070a2b5c8101", "relations": [{"rule": 2, "type": "equivalent", "target": "9a4ea28a7e2655a57613c375a53135cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e04cff4dc22ebfeb96c875ffa23f12907f6d30581ba1471a464f070a2b5c8101"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9a4ea28a7e2655a57613c375a53135cf", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "让 pgstatindex() 及时响应查询取消中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e04cff4dc22ebfeb96c875ffa23f12907f6d30581ba1471a464f070a2b5c8101"}, "url": "/docs/compare/?release=9.1.2#9.1.2-2992e3678bb7b453", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-0cd019371b0af250", "cves": [], "html": "<p>修复 Mac OS X 启动脚本中日志文件名的不正确引号（Sidar Lopez）</p>", "text": "修复 Mac OS X 启动脚本中日志文件名的不正确引号（Sidar Lopez）", "title": "修复 Mac OS X 启动脚本中日志文件名的不正确引号", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "74261667f9a53a57891629e9f40fdcb849d9a8fc03781a5091d9b65178482be5", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix incorrect quoting of log file name in Mac OS X start script (Sidar Lopez)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/025", "db_id": "e15efdd0dcee7c45c6db9aeb8ee5f8d2", "patch_ids": [], "statement_hash": "be3160e973709bac32f75e05aeadc044b77c8f042fc1f179068f20dd7f7c1a50", "relations": [], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.6-6f49e5ff3f1b7a7b", "cves": [], "html": "<p>确保 VPATH 构建正确安装所有服务器头文件（Peter Eisentraut）</p>", "text": "确保 VPATH 构建正确安装所有服务器头文件（Peter Eisentraut）", "title": "确保 VPATH 构建正确安装所有服务器头文件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "837a5931e716a6a9a09a3b2bef70204a2bde1f791cc2dee7d1ae56e225de7f2d", "section_path": ["变更"], "commit_groups": [], "identity_text": "Ensure VPATH builds properly install all server header files (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/026", "db_id": "5d4dfa8f4605373daf5f6da0d01353b5", "patch_ids": [], "statement_hash": "798739f09a1990a5cd61d58120fc2867d43e5aafa81fc59387d4295ec7abb9c2", "relations": [{"rule": 2, "type": "equivalent", "target": "7903c2a9e85de74e7113a4ef6ee2d5be", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "798739f09a1990a5cd61d58120fc2867d43e5aafa81fc59387d4295ec7abb9c2"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7903c2a9e85de74e7113a4ef6ee2d5be", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "确保 VPATH 构建正确安装所有服务器头文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "798739f09a1990a5cd61d58120fc2867d43e5aafa81fc59387d4295ec7abb9c2"}, "url": "/docs/compare/?release=9.1.2#9.1.2-6f49e5ff3f1b7a7b", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-715426b0a9d07255", "cves": [], "html": "<p>缩短详细错误消息中报告的文件名（Peter Eisentraut）</p>\n<p>常规构建一直只报告包含错误消息调用的 C 文件的名称，但 VPATH 构建此前报告绝对路径名。</p>", "text": "缩短详细错误消息中报告的文件名（Peter Eisentraut） 常规构建一直只报告包含错误消息调用的 C 文件的名称，但 VPATH 构建此前报告绝对路径名。", "title": "缩短详细错误消息中报告的文件名", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "0081828b4edcf0ef22fa2ceb5d4fac6b04b27e55aa235ab95225c3c3a0e8e1f4", "section_path": ["变更"], "commit_groups": [], "identity_text": "Shorten file names reported in verbose error messages (Peter Eisentraut) Regular builds have always reported just the name of the C file containing the error message call, but VPATH builds formerly reported an absolute path name.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/027", "db_id": "67309ef57a143e750b341962ded85834", "patch_ids": [], "statement_hash": "ef196f53da83dd09fddcd963dd88e7e6c91f24de165efb506f0386a9a409576a", "relations": [{"rule": 2, "type": "equivalent", "target": "3f2d13bc3c5ef6646051ee222766f33c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef196f53da83dd09fddcd963dd88e7e6c91f24de165efb506f0386a9a409576a"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3f2d13bc3c5ef6646051ee222766f33c", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "缩短详细错误消息中报告的文件名", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ef196f53da83dd09fddcd963dd88e7e6c91f24de165efb506f0386a9a409576a"}, "url": "/docs/compare/?release=9.1.2#9.1.2-715426b0a9d07255", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-1200737128401fc7", "cves": [], "html": "<p>修复中美洲 Windows 时区名的解释（Tom Lane）</p>\n<p>把<span>“<span>Central America Standard Time</span>”</span>映射为 <code>CST6</code> 而不是 <code>CST6CDT</code>，因为中美洲各地通常不实行夏令时。</p>", "text": "修复中美洲 Windows 时区名的解释（Tom Lane） 把“Central America Standard Time”映射为 CST6 而不是 CST6CDT，因为中美洲各地通常不实行夏令时。", "title": "修复中美洲 Windows 时区名的解释", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "7ecb6dbfb98e7f784cc58d387440ad58faa9112e345abf3c7649d1f2ed5d04b8", "section_path": ["变更"], "commit_groups": [], "identity_text": "Fix interpretation of Windows timezone names for Central America (Tom Lane) Map Central America Standard Time to CST6, not CST6CDT, because DST is generally not observed anywhere in Central America.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/028", "db_id": "0305081a576970e7a6561a59b14cfdeb", "patch_ids": [], "statement_hash": "197646cee75e417848124b46ef55dae08f26820adc10c43efd1c22081bcf654b", "relations": [{"rule": 2, "type": "equivalent", "target": "a3fa82172395c4969d8412adae42969a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "197646cee75e417848124b46ef55dae08f26820adc10c43efd1c22081bcf654b"}}], "version": "9.0.6", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a3fa82172395c4969d8412adae42969a", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "修复中美洲 Windows 时区名的解释", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "197646cee75e417848124b46ef55dae08f26820adc10c43efd1c22081bcf654b"}, "url": "/docs/compare/?release=9.1.2#9.1.2-1200737128401fc7", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}, {"id": "9.0.6-a5172703a2fa0d11", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa。</p>", "text": "把时区数据文件更新为 tzdata 版本 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa。", "title": "把时区数据文件更新为 tzdata 版本 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.0.6/#id-1.11.6.22.5", "source_hash": "8c039797b3d2a20cd9fb7af66aad51627d613ea894afcdda63956ee9032a8e27", "section_path": ["变更"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.6/changes/029", "db_id": "f21b7b0073ea08b8c2f04977f092d4d3", "patch_ids": [], "statement_hash": "0d0ef3b8d4a09d9470c13cec565b2804846f7f60af62c1fb0e5451406036ec40", "relations": [{"rule": 2, "type": "equivalent", "target": "ff1dd9d66281b58b1028d0c1a5624ee3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d0ef3b8d4a09d9470c13cec565b2804846f7f60af62c1fb0e5451406036ec40"}}], "version": "9.0.6", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ff1dd9d66281b58b1028d0c1a5624ee3", "kind": "equivalent", "version": "9.1.2", "label": "9.1.2", "title": "把时区数据文件更新为 tzdata 版本 2011n for DST law changes in Brazil, Cuba, Fiji, Palestine, Russia, and Samoa; also historical corrections for Alaska and British East Africa。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0d0ef3b8d4a09d9470c13cec565b2804846f7f60af62c1fb0e5451406036ec40"}, "url": "/docs/compare/?release=9.1.2#9.1.2-a5172703a2fa0d11", "source_url": "/docs/release/9.1.2/#id-1.11.6.27.5"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 29}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 13}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 1}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 15}], "total": 29, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 29, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}