{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2014-03-20", "build": "9.3.4", "major": "9.3", "minor": 4, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.4", "eol_date": "2018-11-08", "date_text": "2014-03-20", "supported": false, "manual_url": "/docs/9.3/release-9-3-4.html", "source_url": "/docs/release/9.3.4/", "entry_count": 21, "placeholder": false, "content_hash": "91142b9535359426dd81cd6fdc9a91ccbb942078c79e1ea654af36324a9d8164", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 21, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，下面第一条变更日志修复的错误可能在备库服务器上造成了损坏数据。在安装此更新后，用新的基础备份重新初始化备库服务器可能是明智的。</p>\n<p>不过，如果你是从早于 9.3.3 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-3.html\" title=\"E.23. 版本 9.3.3\">第 E.23 节</a>。</p>", "compatibility_count": 0, "label": "9.3.4", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4577, "support_days": -2883}, "groups": [{"date": "2014-03-20", "build": "9.3.4", "major": "9.3", "minor": 4, "manual": "9.3", "status": "stable", "doc_git": "", "version": "9.3.4", "eol_date": "2018-11-08", "date_text": "2014-03-20", "supported": false, "manual_url": "/docs/9.3/release-9-3-4.html", "source_url": "/docs/release/9.3.4/", "entry_count": 21, "placeholder": false, "content_hash": "91142b9535359426dd81cd6fdc9a91ccbb942078c79e1ea654af36324a9d8164", "manual_build": "9.3.25", "source_as_of": "", "changes_count": 21, "doc_loaded_at": "2026-09-26T02:56:46.133805", "migration_html": "<p>对于运行 9.3.X 的用户，不需要进行转储/恢复。</p>\n<p>不过，下面第一条变更日志修复的错误可能在备库服务器上造成了损坏数据。在安装此更新后，用新的基础备份重新初始化备库服务器可能是明智的。</p>\n<p>不过，如果你是从早于 9.3.3 的版本升级，请参见<a href=\"/docs/9.3/release-9-3-3.html\" title=\"E.23. 版本 9.3.3\">第 E.23 节</a>。</p>", "compatibility_count": 0, "label": "9.3.4", "status_label": "历史版本", "eol": "2018-11-08", "age_days": 4577, "support_days": -2883, "entries": [{"id": "9.3.4-b484621db69ad545", "cves": [], "html": "<p>修复锁定已更新元组的 WAL 重放（Andres Freund、Álvaro Herrera）</p>\n<p>这一错误导致索引扫描找不到已更新的行，使查询结果取决于是否使用索引扫描而不一致。后续处理可能导致约束冲突，因为之前更新的行不会再被后续的索引搜索找到，从而可能允许插入相互冲突的行。由于该错误位于 WAL 重放中，它只会在崩溃恢复期间或备库服务器上显现。重放不当的情况最常见于外键约束引用的表行与引用行的创建并发更新时。</p>", "text": "修复锁定已更新元组的 WAL 重放（Andres Freund、Álvaro Herrera） 这一错误导致索引扫描找不到已更新的行，使查询结果取决于是否使用索引扫描而不一致。后续处理可能导致约束冲突，因为之前更新的行不会再被后续的索引搜索找到，从而可能允许插入相互冲突的行。由于该错误位于 WAL 重放中，它只会在崩溃恢复期间或备库服务器上显现。重放不当的情况最常见于外键约束引用的表行与引用行的创建并发更新时。", "title": "修复锁定已更新元组的 WAL 重放", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "abe25b1d8a187b12f297f495b2f5c3a3e164a00a7729d2e70112fa49d3d8ae58", "section_path": ["变更"], "commit_groups": [["6bfa88acd", "9a57858f1"]], "identity_text": "Fix WAL replay of locking an already-updated tuple (Andres Freund, Álvaro Herrera) This error caused updated rows to not be found by index scans, resulting in inconsistent query results depending on whether an index scan was used. Subsequent processing could result in constraint violations, since the previously updated row would not be found by later index searches, thus possibly allowing conflicting rows to be inserted. Since this error is in WAL replay, it would only manifest during crash recovery or on standby servers. The improperly-replayed case most commonly arises when a table row that is referenced by a foreign-key constraint is updated concurrently with creation of a referencing row.", "commit_aliases": ["6bfa88acd", "9a57858f1"], "source_commits": ["9a57858f1"], "source_entry_id": "9.3.4/changes/001", "db_id": "c5cb195c248850da5c67d510296975b7", "patch_ids": ["143b9455eaa82cf4c65078ca7bbd2b17"], "statement_hash": "769ff820869af5cb273980f8580d94a5e17c3c51f1c3191abc9976b4ea628af3", "relations": [], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-111ab50ad1f2c777", "cves": [], "html": "<p>无条件恢复 GIN 元页以避免残缺页风险（Heikki Linnakangas）</p>\n<p>虽然这一疏忽理论上可能导致索引损坏，但实际上不太可能造成任何问题，因为 GIN 元页的活动部分小于标准的 512 字节磁盘扇区。</p>", "text": "无条件恢复 GIN 元页以避免残缺页风险（Heikki Linnakangas） 虽然这一疏忽理论上可能导致索引损坏，但实际上不太可能造成任何问题，因为 GIN 元页的活动部分小于标准的 512 字节磁盘扇区。", "title": "无条件恢复 GIN 元页以避免残缺页风险", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "9f27114da87bbd471358572323640279aa40a26d0e1ae5be00d0566b4b1e6817", "section_path": ["变更"], "commit_groups": [["4738cc356", "63e59c259", "91f932cf4", "9954e1f03", "e2bccdfcc", "fecfc2b91"]], "identity_text": "Restore GIN metapages unconditionally to avoid torn-page risk (Heikki Linnakangas) Although this oversight could theoretically result in a corrupted index, it is unlikely to have caused any problems in practice, since the active part of a GIN metapage is smaller than a standard 512-byte disk sector.", "commit_aliases": ["4738cc356", "63e59c259", "91f932cf4", "9954e1f03", "e2bccdfcc", "fecfc2b91"], "source_commits": ["4738cc356"], "source_entry_id": "9.3.4/changes/002", "db_id": "c39429d16018e089a092c8c72ba0d908", "patch_ids": ["e961091ede10ccd59f0019d44b0c23da"], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa", "relations": [{"rule": 2, "type": "equivalent", "target": "804a236a01382cffe4b84a219947b766", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}}, {"rule": 2, "type": "equivalent", "target": "c8123c71b2dde2669dedb8b0b8a67ff9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}}, {"rule": 2, "type": "equivalent", "target": "cc670948f13dd3b08204a893fa2e9465", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "804a236a01382cffe4b84a219947b766", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "无条件恢复 GIN 元页以避免残缺页风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}, "url": "/docs/compare/?release=9.2.8#9.2.8-111ab50ad1f2c777", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "c8123c71b2dde2669dedb8b0b8a67ff9", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "无条件恢复 GIN 元页以避免残缺页风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}, "url": "/docs/compare/?release=9.1.13#9.1.13-111ab50ad1f2c777", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "cc670948f13dd3b08204a893fa2e9465", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "无条件恢复 GIN 元页以避免残缺页风险", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "bd03226607b25a778042e0df135078961273c19f11cbc0ef66f5e65616a8bfaa"}, "url": "/docs/compare/?release=9.0.17#9.0.17-111ab50ad1f2c777", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-abd8efd5308ef26f", "cves": [], "html": "<p>避免在接收 <code>NOTIFY</code> 消息期间检查事务提交状态时的竞态条件（Marko Tiikkaja）</p>\n<p>这防止了这样一种场景：足够快的客户端可能在通知者所做的数据库更新对接收者可见之前就响应通知。</p>", "text": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件（Marko Tiikkaja） 这防止了这样一种场景：足够快的客户端可能在通知者所做的数据库更新对接收者可见之前就响应通知。", "title": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "23339fa877b792694fe0df13ed4f2de63cb0fdd73e530564bae71a6ee7ec73bf", "section_path": ["变更"], "commit_groups": [["0d11fed8e", "7aea1050e", "7bae0284e", "7bfdf10f5", "bbe9621a9"]], "identity_text": "Avoid race condition in checking transaction commit status during receipt of a NOTIFY message (Marko Tiikkaja) This prevents a scenario wherein a sufficiently fast client might respond to a notification before database updates made by the notifier have become visible to the recipient.", "commit_aliases": ["0d11fed8e", "7aea1050e", "7bae0284e", "7bfdf10f5", "bbe9621a9"], "source_commits": ["0d11fed8e"], "source_entry_id": "9.3.4/changes/003", "db_id": "8b8fd40d0cba0ab61b6e50ef1bdda84e", "patch_ids": ["63ed142de48a17492196ecdb96f8cb27"], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887", "relations": [{"rule": 2, "type": "equivalent", "target": "6539056a357766e0940558a25be2302e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}}, {"rule": 2, "type": "equivalent", "target": "6a217ad82f7b13649a9206b3d881d86f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}}, {"rule": 2, "type": "equivalent", "target": "a4b0d7088e6137e3df54c72da3f8ec46", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a4b0d7088e6137e3df54c72da3f8ec46", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}, "url": "/docs/compare/?release=9.2.8#9.2.8-abd8efd5308ef26f", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "6539056a357766e0940558a25be2302e", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}, "url": "/docs/compare/?release=9.1.13#9.1.13-abd8efd5308ef26f", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "6a217ad82f7b13649a9206b3d881d86f", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "避免在接收 NOTIFY 消息期间检查事务提交状态时的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "291da1fb776c04474e62e6b27b947d16c835a4b50c3e6c3587a66436a1607887"}, "url": "/docs/compare/?release=9.0.17#9.0.17-abd8efd5308ef26f", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-278265fb17b3b0d9", "cves": [], "html": "<p>允许在 <code>UPDATE</code> 和 <code>DELETE</code> 命令中引用物化视图（Michael Paquier）</p>\n<p>此前这类查询会因无法锁定物化视图中的行而失败。</p>", "text": "允许在 UPDATE 和 DELETE 命令中引用物化视图（Michael Paquier） 此前这类查询会因无法锁定物化视图中的行而失败。", "title": "允许在 UPDATE 和 DELETE 命令中引用物化视图", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "28390e36799bea5d56d83752fdcc6b48f85c9b83de5e400f1959abfccf71e7dc", "section_path": ["变更"], "commit_groups": [["3973034e6", "bf4052faa"]], "identity_text": "Allow materialized views to be referenced in UPDATE and DELETE commands (Michael Paquier) Previously such queries failed with a complaint about not being able to lock rows in the materialized view.", "commit_aliases": ["3973034e6", "bf4052faa"], "source_commits": ["3973034e6"], "source_entry_id": "9.3.4/changes/004", "db_id": "c7ba2b690db332f801ddae86a3553c10", "patch_ids": ["affecab5885c82d7836900a1fba01dc2"], "statement_hash": "0ecef8a05751e0493302dbf3df6ddbcd658d0ac79c5e85ccc4490a1b5f684353", "relations": [], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-e70a52d44b311aa5", "cves": [], "html": "<p>允许正则表达式操作符被查询取消请求提前终止（Tom Lane）</p>\n<p>这防止了病态正则表达式长时间不可中断地锁死服务器进程的场景。</p>", "text": "允许正则表达式操作符被查询取消请求提前终止（Tom Lane） 这防止了病态正则表达式长时间不可中断地锁死服务器进程的场景。", "title": "允许正则表达式操作符被查询取消请求提前终止", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "3cf7adfa743ae1052e034ac89877ac8bf74e7b5dee7f4c96670a384e21f6fef7", "section_path": ["变更"], "commit_groups": [["03e6423fc", "43af0e8c6", "9662143f0", "a9eb4924a", "b6e143458", "f5f21315d"]], "identity_text": "Allow regular-expression operators to be terminated early by query cancel requests (Tom Lane) This prevents scenarios wherein a pathological regular expression could lock up a server process uninterruptibly for a long time.", "commit_aliases": ["03e6423fc", "43af0e8c6", "9662143f0", "a9eb4924a", "b6e143458", "f5f21315d"], "source_commits": ["f5f21315d"], "source_entry_id": "9.3.4/changes/005", "db_id": "a2767dfab452b9165a0c6d45dccb03ea", "patch_ids": ["f54f72e2563e37ee5e116d33d289707d"], "statement_hash": "f278ac472a839616411da5fe768cd951f6c31375196d5a450e1ac77f4ae7d6e4", "relations": [{"rule": 2, "type": "equivalent", "target": "163a16f802a2a29acb9e48daba0e3808", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f278ac472a839616411da5fe768cd951f6c31375196d5a450e1ac77f4ae7d6e4"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "163a16f802a2a29acb9e48daba0e3808", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "允许正则表达式操作符被查询取消请求提前终止", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f278ac472a839616411da5fe768cd951f6c31375196d5a450e1ac77f4ae7d6e4"}, "url": "/docs/compare/?release=9.2.8#9.2.8-e70a52d44b311aa5", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}]}, {"id": "9.3.4-e50f6525a9c174c4", "cves": [], "html": "<p>移除试图允许 <code>OVERLAPS</code> 接受单元素行参数的错误代码（Joshua Yanovski）</p>\n<p>这段代码从未正确工作过，而且该情况既未被 SQL 标准规定也未被记录，因此移除它似乎比修复它更好。</p>", "text": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码（Joshua Yanovski） 这段代码从未正确工作过，而且该情况既未被 SQL 标准规定也未被记录，因此移除它似乎比修复它更好。", "title": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "d9249df782ba9a440037878b6a0fb773d36780bf2e558eee78863c5e4442709f", "section_path": ["变更"], "commit_groups": [["0aaa42241", "19d66ab05", "a222f7fda", "d7cd6a9d5", "dd378dd1e", "e6f7fe983"]], "identity_text": "Remove incorrect code that tried to allow OVERLAPS with single-element row arguments (Joshua Yanovski) This code never worked correctly, and since the case is neither specified by the SQL standard nor documented, it seemed better to remove it than fix it.", "commit_aliases": ["0aaa42241", "19d66ab05", "a222f7fda", "d7cd6a9d5", "dd378dd1e", "e6f7fe983"], "source_commits": ["0aaa42241"], "source_entry_id": "9.3.4/changes/006", "db_id": "3600c1a08ae43d562a6283a36684f323", "patch_ids": ["39ef885b70b0a4f40d6272244f34d111"], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8", "relations": [{"rule": 2, "type": "equivalent", "target": "25d0c9e174df2ed5a4ce4e6c4a64f14f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}}, {"rule": 2, "type": "equivalent", "target": "4d49f28aaa9e0fc9fdc9a3fb4b2a32e4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}}, {"rule": 2, "type": "equivalent", "target": "6cdc75f2494fb4d11adfe7936f37cedf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4d49f28aaa9e0fc9fdc9a3fb4b2a32e4", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}, "url": "/docs/compare/?release=9.2.8#9.2.8-e50f6525a9c174c4", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "25d0c9e174df2ed5a4ce4e6c4a64f14f", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}, "url": "/docs/compare/?release=9.1.13#9.1.13-e50f6525a9c174c4", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "6cdc75f2494fb4d11adfe7936f37cedf", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "移除试图允许 OVERLAPS 接受单元素行参数的错误代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c68c3e96e43a1e796f12a82249610041e62a197d6308a6df10f0862d8a90eda8"}, "url": "/docs/compare/?release=9.0.17#9.0.17-e50f6525a9c174c4", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-8c8b1188e4f2b77c", "cves": [], "html": "<p>避免在反解析规则或视图时获取超出 <code>AccessShareLock</code> 的锁（Dean Rasheed）</p>\n<p>这一疏忽导致 <span>pg_dump</span> 对规则中作为 <code>INSERT</code>/<code>UPDATE</code>/<code>DELETE</code> 命令目标的表意外获取了 <code>RowExclusiveLock</code> 锁。虽然通常无害，但它可能干扰试图在这些表上获取例如 <code>ShareLock</code> 的并发事务。</p>", "text": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁（Dean Rasheed） 这一疏忽导致 pg_dump 对规则中作为 INSERT/UPDATE/DELETE 命令目标的表意外获取了 RowExclusiveLock 锁。虽然通常无害，但它可能干扰试图在这些表上获取例如 ShareLock 的并发事务。", "title": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "6180d8870755b3a978adac0409b72ef7499c3b7b5266df8e9e7b7e04fe7d54f7", "section_path": ["变更"], "commit_groups": [["5ec41e345", "7c3187494", "bed1259e5", "f043bddfe", "f3e3f6c5b", "f557826f8"]], "identity_text": "Avoid getting more than AccessShareLock when de-parsing a rule or view (Dean Rasheed) This oversight resulted in pg_dump unexpectedly acquiring RowExclusiveLock locks on tables mentioned as the targets of INSERT/UPDATE/DELETE commands in rules. While usually harmless, that could interfere with concurrent transactions that tried to acquire, for example, ShareLock on those tables.", "commit_aliases": ["5ec41e345", "7c3187494", "bed1259e5", "f043bddfe", "f3e3f6c5b", "f557826f8"], "source_commits": ["f557826f8"], "source_entry_id": "9.3.4/changes/007", "db_id": "46f9989df29abdfe84460fff320c84b0", "patch_ids": ["5704fc83b2312612df60c4b4d6b5edb9"], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b", "relations": [{"rule": 2, "type": "equivalent", "target": "0b29a0dbed21e8daa433b6a8779c08d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}}, {"rule": 2, "type": "equivalent", "target": "c903c369976b55382bd5c1c61bba9c3d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}}, {"rule": 2, "type": "equivalent", "target": "ebec25fac85a8fac4b44284872aa96dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ebec25fac85a8fac4b44284872aa96dd", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}, "url": "/docs/compare/?release=9.2.8#9.2.8-8c8b1188e4f2b77c", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "0b29a0dbed21e8daa433b6a8779c08d4", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}, "url": "/docs/compare/?release=9.1.13#9.1.13-8c8b1188e4f2b77c", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "c903c369976b55382bd5c1c61bba9c3d", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "避免在反解析规则或视图时获取超出 AccessShareLock 的锁", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "257dc209c3c3c12f7aa3767a66dbd741d4cbc5908a28d5e2ed20ecb64e7db34b"}, "url": "/docs/compare/?release=9.0.17#9.0.17-8c8b1188e4f2b77c", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-14ff848fde9ce51b", "cves": [], "html": "<p>改进规划期间索引端点探测的性能（Tom Lane）</p>\n<p>此变更修复了当索引末尾存在大量尚未提交的行时的显著性能问题，这对于基于顺序赋值（如时间戳或序列生成的标识符）的索引是常见情况。</p>", "text": "改进规划期间索引端点探测的性能（Tom Lane） 此变更修复了当索引末尾存在大量尚未提交的行时的显著性能问题，这对于基于顺序赋值（如时间戳或序列生成的标识符）的索引是常见情况。", "title": "改进规划期间索引端点探测的性能", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "255c88ce6faac4bc498d553ad8d63cecfbc76ecef3b332e5bd5b7fb2cc80fdde", "section_path": ["变更"], "commit_groups": [["00283cae1", "1e0fb6a2c", "3e2db4c80", "4162a55c7", "fccebe421"]], "identity_text": "Improve performance of index endpoint probes during planning (Tom Lane) This change fixes a significant performance problem that occurred when there were many not-yet-committed rows at the end of the index, which is a common situation for indexes on sequentially-assigned values such as timestamps or sequence-generated identifiers.", "commit_aliases": ["00283cae1", "1e0fb6a2c", "3e2db4c80", "4162a55c7", "fccebe421"], "source_commits": ["4162a55c7"], "source_entry_id": "9.3.4/changes/008", "db_id": "e94ab65837887b85ee4b809d1fe99058", "patch_ids": ["26e4ff833e48688e702c6542a7c4f7d1"], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14", "relations": [{"rule": 2, "type": "equivalent", "target": "45120680ee0f8a9477ac87e95f44d708", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}}, {"rule": 2, "type": "equivalent", "target": "4643d7b995f70cb15747faa3494c3839", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}}, {"rule": 2, "type": "equivalent", "target": "73f5853dda77eb4965b15e4f03b233c5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}}], "version": "9.3.4", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "73f5853dda77eb4965b15e4f03b233c5", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "改进规划期间索引端点探测的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}, "url": "/docs/compare/?release=9.2.8#9.2.8-14ff848fde9ce51b", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "45120680ee0f8a9477ac87e95f44d708", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "改进规划期间索引端点探测的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}, "url": "/docs/compare/?release=9.1.13#9.1.13-14ff848fde9ce51b", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "4643d7b995f70cb15747faa3494c3839", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "改进规划期间索引端点探测的性能", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "62263dc7a060c30a2b393235a7c80010fc45eb9e34afe6ba8ad148ae6ae13c14"}, "url": "/docs/compare/?release=9.0.17#9.0.17-14ff848fde9ce51b", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-5bddcf88eb983d06", "cves": [], "html": "<p>当右侧是稳定表达式时，对 <code><em><code>value</code></em> IN (<em><code>list</code></em>)</code> 和 <code><em><code>value</code></em> <em><code>operator</code></em> ANY (<em><code>array</code></em>)</code> 表达式使用非默认的选择率估计（Tom Lane）</p>", "text": "当右侧是稳定表达式时，对 value IN (list) 和 value operator ANY (array) 表达式使用非默认的选择率估计（Tom Lane）", "title": "当右侧是稳定表达式时，对 value IN (list) 和 value operator ANY (array) 表达式使用非默认的选择率估计", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "b4f22e92e735d52a80c91c9d151062c0f1d200cf7fa940d6c9a457a53752bcc1", "section_path": ["变更"], "commit_groups": [["77585bce0", "e8655a77f"]], "identity_text": "Use non-default selectivity estimates for value IN (list) and value operator ANY (array) expressions when the righthand side is a stable expression (Tom Lane)", "commit_aliases": ["77585bce0", "e8655a77f"], "source_commits": ["e8655a77f"], "source_entry_id": "9.3.4/changes/009", "db_id": "0eed699f2449e262319050de457ac4a7", "patch_ids": ["059b70c487e400c475fd7fe6c3d040b9"], "statement_hash": "e8e587345629673935155b1b749d2e56b4a294a6a9fb6e127d71baa862606665", "relations": [], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-baa889cfe29c6fdb", "cves": [], "html": "<p>在 <code>DROP DATABASE</code> 期间删除正确的逐数据库统计文件（Tomas Vondra）</p>\n<p>此修复防止统计文件空间的永久泄漏。自升级到 <span>PostgreSQL</span> 9.3 以来执行过许多 <code>DROP DATABASE</code> 命令的用户，可能希望检查其统计目录，并删除与任何现有数据库不对应的统计文件。请注意 <code>db_0.stat</code> 不应删除。</p>", "text": "在 DROP DATABASE 期间删除正确的逐数据库统计文件（Tomas Vondra） 此修复防止统计文件空间的永久泄漏。自升级到 PostgreSQL 9.3 以来执行过许多 DROP DATABASE 命令的用户，可能希望检查其统计目录，并删除与任何现有数据库不对应的统计文件。请注意 db_0.stat 不应删除。", "title": "在 DROP DATABASE 期间删除正确的逐数据库统计文件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "df5d57e517772c7bf57b3ff6850e8fae83e9e05779ca8fd9f65c8b39136cf349", "section_path": ["变更"], "commit_groups": [["13ea43ab8", "2b4f2ab33"]], "identity_text": "Remove the correct per-database statistics file during DROP DATABASE (Tomas Vondra) This fix prevents a permanent leak of statistics file space. Users who have done many DROP DATABASE commands since upgrading to PostgreSQL 9.3 may wish to check their statistics directory and delete statistics files that do not correspond to any existing database. Please note that db_0.stat should not be removed.", "commit_aliases": ["13ea43ab8", "2b4f2ab33"], "source_commits": ["13ea43ab8"], "source_entry_id": "9.3.4/changes/010", "db_id": "0319f4036b971fa0f119d597cef8d884", "patch_ids": ["d3395629ab95af8bba4138541e763c8a"], "statement_hash": "2fcab64e7032a3cba9c22769bcac6fa6faeb8407b047f83e8215b1f867feed05", "relations": [], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-310b5d91cf62e460", "cves": [], "html": "<p>修复 <span>walsender</span> 的 ping 逻辑，避免持续负载下不恰当的断开连接（Andres Freund、Heikki Linnakangas）</p>\n<p>如果 <span>walsender</span> 一直忙于发送 WAL 数据，它就不会向客户端发送 ping 消息；但它仍然期待收到 ping 响应，因此一旦<a href=\"/docs/9.3/runtime-config-replication.html#GUC-WAL-SENDER-TIMEOUT\">wal_sender_timeout</a>超时就会断开连接。</p>", "text": "修复 walsender 的 ping 逻辑，避免持续负载下不恰当的断开连接（Andres Freund、Heikki Linnakangas） 如果 walsender 一直忙于发送 WAL 数据，它就不会向客户端发送 ping 消息；但它仍然期待收到 ping 响应，因此一旦wal_sender_timeout超时就会断开连接。", "title": "修复 walsender 的 ping 逻辑，避免持续负载下不恰当的断开连接", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "3bd5a0b887aba1215b0cfdbc4c70f59aeab1d8f09c21ad987232c9357f61f33e", "section_path": ["变更"], "commit_groups": [["94ae6ba74", "dcd1131c8"]], "identity_text": "Fix walsender ping logic to avoid inappropriate disconnects under continuous load (Andres Freund, Heikki Linnakangas) walsender failed to send ping messages to the client if it was constantly busy sending WAL data; but it expected to see ping responses despite that, and would therefore disconnect once guc-wal-sender-timeout elapsed.", "commit_aliases": ["94ae6ba74", "dcd1131c8"], "source_commits": ["dcd1131c8"], "source_entry_id": "9.3.4/changes/011", "db_id": "2b221397e583508a0fd4bd1a97d784b2", "patch_ids": ["39c9693dc4055fdbdbe887cf67e6d538"], "statement_hash": "1a3a4d998a6be9246c757bb5fcafb64f74f8d13602e27bc6276984053c7c8baa", "relations": [], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-eb3d585ca93e68d2", "cves": [], "html": "<p>修复客户端为 <span>pg_receivexlog</span> 时 <span>walsender</span> 无法干净关闭的问题（Fujii Masao）</p>", "text": "修复客户端为 pg_receivexlog 时 walsender 无法干净关闭的问题（Fujii Masao）", "title": "修复客户端为 pg_receivexlog 时 walsender 无法干净关闭的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "4e76bea3cae47f5f3b8b2ac242186ea4da20d86a39f1e6a9127b4feed85818b2", "section_path": ["变更"], "commit_groups": [["385723405", "5c6d9fc4b", "65e8dbb18", "7899aa356"]], "identity_text": "Fix walsender's failure to shut down cleanly when client is pg_receivexlog (Fujii Masao)", "commit_aliases": ["385723405", "5c6d9fc4b", "65e8dbb18", "7899aa356"], "source_commits": ["385723405"], "source_entry_id": "9.3.4/changes/012", "db_id": "6e02dc60536883209a65e9730086816b", "patch_ids": ["3f7c6c207ba11e5833076fedee4f4e91"], "statement_hash": "5e02439f753752522874dcf92a22ee592e2fa3a3ae268e75334238a16a6d767f", "relations": [{"rule": 2, "type": "equivalent", "target": "7f6dfed417c5b4daba4501c6b4ab7076", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e02439f753752522874dcf92a22ee592e2fa3a3ae268e75334238a16a6d767f"}}, {"rule": 2, "type": "equivalent", "target": "caa29f8534137f796aca59b1acc73456", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e02439f753752522874dcf92a22ee592e2fa3a3ae268e75334238a16a6d767f"}}], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "caa29f8534137f796aca59b1acc73456", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "修复客户端为 pg_receivexlog 时 walsender 无法干净关闭的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e02439f753752522874dcf92a22ee592e2fa3a3ae268e75334238a16a6d767f"}, "url": "/docs/compare/?release=9.2.8#9.2.8-eb3d585ca93e68d2", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "7f6dfed417c5b4daba4501c6b4ab7076", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "修复客户端为 pg_receivexlog 时 walsender 无法干净关闭的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5e02439f753752522874dcf92a22ee592e2fa3a3ae268e75334238a16a6d767f"}, "url": "/docs/compare/?release=9.1.13#9.1.13-eb3d585ca93e68d2", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.3.4-e603b8d5d0e9a9b2", "cves": [], "html": "<p>在执行将被归档恢复跟随的崩溃恢复时，正确检查 WAL 级别和热备参数（Heikki Linnakangas）</p>", "text": "在执行将被归档恢复跟随的崩溃恢复时，正确检查 WAL 级别和热备参数（Heikki Linnakangas）", "title": "在执行将被归档恢复跟随的崩溃恢复时，正确检查 WAL 级别和热备参数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "003535fb4e409303b869805ae05c811cf31427f98099c271b868e74f88ea851f", "section_path": ["变更"], "commit_groups": [["956685f82", "a5363a696", "e7ec05562"]], "identity_text": "Check WAL level and hot standby parameters correctly when doing crash recovery that will be followed by archive recovery (Heikki Linnakangas)", "commit_aliases": ["956685f82", "a5363a696", "e7ec05562"], "source_commits": ["a5363a696"], "source_entry_id": "9.3.4/changes/013", "db_id": "94279c40965c47875230b6185aed552b", "patch_ids": ["d674472595075c404e36bc04023ea22e"], "statement_hash": "384b18018079f670b1bd814c7101e70739f14785124a2b4560c0371c90fd487b", "relations": [{"rule": 2, "type": "equivalent", "target": "acbaf25cd37e0667a79099d236702536", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "384b18018079f670b1bd814c7101e70739f14785124a2b4560c0371c90fd487b"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "acbaf25cd37e0667a79099d236702536", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "在执行将被归档恢复跟随的崩溃恢复时，正确检查 WAL 级别和热备参数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "384b18018079f670b1bd814c7101e70739f14785124a2b4560c0371c90fd487b"}, "url": "/docs/compare/?release=9.2.8#9.2.8-e603b8d5d0e9a9b2", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}]}, {"id": "9.3.4-07fb6ecd8ac9a708", "cves": [], "html": "<p>修复崩溃后是否可以立即允许热备连接的测试（Heikki Linnakangas）</p>", "text": "修复崩溃后是否可以立即允许热备连接的测试（Heikki Linnakangas）", "title": "修复崩溃后是否可以立即允许热备连接的测试", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "93280034994bc21f29a7d4ea96d94ec9de7aae0a0ee3ba185ece434d18a1d316", "section_path": ["变更"], "commit_groups": [["2cd72ba42", "4521cc850", "7552d3d1a", "931dc26b0", "af246c37c"]], "identity_text": "Fix test to see if hot standby connections can be allowed immediately after a crash (Heikki Linnakangas)", "commit_aliases": ["2cd72ba42", "4521cc850", "7552d3d1a", "931dc26b0", "af246c37c"], "source_commits": ["2cd72ba42"], "source_entry_id": "9.3.4/changes/014", "db_id": "f09f61e60aecd521964080c902f60887", "patch_ids": ["30141e4c7bd6e596a88d5a60814a0064"], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2", "relations": [{"rule": 2, "type": "equivalent", "target": "3a0558657a39c770428dfac219673002", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}}, {"rule": 2, "type": "equivalent", "target": "eae7973698cbeb5b037dbe29082e6ddb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}}, {"rule": 2, "type": "equivalent", "target": "ed9c81f2dfba6fca1609b6ffc9622bfb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}}], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ed9c81f2dfba6fca1609b6ffc9622bfb", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "修复崩溃后是否可以立即允许热备连接的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}, "url": "/docs/compare/?release=9.2.8#9.2.8-07fb6ecd8ac9a708", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "3a0558657a39c770428dfac219673002", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "修复崩溃后是否可以立即允许热备连接的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}, "url": "/docs/compare/?release=9.1.13#9.1.13-07fb6ecd8ac9a708", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "eae7973698cbeb5b037dbe29082e6ddb", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "修复崩溃后是否可以立即允许热备连接的测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57207f2116a1e01449d03f1fddb8e78ec0cd0c0939772f2271e05acb07aceff2"}, "url": "/docs/compare/?release=9.0.17#9.0.17-07fb6ecd8ac9a708", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-e0a218ca32da6bb9", "cves": [], "html": "<p>新增只读参数<a href=\"/docs/9.3/runtime-config-preset.html#GUC-DATA-CHECKSUMS\">data_checksums</a>，用于显示是否启用了页校验和（Heikki Linnakangas）</p>\n<p>没有这个参数，很难确定校验和处理的状态。</p>", "text": "新增只读参数data_checksums，用于显示是否启用了页校验和（Heikki Linnakangas） 没有这个参数，很难确定校验和处理的状态。", "title": "新增只读参数data_checksums，用于显示是否启用了页校验和", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "a40267ff9617cdb3c2445ebcab8764fe7769de5567470ad1b5cde60a20aadd11", "section_path": ["变更"], "commit_groups": [["5a7e75849"]], "identity_text": "Add read-only guc-data-checksums parameter to display whether page checksums are enabled (Heikki Linnakangas) Without this parameter, determining the state of checksum processing was difficult.", "commit_aliases": ["5a7e75849"], "source_commits": ["5a7e75849"], "source_entry_id": "9.3.4/changes/015", "db_id": "433421b566ff68be361b8503c66600e7", "patch_ids": ["6f43ee776362f1fdeecadb628160513a"], "statement_hash": "c39406dfab119ea6685ad32c1cb821b7bfdeed95909a12cf37e9c6788b52d5d7", "relations": [], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-b543a6bf79f6c2a5", "cves": [], "html": "<p>在报告非 <code>ERROR</code> 消息期间防止中断（Tom Lane）</p>\n<p>这可以防止因递归进入 <code>syslog()</code> 而导致的罕见服务器进程冻结，或许还能防止其他相关问题。</p>", "text": "在报告非 ERROR 消息期间防止中断（Tom Lane） 这可以防止因递归进入 syslog() 而导致的罕见服务器进程冻结，或许还能防止其他相关问题。", "title": "在报告非 ERROR 消息期间防止中断", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "126e77105a98e2c29ca23430194500b9d4285fc2edd80b0a1d4493614fea266f", "section_path": ["变更"], "commit_groups": [["172c53e92", "41bd2cf55", "6c461cb92", "7a289bb6d", "dad55e1e9", "f16ca9755"]], "identity_text": "Prevent interrupts while reporting non-ERROR messages (Tom Lane) This guards against rare server-process freezeups due to recursive entry to syslog(), and perhaps other related problems.", "commit_aliases": ["172c53e92", "41bd2cf55", "6c461cb92", "7a289bb6d", "dad55e1e9", "f16ca9755"], "source_commits": ["41bd2cf55"], "source_entry_id": "9.3.4/changes/016", "db_id": "e37125eb485a3bc708e39cff346bf9f9", "patch_ids": ["3ed73519d80dd23f8679635a0b38f1ba"], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea", "relations": [{"rule": 2, "type": "equivalent", "target": "b2a532f40d20ab015a472b7f4240f466", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}}, {"rule": 2, "type": "equivalent", "target": "b6ae0825bfe86c9a99a561e31b3a258d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}}, {"rule": 2, "type": "equivalent", "target": "d7a43b61f07c1ead1a5f95d5b153e16d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2a532f40d20ab015a472b7f4240f466", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "在报告非 ERROR 消息期间防止中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}, "url": "/docs/compare/?release=9.2.8#9.2.8-b543a6bf79f6c2a5", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "b6ae0825bfe86c9a99a561e31b3a258d", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "在报告非 ERROR 消息期间防止中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}, "url": "/docs/compare/?release=9.1.13#9.1.13-b543a6bf79f6c2a5", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "d7a43b61f07c1ead1a5f95d5b153e16d", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "在报告非 ERROR 消息期间防止中断", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b557e88fe9177092b5f2c812175e9e6a647e7551bb44eb4bea7ac96664ceadea"}, "url": "/docs/compare/?release=9.0.17#9.0.17-b543a6bf79f6c2a5", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-c155e828e981c7e2", "cves": [], "html": "<p>修复 PL/Perl 返回组合结果（包括多 OUT 参数情况）时的内存泄漏（Alex Hunsaker）</p>", "text": "修复 PL/Perl 返回组合结果（包括多 OUT 参数情况）时的内存泄漏（Alex Hunsaker）", "title": "修复 PL/Perl 返回组合结果（包括多 OUT 参数情况）时的内存泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "de180cd387ff74157482f5bb81740c482851398e3293e9c1ea0bd09865780d5f", "section_path": ["变更"], "commit_groups": [["60829079d", "ba5946e86", "bd1154ede", "f84997c7e"]], "identity_text": "Fix memory leak in PL/Perl when returning a composite result, including multiple-OUT-parameter cases (Alex Hunsaker)", "commit_aliases": ["60829079d", "ba5946e86", "bd1154ede", "f84997c7e"], "source_commits": ["60829079d"], "source_entry_id": "9.3.4/changes/017", "db_id": "fbd1b2777211f1ea0f7bfbe7db9eaf6d", "patch_ids": ["326b7e8ef78b886bf3d76c9ead6a9a4e"], "statement_hash": "c532546c3f294465dd5b308b123ae1d0a21529f1db8d412441c99430940506e6", "relations": [{"rule": 2, "type": "equivalent", "target": "6c3f896383eb96970d51b669ab5fa600", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c532546c3f294465dd5b308b123ae1d0a21529f1db8d412441c99430940506e6"}}, {"rule": 2, "type": "equivalent", "target": "9b0e1f3d5014ba4d74dcd812cedaf1de", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c532546c3f294465dd5b308b123ae1d0a21529f1db8d412441c99430940506e6"}}], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9b0e1f3d5014ba4d74dcd812cedaf1de", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "修复 PL/Perl 返回组合结果（包括多 OUT 参数情况）时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c532546c3f294465dd5b308b123ae1d0a21529f1db8d412441c99430940506e6"}, "url": "/docs/compare/?release=9.2.8#9.2.8-c155e828e981c7e2", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "6c3f896383eb96970d51b669ab5fa600", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "修复 PL/Perl 返回组合结果（包括多 OUT 参数情况）时的内存泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c532546c3f294465dd5b308b123ae1d0a21529f1db8d412441c99430940506e6"}, "url": "/docs/compare/?release=9.1.13#9.1.13-c155e828e981c7e2", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}]}, {"id": "9.3.4-39190d7a9e79e25d", "cves": [], "html": "<p>修复 <code>\\copy</code> 从带外数据读取期间 <span>psql</span> 脚本行号跟踪的问题（Kumar Rajeev Rastogi、Amit Khandekar）</p>\n<p>即使数据并非来自脚本文件，<code>\\copy ... from</code> 也会为每个数据行递增脚本文件行号。这一失误导致同一脚本文件中稍后发生的任何错误报告了错误的行号。</p>", "text": "修复 \\copy 从带外数据读取期间 psql 脚本行号跟踪的问题（Kumar Rajeev Rastogi、Amit Khandekar） 即使数据并非来自脚本文件，\\copy ... from 也会为每个数据行递增脚本文件行号。这一失误导致同一脚本文件中稍后发生的任何错误报告了错误的行号。", "title": "修复 \\copy 从带外数据读取期间 psql 脚本行号跟踪的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "d6670f3489ebbae0582a5102a1d35f5e636ae1c30c8d9456097fff22dc8cb408", "section_path": ["变更"], "commit_groups": [["b315b767f", "e85a5ffba", "f64f4c370"]], "identity_text": "Fix tracking of psql script line numbers during \\copy from out-of-line data (Kumar Rajeev Rastogi, Amit Khandekar) \\copy ... from incremented the script file line number for each data line, even if the data was not coming from the script file. This mistake resulted in wrong line numbers being reported for any errors occurring later in the same script file.", "commit_aliases": ["b315b767f", "e85a5ffba", "f64f4c370"], "source_commits": ["f64f4c370"], "source_entry_id": "9.3.4/changes/018", "db_id": "51a1f8bd6cb248ae766504dc9ae819d2", "patch_ids": ["3def7fdabc0cbae8e7d5bc5ba89ab6de"], "statement_hash": "65c5d7ec657da2cdd20d9951ce082266df3324a745eb8bb63d362a2f793d0ad4", "relations": [{"rule": 2, "type": "equivalent", "target": "dd434bc6a956bb5e5235a626d1f9861e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "65c5d7ec657da2cdd20d9951ce082266df3324a745eb8bb63d362a2f793d0ad4"}}], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "dd434bc6a956bb5e5235a626d1f9861e", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "修复 \\copy 从带外数据读取期间 psql 脚本行号跟踪的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "65c5d7ec657da2cdd20d9951ce082266df3324a745eb8bb63d362a2f793d0ad4"}, "url": "/docs/compare/?release=9.2.8#9.2.8-39190d7a9e79e25d", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}]}, {"id": "9.3.4-cc73b403748e2552", "cves": [], "html": "<p>修复 <span>contrib/postgres_fdw</span> 以正确处理多个连接条件（Tom Lane）</p>\n<p>这一疏忽可能导致把 <code>WHERE</code> 子句发送到远程服务器执行，即使并不确定这些子句在远程服务器上具有相同的语义（例如使用非内建操作符的子句）。查询可能照样成功，但也可能因远程服务器报错而失败，更糟的是可能静默地给出错误答案。</p>", "text": "修复 contrib/postgres_fdw 以正确处理多个连接条件（Tom Lane） 这一疏忽可能导致把 WHERE 子句发送到远程服务器执行，即使并不确定这些子句在远程服务器上具有相同的语义（例如使用非内建操作符的子句）。查询可能照样成功，但也可能因远程服务器报错而失败，更糟的是可能静默地给出错误答案。", "title": "修复 contrib/postgres_fdw 以正确处理多个连接条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "72829b408e8ebc5f8d4a875c997db301b2b834f9c11c1e4533650b3a073b5de5", "section_path": ["变更"], "commit_groups": [["73f0483fd", "83204e100"]], "identity_text": "Fix contrib/postgres_fdw to handle multiple join conditions properly (Tom Lane) This oversight could result in sending WHERE clauses to the remote server for execution even though the clauses are not known to have the same semantics on the remote server (for example, clauses that use non-built-in operators). The query might succeed anyway, but it could also fail with errors from the remote server, or worse give silently wrong answers.", "commit_aliases": ["73f0483fd", "83204e100"], "source_commits": ["73f0483fd"], "source_entry_id": "9.3.4/changes/019", "db_id": "17860d182f11710efb326bd4903f033d", "patch_ids": ["503394a141d33470fc02b1e6205bb886"], "statement_hash": "5e43e0e85ba2d888b43047dcdb6809b4a8a0bc114b5098f0ebc415a616fdd9f9", "relations": [], "version": "9.3.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.3.4-e90f7b7a4f05d0c1", "cves": [], "html": "<p>防止在较新的 Windows 版本上间歇性出现 <span>“<span>could not reserve shared memory region</span>”</span> 失败（MauMau）</p>", "text": "防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败（MauMau）", "title": "防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "dba49d71c8b170d85c6435433656855080b430113780e807168b05e59a1dc003", "section_path": ["变更"], "commit_groups": [["062deb313", "665515539", "7f3e17b48", "b88ecb002", "fae12f331"]], "identity_text": "Prevent intermittent could not reserve shared memory region failures on recent Windows versions (MauMau)", "commit_aliases": ["062deb313", "665515539", "7f3e17b48", "b88ecb002", "fae12f331"], "source_commits": ["b88ecb002"], "source_entry_id": "9.3.4/changes/020", "db_id": "141d967ba42053ca6f0bf8116feddfe4", "patch_ids": ["3494e595b906aa87960f5aec073aec32"], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5", "relations": [{"rule": 2, "type": "equivalent", "target": "72a43aad162b172fd4809aa2c1249b57", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}}, {"rule": 2, "type": "equivalent", "target": "8aacafd98facca2ed80dcc99593cd278", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}}, {"rule": 2, "type": "equivalent", "target": "a059ecde9a0ecfc5aa530fc54a8ec8d8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "72a43aad162b172fd4809aa2c1249b57", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "防止在较新的 Windows 版本上间歇性出现“could not reserve shared memory region”失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}, "url": "/docs/compare/?release=9.2.8#9.2.8-f390f395a1a265d4", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "a059ecde9a0ecfc5aa530fc54a8ec8d8", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}, "url": "/docs/compare/?release=9.1.13#9.1.13-e90f7b7a4f05d0c1", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "8aacafd98facca2ed80dcc99593cd278", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "防止在较新的 Windows 版本上间歇性出现 “could not reserve shared memory region” 失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c28796e4cb404d6b16db7dee19c6859cbf98e0ec7baefa9fc0c3764edcdd28f5"}, "url": "/docs/compare/?release=9.0.17#9.0.17-e90f7b7a4f05d0c1", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}, {"id": "9.3.4-ca121ccaa20b87e4", "cves": [], "html": "<p>把时区数据文件更新为 <span>tzdata</span> 版本 2014a，以反映斐济和土耳其的夏令时法规变更，以及以色列和乌克兰的历史变更。</p>", "text": "把时区数据文件更新为 tzdata 版本 2014a，以反映斐济和土耳其的夏令时法规变更，以及以色列和乌克兰的历史变更。", "title": "把时区数据文件更新为 tzdata 版本 2014a，以反映斐济和土耳其的夏令时法规变更，以及以色列和乌克兰的历史变更。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.3.4/#id-1.11.6.26.5", "source_hash": "e2885b45314d71f5a0ff22d4770cf67718168ae7ad6d5950ace8674eb6a128a1", "section_path": ["变更"], "commit_groups": [["0033f5324", "2df1bf21c", "6e6c2c2e1", "aba7f5677", "b5de16997", "f2063b379"]], "identity_text": "Update time zone data files to tzdata release 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine.", "commit_aliases": ["0033f5324", "2df1bf21c", "6e6c2c2e1", "aba7f5677", "b5de16997", "f2063b379"], "source_commits": ["b5de16997"], "source_entry_id": "9.3.4/changes/021", "db_id": "0930bbc266fa155f5e6dcc28ee828459", "patch_ids": ["8e12bac2acf3e6de424e9a8e488940fc"], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf", "relations": [{"rule": 2, "type": "equivalent", "target": "0fea802a76e89c51a7cfd193ad63865b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}}, {"rule": 2, "type": "equivalent", "target": "41f0ac1de3b5c64665deb1eddcf7c171", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}}, {"rule": 2, "type": "equivalent", "target": "7f51868f632146553caa1a2bea66828f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}}], "version": "9.3.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "41f0ac1de3b5c64665deb1eddcf7c171", "kind": "equivalent", "version": "9.2.8", "label": "9.2.8", "title": "把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}, "url": "/docs/compare/?release=9.2.8#9.2.8-dfc1052b408d215b", "source_url": "/docs/release/9.2.8/#id-1.11.6.21.5"}, {"db_id": "7f51868f632146553caa1a2bea66828f", "kind": "equivalent", "version": "9.1.13", "label": "9.1.13", "title": "把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}, "url": "/docs/compare/?release=9.1.13#9.1.13-dfc1052b408d215b", "source_url": "/docs/release/9.1.13/#id-1.11.6.16.5"}, {"db_id": "0fea802a76e89c51a7cfd193ad63865b", "kind": "equivalent", "version": "9.0.17", "label": "9.0.17", "title": "把时区数据文件更新为 tzdata 版本 2014a for DST law changes in Fiji and Turkey, plus historical changes in Israel and Ukraine。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59814e99a9e40d37d40b8d22e7e795a8b28d9ae574caf3b3f0194a2c02fa12bf"}, "url": "/docs/compare/?release=9.0.17#9.0.17-dfc1052b408d215b", "source_url": "/docs/release/9.0.17/#id-1.11.6.11.5"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 21}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 8}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 1}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 12}], "total": 21, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 21, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}