{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2015-06-04", "build": "9.4.3", "major": "9.4", "minor": 3, "manual": "9.4", "status": "stable", "doc_git": "", "version": "9.4.3", "eol_date": "2020-02-13", "date_text": "2015-06-04", "supported": false, "manual_url": "/docs/9.4/release-9-4-3.html", "source_url": "/docs/release/9.4.3/", "entry_count": 4, "placeholder": false, "content_hash": "c7c2259a41244023f99990a6b90d325d6f6f3eaa297c124bfcb433cb9061b1fe", "manual_build": "9.4.26", "source_as_of": "", "changes_count": 4, "doc_loaded_at": "2026-09-26T02:56:45.438944", "migration_html": "<p>对于运行 9.4.X 的用户，不需要转储/恢复。</p>\n<p>但是，如果你是从早于 9.4.2 的版本升级，请参见<a href=\"/docs/9.4/release-9-4-2.html\" title=\"E.25. 版本 9.4.2\">第 E.25 节</a>。</p>", "compatibility_count": 0, "label": "9.4.3", "status_label": "历史版本", "eol": "2020-02-13", "age_days": 4136, "support_days": -2421}, "groups": [{"date": "2015-06-04", "build": "9.4.3", "major": "9.4", "minor": 3, "manual": "9.4", "status": "stable", "doc_git": "", "version": "9.4.3", "eol_date": "2020-02-13", "date_text": "2015-06-04", "supported": false, "manual_url": "/docs/9.4/release-9-4-3.html", "source_url": "/docs/release/9.4.3/", "entry_count": 4, "placeholder": false, "content_hash": "c7c2259a41244023f99990a6b90d325d6f6f3eaa297c124bfcb433cb9061b1fe", "manual_build": "9.4.26", "source_as_of": "", "changes_count": 4, "doc_loaded_at": "2026-09-26T02:56:45.438944", "migration_html": "<p>对于运行 9.4.X 的用户，不需要转储/恢复。</p>\n<p>但是，如果你是从早于 9.4.2 的版本升级，请参见<a href=\"/docs/9.4/release-9-4-2.html\" title=\"E.25. 版本 9.4.2\">第 E.25 节</a>。</p>", "compatibility_count": 0, "label": "9.4.3", "status_label": "历史版本", "eol": "2020-02-13", "age_days": 4136, "support_days": -2421, "entries": [{"id": "9.4.3-2f7a640e37ebd9b9", "cves": [], "html": "<p>避免崩溃重启期间对数据目录执行<code>fsync</code>时失败（Abhijit Menon-Sen、Tom Lane）</p>\n<p>在前几个小版本中，我们加入了一个补丁，在崩溃后对数据目录中的所有内容执行<code>fsync</code>。遗憾的是，它对任何错误情况的响应都是失败，从而阻止服务器启动，即使问题相当无害。例如，数据目录中一个不可写的文件在某些平台上会阻止重启；但把 SSL 证书文件设为服务器不可写是很常见的做法。我们修改了这一行为：权限失败被完全忽略，其他类型的失败会被记录但不会阻止继续。</p>\n<p>在<code>initdb --sync-only</code>中也应用同样的规则。这种情况不那么关键，但行为应当类似。</p>", "text": "避免崩溃重启期间对数据目录执行fsync时失败（Abhijit Menon-Sen、Tom Lane） 在前几个小版本中，我们加入了一个补丁，在崩溃后对数据目录中的所有内容执行fsync。遗憾的是，它对任何错误情况的响应都是失败，从而阻止服务器启动，即使问题相当无害。例如，数据目录中一个不可写的文件在某些平台上会阻止重启；但把 SSL 证书文件设为服务器不可写是很常见的做法。我们修改了这一行为：权限失败被完全忽略，其他类型的失败会被记录但不会阻止继续。 在initdb --sync-only中也应用同样的规则。这种情况不那么关键，但行为应当类似。", "title": "避免崩溃重启期间对数据目录执行fsync时失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.3/#id-1.11.6.28.5", "source_hash": "40baded796e410618651f39b47ecd03cc3b713653c2485208be8c781ce7b3452", "section_path": ["变更"], "commit_groups": [["1943c000b", "99f50dd72", "c2b68b1f7"], ["35dd1b51f", "57e1138bc", "70a4519b8", "77642a819", "9e79ca326", "bf2f20c08"], ["52fc94844", "c07d8c963", "dbde225b1"], ["81f3d3b7c", "a3ae3db43", "aa8377e64", "cb867853a", "d8179b001", "e4a04e5a4"]], "identity_text": "Avoid failures while fsync'ing data directory during crash restart (Abhijit Menon-Sen, Tom Lane) In the previous minor releases we added a patch to fsync everything in the data directory after a crash. Unfortunately its response to any error condition was to fail, thereby preventing the server from starting up, even when the problem was quite harmless. An example is that an unwritable file in the data directory would prevent restart on some platforms; but it is common to make SSL certificate files unwritable by the server. Revise this behavior so that permissions failures are ignored altogether, and other types of failures are logged but do not prevent continuing. Also apply the same rules in initdb --sync-only. This case is less critical but it should act similarly.", "commit_aliases": ["1943c000b", "35dd1b51f", "52fc94844", "57e1138bc", "70a4519b8", "77642a819", "81f3d3b7c", "99f50dd72", "9e79ca326", "a3ae3db43", "aa8377e64", "bf2f20c08", "c07d8c963", "c2b68b1f7", "cb867853a", "d8179b001", "dbde225b1", "e4a04e5a4"], "source_commits": ["70a4519b8", "99f50dd72", "a3ae3db43", "dbde225b1"], "source_entry_id": "9.4.3/changes/001", "db_id": "f15990ec6bd551a438c69bc2f906adcb", "patch_ids": ["0ed1b7ef109be569b6ae625c93e10ce0", "107791f286d607be3bc8eeeefe1b4399", "33dbbf2c319fafb81fcf5b829c3ceb32", "524605623e2fdfd4a19bc6571e4b8622"], "statement_hash": "1a8337d64ec0a7e8a02879cb4b52f5b762174c11767221f9393b82dba22b0932", "relations": [{"rule": 2, "type": "equivalent", "target": "62a11d7fe086e63393f6dda7c39fc3bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1a8337d64ec0a7e8a02879cb4b52f5b762174c11767221f9393b82dba22b0932"}}], "version": "9.4.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "62a11d7fe086e63393f6dda7c39fc3bc", "kind": "equivalent", "version": "9.3.8", "label": "9.3.8", "title": "避免崩溃重启期间对数据目录执行fsync时失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1a8337d64ec0a7e8a02879cb4b52f5b762174c11767221f9393b82dba22b0932"}, "url": "/docs/compare/?release=9.3.8#9.3.8-2f7a640e37ebd9b9", "source_url": "/docs/release/9.3.8/#id-1.11.6.22.5"}]}, {"id": "9.4.3-52a190ea0381bb5c", "cves": [], "html": "<p>修复 <code>pg_get_functiondef()</code>，使其在设置了函数的 <code>LEAKPROOF</code> 属性时加以显示（Jeevan Chalke）</p>", "text": "修复 pg_get_functiondef()，使其在设置了函数的 LEAKPROOF 属性时加以显示（Jeevan Chalke）", "title": "修复 pg_get_functiondef()，使其在设置了函数的 LEAKPROOF 属性时加以显示", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.3/#id-1.11.6.28.5", "source_hash": "8117e90d3e7b25b803a2c1767f5667b4aaaeb28a77a0ecad2ce727f3e290aab8", "section_path": ["变更"], "commit_groups": [["27bae8d96", "d4a9f5519", "f3c67aad4", "f46edf479"]], "identity_text": "Fix pg_get_functiondef() to show functions' LEAKPROOF property, if set (Jeevan Chalke)", "commit_aliases": ["27bae8d96", "d4a9f5519", "f3c67aad4", "f46edf479"], "source_commits": ["d4a9f5519"], "source_entry_id": "9.4.3/changes/002", "db_id": "31c0f1e019f4b9db01b461fb9b665407", "patch_ids": ["6d3aebec716f4e44954238204b33c460"], "statement_hash": "6779d1236077b9c72d597d4631c017dca37b19d22f3e032a888ed81a3bd53a43", "relations": [{"rule": 2, "type": "equivalent", "target": "32d3565e5928977c53bd58dcd2b7fe44", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6779d1236077b9c72d597d4631c017dca37b19d22f3e032a888ed81a3bd53a43"}}, {"rule": 2, "type": "equivalent", "target": "db451542379bdb561ad23857143b49b1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6779d1236077b9c72d597d4631c017dca37b19d22f3e032a888ed81a3bd53a43"}}], "version": "9.4.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "db451542379bdb561ad23857143b49b1", "kind": "equivalent", "version": "9.3.8", "label": "9.3.8", "title": "修复pg_get_functiondef()以在设置了LEAKPROOF属性时显示该属性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6779d1236077b9c72d597d4631c017dca37b19d22f3e032a888ed81a3bd53a43"}, "url": "/docs/compare/?release=9.3.8#9.3.8-09e3e9d395afa412", "source_url": "/docs/release/9.3.8/#id-1.11.6.22.5"}, {"db_id": "32d3565e5928977c53bd58dcd2b7fe44", "kind": "equivalent", "version": "9.2.12", "label": "9.2.12", "title": "修复pg_get_functiondef()以在设置了LEAKPROOF属性时显示该属性", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6779d1236077b9c72d597d4631c017dca37b19d22f3e032a888ed81a3bd53a43"}, "url": "/docs/compare/?release=9.2.12#9.2.12-09e3e9d395afa412", "source_url": "/docs/release/9.2.12/#id-1.11.6.17.5"}]}, {"id": "9.4.3-5c67550832e7a416", "cves": [], "html": "<p>修复<code>pushJsonbValue()</code>以解包<code>jbvBinary</code>对象（Andrew Dunstan）</p>\n<p>此变更不影响 9.4 核心代码中的任何行为，但为可能的第三方调用者避免了一个极端情况。</p>", "text": "修复pushJsonbValue()以解包jbvBinary对象（Andrew Dunstan） 此变更不影响 9.4 核心代码中的任何行为，但为可能的第三方调用者避免了一个极端情况。", "title": "修复pushJsonbValue()以解包jbvBinary对象", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.4.3/#id-1.11.6.28.5", "source_hash": "5bf4e17454f6aa330399c55fb63a0c315a4ea1bdf498032d2c7871db3cc5020a", "section_path": ["变更"], "commit_groups": [["5302760a5", "9b74f32cd"]], "identity_text": "Fix pushJsonbValue() to unpack jbvBinary objects (Andrew Dunstan) This change does not affect any behavior in the core code as of 9.4, but it avoids a corner case for possible third-party callers.", "commit_aliases": ["5302760a5", "9b74f32cd"], "source_commits": ["9b74f32cd"], "source_entry_id": "9.4.3/changes/003", "db_id": "af74768bf2178a07787feee442a6741b", "patch_ids": ["70905c96d43edeca24333a6b5533ac4d"], "statement_hash": "fbd36f21a88c127b027333ce9ea9e21e3bbc7a069c7412d83acbcefbeef0326f", "relations": [], "version": "9.4.3", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.3-84bd20edf1411571", "cves": [], "html": "<p>移除<span>configure</span>中对在<span>OpenBSD</span>上链接线程版<span>libpython</span>的禁止性检查（Tom Lane）</p>\n<p>这一限制原本要防止的失败在当前的<span>OpenBSD</span>版本上似乎已不再是问题。</p>", "text": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查（Tom Lane） 这一限制原本要防止的失败在当前的OpenBSD版本上似乎已不再是问题。", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.4.3/#id-1.11.6.28.5", "source_hash": "4829477f3642c35fd183079bd3b0d9180b6b0d01ef3c6c7bda9fdd1569d09d84", "section_path": ["变更"], "commit_groups": [["1b1457120", "5585cc707", "79f0f7cab", "86832eb89", "9e980e7d0", "b06649b7f"]], "identity_text": "Remove configure's check prohibiting linking to a threaded libpython on OpenBSD (Tom Lane) The failure this restriction was meant to prevent seems to not be a problem anymore on current OpenBSD versions.", "commit_aliases": ["1b1457120", "5585cc707", "79f0f7cab", "86832eb89", "9e980e7d0", "b06649b7f"], "source_commits": ["79f0f7cab"], "source_entry_id": "9.4.3/changes/004", "db_id": "1e93d1263f6654a9f810f95db30e9629", "patch_ids": ["163f6e7729d69003867f8fa77f1b2bde"], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f", "relations": [{"rule": 2, "type": "equivalent", "target": "10f39cf4b186eb685734a9facee64db2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}}, {"rule": 2, "type": "equivalent", "target": "8ce60f049896e6069362812ad897b3f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}}, {"rule": 2, "type": "equivalent", "target": "90ce555f635b5854723e082d7618f9e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}}, {"rule": 2, "type": "equivalent", "target": "eccce48eb13e0f65df91e2c5e930e4a7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}}], "version": "9.4.3", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "10f39cf4b186eb685734a9facee64db2", "kind": "equivalent", "version": "9.3.8", "label": "9.3.8", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}, "url": "/docs/compare/?release=9.3.8#9.3.8-84bd20edf1411571", "source_url": "/docs/release/9.3.8/#id-1.11.6.22.5"}, {"db_id": "eccce48eb13e0f65df91e2c5e930e4a7", "kind": "equivalent", "version": "9.2.12", "label": "9.2.12", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}, "url": "/docs/compare/?release=9.2.12#9.2.12-84bd20edf1411571", "source_url": "/docs/release/9.2.12/#id-1.11.6.17.5"}, {"db_id": "8ce60f049896e6069362812ad897b3f3", "kind": "equivalent", "version": "9.1.17", "label": "9.1.17", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}, "url": "/docs/compare/?release=9.1.17#9.1.17-84bd20edf1411571", "source_url": "/docs/release/9.1.17/#id-1.11.6.12.5"}, {"db_id": "90ce555f635b5854723e082d7618f9e5", "kind": "equivalent", "version": "9.0.21", "label": "9.0.21", "title": "移除configure中对在OpenBSD上链接线程版libpython的禁止性检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68071bf088d7e12cc2dce093a3d98233044c107e8eeccf6ca8c3386b62eed42f"}, "url": "/docs/compare/?release=9.0.21#9.0.21-84bd20edf1411571", "source_url": "/docs/release/9.0.21/#id-1.11.6.7.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 4}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 3}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 1}], "total": 4, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 4, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}