{"format": 1, "version": {"branch": "14", "url": "/wiki/versions/14/", "state": "supported", "state_label": "\u652f\u6301\u4e2d", "tag": "", "build": "14.24", "first_release": "2021-09-30", "end_of_life": "2026-11-12", "latest_release_date": "2026-08-13", "manual_url": "/docs/14/index.html", "manual_slug": "14", "manual_pages": 1084, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 25, "entry_count": 1206, "initial": {"version": "14.0", "build": "14.0", "status": "stable", "date": "2021-09-30", "source_as_of": "", "url": "/docs/compare/?release=14.0", "manual_url": "/docs/14/release-14.html", "source_url": "/docs/release/14.0/", "entry_count": 220, "categories": {"compatibility": 27, "feature": 178, "performance": 13, "bugfix": 2}, "compatibility_count": 27, "cves": [], "cve_count": 0}, "latest": {"version": "14.24", "build": "14.24", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=14.24", "manual_url": "/docs/14/release-14-24.html", "source_url": "/docs/release/14.24/", "entry_count": 83, "categories": {"security": 29, "bugfix": 31, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, "comparison_url": "/docs/compare/?from=14.0&to=14.24"}, "releases": [{"version": "14.24", "build": "14.24", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=14.24", "manual_url": "/docs/14/release-14-24.html", "source_url": "/docs/release/14.24/", "entry_count": 83, "categories": {"security": 29, "bugfix": 31, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, {"version": "14.23", "build": "14.23", "status": "stable", "date": "2026-05-14", "source_as_of": "", "url": "/docs/compare/?release=14.23", "manual_url": "/docs/14/release-14-23.html", "source_url": "/docs/release/14.23/", "entry_count": 38, "categories": {"security": 11, "improvement": 12, "bugfix": 15}, "compatibility_count": 0, "cves": ["CVE-2026-6472", "CVE-2026-6473", "CVE-2026-6474", "CVE-2026-6475", "CVE-2026-6477", "CVE-2026-6478", "CVE-2026-6479", "CVE-2026-6637"], "cve_count": 8}, {"version": "14.22", "build": "14.22", "status": "stable", "date": "2026-02-26", "source_as_of": "", "url": "/docs/compare/?release=14.22", "manual_url": "/docs/14/release-14-22.html", "source_url": "/docs/release/14.22/", "entry_count": 5, "categories": {"bugfix": 4, "security": 1}, "compatibility_count": 0, "cves": ["CVE-2026-2006"], "cve_count": 1}, {"version": "14.21", "build": "14.21", "status": "stable", "date": "2026-02-12", "source_as_of": "", "url": "/docs/compare/?release=14.21", "manual_url": "/docs/14/release-14-21.html", "source_url": "/docs/release/14.21/", "entry_count": 37, "categories": {"security": 4, "improvement": 17, "bugfix": 16}, "compatibility_count": 0, "cves": ["CVE-2026-2003", "CVE-2026-2004", "CVE-2026-2005", "CVE-2026-2006"], "cve_count": 4}, {"version": "14.20", "build": "14.20", "status": "stable", "date": "2025-11-13", "source_as_of": "", "url": "/docs/compare/?release=14.20", "manual_url": "/docs/14/release-14-20.html", "source_url": "/docs/release/14.20/", "entry_count": 46, "categories": {"security": 2, "bugfix": 23, "improvement": 21}, "compatibility_count": 0, "cves": ["CVE-2025-12817", "CVE-2025-12818"], "cve_count": 2}, {"version": "14.19", "build": "14.19", "status": "stable", "date": "2025-08-14", "source_as_of": "", "url": "/docs/compare/?release=14.19", "manual_url": "/docs/14/release-14-19.html", "source_url": "/docs/release/14.19/", "entry_count": 47, "categories": {"security": 3, "bugfix": 12, "improvement": 32}, "compatibility_count": 0, "cves": ["CVE-2012-0868", "CVE-2017-7484", "CVE-2025-8713", "CVE-2025-8714", "CVE-2025-8715"], "cve_count": 5}, {"version": "14.18", "build": "14.18", "status": "stable", "date": "2025-05-08", "source_as_of": "", "url": "/docs/compare/?release=14.18", "manual_url": "/docs/14/release-14-18.html", "source_url": "/docs/release/14.18/", "entry_count": 35, "categories": {"security": 1, "improvement": 18, "bugfix": 16}, "compatibility_count": 0, "cves": ["CVE-2025-4207"], "cve_count": 1}, {"version": "14.17", "build": "14.17", "status": "stable", "date": "2025-02-20", "source_as_of": "", "url": "/docs/compare/?release=14.17", "manual_url": "/docs/14/release-14-17.html", "source_url": "/docs/release/14.17/", "entry_count": 2, "categories": {"security": 1, "bugfix": 1}, "compatibility_count": 0, "cves": ["CVE-2025-1094"], "cve_count": 1}, {"version": "14.16", "build": "14.16", "status": "stable", "date": "2025-02-13", "source_as_of": "", "url": "/docs/compare/?release=14.16", "manual_url": "/docs/14/release-14-16.html", "source_url": "/docs/release/14.16/", "entry_count": 46, "categories": {"security": 1, "improvement": 18, "bugfix": 26, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2025-1094"], "cve_count": 1}, {"version": "14.15", "build": "14.15", "status": "stable", "date": "2024-11-21", "source_as_of": "", "url": "/docs/compare/?release=14.15", "manual_url": "/docs/14/release-14-15.html", "source_url": "/docs/release/14.15/", "entry_count": 7, "categories": {"bugfix": 3, "security": 1, "improvement": 3}, "compatibility_count": 0, "cves": ["CVE-2024-10978"], "cve_count": 1}, {"version": "14.14", "build": "14.14", "status": "stable", "date": "2024-11-14", "source_as_of": "", "url": "/docs/compare/?release=14.14", "manual_url": "/docs/14/release-14-14.html", "source_url": "/docs/release/14.14/", "entry_count": 44, "categories": {"security": 4, "bugfix": 17, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2024-10976", "CVE-2024-10977", "CVE-2024-10978", "CVE-2024-10979"], "cve_count": 4}, {"version": "14.13", "build": "14.13", "status": "stable", "date": "2024-08-08", "source_as_of": "", "url": "/docs/compare/?release=14.13", "manual_url": "/docs/14/release-14-13.html", "source_url": "/docs/release/14.13/", "entry_count": 42, "categories": {"security": 2, "improvement": 19, "bugfix": 21}, "compatibility_count": 0, "cves": ["CVE-2023-5869", "CVE-2024-7348"], "cve_count": 2}, {"version": "14.12", "build": "14.12", "status": "stable", "date": "2024-05-09", "source_as_of": "", "url": "/docs/compare/?release=14.12", "manual_url": "/docs/14/release-14-12.html", "source_url": "/docs/release/14.12/", "entry_count": 42, "categories": {"security": 1, "bugfix": 18, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2024-4317"], "cve_count": 1}, {"version": "14.11", "build": "14.11", "status": "stable", "date": "2024-02-08", "source_as_of": "", "url": "/docs/compare/?release=14.11", "manual_url": "/docs/14/release-14-11.html", "source_url": "/docs/release/14.11/", "entry_count": 49, "categories": {"security": 1, "bugfix": 18, "improvement": 30}, "compatibility_count": 0, "cves": ["CVE-2024-0985"], "cve_count": 1}, {"version": "14.10", "build": "14.10", "status": "stable", "date": "2023-11-09", "source_as_of": "", "url": "/docs/compare/?release=14.10", "manual_url": "/docs/14/release-14-10.html", "source_url": "/docs/release/14.10/", "entry_count": 56, "categories": {"security": 3, "bugfix": 21, "improvement": 32}, "compatibility_count": 0, "cves": ["CVE-2023-5868", "CVE-2023-5869", "CVE-2023-5870"], "cve_count": 3}, {"version": "14.9", "build": "14.9", "status": "stable", "date": "2023-08-10", "source_as_of": "", "url": "/docs/compare/?release=14.9", "manual_url": "/docs/14/release-14-9.html", "source_url": "/docs/release/14.9/", "entry_count": 39, "categories": {"security": 1, "bugfix": 20, "improvement": 18}, "compatibility_count": 0, "cves": ["CVE-2023-39417"], "cve_count": 1}, {"version": "14.8", "build": "14.8", "status": "stable", "date": "2023-05-11", "source_as_of": "", "url": "/docs/compare/?release=14.8", "manual_url": "/docs/14/release-14-8.html", "source_url": "/docs/release/14.8/", "entry_count": 67, "categories": {"security": 2, "bugfix": 31, "improvement": 34}, "compatibility_count": 0, "cves": ["CVE-2023-2454", "CVE-2023-2455"], "cve_count": 2}, {"version": "14.7", "build": "14.7", "status": "stable", "date": "2023-02-09", "source_as_of": "", "url": "/docs/compare/?release=14.7", "manual_url": "/docs/14/release-14-7.html", "source_url": "/docs/release/14.7/", "entry_count": 47, "categories": {"security": 1, "bugfix": 23, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2022-41862"], "cve_count": 1}, {"version": "14.6", "build": "14.6", "status": "stable", "date": "2022-11-10", "source_as_of": "", "url": "/docs/compare/?release=14.6", "manual_url": "/docs/14/release-14-6.html", "source_url": "/docs/release/14.6/", "entry_count": 41, "categories": {"improvement": 24, "bugfix": 17}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "14.5", "build": "14.5", "status": "stable", "date": "2022-08-11", "source_as_of": "", "url": "/docs/compare/?release=14.5", "manual_url": "/docs/14/release-14-5.html", "source_url": "/docs/release/14.5/", "entry_count": 39, "categories": {"security": 2, "bugfix": 18, "improvement": 19}, "compatibility_count": 0, "cves": ["CVE-2022-1552", "CVE-2022-2625"], "cve_count": 2}, {"version": "14.4", "build": "14.4", "status": "stable", "date": "2022-06-16", "source_as_of": "", "url": "/docs/compare/?release=14.4", "manual_url": "/docs/14/release-14-4.html", "source_url": "/docs/release/14.4/", "entry_count": 19, "categories": {"bugfix": 9, "improvement": 10}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "14.3", "build": "14.3", "status": "stable", "date": "2022-05-12", "source_as_of": "", "url": "/docs/compare/?release=14.3", "manual_url": "/docs/14/release-14-3.html", "source_url": "/docs/release/14.3/", "entry_count": 52, "categories": {"security": 1, "bugfix": 25, "improvement": 26}, "compatibility_count": 0, "cves": ["CVE-2022-1552"], "cve_count": 1}, {"version": "14.2", "build": "14.2", "status": "stable", "date": "2022-02-10", "source_as_of": "", "url": "/docs/compare/?release=14.2", "manual_url": "/docs/14/release-14-2.html", "source_url": "/docs/release/14.2/", "entry_count": 57, "categories": {"improvement": 25, "bugfix": 31, "performance": 1}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "14.1", "build": "14.1", "status": "stable", "date": "2021-11-11", "source_as_of": "", "url": "/docs/compare/?release=14.1", "manual_url": "/docs/14/release-14-1.html", "source_url": "/docs/release/14.1/", "entry_count": 46, "categories": {"security": 2, "bugfix": 21, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2021-23214", "CVE-2021-23222"], "cve_count": 2}, {"version": "14.0", "build": "14.0", "status": "stable", "date": "2021-09-30", "source_as_of": "", "url": "/docs/compare/?release=14.0", "manual_url": "/docs/14/release-14.html", "source_url": "/docs/release/14.0/", "entry_count": 220, "categories": {"compatibility": 27, "feature": 178, "performance": 13, "bugfix": 2}, "compatibility_count": 27, "cves": [], "cve_count": 0}], "initial_entries": [{"id": "14.0-85566e3576b3d533", "cves": [], "html": "<p>\u5f15\u7528\u67d0\u4e9b\u5185\u7f6e\u6570\u7ec4\u51fd\u6570\u53ca\u5176\u53c2\u6570\u7c7b\u578b\u7684\u7528\u6237\u5b9a\u4e49\u5bf9\u8c61\u5fc5\u987b\u91cd\u65b0\u521b\u5efa\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/9e38c2bb5\">\u00a7</a></p>\n<p>\u5177\u4f53\u6765\u8bf4\uff0c<a href=\"/docs/14/functions-array.html\" title=\"9.19.\u00a0\u6570\u7ec4\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>array_append()</code></a>\u3001<code>array_prepend()</code>\u3001<code>array_cat()</code>\u3001<code>array_position()</code>\u3001<code>array_positions()</code>\u3001<code>array_remove()</code>\u3001<code>array_replace()</code> \u548c <a href=\"/docs/14/functions-math.html\" title=\"9.3.\u00a0\u6570\u5b66\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>width_bucket()</code></a> \u4ee5\u524d\u63a5\u53d7 <code>anyarray</code> \u53c2\u6570\uff0c\u4f46\u73b0\u5728\u63a5\u53d7 <code>anycompatiblearray</code>\u3002\u56e0\u6b64\uff0c\u5f15\u7528\u8fd9\u4e9b\u6570\u7ec4\u51fd\u6570\u7b7e\u540d\u7684\u7528\u6237\u5b9a\u4e49\u5bf9\u8c61\uff08\u5982\u805a\u5408\u548c\u64cd\u4f5c\u7b26\uff09\u5fc5\u987b\u5728\u5347\u7ea7\u524d\u5220\u9664\uff0c\u5e76\u5728\u5347\u7ea7\u5b8c\u6210\u540e\u91cd\u65b0\u521b\u5efa\u3002</p>", "text": "\u5f15\u7528\u67d0\u4e9b\u5185\u7f6e\u6570\u7ec4\u51fd\u6570\u53ca\u5176\u53c2\u6570\u7c7b\u578b\u7684\u7528\u6237\u5b9a\u4e49\u5bf9\u8c61\u5fc5\u987b\u91cd\u65b0\u521b\u5efa\uff08Tom Lane\uff09\u00a7 \u5177\u4f53\u6765\u8bf4\uff0carray_append()\u3001array_prepend()\u3001array_cat()\u3001array_position()\u3001array_positions()\u3001array_remove()\u3001array_replace() \u548c width_bucket() \u4ee5\u524d\u63a5\u53d7 anyarray \u53c2\u6570\uff0c\u4f46\u73b0\u5728\u63a5\u53d7 anycompatiblearray\u3002\u56e0\u6b64\uff0c\u5f15\u7528\u8fd9\u4e9b\u6570\u7ec4\u51fd\u6570\u7b7e\u540d\u7684\u7528\u6237\u5b9a\u4e49\u5bf9\u8c61\uff08\u5982\u805a\u5408\u548c\u64cd\u4f5c\u7b26\uff09\u5fc5\u987b\u5728\u5347\u7ea7\u524d\u5220\u9664\uff0c\u5e76\u5728\u5347\u7ea7\u5b8c\u6210\u540e\u91cd\u65b0\u521b\u5efa\u3002", "title": "\u5f15\u7528\u67d0\u4e9b\u5185\u7f6e\u6570\u7ec4\u51fd\u6570\u53ca\u5176\u53c2\u6570\u7c7b\u578b\u7684\u7528\u6237\u5b9a\u4e49\u5bf9\u8c61\u5fc5\u987b\u91cd\u65b0\u521b\u5efa", "commits": ["9e38c2bb5"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "03f160f8002924740f2c3cf8b544267779607c96aa904bb71ea13a5b360224e0", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["9e38c2bb5"]], "identity_text": "User-defined objects that reference certain built-in array functions along with their argument types must be recreated (Tom Lane) Specifically, array_append(), array_prepend(), array_cat(), array_position(), array_positions(), array_remove(), array_replace(), and width_bucket() used to take anyarray arguments but now take anycompatiblearray. Therefore, user-defined objects like aggregates and operators that reference those array function signatures must be dropped before upgrading, and recreated once the upgrade completes.", "commit_aliases": ["9e38c2bb5"], "source_commits": ["9e38c2bb5"], "source_entry_id": "14.0/migration/001", "db_id": "57c4547257fc6633764aa973e9303863", "patch_ids": ["80d8aa49c80ecce0ddda625f58860fe1"], "statement_hash": "cf5910668b09440227d51039a7d21bbb39434c22e014f4e8c4d1ad20c9a35832", "relations": [{"rule": 2, "type": "related", "target": "08589d1884d0ea2ed7d1f62b5df4cc1d", "evidence": {"same_day": true, "patch_ids": ["80d8aa49c80ecce0ddda625f58860fe1"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-85566e3576b3d533", "migration": true}, {"id": "14.0-d437d09154612fca", "cves": [], "html": "<p>\u79fb\u9664\u5185\u7f6e<a href=\"/docs/14/functions-geometry.html\" title=\"9.11.\u00a0\u51e0\u4f55\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\">\u51e0\u4f55\u6570\u636e\u7c7b\u578b</a>\u548c contrib \u6a21\u5757<a href=\"/docs/14/cube.html\" title=\"F.9.\u00a0cube\">cube</a>\u3001<a href=\"/docs/14/hstore.html\" title=\"F.16.\u00a0hstore\">hstore</a>\u3001<a href=\"/docs/14/intarray.html\" title=\"F.18.\u00a0intarray\">intarray</a>\u548c<a href=\"/docs/14/seg.html\" title=\"F.36.\u00a0seg\">seg</a>\u4e2d\u5df2\u5f03\u7528\u7684\u5305\u542b\u64cd\u4f5c\u7b26 <code>@</code> \u548c <code>~</code>\uff08Justin Pryzby\uff09<a href=\"https://postgr.es/c/2f70fdb06\">\u00a7</a> <a href=\"https://postgr.es/c/112d411fb\">\u00a7</a></p>\n<p>\u66f4\u4e00\u81f4\u547d\u540d\u7684 <code>&lt;@</code> \u548c <code>@&gt;</code> \u5df2\u88ab\u63a8\u8350\u4f7f\u7528\u591a\u5e74\u3002</p>", "text": "\u79fb\u9664\u5185\u7f6e\u51e0\u4f55\u6570\u636e\u7c7b\u578b\u548c contrib \u6a21\u5757cube\u3001hstore\u3001intarray\u548cseg\u4e2d\u5df2\u5f03\u7528\u7684\u5305\u542b\u64cd\u4f5c\u7b26 @ \u548c ~\uff08Justin Pryzby\uff09\u00a7 \u00a7 \u66f4\u4e00\u81f4\u547d\u540d\u7684 <@ \u548c @> \u5df2\u88ab\u63a8\u8350\u4f7f\u7528\u591a\u5e74\u3002", "title": "\u79fb\u9664\u5185\u7f6e\u51e0\u4f55\u6570\u636e\u7c7b\u578b\u548c contrib \u6a21\u5757cube\u3001hstore\u3001intarray\u548cseg\u4e2d\u5df2\u5f03\u7528\u7684\u5305\u542b\u64cd\u4f5c\u7b26 @ \u548c ~", "commits": ["112d411fb", "2f70fdb06"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "2c670c96567b3173f8fdb9062b5807e1cc981f5f58cff5ace59ea290ecbd2dd1", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["112d411fb"], ["2f70fdb06"]], "identity_text": "Remove deprecated containment operators @ and ~ for built-in geometric data types and contrib modules cube , hstore , intarray , and seg (Justin Pryzby) The more consistently named <@ and @> have been recommended for many years.", "commit_aliases": ["112d411fb", "2f70fdb06"], "source_commits": ["112d411fb", "2f70fdb06"], "source_entry_id": "14.0/migration/002", "db_id": "237660b1fbb8dd20017c6175267e95ec", "patch_ids": ["3c681f334455e0bd48271e5716d5b559", "c4ef1bade2dd6f369995841746768f0a"], "statement_hash": "4894120ca206bfdd14b3fa514ce721d3d3e55d7179d58bcd3cf27113bda8afdf", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-d437d09154612fca", "migration": true}, {"id": "14.0-a29178c6e12bef2d", "cves": [], "html": "<p>\u4fee\u590d <a href=\"/docs/14/functions-textsearch.html\" title=\"9.13.\u00a0\u6587\u672c\u68c0\u7d22\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>to_tsquery()</code></a> \u548c <code>websearch_to_tsquery()</code> \u4ee5\u6b63\u786e\u89e3\u6790\u5305\u542b\u4e22\u5f03\u6807\u8bb0\u7684\u67e5\u8be2\u6587\u672c\uff08Alexander Korotkov\uff09<a href=\"https://postgr.es/c/0c4f355c6\">\u00a7</a></p>\n<p>\u67d0\u4e9b\u4e22\u5f03\u6807\u8bb0\uff08\u5982\u4e0b\u5212\u7ebf\uff09\u4f1a\u5bfc\u81f4\u8fd9\u4e9b\u51fd\u6570\u4ea7\u751f\u4e0d\u6b63\u786e\u7684 tsquery \u8f93\u51fa\uff0c\u4f8b\u5982\uff0c<code>websearch_to_tsquery('\"pg_class pg\"')</code> \u548c <code>to_tsquery('pg_class &lt;-&gt; pg')</code> \u4ee5\u524d\u90fd\u8f93\u51fa <code>( 'pg' &amp; 'class' ) &lt;-&gt; 'pg'</code>\uff0c\u4f46\u73b0\u5728\u90fd\u8f93\u51fa <code>'pg' &lt;-&gt; 'class' &lt;-&gt; 'pg'</code>\u3002</p>", "text": "\u4fee\u590d to_tsquery() \u548c websearch_to_tsquery() \u4ee5\u6b63\u786e\u89e3\u6790\u5305\u542b\u4e22\u5f03\u6807\u8bb0\u7684\u67e5\u8be2\u6587\u672c\uff08Alexander Korotkov\uff09\u00a7 \u67d0\u4e9b\u4e22\u5f03\u6807\u8bb0\uff08\u5982\u4e0b\u5212\u7ebf\uff09\u4f1a\u5bfc\u81f4\u8fd9\u4e9b\u51fd\u6570\u4ea7\u751f\u4e0d\u6b63\u786e\u7684 tsquery \u8f93\u51fa\uff0c\u4f8b\u5982\uff0cwebsearch_to_tsquery('\"pg_class pg\"') \u548c to_tsquery('pg_class <-> pg') \u4ee5\u524d\u90fd\u8f93\u51fa ( 'pg' & 'class' ) <-> 'pg'\uff0c\u4f46\u73b0\u5728\u90fd\u8f93\u51fa 'pg' <-> 'class' <-> 'pg'\u3002", "title": "\u4fee\u590d to_tsquery() \u548c websearch_to_tsquery() \u4ee5\u6b63\u786e\u89e3\u6790\u5305\u542b\u4e22\u5f03\u6807\u8bb0\u7684\u67e5\u8be2\u6587\u672c", "commits": ["0c4f355c6"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "4298a06ac12bca85270f0e2c74b7654c0938a1b65628b606c89a3458e2423487", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["0c4f355c6"]], "identity_text": "Fix to_tsquery() and websearch_to_tsquery() to properly parse query text containing discarded tokens (Alexander Korotkov) Certain discarded tokens, like underscore, caused the output of these functions to produce incorrect tsquery output, e.g., both websearch_to_tsquery('\"pg_class pg\"') and to_tsquery('pg_class <-> pg') used to output ( 'pg' & 'class' ) <-> 'pg', but now both output 'pg' <-> 'class' <-> 'pg'.", "commit_aliases": ["0c4f355c6"], "source_commits": ["0c4f355c6"], "source_entry_id": "14.0/migration/003", "db_id": "4e17e1dee7fbfb6b0b6d4fad1552a279", "patch_ids": ["0e306570bb0843294a746eafb85983fa"], "statement_hash": "97c0e7ee4f9512aa4db16ecfdb57f09142f892d3b5ae076fe639a969fccf67df", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-a29178c6e12bef2d", "migration": true}, {"id": "14.0-add148e34dafd59e", "cves": [], "html": "<p>\u4fee\u590d <a href=\"/docs/14/functions-textsearch.html\" title=\"9.13.\u00a0\u6587\u672c\u68c0\u7d22\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>websearch_to_tsquery()</code></a> \u4ee5\u6b63\u786e\u89e3\u6790\u5f15\u53f7\u4e2d\u591a\u4e2a\u76f8\u90bb\u4e22\u5f03\u6807\u8bb0\uff08Alexander Korotkov\uff09<a href=\"https://postgr.es/c/eb086056f\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u5305\u542b\u591a\u4e2a\u76f8\u90bb\u4e22\u5f03\u6807\u8bb0\u7684\u5f15\u53f7\u6587\u672c\u88ab\u89c6\u4e3a\u591a\u4e2a\u6807\u8bb0\uff0c\u5bfc\u81f4\u4e0d\u6b63\u786e\u7684 tsquery \u8f93\u51fa\uff0c\u4f8b\u5982\uff0c<code>websearch_to_tsquery('\"aaa: bbb\"')</code> \u4ee5\u524d\u8f93\u51fa <code>'aaa' &lt;2&gt; 'bbb'</code>\uff0c\u4f46\u73b0\u5728\u8f93\u51fa <code>'aaa' &lt;-&gt; 'bbb'</code>\u3002</p>", "text": "\u4fee\u590d websearch_to_tsquery() \u4ee5\u6b63\u786e\u89e3\u6790\u5f15\u53f7\u4e2d\u591a\u4e2a\u76f8\u90bb\u4e22\u5f03\u6807\u8bb0\uff08Alexander Korotkov\uff09\u00a7 \u4ee5\u524d\uff0c\u5305\u542b\u591a\u4e2a\u76f8\u90bb\u4e22\u5f03\u6807\u8bb0\u7684\u5f15\u53f7\u6587\u672c\u88ab\u89c6\u4e3a\u591a\u4e2a\u6807\u8bb0\uff0c\u5bfc\u81f4\u4e0d\u6b63\u786e\u7684 tsquery \u8f93\u51fa\uff0c\u4f8b\u5982\uff0cwebsearch_to_tsquery('\"aaa: bbb\"') \u4ee5\u524d\u8f93\u51fa 'aaa' <2> 'bbb'\uff0c\u4f46\u73b0\u5728\u8f93\u51fa 'aaa' <-> 'bbb'\u3002", "title": "\u4fee\u590d websearch_to_tsquery() \u4ee5\u6b63\u786e\u89e3\u6790\u5f15\u53f7\u4e2d\u591a\u4e2a\u76f8\u90bb\u4e22\u5f03\u6807\u8bb0", "commits": ["eb086056f"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "91bcc924c0e50b834ac0f2076b27b3fd648517ce7879ccaf492fafed5f41a653", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["eb086056f"]], "identity_text": "Fix websearch_to_tsquery() to properly parse multiple adjacent discarded tokens in quotes (Alexander Korotkov) Previously, quoted text that contained multiple adjacent discarded tokens was treated as multiple tokens, causing incorrect tsquery output, e.g., websearch_to_tsquery('\"aaa: bbb\"') used to output 'aaa' <2> 'bbb', but now outputs 'aaa' <-> 'bbb'.", "commit_aliases": ["eb086056f"], "source_commits": ["eb086056f"], "source_entry_id": "14.0/migration/004", "db_id": "72afb05bbfc01aee66adf945c95d27fc", "patch_ids": ["6f2cbaea9fe17c80a00dda4b5bd5feb1"], "statement_hash": "e4580984708a3dfa92cd7467b1391dda17ca65e971342a37ae4f47a537340f13", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-add148e34dafd59e", "migration": true}, {"id": "14.0-c3df10657ed1fb4f", "cves": [], "html": "<p>\u5c06 <a href=\"/docs/14/functions-datetime.html\" title=\"9.9.\u00a0\u65e5\u671f/\u65f6\u95f4\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>EXTRACT()</code></a> \u7684\u8fd4\u56de\u7c7b\u578b\u4ece <code>float8</code> \u6539\u4e3a <code>numeric</code>\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/a2da77cdb\">\u00a7</a></p>\n<p>\u8fd9\u907f\u514d\u4e86\u67d0\u4e9b\u7528\u6cd5\u4e2d\u7684\u7cbe\u5ea6\u635f\u5931\u95ee\u9898\u3002\u65e7\u7684\u884c\u4e3a\u4ecd\u53ef\u901a\u8fc7\u4f7f\u7528\u5e95\u5c42\u51fd\u6570 <code>date_part()</code> \u83b7\u5f97\u3002</p>\n<p>\u6b64\u5916\uff0c<code>EXTRACT(date)</code> \u73b0\u5728\u5bf9\u4e0d\u5c5e\u4e8e <code>date</code> \u6570\u636e\u7c7b\u578b\u7684\u5355\u4f4d\u4f1a\u629b\u51fa\u9519\u8bef\u3002</p>", "text": "\u5c06 EXTRACT() \u7684\u8fd4\u56de\u7c7b\u578b\u4ece float8 \u6539\u4e3a numeric\uff08Peter Eisentraut\uff09\u00a7 \u8fd9\u907f\u514d\u4e86\u67d0\u4e9b\u7528\u6cd5\u4e2d\u7684\u7cbe\u5ea6\u635f\u5931\u95ee\u9898\u3002\u65e7\u7684\u884c\u4e3a\u4ecd\u53ef\u901a\u8fc7\u4f7f\u7528\u5e95\u5c42\u51fd\u6570 date_part() \u83b7\u5f97\u3002 \u6b64\u5916\uff0cEXTRACT(date) \u73b0\u5728\u5bf9\u4e0d\u5c5e\u4e8e date \u6570\u636e\u7c7b\u578b\u7684\u5355\u4f4d\u4f1a\u629b\u51fa\u9519\u8bef\u3002", "title": "\u5c06 EXTRACT() \u7684\u8fd4\u56de\u7c7b\u578b\u4ece float8 \u6539\u4e3a numeric", "commits": ["a2da77cdb"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "3d5fb419fc14c12614310539fd74d232537b99f3353b5aa154e5eb0603d2b96f", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["a2da77cdb"]], "identity_text": "Change EXTRACT() to return type numeric instead of float8 (Peter Eisentraut) This avoids loss-of-precision issues in some usages. The old behavior can still be obtained by using the old underlying function date_part(). Also, EXTRACT(date) now throws an error for units that are not part of the date data type.", "commit_aliases": ["a2da77cdb"], "source_commits": ["a2da77cdb"], "source_entry_id": "14.0/migration/005", "db_id": "5ef659058d1ea38bfd747bc588b76215", "patch_ids": ["dc0db4254cd4cf7f3b8a96c92d51fdf3"], "statement_hash": "6470ce74b5b22c049abb0e81bcfec8cbf6d9086544f80952983d679515adbe63", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-c3df10657ed1fb4f", "migration": true}, {"id": "14.0-fcadd8743e360830", "cves": [], "html": "<p>\u5f53\u8f93\u5165\u4e3a\u5355\u4e2a NaN \u503c\u65f6\uff0c\u5c06\u5e26\u6709 numeric \u53c2\u6570\u7684 <a href=\"/docs/14/functions-aggregate.html\" title=\"9.21.\u00a0\u805a\u5408\u51fd\u6570\"><code>var_samp()</code></a> \u548c <code>stddev_samp()</code> \u6539\u4e3a\u8fd4\u56de NULL\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/23cbeda50\">\u00a7</a></p>\n<p>\u4ee5\u524d\u8fd4\u56de <code>NaN</code>\u3002</p>", "text": "\u5f53\u8f93\u5165\u4e3a\u5355\u4e2a NaN \u503c\u65f6\uff0c\u5c06\u5e26\u6709 numeric \u53c2\u6570\u7684 var_samp() \u548c stddev_samp() \u6539\u4e3a\u8fd4\u56de NULL\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\u8fd4\u56de NaN\u3002", "title": "\u5f53\u8f93\u5165\u4e3a\u5355\u4e2a NaN \u503c\u65f6\uff0c\u5c06\u5e26\u6709 numeric \u53c2\u6570\u7684 var_samp() \u548c stddev_samp() \u6539\u4e3a\u8fd4\u56de NULL", "commits": ["23cbeda50"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "5398ea076f27d0d1163a71eb037854610e87afa055b052e0bc820afeec09cfb7", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["23cbeda50"]], "identity_text": "Change var_samp() and stddev_samp() with numeric parameters to return NULL when the input is a single NaN value (Tom Lane) Previously NaN was returned.", "commit_aliases": ["23cbeda50"], "source_commits": ["23cbeda50"], "source_entry_id": "14.0/migration/006", "db_id": "7926bdd9a7f4eb45afda848b072764ac", "patch_ids": ["2f2f5012d9ee6dedf58e95bb44b60f35"], "statement_hash": "c20169549d365b673fd8307fdc3ed46e492d351f54c0de93681ac37923fa66f0", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-fcadd8743e360830", "migration": true}, {"id": "14.0-e6d7c1e391d32f00", "cves": [], "html": "<p>\u5f53\u4f7f\u7528\u5c5e\u6027\u7f16\u53f7\u68c0\u67e5\u4e0d\u5b58\u5728\u6216\u5df2\u5220\u9664\u7684\u5217\u65f6\uff0c<a href=\"/docs/14/functions-info.html\" title=\"9.26.\u00a0\u7cfb\u7edf\u4fe1\u606f\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>has_column_privilege()</code></a> \u8fd4\u56de false\uff08Joe Conway\uff09<a href=\"https://postgr.es/c/b12bd4869\">\u00a7</a></p>\n<p>\u4ee5\u524d\u8fd9\u6837\u7684\u5c5e\u6027\u7f16\u53f7\u4f1a\u8fd4\u56de\u65e0\u6548\u5217\u9519\u8bef\u3002</p>", "text": "\u5f53\u4f7f\u7528\u5c5e\u6027\u7f16\u53f7\u68c0\u67e5\u4e0d\u5b58\u5728\u6216\u5df2\u5220\u9664\u7684\u5217\u65f6\uff0chas_column_privilege() \u8fd4\u56de false\uff08Joe Conway\uff09\u00a7 \u4ee5\u524d\u8fd9\u6837\u7684\u5c5e\u6027\u7f16\u53f7\u4f1a\u8fd4\u56de\u65e0\u6548\u5217\u9519\u8bef\u3002", "title": "\u5f53\u4f7f\u7528\u5c5e\u6027\u7f16\u53f7\u68c0\u67e5\u4e0d\u5b58\u5728\u6216\u5df2\u5220\u9664\u7684\u5217\u65f6\uff0chas_column_privilege() \u8fd4\u56de false", "commits": ["b12bd4869"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "f7e10974c17f9e8232eee021be237ee9374d6a22d0723a47348b8561f9661bce", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["b12bd4869"]], "identity_text": "Return false for has_column_privilege() checks on non-existent or dropped columns when using attribute numbers (Joe Conway) Previously such attribute numbers returned an invalid-column error.", "commit_aliases": ["b12bd4869"], "source_commits": ["b12bd4869"], "source_entry_id": "14.0/migration/007", "db_id": "2a8dcc67f64402d654533acf7c9a8e8d", "patch_ids": ["9bf521aea59479b5aa7908981cec9608"], "statement_hash": "5e80d0c2d65c146bdc3748b2dab4ed0fa6fc2cafd2f530f3fd4a76fc9ade0341", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-e6d7c1e391d32f00", "migration": true}, {"id": "14.0-21cd13ab9dddb8d4", "cves": [], "html": "<p>\u4fee\u590d\u65e0\u9650<a href=\"/docs/14/sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS\" title=\"4.2.8.\u00a0\u7a97\u53e3\u51fd\u6570\u8c03\u7528\">\u7a97\u53e3\u51fd\u6570</a>\u8303\u56f4\u7684\u5904\u7406\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/a4faef8f8\">\u00a7</a></p>\n<p>\u4ee5\u524d\u50cf <code>'inf' PRECEDING AND 'inf' FOLLOWING</code> \u8fd9\u6837\u7684\u7a97\u53e3\u5e27\u5b50\u53e5\u4f1a\u8fd4\u56de\u4e0d\u6b63\u786e\u7684\u7ed3\u679c\u3002</p>", "text": "\u4fee\u590d\u65e0\u9650\u7a97\u53e3\u51fd\u6570\u8303\u56f4\u7684\u5904\u7406\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\u50cf 'inf' PRECEDING AND 'inf' FOLLOWING \u8fd9\u6837\u7684\u7a97\u53e3\u5e27\u5b50\u53e5\u4f1a\u8fd4\u56de\u4e0d\u6b63\u786e\u7684\u7ed3\u679c\u3002", "title": "\u4fee\u590d\u65e0\u9650\u7a97\u53e3\u51fd\u6570\u8303\u56f4\u7684\u5904\u7406", "commits": ["a4faef8f8"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "8c7d3f9734f20f728910411e115b035aec1d067c3b6446550321c00d0dd76b15", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["a4faef8f8"]], "identity_text": "Fix handling of infinite window function ranges (Tom Lane) Previously window frame clauses like 'inf' PRECEDING AND 'inf' FOLLOWING returned incorrect results.", "commit_aliases": ["a4faef8f8"], "source_commits": ["a4faef8f8"], "source_entry_id": "14.0/migration/008", "db_id": "cc5a2618863c67b130fa5e3934818edf", "patch_ids": ["c428437083341760a50eba91330516b2"], "statement_hash": "e3ea4024d2bb0f2bc0147faf7250edb51b1c0d08e11c05a1c9fc636733c136e6", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-21cd13ab9dddb8d4", "migration": true}, {"id": "14.0-e43e3f5299c6e04a", "cves": [], "html": "<p>\u79fb\u9664\u9636\u4e58\u64cd\u4f5c\u7b26 <code>!</code> \u548c <code>!!</code>\uff0c\u4ee5\u53ca\u51fd\u6570 <code>numeric_fac()</code>\uff08Mark Dilger\uff09<a href=\"https://postgr.es/c/76f412ab3\">\u00a7</a></p>\n<p><a href=\"/docs/14/functions-math.html\" title=\"9.3.\u00a0\u6570\u5b66\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>factorial()</code></a> \u51fd\u6570\u4ecd\u7136\u53d7\u652f\u6301\u3002</p>", "text": "\u79fb\u9664\u9636\u4e58\u64cd\u4f5c\u7b26 ! \u548c !!\uff0c\u4ee5\u53ca\u51fd\u6570 numeric_fac()\uff08Mark Dilger\uff09\u00a7 factorial() \u51fd\u6570\u4ecd\u7136\u53d7\u652f\u6301\u3002", "title": "\u79fb\u9664\u9636\u4e58\u64cd\u4f5c\u7b26 ! \u548c !!\uff0c\u4ee5\u53ca\u51fd\u6570 numeric_fac()", "commits": ["76f412ab3"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "6b719e2f8f6caa64d47e8f82f8764882d7834044c5d850ca7c8756e698435a4c", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["76f412ab3"]], "identity_text": "Remove factorial operators ! and !!, as well as function numeric_fac() (Mark Dilger) The factorial() function is still supported.", "commit_aliases": ["76f412ab3"], "source_commits": ["76f412ab3"], "source_entry_id": "14.0/migration/009", "db_id": "ad3c72cb6f930e94293095180cd73086", "patch_ids": ["f4e9888531ffe53a5bc8e42db5222e8c"], "statement_hash": "31cf7628109e5f5375596af702aa7fc9664a665e5131995216ec7874c47727a1", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-e43e3f5299c6e04a", "migration": true}, {"id": "14.0-54dea678f4f5c69b", "cves": [], "html": "<p>\u7981\u6b62\u5bf9\u8d1f\u6570\u4f7f\u7528 <code>factorial()</code>\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/0a40563ea\">\u00a7</a></p>\n<p>\u4ee5\u524d\u8fd9\u79cd\u60c5\u51b5\u8fd4\u56de 1\u3002</p>", "text": "\u7981\u6b62\u5bf9\u8d1f\u6570\u4f7f\u7528 factorial()\uff08Peter Eisentraut\uff09\u00a7 \u4ee5\u524d\u8fd9\u79cd\u60c5\u51b5\u8fd4\u56de 1\u3002", "title": "\u7981\u6b62\u5bf9\u8d1f\u6570\u4f7f\u7528 factorial()", "commits": ["0a40563ea"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "5b325d7866b4a3419d1b70f2818ac3d6e68c16509813c4c0a4192ad7373cc8bd", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["0a40563ea"]], "identity_text": "Disallow factorial() of negative numbers (Peter Eisentraut) Previously such cases returned 1.", "commit_aliases": ["0a40563ea"], "source_commits": ["0a40563ea"], "source_entry_id": "14.0/migration/010", "db_id": "a82ab3256c778cee96b7de5dae3389d2", "patch_ids": ["cd388f0be397d41474e22ca994181ccd"], "statement_hash": "0c1388d837df3e23a4dc76a2373dad719ba114e9e2e56e89ab0f736232601a04", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-54dea678f4f5c69b", "migration": true}, {"id": "14.0-eb0963fef9639111", "cves": [], "html": "<p>\u79fb\u9664\u5bf9<a href=\"/docs/14/sql-createoperator.html\" title=\"CREATE OPERATOR\">\u540e\u7f00</a>\uff08\u53f3\u4e00\u5143\uff09\u64cd\u4f5c\u7b26\u7684\u652f\u6301\uff08Mark Dilger\uff09<a href=\"https://postgr.es/c/1ed6b8956\">\u00a7</a></p>\n<p><span>pg_dump</span> \u548c <span>pg_upgrade</span> \u5728\u5bfc\u51fa\u540e\u7f00\u64cd\u4f5c\u7b26\u65f6\u4f1a\u53d1\u51fa\u8b66\u544a\u3002</p>", "text": "\u79fb\u9664\u5bf9\u540e\u7f00\uff08\u53f3\u4e00\u5143\uff09\u64cd\u4f5c\u7b26\u7684\u652f\u6301\uff08Mark Dilger\uff09\u00a7 pg_dump \u548c pg_upgrade \u5728\u5bfc\u51fa\u540e\u7f00\u64cd\u4f5c\u7b26\u65f6\u4f1a\u53d1\u51fa\u8b66\u544a\u3002", "title": "\u79fb\u9664\u5bf9\u540e\u7f00\uff08\u53f3\u4e00\u5143\uff09\u64cd\u4f5c\u7b26\u7684\u652f\u6301", "commits": ["1ed6b8956"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "faeed0461c17932988c87c6d96b8bd0c0d1d366070de77a1700a737710dd4cfe", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["1ed6b8956"]], "identity_text": "Remove support for postfix (right-unary) operators (Mark Dilger) pg_dump and pg_upgrade will warn if postfix operators are being dumped.", "commit_aliases": ["1ed6b8956"], "source_commits": ["1ed6b8956"], "source_entry_id": "14.0/migration/011", "db_id": "516b18fbda2a69208204390b1a1c4a71", "patch_ids": ["00fd954ed0ced2a53ee2a5342b976432"], "statement_hash": "874d9a3baac9e9f9ff170b2db4886412d0524ecc66805656a455387ab6fe5d2d", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-eb0963fef9639111", "migration": true}, {"id": "14.0-674b08adca6e6a9c", "cves": [], "html": "<p>\u5728<a href=\"/docs/14/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3.\u00a0POSIX\u6b63\u5219\u8868\u8fbe\u5f0f\">\u6b63\u5219\u8868\u8fbe\u5f0f</a>\u6362\u884c\u654f\u611f\u6a21\u5f0f\u4e0b\uff0c\u5141\u8bb8 <code>\\D</code> \u548c <code>\\W</code> \u7b80\u5199\u5339\u914d\u6362\u884c\u7b26\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/7dc13a0f0\">\u00a7</a></p>\n<p>\u4ee5\u524d\u5b83\u4eec\u5728\u6b64\u6a21\u5f0f\u4e0b\u4e0d\u5339\u914d\u6362\u884c\u7b26\uff0c\u4f46\u8fd9\u4e0e\u5176\u4ed6\u5e38\u89c1\u6b63\u5219\u8868\u8fbe\u5f0f\u5f15\u64ce\u7684\u884c\u4e3a\u4e0d\u4e00\u81f4\u3002\u53ef\u4ee5\u4f7f\u7528 <code>[^[:digit:]]</code> \u6216 <code>[^[:word:]]</code> \u83b7\u5f97\u65e7\u7684\u884c\u4e3a\u3002</p>", "text": "\u5728\u6b63\u5219\u8868\u8fbe\u5f0f\u6362\u884c\u654f\u611f\u6a21\u5f0f\u4e0b\uff0c\u5141\u8bb8 \\D \u548c \\W \u7b80\u5199\u5339\u914d\u6362\u884c\u7b26\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\u5b83\u4eec\u5728\u6b64\u6a21\u5f0f\u4e0b\u4e0d\u5339\u914d\u6362\u884c\u7b26\uff0c\u4f46\u8fd9\u4e0e\u5176\u4ed6\u5e38\u89c1\u6b63\u5219\u8868\u8fbe\u5f0f\u5f15\u64ce\u7684\u884c\u4e3a\u4e0d\u4e00\u81f4\u3002\u53ef\u4ee5\u4f7f\u7528 [^[:digit:]] \u6216 [^[:word:]] \u83b7\u5f97\u65e7\u7684\u884c\u4e3a\u3002", "title": "\u5728\u6b63\u5219\u8868\u8fbe\u5f0f\u6362\u884c\u654f\u611f\u6a21\u5f0f\u4e0b\uff0c\u5141\u8bb8 \\D \u548c \\W \u7b80\u5199\u5339\u914d\u6362\u884c\u7b26", "commits": ["7dc13a0f0"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "fe10d6d365bc38be4474c845de8aa5a2bcb63109bafc8c7066d5cc978f8b6faa", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["7dc13a0f0"]], "identity_text": "Allow \\D and \\W shorthands to match newlines in regular expression newline-sensitive mode (Tom Lane) Previously they did not match newlines in this mode, but that disagrees with the behavior of other common regular expression engines. [^[:digit:]] or [^[:word:]] can be used to get the old behavior.", "commit_aliases": ["7dc13a0f0"], "source_commits": ["7dc13a0f0"], "source_entry_id": "14.0/migration/012", "db_id": "f62ca7ae8f621f84f8a67c4654d0b38e", "patch_ids": ["0916cbb882cf32b7872521b474cd59f0"], "statement_hash": "458ed27a0ada8bd19080ef7704f9f1d318b8e459f516f728330fc98058b20c72", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-674b08adca6e6a9c", "migration": true}, {"id": "14.0-dc3c28800f9e00f1", "cves": [], "html": "<p>\u5728\u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f<a href=\"/docs/14/functions-matching.html#POSIX-ESCAPE-SEQUENCES\" title=\"9.7.3.3.\u00a0\u6b63\u5219\u8868\u8fbe\u5f0f\u8f6c\u4e49\">\u53cd\u5411\u5f15\u7528</a>\u65f6\u5ffd\u7565\u7ea6\u675f\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/4aea704a5\">\u00a7</a></p>\n<p>\u4f8b\u5982\uff0c\u5728 <code>(^\\d+).*\\1</code> \u4e2d\uff0c<code>^</code> \u7ea6\u675f\u5e94\u5728\u5b57\u7b26\u4e32\u5f00\u5934\u5e94\u7528\uff0c\u4f46\u5728\u5339\u914d <code>\\1</code> \u65f6\u4e0d\u5e94\u5e94\u7528\u3002</p>", "text": "\u5728\u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u53cd\u5411\u5f15\u7528\u65f6\u5ffd\u7565\u7ea6\u675f\uff08Tom Lane\uff09\u00a7 \u4f8b\u5982\uff0c\u5728 (^\\d+).*\\1 \u4e2d\uff0c^ \u7ea6\u675f\u5e94\u5728\u5b57\u7b26\u4e32\u5f00\u5934\u5e94\u7528\uff0c\u4f46\u5728\u5339\u914d \\1 \u65f6\u4e0d\u5e94\u5e94\u7528\u3002", "title": "\u5728\u5339\u914d\u6b63\u5219\u8868\u8fbe\u5f0f\u53cd\u5411\u5f15\u7528\u65f6\u5ffd\u7565\u7ea6\u675f", "commits": ["4aea704a5"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "fa5574c921b9259d6fb145fb45fd2de3007bbd340e6a80ce8b70f30560d6fa9a", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["4aea704a5"]], "identity_text": "Disregard constraints when matching regular expression back-references (Tom Lane) For example, in (^\\d+).*\\1, the ^ constraint should be applied at the start of the string, but not when matching \\1.", "commit_aliases": ["4aea704a5"], "source_commits": ["4aea704a5"], "source_entry_id": "14.0/migration/013", "db_id": "f798d8d0d167dba6f45c7681ea791ae2", "patch_ids": ["3cd853007451027734334534bef65fae"], "statement_hash": "d2dfe57fe621bca079f0140b1b748cb671966ae375c94561538b10365b35a2ed", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-dc3c28800f9e00f1", "migration": true}, {"id": "14.0-3b134586c815622b", "cves": [], "html": "<p>\u7981\u6b62\u5728\u6b63\u5219\u8868\u8fbe\u5f0f\u5b57\u7b26\u7c7b\u4e2d\u4f7f\u7528 <code>\\w</code> \u4f5c\u4e3a\u8303\u56f4\u8d77\u70b9\u6216\u7ec8\u70b9\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/2a0af7fe4\">\u00a7</a></p>\n<p>\u4ee5\u524d\u8fd9\u662f\u5141\u8bb8\u7684\uff0c\u4f46\u4ea7\u751f\u4e86\u610f\u5916\u7684\u7ed3\u679c\u3002</p>", "text": "\u7981\u6b62\u5728\u6b63\u5219\u8868\u8fbe\u5f0f\u5b57\u7b26\u7c7b\u4e2d\u4f7f\u7528 \\w \u4f5c\u4e3a\u8303\u56f4\u8d77\u70b9\u6216\u7ec8\u70b9\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\u8fd9\u662f\u5141\u8bb8\u7684\uff0c\u4f46\u4ea7\u751f\u4e86\u610f\u5916\u7684\u7ed3\u679c\u3002", "title": "\u7981\u6b62\u5728\u6b63\u5219\u8868\u8fbe\u5f0f\u5b57\u7b26\u7c7b\u4e2d\u4f7f\u7528 \\w \u4f5c\u4e3a\u8303\u56f4\u8d77\u70b9\u6216\u7ec8\u70b9", "commits": ["2a0af7fe4"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "14a46122cb94db327ce1ac31393ffad7cda594b0f62f897352495cbec80cd7be", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["2a0af7fe4"]], "identity_text": "Disallow \\w as a range start or end in regular expression character classes (Tom Lane) This previously was allowed but produced unexpected results.", "commit_aliases": ["2a0af7fe4"], "source_commits": ["2a0af7fe4"], "source_entry_id": "14.0/migration/014", "db_id": "7cb33f40db82cf57d3f6f027f0bd7fa4", "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "statement_hash": "73eaa88216c7e67d8ca71eb8abfff9fe074f0d5b60217e60a1876758275466c1", "relations": [{"rule": 2, "type": "related", "target": "11855fff64e4bfd4f316452868bdaf21", "evidence": {"same_day": true, "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "ambiguous_patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"]}}, {"rule": 2, "type": "related", "target": "31b906e8faf3983c67c4ba76c9bcbe42", "evidence": {"same_day": true, "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "ambiguous_patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-3b134586c815622b", "migration": true}, {"id": "14.0-f3f9a68bd130f524", "cves": [], "html": "<p>\u8981\u6c42<a href=\"/docs/14/runtime-config-custom.html\" title=\"20.16.\u00a0\u81ea\u5b9a\u4e49\u9009\u9879\">\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u53c2\u6570</a>\u540d\u79f0\u4ec5\u4f7f\u7528\u5728\u672a\u52a0\u5f15\u53f7\u7684 <acronym>SQL</acronym> \u6807\u8bc6\u7b26\u4e2d\u6709\u6548\u7684\u5b57\u7b26\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/3db826bd5\">\u00a7</a> <a href=\"https://postgr.es/c/3db826bd5\">\u00a7</a></p>", "text": "\u8981\u6c42\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u53c2\u6570\u540d\u79f0\u4ec5\u4f7f\u7528\u5728\u672a\u52a0\u5f15\u53f7\u7684 SQL \u6807\u8bc6\u7b26\u4e2d\u6709\u6548\u7684\u5b57\u7b26\uff08Tom Lane\uff09\u00a7 \u00a7", "title": "\u8981\u6c42\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u53c2\u6570\u540d\u79f0\u4ec5\u4f7f\u7528\u5728\u672a\u52a0\u5f15\u53f7\u7684 SQL \u6807\u8bc6\u7b26\u4e2d\u6709\u6548\u7684\u5b57\u7b26", "commits": ["3db826bd5"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "67f466cd55180af38ef79167d0f7d82a906c3a65c15ea1407028a364129639c3", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["3db826bd5"]], "identity_text": "Require custom server parameter names to use only characters that are valid in unquoted SQL identifiers (Tom Lane)", "commit_aliases": ["3db826bd5"], "source_commits": ["3db826bd5"], "source_entry_id": "14.0/migration/015", "db_id": "e27c0102cf63765c2ca9bdb10c077d0e", "patch_ids": ["a99b80012b5bc8560e6cceeb7486fda5"], "statement_hash": "d4101a6b9beb1104c001aab0a704d01f1fbbac17350fe87d5197ff257bd7491b", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-f3f9a68bd130f524", "migration": true}, {"id": "14.0-360b4aff4fef87f5", "cves": [], "html": "<p>\u5c06<a href=\"/docs/14/runtime-config-connection.html#GUC-PASSWORD-ENCRYPTION\">password_encryption</a>\u670d\u52a1\u5668\u53c2\u6570\u7684\u9ed8\u8ba4\u503c\u6539\u4e3a <code>scram-sha-256</code>\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/c7eab0e97\">\u00a7</a></p>\n<p>\u4ee5\u524d\u9ed8\u8ba4\u503c\u4e3a <code>md5</code>\u3002\u9664\u975e\u66f4\u6539\u6b64\u670d\u52a1\u5668\u8bbe\u7f6e\u6216\u5bc6\u7801\u4ee5 MD5 \u683c\u5f0f\u6307\u5b9a\uff0c\u5426\u5219\u6240\u6709\u65b0\u5bc6\u7801\u5c06\u4ee5 SHA256 \u5b58\u50a8\u3002\u6b64\u5916\uff0c\u4ee5\u524d\u4f5c\u4e3a <code>md5</code> \u540c\u4e49\u8bcd\u7684\u65e7\u5f0f\uff08\u672a\u8bb0\u5f55\u7684\uff09\u5e03\u5c14\u578b\u503c\u4e0d\u518d\u88ab\u63a5\u53d7\u3002</p>", "text": "\u5c06password_encryption\u670d\u52a1\u5668\u53c2\u6570\u7684\u9ed8\u8ba4\u503c\u6539\u4e3a scram-sha-256\uff08Peter Eisentraut\uff09\u00a7 \u4ee5\u524d\u9ed8\u8ba4\u503c\u4e3a md5\u3002\u9664\u975e\u66f4\u6539\u6b64\u670d\u52a1\u5668\u8bbe\u7f6e\u6216\u5bc6\u7801\u4ee5 MD5 \u683c\u5f0f\u6307\u5b9a\uff0c\u5426\u5219\u6240\u6709\u65b0\u5bc6\u7801\u5c06\u4ee5 SHA256 \u5b58\u50a8\u3002\u6b64\u5916\uff0c\u4ee5\u524d\u4f5c\u4e3a md5 \u540c\u4e49\u8bcd\u7684\u65e7\u5f0f\uff08\u672a\u8bb0\u5f55\u7684\uff09\u5e03\u5c14\u578b\u503c\u4e0d\u518d\u88ab\u63a5\u53d7\u3002", "title": "\u5c06password_encryption\u670d\u52a1\u5668\u53c2\u6570\u7684\u9ed8\u8ba4\u503c\u6539\u4e3a scram-sha-256", "commits": ["c7eab0e97"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "8067c3b010176c9042798d257d3a0be08819a6486d40242d9cec4a541fd9c171", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["c7eab0e97"]], "identity_text": "Change the default of the guc-password-encryption server parameter to scram-sha-256 (Peter Eisentraut) Previously it was md5. All new passwords will be stored as SHA256 unless this server setting is changed or the password is specified in MD5 format. Also, the legacy (and undocumented) Boolean-like values which were previously synonyms for md5 are no longer accepted.", "commit_aliases": ["c7eab0e97"], "source_commits": ["c7eab0e97"], "source_entry_id": "14.0/migration/016", "db_id": "17481888e35d734db6901338383970ef", "patch_ids": ["7c902b1caef8f8c6c13adfafbfa817bc"], "statement_hash": "88d01d33bbb1292fa445bd927f4ed5d1df132f6baf3ce2671eefecfc28000f1b", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-360b4aff4fef87f5", "migration": true}, {"id": "14.0-c488d77ab8d7845d", "cves": [], "html": "<p>\u79fb\u9664\u670d\u52a1\u5668\u53c2\u6570 <code>vacuum_cleanup_index_scale_factor</code>\uff08Peter Geoghegan\uff09<a href=\"https://postgr.es/c/9f3665fbf\">\u00a7</a> <a href=\"https://postgr.es/c/effdd3f3b\">\u00a7</a></p>\n<p>\u6b64\u8bbe\u7f6e\u4ece <span>PostgreSQL</span> \u7248\u672c 13.3 \u8d77\u5c31\u88ab\u5ffd\u7565\u4e86\u3002</p>", "text": "\u79fb\u9664\u670d\u52a1\u5668\u53c2\u6570 vacuum_cleanup_index_scale_factor\uff08Peter Geoghegan\uff09\u00a7 \u00a7 \u6b64\u8bbe\u7f6e\u4ece PostgreSQL \u7248\u672c 13.3 \u8d77\u5c31\u88ab\u5ffd\u7565\u4e86\u3002", "title": "\u79fb\u9664\u670d\u52a1\u5668\u53c2\u6570 vacuum_cleanup_index_scale_factor", "commits": ["9f3665fbf", "effdd3f3b"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "42314d33b85d55579681a44b7af8868d631607db06ca94203217fd5bfe3aaa37", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["9663d1244", "9f3665fbf"], ["effdd3f3b"]], "identity_text": "Remove server parameter vacuum_cleanup_index_scale_factor (Peter Geoghegan) This setting was ignored starting in PostgreSQL version 13.3.", "commit_aliases": ["9663d1244", "9f3665fbf", "effdd3f3b"], "source_commits": ["9f3665fbf", "effdd3f3b"], "source_entry_id": "14.0/migration/017", "db_id": "33ba05eddab9ba712287813f7255b7e2", "patch_ids": ["0082ed34d90cec899922fbb0312e7343", "7d139072a7e720186d8972f31f3b9f5e"], "statement_hash": "596766df8cab895bd9dc6e17434ef97dfa0828fe647d5c1c180298c950486ce0", "relations": [{"rule": 2, "type": "related", "target": "905141292f2512fd9b9052468cc7ff7d", "evidence": {"same_day": false, "patch_ids": ["7d139072a7e720186d8972f31f3b9f5e"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-c488d77ab8d7845d", "migration": true}, {"id": "14.0-df2e37ffd01f7a81", "cves": [], "html": "<p>\u79fb\u9664\u670d\u52a1\u5668\u53c2\u6570 <code>operator_precedence_warning</code>\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/a676386b5\">\u00a7</a></p>\n<p>\u6b64\u8bbe\u7f6e\u7528\u4e8e\u8b66\u544a\u5e94\u7528\u7a0b\u5e8f\u5173\u4e8e <span>PostgreSQL</span> 9.5 \u7684\u53d8\u66f4\u3002</p>", "text": "\u79fb\u9664\u670d\u52a1\u5668\u53c2\u6570 operator_precedence_warning\uff08Tom Lane\uff09\u00a7 \u6b64\u8bbe\u7f6e\u7528\u4e8e\u8b66\u544a\u5e94\u7528\u7a0b\u5e8f\u5173\u4e8e PostgreSQL 9.5 \u7684\u53d8\u66f4\u3002", "title": "\u79fb\u9664\u670d\u52a1\u5668\u53c2\u6570 operator_precedence_warning", "commits": ["a676386b5"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "beb20e51897903bbf93b545d9ac370a56a52e3b4b8b94c64259ea22b46676cc6", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["a676386b5"]], "identity_text": "Remove server parameter operator_precedence_warning (Tom Lane) This setting was used for warning applications about PostgreSQL 9.5 changes.", "commit_aliases": ["a676386b5"], "source_commits": ["a676386b5"], "source_entry_id": "14.0/migration/018", "db_id": "dff5c30eb6d405f6e27999750e19b063", "patch_ids": ["c3bebe2adc3f41263f2ecbfb91c7d558"], "statement_hash": "2037da2699ec34b8c38b1b1bbab6935ac8edfe7590d447ed2ff5632036bda7a3", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-df2e37ffd01f7a81", "migration": true}, {"id": "14.0-502ae2ae25b4a337", "cves": [], "html": "<p>\u6539\u8fdb <a href=\"/docs/14/client-authentication.html#AUTH-PG-HBA-CONF\" title=\"21.1.\u00a0pg_hba.conf \u6587\u4ef6\"><code>pg_hba.conf</code></a> \u4e2d <code>clientcert</code> \u7684\u89c4\u8303\uff08Kyotaro Horiguchi\uff09<a href=\"https://postgr.es/c/253f1025d\">\u00a7</a></p>\n<p>\u4e0d\u518d\u652f\u6301\u503c <code>1</code>/<code>0</code>/<code>no-verify</code>\uff1b\u53ea\u80fd\u4f7f\u7528\u5b57\u7b26\u4e32 <code>verify-ca</code> \u548c <code>verify-full</code>\u3002\u6b64\u5916\uff0c\u5982\u679c\u542f\u7528\u4e86 cert \u8ba4\u8bc1\uff0c\u5219\u7981\u6b62\u4f7f\u7528 <code>verify-ca</code>\uff0c\u56e0\u4e3a cert \u8981\u6c42 <code>verify-full</code> \u68c0\u67e5\u3002</p>", "text": "\u6539\u8fdb pg_hba.conf \u4e2d clientcert \u7684\u89c4\u8303\uff08Kyotaro Horiguchi\uff09\u00a7 \u4e0d\u518d\u652f\u6301\u503c 1/0/no-verify\uff1b\u53ea\u80fd\u4f7f\u7528\u5b57\u7b26\u4e32 verify-ca \u548c verify-full\u3002\u6b64\u5916\uff0c\u5982\u679c\u542f\u7528\u4e86 cert \u8ba4\u8bc1\uff0c\u5219\u7981\u6b62\u4f7f\u7528 verify-ca\uff0c\u56e0\u4e3a cert \u8981\u6c42 verify-full \u68c0\u67e5\u3002", "title": "\u6539\u8fdb pg_hba.conf \u4e2d clientcert \u7684\u89c4\u8303", "commits": ["253f1025d"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "44e215b9be267cdf9ded934f2c935ff01469d9663532d5b54bc5b1440bcf1230", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["253f1025d"]], "identity_text": "Overhaul the specification of clientcert in pg_hba.conf (Kyotaro Horiguchi) Values 1/0/no-verify are no longer supported; only the strings verify-ca and verify-full can be used. Also, disallow verify-ca if cert authentication is enabled since cert requires verify-full checking.", "commit_aliases": ["253f1025d"], "source_commits": ["253f1025d"], "source_entry_id": "14.0/migration/019", "db_id": "2c3a3ed1211816e4246ff740b1861659", "patch_ids": ["5df51c30e7580345e0a15666e915829f"], "statement_hash": "3a4972c31799da56d0d33eb4ba0bd5a90e49923092e338a689c706a840756ca0", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-502ae2ae25b4a337", "migration": true}, {"id": "14.0-fa3437588a928b6c", "cves": [], "html": "<p>\u79fb\u9664\u5bf9 <a href=\"/docs/14/runtime-config-connection.html#RUNTIME-CONFIG-CONNECTION-SSL\" title=\"20.3.3.\u00a0SSL\"><acronym>SSL</acronym></a> \u538b\u7f29\u7684\u652f\u6301\uff08Daniel Gustafsson\uff0cMichael Paquier\uff09<a href=\"https://postgr.es/c/f9264d152\">\u00a7</a> <a href=\"https://postgr.es/c/0ba71107e\">\u00a7</a></p>\n<p>\u5728\u4e4b\u524d\u7684 <span>PostgreSQL</span> \u7248\u672c\u4e2d\u8fd9\u5df2\u9ed8\u8ba4\u7981\u7528\uff0c\u800c\u4e14\u5927\u591a\u6570\u73b0\u4ee3 OpenSSL \u548c <acronym>TLS</acronym> \u7248\u672c\u4e0d\u518d\u652f\u6301\u5b83\u3002</p>", "text": "\u79fb\u9664\u5bf9 SSL \u538b\u7f29\u7684\u652f\u6301\uff08Daniel Gustafsson\uff0cMichael Paquier\uff09\u00a7 \u00a7 \u5728\u4e4b\u524d\u7684 PostgreSQL \u7248\u672c\u4e2d\u8fd9\u5df2\u9ed8\u8ba4\u7981\u7528\uff0c\u800c\u4e14\u5927\u591a\u6570\u73b0\u4ee3 OpenSSL \u548c TLS \u7248\u672c\u4e0d\u518d\u652f\u6301\u5b83\u3002", "title": "\u79fb\u9664\u5bf9 SSL \u538b\u7f29\u7684\u652f\u6301", "commits": ["0ba71107e", "f9264d152"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "0583a73867f097018ea03347ce3d69e5889f63a389c399f33fff0bfaead56754", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["0ba71107e"], ["f9264d152"]], "identity_text": "Remove support for SSL compression (Daniel Gustafsson, Michael Paquier) This was already disabled by default in previous PostgreSQL releases, and most modern OpenSSL and TLS versions no longer support it.", "commit_aliases": ["0ba71107e", "f9264d152"], "source_commits": ["0ba71107e", "f9264d152"], "source_entry_id": "14.0/migration/020", "db_id": "58b01151c05cf3c8e1c1d9a7930a327a", "patch_ids": ["6bb0210077a05748c0769055d2db46d9", "aec84612749cf2a254957427d19b78a0"], "statement_hash": "fe4ec9c7fb6b5e8b54fd54f10e5a67890dd354fd04fdcc3593351cc15ac8b9ef", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-fa3437588a928b6c", "migration": true}, {"id": "14.0-f4ff2add1a8885c7", "cves": [], "html": "<p>\u79fb\u9664\u670d\u52a1\u5668\u548c <a href=\"/docs/14/libpq.html\" title=\"\u7b2c\u00a034\u00a0\u7ae0\u00a0libpq \u2014 C \u5e93\">libpq</a> \u5bf9\u7248\u672c 2 <a href=\"/docs/14/protocol.html\" title=\"\u7b2c\u00a053\u00a0\u7ae0\u00a0\u524d\u7aef/\u540e\u7aef\u534f\u8bae\">\u7ebf\u8def\u534f\u8bae</a>\u7684\u652f\u6301\uff08Heikki Linnakangas\uff09<a href=\"https://postgr.es/c/3174d69fb\">\u00a7</a></p>\n<p>\u8fd9\u6700\u540e\u4e00\u6b21\u4f5c\u4e3a\u9ed8\u8ba4\u503c\u662f\u5728 <span>PostgreSQL</span> 7.3\uff082002 \u5e74\u53d1\u5e03\uff09\u4e2d\u3002</p>", "text": "\u79fb\u9664\u670d\u52a1\u5668\u548c libpq \u5bf9\u7248\u672c 2 \u7ebf\u8def\u534f\u8bae\u7684\u652f\u6301\uff08Heikki Linnakangas\uff09\u00a7 \u8fd9\u6700\u540e\u4e00\u6b21\u4f5c\u4e3a\u9ed8\u8ba4\u503c\u662f\u5728 PostgreSQL 7.3\uff082002 \u5e74\u53d1\u5e03\uff09\u4e2d\u3002", "title": "\u79fb\u9664\u670d\u52a1\u5668\u548c libpq \u5bf9\u7248\u672c 2 \u7ebf\u8def\u534f\u8bae\u7684\u652f\u6301", "commits": ["3174d69fb"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "0f2d63c788bdb205cf66033b4517d051b24374e352f7a5351256e398b26de55a", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["3174d69fb"]], "identity_text": "Remove server and libpq support for the version 2 wire protocol (Heikki Linnakangas) This was last used as the default in PostgreSQL 7.3 (released in 2002).", "commit_aliases": ["3174d69fb"], "source_commits": ["3174d69fb"], "source_entry_id": "14.0/migration/021", "db_id": "57e12b582d9b7d946a2152c1af36c720", "patch_ids": ["d22d532fd6aed0149de79659facb716c"], "statement_hash": "bd5d1715607fa1564908b90d72937f93a51f6ef924c24ec5457ccc4b601b099a", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-f4ff2add1a8885c7", "migration": true}, {"id": "14.0-c2cce8cb5a49fd40", "cves": [], "html": "<p>\u7981\u6b62\u5728 <a href=\"/docs/14/sql-createlanguage.html\" title=\"CREATE LANGUAGE\"><code>CREATE/DROP LANGUAGE</code></a> \u547d\u4ee4\u4e2d\u5bf9\u8bed\u8a00\u540d\u79f0\u4f7f\u7528\u5355\u5f15\u53f7\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/5333e014a\">\u00a7</a></p>", "text": "\u7981\u6b62\u5728 CREATE/DROP LANGUAGE \u547d\u4ee4\u4e2d\u5bf9\u8bed\u8a00\u540d\u79f0\u4f7f\u7528\u5355\u5f15\u53f7\uff08Peter Eisentraut\uff09\u00a7", "title": "\u7981\u6b62\u5728 CREATE/DROP LANGUAGE \u547d\u4ee4\u4e2d\u5bf9\u8bed\u8a00\u540d\u79f0\u4f7f\u7528\u5355\u5f15\u53f7", "commits": ["5333e014a"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "54221a5465143e584510eb17ae30870bfeb5e513967033e4c7a86b1d34bf5afc", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["5333e014a"]], "identity_text": "Disallow single-quoting of the language name in the CREATE/DROP LANGUAGE command (Peter Eisentraut)", "commit_aliases": ["5333e014a"], "source_commits": ["5333e014a"], "source_entry_id": "14.0/migration/022", "db_id": "4bd4437b7dfc003ab870afc13a0e10f5", "patch_ids": ["7a776489833c51084d8e49e716540a6c"], "statement_hash": "542d4e72af450f856917d386a872b7214a1f58eaeddfaa7c92f4764aa511a9d0", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-c2cce8cb5a49fd40", "migration": true}, {"id": "14.0-26a32010c997c97c", "cves": [], "html": "<p>\u79fb\u9664\u4ee5\u524d\u4e3a\u5e8f\u5217\u548c TOAST \u8868\u521b\u5efa\u7684<a href=\"/docs/14/xfunc-sql.html#XFUNC-SQL-COMPOSITE-FUNCTIONS\" title=\"38.5.3.\u00a0\u590d\u5408\u7c7b\u578b\u4e0a\u7684SQL\u51fd\u6570\">\u590d\u5408\u7c7b\u578b</a>\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/f3faf35f3\">\u00a7</a></p>", "text": "\u79fb\u9664\u4ee5\u524d\u4e3a\u5e8f\u5217\u548c TOAST \u8868\u521b\u5efa\u7684\u590d\u5408\u7c7b\u578b\uff08Tom Lane\uff09\u00a7", "title": "\u79fb\u9664\u4ee5\u524d\u4e3a\u5e8f\u5217\u548c TOAST \u8868\u521b\u5efa\u7684\u590d\u5408\u7c7b\u578b", "commits": ["f3faf35f3"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "d31c4f5c397cfbb67fec7d794ca800586b6291b35f360c048fa8e21f242a598d", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["f3faf35f3"]], "identity_text": "Remove the composite types that were formerly created for sequences and toast tables (Tom Lane)", "commit_aliases": ["f3faf35f3"], "source_commits": ["f3faf35f3"], "source_entry_id": "14.0/migration/023", "db_id": "1c5cf332e24f8b0d7202be85e5528156", "patch_ids": ["fa3c02c60852a47771cb473168bb99b9"], "statement_hash": "fd80827a649c5be23f355899edf4f4a02e44fc0dfc25cd4db5dd3b673db86d20", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-26a32010c997c97c", "migration": true}, {"id": "14.0-b37d8ef072b7c837", "cves": [], "html": "<p>\u6b63\u786e\u5904\u7406 <a href=\"/docs/14/ecpg.html\" title=\"\u7b2c\u00a036\u00a0\u7ae0\u00a0ECPG \u2014 C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\">ecpg</a> <acronym>SQL</acronym> \u547d\u4ee4\u5b57\u7b26\u4e32\u4e2d\u7684\u53cc\u5f15\u53f7\u6807\u8bb0\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/3dfb1942d\">\u00a7</a> <a href=\"https://postgr.es/c/c16a1bbcf\">\u00a7</a></p>\n<p>\u4ee5\u524d <code>'abc''def'</code> \u4f1a\u88ab\u4f20\u9012\u7ed9\u670d\u52a1\u5668\u4e3a <code>'abc'def'</code>\uff0c\u800c <code>\"abc\"\"def\"</code> \u4f1a\u88ab\u4f20\u9012\u4e3a <code>\"abc\"def\"</code>\uff0c\u5bfc\u81f4\u8bed\u6cd5\u9519\u8bef\u3002</p>", "text": "\u6b63\u786e\u5904\u7406 ecpg SQL \u547d\u4ee4\u5b57\u7b26\u4e32\u4e2d\u7684\u53cc\u5f15\u53f7\u6807\u8bb0\uff08Tom Lane\uff09\u00a7 \u00a7 \u4ee5\u524d 'abc''def' \u4f1a\u88ab\u4f20\u9012\u7ed9\u670d\u52a1\u5668\u4e3a 'abc'def'\uff0c\u800c \"abc\"\"def\" \u4f1a\u88ab\u4f20\u9012\u4e3a \"abc\"def\"\uff0c\u5bfc\u81f4\u8bed\u6cd5\u9519\u8bef\u3002", "title": "\u6b63\u786e\u5904\u7406 ecpg SQL \u547d\u4ee4\u5b57\u7b26\u4e32\u4e2d\u7684\u53cc\u5f15\u53f7\u6807\u8bb0", "commits": ["3dfb1942d", "c16a1bbcf"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "850983ed0f84597ddc4af25317383beaa8dde9617fbee3c02a93262cc751cc42", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["3dfb1942d"], ["c16a1bbcf"]], "identity_text": "Process doubled quote marks in ecpg SQL command strings correctly (Tom Lane) Previously 'abc''def' was passed to the server as 'abc'def', and \"abc\"\"def\" was passed as \"abc\"def\", causing syntax errors.", "commit_aliases": ["3dfb1942d", "c16a1bbcf"], "source_commits": ["3dfb1942d", "c16a1bbcf"], "source_entry_id": "14.0/migration/024", "db_id": "3093de441801a03f6de174d6ffa599dd", "patch_ids": ["61a8721dedf50c3794fb6ec5f48276eb", "fcf7f1a194e2a0a90d392dfad662df09"], "statement_hash": "f4256ddddb25295152692c602d8a584571b392889c567a2f5111c63f264a3565", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-b37d8ef072b7c837", "migration": true}, {"id": "14.0-491ee6ee37675839", "cves": [], "html": "<p>\u9632\u6b62<a href=\"/docs/14/intarray.html\" title=\"F.18.\u00a0intarray\">intarray</a>\u7684\u5305\u542b\u64cd\u4f5c\u7b26\uff08<code>&lt;@</code> \u548c <code>@&gt;</code>\uff09\u4f7f\u7528 GiST \u7d22\u5f15\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/20e7e1fe3\">\u00a7</a></p>\n<p>\u4ee5\u524d\u9700\u8981\u5b8c\u6574\u7684 GiST \u7d22\u5f15\u626b\u63cf\uff0c\u6240\u4ee5\u6539\u4e3a\u76f4\u63a5\u626b\u63cf\u5806\uff0c\u8fd9\u6837\u66f4\u5feb\u3002\u4e3a\u6b64\u76ee\u7684\u521b\u5efa\u7684\u7d22\u5f15\u5e94\u88ab\u79fb\u9664\u3002</p>", "text": "\u9632\u6b62intarray\u7684\u5305\u542b\u64cd\u4f5c\u7b26\uff08<@ \u548c @>\uff09\u4f7f\u7528 GiST \u7d22\u5f15\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\u9700\u8981\u5b8c\u6574\u7684 GiST \u7d22\u5f15\u626b\u63cf\uff0c\u6240\u4ee5\u6539\u4e3a\u76f4\u63a5\u626b\u63cf\u5806\uff0c\u8fd9\u6837\u66f4\u5feb\u3002\u4e3a\u6b64\u76ee\u7684\u521b\u5efa\u7684\u7d22\u5f15\u5e94\u88ab\u79fb\u9664\u3002", "title": "\u9632\u6b62intarray\u7684\u5305\u542b\u64cd\u4f5c\u7b26\uff08<@ \u548c @>\uff09\u4f7f\u7528 GiST \u7d22\u5f15", "commits": ["20e7e1fe3"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "f0375f9d816b272b5718b7d7bb8a5d000c8c8a90077f4f38079790db5f6f1dc8", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["20e7e1fe3"]], "identity_text": "Prevent the containment operators (<@ and @>) for intarray from using GiST indexes (Tom Lane) Previously a full GiST index scan was required, so just avoid that and scan the heap, which is faster. Indexes created for this purpose should be removed.", "commit_aliases": ["20e7e1fe3"], "source_commits": ["20e7e1fe3"], "source_entry_id": "14.0/migration/025", "db_id": "a40ee29af8f5cf171a58956cb6e0182e", "patch_ids": ["1e07fd758e057e181bd85b16633047c1"], "statement_hash": "f20f4d0fe7b60e25139ffffae4ecae55c63a6bfed8b52ae3763ca5c902d2a6d9", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-491ee6ee37675839", "migration": true}, {"id": "14.0-a1a034d89104d4f8", "cves": [], "html": "<p>\u79fb\u9664 contrib \u7a0b\u5e8f <span>pg_standby</span>\uff08Justin Pryzby\uff09<a href=\"https://postgr.es/c/514b411a2\">\u00a7</a></p>", "text": "\u79fb\u9664 contrib \u7a0b\u5e8f pg_standby\uff08Justin Pryzby\uff09\u00a7", "title": "\u79fb\u9664 contrib \u7a0b\u5e8f pg_standby", "commits": ["514b411a2"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "c32a6819ca23f51862f8e018dfb3698dd91f6d7147f40d95c821eacd19307dd8", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["514b411a2"]], "identity_text": "Remove contrib program pg_standby (Justin Pryzby)", "commit_aliases": ["514b411a2"], "source_commits": ["514b411a2"], "source_entry_id": "14.0/migration/026", "db_id": "a9e0bf38a96f1653bee1bb128f5483ec", "patch_ids": ["1fb8ec0321ecf42c4416a98b5df735c0"], "statement_hash": "470b8cd362970c081fae4cff1eecd49138fa7799dd2e5ffd989c818b1f842ff9", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-a1a034d89104d4f8", "migration": true}, {"id": "14.0-e973627d531b7815", "cves": [], "html": "<p>\u9632\u6b62<a href=\"/docs/14/tablefunc.html\" title=\"F.40.\u00a0tablefunc\">tablefunc</a>\u4e2d\u7684\u51fd\u6570 <code>normal_rand()</code> \u63a5\u53d7\u8d1f\u503c\uff08Ashutosh Bapat\uff09<a href=\"https://postgr.es/c/f73999262\">\u00a7</a></p>\n<p>\u8d1f\u503c\u4f1a\u4ea7\u751f\u4e0d\u826f\u7ed3\u679c\u3002</p>", "text": "\u9632\u6b62tablefunc\u4e2d\u7684\u51fd\u6570 normal_rand() \u63a5\u53d7\u8d1f\u503c\uff08Ashutosh Bapat\uff09\u00a7 \u8d1f\u503c\u4f1a\u4ea7\u751f\u4e0d\u826f\u7ed3\u679c\u3002", "title": "\u9632\u6b62tablefunc\u4e2d\u7684\u51fd\u6570 normal_rand() \u63a5\u53d7\u8d1f\u503c", "commits": ["f73999262"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT2-46", "source_hash": "51d41bdd8143e3cedd448fcc2331bc160a3a332836bfac059e0de6c2a6d96b30", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["f73999262"]], "identity_text": "Prevent tablefunc 's function normal_rand() from accepting negative values (Ashutosh Bapat) Negative values produced undesirable results.", "commit_aliases": ["f73999262"], "source_commits": ["f73999262"], "source_entry_id": "14.0/migration/027", "db_id": "f49484fe3b62226f06ef45d02aa28b08", "patch_ids": ["419656bd6830d5730877c9efa0fcc9ef"], "statement_hash": "fd298129535aafb2a0f2c419da07ab79ce1896430768e68e9cd72ea1ac367a11", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=14.0#14.0-e973627d531b7815", "migration": true}, {"id": "14.0-35dc9fde3c7a4404", "cves": [], "html": "<p>\u589e\u52a0\u9884\u5b9a\u4e49\u89d2\u8272 <a href=\"/docs/14/predefined-roles.html\" title=\"22.5.\u00a0\u9884\u5b9a\u4e49\u89d2\u8272\"><code>pg_read_all_data</code></a> \u548c <code>pg_write_all_data</code>\uff08Stephen Frost\uff09<a href=\"https://postgr.es/c/6c3ffd697\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u975e\u767b\u5f55\u89d2\u8272\u53ef\u7528\u4e8e\u6388\u4e88\u5bf9\u6240\u6709\u8868\u3001\u89c6\u56fe\u548c\u5e8f\u5217\u7684\u8bfb\u6216\u5199\u6743\u9650\u3002</p>", "text": "\u589e\u52a0\u9884\u5b9a\u4e49\u89d2\u8272 pg_read_all_data \u548c pg_write_all_data\uff08Stephen Frost\uff09\u00a7 \u8fd9\u4e9b\u975e\u767b\u5f55\u89d2\u8272\u53ef\u7528\u4e8e\u6388\u4e88\u5bf9\u6240\u6709\u8868\u3001\u89c6\u56fe\u548c\u5e8f\u5217\u7684\u8bfb\u6216\u5199\u6743\u9650\u3002", "title": "\u589e\u52a0\u9884\u5b9a\u4e49\u89d2\u8272 pg_read_all_data \u548c pg_write_all_data", "commits": ["6c3ffd697"], "section": "\u670d\u52a1\u5668", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-1", "source_hash": "3edee8242e0e0472a73fcc7326e31435772bf18008ca8e173cfd41aa732ffbf0", "section_path": ["\u670d\u52a1\u5668"], "commit_groups": [["6c3ffd697"]], "identity_text": "Add predefined roles pg_read_all_data and pg_write_all_data (Stephen Frost) These non-login roles can be used to give read or write permission to all tables, views, and sequences.", "commit_aliases": ["6c3ffd697"], "source_commits": ["6c3ffd697"], "source_entry_id": "14.0/changes/001", "db_id": "7c964ca68cdf3bf8145c759329acccc2", "patch_ids": ["a7b1c5fabbd5c8f3b4273c849636d7de"], "statement_hash": "b4047ab90f3f257b52bb99a1862322775632426b74dee2281aaee02a55da453e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-35dc9fde3c7a4404", "migration": false}, {"id": "14.0-6f2d9695a6db997b", "cves": [], "html": "<p>\u589e\u52a0\u9884\u5b9a\u4e49\u89d2\u8272 <a href=\"/docs/14/predefined-roles.html\" title=\"22.5.\u00a0\u9884\u5b9a\u4e49\u89d2\u8272\"><code>pg_database_owner</code></a>\uff0c\u5176\u4ec5\u5305\u542b\u5f53\u524d\u6570\u636e\u5e93\u7684\u6240\u6709\u8005\uff08Noah Misch\uff09<a href=\"https://postgr.es/c/a14a0118a\">\u00a7</a></p>\n<p>\u8fd9\u5728\u6a21\u677f\u6570\u636e\u5e93\u4e2d\u7279\u522b\u6709\u7528\u3002</p>", "text": "\u589e\u52a0\u9884\u5b9a\u4e49\u89d2\u8272 pg_database_owner\uff0c\u5176\u4ec5\u5305\u542b\u5f53\u524d\u6570\u636e\u5e93\u7684\u6240\u6709\u8005\uff08Noah Misch\uff09\u00a7 \u8fd9\u5728\u6a21\u677f\u6570\u636e\u5e93\u4e2d\u7279\u522b\u6709\u7528\u3002", "title": "\u589e\u52a0\u9884\u5b9a\u4e49\u89d2\u8272 pg_database_owner\uff0c\u5176\u4ec5\u5305\u542b\u5f53\u524d\u6570\u636e\u5e93\u7684\u6240\u6709\u8005", "commits": ["a14a0118a"], "section": "\u670d\u52a1\u5668", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-1", "source_hash": "b7f5e672258676967d32a5aa3cada04d63bbf9d501c9500185049654e366768b", "section_path": ["\u670d\u52a1\u5668"], "commit_groups": [["a14a0118a"]], "identity_text": "Add predefined role pg_database_owner that contains only the current database's owner (Noah Misch) This is especially useful in template databases.", "commit_aliases": ["a14a0118a"], "source_commits": ["a14a0118a"], "source_entry_id": "14.0/changes/002", "db_id": "39f7eb95a3c5fa369367c8d9e3cebff2", "patch_ids": ["4dea78925fdaae2198cc9749bad9eab5"], "statement_hash": "f4b6d6a2feb82f46a79d5a5969e3fb4782683813d72d3ec13c55fda53c13e040", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-6f2d9695a6db997b", "migration": false}, {"id": "14.0-810b08a81787532e", "cves": [], "html": "<p>\u5728\u540e\u7aef\u5d29\u6e83\u540e\u5220\u9664\u4e34\u65f6\u6587\u4ef6\uff08Euler Taveira\uff09<a href=\"https://postgr.es/c/cd91de0d1\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u6b64\u7c7b\u6587\u4ef6\u4e3a\u8c03\u8bd5\u76ee\u7684\u800c\u88ab\u4fdd\u7559\u3002\u5982\u6709\u5fc5\u8981\uff0c\u53ef\u901a\u8fc7\u65b0\u7684\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/14/runtime-config-developer.html#GUC-REMOVE-TEMP-FILES-AFTER-CRASH\">remove_temp_files_after_crash</a>\u7981\u7528\u5220\u9664\u3002</p>", "text": "\u5728\u540e\u7aef\u5d29\u6e83\u540e\u5220\u9664\u4e34\u65f6\u6587\u4ef6\uff08Euler Taveira\uff09\u00a7 \u4ee5\u524d\uff0c\u6b64\u7c7b\u6587\u4ef6\u4e3a\u8c03\u8bd5\u76ee\u7684\u800c\u88ab\u4fdd\u7559\u3002\u5982\u6709\u5fc5\u8981\uff0c\u53ef\u901a\u8fc7\u65b0\u7684\u670d\u52a1\u5668\u53c2\u6570remove_temp_files_after_crash\u7981\u7528\u5220\u9664\u3002", "title": "\u5728\u540e\u7aef\u5d29\u6e83\u540e\u5220\u9664\u4e34\u65f6\u6587\u4ef6", "commits": ["cd91de0d1"], "section": "\u670d\u52a1\u5668", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-1", "source_hash": "8a07f6ae80b6a91c982965e7fb06a8ef388441a72c1e82fb5f052af8b0ce0d33", "section_path": ["\u670d\u52a1\u5668"], "commit_groups": [["cd91de0d1"]], "identity_text": "Remove temporary files after backend crashes (Euler Taveira) Previously, such files were retained for debugging purposes. If necessary, deletion can be disabled with the new server parameter guc-remove-temp-files-after-crash .", "commit_aliases": ["cd91de0d1"], "source_commits": ["cd91de0d1"], "source_entry_id": "14.0/changes/003", "db_id": "9641f1fa742188e74a0ce21ffb889f00", "patch_ids": ["3eda1f200d7115024d30e70cc91d03de"], "statement_hash": "7b84731fbe851c837f867ed41279fabc8f765c04f2d6aebf30b915b0cea99aad", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-810b08a81787532e", "migration": false}, {"id": "14.0-2369230c215178f6", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\u65f6\u53d6\u6d88\u957f\u65f6\u95f4\u8fd0\u884c\u7684\u67e5\u8be2\uff08Sergey Cherkashin\uff0cThomas Munro\uff09<a href=\"https://postgr.es/c/c30f54ad7\">\u00a7</a></p>\n<p>\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/14/runtime-config-connection.html#GUC-CLIENT-CONNECTION-CHECK-INTERVAL\">client_connection_check_interval</a>\u5141\u8bb8\u63a7\u5236\u662f\u5426\u5728\u67e5\u8be2\u6267\u884c\u671f\u95f4\u68c0\u67e5\u8fde\u63a5\u4e22\u5931\u3002\uff08\u8fd9\u5728 Linux \u548c\u5c11\u6570\u5176\u4ed6\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u53d7\u652f\u6301\u3002\uff09</p>", "text": "\u5141\u8bb8\u5728\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\u65f6\u53d6\u6d88\u957f\u65f6\u95f4\u8fd0\u884c\u7684\u67e5\u8be2\uff08Sergey Cherkashin\uff0cThomas Munro\uff09\u00a7 \u670d\u52a1\u5668\u53c2\u6570client_connection_check_interval\u5141\u8bb8\u63a7\u5236\u662f\u5426\u5728\u67e5\u8be2\u6267\u884c\u671f\u95f4\u68c0\u67e5\u8fde\u63a5\u4e22\u5931\u3002\uff08\u8fd9\u5728 Linux \u548c\u5c11\u6570\u5176\u4ed6\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u53d7\u652f\u6301\u3002\uff09", "title": "\u5141\u8bb8\u5728\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\u65f6\u53d6\u6d88\u957f\u65f6\u95f4\u8fd0\u884c\u7684\u67e5\u8be2", "commits": ["c30f54ad7"], "section": "\u670d\u52a1\u5668", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-1", "source_hash": "27e0b2b4f1f67548713108323182c1875fed7b4e597b4b8b2906fb0fe4865b64", "section_path": ["\u670d\u52a1\u5668"], "commit_groups": [["c30f54ad7"]], "identity_text": "Allow long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro) The server parameter guc-client-connection-check-interval allows control over whether loss of connection is checked for intra-query. (This is supported on Linux and a few other operating systems.)", "commit_aliases": ["c30f54ad7"], "source_commits": ["c30f54ad7"], "source_entry_id": "14.0/changes/004", "db_id": "a41d31862a17639e06183064e541c785", "patch_ids": ["6b1278fd036012f59f5ac99ded1c5420"], "statement_hash": "d276847c535cfe09f0d43acb4190ffc941f831d42a07a5d4d79aaef80b966238", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-2369230c215178f6", "migration": false}, {"id": "14.0-fb6dd24848b29ee6", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/14/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL\" title=\"9.27.2.\u00a0\u670d\u52a1\u5668\u4fe1\u53f7\u51fd\u6570\"><code>pg_terminate_backend()</code></a> \u589e\u52a0\u53ef\u9009\u7684\u8d85\u65f6\u53c2\u6570\uff08Magnus Hagander\uff09<a href=\"https://postgr.es/c/aaf043257\">\u00a7</a></p>", "text": "\u4e3a pg_terminate_backend() \u589e\u52a0\u53ef\u9009\u7684\u8d85\u65f6\u53c2\u6570\uff08Magnus Hagander\uff09\u00a7", "title": "\u4e3a pg_terminate_backend() \u589e\u52a0\u53ef\u9009\u7684\u8d85\u65f6\u53c2\u6570", "commits": ["aaf043257"], "section": "\u670d\u52a1\u5668", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-1", "source_hash": "c5833bcb75dfacf2aa0bc64be26ea75b4ec29b7e2571b3ac499ca0094f970d3a", "section_path": ["\u670d\u52a1\u5668"], "commit_groups": [["aaf043257"]], "identity_text": "Add an optional timeout parameter to pg_terminate_backend() (Magnus Hagander)", "commit_aliases": ["aaf043257"], "source_commits": ["aaf043257"], "source_entry_id": "14.0/changes/005", "db_id": "cfdff82e4698491408ffac16fc954126", "patch_ids": ["302820860fbe21c4869d2d58bd900dd2"], "statement_hash": "da3674ace1551c12e4f5bd5a4545beb0e3603595fb89b2280c3adbce75e1903b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-fb6dd24848b29ee6", "migration": false}, {"id": "14.0-d0d4294addce76e7", "cves": [], "html": "<p>\u5141\u8bb8\u5bbd\u5143\u7ec4\u59cb\u7ec8\u88ab\u6dfb\u52a0\u5230\u51e0\u4e4e\u4e3a\u7a7a\u7684\u5806\u9875\u9762\u4e2d\uff08John Naylor\uff0cFloris van Nee\uff09<a href=\"https://postgr.es/c/0ff8bbdee\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u63d2\u5165\u4f1a\u8d85\u8fc7\u9875\u9762<a href=\"/docs/14/sql-createtable.html\" title=\"CREATE TABLE\">\u586b\u5145\u56e0\u5b50</a>\u7684\u5143\u7ec4\u4f1a\u88ab\u6dfb\u52a0\u5230\u65b0\u9875\u9762\u4e2d\u3002</p>", "text": "\u5141\u8bb8\u5bbd\u5143\u7ec4\u59cb\u7ec8\u88ab\u6dfb\u52a0\u5230\u51e0\u4e4e\u4e3a\u7a7a\u7684\u5806\u9875\u9762\u4e2d\uff08John Naylor\uff0cFloris van Nee\uff09\u00a7 \u4ee5\u524d\uff0c\u63d2\u5165\u4f1a\u8d85\u8fc7\u9875\u9762\u586b\u5145\u56e0\u5b50\u7684\u5143\u7ec4\u4f1a\u88ab\u6dfb\u52a0\u5230\u65b0\u9875\u9762\u4e2d\u3002", "title": "\u5141\u8bb8\u5bbd\u5143\u7ec4\u59cb\u7ec8\u88ab\u6dfb\u52a0\u5230\u51e0\u4e4e\u4e3a\u7a7a\u7684\u5806\u9875\u9762\u4e2d", "commits": ["0ff8bbdee"], "section": "\u670d\u52a1\u5668", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-1", "source_hash": "ed40aa9909ecbc0c55353c192b947ecc8b6886ffdf3d3046ea233d940450647e", "section_path": ["\u670d\u52a1\u5668"], "commit_groups": [["0ff8bbdee"]], "identity_text": "Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Floris van Nee) Previously tuples whose insertion would have exceeded the page's fill factor were instead added to new pages.", "commit_aliases": ["0ff8bbdee"], "source_commits": ["0ff8bbdee"], "source_entry_id": "14.0/changes/006", "db_id": "2b5392fe4c126bdbde4d4aa7bde41801", "patch_ids": ["f55a5fbf49b0f05bf7fa427e115618b1"], "statement_hash": "8a4d001b69d3172c9b75eaa0f1bf4baddb6283eb06b200dfd921df3c958e4e0e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-d0d4294addce76e7", "migration": false}, {"id": "14.0-8c56233b67e95709", "cves": [], "html": "<p>\u5728 <acronym>SSL</acronym> \u8fde\u63a5\u6570\u636e\u5305\u4e2d\u589e\u52a0\u670d\u52a1\u5668\u540d\u79f0\u6307\u793a\uff08<acronym>SNI</acronym>\uff09\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/5c55dc8b4\">\u00a7</a></p>\n<p>\u53ef\u901a\u8fc7\u5173\u95ed\u5ba2\u6237\u7aef\u8fde\u63a5\u9009\u9879 <a href=\"/docs/14/libpq.html#LIBPQ-PARAMKEYWORDS\" title=\"34.1.2.\u00a0\u53c2\u6570\u5173\u952e\u8bcd\"><code>sslsni</code></a> \u6765\u7981\u7528\u6b64\u529f\u80fd\u3002</p>", "text": "\u5728 SSL \u8fde\u63a5\u6570\u636e\u5305\u4e2d\u589e\u52a0\u670d\u52a1\u5668\u540d\u79f0\u6307\u793a\uff08SNI\uff09\uff08Peter Eisentraut\uff09\u00a7 \u53ef\u901a\u8fc7\u5173\u95ed\u5ba2\u6237\u7aef\u8fde\u63a5\u9009\u9879 sslsni \u6765\u7981\u7528\u6b64\u529f\u80fd\u3002", "title": "\u5728 SSL \u8fde\u63a5\u6570\u636e\u5305\u4e2d\u589e\u52a0\u670d\u52a1\u5668\u540d\u79f0\u6307\u793a\uff08SNI\uff09", "commits": ["5c55dc8b4"], "section": "\u670d\u52a1\u5668", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-1", "source_hash": "99336d6805a14fdf96ee9d18c1a8ede727f53023a11f8ea5febe7a81ca5d39ea", "section_path": ["\u670d\u52a1\u5668"], "commit_groups": [["5c55dc8b4"]], "identity_text": "Add Server Name Indication (SNI) in SSL connection packets (Peter Eisentraut) This can be disabled by turning off client connection option sslsni.", "commit_aliases": ["5c55dc8b4"], "source_commits": ["5c55dc8b4"], "source_entry_id": "14.0/changes/007", "db_id": "7ce49034b850c76474237ca8314a1007", "patch_ids": ["77e8a1144f3d08d6d8f0c5a328cede7b"], "statement_hash": "40e295532f90c1be713d5507715f88e7c514e82ac57e222e05a6e8979783d70d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-8c56233b67e95709", "migration": false}, {"id": "14.0-17241e7ea7ee1b31", "cves": [], "html": "<p>\u5141\u8bb8 vacuum \u5728\u53ef\u79fb\u9664\u7684\u7d22\u5f15\u6761\u76ee\u6570\u91cf\u4e0d\u663e\u8457\u65f6\u8df3\u8fc7\u7d22\u5f15\u6e05\u7406\uff08Masahiko Sawada\uff0cPeter Geoghegan\uff09<a href=\"https://postgr.es/c/5100010ee\">\u00a7</a> <a href=\"https://postgr.es/c/3499df0de\">\u00a7</a></p>\n<p>vacuum \u53c2\u6570 <a href=\"/docs/14/sql-vacuum.html\" title=\"VACUUM\"><code>INDEX_CLEANUP</code></a> \u6709\u4e00\u4e2a\u65b0\u7684\u9ed8\u8ba4\u503c <code>auto</code> \u6765\u542f\u7528\u6b64\u4f18\u5316\u3002</p>", "text": "\u5141\u8bb8 vacuum \u5728\u53ef\u79fb\u9664\u7684\u7d22\u5f15\u6761\u76ee\u6570\u91cf\u4e0d\u663e\u8457\u65f6\u8df3\u8fc7\u7d22\u5f15\u6e05\u7406\uff08Masahiko Sawada\uff0cPeter Geoghegan\uff09\u00a7 \u00a7 vacuum \u53c2\u6570 INDEX_CLEANUP \u6709\u4e00\u4e2a\u65b0\u7684\u9ed8\u8ba4\u503c auto \u6765\u542f\u7528\u6b64\u4f18\u5316\u3002", "title": "\u5141\u8bb8 vacuum \u5728\u53ef\u79fb\u9664\u7684\u7d22\u5f15\u6761\u76ee\u6570\u91cf\u4e0d\u663e\u8457\u65f6\u8df3\u8fc7\u7d22\u5f15\u6e05\u7406", "commits": ["3499df0de", "5100010ee"], "section": "\u670d\u52a1\u5668 / \u6e05\u7406", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-1", "source_hash": "6a2a99d04a1637b40fb9e32564a37855ef4a9cb62cf794df190902ef5ae0228d", "section_path": ["\u670d\u52a1\u5668", "\u6e05\u7406"], "commit_groups": [["3499df0de"], ["5100010ee"]], "identity_text": "Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan) The vacuum parameter INDEX_CLEANUP has a new default of auto that enables this optimization.", "commit_aliases": ["3499df0de", "5100010ee"], "source_commits": ["3499df0de", "5100010ee"], "source_entry_id": "14.0/changes/008", "db_id": "a21ae13cb310d2a0737b52cd09c05d39", "patch_ids": ["0db553698bcff7d44b18dfb0a4d1db41", "d36ed693709beb0d367a2de841423210"], "statement_hash": "e32425a2058b156981a48d8bc6b2b595f57389cb01f71f710dddeba3f49175c6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-17241e7ea7ee1b31", "migration": false}, {"id": "14.0-18c971f4cf86d5d5", "cves": [], "html": "<p>\u5141\u8bb8 vacuum \u66f4\u79ef\u6781\u5730\u5c06\u5df2\u5220\u9664\u7684 B-\u6811\u9875\u9762\u6dfb\u52a0\u5230\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\u4e2d\uff08Peter Geoghegan\uff09<a href=\"https://postgr.es/c/9dd963ae2\">\u00a7</a></p>\n<p>\u4ee5\u524d\u7684\u6e05\u7406\u53ea\u80fd\u5c06\u6b64\u524d\u6e05\u7406\u6807\u8bb0\u4e3a\u5df2\u5220\u9664\u7684\u9875\u9762\u6dfb\u52a0\u5230\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\u4e2d\u3002</p>", "text": "\u5141\u8bb8 vacuum \u66f4\u79ef\u6781\u5730\u5c06\u5df2\u5220\u9664\u7684 B-\u6811\u9875\u9762\u6dfb\u52a0\u5230\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\u4e2d\uff08Peter Geoghegan\uff09\u00a7 \u4ee5\u524d\u7684\u6e05\u7406\u53ea\u80fd\u5c06\u6b64\u524d\u6e05\u7406\u6807\u8bb0\u4e3a\u5df2\u5220\u9664\u7684\u9875\u9762\u6dfb\u52a0\u5230\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\u4e2d\u3002", "title": "\u5141\u8bb8 vacuum \u66f4\u79ef\u6781\u5730\u5c06\u5df2\u5220\u9664\u7684 B-\u6811\u9875\u9762\u6dfb\u52a0\u5230\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\u4e2d", "commits": ["9dd963ae2"], "section": "\u670d\u52a1\u5668 / \u6e05\u7406", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-1", "source_hash": "1a5df65590ce77bfba6416afa53e5caeda96f198b37a90e694b59eea495a867a", "section_path": ["\u670d\u52a1\u5668", "\u6e05\u7406"], "commit_groups": [["9dd963ae2"]], "identity_text": "Allow vacuum to more eagerly add deleted btree pages to the free space map (Peter Geoghegan) Previously vacuum could only add pages to the free space map that were marked as deleted by previous vacuums.", "commit_aliases": ["9dd963ae2"], "source_commits": ["9dd963ae2"], "source_entry_id": "14.0/changes/009", "db_id": "dfe598f48cb6459cfc00d4877a4e027a", "patch_ids": ["7ea5da6b25b05cc12a9b7155150851f1"], "statement_hash": "5628575f5d106cd69153b5b5a7a9241d3ce0cf3aa8b3af1cd918f1e02af03c80", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-18c971f4cf86d5d5", "migration": false}, {"id": "14.0-c51e7b9682ea3842", "cves": [], "html": "<p>\u5141\u8bb8 vacuum \u56de\u6536\u672a\u4f7f\u7528\u7684\u5c3e\u90e8\u5806\u884c\u6307\u9488\u6240\u5360\u7528\u7684\u7a7a\u95f4\uff08Matthias van de Meent\uff0cPeter Geoghegan\uff09<a href=\"https://postgr.es/c/3c3b8a4b2\">\u00a7</a></p>", "text": "\u5141\u8bb8 vacuum \u56de\u6536\u672a\u4f7f\u7528\u7684\u5c3e\u90e8\u5806\u884c\u6307\u9488\u6240\u5360\u7528\u7684\u7a7a\u95f4\uff08Matthias van de Meent\uff0cPeter Geoghegan\uff09\u00a7", "title": "\u5141\u8bb8 vacuum \u56de\u6536\u672a\u4f7f\u7528\u7684\u5c3e\u90e8\u5806\u884c\u6307\u9488\u6240\u5360\u7528\u7684\u7a7a\u95f4", "commits": ["3c3b8a4b2"], "section": "\u670d\u52a1\u5668 / \u6e05\u7406", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-1", "source_hash": "a8ecddf416b8d86d6355383cabe7692f05143fb855c8993970f0ad8b39993516", "section_path": ["\u670d\u52a1\u5668", "\u6e05\u7406"], "commit_groups": [["3c3b8a4b2"]], "identity_text": "Allow vacuum to reclaim space used by unused trailing heap line pointers (Matthias van de Meent, Peter Geoghegan)", "commit_aliases": ["3c3b8a4b2"], "source_commits": ["3c3b8a4b2"], "source_entry_id": "14.0/changes/010", "db_id": "67b224cf45acd34835fc61ac92183819", "patch_ids": ["e465d15f7a45be97ecf084841358ff3e"], "statement_hash": "c1780be2eac7b38ea2387976313dca8cec4bb7fd8bb4993b1b11843b4af5af20", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-c51e7b9682ea3842", "migration": false}, {"id": "14.0-ef9a930b3e1a3eb2", "cves": [], "html": "<p>\u5141\u8bb8 vacuum \u5728\u6700\u5c0f\u9501\u5b9a\u7d22\u5f15\u64cd\u4f5c\u671f\u95f4\u66f4\u79ef\u6781\u5730\u5220\u9664\u6b7b\u884c\uff08\u00c1lvaro Herrera\uff09<a href=\"https://postgr.es/c/c98763bf5\">\u00a7</a> <a href=\"https://postgr.es/c/f9900df5f\">\u00a7</a> <a href=\"https://postgr.es/c/d9d076222\">\u00a7</a></p>\n<p>\u5177\u4f53\u6765\u8bf4\uff0c<code>CREATE INDEX CONCURRENTLY</code> \u548c <code>REINDEX CONCURRENTLY</code> \u4e0d\u518d\u9650\u5236\u5176\u4ed6\u5173\u7cfb\u7684\u6b7b\u884c\u79fb\u9664\u3002</p>", "text": "\u5141\u8bb8 vacuum \u5728\u6700\u5c0f\u9501\u5b9a\u7d22\u5f15\u64cd\u4f5c\u671f\u95f4\u66f4\u79ef\u6781\u5730\u5220\u9664\u6b7b\u884c\uff08\u00c1lvaro Herrera\uff09\u00a7 \u00a7 \u00a7 \u5177\u4f53\u6765\u8bf4\uff0cCREATE INDEX CONCURRENTLY \u548c REINDEX CONCURRENTLY \u4e0d\u518d\u9650\u5236\u5176\u4ed6\u5173\u7cfb\u7684\u6b7b\u884c\u79fb\u9664\u3002", "title": "\u5141\u8bb8 vacuum \u5728\u6700\u5c0f\u9501\u5b9a\u7d22\u5f15\u64cd\u4f5c\u671f\u95f4\u66f4\u79ef\u6781\u5730\u5220\u9664\u6b7b\u884c", "commits": ["c98763bf5", "d9d076222", "f9900df5f"], "section": "\u670d\u52a1\u5668 / \u6e05\u7406", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-1", "source_hash": "4aadeb747e050652577bd0cc70c532539bd75d0b560058ed95e987acd843e335", "section_path": ["\u670d\u52a1\u5668", "\u6e05\u7406"], "commit_groups": [["c98763bf5"], ["d9d076222"], ["f9900df5f"]], "identity_text": "Allow vacuum to be more aggressive in removing dead rows during minimal-locking index operations (\u00c1lvaro Herrera) Specifically, CREATE INDEX CONCURRENTLY and REINDEX CONCURRENTLY no longer limit the dead row removal of other relations.", "commit_aliases": ["c98763bf5", "d9d076222", "f9900df5f"], "source_commits": ["c98763bf5", "d9d076222", "f9900df5f"], "source_entry_id": "14.0/changes/011", "db_id": "0c9d974913b05a8737e6a1f04752bfdc", "patch_ids": ["372a3670e2e3e461b4849f3a7ecea103", "5b064cc4a625651d6f0dba84325817a5", "6bd8462ec5bafe5f31e1328915ed8acb"], "statement_hash": "54e4e48618b5d1357955b5f68e3e091b1dde8dbf55d5ed7798fb8ed8a288256b", "relations": [{"rule": 2, "type": "related", "target": "e2349e6d9b73ae536eb86bd9f5cbbac4", "evidence": {"same_day": true, "patch_ids": ["372a3670e2e3e461b4849f3a7ecea103", "5b064cc4a625651d6f0dba84325817a5", "6bd8462ec5bafe5f31e1328915ed8acb"], "ambiguous_patch_ids": ["372a3670e2e3e461b4849f3a7ecea103", "5b064cc4a625651d6f0dba84325817a5", "6bd8462ec5bafe5f31e1328915ed8acb"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-ef9a930b3e1a3eb2", "migration": false}, {"id": "14.0-eef786d5aceb9fcd", "cves": [], "html": "<p>\u52a0\u901f\u5177\u6709\u8bb8\u591a\u5173\u7cfb\u7684\u6570\u636e\u5e93\u7684\u6e05\u7406\uff08Tatsuhito Kasahara\uff09<a href=\"https://postgr.es/c/e2ac3fed3\">\u00a7</a></p>", "text": "\u52a0\u901f\u5177\u6709\u8bb8\u591a\u5173\u7cfb\u7684\u6570\u636e\u5e93\u7684\u6e05\u7406\uff08Tatsuhito Kasahara\uff09\u00a7", "title": "\u52a0\u901f\u5177\u6709\u8bb8\u591a\u5173\u7cfb\u7684\u6570\u636e\u5e93\u7684\u6e05\u7406", "commits": ["e2ac3fed3"], "section": "\u670d\u52a1\u5668 / \u6e05\u7406", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-1", "source_hash": "6de1b38e56c93551a86bbb1f8c30b181aace28c08f85b7a8e1b6c9b4cbf92ac2", "section_path": ["\u670d\u52a1\u5668", "\u6e05\u7406"], "commit_groups": [["e2ac3fed3"]], "identity_text": "Speed up vacuuming of databases with many relations (Tatsuhito Kasahara)", "commit_aliases": ["e2ac3fed3"], "source_commits": ["e2ac3fed3"], "source_entry_id": "14.0/changes/012", "db_id": "7226f64f239faedb831a40b26ed1b83b", "patch_ids": ["db27b08fe82d4866a88debc8fe55bcfe"], "statement_hash": "a97c5b84df3e61784c109c3e486bdd644582a78b7409685bee83e549a311d862", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-eef786d5aceb9fcd", "migration": false}, {"id": "14.0-6691c88c023c83cd", "cves": [], "html": "<p>\u964d\u4f4e<a href=\"/docs/14/runtime-config-resource.html#GUC-VACUUM-COST-PAGE-MISS\">vacuum_cost_page_miss</a>\u7684\u9ed8\u8ba4\u503c\u4ee5\u66f4\u597d\u5730\u53cd\u6620\u5f53\u524d\u786c\u4ef6\u80fd\u529b\uff08Peter Geoghegan\uff09<a href=\"https://postgr.es/c/e19594c5c\">\u00a7</a></p>", "text": "\u964d\u4f4evacuum_cost_page_miss\u7684\u9ed8\u8ba4\u503c\u4ee5\u66f4\u597d\u5730\u53cd\u6620\u5f53\u524d\u786c\u4ef6\u80fd\u529b\uff08Peter Geoghegan\uff09\u00a7", "title": "\u964d\u4f4evacuum_cost_page_miss\u7684\u9ed8\u8ba4\u503c\u4ee5\u66f4\u597d\u5730\u53cd\u6620\u5f53\u524d\u786c\u4ef6\u80fd\u529b", "commits": ["e19594c5c"], "section": "\u670d\u52a1\u5668 / \u6e05\u7406", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-1", "source_hash": "15a761ea69ab85b91764cd89b03f14b7bbb3fe6be55fb18b1392671a4b300508", "section_path": ["\u670d\u52a1\u5668", "\u6e05\u7406"], "commit_groups": [["e19594c5c"]], "identity_text": "Reduce the default value of guc-vacuum-cost-page-miss to better reflect current hardware capabilities (Peter Geoghegan)", "commit_aliases": ["e19594c5c"], "source_commits": ["e19594c5c"], "source_entry_id": "14.0/changes/013", "db_id": "89b7a60eade6d24829bbc0d9efb70194", "patch_ids": ["75ef2ee15a80ec6fce3ff14555cfb9fa"], "statement_hash": "f8dc2f0ce5110082402165337d8c1eeffa71d74aa4eabd4e17399f74f382bbd7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-6691c88c023c83cd", "migration": false}, {"id": "14.0-59252a3802cfd462", "cves": [], "html": "<p>\u589e\u52a0\u8df3\u8fc7 <acronym>TOAST</acronym> \u8868\u6e05\u7406\u7684\u80fd\u529b\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/7cb3048f3\">\u00a7</a></p>\n<p><a href=\"/docs/14/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> \u73b0\u5728\u6709\u4e00\u4e2a <code>PROCESS_TOAST</code> \u9009\u9879\uff0c\u53ef\u8bbe\u7f6e\u4e3a false \u4ee5\u7981\u7528 <acronym>TOAST</acronym> \u5904\u7406\uff0c\u800c<a href=\"/docs/14/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a>\u6709\u4e00\u4e2a <code>--no-process-toast</code> \u9009\u9879\u3002</p>", "text": "\u589e\u52a0\u8df3\u8fc7 TOAST \u8868\u6e05\u7406\u7684\u80fd\u529b\uff08Nathan Bossart\uff09\u00a7 VACUUM \u73b0\u5728\u6709\u4e00\u4e2a PROCESS_TOAST \u9009\u9879\uff0c\u53ef\u8bbe\u7f6e\u4e3a false \u4ee5\u7981\u7528 TOAST \u5904\u7406\uff0c\u800cvacuumdb\u6709\u4e00\u4e2a --no-process-toast \u9009\u9879\u3002", "title": "\u589e\u52a0\u8df3\u8fc7 TOAST \u8868\u6e05\u7406\u7684\u80fd\u529b", "commits": ["7cb3048f3"], "section": "\u670d\u52a1\u5668 / \u6e05\u7406", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-1", "source_hash": "a147db5bf23f91f4b6735a5cf034626100b5c216dc0494260175581649020749", "section_path": ["\u670d\u52a1\u5668", "\u6e05\u7406"], "commit_groups": [["7cb3048f3"]], "identity_text": "Add ability to skip vacuuming of TOAST tables (Nathan Bossart) VACUUM now has a PROCESS_TOAST option which can be set to false to disable TOAST processing, and vacuumdb has a --no-process-toast option.", "commit_aliases": ["7cb3048f3"], "source_commits": ["7cb3048f3"], "source_entry_id": "14.0/changes/014", "db_id": "265fc459188e9b047bcec4c44650c0db", "patch_ids": ["ac8c91d21f491c247b60191c7c1271a1"], "statement_hash": "e1b012c3c98690dee24c5092e02409228c7b482779aebd4ee0908b1f1e86150b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-59252a3802cfd462", "migration": false}, {"id": "14.0-b109489995fbaccb", "cves": [], "html": "<p>\u4f7f <a href=\"/docs/14/sql-copy.html\" title=\"COPY\"><code>COPY FREEZE</code></a> \u9002\u5f53\u5730\u66f4\u65b0\u9875\u9762\u53ef\u89c1\u6027\u4f4d\uff08Anastasia Lubennikova\uff0cPavan Deolasee\uff0cJeff Janes\uff09<a href=\"https://postgr.es/c/7db0cd214\">\u00a7</a></p>", "text": "\u4f7f COPY FREEZE \u9002\u5f53\u5730\u66f4\u65b0\u9875\u9762\u53ef\u89c1\u6027\u4f4d\uff08Anastasia Lubennikova\uff0cPavan Deolasee\uff0cJeff Janes\uff09\u00a7", "title": "\u4f7f COPY FREEZE \u9002\u5f53\u5730\u66f4\u65b0\u9875\u9762\u53ef\u89c1\u6027\u4f4d", "commits": ["7db0cd214"], "section": "\u670d\u52a1\u5668 / \u6e05\u7406", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-1", "source_hash": "37d09e9663156186775f2478ea65d6562f5053a00835020e0e428d740f78acaa", "section_path": ["\u670d\u52a1\u5668", "\u6e05\u7406"], "commit_groups": [["7db0cd214"]], "identity_text": "Have COPY FREEZE appropriately update page visibility bits (Anastasia Lubennikova, Pavan Deolasee, Jeff Janes)", "commit_aliases": ["7db0cd214"], "source_commits": ["7db0cd214"], "source_entry_id": "14.0/changes/015", "db_id": "c20c62a17959343fe73dd74e2ce5f07d", "patch_ids": ["c79848c7fa5c541f2658ead62d453b9d"], "statement_hash": "90f7582c841128fce0a6e2b31b08bb1e2281d7559c947b5d471ae332fa1b850e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-b109489995fbaccb", "migration": false}, {"id": "14.0-c7d3d6f0f9b45136", "cves": [], "html": "<p>\u5f53\u8868\u63a5\u8fd1 xid \u6216 multixact \u56de\u5377\u65f6\uff0c\u4f7f vacuum \u64cd\u4f5c\u66f4\u52a0\u79ef\u6781\uff08Masahiko Sawada\uff0cPeter Geoghegan\uff09<a href=\"https://postgr.es/c/1e55e7d17\">\u00a7</a></p>\n<p>\u8fd9\u7531<a href=\"/docs/14/runtime-config-client.html#GUC-VACUUM-FAILSAFE-AGE\">vacuum_failsafe_age</a>\u548c<a href=\"/docs/14/runtime-config-client.html#GUC-VACUUM-MULTIXACT-FAILSAFE-AGE\">vacuum_multixact_failsafe_age</a>\u63a7\u5236\u3002</p>", "text": "\u5f53\u8868\u63a5\u8fd1 xid \u6216 multixact \u56de\u5377\u65f6\uff0c\u4f7f vacuum \u64cd\u4f5c\u66f4\u52a0\u79ef\u6781\uff08Masahiko Sawada\uff0cPeter Geoghegan\uff09\u00a7 \u8fd9\u7531vacuum_failsafe_age\u548cvacuum_multixact_failsafe_age\u63a7\u5236\u3002", "title": "\u5f53\u8868\u63a5\u8fd1 xid \u6216 multixact \u56de\u5377\u65f6\uff0c\u4f7f vacuum \u64cd\u4f5c\u66f4\u52a0\u79ef\u6781", "commits": ["1e55e7d17"], "section": "\u670d\u52a1\u5668 / \u6e05\u7406", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-1", "source_hash": "99e324328886adc51ea298a89ea69445029d54804773accc70b5c12d14dd893d", "section_path": ["\u670d\u52a1\u5668", "\u6e05\u7406"], "commit_groups": [["1e55e7d17"]], "identity_text": "Cause vacuum operations to be more aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan) This is controlled by guc-vacuum-failsafe-age and guc-vacuum-multixact-failsafe-age .", "commit_aliases": ["1e55e7d17"], "source_commits": ["1e55e7d17"], "source_entry_id": "14.0/changes/016", "db_id": "38821d36552837fee8be43e9c2b5109e", "patch_ids": ["a691f25f6b748dcd5dbb4f479fa2a3ee"], "statement_hash": "b3e78a4c45f0865431b66173d087ebe24607970ba92695dc9a00120f9553bc87", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-c7d3d6f0f9b45136", "migration": false}, {"id": "14.0-ac81e43ddf1ae5ea", "cves": [], "html": "<p>\u589e\u52a0\u4e8b\u52a1 ID \u548c\u591a\u4e8b\u52a1\u56de\u5377\u4e4b\u524d\u7684\u8b66\u544a\u65f6\u95f4\u548c\u786c\u9650\u5236\uff08Noah Misch\uff09<a href=\"https://postgr.es/c/cd5e82256\">\u00a7</a></p>\n<p>\u8fd9\u5e94\u8be5\u51cf\u5c11\u5728\u672a\u53d1\u51fa\u56de\u5377\u8b66\u544a\u7684\u60c5\u51b5\u4e0b\u53d1\u751f\u6545\u969c\u7684\u53ef\u80fd\u6027\u3002</p>", "text": "\u589e\u52a0\u4e8b\u52a1 ID \u548c\u591a\u4e8b\u52a1\u56de\u5377\u4e4b\u524d\u7684\u8b66\u544a\u65f6\u95f4\u548c\u786c\u9650\u5236\uff08Noah Misch\uff09\u00a7 \u8fd9\u5e94\u8be5\u51cf\u5c11\u5728\u672a\u53d1\u51fa\u56de\u5377\u8b66\u544a\u7684\u60c5\u51b5\u4e0b\u53d1\u751f\u6545\u969c\u7684\u53ef\u80fd\u6027\u3002", "title": "\u589e\u52a0\u4e8b\u52a1 ID \u548c\u591a\u4e8b\u52a1\u56de\u5377\u4e4b\u524d\u7684\u8b66\u544a\u65f6\u95f4\u548c\u786c\u9650\u5236", "commits": ["cd5e82256"], "section": "\u670d\u52a1\u5668 / \u6e05\u7406", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-1", "source_hash": "17ec33da000d0b5070f735a555514364e59b2adb3695af1c3da5897a7601ce38", "section_path": ["\u670d\u52a1\u5668", "\u6e05\u7406"], "commit_groups": [["cd5e82256"]], "identity_text": "Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch) This should reduce the possibility of failures that occur without having issued warnings about wraparound.", "commit_aliases": ["cd5e82256"], "source_commits": ["cd5e82256"], "source_entry_id": "14.0/changes/017", "db_id": "36b7169ab381fedb50ef7455a70c04d5", "patch_ids": ["d4aa577c6ac90cf8b3b00ab8424f9884"], "statement_hash": "5bf76e0938bf46ab86ae704850a242e10f1bb66b1831d156660701ecccaace9f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-ac81e43ddf1ae5ea", "migration": false}, {"id": "14.0-0d4f510be52bd455", "cves": [], "html": "<p>\u5728<a href=\"/docs/14/runtime-config-logging.html#GUC-LOG-AUTOVACUUM-MIN-DURATION\">autovacuum \u65e5\u5fd7\u8f93\u51fa</a>\u4e2d\u589e\u52a0\u6bcf\u7d22\u5f15\u4fe1\u606f\uff08Masahiko Sawada\uff09<a href=\"https://postgr.es/c/5aed6a1fc\">\u00a7</a></p>", "text": "\u5728autovacuum \u65e5\u5fd7\u8f93\u51fa\u4e2d\u589e\u52a0\u6bcf\u7d22\u5f15\u4fe1\u606f\uff08Masahiko Sawada\uff09\u00a7", "title": "\u5728autovacuum \u65e5\u5fd7\u8f93\u51fa\u4e2d\u589e\u52a0\u6bcf\u7d22\u5f15\u4fe1\u606f", "commits": ["5aed6a1fc"], "section": "\u670d\u52a1\u5668 / \u6e05\u7406", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-1", "source_hash": "757f23f69196f316939bdd8edc53742e778b037b66714a1eb3ad2398707c4aaf", "section_path": ["\u670d\u52a1\u5668", "\u6e05\u7406"], "commit_groups": [["5aed6a1fc"]], "identity_text": "Add per-index information to autovacuum logging output (Masahiko Sawada)", "commit_aliases": ["5aed6a1fc"], "source_commits": ["5aed6a1fc"], "source_entry_id": "14.0/changes/018", "db_id": "4147b6ee8c43efa5d7b0e3a68e8175aa", "patch_ids": ["297356640b1e55ce0b956460c38a88d3"], "statement_hash": "db11a7bb7a4fe49f720d12554845a41884b642ffe8804c8cefe12706edc59c71", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-0d4f510be52bd455", "migration": false}, {"id": "14.0-7fec244c74ccf196", "cves": [], "html": "<p>\u6539\u8fdb\u5177\u6709\u8bb8\u591a\u5206\u533a\u7684\u5206\u533a\u8868\u4e0a\u66f4\u65b0\u548c\u5220\u9664\u64cd\u4f5c\u7684\u6027\u80fd\uff08Amit Langote\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/86dc90056\">\u00a7</a> <a href=\"https://postgr.es/c/a1115fa07\">\u00a7</a> <a href=\"https://postgr.es/c/c5b7ba4e6\">\u00a7</a></p>\n<p>\u6b64\u66f4\u6539\u5927\u5927\u51cf\u5c11\u4e86\u6b64\u7c7b\u60c5\u51b5\u4e0b\u89c4\u5212\u5668\u7684\u5f00\u9500\uff0c\u5e76\u4e14\u8fd8\u5141\u8bb8\u5206\u533a\u8868\u4e0a\u7684\u66f4\u65b0/\u5220\u9664\u4f7f\u7528\u6267\u884c\u65f6\u5206\u533a\u526a\u679d\u3002</p>", "text": "\u6539\u8fdb\u5177\u6709\u8bb8\u591a\u5206\u533a\u7684\u5206\u533a\u8868\u4e0a\u66f4\u65b0\u548c\u5220\u9664\u64cd\u4f5c\u7684\u6027\u80fd\uff08Amit Langote\uff0cTom Lane\uff09\u00a7 \u00a7 \u00a7 \u6b64\u66f4\u6539\u5927\u5927\u51cf\u5c11\u4e86\u6b64\u7c7b\u60c5\u51b5\u4e0b\u89c4\u5212\u5668\u7684\u5f00\u9500\uff0c\u5e76\u4e14\u8fd8\u5141\u8bb8\u5206\u533a\u8868\u4e0a\u7684\u66f4\u65b0/\u5220\u9664\u4f7f\u7528\u6267\u884c\u65f6\u5206\u533a\u526a\u679d\u3002", "title": "\u6539\u8fdb\u5177\u6709\u8bb8\u591a\u5206\u533a\u7684\u5206\u533a\u8868\u4e0a\u66f4\u65b0\u548c\u5220\u9664\u64cd\u4f5c\u7684\u6027\u80fd", "commits": ["86dc90056", "a1115fa07", "c5b7ba4e6"], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-2", "source_hash": "bb349cd2d9fa02d5fc76114c907fe8698efd8687b02bceaa85cf104da9b0e906", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["86dc90056"], ["a1115fa07"], ["c5b7ba4e6"]], "identity_text": "Improve the performance of updates and deletes on partitioned tables with many partitions (Amit Langote, Tom Lane) This change greatly reduces the planner's overhead for such cases, and also allows updates/deletes on partitioned tables to use execution-time partition pruning.", "commit_aliases": ["86dc90056", "a1115fa07", "c5b7ba4e6"], "source_commits": ["86dc90056", "a1115fa07", "c5b7ba4e6"], "source_entry_id": "14.0/changes/019", "db_id": "87280cbc3402955bf6dc1ba16e6d429e", "patch_ids": ["7002902cc06c0c6789ed50713737211d", "92b343055ff588bca5fd90e8a5a6d712", "c474888064fe0cebce46908133ab78d2"], "statement_hash": "da8fdc10661856e3452ea117e058207e22185f1017ee9b2d38ab7552b07833f9", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-7fec244c74ccf196", "migration": false}, {"id": "14.0-5b06b745248c1b14", "cves": [], "html": "<p>\u5141\u8bb8\u4ee5\u975e\u963b\u585e\u65b9\u5f0f<a href=\"/docs/14/sql-altertable.html\" title=\"ALTER TABLE\">\u5206\u79bb</a>\u5206\u533a\uff08\u00c1lvaro Herrera\uff09<a href=\"https://postgr.es/c/71f4c8c6f\">\u00a7</a></p>\n<p>\u8bed\u6cd5\u4e3a <code>ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY</code>\uff0c\u548c <code>FINALIZE</code>\u3002</p>", "text": "\u5141\u8bb8\u4ee5\u975e\u963b\u585e\u65b9\u5f0f\u5206\u79bb\u5206\u533a\uff08\u00c1lvaro Herrera\uff09\u00a7 \u8bed\u6cd5\u4e3a ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY\uff0c\u548c FINALIZE\u3002", "title": "\u5141\u8bb8\u4ee5\u975e\u963b\u585e\u65b9\u5f0f\u5206\u79bb\u5206\u533a", "commits": ["71f4c8c6f"], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-2", "source_hash": "2fea5c0c27db9199dcca7428cba7469d318e650f889406e4194ca8165448a41a", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["71f4c8c6f"]], "identity_text": "Allow partitions to be detached in a non-blocking manner (\u00c1lvaro Herrera) The syntax is ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY, and FINALIZE.", "commit_aliases": ["71f4c8c6f"], "source_commits": ["71f4c8c6f"], "source_entry_id": "14.0/changes/020", "db_id": "6d0954d9e3f3988e898a11182e5223f0", "patch_ids": ["e08e854ba49973e582e5c2f26763d6f2"], "statement_hash": "5edcece495690da08e850f56d68fd9946d7d2bab39f6ad4422ed58d37f97518c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-5b06b745248c1b14", "migration": false}, {"id": "14.0-1450ddc12853a7ee", "cves": [], "html": "<p>\u5ffd\u7565\u5206\u533a\u8fb9\u754c\u503c\u4e2d\u7684 <code>COLLATE</code> \u5b50\u53e5\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/2dfa3fea8\">\u00a7</a></p>\n<p>\u4ee5\u524d\u4efb\u4f55\u6b64\u7c7b\u5b50\u53e5\u5fc5\u987b\u5339\u914d\u5206\u533a\u952e\u7684\u6392\u5e8f\u89c4\u5219\uff1b\u4f46\u66f4\u4e00\u81f4\u7684\u505a\u6cd5\u662f\u8ba4\u4e3a\u5b83\u4f1a\u81ea\u52a8\u88ab\u5f3a\u5236\u8f6c\u6362\u4e3a\u5206\u533a\u952e\u7684\u6392\u5e8f\u89c4\u5219\u3002</p>", "text": "\u5ffd\u7565\u5206\u533a\u8fb9\u754c\u503c\u4e2d\u7684 COLLATE \u5b50\u53e5\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\u4efb\u4f55\u6b64\u7c7b\u5b50\u53e5\u5fc5\u987b\u5339\u914d\u5206\u533a\u952e\u7684\u6392\u5e8f\u89c4\u5219\uff1b\u4f46\u66f4\u4e00\u81f4\u7684\u505a\u6cd5\u662f\u8ba4\u4e3a\u5b83\u4f1a\u81ea\u52a8\u88ab\u5f3a\u5236\u8f6c\u6362\u4e3a\u5206\u533a\u952e\u7684\u6392\u5e8f\u89c4\u5219\u3002", "title": "\u5ffd\u7565\u5206\u533a\u8fb9\u754c\u503c\u4e2d\u7684 COLLATE \u5b50\u53e5", "commits": ["2dfa3fea8"], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-2", "source_hash": "509524969f1406938784dad4aae16e7c092fd7d7ca243218705d5aabcf9d7f30", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["2dfa3fea8"]], "identity_text": "Ignore COLLATE clauses in partition boundary values (Tom Lane) Previously any such clause had to match the collation of the partition key; but it's more consistent to consider that it's automatically coerced to the collation of the partition key.", "commit_aliases": ["2dfa3fea8"], "source_commits": ["2dfa3fea8"], "source_entry_id": "14.0/changes/021", "db_id": "3ec86b7c53023b80ecc13bcfc36b790c", "patch_ids": ["27dd089c1a6b61f0194799531999873d"], "statement_hash": "3c5b8490b2a1b2bcccf2736616edf744afbd239f97bbc82ccf2f5272b675cac0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-1450ddc12853a7ee", "migration": false}, {"id": "14.0-e4aff2aedb3e5af0", "cves": [], "html": "<p>\u5141\u8bb8 B-\u6811\u7d22\u5f15\u6dfb\u52a0\u64cd\u4f5c<a href=\"/docs/14/btree-implementation.html#BTREE-DELETION\" title=\"64.4.2.\u00a0\u81ea\u5e95\u5411\u4e0a\u7d22\u5f15\u5220\u9664\">\u79fb\u9664\u8fc7\u671f\u7d22\u5f15\u6761\u76ee</a>\u4ee5\u9632\u6b62\u9875\u9762\u5206\u88c2\uff08Peter Geoghegan\uff09<a href=\"https://postgr.es/c/9dc718bdf\">\u00a7</a> <a href=\"https://postgr.es/c/d168b6668\">\u00a7</a></p>\n<p>\u8fd9\u5bf9\u4e8e\u51cf\u5c11\u7d22\u5f15\u5217\u9891\u7e41\u66f4\u65b0\u7684\u8868\u7684\u7d22\u5f15\u81a8\u80c0\u7279\u522b\u6709\u7528\u3002</p>", "text": "\u5141\u8bb8 B-\u6811\u7d22\u5f15\u6dfb\u52a0\u64cd\u4f5c\u79fb\u9664\u8fc7\u671f\u7d22\u5f15\u6761\u76ee\u4ee5\u9632\u6b62\u9875\u9762\u5206\u88c2\uff08Peter Geoghegan\uff09\u00a7 \u00a7 \u8fd9\u5bf9\u4e8e\u51cf\u5c11\u7d22\u5f15\u5217\u9891\u7e41\u66f4\u65b0\u7684\u8868\u7684\u7d22\u5f15\u81a8\u80c0\u7279\u522b\u6709\u7528\u3002", "title": "\u5141\u8bb8 B-\u6811\u7d22\u5f15\u6dfb\u52a0\u64cd\u4f5c\u79fb\u9664\u8fc7\u671f\u7d22\u5f15\u6761\u76ee\u4ee5\u9632\u6b62\u9875\u9762\u5206\u88c2", "commits": ["9dc718bdf", "d168b6668"], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-3", "source_hash": "37c435ebb98c0f7b4d8e8ba08edf9047d67c671cd278c37e9a253edfb3dcd032", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["9dc718bdf"], ["d168b6668"]], "identity_text": "Allow btree index additions to remove expired index entries to prevent page splits (Peter Geoghegan) This is particularly helpful for reducing index bloat on tables whose indexed columns are frequently updated.", "commit_aliases": ["9dc718bdf", "d168b6668"], "source_commits": ["9dc718bdf", "d168b6668"], "source_entry_id": "14.0/changes/022", "db_id": "6c42f4ac324b00fc026c401ec482c147", "patch_ids": ["0b97c9d0405a5f264efeac6d358fa115", "925d4888b6fd7820d89ea2a58493eb7e"], "statement_hash": "a36f8a5992dbee50672461d73d3ebbee21f84d127870c62eb384c39da115dc35", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-e4aff2aedb3e5af0", "migration": false}, {"id": "14.0-9c42914d39a2ce16", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/14/brin.html\" title=\"\u7b2c\u00a068\u00a0\u7ae0\u00a0BRIN \u7d22\u5f15\"><acronym>BRIN</acronym></a> \u7d22\u5f15\u4e3a\u6bcf\u4e2a\u8303\u56f4\u8bb0\u5f55\u591a\u4e2a\u6700\u5c0f/\u6700\u5927\u503c\uff08Tomas Vondra\uff09<a href=\"https://postgr.es/c/ab596105b\">\u00a7</a></p>\n<p>\u5982\u679c\u6bcf\u4e2a\u9875\u9762\u8303\u56f4\u4e2d\u6709\u591a\u7ec4\u503c\uff0c\u8fd9\u4f1a\u5f88\u6709\u7528\u3002</p>", "text": "\u5141\u8bb8 BRIN \u7d22\u5f15\u4e3a\u6bcf\u4e2a\u8303\u56f4\u8bb0\u5f55\u591a\u4e2a\u6700\u5c0f/\u6700\u5927\u503c\uff08Tomas Vondra\uff09\u00a7 \u5982\u679c\u6bcf\u4e2a\u9875\u9762\u8303\u56f4\u4e2d\u6709\u591a\u7ec4\u503c\uff0c\u8fd9\u4f1a\u5f88\u6709\u7528\u3002", "title": "\u5141\u8bb8 BRIN \u7d22\u5f15\u4e3a\u6bcf\u4e2a\u8303\u56f4\u8bb0\u5f55\u591a\u4e2a\u6700\u5c0f/\u6700\u5927\u503c", "commits": ["ab596105b"], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-3", "source_hash": "3d5e2e5e36f0f2470ff325a360419b897da1a5eb419eaa75fd634a87e2a73725", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["ab596105b"]], "identity_text": "Allow BRIN indexes to record multiple min/max values per range (Tomas Vondra) This is useful if there are groups of values in each page range.", "commit_aliases": ["ab596105b"], "source_commits": ["ab596105b"], "source_entry_id": "14.0/changes/023", "db_id": "100451d3734871d41a926744f6024c91", "patch_ids": ["47401334033bb3bbf08d77f68fc21b64"], "statement_hash": "bf24348a110015de71e69798a7cbfe51ceae018f5612a6ea7880b04b10137d2e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-9c42914d39a2ce16", "migration": false}, {"id": "14.0-ff502b88b65cf323", "cves": [], "html": "<p>\u5141\u8bb8 <acronym>BRIN</acronym> \u7d22\u5f15\u4f7f\u7528\u5e03\u9686\u8fc7\u6ee4\u5668\uff08Tomas Vondra\uff09<a href=\"https://postgr.es/c/77b88cd1b\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8 <acronym>BRIN</acronym> \u7d22\u5f15\u5728\u6570\u636e\u5728\u5806\u4e2d\u4e0d\u592a\u96c6\u4e2d\u7684\u60c5\u51b5\u4e0b\u6709\u6548\u4f7f\u7528\u3002</p>", "text": "\u5141\u8bb8 BRIN \u7d22\u5f15\u4f7f\u7528\u5e03\u9686\u8fc7\u6ee4\u5668\uff08Tomas Vondra\uff09\u00a7 \u8fd9\u5141\u8bb8 BRIN \u7d22\u5f15\u5728\u6570\u636e\u5728\u5806\u4e2d\u4e0d\u592a\u96c6\u4e2d\u7684\u60c5\u51b5\u4e0b\u6709\u6548\u4f7f\u7528\u3002", "title": "\u5141\u8bb8 BRIN \u7d22\u5f15\u4f7f\u7528\u5e03\u9686\u8fc7\u6ee4\u5668", "commits": ["77b88cd1b"], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-3", "source_hash": "f4db715c518a257aab6e3a51bd469436bbc3ee06db22790b4cfa06bd6cf5797d", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["77b88cd1b"]], "identity_text": "Allow BRIN indexes to use bloom filters (Tomas Vondra) This allows BRIN indexes to be used effectively with data that is not well-localized in the heap.", "commit_aliases": ["77b88cd1b"], "source_commits": ["77b88cd1b"], "source_entry_id": "14.0/changes/024", "db_id": "5547b4aa0a249906cb102dfacd7e1e9a", "patch_ids": ["361d989f0dc9e6b9fa00be9f7840520d"], "statement_hash": "7a5aa6ba84f59d34cecb50bd2df2846788257284048ff467ed01729238fd876d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-ff502b88b65cf323", "migration": false}, {"id": "14.0-bb107c609f5f1e9f", "cves": [], "html": "<p>\u5141\u8bb8\u67d0\u4e9b <a href=\"/docs/14/gist.html\" title=\"\u7b2c\u00a065\u00a0\u7ae0\u00a0GiST \u7d22\u5f15\">GiST</a> \u7d22\u5f15\u901a\u8fc7\u9884\u6392\u5e8f\u6570\u636e\u6765\u6784\u5efa\uff08Andrey Borodin\uff09<a href=\"https://postgr.es/c/16fa9b2b3\">\u00a7</a></p>\n<p>\u9884\u6392\u5e8f\u81ea\u52a8\u8fdb\u884c\uff0c\u5141\u8bb8\u66f4\u5feb\u7684\u7d22\u5f15\u521b\u5efa\u548c\u66f4\u5c0f\u7684\u7d22\u5f15\u3002</p>", "text": "\u5141\u8bb8\u67d0\u4e9b GiST \u7d22\u5f15\u901a\u8fc7\u9884\u6392\u5e8f\u6570\u636e\u6765\u6784\u5efa\uff08Andrey Borodin\uff09\u00a7 \u9884\u6392\u5e8f\u81ea\u52a8\u8fdb\u884c\uff0c\u5141\u8bb8\u66f4\u5feb\u7684\u7d22\u5f15\u521b\u5efa\u548c\u66f4\u5c0f\u7684\u7d22\u5f15\u3002", "title": "\u5141\u8bb8\u67d0\u4e9b GiST \u7d22\u5f15\u901a\u8fc7\u9884\u6392\u5e8f\u6570\u636e\u6765\u6784\u5efa", "commits": ["16fa9b2b3"], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-3", "source_hash": "e16aeb0911ac58fc12e83f6112c405bdee1cbdfe7dde2fd1611422c9b80f4a3f", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["16fa9b2b3"]], "identity_text": "Allow some GiST indexes to be built by presorting the data (Andrey Borodin) Presorting happens automatically and allows for faster index creation and smaller indexes.", "commit_aliases": ["16fa9b2b3"], "source_commits": ["16fa9b2b3"], "source_entry_id": "14.0/changes/025", "db_id": "802c7d515c214d92c0c0e820ed339435", "patch_ids": ["dadcdaf5ab32c9a6959c70f2b7bb513e"], "statement_hash": "bacb06f3d1636179cf16e8aeea22a62a96170d8c33e40d06186a4aaac7d22a2f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-bb107c609f5f1e9f", "migration": false}, {"id": "14.0-53f36225b9d696d0", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/14/spgist.html\" title=\"\u7b2c\u00a066\u00a0\u7ae0\u00a0SP-GiST \u7d22\u5f15\">SP-GiST</a> \u7d22\u5f15\u5305\u542b <code>INCLUDE</code> \u5217\uff08Pavel Borisov\uff09<a href=\"https://postgr.es/c/09c1c6ab4\">\u00a7</a></p>", "text": "\u5141\u8bb8 SP-GiST \u7d22\u5f15\u5305\u542b INCLUDE \u5217\uff08Pavel Borisov\uff09\u00a7", "title": "\u5141\u8bb8 SP-GiST \u7d22\u5f15\u5305\u542b INCLUDE \u5217", "commits": ["09c1c6ab4"], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-3", "source_hash": "ba587c36bd0d1f447255a645e71655b4d42c5158eac02d3d7af367d8c0d27963", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["09c1c6ab4"]], "identity_text": "Allow SP-GiST indexes to contain INCLUDE'd columns (Pavel Borisov)", "commit_aliases": ["09c1c6ab4"], "source_commits": ["09c1c6ab4"], "source_entry_id": "14.0/changes/026", "db_id": "269c2d2c0940fa25937ede4f97cf5d29", "patch_ids": ["cf07700efc5c72d7d98054f7442f2263"], "statement_hash": "7baeda213650066780bd11b32c6e9e3900fdc02d9d479a697770110a74a6bc4e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-53f36225b9d696d0", "migration": false}, {"id": "14.0-90e5c03cd586224e", "cves": [], "html": "<p>\u5141\u8bb8\u5bf9\u5305\u542b\u8bb8\u591a\u5e38\u91cf\u7684 <code>IN</code> \u5b50\u53e5\u4f7f\u7528 hash \u67e5\u627e\uff08James Coleman\uff0cDavid Rowley\uff09<a href=\"https://postgr.es/c/50e17ad28\">\u00a7</a></p>\n<p>\u4ee5\u524d\u4ee3\u7801\u603b\u662f\u987a\u5e8f\u626b\u63cf\u503c\u5217\u8868\u3002</p>", "text": "\u5141\u8bb8\u5bf9\u5305\u542b\u8bb8\u591a\u5e38\u91cf\u7684 IN \u5b50\u53e5\u4f7f\u7528 hash \u67e5\u627e\uff08James Coleman\uff0cDavid Rowley\uff09\u00a7 \u4ee5\u524d\u4ee3\u7801\u603b\u662f\u987a\u5e8f\u626b\u63cf\u503c\u5217\u8868\u3002", "title": "\u5141\u8bb8\u5bf9\u5305\u542b\u8bb8\u591a\u5e38\u91cf\u7684 IN \u5b50\u53e5\u4f7f\u7528 hash \u67e5\u627e", "commits": ["50e17ad28"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-4", "source_hash": "7fe9d9cd6fb3a5f2ac2e679627f86dc8f4bd795645f3cf24fed9663de6ceaa63", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["50e17ad28"]], "identity_text": "Allow hash lookup for IN clauses with many constants (James Coleman, David Rowley) Previously the code always sequentially scanned the list of values.", "commit_aliases": ["50e17ad28"], "source_commits": ["50e17ad28"], "source_entry_id": "14.0/changes/027", "db_id": "7ca6ebac03cb187d8ed837b4f46c0e1b", "patch_ids": ["b1b2b8064d51829878c86f19b5527657"], "statement_hash": "a31239b0c6757658b16c4fef056579e4446569e215c564869dc74d41b19874ba", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-90e5c03cd586224e", "migration": false}, {"id": "14.0-aad5c8b08a62daab", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/14/planner-stats.html#PLANNER-STATS-EXTENDED\" title=\"14.2.2.\u00a0\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\">\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f</a>\u53ef\u7528\u4e8e <code>OR</code> \u5b50\u53e5\u4f30\u8ba1\u7684\u573a\u666f\u6570\u91cf\uff08Tomas Vondra\uff0cDean Rasheed\uff09<a href=\"https://postgr.es/c/25a9e54d2\">\u00a7</a> <a href=\"https://postgr.es/c/88b0898fe\">\u00a7</a> <a href=\"https://postgr.es/c/4f5760d4a\">\u00a7</a></p>", "text": "\u589e\u52a0\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\u53ef\u7528\u4e8e OR \u5b50\u53e5\u4f30\u8ba1\u7684\u573a\u666f\u6570\u91cf\uff08Tomas Vondra\uff0cDean Rasheed\uff09\u00a7 \u00a7 \u00a7", "title": "\u589e\u52a0\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\u53ef\u7528\u4e8e OR \u5b50\u53e5\u4f30\u8ba1\u7684\u573a\u666f\u6570\u91cf", "commits": ["25a9e54d2", "4f5760d4a", "88b0898fe"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-4", "source_hash": "b8b47c642c13a1b92f483bdc92948a32f8a8b27d260c4fcd91ec9717586eadc7", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["25a9e54d2"], ["4f5760d4a"], ["88b0898fe"]], "identity_text": "Increase the number of places extended statistics can be used for OR clause estimation (Tomas Vondra, Dean Rasheed)", "commit_aliases": ["25a9e54d2", "4f5760d4a", "88b0898fe"], "source_commits": ["25a9e54d2", "4f5760d4a", "88b0898fe"], "source_entry_id": "14.0/changes/028", "db_id": "af7efdbad5858a3dfee700eea9e7dfc2", "patch_ids": ["9a1cce8c2356e05ab681a3da3935202e", "c91c3d63f296e3edf6fe04fd9b543a1a", "fe01df3f67ae910a02dbbbd0717b0d34"], "statement_hash": "c796c5eb89eaae772c3806ddd3a7560128ce712eefee9ec0fa1cde4c4c44a12c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-aad5c8b08a62daab", "migration": false}, {"id": "14.0-a78fe085bda141bd", "cves": [], "html": "<p>\u5141\u8bb8\u5bf9\u8868\u8fbe\u5f0f\u521b\u5efa\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\uff08Tomas Vondra\uff09<a href=\"https://postgr.es/c/a4d75c86b\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u5bf9\u4e00\u7ec4\u8868\u8fbe\u5f0f\u548c\u5217\u521b\u5efa\u7edf\u8ba1\u4fe1\u606f\uff0c\u800c\u4e0d\u662f\u50cf\u4ee5\u524d\u90a3\u6837\u53ea\u80fd\u9488\u5bf9\u5217\u3002\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/14/view-pg-stats-ext-exprs.html\" title=\"52.91.\u00a0pg_stats_ext_exprs\"><code>pg_stats_ext_exprs</code></a> \u62a5\u544a\u6b64\u7c7b\u7edf\u8ba1\u4fe1\u606f\u3002</p>", "text": "\u5141\u8bb8\u5bf9\u8868\u8fbe\u5f0f\u521b\u5efa\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\uff08Tomas Vondra\uff09\u00a7 \u8fd9\u5141\u8bb8\u5bf9\u4e00\u7ec4\u8868\u8fbe\u5f0f\u548c\u5217\u521b\u5efa\u7edf\u8ba1\u4fe1\u606f\uff0c\u800c\u4e0d\u662f\u50cf\u4ee5\u524d\u90a3\u6837\u53ea\u80fd\u9488\u5bf9\u5217\u3002\u7cfb\u7edf\u89c6\u56fe pg_stats_ext_exprs \u62a5\u544a\u6b64\u7c7b\u7edf\u8ba1\u4fe1\u606f\u3002", "title": "\u5141\u8bb8\u5bf9\u8868\u8fbe\u5f0f\u521b\u5efa\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f", "commits": ["a4d75c86b"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-4", "source_hash": "a737ffd60f210e3439889636aa41962174ca120c3a34bf37386221141e7d4417", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["a4d75c86b"]], "identity_text": "Allow extended statistics on expressions (Tomas Vondra) This allows statistics on a group of expressions and columns, rather than only columns like previously. System view pg_stats_ext_exprs reports such statistics.", "commit_aliases": ["a4d75c86b"], "source_commits": ["a4d75c86b"], "source_entry_id": "14.0/changes/029", "db_id": "a84c47a487bc569cfce87934f74d4fc9", "patch_ids": ["fc03f6253c57b9e06f77ef1e3fa4337a"], "statement_hash": "ff3b5481d4b03b862cace2fb805ed403a6008967d31ed931ca2cd5f69642fa42", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-a78fe085bda141bd", "migration": false}, {"id": "14.0-efe695978378e7de", "cves": [], "html": "<p>\u5141\u8bb8\u5bf9 <a href=\"/docs/14/datatype-oid.html#DATATYPE-OID-TABLE\" title=\"\u8868\u00a08.26.\u00a0\u5bf9\u8c61\u6807\u8bc6\u7b26\u7c7b\u578b\"><code>TID</code></a> \u8303\u56f4\u8fdb\u884c\u9ad8\u6548\u7684\u5806\u626b\u63cf\uff08Edmund Horner\uff0cDavid Rowley\uff09<a href=\"https://postgr.es/c/bb437f995\">\u00a7</a></p>\n<p>\u4ee5\u524d\u975e\u7b49\u503c <code>TID</code> \u89c4\u8303\u9700\u8981\u987a\u5e8f\u626b\u63cf\u3002</p>", "text": "\u5141\u8bb8\u5bf9 TID \u8303\u56f4\u8fdb\u884c\u9ad8\u6548\u7684\u5806\u626b\u63cf\uff08Edmund Horner\uff0cDavid Rowley\uff09\u00a7 \u4ee5\u524d\u975e\u7b49\u503c TID \u89c4\u8303\u9700\u8981\u987a\u5e8f\u626b\u63cf\u3002", "title": "\u5141\u8bb8\u5bf9 TID \u8303\u56f4\u8fdb\u884c\u9ad8\u6548\u7684\u5806\u626b\u63cf", "commits": ["bb437f995"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-4", "source_hash": "beee79f8d794f745499ed834a8d1860a82d78f023b396b22a20bfef2f853a725", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["bb437f995"]], "identity_text": "Allow efficient heap scanning of a range of TIDs (Edmund Horner, David Rowley) Previously a sequential scan was required for non-equality TID specifications.", "commit_aliases": ["bb437f995"], "source_commits": ["bb437f995"], "source_entry_id": "14.0/changes/030", "db_id": "d6d1ff34f63d3e2881d85a967a1037d5", "patch_ids": ["83883f5982c3e425367ee6186348ddd3"], "statement_hash": "cbde75f3a56ae1820f8aed99e6e3edde8164b72daac2404da85f083bee9233e3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-efe695978378e7de", "migration": false}, {"id": "14.0-66da353aacd5c57e", "cves": [], "html": "<p>\u4fee\u590d <a href=\"/docs/14/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN CREATE TABLE AS</code></a> \u548c <code>EXPLAIN CREATE MATERIALIZED VIEW</code> \u4ee5\u9075\u5b88 <code>IF NOT EXISTS</code>\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/e665769e6\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u5982\u679c\u5bf9\u8c61\u5df2\u5b58\u5728\uff0c<code>EXPLAIN</code> \u4f1a\u5931\u8d25\u3002</p>", "text": "\u4fee\u590d EXPLAIN CREATE TABLE AS \u548c EXPLAIN CREATE MATERIALIZED VIEW \u4ee5\u9075\u5b88 IF NOT EXISTS\uff08Bharath Rupireddy\uff09\u00a7 \u4ee5\u524d\uff0c\u5982\u679c\u5bf9\u8c61\u5df2\u5b58\u5728\uff0cEXPLAIN \u4f1a\u5931\u8d25\u3002", "title": "\u4fee\u590d EXPLAIN CREATE TABLE AS \u548c EXPLAIN CREATE MATERIALIZED VIEW \u4ee5\u9075\u5b88 IF NOT EXISTS", "commits": ["e665769e6"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "bugfix", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-4", "source_hash": "6e4b7f4c4a8590442c21b77b0339cacec24aa59dde42e926aa2d3ce7539e688c", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["e665769e6"]], "identity_text": "Fix EXPLAIN CREATE TABLE AS and EXPLAIN CREATE MATERIALIZED VIEW to honor IF NOT EXISTS (Bharath Rupireddy) Previously, if the object already existed, EXPLAIN would fail.", "commit_aliases": ["e665769e6"], "source_commits": ["e665769e6"], "source_entry_id": "14.0/changes/031", "db_id": "00564d2b5bb7d7325f3cdc5d2abca385", "patch_ids": ["7acdc83a09895a5a0d4a648e881cf3d8"], "statement_hash": "f9f5b15912fbacd23afe5a66e3d47f4124f6a7aea4670b8c4b4aef9ff3c0f34a", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=14.0#14.0-66da353aacd5c57e", "migration": false}, {"id": "14.0-c2b1c2a13354b054", "cves": [], "html": "<p>\u5728\u5177\u6709\u8bb8\u591a CPU \u548c\u9ad8\u4f1a\u8bdd\u6570\u7684\u7cfb\u7edf\u4e0a\u63d0\u9ad8\u8ba1\u7b97 <acronym>MVCC</acronym> <a href=\"/docs/14/mvcc.html\" title=\"\u7b2c\u00a013\u00a0\u7ae0\u00a0\u5e76\u53d1\u63a7\u5236\">\u53ef\u89c1\u6027\u5feb\u7167</a>\u7684\u901f\u5ea6\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/dc7420c2c\">\u00a7</a> <a href=\"https://postgr.es/c/1f51c17c6\">\u00a7</a> <a href=\"https://postgr.es/c/941697c3c\">\u00a7</a> <a href=\"https://postgr.es/c/5788e258b\">\u00a7</a> <a href=\"https://postgr.es/c/73487a60f\">\u00a7</a> <a href=\"https://postgr.es/c/623a9ba79\">\u00a7</a></p>\n<p>\u8fd9\u4e5f\u63d0\u9ad8\u4e86\u6709\u8bb8\u591a\u7a7a\u95f2\u4f1a\u8bdd\u65f6\u7684\u6027\u80fd\u3002</p>", "text": "\u5728\u5177\u6709\u8bb8\u591a CPU \u548c\u9ad8\u4f1a\u8bdd\u6570\u7684\u7cfb\u7edf\u4e0a\u63d0\u9ad8\u8ba1\u7b97 MVCC \u53ef\u89c1\u6027\u5feb\u7167\u7684\u901f\u5ea6\uff08Andres Freund\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u8fd9\u4e5f\u63d0\u9ad8\u4e86\u6709\u8bb8\u591a\u7a7a\u95f2\u4f1a\u8bdd\u65f6\u7684\u6027\u80fd\u3002", "title": "\u5728\u5177\u6709\u8bb8\u591a CPU \u548c\u9ad8\u4f1a\u8bdd\u6570\u7684\u7cfb\u7edf\u4e0a\u63d0\u9ad8\u8ba1\u7b97 MVCC \u53ef\u89c1\u6027\u5feb\u7167\u7684\u901f\u5ea6", "commits": ["1f51c17c6", "5788e258b", "623a9ba79", "73487a60f", "941697c3c", "dc7420c2c"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-5", "source_hash": "be1a87afa59ba72f640470fe20097bf83b424494e1f4e43e94c707a0438ed886", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["1f51c17c6"], ["5788e258b"], ["623a9ba79"], ["73487a60f"], ["941697c3c"], ["dc7420c2c"]], "identity_text": "Improve the speed of computing MVCC visibility snapshots on systems with many CPUs and high session counts (Andres Freund) This also improves performance when there are many idle sessions.", "commit_aliases": ["1f51c17c6", "5788e258b", "623a9ba79", "73487a60f", "941697c3c", "dc7420c2c"], "source_commits": ["1f51c17c6", "5788e258b", "623a9ba79", "73487a60f", "941697c3c", "dc7420c2c"], "source_entry_id": "14.0/changes/032", "db_id": "9c9cd6f9a909edd8bea0b8ba4f0b304a", "patch_ids": ["1d872442ebf83be6faef1d252c629456", "278470079dd00c41c03fffbc8b6fe697", "32937d7ccfca3a13611ea293461da8c4", "3d6202c30080972f6e5cfa1f95cc1408", "3fcaf65f10a1c86b293a02aec07f7211", "5d4b6f0f51da6c2670fa03b150ddb904"], "statement_hash": "9201bab9f0364153d9b62ed7742fddc2e794ccb49d8b045c8156004441f40a55", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-c2b1c2a13354b054", "migration": false}, {"id": "14.0-799359f453ef9d4d", "cves": [], "html": "<p>\u589e\u52a0\u6267\u884c\u5668\u65b9\u6cd5\u4ee5\u7f13\u5b58\u5d4c\u5957\u5faa\u73af\u8fde\u63a5\u5185\u4fa7\u7684\u7ed3\u679c\uff08David Rowley\uff09<a href=\"https://postgr.es/c/9eacee2e6\">\u00a7</a></p>\n<p>\u5982\u679c\u4ec5\u68c0\u67e5\u5185\u4fa7\u7684\u4e00\u5c0f\u90e8\u5206\u884c\uff0c\u8fd9\u5f88\u6709\u7528\u3002\u53ef\u901a\u8fc7\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/14/runtime-config-query.html#GUC-ENABLE-MEMOIZE\">enable_memoize</a>\u7981\u7528\u3002</p>", "text": "\u589e\u52a0\u6267\u884c\u5668\u65b9\u6cd5\u4ee5\u7f13\u5b58\u5d4c\u5957\u5faa\u73af\u8fde\u63a5\u5185\u4fa7\u7684\u7ed3\u679c\uff08David Rowley\uff09\u00a7 \u5982\u679c\u4ec5\u68c0\u67e5\u5185\u4fa7\u7684\u4e00\u5c0f\u90e8\u5206\u884c\uff0c\u8fd9\u5f88\u6709\u7528\u3002\u53ef\u901a\u8fc7\u670d\u52a1\u5668\u53c2\u6570enable_memoize\u7981\u7528\u3002", "title": "\u589e\u52a0\u6267\u884c\u5668\u65b9\u6cd5\u4ee5\u7f13\u5b58\u5d4c\u5957\u5faa\u73af\u8fde\u63a5\u5185\u4fa7\u7684\u7ed3\u679c", "commits": ["9eacee2e6"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-5", "source_hash": "020a98bc95f56be190c73f59512e3b89ae47f535f84c3cca66c31b38b39a437f", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["9eacee2e6"]], "identity_text": "Add executor method to memoize results from the inner side of a nested-loop join (David Rowley) This is useful if only a small percentage of rows is checked on the inner side. It can be disabled via server parameter guc-enable-memoize .", "commit_aliases": ["9eacee2e6"], "source_commits": ["9eacee2e6"], "source_entry_id": "14.0/changes/033", "db_id": "8cddf1b5ae21cddefc40120ecd61c02c", "patch_ids": ["eee5e51c5b53bf2d37af98b30185dbef"], "statement_hash": "a82cf0e75e9fee0020b12359553afb583374ebc6702ffaaaaed6be7024a084e5", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-799359f453ef9d4d", "migration": false}, {"id": "14.0-d71bdb6d86ae9205", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/14/functions-window.html\" title=\"9.22.\u00a0\u7a97\u53e3\u51fd\u6570\">\u7a97\u53e3\u51fd\u6570</a>\u6267\u884c\u589e\u91cf\u6392\u5e8f\uff08David Rowley\uff09<a href=\"https://postgr.es/c/62e221e1c\">\u00a7</a></p>", "text": "\u5141\u8bb8\u7a97\u53e3\u51fd\u6570\u6267\u884c\u589e\u91cf\u6392\u5e8f\uff08David Rowley\uff09\u00a7", "title": "\u5141\u8bb8\u7a97\u53e3\u51fd\u6570\u6267\u884c\u589e\u91cf\u6392\u5e8f", "commits": ["62e221e1c"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-5", "source_hash": "7705a575aa69ab1734fc0da81a602cc2c02ca7f7b0e9b4ff9e984bbc4259c11d", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["62e221e1c"]], "identity_text": "Allow window functions to perform incremental sorts (David Rowley)", "commit_aliases": ["62e221e1c"], "source_commits": ["62e221e1c"], "source_entry_id": "14.0/changes/034", "db_id": "eaf4181723696bfa32db860ca47c109e", "patch_ids": ["47a1163205a01ac8d9713c7f1788b004"], "statement_hash": "4c4767541fa0b8434912ea71ca8359d661f6d22a3be2869a1ad21730bc3bc03c", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-d71bdb6d86ae9205", "migration": false}, {"id": "14.0-20efbfae915e2f5b", "cves": [], "html": "<p>\u6539\u8fdb\u5e76\u884c\u987a\u5e8f\u626b\u63cf\u7684 I/O \u6027\u80fd\uff08Thomas Munro\uff0cDavid Rowley\uff09<a href=\"https://postgr.es/c/56788d215\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7\u5c06\u5757\u5206\u7ec4\u5206\u914d\u7ed9<a href=\"/docs/14/runtime-config-resource.html#GUC-MAX-PARALLEL-WORKERS\">\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b</a>\u6765\u5b9e\u73b0\u3002</p>", "text": "\u6539\u8fdb\u5e76\u884c\u987a\u5e8f\u626b\u63cf\u7684 I/O \u6027\u80fd\uff08Thomas Munro\uff0cDavid Rowley\uff09\u00a7 \u8fd9\u901a\u8fc7\u5c06\u5757\u5206\u7ec4\u5206\u914d\u7ed9\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u6765\u5b9e\u73b0\u3002", "title": "\u6539\u8fdb\u5e76\u884c\u987a\u5e8f\u626b\u63cf\u7684 I/O \u6027\u80fd", "commits": ["56788d215"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-5", "source_hash": "28356ee8c666a713e3f6618af28d960353357e68f9bb63cfa4de68e3baa6ba69", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["56788d215"]], "identity_text": "Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley) This was done by allocating blocks in groups to parallel workers.", "commit_aliases": ["56788d215"], "source_commits": ["56788d215"], "source_entry_id": "14.0/changes/035", "db_id": "d2ca5c4d7817b3f3d619b0794ba26100", "patch_ids": ["da8a19a09c56be0388815e70aa4ff3c8"], "statement_hash": "bce2cfb8b3d5dc42999bb9eb57ce71c5b877a03553bc3b2b32083584f02e935c", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-20efbfae915e2f5b", "migration": false}, {"id": "14.0-c8bb5c201027e176", "cves": [], "html": "<p>\u5141\u8bb8\u5f15\u7528\u591a\u4e2a<a href=\"/docs/14/sql-createforeigntable.html\" title=\"CREATE FOREIGN TABLE\">\u5916\u90e8\u8868</a>\u7684\u67e5\u8be2\u5e76\u884c\u6267\u884c\u5916\u90e8\u8868\u626b\u63cf\uff08Robert Haas\uff0cKyotaro Horiguchi\uff0cThomas Munro\uff0cEtsuro Fujita\uff09<a href=\"https://postgr.es/c/27e1f1456\">\u00a7</a></p>\n<p>\u5982\u679c\u8bbe\u7f6e\u4e86 <code>async_capable</code>\uff0c<a href=\"/docs/14/postgres-fdw.html\" title=\"F.35.\u00a0postgres_fdw\"><span>postgres_fdw</span></a>\u652f\u6301\u8fd9\u79cd\u7c7b\u578b\u7684\u626b\u63cf\u3002</p>", "text": "\u5141\u8bb8\u5f15\u7528\u591a\u4e2a\u5916\u90e8\u8868\u7684\u67e5\u8be2\u5e76\u884c\u6267\u884c\u5916\u90e8\u8868\u626b\u63cf\uff08Robert Haas\uff0cKyotaro Horiguchi\uff0cThomas Munro\uff0cEtsuro Fujita\uff09\u00a7 \u5982\u679c\u8bbe\u7f6e\u4e86 async_capable\uff0cpostgres_fdw\u652f\u6301\u8fd9\u79cd\u7c7b\u578b\u7684\u626b\u63cf\u3002", "title": "\u5141\u8bb8\u5f15\u7528\u591a\u4e2a\u5916\u90e8\u8868\u7684\u67e5\u8be2\u5e76\u884c\u6267\u884c\u5916\u90e8\u8868\u626b\u63cf", "commits": ["27e1f1456"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-5", "source_hash": "96ef615dc361b86a1d3a9e548da28108eef2800acba06d1c83721926165b8781", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["27e1f1456"]], "identity_text": "Allow a query referencing multiple foreign tables to perform foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita) postgres_fdw supports this type of scan if async_capable is set.", "commit_aliases": ["27e1f1456"], "source_commits": ["27e1f1456"], "source_entry_id": "14.0/changes/036", "db_id": "3b832efdc2d6616bb32920cefb77b552", "patch_ids": ["a675d8525a0e6fe68b9d6e552c520784"], "statement_hash": "137424318f2099cff7ed98e17138a74e10f05132e46b405ef810e2a7a6b8eb56", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-c8bb5c201027e176", "migration": false}, {"id": "14.0-d36d4a145c801943", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/14/maintenance.html#VACUUM-FOR-STATISTICS\" title=\"25.1.3.\u00a0\u66f4\u65b0\u89c4\u5212\u5668\u7edf\u8ba1\u4fe1\u606f\">\u5206\u6790</a>\u8fdb\u884c\u9875\u9762\u9884\u53d6\uff08Stephen Frost\uff09<a href=\"https://postgr.es/c/c6fc50cb4\">\u00a7</a></p>\n<p>\u8fd9\u7531<a href=\"/docs/14/runtime-config-resource.html#GUC-MAINTENANCE-IO-CONCURRENCY\">maintenance_io_concurrency</a>\u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8\u5206\u6790\u8fdb\u884c\u9875\u9762\u9884\u53d6\uff08Stephen Frost\uff09\u00a7 \u8fd9\u7531maintenance_io_concurrency\u63a7\u5236\u3002", "title": "\u5141\u8bb8\u5206\u6790\u8fdb\u884c\u9875\u9762\u9884\u53d6", "commits": ["c6fc50cb4"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-5", "source_hash": "3a66e98af78f48ffc638fd97a328dd1028880b071c93ba39984d0ab9ce142c28", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["c6fc50cb4"]], "identity_text": "Allow analyze to do page prefetching (Stephen Frost) This is controlled by guc-maintenance-io-concurrency .", "commit_aliases": ["c6fc50cb4"], "source_commits": ["c6fc50cb4"], "source_entry_id": "14.0/changes/037", "db_id": "4eeac12426b0d4181e8bae6528959e36", "patch_ids": ["788e8ba623e3a3351637be294104cbae"], "statement_hash": "0ab0eb5ed1e262053d2b6b77842491db482cd179a71940d8b5d0d8267e56a30e", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-d36d4a145c801943", "migration": false}, {"id": "14.0-120edd9ac038aaaa", "cves": [], "html": "<p>\u6539\u8fdb<a href=\"/docs/14/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3.\u00a0POSIX\u6b63\u5219\u8868\u8fbe\u5f0f\">\u6b63\u5219\u8868\u8fbe\u5f0f</a>\u641c\u7d22\u7684\u6027\u80fd\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/08c0d6ad6\">\u00a7</a> <a href=\"https://postgr.es/c/824bf7190\">\u00a7</a> <a href=\"https://postgr.es/c/cebc1d34e\">\u00a7</a> <a href=\"https://postgr.es/c/581043089\">\u00a7</a> <a href=\"https://postgr.es/c/ea1268f63\">\u00a7</a> <a href=\"https://postgr.es/c/190c79884\">\u00a7</a> <a href=\"https://postgr.es/c/0fc1af174\">\u00a7</a> <a href=\"https://postgr.es/c/0c3405cf1\">\u00a7</a> <a href=\"https://postgr.es/c/4604f83fd\">\u00a7</a> <a href=\"https://postgr.es/c/6c20bdb2a\">\u00a7</a> <a href=\"https://postgr.es/c/f68970e33\">\u00a7</a></p>", "text": "\u6539\u8fdb\u6b63\u5219\u8868\u8fbe\u5f0f\u641c\u7d22\u7684\u6027\u80fd\uff08Tom Lane\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7", "title": "\u6539\u8fdb\u6b63\u5219\u8868\u8fbe\u5f0f\u641c\u7d22\u7684\u6027\u80fd", "commits": ["08c0d6ad6", "0c3405cf1", "0fc1af174", "190c79884", "4604f83fd", "581043089", "6c20bdb2a", "824bf7190", "cebc1d34e", "ea1268f63", "f68970e33"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-5", "source_hash": "f929d8e5d8a1f5b3d596abd0677af1fbf944c1ebc67c849d5323b735a1a4e7ce", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["08c0d6ad6"], ["0c3405cf1"], ["0fc1af174"], ["190c79884"], ["4604f83fd"], ["581043089"], ["6c20bdb2a"], ["824bf7190"], ["cebc1d34e"], ["ea1268f63"], ["f68970e33"]], "identity_text": "Improve performance of regular expression searches (Tom Lane)", "commit_aliases": ["08c0d6ad6", "0c3405cf1", "0fc1af174", "190c79884", "4604f83fd", "581043089", "6c20bdb2a", "824bf7190", "cebc1d34e", "ea1268f63", "f68970e33"], "source_commits": ["08c0d6ad6", "0c3405cf1", "0fc1af174", "190c79884", "4604f83fd", "581043089", "6c20bdb2a", "824bf7190", "cebc1d34e", "ea1268f63", "f68970e33"], "source_entry_id": "14.0/changes/038", "db_id": "b4c154f1ea77d51718dc19c2963d0a61", "patch_ids": ["2364a5283f567b024cca26965ff37126", "26994e1efdf9bd692681412f5de75075", "42200236e457b239334c4f8f2164f9a9", "5c3d98ad585b57440832315977455ed0", "6b0843be47edf1051c458f3fa34ff7f2", "732e851f0b055240c87bfd52e4ebbacd", "7b3a47c22c7f74a09355b96693958832", "8021dfdd4596d2fd7f2a108defb0939c", "a241835bbac0961b6829d67ad6402195", "a934f4729ee374f5ccb0e6689546aad7", "b5822fc3aa485f5c188cea8cd4b29b26"], "statement_hash": "4cd113d08fdebf1caa3bcbdf7288b50a42120a2a0274cdcc4816921e8bb7dd2f", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-120edd9ac038aaaa", "migration": false}, {"id": "14.0-1f51a162293efcb0", "cves": [], "html": "<p>\u5927\u5e45\u63d0\u9ad8 Unicode \u89c4\u8303\u5316\u6027\u80fd\uff08John Naylor\uff09<a href=\"https://postgr.es/c/80f8eb79e\">\u00a7</a> <a href=\"https://postgr.es/c/783f0cc64\">\u00a7</a></p>\n<p>\u8fd9\u52a0\u5feb\u4e86 <a href=\"/docs/14/functions-string.html\" title=\"9.4.\u00a0\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>normalize()</code></a> \u548c <code>IS NORMALIZED</code> \u7684\u901f\u5ea6\u3002</p>", "text": "\u5927\u5e45\u63d0\u9ad8 Unicode \u89c4\u8303\u5316\u6027\u80fd\uff08John Naylor\uff09\u00a7 \u00a7 \u8fd9\u52a0\u5feb\u4e86 normalize() \u548c IS NORMALIZED \u7684\u901f\u5ea6\u3002", "title": "\u5927\u5e45\u63d0\u9ad8 Unicode \u89c4\u8303\u5316\u6027\u80fd", "commits": ["783f0cc64", "80f8eb79e"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-5", "source_hash": "cd54cb5f2801051eda0af5006b38340caaa21a24d4a6e9d110426c9319553552", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["783f0cc64"], ["80f8eb79e"]], "identity_text": "Dramatically improve Unicode normalization performance (John Naylor) This speeds normalize() and IS NORMALIZED.", "commit_aliases": ["783f0cc64", "80f8eb79e"], "source_commits": ["783f0cc64", "80f8eb79e"], "source_entry_id": "14.0/changes/039", "db_id": "3b78dd2bbdd31589bdd1d814b7214467", "patch_ids": ["dad2b70be2bc60673d08f4c7dce3fed1", "ea99be2bd9af85b72d4d7f374602dd63"], "statement_hash": "ef714803a65425df778273a560ad27b7ad4f0f392933b3164f682dde178788ad", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-1f51a162293efcb0", "migration": false}, {"id": "14.0-915b08668416748a", "cves": [], "html": "<p>\u589e\u52a0\u5bf9 <acronym>TOAST</acronym> \u6570\u636e\u4f7f\u7528 <a href=\"/docs/14/sql-createtable.html\" title=\"CREATE TABLE\">LZ4 \u538b\u7f29</a>\u7684\u80fd\u529b\uff08Dilip Kumar\uff09<a href=\"https://postgr.es/c/bbe0a81db\">\u00a7</a></p>\n<p>\u8fd9\u53ef\u4ee5\u5728\u5217\u7ea7\u522b\u8bbe\u7f6e\uff0c\u6216\u901a\u8fc7\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/14/runtime-config-client.html#GUC-DEFAULT-TOAST-COMPRESSION\">default_toast_compression</a>\u8bbe\u4e3a\u9ed8\u8ba4\u503c\u3002\u670d\u52a1\u5668\u5fc5\u987b\u4f7f\u7528 <a href=\"/docs/14/install-procedure.html#CONFIGURE-OPTIONS-FEATURES\" title=\"17.4.1.2.\u00a0PostgreSQL \u7279\u6027\"><code>--with-lz4</code></a> \u7f16\u8bd1\u624d\u80fd\u652f\u6301\u6b64\u529f\u80fd\u3002\u9ed8\u8ba4\u8bbe\u7f6e\u4ecd\u4e3a pglz\u3002</p>", "text": "\u589e\u52a0\u5bf9 TOAST \u6570\u636e\u4f7f\u7528 LZ4 \u538b\u7f29\u7684\u80fd\u529b\uff08Dilip Kumar\uff09\u00a7 \u8fd9\u53ef\u4ee5\u5728\u5217\u7ea7\u522b\u8bbe\u7f6e\uff0c\u6216\u901a\u8fc7\u670d\u52a1\u5668\u53c2\u6570default_toast_compression\u8bbe\u4e3a\u9ed8\u8ba4\u503c\u3002\u670d\u52a1\u5668\u5fc5\u987b\u4f7f\u7528 --with-lz4 \u7f16\u8bd1\u624d\u80fd\u652f\u6301\u6b64\u529f\u80fd\u3002\u9ed8\u8ba4\u8bbe\u7f6e\u4ecd\u4e3a pglz\u3002", "title": "\u589e\u52a0\u5bf9 TOAST \u6570\u636e\u4f7f\u7528 LZ4 \u538b\u7f29\u7684\u80fd\u529b", "commits": ["bbe0a81db"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-5", "source_hash": "f6f64e0bafdad8c87dc1e12b3157cd3d0a84bfc762317f8258f177a349fed0e4", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["bbe0a81db"]], "identity_text": "Add ability to use LZ4 compression on TOAST data (Dilip Kumar) This can be set at the column level, or set as a default via server parameter guc-default-toast-compression . The server must be compiled with --with-lz4 to support this feature. The default setting is still pglz.", "commit_aliases": ["bbe0a81db"], "source_commits": ["bbe0a81db"], "source_entry_id": "14.0/changes/040", "db_id": "d188477ffcd17fdc3c6405f79ceb9668", "patch_ids": ["e4c0d6fe92269f0035c12d23522010a6"], "statement_hash": "d0471bc266f4acd3e88c9faa118c4351a383fbac055488ba8df09d219030ff61", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-915b08668416748a", "migration": false}, {"id": "14.0-581ec7847681b776", "cves": [], "html": "<p>\u5982\u679c\u542f\u7528\u4e86\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/14/runtime-config-statistics.html#GUC-COMPUTE-QUERY-ID\">compute_query_id</a>\uff0c\u5728 <a href=\"/docs/14/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW\" title=\"28.2.3.\u00a0pg_stat_activity\"><code>pg_stat_activity</code></a>\u3001<a href=\"/docs/14/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN VERBOSE</code></a>\u3001<a href=\"/docs/14/runtime-config-logging.html\" title=\"20.8.\u00a0\u9519\u8bef\u62a5\u544a\u548c\u65e5\u5fd7\">csvlog</a> \u4e2d\u663e\u793a\u67e5\u8be2 ID\uff0c\u4ee5\u53ca\u53ef\u9009\u5730\u5728<a href=\"/docs/14/runtime-config-logging.html#GUC-LOG-LINE-PREFIX\">log_line_prefix</a>\u4e2d\u663e\u793a\uff08Julien Rouhaud\uff09<a href=\"https://postgr.es/c/4f0b0966c\">\u00a7</a> <a href=\"https://postgr.es/c/f57a2f5e0\">\u00a7</a> <a href=\"https://postgr.es/c/9660834dd\">\u00a7</a> <a href=\"https://postgr.es/c/f7a97b6ec\">\u00a7</a> <a href=\"https://postgr.es/c/cafde58b3\">\u00a7</a></p>\n<p>\u7531\u6269\u5c55\u8ba1\u7b97\u7684\u67e5\u8be2 ID \u4e5f\u5c06\u88ab\u663e\u793a\u3002</p>", "text": "\u5982\u679c\u542f\u7528\u4e86\u670d\u52a1\u5668\u53c2\u6570compute_query_id\uff0c\u5728 pg_stat_activity\u3001EXPLAIN VERBOSE\u3001csvlog \u4e2d\u663e\u793a\u67e5\u8be2 ID\uff0c\u4ee5\u53ca\u53ef\u9009\u5730\u5728log_line_prefix\u4e2d\u663e\u793a\uff08Julien Rouhaud\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u7531\u6269\u5c55\u8ba1\u7b97\u7684\u67e5\u8be2 ID \u4e5f\u5c06\u88ab\u663e\u793a\u3002", "title": "\u5982\u679c\u542f\u7528\u4e86\u670d\u52a1\u5668\u53c2\u6570compute_query_id\uff0c\u5728 pg_stat_activity\u3001EXPLAIN VERBOSE\u3001csvlog \u4e2d\u663e\u793a\u67e5\u8be2 ID\uff0c\u4ee5\u53ca\u53ef\u9009\u5730\u5728log_line_prefix\u4e2d\u663e\u793a", "commits": ["4f0b0966c", "9660834dd", "cafde58b3", "f57a2f5e0", "f7a97b6ec"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-6", "source_hash": "900e130d8a5347fa5f83b978c1437d8773f442c3a1b9cfe7db5b71925a8c04a2", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["4f0b0966c"], ["9660834dd"], ["cafde58b3"], ["f57a2f5e0"], ["f7a97b6ec"]], "identity_text": "If server parameter guc-compute-query-id is enabled, display the query id in pg_stat_activity, EXPLAIN VERBOSE, csvlog, and optionally in guc-log-line-prefix (Julien Rouhaud) A query id computed by an extension will also be displayed.", "commit_aliases": ["4f0b0966c", "9660834dd", "cafde58b3", "f57a2f5e0", "f7a97b6ec"], "source_commits": ["4f0b0966c", "9660834dd", "cafde58b3", "f57a2f5e0", "f7a97b6ec"], "source_entry_id": "14.0/changes/041", "db_id": "6f5b0cadbc436b426741630da6395cbc", "patch_ids": ["121b9e887d114fa2359ba0269b820f84", "22bd28a5ed0d0aab6297b4fe1b298434", "37196aec09acb6f2c1f058524b1b7322", "a5e04145d404137dc95cacdb2f1f9fbd", "cff8eba381bf9751b7032a0a172115dc"], "statement_hash": "202b7cf8d813ed12f7d01761dadd5b80e2575cb041ffe1a7569ac0b7bf00f1d0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-581ec7847681b776", "migration": false}, {"id": "14.0-4032434ce1c96988", "cves": [], "html": "<p>\u6539\u8fdb<a href=\"/docs/14/maintenance.html#AUTOVACUUM\" title=\"25.1.6.\u00a0\u81ea\u52a8\u6e05\u7406\u5b88\u62a4\u8fdb\u7a0b\">\u81ea\u52a8\u6e05\u7406</a>\u548c\u81ea\u52a8\u5206\u6790\u7684\u65e5\u5fd7\u8bb0\u5f55\uff08Stephen Frost\uff0cJakub Wartak\uff09<a href=\"https://postgr.es/c/94d13d474\">\u00a7</a></p>\n<p>\u5982\u679c\u542f\u7528\u4e86<a href=\"/docs/14/runtime-config-statistics.html#GUC-TRACK-IO-TIMING\">track_io_timing</a>\uff0c\u5219\u62a5\u544a\u81ea\u52a8\u6e05\u7406\u548c\u81ea\u52a8\u5206\u6790\u7684 I/O \u65f6\u95f4\u3002\u540c\u65f6\u62a5\u544a\u81ea\u52a8\u5206\u6790\u7684\u7f13\u51b2\u533a\u8bfb\u53d6\u548c\u810f\u5316\u901f\u7387\u3002</p>", "text": "\u6539\u8fdb\u81ea\u52a8\u6e05\u7406\u548c\u81ea\u52a8\u5206\u6790\u7684\u65e5\u5fd7\u8bb0\u5f55\uff08Stephen Frost\uff0cJakub Wartak\uff09\u00a7 \u5982\u679c\u542f\u7528\u4e86track_io_timing\uff0c\u5219\u62a5\u544a\u81ea\u52a8\u6e05\u7406\u548c\u81ea\u52a8\u5206\u6790\u7684 I/O \u65f6\u95f4\u3002\u540c\u65f6\u62a5\u544a\u81ea\u52a8\u5206\u6790\u7684\u7f13\u51b2\u533a\u8bfb\u53d6\u548c\u810f\u5316\u901f\u7387\u3002", "title": "\u6539\u8fdb\u81ea\u52a8\u6e05\u7406\u548c\u81ea\u52a8\u5206\u6790\u7684\u65e5\u5fd7\u8bb0\u5f55", "commits": ["94d13d474"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-6", "source_hash": "3e87e5be11b961eb5d0493ff01b0cbb2dd176f8e86164ea6fbcacee1c1b377ca", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["94d13d474"]], "identity_text": "Improve logging of auto-vacuum and auto-analyze (Stephen Frost, Jakub Wartak) This reports I/O timings for auto-vacuum and auto-analyze if guc-track-io-timing is enabled. Also, report buffer read and dirty rates for auto-analyze.", "commit_aliases": ["94d13d474"], "source_commits": ["94d13d474"], "source_entry_id": "14.0/changes/042", "db_id": "43fbfb52b5182feb64cd6faa2b1e863c", "patch_ids": ["469bf32a287fe50f1773aa0340cbbab7"], "statement_hash": "a735bc7a8175112056d3cccec66451604551e2a0cdd2f100a61eaed5e9bc35ea", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-4032434ce1c96988", "migration": false}, {"id": "14.0-45251255f202cde1", "cves": [], "html": "<p>\u5728<a href=\"/docs/14/runtime-config-logging.html#GUC-LOG-CONNECTIONS\">log_connections</a>\u7684\u8f93\u51fa\u4e2d\u589e\u52a0\u5ba2\u6237\u7aef\u63d0\u4f9b\u7684\u539f\u59cb\u7528\u6237\u540d\u4fe1\u606f\uff08Jacob Champion\uff09<a href=\"https://postgr.es/c/9afffcb83\">\u00a7</a></p>", "text": "\u5728log_connections\u7684\u8f93\u51fa\u4e2d\u589e\u52a0\u5ba2\u6237\u7aef\u63d0\u4f9b\u7684\u539f\u59cb\u7528\u6237\u540d\u4fe1\u606f\uff08Jacob Champion\uff09\u00a7", "title": "\u5728log_connections\u7684\u8f93\u51fa\u4e2d\u589e\u52a0\u5ba2\u6237\u7aef\u63d0\u4f9b\u7684\u539f\u59cb\u7528\u6237\u540d\u4fe1\u606f", "commits": ["9afffcb83"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-6", "source_hash": "542d1e6fda50807adbd6c9ccd2c4c44bc5d31bbdf1b8a0a45db40a75508cf412", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["9afffcb83"]], "identity_text": "Add information about the original user name supplied by the client to the output of guc-log-connections (Jacob Champion)", "commit_aliases": ["9afffcb83"], "source_commits": ["9afffcb83"], "source_entry_id": "14.0/changes/043", "db_id": "0439e622a8f5d105f23413759141e7ef", "patch_ids": ["22815ab23aea5dee1e3784a751427502"], "statement_hash": "047fc1e1caf4f2b096778700bee8ca5b9fbc1f9e95f0648aeae909a509ca3cc2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-45251255f202cde1", "migration": false}, {"id": "14.0-33be8b3596e95508", "cves": [], "html": "<p>\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/14/progress-reporting.html#COPY-PROGRESS-REPORTING\" title=\"28.4.6.\u00a0COPY \u8fdb\u5ea6\u62a5\u544a\"><code>pg_stat_progress_copy</code></a> \u4ee5\u62a5\u544a <code>COPY</code> \u8fdb\u5ea6\uff08Josef \u0160im\u00e1nek\uff0cMatthias van de Meent\uff09<a href=\"https://postgr.es/c/8a4f618e7\">\u00a7</a> <a href=\"https://postgr.es/c/9d2d45700\">\u00a7</a></p>", "text": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_stat_progress_copy \u4ee5\u62a5\u544a COPY \u8fdb\u5ea6\uff08Josef \u0160im\u00e1nek\uff0cMatthias van de Meent\uff09\u00a7 \u00a7", "title": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_stat_progress_copy \u4ee5\u62a5\u544a COPY \u8fdb\u5ea6", "commits": ["8a4f618e7", "9d2d45700"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-7", "source_hash": "04e42b27c141da50c40a4b16d40b0b4c1524be9e15bf8da2a0089182cafe873e", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["8a4f618e7"], ["9d2d45700"]], "identity_text": "Add system view pg_stat_progress_copy to report COPY progress (Josef \u0160im\u00e1nek, Matthias van de Meent)", "commit_aliases": ["8a4f618e7", "9d2d45700"], "source_commits": ["8a4f618e7", "9d2d45700"], "source_entry_id": "14.0/changes/044", "db_id": "7ed434c2681f0ab8cb764d3208cb6eac", "patch_ids": ["6a59331891ba17d792823b9b23e98265", "b675e02b48d2be6b7c10e63329db347e"], "statement_hash": "d90c6fab92f7894929bfa83eca5da428afad475eb34d77956f7b03933ab41ebb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-33be8b3596e95508", "migration": false}, {"id": "14.0-449b2a49b9e75f76", "cves": [], "html": "<p>\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/14/monitoring-stats.html#MONITORING-PG-STAT-WAL-VIEW\" title=\"28.2.12.\u00a0pg_stat_wal\"><code>pg_stat_wal</code></a> \u4ee5\u62a5\u544a <acronym>WAL</acronym> \u6d3b\u52a8\uff08Masahiro Ikeda\uff09<a href=\"https://postgr.es/c/8d9a93596\">\u00a7</a> <a href=\"https://postgr.es/c/01469241b\">\u00a7</a> <a href=\"https://postgr.es/c/ff99918c6\">\u00a7</a></p>", "text": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_stat_wal \u4ee5\u62a5\u544a WAL \u6d3b\u52a8\uff08Masahiro Ikeda\uff09\u00a7 \u00a7 \u00a7", "title": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_stat_wal \u4ee5\u62a5\u544a WAL \u6d3b\u52a8", "commits": ["01469241b", "8d9a93596", "ff99918c6"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-7", "source_hash": "0205853afc2187e3fa02ea8d6b42ba637e38e8e4dd98b1120043146617425617", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["01469241b"], ["8d9a93596"], ["ff99918c6"]], "identity_text": "Add system view pg_stat_wal to report WAL activity (Masahiro Ikeda)", "commit_aliases": ["01469241b", "8d9a93596", "ff99918c6"], "source_commits": ["01469241b", "8d9a93596", "ff99918c6"], "source_entry_id": "14.0/changes/045", "db_id": "43bb3f43eb2d686b6ec4f1ea3c789248", "patch_ids": ["3080571dd8ceb0816109e228f8c2adf1", "64c16bf6e4367681f5775ea241eac794", "e94ebdb074f34d64579025ab0e3e3152"], "statement_hash": "2195c14afb467752563b4be0454dd9ee3d00bb725e747267b2b1b33989cef17a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-449b2a49b9e75f76", "migration": false}, {"id": "14.0-eecb1c20f058494b", "cves": [], "html": "<p>\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/14/monitoring-stats.html#MONITORING-PG-STAT-REPLICATION-SLOTS-VIEW\" title=\"28.2.5.\u00a0pg_stat_replication_slots\"><code>pg_stat_replication_slots</code></a> \u4ee5\u62a5\u544a\u590d\u5236\u69fd\u6d3b\u52a8\uff08Masahiko Sawada\uff0cAmit Kapila\uff0cVignesh C\uff09<a href=\"https://postgr.es/c/986816750\">\u00a7</a> <a href=\"https://postgr.es/c/03d51b776\">\u00a7</a> <a href=\"https://postgr.es/c/8e90ec558\">\u00a7</a> <a href=\"https://postgr.es/c/f5fc2f5b2\">\u00a7</a></p>\n<p>\u51fd\u6570 <a href=\"/docs/14/monitoring-stats.html#MONITORING-STATS-FUNCTIONS\" title=\"28.2.22.\u00a0\u7edf\u8ba1\u51fd\u6570\"><code>pg_stat_reset_replication_slot()</code></a> \u53ef\u91cd\u7f6e\u69fd\u7edf\u8ba1\u4fe1\u606f\u3002</p>", "text": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_stat_replication_slots \u4ee5\u62a5\u544a\u590d\u5236\u69fd\u6d3b\u52a8\uff08Masahiko Sawada\uff0cAmit Kapila\uff0cVignesh C\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u51fd\u6570 pg_stat_reset_replication_slot() \u53ef\u91cd\u7f6e\u69fd\u7edf\u8ba1\u4fe1\u606f\u3002", "title": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_stat_replication_slots \u4ee5\u62a5\u544a\u590d\u5236\u69fd\u6d3b\u52a8", "commits": ["03d51b776", "8e90ec558", "986816750", "f5fc2f5b2"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-7", "source_hash": "bee02e9705e11cd2fbe267229e8b96cb283b9206963494d60fcf931c19efdc11", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["03d51b776"], ["8e90ec558"], ["986816750"], ["f5fc2f5b2"]], "identity_text": "Add system view pg_stat_replication_slots to report replication slot activity (Masahiko Sawada, Amit Kapila, Vignesh C) The function pg_stat_reset_replication_slot() resets slot statistics.", "commit_aliases": ["03d51b776", "8e90ec558", "986816750", "f5fc2f5b2"], "source_commits": ["03d51b776", "8e90ec558", "986816750", "f5fc2f5b2"], "source_entry_id": "14.0/changes/046", "db_id": "b34432f2ff4603e62c8c1c9e36291c84", "patch_ids": ["39c1fa2325aabc155cfcea3df56061f7", "738147a560b2467fb676581aee3522c2", "f01caa514e85c981872f752b90afb34e", "f077697be3336c38d084ff66f115e6db"], "statement_hash": "3871459b963bfe53f64ae913c91f29f89c6605b1957c8ae6fba7ebeee02b380f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-eecb1c20f058494b", "migration": false}, {"id": "14.0-f7bd90934f84c9bf", "cves": [], "html": "<p>\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/14/view-pg-backend-memory-contexts.html\" title=\"52.67.\u00a0pg_backend_memory_contexts\"><code>pg_backend_memory_contexts</code></a> \u4ee5\u62a5\u544a\u4f1a\u8bdd\u5185\u5b58\u4f7f\u7528\u60c5\u51b5\uff08Atsushi Torikoshi\uff0cFujii Masao\uff09<a href=\"https://postgr.es/c/3e98c0baf\">\u00a7</a> <a href=\"https://postgr.es/c/29dd6d8bc\">\u00a7</a></p>", "text": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_backend_memory_contexts \u4ee5\u62a5\u544a\u4f1a\u8bdd\u5185\u5b58\u4f7f\u7528\u60c5\u51b5\uff08Atsushi Torikoshi\uff0cFujii Masao\uff09\u00a7 \u00a7", "title": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_backend_memory_contexts \u4ee5\u62a5\u544a\u4f1a\u8bdd\u5185\u5b58\u4f7f\u7528\u60c5\u51b5", "commits": ["29dd6d8bc", "3e98c0baf"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-7", "source_hash": "b1b50e3372e0c8fb77b53d2efa309354530cd2c5a84d389ae6fe37ef61adb26d", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["29dd6d8bc"], ["3e98c0baf"]], "identity_text": "Add system view pg_backend_memory_contexts to report session memory usage (Atsushi Torikoshi, Fujii Masao)", "commit_aliases": ["29dd6d8bc", "3e98c0baf"], "source_commits": ["29dd6d8bc", "3e98c0baf"], "source_entry_id": "14.0/changes/047", "db_id": "599782f53e7d00729f577ae259e7118b", "patch_ids": ["551910ba4659e574475012244609922c", "89ba2954f558b7d195c3a0faf71d389c"], "statement_hash": "2c6792c05518ebb7742c365d0afdff1b17d39235b632dd820acc269448601c68", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-f7bd90934f84c9bf", "migration": false}, {"id": "14.0-e56d06cafcbd9f72", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/14/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL\" title=\"9.27.2.\u00a0\u670d\u52a1\u5668\u4fe1\u53f7\u51fd\u6570\"><code>pg_log_backend_memory_contexts()</code></a> \u4ee5\u8f93\u51fa\u4efb\u610f\u540e\u7aef\u7684\u5185\u5b58\u4e0a\u4e0b\u6587\uff08Atsushi Torikoshi\uff09<a href=\"https://postgr.es/c/43620e328\">\u00a7</a></p>", "text": "\u589e\u52a0\u51fd\u6570 pg_log_backend_memory_contexts() \u4ee5\u8f93\u51fa\u4efb\u610f\u540e\u7aef\u7684\u5185\u5b58\u4e0a\u4e0b\u6587\uff08Atsushi Torikoshi\uff09\u00a7", "title": "\u589e\u52a0\u51fd\u6570 pg_log_backend_memory_contexts() \u4ee5\u8f93\u51fa\u4efb\u610f\u540e\u7aef\u7684\u5185\u5b58\u4e0a\u4e0b\u6587", "commits": ["43620e328"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-7", "source_hash": "16695530572709b7783ff6445c0780fdd5dd8c287dad2e70ebbfbe55170ae8eb", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["43620e328"]], "identity_text": "Add function pg_log_backend_memory_contexts() to output the memory contexts of arbitrary backends (Atsushi Torikoshi)", "commit_aliases": ["43620e328"], "source_commits": ["43620e328"], "source_entry_id": "14.0/changes/048", "db_id": "3f9cb4f560938e8d389940cca975499f", "patch_ids": ["60722399a58aff8222579faf32fa4e45"], "statement_hash": "a98b3de0eda2e7edf3aa7ce7a4f4fed8a044880eb854219679214cb51ccf0b55", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-e56d06cafcbd9f72", "migration": false}, {"id": "14.0-b9da444a02c5a4f3", "cves": [], "html": "<p>\u5728 <a href=\"/docs/14/monitoring-stats.html#MONITORING-PG-STAT-DATABASE-VIEW\" title=\"28.2.13.\u00a0pg_stat_database\"><code>pg_stat_database</code></a> \u7cfb\u7edf\u89c6\u56fe\u4e2d\u589e\u52a0\u4f1a\u8bdd\u7edf\u8ba1\u4fe1\u606f\uff08Laurenz Albe\uff09<a href=\"https://postgr.es/c/960869da0\">\u00a7</a></p>", "text": "\u5728 pg_stat_database \u7cfb\u7edf\u89c6\u56fe\u4e2d\u589e\u52a0\u4f1a\u8bdd\u7edf\u8ba1\u4fe1\u606f\uff08Laurenz Albe\uff09\u00a7", "title": "\u5728 pg_stat_database \u7cfb\u7edf\u89c6\u56fe\u4e2d\u589e\u52a0\u4f1a\u8bdd\u7edf\u8ba1\u4fe1\u606f", "commits": ["960869da0"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-7", "source_hash": "0a3079230f3aeb3c795ef9b6cc989cf7e343a85d46d226125fb9f82262ad62cd", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["960869da0"]], "identity_text": "Add session statistics to the pg_stat_database system view (Laurenz Albe)", "commit_aliases": ["960869da0"], "source_commits": ["960869da0"], "source_entry_id": "14.0/changes/049", "db_id": "423696da8b94d4592b679b62cbea26cd", "patch_ids": ["e4380918de4b44bd6b33f3d9f6bd8026"], "statement_hash": "74cf146da885674e4324818b877d27656f052645a194bc4af9bce75b6371899c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-b9da444a02c5a4f3", "migration": false}, {"id": "14.0-8f9f9c90bb22b1f6", "cves": [], "html": "<p>\u5728 <a href=\"/docs/14/view-pg-prepared-statements.html\" title=\"52.77.\u00a0pg_prepared_statements\"><code>pg_prepared_statements</code></a> \u4e2d\u589e\u52a0\u62a5\u544a\u901a\u7528\u548c\u81ea\u5b9a\u4e49\u8ba1\u5212\u8ba1\u6570\u7684\u5217\uff08Atsushi Torikoshi\uff0cKyotaro Horiguchi\uff09<a href=\"https://postgr.es/c/d05b172a7\">\u00a7</a></p>", "text": "\u5728 pg_prepared_statements \u4e2d\u589e\u52a0\u62a5\u544a\u901a\u7528\u548c\u81ea\u5b9a\u4e49\u8ba1\u5212\u8ba1\u6570\u7684\u5217\uff08Atsushi Torikoshi\uff0cKyotaro Horiguchi\uff09\u00a7", "title": "\u5728 pg_prepared_statements \u4e2d\u589e\u52a0\u62a5\u544a\u901a\u7528\u548c\u81ea\u5b9a\u4e49\u8ba1\u5212\u8ba1\u6570\u7684\u5217", "commits": ["d05b172a7"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-7", "source_hash": "705411059989bc789abaf416c4c547a90bed7e4120936986585344791d4cce0b", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["d05b172a7"]], "identity_text": "Add columns to pg_prepared_statements to report generic and custom plan counts (Atsushi Torikoshi, Kyotaro Horiguchi)", "commit_aliases": ["d05b172a7"], "source_commits": ["d05b172a7"], "source_entry_id": "14.0/changes/050", "db_id": "3a1a476de29c16a51c9c6a4629811475", "patch_ids": ["bd56c71516d9700cdd778cf28df05536"], "statement_hash": "70c40dcc87289af901369b68f92171ce53663afb7ae7675b9f1b4c938aca402f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-8f9f9c90bb22b1f6", "migration": false}, {"id": "14.0-61860269407acbe2", "cves": [], "html": "<p>\u5728 <a href=\"/docs/14/view-pg-locks.html\" title=\"52.74.\u00a0pg_locks\"><code>pg_locks</code></a> \u4e2d\u589e\u52a0\u9501\u7b49\u5f85\u5f00\u59cb\u65f6\u95f4\uff08Atsushi Torikoshi\uff09<a href=\"https://postgr.es/c/46d6e5f56\">\u00a7</a></p>", "text": "\u5728 pg_locks \u4e2d\u589e\u52a0\u9501\u7b49\u5f85\u5f00\u59cb\u65f6\u95f4\uff08Atsushi Torikoshi\uff09\u00a7", "title": "\u5728 pg_locks \u4e2d\u589e\u52a0\u9501\u7b49\u5f85\u5f00\u59cb\u65f6\u95f4", "commits": ["46d6e5f56"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-7", "source_hash": "df13c0e2ba0665fe6d5057faa8914c3e7c926622f4e83ad5828f20606c997ffc", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["46d6e5f56"]], "identity_text": "Add lock wait start time to pg_locks (Atsushi Torikoshi)", "commit_aliases": ["46d6e5f56"], "source_commits": ["46d6e5f56"], "source_entry_id": "14.0/changes/051", "db_id": "f8951e0c171a5e92ac7a0d5936305253", "patch_ids": ["b92f964d967182625d96aa2e2309a13b"], "statement_hash": "c1e608e67615e8fa0908ad610bdf1cf37f46869c90a515ae2149e28c5ac18b7d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-61860269407acbe2", "migration": false}, {"id": "14.0-1e43ee81d27c8848", "cves": [], "html": "<p>\u4f7f\u5f52\u6863\u8fdb\u7a0b\u5728 <code>pg_stat_activity</code> \u4e2d\u53ef\u89c1\uff08Kyotaro Horiguchi\uff09<a href=\"https://postgr.es/c/d75288fb2\">\u00a7</a></p>", "text": "\u4f7f\u5f52\u6863\u8fdb\u7a0b\u5728 pg_stat_activity \u4e2d\u53ef\u89c1\uff08Kyotaro Horiguchi\uff09\u00a7", "title": "\u4f7f\u5f52\u6863\u8fdb\u7a0b\u5728 pg_stat_activity \u4e2d\u53ef\u89c1", "commits": ["d75288fb2"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-7", "source_hash": "24f3239d337fe1c7b84ca7c6b72c6e6807ab6381ec328308157e5066848a46e2", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["d75288fb2"]], "identity_text": "Make the archiver process visible in pg_stat_activity (Kyotaro Horiguchi)", "commit_aliases": ["d75288fb2"], "source_commits": ["d75288fb2"], "source_entry_id": "14.0/changes/052", "db_id": "5c2e0235e5677fb2a13d08047fcd9cbb", "patch_ids": ["6164b5b47fbcfb27b6899cdc31724d28"], "statement_hash": "28d8d5579b6f8c3b922de8e79c8957384036d2de4e7bbe984fa0b73ace6a9c06", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-1e43ee81d27c8848", "migration": false}, {"id": "14.0-3cbc7a78d61880bb", "cves": [], "html": "<p>\u589e\u52a0\u7b49\u5f85\u4e8b\u4ef6 <a href=\"/docs/14/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW\" title=\"28.2.3.\u00a0pg_stat_activity\"><code>WalReceiverExit</code></a> \u4ee5\u62a5\u544a <acronym>WAL</acronym> \u63a5\u6536\u5668\u9000\u51fa\u7b49\u5f85\u65f6\u95f4\uff08Fujii Masao\uff09<a href=\"https://postgr.es/c/84007043f\">\u00a7</a></p>", "text": "\u589e\u52a0\u7b49\u5f85\u4e8b\u4ef6 WalReceiverExit \u4ee5\u62a5\u544a WAL \u63a5\u6536\u5668\u9000\u51fa\u7b49\u5f85\u65f6\u95f4\uff08Fujii Masao\uff09\u00a7", "title": "\u589e\u52a0\u7b49\u5f85\u4e8b\u4ef6 WalReceiverExit \u4ee5\u62a5\u544a WAL \u63a5\u6536\u5668\u9000\u51fa\u7b49\u5f85\u65f6\u95f4", "commits": ["84007043f"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-7", "source_hash": "252ed578d32a673af22b9d12882bf637a26567f3a39aaee99a010905a77f0bf0", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["84007043f"]], "identity_text": "Add wait event WalReceiverExit to report WAL receiver exit wait time (Fujii Masao)", "commit_aliases": ["84007043f"], "source_commits": ["84007043f"], "source_entry_id": "14.0/changes/053", "db_id": "efb95e106f9a5c5cfccad75ae201a5e5", "patch_ids": ["1b36aad556590bf9274daed085425803"], "statement_hash": "217f42cf8bc88c4dcd428781a717cb847e36471e484b25433c83dc13bb965b48", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-3cbc7a78d61880bb", "migration": false}, {"id": "14.0-888043c4334e45f8", "cves": [], "html": "<p>\u5b9e\u73b0\u4fe1\u606f\u6a21\u5f0f\u89c6\u56fe <a href=\"/docs/14/infoschema-routine-column-usage.html\" title=\"37.40.\u00a0routine_column_usage\"><code>routine_column_usage</code></a> \u4ee5\u8ddf\u8e2a\u51fd\u6570\u548c\u8fc7\u7a0b\u9ed8\u8ba4\u8868\u8fbe\u5f0f\u5f15\u7528\u7684\u5217\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/f40c6969d\">\u00a7</a></p>", "text": "\u5b9e\u73b0\u4fe1\u606f\u6a21\u5f0f\u89c6\u56fe routine_column_usage \u4ee5\u8ddf\u8e2a\u51fd\u6570\u548c\u8fc7\u7a0b\u9ed8\u8ba4\u8868\u8fbe\u5f0f\u5f15\u7528\u7684\u5217\uff08Peter Eisentraut\uff09\u00a7", "title": "\u5b9e\u73b0\u4fe1\u606f\u6a21\u5f0f\u89c6\u56fe routine_column_usage \u4ee5\u8ddf\u8e2a\u51fd\u6570\u548c\u8fc7\u7a0b\u9ed8\u8ba4\u8868\u8fbe\u5f0f\u5f15\u7528\u7684\u5217", "commits": ["f40c6969d"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-7", "source_hash": "ea64af7a68cb73e88ce9022955d0ab0567bed8bf9add0c3aa5ef5e2cbf51c08d", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["f40c6969d"]], "identity_text": "Implement information schema view routine_column_usage to track columns referenced by function and procedure default expressions (Peter Eisentraut)", "commit_aliases": ["f40c6969d"], "source_commits": ["f40c6969d"], "source_entry_id": "14.0/changes/054", "db_id": "6f45b7d546c05cb1c1f1d7f8f1d9e87c", "patch_ids": ["b07921011a94c9adeefd0c40ee4594c4"], "statement_hash": "604d1894416d84c91116cdd3c05b2270ad44bb758ad78d052241e6e7f9012f7b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-888043c4334e45f8", "migration": false}, {"id": "14.0-25ae8f3a0b4012b0", "cves": [], "html": "<p>\u5141\u8bb8\u5339\u914d SSL \u8bc1\u4e66\u7684\u4e13\u6709\u540d\u79f0\uff08<acronym>DN</acronym>\uff09\u7528\u4e8e\u5ba2\u6237\u7aef\u8bc1\u4e66\u8ba4\u8bc1\uff08Andrew Dunstan\uff09<a href=\"https://postgr.es/c/6d7a6feac\">\u00a7</a></p>\n<p>\u65b0\u7684 <a href=\"/docs/14/client-authentication.html#AUTH-PG-HBA-CONF\" title=\"21.1.\u00a0pg_hba.conf \u6587\u4ef6\"><code>pg_hba.conf</code></a> \u9009\u9879 <code>clientname=DN</code> \u5141\u8bb8\u4e0e <code>CN</code> \u4ee5\u5916\u7684\u8bc1\u4e66\u5c5e\u6027\u8fdb\u884c\u6bd4\u8f83\uff0c\u5e76\u53ef\u4e0e ident \u6620\u5c04\u7ec4\u5408\u4f7f\u7528\u3002</p>", "text": "\u5141\u8bb8\u5339\u914d SSL \u8bc1\u4e66\u7684\u4e13\u6709\u540d\u79f0\uff08DN\uff09\u7528\u4e8e\u5ba2\u6237\u7aef\u8bc1\u4e66\u8ba4\u8bc1\uff08Andrew Dunstan\uff09\u00a7 \u65b0\u7684 pg_hba.conf \u9009\u9879 clientname=DN \u5141\u8bb8\u4e0e CN \u4ee5\u5916\u7684\u8bc1\u4e66\u5c5e\u6027\u8fdb\u884c\u6bd4\u8f83\uff0c\u5e76\u53ef\u4e0e ident \u6620\u5c04\u7ec4\u5408\u4f7f\u7528\u3002", "title": "\u5141\u8bb8\u5339\u914d SSL \u8bc1\u4e66\u7684\u4e13\u6709\u540d\u79f0\uff08DN\uff09\u7528\u4e8e\u5ba2\u6237\u7aef\u8bc1\u4e66\u8ba4\u8bc1", "commits": ["6d7a6feac"], "section": "\u670d\u52a1\u5668 / \u8ba4\u8bc1", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-8", "source_hash": "a1c4b4445be2abddc645ce4a66ad733f27a0293bb52b0b347b00b928ae8df8ce", "section_path": ["\u670d\u52a1\u5668", "\u8ba4\u8bc1"], "commit_groups": [["6d7a6feac"]], "identity_text": "Allow an SSL certificate's distinguished name (DN) to be matched for client certificate authentication (Andrew Dunstan) The new pg_hba.conf option clientname=DN allows comparison with certificate attributes beyond the CN and can be combined with ident maps.", "commit_aliases": ["6d7a6feac"], "source_commits": ["6d7a6feac"], "source_entry_id": "14.0/changes/055", "db_id": "bbd90bfe3d70ecf54bdddd0b0f0d0a6d", "patch_ids": ["bb83d4433b068b28cf43bb964cfcef60"], "statement_hash": "79820f3be8fe9569cae40c1d01a416688ace85fcebd7db63f609a67fb4617366", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-25ae8f3a0b4012b0", "migration": false}, {"id": "14.0-3d6902fd2ddea8a9", "cves": [], "html": "<p>\u5141\u8bb8 <code>pg_hba.conf</code> \u548c <a href=\"/docs/14/auth-username-maps.html\" title=\"21.2.\u00a0\u7528\u6237\u540d\u6620\u5c04\"><code>pg_ident.conf</code></a> \u8bb0\u5f55\u8de8\u8d8a\u591a\u884c\uff08Fabien Coelho\uff09<a href=\"https://postgr.es/c/8f8154a50\">\u00a7</a></p>\n<p>\u884c\u672b\u7684\u53cd\u659c\u6760\u5141\u8bb8\u8bb0\u5f55\u5185\u5bb9\u7eed\u5230\u4e0b\u4e00\u884c\u3002</p>", "text": "\u5141\u8bb8 pg_hba.conf \u548c pg_ident.conf \u8bb0\u5f55\u8de8\u8d8a\u591a\u884c\uff08Fabien Coelho\uff09\u00a7 \u884c\u672b\u7684\u53cd\u659c\u6760\u5141\u8bb8\u8bb0\u5f55\u5185\u5bb9\u7eed\u5230\u4e0b\u4e00\u884c\u3002", "title": "\u5141\u8bb8 pg_hba.conf \u548c pg_ident.conf \u8bb0\u5f55\u8de8\u8d8a\u591a\u884c", "commits": ["8f8154a50"], "section": "\u670d\u52a1\u5668 / \u8ba4\u8bc1", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-8", "source_hash": "26e2c1212b0732403e6d0731a857f5721961be2f7c01ff1036be107adc107d51", "section_path": ["\u670d\u52a1\u5668", "\u8ba4\u8bc1"], "commit_groups": [["8f8154a50"]], "identity_text": "Allow pg_hba.conf and pg_ident.conf records to span multiple lines (Fabien Coelho) A backslash at the end of a line allows record contents to be continued on the next line.", "commit_aliases": ["8f8154a50"], "source_commits": ["8f8154a50"], "source_entry_id": "14.0/changes/056", "db_id": "f818227cf0f17db5c0fe8d6cfa77d40f", "patch_ids": ["dd66a7c38bdfdfde400bba38ad71f162"], "statement_hash": "8cfd700fddcd937778fd6826721b72ad0182acdcec017709ffae2cc5141e73ab", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-3d6902fd2ddea8a9", "migration": false}, {"id": "14.0-4d5ae60a945708e5", "cves": [], "html": "<p>\u5141\u8bb8\u6307\u5b9a\u8bc1\u4e66\u540a\u9500\u5217\u8868\uff08<acronym>CRL</acronym>\uff09\u76ee\u5f55\uff08Kyotaro Horiguchi\uff09<a href=\"https://postgr.es/c/f5465fade\">\u00a7</a></p>\n<p>\u8fd9\u7531\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/14/runtime-config-connection.html#GUC-SSL-CRL-DIR\">ssl_crl_dir</a>\u548c libpq \u8fde\u63a5\u9009\u9879<a href=\"/docs/14/libpq.html#LIBPQ-CONNECT-SSLCRLDIR\">sslcrldir</a>\u63a7\u5236\u3002\u4ee5\u524d\u53ea\u80fd\u6307\u5b9a\u5355\u4e2a <acronym>CRL</acronym> \u6587\u4ef6\u3002</p>", "text": "\u5141\u8bb8\u6307\u5b9a\u8bc1\u4e66\u540a\u9500\u5217\u8868\uff08CRL\uff09\u76ee\u5f55\uff08Kyotaro Horiguchi\uff09\u00a7 \u8fd9\u7531\u670d\u52a1\u5668\u53c2\u6570ssl_crl_dir\u548c libpq \u8fde\u63a5\u9009\u9879sslcrldir\u63a7\u5236\u3002\u4ee5\u524d\u53ea\u80fd\u6307\u5b9a\u5355\u4e2a CRL \u6587\u4ef6\u3002", "title": "\u5141\u8bb8\u6307\u5b9a\u8bc1\u4e66\u540a\u9500\u5217\u8868\uff08CRL\uff09\u76ee\u5f55", "commits": ["f5465fade"], "section": "\u670d\u52a1\u5668 / \u8ba4\u8bc1", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-8", "source_hash": "662cdae4226dd5698dd22a75234f56adc3d5bfd32c840656f1dec7c04900d1d8", "section_path": ["\u670d\u52a1\u5668", "\u8ba4\u8bc1"], "commit_groups": [["f5465fade"]], "identity_text": "Allow the specification of a certificate revocation list (CRL) directory (Kyotaro Horiguchi) This is controlled by server parameter guc-ssl-crl-dir and libpq connection option libpq-connect-sslcrldir . Previously only single CRL files could be specified.", "commit_aliases": ["f5465fade"], "source_commits": ["f5465fade"], "source_entry_id": "14.0/changes/057", "db_id": "38e62967b96a0706d5328c0287145e0c", "patch_ids": ["103a80e0b7675377b70f76b86b558114"], "statement_hash": "e936bbc3f2b78889ddd12ad32d7f4b46174683374d387a7fb8c9559c7c036d1b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-4d5ae60a945708e5", "migration": false}, {"id": "14.0-fd15afbf35df0339", "cves": [], "html": "<p>\u5141\u8bb8\u4efb\u610f\u957f\u5ea6\u7684\u5bc6\u7801\uff08Tom Lane\uff0cNathan Bossart\uff09<a href=\"https://postgr.es/c/67a472d71\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4efb\u610f\u957f\u5ea6\u7684\u5bc6\u7801\uff08Tom Lane\uff0cNathan Bossart\uff09\u00a7", "title": "\u5141\u8bb8\u4efb\u610f\u957f\u5ea6\u7684\u5bc6\u7801", "commits": ["67a472d71"], "section": "\u670d\u52a1\u5668 / \u8ba4\u8bc1", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-8", "source_hash": "306a788bc2cc3e1b44bcc751d072b51c9fe91588a095fc37dab0dab4df3dd92c", "section_path": ["\u670d\u52a1\u5668", "\u8ba4\u8bc1"], "commit_groups": [["67a472d71"]], "identity_text": "Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart)", "commit_aliases": ["67a472d71"], "source_commits": ["67a472d71"], "source_entry_id": "14.0/changes/058", "db_id": "2d7255a485b32c58a5cba18c5aeaccd5", "patch_ids": ["2e1740bc94260276595f457faf51a744"], "statement_hash": "fe06b90311edf99ba491d8bec8918caa008391925cc2f60e3a485047dd7c25ad", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-fd15afbf35df0339", "migration": false}, {"id": "14.0-e3b24203e085cd8d", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/14/runtime-config-client.html#GUC-IDLE-SESSION-TIMEOUT\">idle_session_timeout</a>\u4ee5\u5173\u95ed\u7a7a\u95f2\u4f1a\u8bdd\uff08Li Japin\uff09<a href=\"https://postgr.es/c/9877374be\">\u00a7</a></p>\n<p>\u8fd9\u7c7b\u4f3c\u4e8e<a href=\"/docs/14/runtime-config-client.html#GUC-IDLE-IN-TRANSACTION-SESSION-TIMEOUT\">idle_in_transaction_session_timeout</a>\u3002</p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570idle_session_timeout\u4ee5\u5173\u95ed\u7a7a\u95f2\u4f1a\u8bdd\uff08Li Japin\uff09\u00a7 \u8fd9\u7c7b\u4f3c\u4e8eidle_in_transaction_session_timeout\u3002", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570idle_session_timeout\u4ee5\u5173\u95ed\u7a7a\u95f2\u4f1a\u8bdd", "commits": ["9877374be"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-9", "source_hash": "ecef98c865094f1866dc2b79fdbd26948e0a82d2b02d2aedbbb7b55156b96852", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["9877374be"]], "identity_text": "Add server parameter guc-idle-session-timeout to close idle sessions (Li Japin) This is similar to guc-idle-in-transaction-session-timeout .", "commit_aliases": ["9877374be"], "source_commits": ["9877374be"], "source_entry_id": "14.0/changes/059", "db_id": "f4ac586aa4c2a2be3535c3e6ce4a4038", "patch_ids": ["1067c64265ae79e2abd7fee386ec2928"], "statement_hash": "20963487e9472e12544a80d4e9b425664c2930727af2f4725e7e0f2b96510f3a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-e3b24203e085cd8d", "migration": false}, {"id": "14.0-c72dfa5af0625790", "cves": [], "html": "<p>\u5c06<a href=\"/docs/14/runtime-config-wal.html#GUC-CHECKPOINT-COMPLETION-TARGET\">checkpoint_completion_target</a>\u7684\u9ed8\u8ba4\u503c\u6539\u4e3a 0.9\uff08Stephen Frost\uff09<a href=\"https://postgr.es/c/bbcc4eb2e\">\u00a7</a></p>\n<p>\u4e4b\u524d\u7684\u9ed8\u8ba4\u503c\u4e3a 0.5\u3002</p>", "text": "\u5c06checkpoint_completion_target\u7684\u9ed8\u8ba4\u503c\u6539\u4e3a 0.9\uff08Stephen Frost\uff09\u00a7 \u4e4b\u524d\u7684\u9ed8\u8ba4\u503c\u4e3a 0.5\u3002", "title": "\u5c06checkpoint_completion_target\u7684\u9ed8\u8ba4\u503c\u6539\u4e3a 0.9", "commits": ["bbcc4eb2e"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-9", "source_hash": "d9281c3da88e4a2d91a11fb56f71c6990e6ba0d5231750b8c879b69c4d73a769", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["bbcc4eb2e"]], "identity_text": "Change guc-checkpoint-completion-target default to 0.9 (Stephen Frost) The previous default was 0.5.", "commit_aliases": ["bbcc4eb2e"], "source_commits": ["bbcc4eb2e"], "source_entry_id": "14.0/changes/060", "db_id": "d9203edbca1a7407642fc25d70e29d1d", "patch_ids": ["c2645b69754ba586669ff290e4e145c2"], "statement_hash": "121037b95e68ee531dfbd9000b6972c62e792814a8a3a0bbbc85da7131cc96fa", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-c72dfa5af0625790", "migration": false}, {"id": "14.0-9a050717d138a34c", "cves": [], "html": "<p>\u5141\u8bb8\u5728<a href=\"/docs/14/runtime-config-logging.html#GUC-LOG-LINE-PREFIX\">log_line_prefix</a>\u4e2d\u4f7f\u7528 <code>%P</code> \u6765\u62a5\u544a\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u7684\u5e76\u884c\u7ec4\u9886\u5bfc\u8005 PID\uff08Justin Pryzby\uff09<a href=\"https://postgr.es/c/b8fdee7d0\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728log_line_prefix\u4e2d\u4f7f\u7528 %P \u6765\u62a5\u544a\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u7684\u5e76\u884c\u7ec4\u9886\u5bfc\u8005 PID\uff08Justin Pryzby\uff09\u00a7", "title": "\u5141\u8bb8\u5728log_line_prefix\u4e2d\u4f7f\u7528 %P \u6765\u62a5\u544a\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u7684\u5e76\u884c\u7ec4\u9886\u5bfc\u8005 PID", "commits": ["b8fdee7d0"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-9", "source_hash": "0cd354a44885dd9064ef6ee6a5b47cd04a13d31ced24b0d4e82e9875a92fdb4c", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["b8fdee7d0"]], "identity_text": "Allow %P in guc-log-line-prefix to report the parallel group leader's PID for a parallel worker (Justin Pryzby)", "commit_aliases": ["b8fdee7d0"], "source_commits": ["b8fdee7d0"], "source_entry_id": "14.0/changes/061", "db_id": "2f04657cdf1d83599590a016d6776028", "patch_ids": ["9a709bd598aa718a8346e02f96485300"], "statement_hash": "1b5b81122ba4285ba6a5a0d9c2c1e6e9132b6b07e3dad45912c9c63405fc0c96", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-9a050717d138a34c", "migration": false}, {"id": "14.0-86d17abe540387c7", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/14/runtime-config-connection.html#GUC-UNIX-SOCKET-DIRECTORIES\">unix_socket_directories</a>\u4ee5\u5355\u72ec\u7684\u3001\u9017\u53f7\u5206\u9694\u7684\u5f15\u53f7\u5b57\u7b26\u4e32\u6307\u5b9a\u8def\u5f84\uff08Ian Lawrence Barwick\uff09<a href=\"https://postgr.es/c/a05dbf477\">\u00a7</a></p>\n<p>\u4ee5\u524d\u6240\u6709\u8def\u5f84\u5fc5\u987b\u5728\u4e00\u4e2a\u5f15\u53f7\u5b57\u7b26\u4e32\u4e2d\u3002</p>", "text": "\u5141\u8bb8unix_socket_directories\u4ee5\u5355\u72ec\u7684\u3001\u9017\u53f7\u5206\u9694\u7684\u5f15\u53f7\u5b57\u7b26\u4e32\u6307\u5b9a\u8def\u5f84\uff08Ian Lawrence Barwick\uff09\u00a7 \u4ee5\u524d\u6240\u6709\u8def\u5f84\u5fc5\u987b\u5728\u4e00\u4e2a\u5f15\u53f7\u5b57\u7b26\u4e32\u4e2d\u3002", "title": "\u5141\u8bb8unix_socket_directories\u4ee5\u5355\u72ec\u7684\u3001\u9017\u53f7\u5206\u9694\u7684\u5f15\u53f7\u5b57\u7b26\u4e32\u6307\u5b9a\u8def\u5f84", "commits": ["a05dbf477"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-9", "source_hash": "69b861d0ea2ae12736c1c32bb5abfc7c9e0bb64a367f103557b1da8086b3aef7", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["a05dbf477"]], "identity_text": "Allow guc-unix-socket-directories to specify paths as individual, comma-separated quoted strings (Ian Lawrence Barwick) Previously all the paths had to be in a single quoted string.", "commit_aliases": ["a05dbf477"], "source_commits": ["a05dbf477"], "source_entry_id": "14.0/changes/062", "db_id": "de551dbe6bc7c25bf654175a24267d22", "patch_ids": ["9ce0280978d0930cfb1037860b5eabde"], "statement_hash": "0de46eae250db545b682defd060fe224346184d9d66fe9199f39b83c60694a93", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-86d17abe540387c7", "migration": false}, {"id": "14.0-f6544109cc751398", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u542f\u52a8\u65f6\u5206\u914d\u52a8\u6001\u5171\u4eab\u5185\u5b58\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/84b1c63ad\">\u00a7</a></p>\n<p>\u8fd9\u7531<a href=\"/docs/14/runtime-config-resource.html#GUC-MIN-DYNAMIC-SHARED-MEMORY\">min_dynamic_shared_memory</a>\u63a7\u5236\u3002\u8fd9\u5141\u8bb8\u66f4\u591a\u5730\u4f7f\u7528\u5927\u9875\u9762\u3002</p>", "text": "\u5141\u8bb8\u5728\u542f\u52a8\u65f6\u5206\u914d\u52a8\u6001\u5171\u4eab\u5185\u5b58\uff08Thomas Munro\uff09\u00a7 \u8fd9\u7531min_dynamic_shared_memory\u63a7\u5236\u3002\u8fd9\u5141\u8bb8\u66f4\u591a\u5730\u4f7f\u7528\u5927\u9875\u9762\u3002", "title": "\u5141\u8bb8\u5728\u542f\u52a8\u65f6\u5206\u914d\u52a8\u6001\u5171\u4eab\u5185\u5b58", "commits": ["84b1c63ad"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-9", "source_hash": "8a600082bfec594166a48274bc8bfe409030b88a903ab6cd0f009470750625d8", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["84b1c63ad"]], "identity_text": "Allow startup allocation of dynamic shared memory (Thomas Munro) This is controlled by guc-min-dynamic-shared-memory . This allows more use of huge pages.", "commit_aliases": ["84b1c63ad"], "source_commits": ["84b1c63ad"], "source_entry_id": "14.0/changes/063", "db_id": "a8b54a702c3d8c69ce1dd2b246288331", "patch_ids": ["272304db9fcb1261b35aa1b17d283ce0"], "statement_hash": "04b2c9d1d7a159148a0029030f5230d92ed0ca6fadb58d6a85ed9f4d7ca6504b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-f6544109cc751398", "migration": false}, {"id": "14.0-b3eb85760c6fbae1", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/14/runtime-config-resource.html#GUC-HUGE-PAGE-SIZE\">huge_page_size</a>\u4ee5\u63a7\u5236 Linux \u4e0a\u4f7f\u7528\u7684\u5927\u9875\u9762\u5927\u5c0f\uff08Odin Ugedal\uff09<a href=\"https://postgr.es/c/d2bddc250\">\u00a7</a></p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570huge_page_size\u4ee5\u63a7\u5236 Linux \u4e0a\u4f7f\u7528\u7684\u5927\u9875\u9762\u5927\u5c0f\uff08Odin Ugedal\uff09\u00a7", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570huge_page_size\u4ee5\u63a7\u5236 Linux \u4e0a\u4f7f\u7528\u7684\u5927\u9875\u9762\u5927\u5c0f", "commits": ["d2bddc250"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-9", "source_hash": "94bde3f44f9afa04b1060bc2c217aa919709bc3428a5665407262643a4c3630c", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["d2bddc250"]], "identity_text": "Add server parameter guc-huge-page-size to control the size of huge pages used on Linux (Odin Ugedal)", "commit_aliases": ["d2bddc250"], "source_commits": ["d2bddc250"], "source_entry_id": "14.0/changes/064", "db_id": "ba8bb9eccebc8bd5781504c2b326972c", "patch_ids": ["1a705b5c20cd45034f2dde4aeeeec500"], "statement_hash": "7bd08c6982d5fad20ce8bf912ec2584ed37c2730ce01265de88a0498acc2d5a4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-b3eb85760c6fbae1", "migration": false}, {"id": "14.0-0bc94b487b1a0bdb", "cves": [], "html": "<p>\u5141\u8bb8\u901a\u8fc7<a href=\"/docs/14/app-pgrewind.html\" title=\"pg_rewind\"><span>pg_rewind</span></a>\u56de\u9000\u5907\u5e93\uff08Heikki Linnakangas\uff09<a href=\"https://postgr.es/c/9c4f5192f\">\u00a7</a></p>", "text": "\u5141\u8bb8\u901a\u8fc7pg_rewind\u56de\u9000\u5907\u5e93\uff08Heikki Linnakangas\uff09\u00a7", "title": "\u5141\u8bb8\u901a\u8fc7pg_rewind\u56de\u9000\u5907\u5e93", "commits": ["9c4f5192f"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-2", "source_hash": "ca5f148cb1da266c003c0cfaed90617aafb2cd8b74eaeb74885982cb378259a9", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["9c4f5192f"]], "identity_text": "Allow standby servers to be rewound via pg_rewind (Heikki Linnakangas)", "commit_aliases": ["9c4f5192f"], "source_commits": ["9c4f5192f"], "source_entry_id": "14.0/changes/065", "db_id": "9d9e8aa4ea26bd1d2e95e151339985d8", "patch_ids": ["19fba2bac6e8cfefa619214b1033f5f7"], "statement_hash": "290b1ad9731d8380bec6eb3cf31cf1a03db99a90757ef04f72105db51c22c060", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-0bc94b487b1a0bdb", "migration": false}, {"id": "14.0-b11723d38feaf0f2", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u670d\u52a1\u5668\u91cd\u8f7d\u65f6\u66f4\u6539<a href=\"/docs/14/runtime-config-wal.html#GUC-RESTORE-COMMAND\">restore_command</a>\u8bbe\u7f6e\uff08Sergei Kornilov\uff09<a href=\"https://postgr.es/c/942305a36\">\u00a7</a></p>\n<p>\u4f60\u4e5f\u53ef\u4ee5\u5c06 <code>restore_command</code> \u8bbe\u7f6e\u4e3a\u7a7a\u5b57\u7b26\u4e32\u5e76\u91cd\u8f7d\uff0c\u4ee5\u5f3a\u5236\u6062\u590d\u4ec5\u4ece <a href=\"/docs/14/storage.html#STORAGE-FILE-LAYOUT\" title=\"70.1.\u00a0\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40\"><code>pg_wal</code></a> \u76ee\u5f55\u8bfb\u53d6\u3002</p>", "text": "\u5141\u8bb8\u5728\u670d\u52a1\u5668\u91cd\u8f7d\u65f6\u66f4\u6539restore_command\u8bbe\u7f6e\uff08Sergei Kornilov\uff09\u00a7 \u4f60\u4e5f\u53ef\u4ee5\u5c06 restore_command \u8bbe\u7f6e\u4e3a\u7a7a\u5b57\u7b26\u4e32\u5e76\u91cd\u8f7d\uff0c\u4ee5\u5f3a\u5236\u6062\u590d\u4ec5\u4ece pg_wal \u76ee\u5f55\u8bfb\u53d6\u3002", "title": "\u5141\u8bb8\u5728\u670d\u52a1\u5668\u91cd\u8f7d\u65f6\u66f4\u6539restore_command\u8bbe\u7f6e", "commits": ["942305a36"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-2", "source_hash": "487f93887a3da2f12423c8aa8d638f18e31198778dc25bced4f1b3dd3876c8b2", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["942305a36"]], "identity_text": "Allow the guc-restore-command setting to be changed during a server reload (Sergei Kornilov) You can also set restore_command to an empty string and reload to force recovery to only read from the pg_wal directory.", "commit_aliases": ["942305a36"], "source_commits": ["942305a36"], "source_entry_id": "14.0/changes/066", "db_id": "138b84f4b9a64bbb475aac9c6d48f3ec", "patch_ids": ["b98b5f14dab2cf9741e5bba2592fef2d"], "statement_hash": "235cdd8803d4b65a3f52972a76a70cd74c93c7ccd9deff769473fd8419911909", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-b11723d38feaf0f2", "migration": false}, {"id": "14.0-83cddc46d98f5518", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/14/runtime-config-logging.html#GUC-LOG-RECOVERY-CONFLICT-WAITS\">log_recovery_conflict_waits</a>\u4ee5\u62a5\u544a\u957f\u65f6\u95f4\u7684\u6062\u590d\u51b2\u7a81\u7b49\u5f85\uff08Bertrand Drouvot\uff0cMasahiko Sawada\uff09<a href=\"https://postgr.es/c/0650ff230\">\u00a7</a> <a href=\"https://postgr.es/c/39b03690b\">\u00a7</a></p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570log_recovery_conflict_waits\u4ee5\u62a5\u544a\u957f\u65f6\u95f4\u7684\u6062\u590d\u51b2\u7a81\u7b49\u5f85\uff08Bertrand Drouvot\uff0cMasahiko Sawada\uff09\u00a7 \u00a7", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570log_recovery_conflict_waits\u4ee5\u62a5\u544a\u957f\u65f6\u95f4\u7684\u6062\u590d\u51b2\u7a81\u7b49\u5f85", "commits": ["0650ff230", "39b03690b"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-2", "source_hash": "172b73d78559a5ac937d31d61f9208eec117072432af211872d5302a83cc97e7", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["0650ff230"], ["39b03690b"]], "identity_text": "Add server parameter guc-log-recovery-conflict-waits to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada)", "commit_aliases": ["0650ff230", "39b03690b"], "source_commits": ["0650ff230", "39b03690b"], "source_entry_id": "14.0/changes/067", "db_id": "dc710711dabbbfa20d66635351f3c8b2", "patch_ids": ["3d92a7a0304db7e3277a78e2d24be69a", "b110e03039bbeec65b6603115cd4346a"], "statement_hash": "a8ee92128511be5b80820615b13f7ab5888fe02c5c600baecf6f3e3072c08bbe", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-83cddc46d98f5518", "migration": false}, {"id": "14.0-cc78ffab6f9eafb5", "cves": [], "html": "<p>\u5f53\u4e3b\u5e93\u4ee5\u963b\u6b62\u5907\u5e93\u91cd\u653e\u7684\u65b9\u5f0f\u66f4\u6539\u53c2\u6570\u65f6\uff0c\u6682\u505c\u70ed\u5907\u5e93\u4e0a\u7684\u6062\u590d\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/15251c0a6\">\u00a7</a></p>\n<p>\u4ee5\u524d\u5907\u5e93\u4f1a\u7acb\u5373\u5173\u95ed\u3002</p>", "text": "\u5f53\u4e3b\u5e93\u4ee5\u963b\u6b62\u5907\u5e93\u91cd\u653e\u7684\u65b9\u5f0f\u66f4\u6539\u53c2\u6570\u65f6\uff0c\u6682\u505c\u70ed\u5907\u5e93\u4e0a\u7684\u6062\u590d\uff08Peter Eisentraut\uff09\u00a7 \u4ee5\u524d\u5907\u5e93\u4f1a\u7acb\u5373\u5173\u95ed\u3002", "title": "\u5f53\u4e3b\u5e93\u4ee5\u963b\u6b62\u5907\u5e93\u91cd\u653e\u7684\u65b9\u5f0f\u66f4\u6539\u53c2\u6570\u65f6\uff0c\u6682\u505c\u70ed\u5907\u5e93\u4e0a\u7684\u6062\u590d", "commits": ["15251c0a6"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-2", "source_hash": "ca3a88a2d2a58e8baab9cf8d6ad69ac06d8fe4c19092d9c7880189d087ad7400", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["15251c0a6"]], "identity_text": "Pause recovery on a hot standby server if the primary changes its parameters in a way that prevents replay on the standby (Peter Eisentraut) Previously the standby would shut down immediately.", "commit_aliases": ["15251c0a6"], "source_commits": ["15251c0a6"], "source_entry_id": "14.0/changes/068", "db_id": "6163138ab30195ee21c530e93e56d269", "patch_ids": ["2a5e7a81e21fd777c4843b20df10de93"], "statement_hash": "bcf835975837698158bc618a4514b38f195f7734f5e6b2cbaad88e8c13071bb1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-cc78ffab6f9eafb5", "migration": false}, {"id": "14.0-7b5dd09c0d685103", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/14/functions-admin.html#FUNCTIONS-RECOVERY-CONTROL\" title=\"9.27.4.\u00a0\u6062\u590d\u63a7\u5236\u51fd\u6570\"><code>pg_get_wal_replay_pause_state()</code></a> \u4ee5\u62a5\u544a\u6062\u590d\u72b6\u6001\uff08Dilip Kumar\uff09<a href=\"https://postgr.es/c/32fd2b57d\">\u00a7</a></p>\n<p>\u5b83\u6bd4 <a href=\"/docs/14/functions-admin.html#FUNCTIONS-RECOVERY-CONTROL\" title=\"9.27.4.\u00a0\u6062\u590d\u63a7\u5236\u51fd\u6570\"><code>pg_is_wal_replay_paused()</code></a> \u63d0\u4f9b\u66f4\u8be6\u7ec6\u7684\u4fe1\u606f\uff0c\u540e\u8005\u4ecd\u7136\u5b58\u5728\u3002</p>", "text": "\u589e\u52a0\u51fd\u6570 pg_get_wal_replay_pause_state() \u4ee5\u62a5\u544a\u6062\u590d\u72b6\u6001\uff08Dilip Kumar\uff09\u00a7 \u5b83\u6bd4 pg_is_wal_replay_paused() \u63d0\u4f9b\u66f4\u8be6\u7ec6\u7684\u4fe1\u606f\uff0c\u540e\u8005\u4ecd\u7136\u5b58\u5728\u3002", "title": "\u589e\u52a0\u51fd\u6570 pg_get_wal_replay_pause_state() \u4ee5\u62a5\u544a\u6062\u590d\u72b6\u6001", "commits": ["32fd2b57d"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-2", "source_hash": "34ef2d8933c381de2c57318c3f5bc1c9cb4543483030db9929da4b1597ced74e", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["32fd2b57d"]], "identity_text": "Add function pg_get_wal_replay_pause_state() to report the recovery state (Dilip Kumar) It gives more detailed information than pg_is_wal_replay_paused(), which still exists.", "commit_aliases": ["32fd2b57d"], "source_commits": ["32fd2b57d"], "source_entry_id": "14.0/changes/069", "db_id": "11a86f0f8311e23950ca8e4394d9b7ba", "patch_ids": ["51dc9061f36ea1d58a269f6798c745c3"], "statement_hash": "b3c90ade75dd3224eaa7b32a0d33117dc4ac2b45f792c09b9d8aba62f92640e0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-7b5dd09c0d685103", "migration": false}, {"id": "14.0-bdc60d104031964e", "cves": [], "html": "<p>\u589e\u52a0\u65b0\u7684\u53ea\u8bfb\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/14/runtime-config-preset.html#GUC-IN-HOT-STANDBY\">in_hot_standby</a>\uff08Haribabu Kommi\uff0cGreg Nancarrow\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/bf8a662c9\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u5ba2\u6237\u7aef\u8f7b\u677e\u68c0\u6d4b\u662f\u5426\u8fde\u63a5\u5230\u70ed\u5907\u5e93\u3002</p>", "text": "\u589e\u52a0\u65b0\u7684\u53ea\u8bfb\u670d\u52a1\u5668\u53c2\u6570in_hot_standby\uff08Haribabu Kommi\uff0cGreg Nancarrow\uff0cTom Lane\uff09\u00a7 \u8fd9\u5141\u8bb8\u5ba2\u6237\u7aef\u8f7b\u677e\u68c0\u6d4b\u662f\u5426\u8fde\u63a5\u5230\u70ed\u5907\u5e93\u3002", "title": "\u589e\u52a0\u65b0\u7684\u53ea\u8bfb\u670d\u52a1\u5668\u53c2\u6570in_hot_standby", "commits": ["bf8a662c9"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-2", "source_hash": "3c7e4371abc38207681079de7762d9065a24818e175cc3bb3c6007b936a50b42", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["bf8a662c9"]], "identity_text": "Add new read-only server parameter guc-in-hot-standby (Haribabu Kommi, Greg Nancarrow, Tom Lane) This allows clients to easily detect whether they are connected to a hot standby server.", "commit_aliases": ["bf8a662c9"], "source_commits": ["bf8a662c9"], "source_entry_id": "14.0/changes/070", "db_id": "c91622c9f69dc46456cfe75fcdb9e8d6", "patch_ids": ["79d3832fcea245effcb09c45dd98961c"], "statement_hash": "eaf7d20d5e6e7904b660e9bc4a80bc00da21bcd90be6a4f4c1c2d38771d80340", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-bdc60d104031964e", "migration": false}, {"id": "14.0-f9ed0051537457b1", "cves": [], "html": "<p>\u5728\u5177\u6709\u5927\u91cf\u5171\u4eab\u7f13\u51b2\u533a\u7684\u96c6\u7c07\u4e0a\u52a0\u901f\u6062\u590d\u671f\u95f4\u5c0f\u8868\u7684\u622a\u65ad\uff08Kirk Jamison\uff09<a href=\"https://postgr.es/c/d6ad34f34\">\u00a7</a></p>", "text": "\u5728\u5177\u6709\u5927\u91cf\u5171\u4eab\u7f13\u51b2\u533a\u7684\u96c6\u7c07\u4e0a\u52a0\u901f\u6062\u590d\u671f\u95f4\u5c0f\u8868\u7684\u622a\u65ad\uff08Kirk Jamison\uff09\u00a7", "title": "\u5728\u5177\u6709\u5927\u91cf\u5171\u4eab\u7f13\u51b2\u533a\u7684\u96c6\u7c07\u4e0a\u52a0\u901f\u6062\u590d\u671f\u95f4\u5c0f\u8868\u7684\u622a\u65ad", "commits": ["d6ad34f34"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-2", "source_hash": "fa351c5bc4941b293b7715d7485fa40cb726a04910fb799072dd41f1a7232dec", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["d6ad34f34"]], "identity_text": "Speed truncation of small tables during recovery on clusters with a large number of shared buffers (Kirk Jamison)", "commit_aliases": ["d6ad34f34"], "source_commits": ["d6ad34f34"], "source_entry_id": "14.0/changes/071", "db_id": "0e485b818fec3ba8c53429c1afd999e3", "patch_ids": ["a807966e7e2457e7d8d80a2ffcbc88ee"], "statement_hash": "7f8feb5af257af39660e5f865912cd53159a17b5250a1c473c4eb6753a3a1360", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-f9ed0051537457b1", "migration": false}, {"id": "14.0-63f418b787a5bace", "cves": [], "html": "<p>\u5141\u8bb8\u5728 Linux \u4e0a\u5d29\u6e83\u6062\u590d\u5f00\u59cb\u65f6\u8fdb\u884c\u6587\u4ef6\u7cfb\u7edf\u540c\u6b65\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/61752afb2\">\u00a7</a></p>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c<span>PostgreSQL</span> \u5728\u5d29\u6e83\u6062\u590d\u5f00\u59cb\u65f6\u6253\u5f00\u5e76 fsync \u6570\u636e\u5e93\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u6587\u4ef6\u3002\u65b0\u8bbe\u7f6e<a href=\"/docs/14/runtime-config-error-handling.html#GUC-RECOVERY-INIT-SYNC-METHOD\">recovery_init_sync_method</a><code>=syncfs</code> \u6539\u4e3a\u540c\u6b65\u96c6\u7c07\u4f7f\u7528\u7684\u6bcf\u4e2a\u6587\u4ef6\u7cfb\u7edf\u3002\u8fd9\u5141\u8bb8\u5728\u5177\u6709\u8bb8\u591a\u6570\u636e\u5e93\u6587\u4ef6\u7684\u7cfb\u7edf\u4e0a\u66f4\u5feb\u5730\u6062\u590d\u3002</p>", "text": "\u5141\u8bb8\u5728 Linux \u4e0a\u5d29\u6e83\u6062\u590d\u5f00\u59cb\u65f6\u8fdb\u884c\u6587\u4ef6\u7cfb\u7edf\u540c\u6b65\uff08Thomas Munro\uff09\u00a7 \u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cPostgreSQL \u5728\u5d29\u6e83\u6062\u590d\u5f00\u59cb\u65f6\u6253\u5f00\u5e76 fsync \u6570\u636e\u5e93\u96c6\u7c07\u4e2d\u7684\u6bcf\u4e2a\u6570\u636e\u6587\u4ef6\u3002\u65b0\u8bbe\u7f6erecovery_init_sync_method=syncfs \u6539\u4e3a\u540c\u6b65\u96c6\u7c07\u4f7f\u7528\u7684\u6bcf\u4e2a\u6587\u4ef6\u7cfb\u7edf\u3002\u8fd9\u5141\u8bb8\u5728\u5177\u6709\u8bb8\u591a\u6570\u636e\u5e93\u6587\u4ef6\u7684\u7cfb\u7edf\u4e0a\u66f4\u5feb\u5730\u6062\u590d\u3002", "title": "\u5141\u8bb8\u5728 Linux \u4e0a\u5d29\u6e83\u6062\u590d\u5f00\u59cb\u65f6\u8fdb\u884c\u6587\u4ef6\u7cfb\u7edf\u540c\u6b65", "commits": ["61752afb2"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-2", "source_hash": "95ef0a44d1a097d55625b6e97e95216319a4f8829df4bc9401a0bce428015601", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["61752afb2"]], "identity_text": "Allow file system sync at the start of crash recovery on Linux (Thomas Munro) By default, PostgreSQL opens and fsyncs each data file in the database cluster at the start of crash recovery. A new setting, guc-recovery-init-sync-method =syncfs, instead syncs each filesystem used by the cluster. This allows for faster recovery on systems with many database files.", "commit_aliases": ["61752afb2"], "source_commits": ["61752afb2"], "source_entry_id": "14.0/changes/072", "db_id": "79e172b4f02e73f18c3e63d8aa7f5333", "patch_ids": ["184371764fdad7a08da674e1281700f2"], "statement_hash": "5432eff6c9830aba4bc3fd963fed7a4c097b815a0c0a0138152f4dd3da9edf4c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-63f418b787a5bace", "migration": false}, {"id": "14.0-067a08b65b29967e-1", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/14/functions-info.html\" title=\"9.26.\u00a0\u7cfb\u7edf\u4fe1\u606f\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>pg_xact_commit_timestamp_origin()</code></a> \u4ee5\u8fd4\u56de\u6307\u5b9a\u4e8b\u52a1\u7684\u63d0\u4ea4\u65f6\u95f4\u6233\u548c\u590d\u5236\u6765\u6e90\uff08Movead Li\uff09<a href=\"https://postgr.es/c/b1e48bbe6\">\u00a7</a></p>", "text": "\u589e\u52a0\u51fd\u6570 pg_xact_commit_timestamp_origin() \u4ee5\u8fd4\u56de\u6307\u5b9a\u4e8b\u52a1\u7684\u63d0\u4ea4\u65f6\u95f4\u6233\u548c\u590d\u5236\u6765\u6e90\uff08Movead Li\uff09\u00a7", "title": "\u589e\u52a0\u51fd\u6570 pg_xact_commit_timestamp_origin() \u4ee5\u8fd4\u56de\u6307\u5b9a\u4e8b\u52a1\u7684\u63d0\u4ea4\u65f6\u95f4\u6233\u548c\u590d\u5236\u6765\u6e90", "commits": ["b1e48bbe6"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-2", "source_hash": "fb8c5cc86ef3de661e8527010ba938f991e62640050444eae6377b148e5c14a4", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["b1e48bbe6"]], "identity_text": "Add function pg_xact_commit_timestamp_origin() to return the commit timestamp and replication origin of the specified transaction (Movead Li)", "commit_aliases": ["b1e48bbe6"], "source_commits": ["b1e48bbe6"], "source_entry_id": "14.0/changes/073", "db_id": "f844229d4635e67fac6dddf2f4b4a54c", "patch_ids": ["0dd136743c3ca2e7816c5c325cf2c8f9"], "statement_hash": "c097024c282ad5d78d8cbc8724f77d5cd0f8ed4de2d0b1b362ada83eccf260c2", "relations": [{"rule": 2, "type": "related", "target": "ea2baac664953d33e5a1823e19ddf662", "evidence": {"same_day": true, "patch_ids": ["0dd136743c3ca2e7816c5c325cf2c8f9"], "ambiguous_patch_ids": ["0dd136743c3ca2e7816c5c325cf2c8f9"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-067a08b65b29967e-1", "migration": false}, {"id": "14.0-067a08b65b29967e-2", "cves": [], "html": "<p>\u5728 <a href=\"/docs/14/functions-info.html\" title=\"9.26.\u00a0\u7cfb\u7edf\u4fe1\u606f\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>pg_last_committed_xact()</code></a> \u8fd4\u56de\u7684\u8bb0\u5f55\u4e2d\u589e\u52a0\u590d\u5236\u6765\u6e90\uff08Movead Li\uff09<a href=\"https://postgr.es/c/b1e48bbe6\">\u00a7</a></p>", "text": "\u5728 pg_last_committed_xact() \u8fd4\u56de\u7684\u8bb0\u5f55\u4e2d\u589e\u52a0\u590d\u5236\u6765\u6e90\uff08Movead Li\uff09\u00a7", "title": "\u5728 pg_last_committed_xact() \u8fd4\u56de\u7684\u8bb0\u5f55\u4e2d\u589e\u52a0\u590d\u5236\u6765\u6e90", "commits": ["b1e48bbe6"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-2", "source_hash": "b2625fdd8246cf1664a43babb81d1e34c38f811909ab1b44085305ec2f4e2052", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["b1e48bbe6"]], "identity_text": "Add the replication origin to the record returned by pg_last_committed_xact() (Movead Li)", "commit_aliases": ["b1e48bbe6"], "source_commits": ["b1e48bbe6"], "source_entry_id": "14.0/changes/074", "db_id": "ea2baac664953d33e5a1823e19ddf662", "patch_ids": ["0dd136743c3ca2e7816c5c325cf2c8f9"], "statement_hash": "ded13f05e3583653e565da60d9522781a003cd4e4d1b27c7f2eada4cd66362bd", "relations": [{"rule": 2, "type": "related", "target": "f844229d4635e67fac6dddf2f4b4a54c", "evidence": {"same_day": true, "patch_ids": ["0dd136743c3ca2e7816c5c325cf2c8f9"], "ambiguous_patch_ids": ["0dd136743c3ca2e7816c5c325cf2c8f9"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-067a08b65b29967e-2", "migration": false}, {"id": "14.0-d2b0db40e6b6d484", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528\u6807\u51c6\u51fd\u6570\u6743\u9650\u63a7\u5236\u6765\u63a7\u5236\u590d\u5236<a href=\"/docs/14/functions-admin.html#FUNCTIONS-REPLICATION\" title=\"9.27.6.\u00a0\u590d\u5236\u7ba1\u7406\u51fd\u6570\">\u6765\u6e90\u51fd\u6570</a>\uff08Mart\u00edn Marqu\u00e9s\uff09<a href=\"https://postgr.es/c/cc072641d\">\u00a7</a></p>\n<p>\u4ee5\u524d\u8fd9\u4e9b\u51fd\u6570\u53ea\u80fd\u7531\u8d85\u7ea7\u7528\u6237\u6267\u884c\uff0c\u8fd9\u4ecd\u7136\u662f\u9ed8\u8ba4\u503c\u3002</p>", "text": "\u5141\u8bb8\u4f7f\u7528\u6807\u51c6\u51fd\u6570\u6743\u9650\u63a7\u5236\u6765\u63a7\u5236\u590d\u5236\u6765\u6e90\u51fd\u6570\uff08Mart\u00edn Marqu\u00e9s\uff09\u00a7 \u4ee5\u524d\u8fd9\u4e9b\u51fd\u6570\u53ea\u80fd\u7531\u8d85\u7ea7\u7528\u6237\u6267\u884c\uff0c\u8fd9\u4ecd\u7136\u662f\u9ed8\u8ba4\u503c\u3002", "title": "\u5141\u8bb8\u4f7f\u7528\u6807\u51c6\u51fd\u6570\u6743\u9650\u63a7\u5236\u6765\u63a7\u5236\u590d\u5236\u6765\u6e90\u51fd\u6570", "commits": ["cc072641d"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-2", "source_hash": "cb1db309d6cc792dd79e8f34e873072934e33157035c63c0a7883a2be4494aad", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["cc072641d"]], "identity_text": "Allow replication origin functions to be controlled using standard function permission controls (Mart\u00edn Marqu\u00e9s) Previously these functions could only be executed by superusers, and this is still the default.", "commit_aliases": ["cc072641d"], "source_commits": ["cc072641d"], "source_entry_id": "14.0/changes/075", "db_id": "ceb5d5cbc8f5808c011b50d0cb4b4a0f", "patch_ids": ["3d6bd3393a3c675414ce82b9e93cb708"], "statement_hash": "fafee7cb7779520f9fee0a29c2fa40970b885a702b6f8747d0c4ed95e12ef4f4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-d2b0db40e6b6d484", "migration": false}, {"id": "14.0-6d0239b4d9087fb5-1", "cves": [], "html": "<p>\u5141\u8bb8\u903b\u8f91\u590d\u5236\u5c06\u957f\u65f6\u95f4\u8fdb\u884c\u4e2d\u7684\u4e8b\u52a1\u6d41\u5f0f\u4f20\u8f93\u7ed9\u8ba2\u9605\u8005\uff08Dilip Kumar\uff0cAmit Kapila\uff0cAjin Cherian\uff0cTomas Vondra\uff0cNikhil Sontakke\uff0cStas Kelvich\uff09<a href=\"https://postgr.es/c/464824323\">\u00a7</a> <a href=\"https://postgr.es/c/0aa8a01d0\">\u00a7</a> <a href=\"https://postgr.es/c/a271a1b50\">\u00a7</a> <a href=\"https://postgr.es/c/7259736a6\">\u00a7</a></p>\n<p>\u4ee5\u524d\u8d85\u8fc7<a href=\"/docs/14/runtime-config-resource.html#GUC-LOGICAL-DECODING-WORK-MEM\">logical_decoding_work_mem</a>\u7684\u4e8b\u52a1\u4f1a\u88ab\u5199\u5165\u78c1\u76d8\u76f4\u5230\u4e8b\u52a1\u5b8c\u6210\u3002</p>", "text": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u5c06\u957f\u65f6\u95f4\u8fdb\u884c\u4e2d\u7684\u4e8b\u52a1\u6d41\u5f0f\u4f20\u8f93\u7ed9\u8ba2\u9605\u8005\uff08Dilip Kumar\uff0cAmit Kapila\uff0cAjin Cherian\uff0cTomas Vondra\uff0cNikhil Sontakke\uff0cStas Kelvich\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u4ee5\u524d\u8d85\u8fc7logical_decoding_work_mem\u7684\u4e8b\u52a1\u4f1a\u88ab\u5199\u5165\u78c1\u76d8\u76f4\u5230\u4e8b\u52a1\u5b8c\u6210\u3002", "title": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u5c06\u957f\u65f6\u95f4\u8fdb\u884c\u4e2d\u7684\u4e8b\u52a1\u6d41\u5f0f\u4f20\u8f93\u7ed9\u8ba2\u9605\u8005", "commits": ["0aa8a01d0", "464824323", "7259736a6", "a271a1b50"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-10", "source_hash": "bf1ae731fae9fcfe6360c2404bede617e7aed2d32053177f2c26ee50ff629ee9", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["0aa8a01d0"], ["464824323"], ["7259736a6"], ["a271a1b50"]], "identity_text": "Allow logical replication to stream long in-progress transactions to subscribers (Dilip Kumar, Amit Kapila, Ajin Cherian, Tomas Vondra, Nikhil Sontakke, Stas Kelvich) Previously transactions that exceeded guc-logical-decoding-work-mem were written to disk until the transaction completed.", "commit_aliases": ["0aa8a01d0", "464824323", "7259736a6", "a271a1b50"], "source_commits": ["0aa8a01d0", "464824323", "7259736a6", "a271a1b50"], "source_entry_id": "14.0/changes/076", "db_id": "ed2a4b5d3d88acd9537ef887e18885f9", "patch_ids": ["128081d0784e7fb08e92a03832880b61", "1a9c704b271a19a6ed92eb7f1d9dfe03", "1bdec66d000485a0cc39f42a2c8308de", "346e850dc542e70969275761e990c090"], "statement_hash": "9795e756faa55f6375ddbaba1e9568e097a7ae41883e96dca6f346d4b7bd8b64", "relations": [{"rule": 2, "type": "related", "target": "ba88ee46083cd824045f005cb46d412a", "evidence": {"same_day": true, "patch_ids": ["128081d0784e7fb08e92a03832880b61", "346e850dc542e70969275761e990c090"], "ambiguous_patch_ids": ["128081d0784e7fb08e92a03832880b61", "346e850dc542e70969275761e990c090"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-6d0239b4d9087fb5-1", "migration": false}, {"id": "14.0-3e0e399923b9fd58", "cves": [], "html": "<p>\u589e\u5f3a\u903b\u8f91\u590d\u5236 <acronym>API</acronym> \u4ee5\u5141\u8bb8\u6d41\u5f0f\u4f20\u8f93\u5927\u578b\u8fdb\u884c\u4e2d\u4e8b\u52a1\uff08Tomas Vondra\uff0cDilip Kumar\uff0cAmit Kapila\uff09<a href=\"https://postgr.es/c/45fdc9738\">\u00a7</a></p>\n<p>\u8f93\u51fa\u51fd\u6570\u4ee5 <a href=\"/docs/14/logicaldecoding-output-plugin.html#LOGICALDECODING-OUTPUT-PLUGIN-STREAM-START\" title=\"49.6.4.14.\u00a0\u6d41\u5f00\u59cb\u56de\u8c03\"><code>stream</code></a> \u5f00\u5934\u3002 <span>test_decoding</span> \u4e5f\u652f\u6301\u8fd9\u4e9b\u3002</p>", "text": "\u589e\u5f3a\u903b\u8f91\u590d\u5236 API \u4ee5\u5141\u8bb8\u6d41\u5f0f\u4f20\u8f93\u5927\u578b\u8fdb\u884c\u4e2d\u4e8b\u52a1\uff08Tomas Vondra\uff0cDilip Kumar\uff0cAmit Kapila\uff09\u00a7 \u8f93\u51fa\u51fd\u6570\u4ee5 stream \u5f00\u5934\u3002 test_decoding \u4e5f\u652f\u6301\u8fd9\u4e9b\u3002", "title": "\u589e\u5f3a\u903b\u8f91\u590d\u5236 API \u4ee5\u5141\u8bb8\u6d41\u5f0f\u4f20\u8f93\u5927\u578b\u8fdb\u884c\u4e2d\u4e8b\u52a1", "commits": ["45fdc9738"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-10", "source_hash": "a04bcd058a32067b235fd36e3927e5ba7f9052d2e94e08d2236236e751004784", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["45fdc9738"]], "identity_text": "Enhance the logical replication API to allow streaming large in-progress transactions (Tomas Vondra, Dilip Kumar, Amit Kapila) The output functions begin with stream. test_decoding also supports these.", "commit_aliases": ["45fdc9738"], "source_commits": ["45fdc9738"], "source_entry_id": "14.0/changes/077", "db_id": "e40cf6f3874d66a949ae91868fe57ddc", "patch_ids": ["d88c507fa5159e36f70b0ddfe905b9ab"], "statement_hash": "a7dbb30d77b8bbb872ea5bd0941b2aa85fcbeaf8222b42ac0f5e6b82e8e34570", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-3e0e399923b9fd58", "migration": false}, {"id": "14.0-46cc0ca20ae05278", "cves": [], "html": "<p>\u5141\u8bb8\u903b\u8f91\u590d\u5236\u4e2d\u8868\u540c\u6b65\u671f\u95f4\u7684\u591a\u4e2a\u4e8b\u52a1\uff08Peter Smith\uff0cAmit Kapila\uff0cTakamichi Osumi\uff09<a href=\"https://postgr.es/c/ce0fdbfe9\">\u00a7</a></p>", "text": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u4e2d\u8868\u540c\u6b65\u671f\u95f4\u7684\u591a\u4e2a\u4e8b\u52a1\uff08Peter Smith\uff0cAmit Kapila\uff0cTakamichi Osumi\uff09\u00a7", "title": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u4e2d\u8868\u540c\u6b65\u671f\u95f4\u7684\u591a\u4e2a\u4e8b\u52a1", "commits": ["ce0fdbfe9"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-10", "source_hash": "5a324e467c84dfd5c3b6c14f857110ca5808f9746fe5e4b696786fe0382ec597", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["ce0fdbfe9"]], "identity_text": "Allow multiple transactions during table sync in logical replication (Peter Smith, Amit Kapila, Takamichi Osumi)", "commit_aliases": ["ce0fdbfe9"], "source_commits": ["ce0fdbfe9"], "source_entry_id": "14.0/changes/078", "db_id": "498ea8bd63d4699e204c45232202b675", "patch_ids": ["0cc54d943d75ca7bc61005257afacf57"], "statement_hash": "539bb73ab54d7e0281cf5b8cc1dc58c11e367d76ac322f9927a3d7cbf4cf17e9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-46cc0ca20ae05278", "migration": false}, {"id": "14.0-2af3a1230b7cd953", "cves": [], "html": "<p>\u7acb\u5373\u5c06\u5b50\u4e8b\u52a1\u548c\u9876\u5c42 <code>XID</code> \u5173\u8054\u5199\u5165 <acronym>WAL</acronym> \u65e5\u5fd7\uff08Tomas Vondra\uff0cDilip Kumar\uff0cAmit Kapila\uff09<a href=\"https://postgr.es/c/0bead9af4\">\u00a7</a></p>\n<p>\u8fd9\u5bf9\u903b\u8f91\u89e3\u7801\u6709\u7528\u3002</p>", "text": "\u7acb\u5373\u5c06\u5b50\u4e8b\u52a1\u548c\u9876\u5c42 XID \u5173\u8054\u5199\u5165 WAL \u65e5\u5fd7\uff08Tomas Vondra\uff0cDilip Kumar\uff0cAmit Kapila\uff09\u00a7 \u8fd9\u5bf9\u903b\u8f91\u89e3\u7801\u6709\u7528\u3002", "title": "\u7acb\u5373\u5c06\u5b50\u4e8b\u52a1\u548c\u9876\u5c42 XID \u5173\u8054\u5199\u5165 WAL \u65e5\u5fd7", "commits": ["0bead9af4"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-10", "source_hash": "de232b0f49f7400c476fef9fa66c9f4a8d4e443f6fd56639bda5de432c66f1c8", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["0bead9af4"]], "identity_text": "Immediately WAL-log subtransaction and top-level XID association (Tomas Vondra, Dilip Kumar, Amit Kapila) This is useful for logical decoding.", "commit_aliases": ["0bead9af4"], "source_commits": ["0bead9af4"], "source_entry_id": "14.0/changes/079", "db_id": "7a56a9ea7ea413d9fe1f47e4a0f93450", "patch_ids": ["c7174dda652535e7be7803c31abe88e9"], "statement_hash": "e099d8072927af263bd9d55f9670a23558d35bc25ee0c1808559acc1081b4b15", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-2af3a1230b7cd953", "migration": false}, {"id": "14.0-6d0239b4d9087fb5-2", "cves": [], "html": "<p>\u589e\u5f3a\u903b\u8f91\u89e3\u7801 API \u4ee5\u5904\u7406\u4e24\u9636\u6bb5\u63d0\u4ea4\uff08Ajin Cherian\uff0cAmit Kapila\uff0cNikhil Sontakke\uff0cStas Kelvich\uff09<a href=\"https://postgr.es/c/0aa8a01d0\">\u00a7</a> <a href=\"https://postgr.es/c/a271a1b50\">\u00a7</a> <a href=\"https://postgr.es/c/19890a064\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7 <a href=\"/docs/14/functions-admin.html#FUNCTIONS-REPLICATION\" title=\"9.27.6.\u00a0\u590d\u5236\u7ba1\u7406\u51fd\u6570\"><code>pg_create_logical_replication_slot()</code></a> \u63a7\u5236\u3002</p>", "text": "\u589e\u5f3a\u903b\u8f91\u89e3\u7801 API \u4ee5\u5904\u7406\u4e24\u9636\u6bb5\u63d0\u4ea4\uff08Ajin Cherian\uff0cAmit Kapila\uff0cNikhil Sontakke\uff0cStas Kelvich\uff09\u00a7 \u00a7 \u00a7 \u8fd9\u901a\u8fc7 pg_create_logical_replication_slot() \u63a7\u5236\u3002", "title": "\u589e\u5f3a\u903b\u8f91\u89e3\u7801 API \u4ee5\u5904\u7406\u4e24\u9636\u6bb5\u63d0\u4ea4", "commits": ["0aa8a01d0", "19890a064", "a271a1b50"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-10", "source_hash": "56151c3399c0dc98533a4552e86dbfe120cfaa68756e363349f3ed7e84bd20d3", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["0aa8a01d0"], ["19890a064"], ["a271a1b50"]], "identity_text": "Enhance logical decoding APIs to handle two-phase commits (Ajin Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich) This is controlled via pg_create_logical_replication_slot().", "commit_aliases": ["0aa8a01d0", "19890a064", "a271a1b50"], "source_commits": ["0aa8a01d0", "19890a064", "a271a1b50"], "source_entry_id": "14.0/changes/080", "db_id": "ba88ee46083cd824045f005cb46d412a", "patch_ids": ["128081d0784e7fb08e92a03832880b61", "346e850dc542e70969275761e990c090", "38f1b6a10d83a9a369000015b80ff89e"], "statement_hash": "fb9a4ff62ffaf2abdf203726c09230f8354500ff026ac1b6f2f81c62c3a77f63", "relations": [{"rule": 2, "type": "related", "target": "ed2a4b5d3d88acd9537ef887e18885f9", "evidence": {"same_day": true, "patch_ids": ["128081d0784e7fb08e92a03832880b61", "346e850dc542e70969275761e990c090"], "ambiguous_patch_ids": ["128081d0784e7fb08e92a03832880b61", "346e850dc542e70969275761e990c090"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-6d0239b4d9087fb5-2", "migration": false}, {"id": "14.0-4c53106ffceeaab5", "cves": [], "html": "<p>\u5728\u4f7f\u7528\u903b\u8f91\u590d\u5236\u65f6\uff0c\u5728\u547d\u4ee4\u5b8c\u6210\u65f6\u5411 <acronym>WAL</acronym> \u6dfb\u52a0\u7f13\u5b58\u5931\u6548\u6d88\u606f\uff08Dilip Kumar\uff0cTomas Vondra\uff0cAmit Kapila\uff09<a href=\"https://postgr.es/c/c55040ccd\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u903b\u8f91\u6d41\u5f0f\u4f20\u8f93\u8fdb\u884c\u4e2d\u7684\u4e8b\u52a1\u3002\u5f53\u903b\u8f91\u590d\u5236\u88ab\u7981\u7528\u65f6\uff0c\u5931\u6548\u6d88\u606f\u4ec5\u5728\u4e8b\u52a1\u5b8c\u6210\u65f6\u751f\u6210\u3002</p>", "text": "\u5728\u4f7f\u7528\u903b\u8f91\u590d\u5236\u65f6\uff0c\u5728\u547d\u4ee4\u5b8c\u6210\u65f6\u5411 WAL \u6dfb\u52a0\u7f13\u5b58\u5931\u6548\u6d88\u606f\uff08Dilip Kumar\uff0cTomas Vondra\uff0cAmit Kapila\uff09\u00a7 \u8fd9\u5141\u8bb8\u903b\u8f91\u6d41\u5f0f\u4f20\u8f93\u8fdb\u884c\u4e2d\u7684\u4e8b\u52a1\u3002\u5f53\u903b\u8f91\u590d\u5236\u88ab\u7981\u7528\u65f6\uff0c\u5931\u6548\u6d88\u606f\u4ec5\u5728\u4e8b\u52a1\u5b8c\u6210\u65f6\u751f\u6210\u3002", "title": "\u5728\u4f7f\u7528\u903b\u8f91\u590d\u5236\u65f6\uff0c\u5728\u547d\u4ee4\u5b8c\u6210\u65f6\u5411 WAL \u6dfb\u52a0\u7f13\u5b58\u5931\u6548\u6d88\u606f", "commits": ["c55040ccd"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-10", "source_hash": "90dc4bb2299c0e090660e42b85e3c12264cfe8d8c1db9e0352d26daac4f61e8f", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["c55040ccd"]], "identity_text": "Add cache invalidation messages to the WAL during command completion when using logical replication (Dilip Kumar, Tomas Vondra, Amit Kapila) This allows logical streaming of in-progress transactions. When logical replication is disabled, invalidation messages are generated only at transaction completion.", "commit_aliases": ["c55040ccd"], "source_commits": ["c55040ccd"], "source_entry_id": "14.0/changes/081", "db_id": "5cfafb294b842d8330ddcb90f614e903", "patch_ids": ["589a9d3e9f8cb2dc6e62330d3bc63733"], "statement_hash": "faa081b7b70b7c8db8bea86b4eb13bab3d42a0ec9b07723fbbe6a1c29a82a49f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-4c53106ffceeaab5", "migration": false}, {"id": "14.0-670f3a0bdd4ae537", "cves": [], "html": "<p>\u5141\u8bb8\u903b\u8f91\u89e3\u7801\u66f4\u9ad8\u6548\u5730\u5904\u7406\u7f13\u5b58\u5931\u6548\u6d88\u606f\uff08Dilip Kumar\uff09<a href=\"https://postgr.es/c/d7eb52d71\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8<a href=\"/docs/14/logicaldecoding.html\" title=\"\u7b2c\u00a049\u00a0\u7ae0\u00a0\u903b\u8f91\u89e3\u7801\">\u903b\u8f91\u89e3\u7801</a>\u5728\u5b58\u5728\u5927\u91cf <acronym>DDL</acronym> \u7684\u60c5\u51b5\u4e0b\u9ad8\u6548\u5de5\u4f5c\u3002</p>", "text": "\u5141\u8bb8\u903b\u8f91\u89e3\u7801\u66f4\u9ad8\u6548\u5730\u5904\u7406\u7f13\u5b58\u5931\u6548\u6d88\u606f\uff08Dilip Kumar\uff09\u00a7 \u8fd9\u5141\u8bb8\u903b\u8f91\u89e3\u7801\u5728\u5b58\u5728\u5927\u91cf DDL \u7684\u60c5\u51b5\u4e0b\u9ad8\u6548\u5de5\u4f5c\u3002", "title": "\u5141\u8bb8\u903b\u8f91\u89e3\u7801\u66f4\u9ad8\u6548\u5730\u5904\u7406\u7f13\u5b58\u5931\u6548\u6d88\u606f", "commits": ["d7eb52d71"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-10", "source_hash": "d7723ad8c030f42ad00566c993f577f6b2f096c7ec5b2a78bc09d32f0023efce", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["d7eb52d71"]], "identity_text": "Allow logical decoding to more efficiently process cache invalidation messages (Dilip Kumar) This allows logical decoding to work efficiently in presence of a large amount of DDL.", "commit_aliases": ["d7eb52d71"], "source_commits": ["d7eb52d71"], "source_entry_id": "14.0/changes/082", "db_id": "c69b3d9bca563b270e526dc6d4812fa9", "patch_ids": ["44b841b5933ed3318990abc91ff3609a"], "statement_hash": "612de7477a8339ef1bb7c88a490c2e0ba7cdd987d5e42a4a0c234822e869e40b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-670f3a0bdd4ae537", "migration": false}, {"id": "14.0-03a5035d4710db9e", "cves": [], "html": "<p>\u5141\u8bb8\u63a7\u5236\u903b\u8f91\u89e3\u7801\u6d88\u606f\u662f\u5426\u53d1\u9001\u5230\u590d\u5236\u6d41\uff08David Pirotte\uff0cEuler Taveira\uff09<a href=\"https://postgr.es/c/ac4645c01\">\u00a7</a></p>", "text": "\u5141\u8bb8\u63a7\u5236\u903b\u8f91\u89e3\u7801\u6d88\u606f\u662f\u5426\u53d1\u9001\u5230\u590d\u5236\u6d41\uff08David Pirotte\uff0cEuler Taveira\uff09\u00a7", "title": "\u5141\u8bb8\u63a7\u5236\u903b\u8f91\u89e3\u7801\u6d88\u606f\u662f\u5426\u53d1\u9001\u5230\u590d\u5236\u6d41", "commits": ["ac4645c01"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-10", "source_hash": "3ef9dd635cf35b19fcc744eab16bfaea8f25eadead55cc13020bbf84a5f5af38", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["ac4645c01"]], "identity_text": "Allow control over whether logical decoding messages are sent to the replication stream (David Pirotte, Euler Taveira)", "commit_aliases": ["ac4645c01"], "source_commits": ["ac4645c01"], "source_entry_id": "14.0/changes/083", "db_id": "7693d0a85d74e5bf7424aa76846ae1fb", "patch_ids": ["0a1da86be866a6290aaf4fc52319ce6d"], "statement_hash": "bce1715145a90f6d2dd89dbc73ac3d202833f14ef8fe0fab34b6cb1142d5e7eb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-03a5035d4710db9e", "migration": false}, {"id": "14.0-fcf1e9001a651c0a", "cves": [], "html": "<p>\u5141\u8bb8\u903b\u8f91\u590d\u5236\u8ba2\u9605\u4f7f\u7528\u4e8c\u8fdb\u5236\u4f20\u8f93\u6a21\u5f0f\uff08Dave Cramer\uff09<a href=\"https://postgr.es/c/9de77b545\">\u00a7</a></p>\n<p>\u8fd9\u6bd4\u6587\u672c\u6a21\u5f0f\u66f4\u5feb\uff0c\u4f46\u7565\u5fae\u4e0d\u90a3\u4e48\u5065\u58ee\u3002</p>", "text": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u8ba2\u9605\u4f7f\u7528\u4e8c\u8fdb\u5236\u4f20\u8f93\u6a21\u5f0f\uff08Dave Cramer\uff09\u00a7 \u8fd9\u6bd4\u6587\u672c\u6a21\u5f0f\u66f4\u5feb\uff0c\u4f46\u7565\u5fae\u4e0d\u90a3\u4e48\u5065\u58ee\u3002", "title": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u8ba2\u9605\u4f7f\u7528\u4e8c\u8fdb\u5236\u4f20\u8f93\u6a21\u5f0f", "commits": ["9de77b545"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-10", "source_hash": "378c5352c0c1afe4a932f4f7fc447f342db3fce22c2bfee5d68f2fb5f76c983d", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["9de77b545"]], "identity_text": "Allow logical replication subscriptions to use binary transfer mode (Dave Cramer) This is faster than text mode, but slightly less robust.", "commit_aliases": ["9de77b545"], "source_commits": ["9de77b545"], "source_entry_id": "14.0/changes/084", "db_id": "6a4ebd2f3486ebdb9cdc49bddfddbd26", "patch_ids": ["317c14d22bf07793659d9704f6354b59"], "statement_hash": "6e379ba26465eb969dd5780f1b4679ac75a62fef4960eceda8a521201630d0d4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-fcf1e9001a651c0a", "migration": false}, {"id": "14.0-32f8a67741c3edd2", "cves": [], "html": "<p>\u5141\u8bb8\u903b\u8f91\u89e3\u7801\u6309 xid \u8fc7\u6ee4\uff08Markus Wanner\uff09<a href=\"https://postgr.es/c/f64ea6dc5\">\u00a7</a></p>", "text": "\u5141\u8bb8\u903b\u8f91\u89e3\u7801\u6309 xid \u8fc7\u6ee4\uff08Markus Wanner\uff09\u00a7", "title": "\u5141\u8bb8\u903b\u8f91\u89e3\u7801\u6309 xid \u8fc7\u6ee4", "commits": ["f64ea6dc5"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-10", "source_hash": "9ef78ce5688d10a57e4c3776ac1b72aaa343502cdf2954c3d2038c416f259e02", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["f64ea6dc5"]], "identity_text": "Allow logical decoding to be filtered by xid (Markus Wanner)", "commit_aliases": ["f64ea6dc5"], "source_commits": ["f64ea6dc5"], "source_entry_id": "14.0/changes/085", "db_id": "60dc02e969cd1dd9c6bf4f3c523ec74a", "patch_ids": ["84e4fdb86e6d7659ee97f33f6711b654"], "statement_hash": "d8c9180f51eb3180caf1ef780db4b69564b86e8c4e8e12985e5548942023316d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-32f8a67741c3edd2", "migration": false}, {"id": "14.0-7258722d825837cb", "cves": [], "html": "<p>\u51cf\u5c11\u4e0d\u4f7f\u7528 <code>AS</code> \u5c31\u4e0d\u80fd\u7528\u4f5c\u5217\u6807\u7b7e\u7684\u5173\u952e\u5b57\u6570\u91cf\uff08Mark Dilger\uff09<a href=\"https://postgr.es/c/06a7c3154\">\u00a7</a></p>\n<p>\u73b0\u5728\u53d7\u9650\u5173\u952e\u5b57\u51cf\u5c11\u4e86 90%\u3002</p>", "text": "\u51cf\u5c11\u4e0d\u4f7f\u7528 AS \u5c31\u4e0d\u80fd\u7528\u4f5c\u5217\u6807\u7b7e\u7684\u5173\u952e\u5b57\u6570\u91cf\uff08Mark Dilger\uff09\u00a7 \u73b0\u5728\u53d7\u9650\u5173\u952e\u5b57\u51cf\u5c11\u4e86 90%\u3002", "title": "\u51cf\u5c11\u4e0d\u4f7f\u7528 AS \u5c31\u4e0d\u80fd\u7528\u4f5c\u5217\u6807\u7b7e\u7684\u5173\u952e\u5b57\u6570\u91cf", "commits": ["06a7c3154"], "section": "SELECT\u3001INSERT", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-3", "source_hash": "3a6187aa13d514b6dce26f8e511847975ef8e461fdb0110d385409ebcf6f7680", "section_path": ["SELECT\u3001INSERT"], "commit_groups": [["06a7c3154"]], "identity_text": "Reduce the number of keywords that can't be used as column labels without AS (Mark Dilger) There are now 90% fewer restricted keywords.", "commit_aliases": ["06a7c3154"], "source_commits": ["06a7c3154"], "source_entry_id": "14.0/changes/086", "db_id": "17e1ead93390847f10dd1c2b503122a7", "patch_ids": ["5baae5e1578f084fd0c5b2a242a63b04"], "statement_hash": "cb206910982c12be61cd2adeed83a15722f1b3dc051c784dbe92e39ef850ac2e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-7258722d825837cb", "migration": false}, {"id": "14.0-635daeb47a168eca", "cves": [], "html": "<p>\u5141\u8bb8\u4e3a <code>JOIN</code> \u7684 <code>USING</code> \u5b50\u53e5\u6307\u5b9a\u522b\u540d\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/055fee7eb\">\u00a7</a></p>\n<p>\u522b\u540d\u901a\u8fc7\u5728 <code>USING</code> \u5b50\u53e5\u540e\u5199 <code>AS</code> \u6765\u521b\u5efa\u3002\u5b83\u53ef\u7528\u4f5c\u5408\u5e76\u7684 <code>USING</code> \u5217\u7684\u8868\u9650\u5b9a\u3002</p>", "text": "\u5141\u8bb8\u4e3a JOIN \u7684 USING \u5b50\u53e5\u6307\u5b9a\u522b\u540d\uff08Peter Eisentraut\uff09\u00a7 \u522b\u540d\u901a\u8fc7\u5728 USING \u5b50\u53e5\u540e\u5199 AS \u6765\u521b\u5efa\u3002\u5b83\u53ef\u7528\u4f5c\u5408\u5e76\u7684 USING \u5217\u7684\u8868\u9650\u5b9a\u3002", "title": "\u5141\u8bb8\u4e3a JOIN \u7684 USING \u5b50\u53e5\u6307\u5b9a\u522b\u540d", "commits": ["055fee7eb"], "section": "SELECT\u3001INSERT", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-3", "source_hash": "788adff6906876014ba16adf3b418c927c4c5e8728262db86fce60c4211d09cd", "section_path": ["SELECT\u3001INSERT"], "commit_groups": [["055fee7eb"]], "identity_text": "Allow an alias to be specified for JOIN's USING clause (Peter Eisentraut) The alias is created by writing AS after the USING clause. It can be used as a table qualification for the merged USING columns.", "commit_aliases": ["055fee7eb"], "source_commits": ["055fee7eb"], "source_entry_id": "14.0/changes/087", "db_id": "d31499eb97f407212108f39b7a65beff", "patch_ids": ["afbf98d230063fc9199ea21899191717"], "statement_hash": "09cd58a2af6f6f83effa06c8f25dc6cbff74e27948685b139ca86f81089e815f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-635daeb47a168eca", "migration": false}, {"id": "14.0-3e31a77a2cb9eee1", "cves": [], "html": "<p>\u5141\u8bb8\u5c06 <code>DISTINCT</code> \u6dfb\u52a0\u5230 <code>GROUP BY</code> \u4ee5\u79fb\u9664\u91cd\u590d\u7684 <code>GROUPING SET</code> \u7ec4\u5408\uff08Vik Fearing\uff09<a href=\"https://postgr.es/c/be45be9c3\">\u00a7</a></p>\n<p>\u4f8b\u5982\uff0c<code>GROUP BY CUBE (a,b), CUBE (b,c)</code> \u5728\u6ca1\u6709 <code>DISTINCT</code> \u7684\u60c5\u51b5\u4e0b\u4f1a\u751f\u6210\u91cd\u590d\u7684\u5206\u7ec4\u7ec4\u5408\u3002</p>", "text": "\u5141\u8bb8\u5c06 DISTINCT \u6dfb\u52a0\u5230 GROUP BY \u4ee5\u79fb\u9664\u91cd\u590d\u7684 GROUPING SET \u7ec4\u5408\uff08Vik Fearing\uff09\u00a7 \u4f8b\u5982\uff0cGROUP BY CUBE (a,b), CUBE (b,c) \u5728\u6ca1\u6709 DISTINCT \u7684\u60c5\u51b5\u4e0b\u4f1a\u751f\u6210\u91cd\u590d\u7684\u5206\u7ec4\u7ec4\u5408\u3002", "title": "\u5141\u8bb8\u5c06 DISTINCT \u6dfb\u52a0\u5230 GROUP BY \u4ee5\u79fb\u9664\u91cd\u590d\u7684 GROUPING SET \u7ec4\u5408", "commits": ["be45be9c3"], "section": "SELECT\u3001INSERT", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-3", "source_hash": "c4c1089c0317bf788160d58f9e9d6826bad10d567c65df420e1b3650f80bf240", "section_path": ["SELECT\u3001INSERT"], "commit_groups": [["be45be9c3"]], "identity_text": "Allow DISTINCT to be added to GROUP BY to remove duplicate GROUPING SET combinations (Vik Fearing) For example, GROUP BY CUBE (a,b), CUBE (b,c) will generate duplicate grouping combinations without DISTINCT.", "commit_aliases": ["be45be9c3"], "source_commits": ["be45be9c3"], "source_entry_id": "14.0/changes/088", "db_id": "049be8718d72a26fbc268ba982925963", "patch_ids": ["4160d0722584e81a78d9f95f10281fe7"], "statement_hash": "7f156953ec265474638dc9d47170eebbd35caf20a45d5f38e9af00fc22ff55c3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-3e31a77a2cb9eee1", "migration": false}, {"id": "14.0-26dfbe53380deaf3", "cves": [], "html": "<p>\u6b63\u786e\u5904\u7406 <code>INSERT</code> \u4e2d\u591a\u884c <code>VALUES</code> \u5217\u8868\u4e2d\u7684 <code>DEFAULT</code> \u6761\u76ee\uff08Dean Rasheed\uff09<a href=\"https://postgr.es/c/17958972f\">\u00a7</a></p>\n<p>\u6b64\u7c7b\u60c5\u51b5\u4ee5\u524d\u4f1a\u629b\u51fa\u9519\u8bef\u3002</p>", "text": "\u6b63\u786e\u5904\u7406 INSERT \u4e2d\u591a\u884c VALUES \u5217\u8868\u4e2d\u7684 DEFAULT \u6761\u76ee\uff08Dean Rasheed\uff09\u00a7 \u6b64\u7c7b\u60c5\u51b5\u4ee5\u524d\u4f1a\u629b\u51fa\u9519\u8bef\u3002", "title": "\u6b63\u786e\u5904\u7406 INSERT \u4e2d\u591a\u884c VALUES \u5217\u8868\u4e2d\u7684 DEFAULT \u6761\u76ee", "commits": ["17958972f"], "section": "SELECT\u3001INSERT", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-3", "source_hash": "bbfd97ed5c553abfe28438767686ffb017ba730e8c5a43cd65272cc8d81a65d8", "section_path": ["SELECT\u3001INSERT"], "commit_groups": [["17958972f"]], "identity_text": "Properly handle DEFAULT entries in multi-row VALUES lists in INSERT (Dean Rasheed) Such cases used to throw an error.", "commit_aliases": ["17958972f"], "source_commits": ["17958972f"], "source_entry_id": "14.0/changes/089", "db_id": "7f1adf9498b2db9edc92a950f00ce2ad", "patch_ids": ["70f58c5caf1846bc70d1ef2fb95bf3dd"], "statement_hash": "b07dca5c42c9a405fe965b332f0b425d45818f943550b0ec11557c73a3e81c49", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-26dfbe53380deaf3", "migration": false}, {"id": "14.0-ca2483b12e6d827b", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/14/queries-with.html\" title=\"7.8.\u00a0WITH\u67e5\u8be2\uff08\u516c\u5171\u8868\u8868\u8fbe\u5f0f\uff09\">\u516c\u5171\u8868\u8868\u8fbe\u5f0f</a>\u589e\u52a0 <acronym>SQL</acronym> \u6807\u51c6\u7684 <code>SEARCH</code> \u548c <code>CYCLE</code> \u5b50\u53e5\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/3696a600e\">\u00a7</a> <a href=\"https://postgr.es/c/f4adc41c4\">\u00a7</a></p>\n<p>\u4f7f\u7528\u73b0\u6709\u8bed\u6cd5\u4e5f\u53ef\u4ee5\u8fbe\u5230\u76f8\u540c\u7684\u7ed3\u679c\uff0c\u4f46\u8fdc\u6ca1\u6709\u8fd9\u4e48\u65b9\u4fbf\u3002</p>", "text": "\u4e3a\u516c\u5171\u8868\u8868\u8fbe\u5f0f\u589e\u52a0 SQL \u6807\u51c6\u7684 SEARCH \u548c CYCLE \u5b50\u53e5\uff08Peter Eisentraut\uff09\u00a7 \u00a7 \u4f7f\u7528\u73b0\u6709\u8bed\u6cd5\u4e5f\u53ef\u4ee5\u8fbe\u5230\u76f8\u540c\u7684\u7ed3\u679c\uff0c\u4f46\u8fdc\u6ca1\u6709\u8fd9\u4e48\u65b9\u4fbf\u3002", "title": "\u4e3a\u516c\u5171\u8868\u8868\u8fbe\u5f0f\u589e\u52a0 SQL \u6807\u51c6\u7684 SEARCH \u548c CYCLE \u5b50\u53e5", "commits": ["3696a600e", "f4adc41c4"], "section": "SELECT\u3001INSERT", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-3", "source_hash": "dc5b7432a6886e56078a8287b468482aed509ae3adac2476b55c5bc3fc6951f2", "section_path": ["SELECT\u3001INSERT"], "commit_groups": [["3696a600e"], ["f4adc41c4"]], "identity_text": "Add SQL-standard SEARCH and CYCLE clauses for common table expressions (Peter Eisentraut) The same results could be accomplished using existing syntax, but much less conveniently.", "commit_aliases": ["3696a600e", "f4adc41c4"], "source_commits": ["3696a600e", "f4adc41c4"], "source_entry_id": "14.0/changes/090", "db_id": "2699ecd555a13e0bb86d02de1f3ed87a", "patch_ids": ["533ea3467eaae43b410b71c3158d5bad", "d01ea6ae5cb04812e8e09cafdd7e6d8b"], "statement_hash": "19d7fff1933f000f006ae2d56e240b0a7cbfde0f698b052610e0dd688a5c036d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-ca2483b12e6d827b", "migration": false}, {"id": "14.0-58352f787bba8b99", "cves": [], "html": "<p>\u5141\u8bb8 <code>ON CONFLICT</code> \u7684 <code>WHERE</code> \u5b50\u53e5\u4e2d\u7684\u5217\u540d\u4f7f\u7528\u8868\u9650\u5b9a\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/6c0373ab7\">\u00a7</a></p>\n<p>\u4f46\u662f\uff0c\u53ea\u80fd\u5f15\u7528\u76ee\u6807\u8868\u3002</p>", "text": "\u5141\u8bb8 ON CONFLICT \u7684 WHERE \u5b50\u53e5\u4e2d\u7684\u5217\u540d\u4f7f\u7528\u8868\u9650\u5b9a\uff08Tom Lane\uff09\u00a7 \u4f46\u662f\uff0c\u53ea\u80fd\u5f15\u7528\u76ee\u6807\u8868\u3002", "title": "\u5141\u8bb8 ON CONFLICT \u7684 WHERE \u5b50\u53e5\u4e2d\u7684\u5217\u540d\u4f7f\u7528\u8868\u9650\u5b9a", "commits": ["6c0373ab7"], "section": "SELECT\u3001INSERT", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-3", "source_hash": "91438aed63195b53d64887d6953a26377941268bcd614063c0322bd5e9d62bb7", "section_path": ["SELECT\u3001INSERT"], "commit_groups": [["6c0373ab7"]], "identity_text": "Allow column names in the WHERE clause of ON CONFLICT to be table-qualified (Tom Lane) Only the target table can be referenced, however.", "commit_aliases": ["6c0373ab7"], "source_commits": ["6c0373ab7"], "source_entry_id": "14.0/changes/091", "db_id": "b638233420a5c4e01274ee7e61f5f15d", "patch_ids": ["968c1d6ea81365652928ba19eb5936a4"], "statement_hash": "fb078b19a178244eedf013cb2cf1acd76cbd1902741f600c0b4856740e4be7b4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-58352f787bba8b99", "migration": false}, {"id": "14.0-0f41e0c91513ab2f", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/14/sql-refreshmaterializedview.html\" title=\"REFRESH MATERIALIZED VIEW\"><code>REFRESH MATERIALIZED VIEW</code></a> \u4f7f\u7528\u5e76\u884c\u6267\u884c\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/9e7ccd9ef\">\u00a7</a></p>", "text": "\u5141\u8bb8 REFRESH MATERIALIZED VIEW \u4f7f\u7528\u5e76\u884c\u6267\u884c\uff08Bharath Rupireddy\uff09\u00a7", "title": "\u5141\u8bb8 REFRESH MATERIALIZED VIEW \u4f7f\u7528\u5e76\u884c\u6267\u884c", "commits": ["9e7ccd9ef"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-4", "source_hash": "efad6eaff32d0e051563beca2158a2ebbbaf9df384e5eee3dc272f35dcb80875", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["9e7ccd9ef"]], "identity_text": "Allow REFRESH MATERIALIZED VIEW to use parallelism (Bharath Rupireddy)", "commit_aliases": ["9e7ccd9ef"], "source_commits": ["9e7ccd9ef"], "source_entry_id": "14.0/changes/092", "db_id": "c8b7c33af79796d1bc69b7421fbea2eb", "patch_ids": ["df12e3bf0ded2a31dc83490f7416f54c"], "statement_hash": "3c59f1ebea6b0a184d793b6a10cab4c4a0fe0c4bd8d6d25e116047f59ff584aa", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-0f41e0c91513ab2f", "migration": false}, {"id": "14.0-da25a2aa7fd3b31f", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/14/sql-reindex.html\" title=\"REINDEX\"><code>REINDEX</code></a> \u66f4\u6539\u65b0\u7d22\u5f15\u7684\u8868\u7a7a\u95f4\uff08Alexey Kondratov\uff0cMichael Paquier\uff0cJustin Pryzby\uff09<a href=\"https://postgr.es/c/c5b286047\">\u00a7</a> <a href=\"https://postgr.es/c/57e6db706\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7\u6307\u5b9a <code>TABLESPACE</code> \u5b50\u53e5\u6765\u5b8c\u6210\u3002<a href=\"/docs/14/app-reindexdb.html\" title=\"reindexdb\"><span>reindexdb</span></a>\u4e5f\u589e\u52a0\u4e86 <code>--tablespace</code> \u9009\u9879\u6765\u63a7\u5236\u6b64\u529f\u80fd\u3002</p>", "text": "\u5141\u8bb8 REINDEX \u66f4\u6539\u65b0\u7d22\u5f15\u7684\u8868\u7a7a\u95f4\uff08Alexey Kondratov\uff0cMichael Paquier\uff0cJustin Pryzby\uff09\u00a7 \u00a7 \u8fd9\u901a\u8fc7\u6307\u5b9a TABLESPACE \u5b50\u53e5\u6765\u5b8c\u6210\u3002reindexdb\u4e5f\u589e\u52a0\u4e86 --tablespace \u9009\u9879\u6765\u63a7\u5236\u6b64\u529f\u80fd\u3002", "title": "\u5141\u8bb8 REINDEX \u66f4\u6539\u65b0\u7d22\u5f15\u7684\u8868\u7a7a\u95f4", "commits": ["57e6db706", "c5b286047"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-4", "source_hash": "4af188f738a570495090e85344d34df4a010a2c67d0e876c8effbc6f0840aa23", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["57e6db706"], ["c5b286047"]], "identity_text": "Allow REINDEX to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby) This is done by specifying a TABLESPACE clause. A --tablespace option was also added to reindexdb to control this.", "commit_aliases": ["57e6db706", "c5b286047"], "source_commits": ["57e6db706", "c5b286047"], "source_entry_id": "14.0/changes/093", "db_id": "3399be126ebf44971ce3a8bcde682b19", "patch_ids": ["afb5018532ae1f10620ae7ca55ac586b", "b649569308cdb71c44d300b64d440e2f"], "statement_hash": "30e1bb3935ced93638d8e575eaf3dd5597e1f6a62e5f930b32b7c718fa89a671", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-da25a2aa7fd3b31f", "migration": false}, {"id": "14.0-91b337fa5e8ef236", "cves": [], "html": "<p>\u5141\u8bb8 <code>REINDEX</code> \u5904\u7406\u5206\u533a\u5173\u7cfb\u7684\u6240\u6709\u5b50\u8868\u6216\u7d22\u5f15\uff08Justin Pryzby\uff0cMichael Paquier\uff09<a href=\"https://postgr.es/c/a6642b3ae\">\u00a7</a></p>", "text": "\u5141\u8bb8 REINDEX \u5904\u7406\u5206\u533a\u5173\u7cfb\u7684\u6240\u6709\u5b50\u8868\u6216\u7d22\u5f15\uff08Justin Pryzby\uff0cMichael Paquier\uff09\u00a7", "title": "\u5141\u8bb8 REINDEX \u5904\u7406\u5206\u533a\u5173\u7cfb\u7684\u6240\u6709\u5b50\u8868\u6216\u7d22\u5f15", "commits": ["a6642b3ae"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-4", "source_hash": "d4f40a202ccade63ccd59c0e8ad534d05fef6daa8c898248e20935c2a447f6be", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["a6642b3ae"]], "identity_text": "Allow REINDEX to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier)", "commit_aliases": ["a6642b3ae"], "source_commits": ["a6642b3ae"], "source_entry_id": "14.0/changes/094", "db_id": "194162c257a6034fc17ff77263e53adb", "patch_ids": ["68a082d5d0c148aae2f957e6d62da976"], "statement_hash": "0434d32ece6a33c9d4fd1eebc62e787c76e0bd69aada90a1c0f405f4aa816875", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-91b337fa5e8ef236", "migration": false}, {"id": "14.0-24c3586f79030696", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 <code>CONCURRENTLY</code> \u7684\u7d22\u5f15\u547d\u4ee4\u907f\u514d\u7b49\u5f85\u5176\u4ed6\u4f7f\u7528 <code>CONCURRENTLY</code> \u7684\u64cd\u4f5c\u5b8c\u6210\uff08\u00c1lvaro Herrera\uff09<a href=\"https://postgr.es/c/c98763bf5\">\u00a7</a> <a href=\"https://postgr.es/c/f9900df5f\">\u00a7</a> <a href=\"https://postgr.es/c/d9d076222\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4f7f\u7528 CONCURRENTLY \u7684\u7d22\u5f15\u547d\u4ee4\u907f\u514d\u7b49\u5f85\u5176\u4ed6\u4f7f\u7528 CONCURRENTLY \u7684\u64cd\u4f5c\u5b8c\u6210\uff08\u00c1lvaro Herrera\uff09\u00a7 \u00a7 \u00a7", "title": "\u5141\u8bb8\u4f7f\u7528 CONCURRENTLY \u7684\u7d22\u5f15\u547d\u4ee4\u907f\u514d\u7b49\u5f85\u5176\u4ed6\u4f7f\u7528 CONCURRENTLY \u7684\u64cd\u4f5c\u5b8c\u6210", "commits": ["c98763bf5", "d9d076222", "f9900df5f"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-4", "source_hash": "b8e4ec9df98ce6fcaecf73051d7663af7162c925d58fde6bb078ab64cda99538", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["c98763bf5"], ["d9d076222"], ["f9900df5f"]], "identity_text": "Allow index commands using CONCURRENTLY to avoid waiting for the completion of other operations using CONCURRENTLY (\u00c1lvaro Herrera)", "commit_aliases": ["c98763bf5", "d9d076222", "f9900df5f"], "source_commits": ["c98763bf5", "d9d076222", "f9900df5f"], "source_entry_id": "14.0/changes/095", "db_id": "e2349e6d9b73ae536eb86bd9f5cbbac4", "patch_ids": ["372a3670e2e3e461b4849f3a7ecea103", "5b064cc4a625651d6f0dba84325817a5", "6bd8462ec5bafe5f31e1328915ed8acb"], "statement_hash": "198f58bf4a787e7d1fb7a4669af00ee92e5c17fe79ef62a8d7b821ea7ccea6ad", "relations": [{"rule": 2, "type": "related", "target": "0c9d974913b05a8737e6a1f04752bfdc", "evidence": {"same_day": true, "patch_ids": ["372a3670e2e3e461b4849f3a7ecea103", "5b064cc4a625651d6f0dba84325817a5", "6bd8462ec5bafe5f31e1328915ed8acb"], "ambiguous_patch_ids": ["372a3670e2e3e461b4849f3a7ecea103", "5b064cc4a625651d6f0dba84325817a5", "6bd8462ec5bafe5f31e1328915ed8acb"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-24c3586f79030696", "migration": false}, {"id": "14.0-add02d37fa772a65", "cves": [], "html": "<p>\u6539\u8fdb\u4e8c\u8fdb\u5236\u6a21\u5f0f\u4e0b <a href=\"/docs/14/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a> \u7684\u6027\u80fd\uff08Bharath Rupireddy\uff0cAmit Langote\uff09<a href=\"https://postgr.es/c/0a0727ccf\">\u00a7</a></p>", "text": "\u6539\u8fdb\u4e8c\u8fdb\u5236\u6a21\u5f0f\u4e0b COPY FROM \u7684\u6027\u80fd\uff08Bharath Rupireddy\uff0cAmit Langote\uff09\u00a7", "title": "\u6539\u8fdb\u4e8c\u8fdb\u5236\u6a21\u5f0f\u4e0b COPY FROM \u7684\u6027\u80fd", "commits": ["0a0727ccf"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-4", "source_hash": "a89a8722aeb456bec5e36d7c8c85140f41735f733620596abc613e65b46752ac", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["0a0727ccf"]], "identity_text": "Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Langote)", "commit_aliases": ["0a0727ccf"], "source_commits": ["0a0727ccf"], "source_entry_id": "14.0/changes/096", "db_id": "17499a7f7837b773bd715b0d05f1446a", "patch_ids": ["695098545fcaf3c01ff77703440f8489"], "statement_hash": "13263f25c3d7e62bafe7248620784f67b3e20fad6f8b5cba0e08d94f37645c1c", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-add02d37fa772a65", "migration": false}, {"id": "14.0-ae10f6d9b13a6cdb", "cves": [], "html": "<p>\u5728<a href=\"/docs/14/sql-createview.html\" title=\"CREATE VIEW\">\u89c6\u56fe\u5b9a\u4e49</a>\u4e2d\u4fdd\u7559 SQL \u5b9a\u4e49\u51fd\u6570\u7684 <acronym>SQL</acronym> \u6807\u51c6\u8bed\u6cd5\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/40c24bfef\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u5bf9 SQL \u6807\u51c6\u51fd\u6570\uff08\u5982 <a href=\"/docs/14/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT\" title=\"9.9.1.\u00a0EXTRACT, date_part\"><code>EXTRACT()</code></a>\uff09\u7684\u8c03\u7528\u4ee5\u666e\u901a\u51fd\u6570\u8c03\u7528\u8bed\u6cd5\u663e\u793a\u3002\u73b0\u5728\u663e\u793a\u89c6\u56fe\u6216\u89c4\u5219\u65f6\u4f1a\u4fdd\u7559\u539f\u59cb\u8bed\u6cd5\u3002</p>", "text": "\u5728\u89c6\u56fe\u5b9a\u4e49\u4e2d\u4fdd\u7559 SQL \u5b9a\u4e49\u51fd\u6570\u7684 SQL \u6807\u51c6\u8bed\u6cd5\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\uff0c\u5bf9 SQL \u6807\u51c6\u51fd\u6570\uff08\u5982 EXTRACT()\uff09\u7684\u8c03\u7528\u4ee5\u666e\u901a\u51fd\u6570\u8c03\u7528\u8bed\u6cd5\u663e\u793a\u3002\u73b0\u5728\u663e\u793a\u89c6\u56fe\u6216\u89c4\u5219\u65f6\u4f1a\u4fdd\u7559\u539f\u59cb\u8bed\u6cd5\u3002", "title": "\u5728\u89c6\u56fe\u5b9a\u4e49\u4e2d\u4fdd\u7559 SQL \u5b9a\u4e49\u51fd\u6570\u7684 SQL \u6807\u51c6\u8bed\u6cd5", "commits": ["40c24bfef"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-4", "source_hash": "aaa73cf6bd9310e4a35ec4c07cf04a2745d44a0836622f55fa0e38a1d9773478", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["40c24bfef"]], "identity_text": "Preserve SQL standard syntax for SQL-defined functions in view definitions (Tom Lane) Previously, calls to SQL-standard functions such as EXTRACT() were shown in plain function-call syntax. The original syntax is now preserved when displaying a view or rule.", "commit_aliases": ["40c24bfef"], "source_commits": ["40c24bfef"], "source_entry_id": "14.0/changes/097", "db_id": "d43d921af91c3c920dbaa807fd65e982", "patch_ids": ["ab32d9761075379afa1e50d2ecad42e5"], "statement_hash": "b94547ba44faeaf4d2d6b598e245f0f0006a0f312a5826234027b29fb8b32aa7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-ae10f6d9b13a6cdb", "migration": false}, {"id": "14.0-98b557a18d89d87e", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/14/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a> \u548c <a href=\"/docs/14/sql-revoke.html\" title=\"REVOKE\"><code>REVOKE</code></a> \u589e\u52a0 <acronym>SQL</acronym> \u6807\u51c6\u7684 <code>GRANTED BY</code> \u5b50\u53e5\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/6aaaa76bb\">\u00a7</a></p>", "text": "\u4e3a GRANT \u548c REVOKE \u589e\u52a0 SQL \u6807\u51c6\u7684 GRANTED BY \u5b50\u53e5\uff08Peter Eisentraut\uff09\u00a7", "title": "\u4e3a GRANT \u548c REVOKE \u589e\u52a0 SQL \u6807\u51c6\u7684 GRANTED BY \u5b50\u53e5", "commits": ["6aaaa76bb"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-4", "source_hash": "16d8b96cda6ce877f81fb571bf5d1cf1cb3005dbb0513dcff8e839b604fe0508", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["6aaaa76bb"]], "identity_text": "Add the SQL-standard clause GRANTED BY to GRANT and REVOKE (Peter Eisentraut)", "commit_aliases": ["6aaaa76bb"], "source_commits": ["6aaaa76bb"], "source_entry_id": "14.0/changes/098", "db_id": "77acc5db1b510977afbe386087c995c8", "patch_ids": ["69b21b77584e35c3293de0caffcb9b29"], "statement_hash": "ed1098fa081d54705b0d98ea56a4328a6149e1b1fc0067ba90e27a9a588a04b1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-98b557a18d89d87e", "migration": false}, {"id": "14.0-c842f71a6d868130", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/14/sql-createtrigger.html\" title=\"CREATE TRIGGER\"><code>CREATE TRIGGER</code></a> \u589e\u52a0 <code>OR REPLACE</code> \u9009\u9879\uff08Takamichi Osumi\uff09<a href=\"https://postgr.es/c/92bf7e2d0\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u6709\u6761\u4ef6\u5730\u66ff\u6362\u5df2\u5b58\u5728\u7684\u89e6\u53d1\u5668\u3002</p>", "text": "\u4e3a CREATE TRIGGER \u589e\u52a0 OR REPLACE \u9009\u9879\uff08Takamichi Osumi\uff09\u00a7 \u8fd9\u5141\u8bb8\u6709\u6761\u4ef6\u5730\u66ff\u6362\u5df2\u5b58\u5728\u7684\u89e6\u53d1\u5668\u3002", "title": "\u4e3a CREATE TRIGGER \u589e\u52a0 OR REPLACE \u9009\u9879", "commits": ["92bf7e2d0"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-4", "source_hash": "20c0cd0f52863a42182818f2441ce311676b004cbc126a2ccc3f6c19a4a6f03d", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["92bf7e2d0"]], "identity_text": "Add OR REPLACE option for CREATE TRIGGER (Takamichi Osumi) This allows pre-existing triggers to be conditionally replaced.", "commit_aliases": ["92bf7e2d0"], "source_commits": ["92bf7e2d0"], "source_entry_id": "14.0/changes/099", "db_id": "cc531de5fce6fbb83c3afa73ad767881", "patch_ids": ["9c4d991b6f24b3903a347c61104e47e5"], "statement_hash": "6a350087b573fd9ea8918ce339f495714710c0f821b208880a497b886952afc9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-c842f71a6d868130", "migration": false}, {"id": "14.0-20603ff08386820b", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/14/sql-truncate.html\" title=\"TRUNCATE\"><code>TRUNCATE</code></a> \u64cd\u4f5c\u5916\u90e8\u8868\uff08Kazutaka Onishi\uff0cKohei KaiGai\uff09<a href=\"https://postgr.es/c/8ff1c9464\">\u00a7</a></p>\n<p><a href=\"/docs/14/postgres-fdw.html\" title=\"F.35.\u00a0postgres_fdw\"><span>postgres_fdw</span></a> \u6a21\u5757\u73b0\u5728\u4e5f\u652f\u6301\u6b64\u529f\u80fd\u3002</p>", "text": "\u5141\u8bb8 TRUNCATE \u64cd\u4f5c\u5916\u90e8\u8868\uff08Kazutaka Onishi\uff0cKohei KaiGai\uff09\u00a7 postgres_fdw \u6a21\u5757\u73b0\u5728\u4e5f\u652f\u6301\u6b64\u529f\u80fd\u3002", "title": "\u5141\u8bb8 TRUNCATE \u64cd\u4f5c\u5916\u90e8\u8868", "commits": ["8ff1c9464"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-4", "source_hash": "67732253591d6e7e9b6901d7f4fc972edeba2fe44859d3a86fb8b5b6e8a3875d", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["8ff1c9464"]], "identity_text": "Allow TRUNCATE to operate on foreign tables (Kazutaka Onishi, Kohei KaiGai) The postgres_fdw module also now supports this.", "commit_aliases": ["8ff1c9464"], "source_commits": ["8ff1c9464"], "source_entry_id": "14.0/changes/100", "db_id": "fd61e25dc11d238169c7c84c00a345d6", "patch_ids": ["055dc15a7bfaac81486a9d9f0ea6ec27"], "statement_hash": "d3a5f7dfd51a9235a95f0a29e6f015c92c97d41ee7837c604acf7c5e5db94346", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-20603ff08386820b", "migration": false}, {"id": "14.0-70fa4840750c2c0e", "cves": [], "html": "<p>\u5141\u8bb8\u66f4\u65b9\u4fbf\u5730\u5411\u8ba2\u9605\u4e2d\u6dfb\u52a0\u548c\u4ece\u4e2d\u79fb\u9664\u53d1\u5e03\uff08Japin Li\uff09<a href=\"https://postgr.es/c/82ed7748b\">\u00a7</a></p>\n<p>\u65b0\u8bed\u6cd5\u4e3a <a href=\"/docs/14/sql-altersubscription.html\" title=\"ALTER SUBSCRIPTION\"><code>ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION</code></a>\u3002\u8fd9\u907f\u514d\u4e86\u9700\u8981\u6307\u5b9a\u6240\u6709\u53d1\u5e03\u6765\u6dfb\u52a0/\u79fb\u9664\u6761\u76ee\u3002</p>", "text": "\u5141\u8bb8\u66f4\u65b9\u4fbf\u5730\u5411\u8ba2\u9605\u4e2d\u6dfb\u52a0\u548c\u4ece\u4e2d\u79fb\u9664\u53d1\u5e03\uff08Japin Li\uff09\u00a7 \u65b0\u8bed\u6cd5\u4e3a ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION\u3002\u8fd9\u907f\u514d\u4e86\u9700\u8981\u6307\u5b9a\u6240\u6709\u53d1\u5e03\u6765\u6dfb\u52a0/\u79fb\u9664\u6761\u76ee\u3002", "title": "\u5141\u8bb8\u66f4\u65b9\u4fbf\u5730\u5411\u8ba2\u9605\u4e2d\u6dfb\u52a0\u548c\u4ece\u4e2d\u79fb\u9664\u53d1\u5e03", "commits": ["82ed7748b"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-4", "source_hash": "dc243802ba4fe7232f8420b7f050638670b7ef0ab29bc564581985dc74959c5d", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["82ed7748b"]], "identity_text": "Allow publications to be more easily added to and removed from a subscription (Japin Li) The new syntax is ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION. This avoids having to specify all publications to add/remove entries.", "commit_aliases": ["82ed7748b"], "source_commits": ["82ed7748b"], "source_entry_id": "14.0/changes/101", "db_id": "0ce422fc05ab0a96122d6eb246c6165d", "patch_ids": ["b747bff1d046d5305098899a27c53b37"], "statement_hash": "61acb7a6ba7f10d03f30174a2f6c8f3a0f48d02fcee310fad73d1be32e750b45", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-70fa4840750c2c0e", "migration": false}, {"id": "14.0-7004229d23728ec8", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/14/catalogs.html\" title=\"\u7b2c\u00a052\u00a0\u7ae0\u00a0\u7cfb\u7edf\u76ee\u5f55\">\u7cfb\u7edf\u76ee\u5f55</a>\u589e\u52a0\u4e3b\u952e\u3001\u552f\u4e00\u7ea6\u675f\u548c\u5916\u952e\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/dfb75e478\">\u00a7</a> <a href=\"https://postgr.es/c/62f34097c\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u66f4\u6539\u5e2e\u52a9 <acronym>GUI</acronym> \u5de5\u5177\u5206\u6790\u7cfb\u7edf\u76ee\u5f55\u3002\u76ee\u5f55\u73b0\u6709\u7684\u552f\u4e00\u7d22\u5f15\u73b0\u5728\u5177\u6709\u5173\u8054\u7684 <code>UNIQUE</code> \u6216 <code>PRIMARY KEY</code> \u7ea6\u675f\u3002\u5916\u952e\u5173\u7cfb\u5b9e\u9645\u4e0a\u5e76\u672a\u4f5c\u4e3a\u7ea6\u675f\u5b58\u50a8\u6216\u5b9e\u73b0\uff0c\u4f46\u53ef\u901a\u8fc7\u51fd\u6570 <a href=\"/docs/14/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"\u8868\u00a09.70.\u00a0\u7cfb\u7edf\u76ee\u5f55\u4fe1\u606f\u51fd\u6570\">pg_get_catalog_foreign_keys()</a> \u83b7\u53d6\u4ee5\u4f9b\u663e\u793a\u3002</p>", "text": "\u4e3a\u7cfb\u7edf\u76ee\u5f55\u589e\u52a0\u4e3b\u952e\u3001\u552f\u4e00\u7ea6\u675f\u548c\u5916\u952e\uff08Peter Eisentraut\uff09\u00a7 \u00a7 \u8fd9\u4e9b\u66f4\u6539\u5e2e\u52a9 GUI \u5de5\u5177\u5206\u6790\u7cfb\u7edf\u76ee\u5f55\u3002\u76ee\u5f55\u73b0\u6709\u7684\u552f\u4e00\u7d22\u5f15\u73b0\u5728\u5177\u6709\u5173\u8054\u7684 UNIQUE \u6216 PRIMARY KEY \u7ea6\u675f\u3002\u5916\u952e\u5173\u7cfb\u5b9e\u9645\u4e0a\u5e76\u672a\u4f5c\u4e3a\u7ea6\u675f\u5b58\u50a8\u6216\u5b9e\u73b0\uff0c\u4f46\u53ef\u901a\u8fc7\u51fd\u6570 pg_get_catalog_foreign_keys() \u83b7\u53d6\u4ee5\u4f9b\u663e\u793a\u3002", "title": "\u4e3a\u7cfb\u7edf\u76ee\u5f55\u589e\u52a0\u4e3b\u952e\u3001\u552f\u4e00\u7ea6\u675f\u548c\u5916\u952e", "commits": ["62f34097c", "dfb75e478"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-4", "source_hash": "96d421ff0404d18462c6addaf1400bb54a95b210f708a6f7fac668a4e59ce401", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["62f34097c"], ["dfb75e478"]], "identity_text": "Add primary keys, unique constraints, and foreign keys to system catalogs (Peter Eisentraut) These changes help GUI tools analyze the system catalogs. The existing unique indexes of catalogs now have associated UNIQUE or PRIMARY KEY constraints. Foreign key relationships are not actually stored or implemented as constraints, but can be obtained for display from the function pg_get_catalog_foreign_keys().", "commit_aliases": ["62f34097c", "dfb75e478"], "source_commits": ["62f34097c", "dfb75e478"], "source_entry_id": "14.0/changes/102", "db_id": "32b3a991aa9c4e7d5eaf557258f0cf65", "patch_ids": ["1f251a8c4404cff1c95bd260e4e3fbb6", "7d9cb0e7006805070122bebb747aba6b"], "statement_hash": "e8303e15956599c8cb09f1f6157d02eb93268871ff67770d2b4b516c27986b81", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-7004229d23728ec8", "migration": false}, {"id": "14.0-337132d224dc888e", "cves": [], "html": "<p>\u5728\u63a5\u53d7 <code>CURRENT_USER</code> \u7684\u6bcf\u4e2a\u5730\u65b9\u90fd\u5141\u8bb8 <a href=\"/docs/14/functions-info.html\" title=\"9.26.\u00a0\u7cfb\u7edf\u4fe1\u606f\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>CURRENT_ROLE</code></a>\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/45b980570\">\u00a7</a></p>", "text": "\u5728\u63a5\u53d7 CURRENT_USER \u7684\u6bcf\u4e2a\u5730\u65b9\u90fd\u5141\u8bb8 CURRENT_ROLE\uff08Peter Eisentraut\uff09\u00a7", "title": "\u5728\u63a5\u53d7 CURRENT_USER \u7684\u6bcf\u4e2a\u5730\u65b9\u90fd\u5141\u8bb8 CURRENT_ROLE", "commits": ["45b980570"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-4", "source_hash": "57791f643ac529ff7ddadb73295ad06d6807598c9c7197a525d728db8134265c", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["45b980570"]], "identity_text": "Allow CURRENT_ROLE every place CURRENT_USER is accepted (Peter Eisentraut)", "commit_aliases": ["45b980570"], "source_commits": ["45b980570"], "source_entry_id": "14.0/changes/103", "db_id": "4561c66c5f91dbe5f58dd2f7a71a2f4f", "patch_ids": ["63b5d955ed55f046a1484c01f1680407"], "statement_hash": "25df2a089dab2ae076e03404bb33e7892a54222fd542730dec8dc8428b54dfc3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-337132d224dc888e", "migration": false}, {"id": "14.0-baebbb55c7a98a28", "cves": [], "html": "<p>\u5141\u8bb8\u6269\u5c55\u548c\u5185\u7f6e\u6570\u636e\u7c7b\u578b\u5b9e\u73b0<a href=\"/docs/14/sql-altertype.html\" title=\"ALTER TYPE\">\u4e0b\u6807\u8fd0\u7b97</a>\uff08Dmitry Dolgov\uff09<a href=\"https://postgr.es/c/c7aba7c14\">\u00a7</a></p>\n<p>\u4ee5\u524d\u4e0b\u6807\u5904\u7406\u662f\u5728\u670d\u52a1\u5668\u4e2d\u786c\u7f16\u7801\u7684\uff0c\u56e0\u6b64\u4e0b\u6807\u8fd0\u7b97\u53ea\u80fd\u5e94\u7528\u4e8e\u6570\u7ec4\u7c7b\u578b\u3002\u6b64\u66f4\u6539\u5141\u8bb8\u5bf9\u4efb\u4f55\u6709\u610f\u4e49\u7684\u7c7b\u578b\u4f7f\u7528\u4e0b\u6807\u8bb0\u6cd5\u6765\u63d0\u53d6\u6216\u8d4b\u503c\u90e8\u5206\u503c\u3002</p>", "text": "\u5141\u8bb8\u6269\u5c55\u548c\u5185\u7f6e\u6570\u636e\u7c7b\u578b\u5b9e\u73b0\u4e0b\u6807\u8fd0\u7b97\uff08Dmitry Dolgov\uff09\u00a7 \u4ee5\u524d\u4e0b\u6807\u5904\u7406\u662f\u5728\u670d\u52a1\u5668\u4e2d\u786c\u7f16\u7801\u7684\uff0c\u56e0\u6b64\u4e0b\u6807\u8fd0\u7b97\u53ea\u80fd\u5e94\u7528\u4e8e\u6570\u7ec4\u7c7b\u578b\u3002\u6b64\u66f4\u6539\u5141\u8bb8\u5bf9\u4efb\u4f55\u6709\u610f\u4e49\u7684\u7c7b\u578b\u4f7f\u7528\u4e0b\u6807\u8bb0\u6cd5\u6765\u63d0\u53d6\u6216\u8d4b\u503c\u90e8\u5206\u503c\u3002", "title": "\u5141\u8bb8\u6269\u5c55\u548c\u5185\u7f6e\u6570\u636e\u7c7b\u578b\u5b9e\u73b0\u4e0b\u6807\u8fd0\u7b97", "commits": ["c7aba7c14"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-5", "source_hash": "a0e6321c0501da847c1f5acdf8721dec4f5ffeea885ec531d03582d0b41ab478", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["c7aba7c14"]], "identity_text": "Allow extensions and built-in data types to implement subscripting (Dmitry Dolgov) Previously subscript handling was hard-coded into the server, so that subscripting could only be applied to array types. This change allows subscript notation to be used to extract or assign portions of a value of any type for which the concept makes sense.", "commit_aliases": ["c7aba7c14"], "source_commits": ["c7aba7c14"], "source_entry_id": "14.0/changes/104", "db_id": "e1bfb25d1e943bfea707efd8af4d1c7c", "patch_ids": ["f9c254467da6e9b3496742d75cbe1ff0"], "statement_hash": "95a698762359a3f4e80084d398cc2c5aeba5f2c3129901dd35024f4093782299", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-baebbb55c7a98a28", "migration": false}, {"id": "14.0-fd66a8f5f0f5b740", "cves": [], "html": "<p>\u5141\u8bb8\u5bf9 <a href=\"/docs/14/datatype-json.html\" title=\"8.14.\u00a0JSON \u7c7b\u578b\"><code>JSONB</code></a> \u4f7f\u7528\u4e0b\u6807\u8fd0\u7b97\uff08Dmitry Dolgov\uff09<a href=\"https://postgr.es/c/676887a3b\">\u00a7</a> <a href=\"https://postgr.es/c/81fcc72e6\">\u00a7</a> <a href=\"https://postgr.es/c/aa6e46daf\">\u00a7</a></p>\n<p><code>JSONB</code> \u4e0b\u6807\u8fd0\u7b97\u53ef\u7528\u4e8e\u63d0\u53d6\u548c\u8d4b\u503c <code>JSONB</code> \u6587\u6863\u7684\u90e8\u5206\u5185\u5bb9\u3002</p>", "text": "\u5141\u8bb8\u5bf9 JSONB \u4f7f\u7528\u4e0b\u6807\u8fd0\u7b97\uff08Dmitry Dolgov\uff09\u00a7 \u00a7 \u00a7 JSONB \u4e0b\u6807\u8fd0\u7b97\u53ef\u7528\u4e8e\u63d0\u53d6\u548c\u8d4b\u503c JSONB \u6587\u6863\u7684\u90e8\u5206\u5185\u5bb9\u3002", "title": "\u5141\u8bb8\u5bf9 JSONB \u4f7f\u7528\u4e0b\u6807\u8fd0\u7b97", "commits": ["676887a3b", "81fcc72e6", "aa6e46daf"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-5", "source_hash": "7ff61f1b3ac3bfc56f1a024e4a6f032a1e0ba7f5da00bc351e05f3cd95369750", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["676887a3b"], ["81fcc72e6"], ["aa6e46daf"]], "identity_text": "Allow subscripting of JSONB (Dmitry Dolgov) JSONB subscripting can be used to extract and assign to portions of JSONB documents.", "commit_aliases": ["676887a3b", "81fcc72e6", "aa6e46daf"], "source_commits": ["676887a3b", "81fcc72e6", "aa6e46daf"], "source_entry_id": "14.0/changes/105", "db_id": "0cc23da16b30a5cdb98b298d68d99330", "patch_ids": ["44793863a8279dd71fc5a9f2dc48be1d", "553b23f89db239a449653928e85bb186", "be5aa3b2ecb1c2c8addaaa8eda0de469"], "statement_hash": "77de78d3c9da380e6c52002a9df6b9e364b49335f62678da28095cb794ecb858", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-fd66a8f5f0f5b740", "migration": false}, {"id": "14.0-1344a29e65102e91", "cves": [], "html": "<p>\u589e\u52a0\u5bf9<a href=\"/docs/14/rangetypes.html\" title=\"8.17.\u00a0\u8303\u56f4\u7c7b\u578b\">\u591a\u8303\u56f4\u6570\u636e\u7c7b\u578b</a>\u7684\u652f\u6301\uff08Paul Jungwirth\uff0cAlexander Korotkov\uff09<a href=\"https://postgr.es/c/6df7a9698\">\u00a7</a> <a href=\"https://postgr.es/c/db6335b5b\">\u00a7</a> <a href=\"https://postgr.es/c/62097a4cc\">\u00a7</a> <a href=\"https://postgr.es/c/244ad5415\">\u00a7</a></p>\n<p>\u8fd9\u7c7b\u4f3c\u4e8e\u8303\u56f4\u6570\u636e\u7c7b\u578b\uff0c\u4f46\u5141\u8bb8\u6307\u5b9a\u591a\u4e2a\u6709\u5e8f\u3001\u4e0d\u91cd\u53e0\u7684\u8303\u56f4\u3002\u6bcf\u4e2a\u8303\u56f4\u7c7b\u578b\u90fd\u4f1a\u81ea\u52a8\u521b\u5efa\u4e00\u4e2a\u5173\u8054\u7684\u591a\u8303\u56f4\u7c7b\u578b\u3002</p>", "text": "\u589e\u52a0\u5bf9\u591a\u8303\u56f4\u6570\u636e\u7c7b\u578b\u7684\u652f\u6301\uff08Paul Jungwirth\uff0cAlexander Korotkov\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u8fd9\u7c7b\u4f3c\u4e8e\u8303\u56f4\u6570\u636e\u7c7b\u578b\uff0c\u4f46\u5141\u8bb8\u6307\u5b9a\u591a\u4e2a\u6709\u5e8f\u3001\u4e0d\u91cd\u53e0\u7684\u8303\u56f4\u3002\u6bcf\u4e2a\u8303\u56f4\u7c7b\u578b\u90fd\u4f1a\u81ea\u52a8\u521b\u5efa\u4e00\u4e2a\u5173\u8054\u7684\u591a\u8303\u56f4\u7c7b\u578b\u3002", "title": "\u589e\u52a0\u5bf9\u591a\u8303\u56f4\u6570\u636e\u7c7b\u578b\u7684\u652f\u6301", "commits": ["244ad5415", "62097a4cc", "6df7a9698", "db6335b5b"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-5", "source_hash": "13d082051cc048de04f0cd345171663bcf4340ce4e32aa69d029d291871f1d4a", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["244ad5415"], ["62097a4cc"], ["6df7a9698"], ["db6335b5b"]], "identity_text": "Add support for multirange data types (Paul Jungwirth, Alexander Korotkov) These are like range data types, but they allow the specification of multiple, ordered, non-overlapping ranges. An associated multirange type is automatically created for every range type.", "commit_aliases": ["244ad5415", "62097a4cc", "6df7a9698", "db6335b5b"], "source_commits": ["244ad5415", "62097a4cc", "6df7a9698", "db6335b5b"], "source_entry_id": "14.0/changes/106", "db_id": "2638335b0393e381fe1e956fa542c98d", "patch_ids": ["158a99fd8bca9d9456a72e271a827c80", "5641daa03dde7671991f0f5bec8c49a8", "865abf0ed245feb7444c71070c5c106e", "f9f6fc14c71b9380fb5d642445437a31"], "statement_hash": "30fc7bb36d566ed4e031f751ad8f3b29f92a0a7b1d6fd66a53b93d74818375da", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-1344a29e65102e91", "migration": false}, {"id": "14.0-4a533c87e8c17d15", "cves": [], "html": "<p>\u589e\u52a0\u5bf9\u4e9a\u7f8e\u5c3c\u4e9a\u8bed\u3001\u5df4\u65af\u514b\u8bed\u3001\u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed\u3001\u5370\u5730\u8bed\u3001\u585e\u5c14\u7ef4\u4e9a\u8bed\u548c\u610f\u7b2c\u7eea\u8bed\u7684<a href=\"/docs/14/textsearch-dictionaries.html#TEXTSEARCH-SNOWBALL-DICTIONARY\" title=\"12.6.6.\u00a0Snowball \u8bcd\u5178\">\u8bcd\u5e72\u5316</a>\u652f\u6301\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/cbcc8726b\">\u00a7</a> <a href=\"https://postgr.es/c/c2e71cb35\">\u00a7</a> <a href=\"https://postgr.es/c/678d0e239\">\u00a7</a></p>", "text": "\u589e\u52a0\u5bf9\u4e9a\u7f8e\u5c3c\u4e9a\u8bed\u3001\u5df4\u65af\u514b\u8bed\u3001\u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed\u3001\u5370\u5730\u8bed\u3001\u585e\u5c14\u7ef4\u4e9a\u8bed\u548c\u610f\u7b2c\u7eea\u8bed\u7684\u8bcd\u5e72\u5316\u652f\u6301\uff08Peter Eisentraut\uff09\u00a7 \u00a7 \u00a7", "title": "\u589e\u52a0\u5bf9\u4e9a\u7f8e\u5c3c\u4e9a\u8bed\u3001\u5df4\u65af\u514b\u8bed\u3001\u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed\u3001\u5370\u5730\u8bed\u3001\u585e\u5c14\u7ef4\u4e9a\u8bed\u548c\u610f\u7b2c\u7eea\u8bed\u7684\u8bcd\u5e72\u5316\u652f\u6301", "commits": ["678d0e239", "c2e71cb35", "cbcc8726b"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-5", "source_hash": "fda8ac4f238c748dffa6c149b99d59ba38fba4eccab5fc0db641c30eabddca36", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["678d0e239"], ["c2e71cb35"], ["cbcc8726b"]], "identity_text": "Add support for the stemming of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish (Peter Eisentraut)", "commit_aliases": ["678d0e239", "c2e71cb35", "cbcc8726b"], "source_commits": ["678d0e239", "c2e71cb35", "cbcc8726b"], "source_entry_id": "14.0/changes/107", "db_id": "5ea740bd7c8c2c6c1f7b4d66415af582", "patch_ids": ["0f481d954aade693357c915bde29d3cf", "510710888dd635c9e3cf7671436484bf", "8895268eef04006b417b79477c16c4bd"], "statement_hash": "9f550ab24bc922c2257fad24fac3b415d688c9ed158deae45186edd7ff8e2b0c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-4a533c87e8c17d15", "migration": false}, {"id": "14.0-ba7db90bf58f8e05", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/14/textsearch.html#TEXTSEARCH-INTRO-CONFIGURATIONS\" title=\"12.1.3.\u00a0\u914d\u7f6e\">tsearch \u6570\u636e\u6587\u4ef6</a>\u5177\u6709\u65e0\u9650\u884c\u957f\u5ea6\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/83b61319a\">\u00a7</a></p>\n<p>\u4e4b\u524d\u7684\u9650\u5236\u4e3a 4K \u5b57\u8282\u3002\u540c\u65f6\u79fb\u9664\u51fd\u6570 <code>t_readline()</code>\u3002</p>", "text": "\u5141\u8bb8 tsearch \u6570\u636e\u6587\u4ef6\u5177\u6709\u65e0\u9650\u884c\u957f\u5ea6\uff08Tom Lane\uff09\u00a7 \u4e4b\u524d\u7684\u9650\u5236\u4e3a 4K \u5b57\u8282\u3002\u540c\u65f6\u79fb\u9664\u51fd\u6570 t_readline()\u3002", "title": "\u5141\u8bb8 tsearch \u6570\u636e\u6587\u4ef6\u5177\u6709\u65e0\u9650\u884c\u957f\u5ea6", "commits": ["83b61319a"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-5", "source_hash": "af7c2b34fd6be39f84cd9da431564971dc153ee3651f29c9e530f5c99f3b64a9", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["83b61319a"]], "identity_text": "Allow tsearch data files to have unlimited line lengths (Tom Lane) The previous limit was 4K bytes. Also remove function t_readline().", "commit_aliases": ["83b61319a"], "source_commits": ["83b61319a"], "source_entry_id": "14.0/changes/108", "db_id": "a4a57313e9ed29cb36d0337dacf1dd94", "patch_ids": ["7187cbb61186a81a3c6784f15e294085"], "statement_hash": "fda8546d5b852f448eb6cbd46d42d6380a2f33770762487784e3dc58c6cd46fc", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-ba7db90bf58f8e05", "migration": false}, {"id": "14.0-d6fb66d6c69723eb", "cves": [], "html": "<p>\u589e\u52a0\u5bf9 <a href=\"/docs/14/datatype.html#DATATYPE-NUMERIC\" title=\"8.1.\u00a0\u6570\u5b57\u7c7b\u578b\">numeric \u6570\u636e\u7c7b\u578b</a>\u4e2d <code>Infinity</code> \u548c <code>-Infinity</code> \u503c\u7684\u652f\u6301\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/a57d312a7\">\u00a7</a></p>\n<p>\u6d6e\u70b9\u6570\u636e\u7c7b\u578b\u5df2\u7ecf\u652f\u6301\u8fd9\u4e9b\u503c\u3002</p>", "text": "\u589e\u52a0\u5bf9 numeric \u6570\u636e\u7c7b\u578b\u4e2d Infinity \u548c -Infinity \u503c\u7684\u652f\u6301\uff08Tom Lane\uff09\u00a7 \u6d6e\u70b9\u6570\u636e\u7c7b\u578b\u5df2\u7ecf\u652f\u6301\u8fd9\u4e9b\u503c\u3002", "title": "\u589e\u52a0\u5bf9 numeric \u6570\u636e\u7c7b\u578b\u4e2d Infinity \u548c -Infinity \u503c\u7684\u652f\u6301", "commits": ["a57d312a7"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-5", "source_hash": "1acc84aea8f8ea025ce74751057f6609f86e0481ff4410329596efe0475e8c25", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["a57d312a7"]], "identity_text": "Add support for Infinity and -Infinity values in the numeric data type (Tom Lane) Floating-point data types already supported these.", "commit_aliases": ["a57d312a7"], "source_commits": ["a57d312a7"], "source_entry_id": "14.0/changes/109", "db_id": "2bd1292f391e9124f513063b69f212d6", "patch_ids": ["1dee9522161350e06e578757e009c4ff"], "statement_hash": "6ddf344a239d328a455276ebed3277af3e51fd212e5c69878f5d0749a8a6c088", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-d6fb66d6c69723eb", "migration": false}, {"id": "14.0-04cc4a01c5b7fb42", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/14/functions-geometry.html\" title=\"9.11.\u00a0\u51e0\u4f55\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\">\u70b9\u64cd\u4f5c\u7b26</a> <code>&lt;&lt;|</code> \u548c <code>|&gt;&gt;</code> \u8868\u793a\u4e25\u683c\u5728\u4e0a\u65b9/\u4e0b\u65b9\u6d4b\u8bd5\uff08Emre Hasegeli\uff09<a href=\"https://postgr.es/c/0cc993278\">\u00a7</a></p>\n<p>\u4ee5\u524d\u8fd9\u4e9b\u53eb\u505a <code>&gt;^</code> \u548c <code>&lt;^</code>\uff0c\u4f46\u8be5\u547d\u540d\u4e0e\u5176\u4ed6\u51e0\u4f55\u6570\u636e\u7c7b\u578b\u4e0d\u4e00\u81f4\u3002\u65e7\u540d\u79f0\u4ecd\u7136\u53ef\u7528\uff0c\u4f46\u5c06\u6765\u53ef\u80fd\u88ab\u79fb\u9664\u3002</p>", "text": "\u589e\u52a0\u70b9\u64cd\u4f5c\u7b26 <<| \u548c |>> \u8868\u793a\u4e25\u683c\u5728\u4e0a\u65b9/\u4e0b\u65b9\u6d4b\u8bd5\uff08Emre Hasegeli\uff09\u00a7 \u4ee5\u524d\u8fd9\u4e9b\u53eb\u505a >^ \u548c <^\uff0c\u4f46\u8be5\u547d\u540d\u4e0e\u5176\u4ed6\u51e0\u4f55\u6570\u636e\u7c7b\u578b\u4e0d\u4e00\u81f4\u3002\u65e7\u540d\u79f0\u4ecd\u7136\u53ef\u7528\uff0c\u4f46\u5c06\u6765\u53ef\u80fd\u88ab\u79fb\u9664\u3002", "title": "\u589e\u52a0\u70b9\u64cd\u4f5c\u7b26 <<| \u548c |>> \u8868\u793a\u4e25\u683c\u5728\u4e0a\u65b9/\u4e0b\u65b9\u6d4b\u8bd5", "commits": ["0cc993278"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-5", "source_hash": "b8fdade7b86ba3d8c539cc988898c1c90b373bb201c3a35ec7ad9ff898169d0e", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["0cc993278"]], "identity_text": "Add point operators <<| and |>> representing strictly above/below tests (Emre Hasegeli) Previously these were called >^ and <^, but that naming is inconsistent with other geometric data types. The old names remain available, but may someday be removed.", "commit_aliases": ["0cc993278"], "source_commits": ["0cc993278"], "source_entry_id": "14.0/changes/110", "db_id": "3f128fc43200d9c75140c0f46477e8a7", "patch_ids": ["bf5661ae690b1c7fead618807863da3b"], "statement_hash": "84de7d62fb5d8bd90110bee7d7bad40eb294731492bc8726d1562cd8aa5a8eec", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-04cc4a01c5b7fb42", "migration": false}, {"id": "14.0-7b45bde698a6235d", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/14/datatype-pg-lsn.html\" title=\"8.20.\u00a0pg_lsn \u7c7b\u578b\"><code>LSN</code></a> \u548c numeric\uff08\u5b57\u8282\uff09\u503c\u7684\u52a0\u51cf\u64cd\u4f5c\u7b26\uff08Fujii Masao\uff09<a href=\"https://postgr.es/c/9bae7e4cd\">\u00a7</a></p>", "text": "\u589e\u52a0 LSN \u548c numeric\uff08\u5b57\u8282\uff09\u503c\u7684\u52a0\u51cf\u64cd\u4f5c\u7b26\uff08Fujii Masao\uff09\u00a7", "title": "\u589e\u52a0 LSN \u548c numeric\uff08\u5b57\u8282\uff09\u503c\u7684\u52a0\u51cf\u64cd\u4f5c\u7b26", "commits": ["9bae7e4cd"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-5", "source_hash": "0d766258694aeb27f272b9150bb3d6dce5d2a6bfb6c2985bff3c0f6d37a19267", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["9bae7e4cd"]], "identity_text": "Add operators to add and subtract LSN and numeric (byte) values (Fujii Masao)", "commit_aliases": ["9bae7e4cd"], "source_commits": ["9bae7e4cd"], "source_entry_id": "14.0/changes/111", "db_id": "b17285685ea5c0b5d02eab4b1a9411ac", "patch_ids": ["19536d3d4c707b7bed5f945c5da091f3"], "statement_hash": "475a3e0d1a68acbccdfe77a92866659d0f93298adcc0109d0184a13516c2017a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-7b45bde698a6235d", "migration": false}, {"id": "14.0-afa77c1ad163c9fb", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/14/protocol.html#PROTOCOL-FORMAT-CODES\" title=\"53.1.3.\u00a0\u683c\u5f0f\u548c\u683c\u5f0f\u4ee3\u7801\">\u4e8c\u8fdb\u5236\u6570\u636e\u4f20\u8f93</a>\u5bf9\u6570\u7ec4\u548c\u8bb0\u5f55\u7684 <code>OID</code> \u4e0d\u5339\u914d\u66f4\u52a0\u5bbd\u5bb9\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/670c0a1d4\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4e8c\u8fdb\u5236\u6570\u636e\u4f20\u8f93\u5bf9\u6570\u7ec4\u548c\u8bb0\u5f55\u7684 OID \u4e0d\u5339\u914d\u66f4\u52a0\u5bbd\u5bb9\uff08Tom Lane\uff09\u00a7", "title": "\u5141\u8bb8\u4e8c\u8fdb\u5236\u6570\u636e\u4f20\u8f93\u5bf9\u6570\u7ec4\u548c\u8bb0\u5f55\u7684 OID \u4e0d\u5339\u914d\u66f4\u52a0\u5bbd\u5bb9", "commits": ["670c0a1d4"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-5", "source_hash": "d99c027d192e3351dcca0a93477b78374e0016762b464dbefcd0341d95a5c652", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["670c0a1d4"]], "identity_text": "Allow binary data transfer to be more forgiving of array and record OID mismatches (Tom Lane)", "commit_aliases": ["670c0a1d4"], "source_commits": ["670c0a1d4"], "source_entry_id": "14.0/changes/112", "db_id": "55a622ea3ef2d0b9ffba7b5382ef3b20", "patch_ids": ["34fc7a783e62be2d215ea9b37c67dcf6"], "statement_hash": "32af0d9b6ff39d2bfee4311319f2fa9c2976543d77f5f1c9525b70f5c7abf066", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-afa77c1ad163c9fb", "migration": false}, {"id": "14.0-b5109cca1bfce5a0", "cves": [], "html": "<p>\u4e3a\u7cfb\u7edf\u76ee\u5f55\u521b\u5efa\u590d\u5408\u6570\u7ec4\u7c7b\u578b\uff08Wenjing Zeng\uff09<a href=\"https://postgr.es/c/f7f70d5e2\">\u00a7</a></p>\n<p>\u7528\u6237\u5b9a\u4e49\u7684\u5173\u7cfb\u957f\u671f\u4ee5\u6765\u5c31\u6709\u5173\u8054\u7684\u590d\u5408\u7c7b\u578b\uff0c\u4e5f\u6709\u8fd9\u4e9b\u590d\u5408\u7c7b\u578b\u4e0a\u7684\u6570\u7ec4\u7c7b\u578b\u3002\u7cfb\u7edf\u76ee\u5f55\u73b0\u5728\u4e5f\u662f\u5982\u6b64\u3002\u6b64\u66f4\u6539\u8fd8\u4fee\u590d\u4e86\u5728\u5355\u7528\u6237\u6a21\u5f0f\u4e0b\u521b\u5efa\u7528\u6237\u5b9a\u4e49\u8868\u65f6\u65e0\u6cd5\u521b\u5efa\u590d\u5408\u6570\u7ec4\u7c7b\u578b\u7684\u4e0d\u4e00\u81f4\u6027\u3002</p>", "text": "\u4e3a\u7cfb\u7edf\u76ee\u5f55\u521b\u5efa\u590d\u5408\u6570\u7ec4\u7c7b\u578b\uff08Wenjing Zeng\uff09\u00a7 \u7528\u6237\u5b9a\u4e49\u7684\u5173\u7cfb\u957f\u671f\u4ee5\u6765\u5c31\u6709\u5173\u8054\u7684\u590d\u5408\u7c7b\u578b\uff0c\u4e5f\u6709\u8fd9\u4e9b\u590d\u5408\u7c7b\u578b\u4e0a\u7684\u6570\u7ec4\u7c7b\u578b\u3002\u7cfb\u7edf\u76ee\u5f55\u73b0\u5728\u4e5f\u662f\u5982\u6b64\u3002\u6b64\u66f4\u6539\u8fd8\u4fee\u590d\u4e86\u5728\u5355\u7528\u6237\u6a21\u5f0f\u4e0b\u521b\u5efa\u7528\u6237\u5b9a\u4e49\u8868\u65f6\u65e0\u6cd5\u521b\u5efa\u590d\u5408\u6570\u7ec4\u7c7b\u578b\u7684\u4e0d\u4e00\u81f4\u6027\u3002", "title": "\u4e3a\u7cfb\u7edf\u76ee\u5f55\u521b\u5efa\u590d\u5408\u6570\u7ec4\u7c7b\u578b", "commits": ["f7f70d5e2"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-5", "source_hash": "1d88ad3df6c0355a2262dfc7b508ad1b017bdd06416a09160e292c3701a31eb1", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["f7f70d5e2"]], "identity_text": "Create composite array types for system catalogs (Wenjing Zeng) User-defined relations have long had composite types associated with them, and also array types over those composite types. System catalogs now do as well. This change also fixes an inconsistency that creating a user-defined table in single-user mode would fail to create a composite array type.", "commit_aliases": ["f7f70d5e2"], "source_commits": ["f7f70d5e2"], "source_entry_id": "14.0/changes/113", "db_id": "ebe44389be518b9984a8ca519e88e042", "patch_ids": ["cbac061e3140f3e6c0d9c145c27e45aa"], "statement_hash": "0cccebb4a1b37d2ad2c6e2c6bfc20225854081eedd71f36a28a364ceadfe3845", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-b5109cca1bfce5a0", "migration": false}, {"id": "14.0-8a5dede5c5270ee4", "cves": [], "html": "<p>\u5141\u8bb8 <acronym>SQL</acronym> \u8bed\u8a00<a href=\"/docs/14/sql-createfunction.html\" title=\"CREATE FUNCTION\">\u51fd\u6570</a>\u548c<a href=\"/docs/14/sql-createprocedure.html\" title=\"CREATE PROCEDURE\">\u8fc7\u7a0b</a>\u4f7f\u7528 <acronym>SQL</acronym> \u6807\u51c6\u51fd\u6570\u4f53\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/e717a9a18\">\u00a7</a></p>\n<p>\u4ee5\u524d\u4ec5\u652f\u6301\u5b57\u7b26\u4e32\u5b57\u9762\u91cf\u51fd\u6570\u4f53\u3002\u4ee5 SQL \u6807\u51c6\u8bed\u6cd5\u7f16\u5199\u51fd\u6570\u6216\u8fc7\u7a0b\u65f6\uff0c\u51fd\u6570\u4f53\u4f1a\u88ab\u7acb\u5373\u89e3\u6790\u5e76\u5b58\u50a8\u4e3a\u89e3\u6790\u6811\u3002\u8fd9\u5141\u8bb8\u66f4\u597d\u5730\u8ddf\u8e2a\u51fd\u6570\u4f9d\u8d56\u5173\u7cfb\uff0c\u5e76\u5177\u6709\u5b89\u5168\u4f18\u52bf\u3002</p>", "text": "\u5141\u8bb8 SQL \u8bed\u8a00\u51fd\u6570\u548c\u8fc7\u7a0b\u4f7f\u7528 SQL \u6807\u51c6\u51fd\u6570\u4f53\uff08Peter Eisentraut\uff09\u00a7 \u4ee5\u524d\u4ec5\u652f\u6301\u5b57\u7b26\u4e32\u5b57\u9762\u91cf\u51fd\u6570\u4f53\u3002\u4ee5 SQL \u6807\u51c6\u8bed\u6cd5\u7f16\u5199\u51fd\u6570\u6216\u8fc7\u7a0b\u65f6\uff0c\u51fd\u6570\u4f53\u4f1a\u88ab\u7acb\u5373\u89e3\u6790\u5e76\u5b58\u50a8\u4e3a\u89e3\u6790\u6811\u3002\u8fd9\u5141\u8bb8\u66f4\u597d\u5730\u8ddf\u8e2a\u51fd\u6570\u4f9d\u8d56\u5173\u7cfb\uff0c\u5e76\u5177\u6709\u5b89\u5168\u4f18\u52bf\u3002", "title": "\u5141\u8bb8 SQL \u8bed\u8a00\u51fd\u6570\u548c\u8fc7\u7a0b\u4f7f\u7528 SQL \u6807\u51c6\u51fd\u6570\u4f53", "commits": ["e717a9a18"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "daec6496a7b20e7889939f2968fb04906a17a465c6f0a6d510aa2c5a18d415f5", "section_path": ["\u51fd\u6570"], "commit_groups": [["e717a9a18"]], "identity_text": "Allow SQL-language functions and procedures to use SQL-standard function bodies (Peter Eisentraut) Previously only string-literal function bodies were supported. When writing a function or procedure in SQL-standard syntax, the body is parsed immediately and stored as a parse tree. This allows better tracking of function dependencies, and can have security benefits.", "commit_aliases": ["e717a9a18"], "source_commits": ["e717a9a18"], "source_entry_id": "14.0/changes/114", "db_id": "4821c63dbd3aef37e199ebe9a3eda019", "patch_ids": ["b4b15d88bed9dc4d3e5b601ef765c0ef"], "statement_hash": "91c962935b11caf35bcded1da0ca7a7817d42258d11ef1078c0beb50e4ab4ad4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-8a5dede5c5270ee4", "migration": false}, {"id": "14.0-2faf609e81582899", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/14/sql-createprocedure.html\" title=\"CREATE PROCEDURE\">\u8fc7\u7a0b</a>\u5177\u6709 <code>OUT</code> \u53c2\u6570\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/2453ea142\">\u00a7</a> <a href=\"https://postgr.es/c/9213462c5\">\u00a7</a></p>", "text": "\u5141\u8bb8\u8fc7\u7a0b\u5177\u6709 OUT \u53c2\u6570\uff08Peter Eisentraut\uff09\u00a7 \u00a7", "title": "\u5141\u8bb8\u8fc7\u7a0b\u5177\u6709 OUT \u53c2\u6570", "commits": ["2453ea142", "9213462c5"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "71b18cc24f17eaab3dcdbc33e528fbb24a590d98e3727ec733e68bd4e86eda0f", "section_path": ["\u51fd\u6570"], "commit_groups": [["2453ea142"], ["9213462c5"]], "identity_text": "Allow procedures to have OUT parameters (Peter Eisentraut)", "commit_aliases": ["2453ea142", "9213462c5"], "source_commits": ["2453ea142", "9213462c5"], "source_entry_id": "14.0/changes/115", "db_id": "baaaa111860b656ff13443b77e9a9436", "patch_ids": ["2ce57dd0f35420e3108c5db714b0ffeb", "f6b209b4e3fdf91b028387c1bc508a50"], "statement_hash": "19342772dcd21d38f19fc518ed69ceb5c54b131299bc4d1b812baaa49a962853", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-2faf609e81582899", "migration": false}, {"id": "14.0-fd66ed7b67cee4c5", "cves": [], "html": "<p>\u5141\u8bb8\u67d0\u4e9b\u6570\u7ec4\u51fd\u6570\u5728\u517c\u5bb9\u6570\u636e\u7c7b\u578b\u7684\u7ec4\u5408\u4e0a\u64cd\u4f5c\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/9e38c2bb5\">\u00a7</a></p>\n<p>\u51fd\u6570 <a href=\"/docs/14/functions-array.html\" title=\"9.19.\u00a0\u6570\u7ec4\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>array_append()</code></a>\u3001<code>array_prepend()</code>\u3001<code>array_cat()</code>\u3001<code>array_position()</code>\u3001<code>array_positions()</code>\u3001<code>array_remove()</code>\u3001<code>array_replace()</code> \u548c <a href=\"/docs/14/functions-math.html\" title=\"9.3.\u00a0\u6570\u5b66\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>width_bucket()</code></a> \u73b0\u5728\u63a5\u53d7 <code>anycompatiblearray</code> \u800c\u4e0d\u662f <code>anyarray</code> \u53c2\u6570\u3002\u8fd9\u4f7f\u5b83\u4eec\u5bf9\u53c2\u6570\u7c7b\u578b\u7684\u7cbe\u786e\u5339\u914d\u8981\u6c42\u66f4\u4f4e\u3002</p>", "text": "\u5141\u8bb8\u67d0\u4e9b\u6570\u7ec4\u51fd\u6570\u5728\u517c\u5bb9\u6570\u636e\u7c7b\u578b\u7684\u7ec4\u5408\u4e0a\u64cd\u4f5c\uff08Tom Lane\uff09\u00a7 \u51fd\u6570 array_append()\u3001array_prepend()\u3001array_cat()\u3001array_position()\u3001array_positions()\u3001array_remove()\u3001array_replace() \u548c width_bucket() \u73b0\u5728\u63a5\u53d7 anycompatiblearray \u800c\u4e0d\u662f anyarray \u53c2\u6570\u3002\u8fd9\u4f7f\u5b83\u4eec\u5bf9\u53c2\u6570\u7c7b\u578b\u7684\u7cbe\u786e\u5339\u914d\u8981\u6c42\u66f4\u4f4e\u3002", "title": "\u5141\u8bb8\u67d0\u4e9b\u6570\u7ec4\u51fd\u6570\u5728\u517c\u5bb9\u6570\u636e\u7c7b\u578b\u7684\u7ec4\u5408\u4e0a\u64cd\u4f5c", "commits": ["9e38c2bb5"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "db959a464b140c3c3354e45711221b1af5565de8a897cb156ddd811a7bb9d78f", "section_path": ["\u51fd\u6570"], "commit_groups": [["9e38c2bb5"]], "identity_text": "Allow some array functions to operate on a mix of compatible data types (Tom Lane) The functions array_append(), array_prepend(), array_cat(), array_position(), array_positions(), array_remove(), array_replace(), and width_bucket() now take anycompatiblearray instead of anyarray arguments. This makes them less fussy about exact matches of argument types.", "commit_aliases": ["9e38c2bb5"], "source_commits": ["9e38c2bb5"], "source_entry_id": "14.0/changes/116", "db_id": "08589d1884d0ea2ed7d1f62b5df4cc1d", "patch_ids": ["80d8aa49c80ecce0ddda625f58860fe1"], "statement_hash": "a4f0bb9f017c7df91785f8cafd764b3e12f80333332f6b33695300a6a44f90a3", "relations": [{"rule": 2, "type": "related", "target": "57c4547257fc6633764aa973e9303863", "evidence": {"same_day": true, "patch_ids": ["80d8aa49c80ecce0ddda625f58860fe1"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-fd66ed7b67cee4c5", "migration": false}, {"id": "14.0-fb87eaaff7058e6c", "cves": [], "html": "<p>\u589e\u52a0 <acronym>SQL</acronym> \u6807\u51c6\u7684 <a href=\"/docs/14/functions-array.html\" title=\"9.19.\u00a0\u6570\u7ec4\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>trim_array()</code></a> \u51fd\u6570\uff08Vik Fearing\uff09<a href=\"https://postgr.es/c/0a687c8f1\">\u00a7</a></p>\n<p>\u4f7f\u7528\u6570\u7ec4\u5207\u7247\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u6b64\u529f\u80fd\uff0c\u4f46\u4e0d\u90a3\u4e48\u65b9\u4fbf\u3002</p>", "text": "\u589e\u52a0 SQL \u6807\u51c6\u7684 trim_array() \u51fd\u6570\uff08Vik Fearing\uff09\u00a7 \u4f7f\u7528\u6570\u7ec4\u5207\u7247\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u6b64\u529f\u80fd\uff0c\u4f46\u4e0d\u90a3\u4e48\u65b9\u4fbf\u3002", "title": "\u589e\u52a0 SQL \u6807\u51c6\u7684 trim_array() \u51fd\u6570", "commits": ["0a687c8f1"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "db065e2e5ba613268eb6068d5e11210887d2cf0434ef4113233147f71aed463e", "section_path": ["\u51fd\u6570"], "commit_groups": [["0a687c8f1"]], "identity_text": "Add SQL-standard trim_array() function (Vik Fearing) This could already be done with array slices, but less easily.", "commit_aliases": ["0a687c8f1"], "source_commits": ["0a687c8f1"], "source_entry_id": "14.0/changes/117", "db_id": "c583f69786b99666212475e55a700446", "patch_ids": ["2917c9084868e6da13cd021a1d005ba2"], "statement_hash": "84f0230017aeec171d441fd3bc75d8bdb48183fb827fcbe3b083804e28a4202b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-fb87eaaff7058e6c", "migration": false}, {"id": "14.0-7b4c580c3d0ba19c", "cves": [], "html": "<p>\u589e\u52a0 <code>bytea</code> \u7248\u672c\u7684 <a href=\"/docs/14/functions-binarystring.html\" title=\"9.5.\u00a0\u4e8c\u8fdb\u5236\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>ltrim()</code></a> \u548c <code>rtrim()</code>\uff08Joel Jacobson\uff09<a href=\"https://postgr.es/c/a6cf3df4e\">\u00a7</a></p>", "text": "\u589e\u52a0 bytea \u7248\u672c\u7684 ltrim() \u548c rtrim()\uff08Joel Jacobson\uff09\u00a7", "title": "\u589e\u52a0 bytea \u7248\u672c\u7684 ltrim() \u548c rtrim()", "commits": ["a6cf3df4e"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "1fc71cfc9710b76d55953090249b60b471e4b8ea5c56b86c6aaee3e03e748e50", "section_path": ["\u51fd\u6570"], "commit_groups": [["a6cf3df4e"]], "identity_text": "Add bytea equivalents of ltrim() and rtrim() (Joel Jacobson)", "commit_aliases": ["a6cf3df4e"], "source_commits": ["a6cf3df4e"], "source_entry_id": "14.0/changes/118", "db_id": "9694115172abc4c86c97e59dae561d3d", "patch_ids": ["e873cbf97cda0872c9b9cdf033c0194a"], "statement_hash": "459c7fff060620c10edfb8b88d180c197a1a11938398802fdc99d57f6a4a9fb8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-7b4c580c3d0ba19c", "migration": false}, {"id": "14.0-6bfe9bb519c776fe", "cves": [], "html": "<p>\u5728 <a href=\"/docs/14/functions-string.html\" title=\"9.4.\u00a0\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>split_part()</code></a> \u4e2d\u652f\u6301\u8d1f\u7d22\u5f15\uff08Nikhil Benesch\uff09<a href=\"https://postgr.es/c/ec0294fb2\">\u00a7</a></p>\n<p>\u8d1f\u503c\u4ece\u6700\u540e\u4e00\u4e2a\u5b57\u6bb5\u5f00\u59cb\u5411\u524d\u8ba1\u6570\u3002</p>", "text": "\u5728 split_part() \u4e2d\u652f\u6301\u8d1f\u7d22\u5f15\uff08Nikhil Benesch\uff09\u00a7 \u8d1f\u503c\u4ece\u6700\u540e\u4e00\u4e2a\u5b57\u6bb5\u5f00\u59cb\u5411\u524d\u8ba1\u6570\u3002", "title": "\u5728 split_part() \u4e2d\u652f\u6301\u8d1f\u7d22\u5f15", "commits": ["ec0294fb2"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "98192b92397f4ae4b2069eb49053d7e20030717a4e7e853ddbbd0d5200c91b3b", "section_path": ["\u51fd\u6570"], "commit_groups": [["ec0294fb2"]], "identity_text": "Support negative indexes in split_part() (Nikhil Benesch) Negative values start from the last field and count backward.", "commit_aliases": ["ec0294fb2"], "source_commits": ["ec0294fb2"], "source_entry_id": "14.0/changes/119", "db_id": "c77c7b01ef65ea8744fe46125d79e62b", "patch_ids": ["732abdb8c6f066eb5a42788cc4b16dd6"], "statement_hash": "bea1a000222529e21b542bed16bd07e2c8264f29eaaaa3d9ae9e77fd045ccef3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-6bfe9bb519c776fe", "migration": false}, {"id": "14.0-7b149ab9502dad7a", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/14/functions-string.html\" title=\"9.4.\u00a0\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>string_to_table()</code></a> \u51fd\u6570\u4ee5\u6309\u5206\u9694\u7b26\u62c6\u5206\u5b57\u7b26\u4e32\uff08Pavel Stehule\uff09<a href=\"https://postgr.es/c/66f163068\">\u00a7</a></p>\n<p>\u8fd9\u7c7b\u4f3c\u4e8e <a href=\"/docs/14/functions-string.html\" title=\"9.4.\u00a0\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>regexp_split_to_table()</code></a> \u51fd\u6570\u3002</p>", "text": "\u589e\u52a0 string_to_table() \u51fd\u6570\u4ee5\u6309\u5206\u9694\u7b26\u62c6\u5206\u5b57\u7b26\u4e32\uff08Pavel Stehule\uff09\u00a7 \u8fd9\u7c7b\u4f3c\u4e8e regexp_split_to_table() \u51fd\u6570\u3002", "title": "\u589e\u52a0 string_to_table() \u51fd\u6570\u4ee5\u6309\u5206\u9694\u7b26\u62c6\u5206\u5b57\u7b26\u4e32", "commits": ["66f163068"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "ea868861832cc36437bf7376c8ac351bf607a6fe340600b8460f2e04f4f04ad3", "section_path": ["\u51fd\u6570"], "commit_groups": [["66f163068"]], "identity_text": "Add string_to_table() function to split a string on delimiters (Pavel Stehule) This is similar to the regexp_split_to_table() function.", "commit_aliases": ["66f163068"], "source_commits": ["66f163068"], "source_entry_id": "14.0/changes/120", "db_id": "a9da603976725202ff376acfcab74cda", "patch_ids": ["b84372ee684d0f0cb5941f5fb1f9025d"], "statement_hash": "b5616f4a0ad01fa8a5947cadec78f53d0d6f38d489c846b6d19529cc73715647", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-7b149ab9502dad7a", "migration": false}, {"id": "14.0-650d3b1627a6b66a", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/14/functions-string.html\" title=\"9.4.\u00a0\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>unistr()</code></a> \u51fd\u6570\u4ee5\u5141\u8bb8\u5728\u5b57\u7b26\u4e32\u4e2d\u4ee5\u53cd\u659c\u6760\u5341\u516d\u8fdb\u5236\u8f6c\u4e49\u5f62\u5f0f\u6307\u5b9a Unicode \u5b57\u7b26\uff08Pavel Stehule\uff09<a href=\"https://postgr.es/c/f37fec837\">\u00a7</a></p>\n<p>\u8fd9\u7c7b\u4f3c\u4e8e\u5728\u5b57\u9762\u91cf\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a Unicode \u7684\u65b9\u5f0f\u3002</p>", "text": "\u589e\u52a0 unistr() \u51fd\u6570\u4ee5\u5141\u8bb8\u5728\u5b57\u7b26\u4e32\u4e2d\u4ee5\u53cd\u659c\u6760\u5341\u516d\u8fdb\u5236\u8f6c\u4e49\u5f62\u5f0f\u6307\u5b9a Unicode \u5b57\u7b26\uff08Pavel Stehule\uff09\u00a7 \u8fd9\u7c7b\u4f3c\u4e8e\u5728\u5b57\u9762\u91cf\u5b57\u7b26\u4e32\u4e2d\u6307\u5b9a Unicode \u7684\u65b9\u5f0f\u3002", "title": "\u589e\u52a0 unistr() \u51fd\u6570\u4ee5\u5141\u8bb8\u5728\u5b57\u7b26\u4e32\u4e2d\u4ee5\u53cd\u659c\u6760\u5341\u516d\u8fdb\u5236\u8f6c\u4e49\u5f62\u5f0f\u6307\u5b9a Unicode \u5b57\u7b26", "commits": ["f37fec837"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "0f2dd3c24173f497cb2ad7866825c9eb337a337a31d9f0b1fb8cd683c71726b5", "section_path": ["\u51fd\u6570"], "commit_groups": [["f37fec837"]], "identity_text": "Add unistr() function to allow Unicode characters to be specified as backslash-hex escapes in strings (Pavel Stehule) This is similar to how Unicode can be specified in literal strings.", "commit_aliases": ["f37fec837"], "source_commits": ["f37fec837"], "source_entry_id": "14.0/changes/121", "db_id": "bfe42a949647d7a6869f62d5d9ec68c4", "patch_ids": ["26594207ffbf42dd6bdcd3f4f7973b59"], "statement_hash": "b9ea8a1f041a6e9fbbac56a63920562acbdff598c2139e13ff17f015aaa75e8e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-650d3b1627a6b66a", "migration": false}, {"id": "14.0-1e7b560dcdb59724", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/14/functions-aggregate.html\" title=\"9.21.\u00a0\u805a\u5408\u51fd\u6570\"><code>bit_xor()</code></a> XOR \u805a\u5408\u51fd\u6570\uff08Alexey Bashtanov\uff09<a href=\"https://postgr.es/c/f9a0392e1\">\u00a7</a></p>", "text": "\u589e\u52a0 bit_xor() XOR \u805a\u5408\u51fd\u6570\uff08Alexey Bashtanov\uff09\u00a7", "title": "\u589e\u52a0 bit_xor() XOR \u805a\u5408\u51fd\u6570", "commits": ["f9a0392e1"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "3a84b34355c04722089ed403e980d14d323c2dbb8557f523f2a2234ae89bf9fd", "section_path": ["\u51fd\u6570"], "commit_groups": [["f9a0392e1"]], "identity_text": "Add bit_xor() XOR aggregate function (Alexey Bashtanov)", "commit_aliases": ["f9a0392e1"], "source_commits": ["f9a0392e1"], "source_entry_id": "14.0/changes/122", "db_id": "788e903ecc700e5529bf5757a983e4fa", "patch_ids": ["23fab42588a19cff1048c7a5abb0b000"], "statement_hash": "b3075aec3f8de161480563d2667b1706a06e7d581da8895d98e61275ca41b61b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-1e7b560dcdb59724", "migration": false}, {"id": "14.0-f574cad058a60677", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/14/functions-binarystring.html\" title=\"9.5.\u00a0\u4e8c\u8fdb\u5236\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>bit_count()</code></a> \u4ee5\u8fd4\u56de\u4f4d\u6216\u5b57\u8282\u5b57\u7b26\u4e32\u4e2d\u8bbe\u7f6e\u7684\u4f4d\u6570\uff08David Fetter\uff09<a href=\"https://postgr.es/c/a6715af1e\">\u00a7</a></p>", "text": "\u589e\u52a0\u51fd\u6570 bit_count() \u4ee5\u8fd4\u56de\u4f4d\u6216\u5b57\u8282\u5b57\u7b26\u4e32\u4e2d\u8bbe\u7f6e\u7684\u4f4d\u6570\uff08David Fetter\uff09\u00a7", "title": "\u589e\u52a0\u51fd\u6570 bit_count() \u4ee5\u8fd4\u56de\u4f4d\u6216\u5b57\u8282\u5b57\u7b26\u4e32\u4e2d\u8bbe\u7f6e\u7684\u4f4d\u6570", "commits": ["a6715af1e"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "9933900ea21f1de019a363c68485138953892b440da29d2738d580abd4b4a77b", "section_path": ["\u51fd\u6570"], "commit_groups": [["a6715af1e"]], "identity_text": "Add function bit_count() to return the number of bits set in a bit or byte string (David Fetter)", "commit_aliases": ["a6715af1e"], "source_commits": ["a6715af1e"], "source_entry_id": "14.0/changes/123", "db_id": "18d8dfc248612d6fb737406dcbdc632e", "patch_ids": ["09f543ec73510e71e11248aafc84020e"], "statement_hash": "26e292cac6c935aa31b12b6ab3c290c34699b1e79af3172de2359c4f6916a1da", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-f574cad058a60677", "migration": false}, {"id": "14.0-2d627923e8b08fcb", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/14/functions-datetime.html#FUNCTIONS-DATETIME-BIN\" title=\"9.9.3.\u00a0date_bin\"><code>date_bin()</code></a> \u51fd\u6570\uff08John Naylor\uff09<a href=\"https://postgr.es/c/49ab61f0b\">\u00a7</a> <a href=\"https://postgr.es/c/496e58bb0\">\u00a7</a></p>\n<p>\u6b64\u51fd\u6570\u5c06\u8f93\u5165\u65f6\u95f4\u6233\u8fdb\u884c<span>\u201c<span>\u5206\u7bb1</span>\u201d</span>\uff0c\u5c06\u5b83\u4eec\u5206\u7ec4\u5230\u4e0e\u6307\u5b9a\u539f\u70b9\u5bf9\u9f50\u7684\u5747\u5300\u957f\u5ea6\u7684\u533a\u95f4\u4e2d\u3002</p>", "text": "\u589e\u52a0 date_bin() \u51fd\u6570\uff08John Naylor\uff09\u00a7 \u00a7 \u6b64\u51fd\u6570\u5c06\u8f93\u5165\u65f6\u95f4\u6233\u8fdb\u884c\u201c\u5206\u7bb1\u201d\uff0c\u5c06\u5b83\u4eec\u5206\u7ec4\u5230\u4e0e\u6307\u5b9a\u539f\u70b9\u5bf9\u9f50\u7684\u5747\u5300\u957f\u5ea6\u7684\u533a\u95f4\u4e2d\u3002", "title": "\u589e\u52a0 date_bin() \u51fd\u6570", "commits": ["496e58bb0", "49ab61f0b"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "f70888637a47d4a1c6b04432d5fb0139e14952282e4e1ec75abdd4a5f3093b38", "section_path": ["\u51fd\u6570"], "commit_groups": [["496e58bb0"], ["49ab61f0b"]], "identity_text": "Add date_bin() function (John Naylor) This function bins input timestamps, grouping them into intervals of a uniform length aligned with a specified origin.", "commit_aliases": ["496e58bb0", "49ab61f0b"], "source_commits": ["496e58bb0", "49ab61f0b"], "source_entry_id": "14.0/changes/124", "db_id": "df10f249c44172b76cfae9298bb7d636", "patch_ids": ["4f38f62c50eaf9ea0f4aee433ba3c9af", "98010eccb14f067dd376613a4fe71077"], "statement_hash": "fc6b364699e28cd51613aee6b8c1012be72650dda3e994f1e7ea8b371faf42e7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-2d627923e8b08fcb", "migration": false}, {"id": "14.0-3a70dc56d047676f", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/14/functions-datetime.html\" title=\"9.9.\u00a0\u65e5\u671f/\u65f6\u95f4\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>make_timestamp()</code></a>/<code>make_timestamptz()</code> \u63a5\u53d7\u8d1f\u5e74\u4efd\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/a094c8ff5\">\u00a7</a></p>\n<p>\u8d1f\u503c\u88ab\u89e3\u91ca\u4e3a <code>BC</code> \u5e74\u3002</p>", "text": "\u5141\u8bb8 make_timestamp()/make_timestamptz() \u63a5\u53d7\u8d1f\u5e74\u4efd\uff08Peter Eisentraut\uff09\u00a7 \u8d1f\u503c\u88ab\u89e3\u91ca\u4e3a BC \u5e74\u3002", "title": "\u5141\u8bb8 make_timestamp()/make_timestamptz() \u63a5\u53d7\u8d1f\u5e74\u4efd", "commits": ["a094c8ff5"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "0c692b72f1f16bab686cce4ed39bec4f364f0ed50d794a93df9c3e041f6b17c0", "section_path": ["\u51fd\u6570"], "commit_groups": [["a094c8ff5"]], "identity_text": "Allow make_timestamp()/make_timestamptz() to accept negative years (Peter Eisentraut) Negative values are interpreted as BC years.", "commit_aliases": ["a094c8ff5"], "source_commits": ["a094c8ff5"], "source_entry_id": "14.0/changes/125", "db_id": "1f517138275a0c124e9a278f5648cf86", "patch_ids": ["b60b76f407accd1670572b19eb0956b1"], "statement_hash": "1ff8220a7346be9faa954c083ee1e62859ac25e84d61db62532af0a806864a8e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-3a70dc56d047676f", "migration": false}, {"id": "14.0-a971268f0adb842d", "cves": [], "html": "<p>\u589e\u52a0\u66f4\u65b0\u7684\u6b63\u5219\u8868\u8fbe\u5f0f <a href=\"/docs/14/functions-string.html\" title=\"9.4.\u00a0\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>substring()</code></a> \u8bed\u6cd5\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/78c887679\">\u00a7</a></p>\n<p>\u65b0\u7684 SQL \u6807\u51c6\u8bed\u6cd5\u4e3a <code>SUBSTRING(text SIMILAR pattern ESCAPE escapechar)</code>\u3002\u4e4b\u524d\u7684\u6807\u51c6\u8bed\u6cd5 <code>SUBSTRING(text FROM pattern FOR escapechar)</code> \u4ecd\u88ab <span>PostgreSQL</span> \u63a5\u53d7\u3002</p>", "text": "\u589e\u52a0\u66f4\u65b0\u7684\u6b63\u5219\u8868\u8fbe\u5f0f substring() \u8bed\u6cd5\uff08Peter Eisentraut\uff09\u00a7 \u65b0\u7684 SQL \u6807\u51c6\u8bed\u6cd5\u4e3a SUBSTRING(text SIMILAR pattern ESCAPE escapechar)\u3002\u4e4b\u524d\u7684\u6807\u51c6\u8bed\u6cd5 SUBSTRING(text FROM pattern FOR escapechar) \u4ecd\u88ab PostgreSQL \u63a5\u53d7\u3002", "title": "\u589e\u52a0\u66f4\u65b0\u7684\u6b63\u5219\u8868\u8fbe\u5f0f substring() \u8bed\u6cd5", "commits": ["78c887679"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "4e9f9ebb131ecf01307a3269ba060e5b8bdede3a8ab432b69c9e8a31d5b16352", "section_path": ["\u51fd\u6570"], "commit_groups": [["78c887679"]], "identity_text": "Add newer regular expression substring() syntax (Peter Eisentraut) The new SQL-standard syntax is SUBSTRING(text SIMILAR pattern ESCAPE escapechar). The previous standard syntax was SUBSTRING(text FROM pattern FOR escapechar), which is still accepted by PostgreSQL.", "commit_aliases": ["78c887679"], "source_commits": ["78c887679"], "source_entry_id": "14.0/changes/126", "db_id": "92f0a3e2e813413a640e7f467266479d", "patch_ids": ["4ecc2b44c86547b00fed3e34dd5d0f01"], "statement_hash": "39614327d0a5bc687b354309e206b91a7e88d17f5ef1efda1f80b02147c9b8b5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-a971268f0adb842d", "migration": false}, {"id": "14.0-2c6859029debdc66-1", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u6b63\u5219\u8868\u8fbe\u5f0f\u65b9\u62ec\u53f7\u5185\u4f7f\u7528\u8865\u5145\u5b57\u7b26\u7c7b\u8f6c\u4e49 <a href=\"/docs/14/functions-matching.html#POSIX-ESCAPE-SEQUENCES\" title=\"9.7.3.3.\u00a0\u6b63\u5219\u8868\u8fbe\u5f0f\u8f6c\u4e49\">\\D</a>\u3001<code>\\S</code> \u548c <code>\\W</code>\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/2a0af7fe4\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728\u6b63\u5219\u8868\u8fbe\u5f0f\u65b9\u62ec\u53f7\u5185\u4f7f\u7528\u8865\u5145\u5b57\u7b26\u7c7b\u8f6c\u4e49 \\D\u3001\\S \u548c \\W\uff08Tom Lane\uff09\u00a7", "title": "\u5141\u8bb8\u5728\u6b63\u5219\u8868\u8fbe\u5f0f\u65b9\u62ec\u53f7\u5185\u4f7f\u7528\u8865\u5145\u5b57\u7b26\u7c7b\u8f6c\u4e49 \\D\u3001\\S \u548c \\W", "commits": ["2a0af7fe4"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "da5c6805bcaa8fe7906106af572cfceea3aa3fa630969152808c96ddaf8ae1cd", "section_path": ["\u51fd\u6570"], "commit_groups": [["2a0af7fe4"]], "identity_text": "Allow complemented character class escapes \\D, \\S, and \\W within regular expression brackets (Tom Lane)", "commit_aliases": ["2a0af7fe4"], "source_commits": ["2a0af7fe4"], "source_entry_id": "14.0/changes/127", "db_id": "11855fff64e4bfd4f316452868bdaf21", "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "statement_hash": "cf8cca9f23c8bf6c8a4b44f6b8b9fbec90d3fd24062b6383d96e7a4ee4a53b4c", "relations": [{"rule": 2, "type": "related", "target": "31b906e8faf3983c67c4ba76c9bcbe42", "evidence": {"same_day": true, "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "ambiguous_patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"]}}, {"rule": 2, "type": "related", "target": "7cb33f40db82cf57d3f6f027f0bd7fa4", "evidence": {"same_day": true, "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "ambiguous_patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-2c6859029debdc66-1", "migration": false}, {"id": "14.0-2c6859029debdc66-2", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/14/functions-matching.html#POSIX-BRACKET-EXPRESSIONS\" title=\"9.7.3.2.\u00a0\u65b9\u62ec\u53f7\u8868\u8fbe\u5f0f\"><code>[[:word:]]</code></a> \u4f5c\u4e3a\u6b63\u5219\u8868\u8fbe\u5f0f\u5b57\u7b26\u7c7b\uff0c\u7b49\u540c\u4e8e <code>\\w</code>\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/2a0af7fe4\">\u00a7</a></p>", "text": "\u589e\u52a0 [[:word:]] \u4f5c\u4e3a\u6b63\u5219\u8868\u8fbe\u5f0f\u5b57\u7b26\u7c7b\uff0c\u7b49\u540c\u4e8e \\w\uff08Tom Lane\uff09\u00a7", "title": "\u589e\u52a0 [[:word:]] \u4f5c\u4e3a\u6b63\u5219\u8868\u8fbe\u5f0f\u5b57\u7b26\u7c7b\uff0c\u7b49\u540c\u4e8e \\w", "commits": ["2a0af7fe4"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "3078e3d0af4305d271ea949360d5da35b6f5a66f797c64e5f2522c12dfe82240", "section_path": ["\u51fd\u6570"], "commit_groups": [["2a0af7fe4"]], "identity_text": "Add [[:word:]] as a regular expression character class, equivalent to \\w (Tom Lane)", "commit_aliases": ["2a0af7fe4"], "source_commits": ["2a0af7fe4"], "source_entry_id": "14.0/changes/128", "db_id": "31b906e8faf3983c67c4ba76c9bcbe42", "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "statement_hash": "5e9bdbc53adeabb63cc665287dce311bb7bcc33c8e0a3bd16179e7a890eae412", "relations": [{"rule": 2, "type": "related", "target": "11855fff64e4bfd4f316452868bdaf21", "evidence": {"same_day": true, "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "ambiguous_patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"]}}, {"rule": 2, "type": "related", "target": "7cb33f40db82cf57d3f6f027f0bd7fa4", "evidence": {"same_day": true, "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "ambiguous_patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-2c6859029debdc66-2", "migration": false}, {"id": "14.0-f5db82d0e7f5ec61", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/14/functions-window.html\" title=\"9.22.\u00a0\u7a97\u53e3\u51fd\u6570\"><code>lead()</code></a> \u548c <code>lag()</code> \u7a97\u53e3\u51fd\u6570\u7684\u9ed8\u8ba4\u503c\u4f7f\u7528\u66f4\u7075\u6d3b\u7684\u6570\u636e\u7c7b\u578b\uff08Vik Fearing\uff09<a href=\"https://postgr.es/c/5c292e6b9\">\u00a7</a></p>", "text": "\u5141\u8bb8 lead() \u548c lag() \u7a97\u53e3\u51fd\u6570\u7684\u9ed8\u8ba4\u503c\u4f7f\u7528\u66f4\u7075\u6d3b\u7684\u6570\u636e\u7c7b\u578b\uff08Vik Fearing\uff09\u00a7", "title": "\u5141\u8bb8 lead() \u548c lag() \u7a97\u53e3\u51fd\u6570\u7684\u9ed8\u8ba4\u503c\u4f7f\u7528\u66f4\u7075\u6d3b\u7684\u6570\u636e\u7c7b\u578b", "commits": ["5c292e6b9"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "8c0496c7e8c3c0a8208f49c34a5d25c79baf3284bf6dc96546ce683910cd5296", "section_path": ["\u51fd\u6570"], "commit_groups": [["5c292e6b9"]], "identity_text": "Allow more flexible data types for default values of lead() and lag() window functions (Vik Fearing)", "commit_aliases": ["5c292e6b9"], "source_commits": ["5c292e6b9"], "source_entry_id": "14.0/changes/129", "db_id": "082c85af60515bcb6618c887e7b6b22e", "patch_ids": ["fec99da0bc8450d3eed709e34739bb49"], "statement_hash": "a426651ca2ba045de2f57ad3dae88be3628407b41978ab140e5c6599b0854b4c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-f5db82d0e7f5ec61", "migration": false}, {"id": "14.0-40c6c626bb9bd157", "cves": [], "html": "<p>\u4f7f\u975e\u96f6<a href=\"/docs/14/datatype.html#DATATYPE-FLOAT\" title=\"8.1.3.\u00a0\u6d6e\u70b9\u7c7b\u578b\">\u6d6e\u70b9\u503c</a>\u9664\u4ee5\u65e0\u7a77\u5927\u8fd4\u56de\u96f6\uff08Kyotaro Horiguchi\uff09<a href=\"https://postgr.es/c/fac83dbd6\">\u00a7</a></p>\n<p>\u4ee5\u524d\u6b64\u7c7b\u64cd\u4f5c\u4ea7\u751f\u4e0b\u6ea2\u9519\u8bef\u3002</p>", "text": "\u4f7f\u975e\u96f6\u6d6e\u70b9\u503c\u9664\u4ee5\u65e0\u7a77\u5927\u8fd4\u56de\u96f6\uff08Kyotaro Horiguchi\uff09\u00a7 \u4ee5\u524d\u6b64\u7c7b\u64cd\u4f5c\u4ea7\u751f\u4e0b\u6ea2\u9519\u8bef\u3002", "title": "\u4f7f\u975e\u96f6\u6d6e\u70b9\u503c\u9664\u4ee5\u65e0\u7a77\u5927\u8fd4\u56de\u96f6", "commits": ["fac83dbd6"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "ebc2d65595b171c88987478f7de2595fd898aa600dbbcb97a0b98fd8b968b762", "section_path": ["\u51fd\u6570"], "commit_groups": [["fac83dbd6"]], "identity_text": "Make non-zero floating-point values divided by infinity return zero (Kyotaro Horiguchi) Previously such operations produced underflow errors.", "commit_aliases": ["fac83dbd6"], "source_commits": ["fac83dbd6"], "source_entry_id": "14.0/changes/130", "db_id": "685d60b983c7a30ff669d6d7133dd16a", "patch_ids": ["c3fd842805a868d959c67d784849ff4b"], "statement_hash": "a8a3d5c1e80291b198b9bfc787d8fc7dce4ed5a07ea266204b5436c648ea84f8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-40c6c626bb9bd157", "migration": false}, {"id": "14.0-a04946076404109d", "cves": [], "html": "<p>\u4f7f\u6d6e\u70b9 NaN \u9664\u4ee5\u96f6\u8fd4\u56de NaN\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/4fb6aeb4f\">\u00a7</a></p>\n<p>\u4ee5\u524d\u8fd9\u8fd4\u56de\u4e00\u4e2a\u9519\u8bef\u3002</p>", "text": "\u4f7f\u6d6e\u70b9 NaN \u9664\u4ee5\u96f6\u8fd4\u56de NaN\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\u8fd9\u8fd4\u56de\u4e00\u4e2a\u9519\u8bef\u3002", "title": "\u4f7f\u6d6e\u70b9 NaN \u9664\u4ee5\u96f6\u8fd4\u56de NaN", "commits": ["4fb6aeb4f"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "92babe35676ba81074c91da24a7354b14b32c3815bc7f1759e78097a90bd9ef5", "section_path": ["\u51fd\u6570"], "commit_groups": [["4fb6aeb4f"]], "identity_text": "Make floating-point division of NaN by zero return NaN (Tom Lane) Previously this returned an error.", "commit_aliases": ["4fb6aeb4f"], "source_commits": ["4fb6aeb4f"], "source_entry_id": "14.0/changes/131", "db_id": "3d8e349fe6596f5e788814991f5b88c8", "patch_ids": ["96abea7797ae412aad2cfef70ecebb68"], "statement_hash": "b5f48822d04944aa50f411e297cb6ba9d1468a227ffe4e707e3dcc1dbdaf3792", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-a04946076404109d", "migration": false}, {"id": "14.0-1ad6fedb094724f4", "cves": [], "html": "<p>\u4f7f <a href=\"/docs/14/functions-math.html\" title=\"9.3.\u00a0\u6570\u5b66\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>exp()</code></a> \u548c <code>power()</code> \u5728\u8d1f\u65e0\u7a77\u5927\u6307\u6570\u65f6\u8fd4\u56de\u96f6\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/decbe2bfb\">\u00a7</a> <a href=\"https://postgr.es/c/e532b1d57\">\u00a7</a> <a href=\"https://postgr.es/c/5674eb987\">\u00a7</a></p>\n<p>\u4ee5\u524d\u5b83\u4eec\u7ecf\u5e38\u8fd4\u56de\u4e0b\u6ea2\u9519\u8bef\u3002</p>", "text": "\u4f7f exp() \u548c power() \u5728\u8d1f\u65e0\u7a77\u5927\u6307\u6570\u65f6\u8fd4\u56de\u96f6\uff08Tom Lane\uff09\u00a7 \u00a7 \u00a7 \u4ee5\u524d\u5b83\u4eec\u7ecf\u5e38\u8fd4\u56de\u4e0b\u6ea2\u9519\u8bef\u3002", "title": "\u4f7f exp() \u548c power() \u5728\u8d1f\u65e0\u7a77\u5927\u6307\u6570\u65f6\u8fd4\u56de\u96f6", "commits": ["5674eb987", "decbe2bfb", "e532b1d57"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "c5532a1f6e94745431d794b6a2d0ccb5cd964fa2b12e11bdcd2400dc4b448afd", "section_path": ["\u51fd\u6570"], "commit_groups": [["5674eb987"], ["decbe2bfb"], ["e532b1d57"]], "identity_text": "Cause exp() and power() for negative-infinity exponents to return zero (Tom Lane) Previously they often returned underflow errors.", "commit_aliases": ["5674eb987", "decbe2bfb", "e532b1d57"], "source_commits": ["5674eb987", "decbe2bfb", "e532b1d57"], "source_entry_id": "14.0/changes/132", "db_id": "7f545583939150ff15678e1848d660ea", "patch_ids": ["1a94be85e52bb312876ba131782715d4", "c2dd9d3b0aece33f62d0ac894d19cd7c", "f4ee098ed6a5ff0841eb9d570285177d"], "statement_hash": "3896068a2d2174de31d4aa7f29e4e871e0091178af9d4fc747e0ed7f45c77ed1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-1ad6fedb094724f4", "migration": false}, {"id": "14.0-7ed57947ba8525a8", "cves": [], "html": "<p>\u6539\u8fdb\u6d89\u53ca\u65e0\u7a77\u5927\u7684\u51e0\u4f55\u8ba1\u7b97\u7684\u7cbe\u5ea6\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/8597a48d0\">\u00a7</a></p>", "text": "\u6539\u8fdb\u6d89\u53ca\u65e0\u7a77\u5927\u7684\u51e0\u4f55\u8ba1\u7b97\u7684\u7cbe\u5ea6\uff08Tom Lane\uff09\u00a7", "title": "\u6539\u8fdb\u6d89\u53ca\u65e0\u7a77\u5927\u7684\u51e0\u4f55\u8ba1\u7b97\u7684\u7cbe\u5ea6", "commits": ["8597a48d0"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "2f48a7b58b175c17561abcc7a148434501c2420a5b57cba1d4a6f19bcaa2669f", "section_path": ["\u51fd\u6570"], "commit_groups": [["8597a48d0"]], "identity_text": "Improve the accuracy of geometric computations involving infinity (Tom Lane)", "commit_aliases": ["8597a48d0"], "source_commits": ["8597a48d0"], "source_entry_id": "14.0/changes/133", "db_id": "3b034060a12c844f0765315fd513083c", "patch_ids": ["a39c50f126aa45f4366b96bea76580a9"], "statement_hash": "3134b568ce5f6634ce83bb8998965802e5f14b22d5df07290e3133bf82a48923", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-7ed57947ba8525a8", "migration": false}, {"id": "14.0-35643afc6ca59660", "cves": [], "html": "<p>\u5c3d\u53ef\u80fd\u5c06\u5185\u7f6e\u7c7b\u578b\u8f6c\u6362\u51fd\u6570\u6807\u8bb0\u4e3a\u9632\u6cc4\u6f0f\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/8a37951ee\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u5728\u5b89\u5168\u654f\u611f\u60c5\u51b5\u4e0b\u66f4\u591a\u5730\u4f7f\u7528\u9700\u8981\u7c7b\u578b\u8f6c\u6362\u7684\u51fd\u6570\u3002</p>", "text": "\u5c3d\u53ef\u80fd\u5c06\u5185\u7f6e\u7c7b\u578b\u8f6c\u6362\u51fd\u6570\u6807\u8bb0\u4e3a\u9632\u6cc4\u6f0f\uff08Tom Lane\uff09\u00a7 \u8fd9\u5141\u8bb8\u5728\u5b89\u5168\u654f\u611f\u60c5\u51b5\u4e0b\u66f4\u591a\u5730\u4f7f\u7528\u9700\u8981\u7c7b\u578b\u8f6c\u6362\u7684\u51fd\u6570\u3002", "title": "\u5c3d\u53ef\u80fd\u5c06\u5185\u7f6e\u7c7b\u578b\u8f6c\u6362\u51fd\u6570\u6807\u8bb0\u4e3a\u9632\u6cc4\u6f0f", "commits": ["8a37951ee"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "1abb86d0ce4e97aa2d7bb9812c11f70028461de142ba4b612ce6067c10970be6", "section_path": ["\u51fd\u6570"], "commit_groups": [["8a37951ee"]], "identity_text": "Mark built-in type coercion functions as leakproof where possible (Tom Lane) This allows more use of functions that require type conversion in security-sensitive situations.", "commit_aliases": ["8a37951ee"], "source_commits": ["8a37951ee"], "source_entry_id": "14.0/changes/134", "db_id": "41f92ac4e65ced30d9cea07b78b39b47", "patch_ids": ["6c1d01418464f07a7eb80d903bd195d3"], "statement_hash": "844a849f20f9e8447f5ae69c4b95e3a0a480d42ecec1bb0934b97b831087ccde", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-35643afc6ca59660", "migration": false}, {"id": "14.0-d67c75c743028397", "cves": [], "html": "<p>\u6539\u53d8 <a href=\"/docs/14/functions-info.html\" title=\"9.26.\u00a0\u7cfb\u7edf\u4fe1\u606f\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>pg_describe_object()</code></a>\u3001<code>pg_identify_object()</code> \u548c <code>pg_identify_object_as_address()</code>\uff0c\u4f7f\u5176\u59cb\u7ec8\u4e3a\u4e0d\u5b58\u5728\u7684\u5bf9\u8c61\u62a5\u544a\u6709\u7528\u7684\u9519\u8bef\u6d88\u606f\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/2a10fdc43\">\u00a7</a></p>", "text": "\u6539\u53d8 pg_describe_object()\u3001pg_identify_object() \u548c pg_identify_object_as_address()\uff0c\u4f7f\u5176\u59cb\u7ec8\u4e3a\u4e0d\u5b58\u5728\u7684\u5bf9\u8c61\u62a5\u544a\u6709\u7528\u7684\u9519\u8bef\u6d88\u606f\uff08Michael Paquier\uff09\u00a7", "title": "\u6539\u53d8 pg_describe_object()\u3001pg_identify_object() \u548c pg_identify_object_as_address()\uff0c\u4f7f\u5176\u59cb\u7ec8\u4e3a\u4e0d\u5b58\u5728\u7684\u5bf9\u8c61\u62a5\u544a\u6709\u7528\u7684\u9519\u8bef\u6d88\u606f", "commits": ["2a10fdc43"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-6", "source_hash": "b72bfe5319f36aed9062c18ef1fd5ecf79fbc127b9f95837e2f0993dfb4307e8", "section_path": ["\u51fd\u6570"], "commit_groups": [["2a10fdc43"]], "identity_text": "Change pg_describe_object(), pg_identify_object(), and pg_identify_object_as_address() to always report helpful error messages for non-existent objects (Michael Paquier)", "commit_aliases": ["2a10fdc43"], "source_commits": ["2a10fdc43"], "source_entry_id": "14.0/changes/135", "db_id": "ca11dd71deb2b5851a762a3ea807747f", "patch_ids": ["25747634dadd794cb40d7bc068587963"], "statement_hash": "f3e838220c04e994809eeb39e21806d4a502b35c8a5d7432228d9c8b03f7d740", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-d67c75c743028397", "migration": false}, {"id": "14.0-fa0e71f8fd0ae8b3", "cves": [], "html": "<p>\u6539\u8fdb PL/pgSQL \u7684<a href=\"/docs/14/plpgsql-expressions.html\" title=\"43.4.\u00a0\u8868\u8fbe\u5f0f\">\u8868\u8fbe\u5f0f</a>\u548c<a href=\"/docs/14/plpgsql-statements.html#PLPGSQL-STATEMENTS-ASSIGNMENT\" title=\"43.5.1.\u00a0\u8d4b\u503c\">\u8d4b\u503c</a>\u89e3\u6790\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/c9d529848\">\u00a7</a></p>\n<p>\u6b64\u66f4\u6539\u5141\u8bb8\u8d4b\u503c\u5230\u6570\u7ec4\u5207\u7247\u548c\u5d4c\u5957\u8bb0\u5f55\u5b57\u6bb5\u3002</p>", "text": "\u6539\u8fdb PL/pgSQL \u7684\u8868\u8fbe\u5f0f\u548c\u8d4b\u503c\u89e3\u6790\uff08Tom Lane\uff09\u00a7 \u6b64\u66f4\u6539\u5141\u8bb8\u8d4b\u503c\u5230\u6570\u7ec4\u5207\u7247\u548c\u5d4c\u5957\u8bb0\u5f55\u5b57\u6bb5\u3002", "title": "\u6539\u8fdb PL/pgSQL \u7684\u8868\u8fbe\u5f0f\u548c\u8d4b\u503c\u89e3\u6790", "commits": ["c9d529848"], "section": "PL/pgSQL", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-7", "source_hash": "afb64b408c3c7bcb051458123f921379e81fd7b8aec946f791f8fc6c8621a45c", "section_path": ["PL/pgSQL"], "commit_groups": [["c9d529848"]], "identity_text": "Improve PL/pgSQL's expression and assignment parsing (Tom Lane) This change allows assignment to array slices and nested record fields.", "commit_aliases": ["c9d529848"], "source_commits": ["c9d529848"], "source_entry_id": "14.0/changes/136", "db_id": "a7fafd5beea87d39779f2fbaeba0e97f", "patch_ids": ["cc3748f87f2b3ec7c1e91b94e6ad57c3"], "statement_hash": "76fc77efa4529a9527e9a852ad588d8919219e5e5b2273399f17d9dfe9e2b9d5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-fa0e71f8fd0ae8b3", "migration": false}, {"id": "14.0-27ba8247279e780e", "cves": [], "html": "<p>\u5141\u8bb8 plpgsql \u7684 <a href=\"/docs/14/plpgsql-control-structures.html\" title=\"43.6.\u00a0\u63a7\u5236\u7ed3\u6784\"><code>RETURN QUERY</code></a> \u4f7f\u7528\u5e76\u884c\u6267\u884c\u5176\u67e5\u8be2\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/2f48ede08\">\u00a7</a></p>", "text": "\u5141\u8bb8 plpgsql \u7684 RETURN QUERY \u4f7f\u7528\u5e76\u884c\u6267\u884c\u5176\u67e5\u8be2\uff08Tom Lane\uff09\u00a7", "title": "\u5141\u8bb8 plpgsql \u7684 RETURN QUERY \u4f7f\u7528\u5e76\u884c\u6267\u884c\u5176\u67e5\u8be2", "commits": ["2f48ede08"], "section": "PL/pgSQL", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-7", "source_hash": "34f98d08981e25d7f7f313a54b412ba8bb3b5cc5d0cb8c31bf46ef3fb1020946", "section_path": ["PL/pgSQL"], "commit_groups": [["2f48ede08"]], "identity_text": "Allow plpgsql's RETURN QUERY to execute its query using parallelism (Tom Lane)", "commit_aliases": ["2f48ede08"], "source_commits": ["2f48ede08"], "source_entry_id": "14.0/changes/137", "db_id": "6aaf0b148a803697815fd4412dab2ef8", "patch_ids": ["9a9da6940f2a03eb7ae4bc28b5c22270"], "statement_hash": "57eb6a6742e95e4efd8c092fc657ef878d07aef9d2b257acf94c1a05ec3656a9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-27ba8247279e780e", "migration": false}, {"id": "14.0-7d4c81a0d0055fb8", "cves": [], "html": "<p>\u6539\u8fdb plpgsql \u8fc7\u7a0b\u4e2d\u91cd\u590d <a href=\"/docs/14/plpgsql-transactions.html\" title=\"43.8.\u00a0\u4e8b\u52a1\u7ba1\u7406\">CALL</a> \u7684\u6027\u80fd\uff08Pavel Stehule\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/ee895a655\">\u00a7</a></p>", "text": "\u6539\u8fdb plpgsql \u8fc7\u7a0b\u4e2d\u91cd\u590d CALL \u7684\u6027\u80fd\uff08Pavel Stehule\uff0cTom Lane\uff09\u00a7", "title": "\u6539\u8fdb plpgsql \u8fc7\u7a0b\u4e2d\u91cd\u590d CALL \u7684\u6027\u80fd", "commits": ["ee895a655"], "section": "PL/pgSQL", "category": "performance", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-7", "source_hash": "43918156dc263d2ecb220191e42eba91a48f1dc59b0d1fb8f5fdbc1fee6b71f2", "section_path": ["PL/pgSQL"], "commit_groups": [["ee895a655"]], "identity_text": "Improve performance of repeated CALLs within plpgsql procedures (Pavel Stehule, Tom Lane)", "commit_aliases": ["ee895a655"], "source_commits": ["ee895a655"], "source_entry_id": "14.0/changes/138", "db_id": "33db67c4180c430daecc80f178b2b8dd", "patch_ids": ["43f682e3b3155e3742365335766367b5"], "statement_hash": "363d61cff95a77dd070c3c5fe3a0005f0e1a92e64ee16ecf22a09cf33b3cf4ae", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=14.0#14.0-7d4c81a0d0055fb8", "migration": false}, {"id": "14.0-fb8236ebc2a9e882", "cves": [], "html": "<p>\u4e3a libpq \u589e\u52a0<a href=\"/docs/14/libpq-pipeline-mode.html#LIBPQ-PIPELINE-SENDING\" title=\"34.5.1.1.\u00a0\u53d1\u51fa\u67e5\u8be2\">\u7ba1\u9053</a>\u6a21\u5f0f\uff08Craig Ringer\uff0cMatthieu Garrigues\uff0c\u00c1lvaro Herrera\uff09<a href=\"https://postgr.es/c/acb7e4eb6\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u53d1\u9001\u591a\u4e2a\u67e5\u8be2\uff0c\u4ec5\u5728\u53d1\u9001\u7279\u5b9a\u540c\u6b65\u6d88\u606f\u65f6\u7b49\u5f85\u5b8c\u6210\u3002</p>", "text": "\u4e3a libpq \u589e\u52a0\u7ba1\u9053\u6a21\u5f0f\uff08Craig Ringer\uff0cMatthieu Garrigues\uff0c\u00c1lvaro Herrera\uff09\u00a7 \u8fd9\u5141\u8bb8\u53d1\u9001\u591a\u4e2a\u67e5\u8be2\uff0c\u4ec5\u5728\u53d1\u9001\u7279\u5b9a\u540c\u6b65\u6d88\u606f\u65f6\u7b49\u5f85\u5b8c\u6210\u3002", "title": "\u4e3a libpq \u589e\u52a0\u7ba1\u9053\u6a21\u5f0f", "commits": ["acb7e4eb6"], "section": "\u5ba2\u6237\u7aef\u63a5\u53e3", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-8", "source_hash": "c713583060373043979fc1218ef4efd7f6be9363463690123d49eccd9270e997", "section_path": ["\u5ba2\u6237\u7aef\u63a5\u53e3"], "commit_groups": [["acb7e4eb6"]], "identity_text": "Add pipeline mode to libpq (Craig Ringer, Matthieu Garrigues, \u00c1lvaro Herrera) This allows multiple queries to be sent, only waiting for completion when a specific synchronization message is sent.", "commit_aliases": ["acb7e4eb6"], "source_commits": ["acb7e4eb6"], "source_entry_id": "14.0/changes/139", "db_id": "c72a474ac6e2e0bbfda8c136a8809530", "patch_ids": ["8d5e42d8009a54459d0b7b54ffb01564"], "statement_hash": "4ef1c19966950fe5ba78e647a34711bb6ad9a4248b22d194533db4c387d2df44", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-fb8236ebc2a9e882", "migration": false}, {"id": "14.0-2b28f8f2ce1dae12", "cves": [], "html": "<p>\u589e\u5f3a libpq \u7684 <a href=\"/docs/14/libpq.html#LIBPQ-PARAMKEYWORDS\" title=\"34.1.2.\u00a0\u53c2\u6570\u5173\u952e\u8bcd\"><code>target_session_attrs</code></a> \u53c2\u6570\u9009\u9879\uff08Haribabu Kommi\uff0cGreg Nancarrow\uff0cVignesh C\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/d16f8c8e4\">\u00a7</a> <a href=\"https://postgr.es/c/ee28cacf6\">\u00a7</a></p>\n<p>\u65b0\u9009\u9879\u4e3a <code>read-only</code>\u3001<code>primary</code>\u3001<code>standby</code> \u548c <code>prefer-standby</code>\u3002</p>", "text": "\u589e\u5f3a libpq \u7684 target_session_attrs \u53c2\u6570\u9009\u9879\uff08Haribabu Kommi\uff0cGreg Nancarrow\uff0cVignesh C\uff0cTom Lane\uff09\u00a7 \u00a7 \u65b0\u9009\u9879\u4e3a read-only\u3001primary\u3001standby \u548c prefer-standby\u3002", "title": "\u589e\u5f3a libpq \u7684 target_session_attrs \u53c2\u6570\u9009\u9879", "commits": ["d16f8c8e4", "ee28cacf6"], "section": "\u5ba2\u6237\u7aef\u63a5\u53e3", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-8", "source_hash": "5ee435fbe82782d5a7a257c70236fc95dac77aa5afc6c152c9ebd94a59f2129b", "section_path": ["\u5ba2\u6237\u7aef\u63a5\u53e3"], "commit_groups": [["d16f8c8e4"], ["ee28cacf6"]], "identity_text": "Enhance libpq's target_session_attrs parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane) The new options are read-only, primary, standby, and prefer-standby.", "commit_aliases": ["d16f8c8e4", "ee28cacf6"], "source_commits": ["d16f8c8e4", "ee28cacf6"], "source_entry_id": "14.0/changes/140", "db_id": "65c92a2636a1d840b49891a66502ade2", "patch_ids": ["3bf6a6363dc7d512990515c7b33d6404", "5c59caeb0135695ebd092f69869387ef"], "statement_hash": "96f3d4068fcb36238dc3350e9636ac653431be6cc77283fddfc97543441a5eb6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-2b28f8f2ce1dae12", "migration": false}, {"id": "14.0-ea74fca4297bebae", "cves": [], "html": "<p>\u6539\u8fdb libpq \u7684 <a href=\"/docs/14/libpq-control.html\" title=\"34.11.\u00a0\u63a7\u5236\u51fd\u6570\"><code>PQtrace()</code></a> \u8f93\u51fa\u683c\u5f0f\uff08Aya Iwata\uff0c\u00c1lvaro Herrera\uff09<a href=\"https://postgr.es/c/198b3716d\">\u00a7</a></p>", "text": "\u6539\u8fdb libpq \u7684 PQtrace() \u8f93\u51fa\u683c\u5f0f\uff08Aya Iwata\uff0c\u00c1lvaro Herrera\uff09\u00a7", "title": "\u6539\u8fdb libpq \u7684 PQtrace() \u8f93\u51fa\u683c\u5f0f", "commits": ["198b3716d"], "section": "\u5ba2\u6237\u7aef\u63a5\u53e3", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-8", "source_hash": "daf6001a7b47e2f1a02ed18f1c911f46c30c0b13c7b448bdd171eabac1ade73c", "section_path": ["\u5ba2\u6237\u7aef\u63a5\u53e3"], "commit_groups": [["198b3716d"]], "identity_text": "Improve the output format of libpq's PQtrace() (Aya Iwata, \u00c1lvaro Herrera)", "commit_aliases": ["198b3716d"], "source_commits": ["198b3716d"], "source_entry_id": "14.0/changes/141", "db_id": "b76fc3bfae293390885022d40c92ae91", "patch_ids": ["0a17de26d8f09a10c22ad242ff6ca6d8"], "statement_hash": "6c617f48c51df8c45e0e69c5108cfd798473621bc1be0f52466f2fbb5dd83a9e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-ea74fca4297bebae", "migration": false}, {"id": "14.0-0dad7610acda8677", "cves": [], "html": "<p>\u5141\u8bb8\u5c06 ECPG SQL \u6807\u8bc6\u7b26\u94fe\u63a5\u5230\u7279\u5b9a\u8fde\u63a5\uff08Hayato Kuroda\uff09<a href=\"https://postgr.es/c/ad8305a43\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7 <a href=\"/docs/14/ecpg-sql-declare-statement.html\" title=\"DECLARE STATEMENT\"><code>DECLARE ... STATEMENT</code></a> \u5b8c\u6210\u3002</p>", "text": "\u5141\u8bb8\u5c06 ECPG SQL \u6807\u8bc6\u7b26\u94fe\u63a5\u5230\u7279\u5b9a\u8fde\u63a5\uff08Hayato Kuroda\uff09\u00a7 \u8fd9\u901a\u8fc7 DECLARE ... STATEMENT \u5b8c\u6210\u3002", "title": "\u5141\u8bb8\u5c06 ECPG SQL \u6807\u8bc6\u7b26\u94fe\u63a5\u5230\u7279\u5b9a\u8fde\u63a5", "commits": ["ad8305a43"], "section": "\u5ba2\u6237\u7aef\u63a5\u53e3", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-8", "source_hash": "326c10a2c026da6c0419e1df97467ae027fa58c28bcb7950e9478f678abff3df", "section_path": ["\u5ba2\u6237\u7aef\u63a5\u53e3"], "commit_groups": [["ad8305a43"]], "identity_text": "Allow an ECPG SQL identifier to be linked to a specific connection (Hayato Kuroda) This is done via DECLARE ... STATEMENT.", "commit_aliases": ["ad8305a43"], "source_commits": ["ad8305a43"], "source_entry_id": "14.0/changes/142", "db_id": "2df3c5530a0780e619ed16944ce6db2f", "patch_ids": ["31b0fcd2b0929c60c243abd4ae1ef9f6"], "statement_hash": "2ce7147b0e2bbd3f4d93872a2b32bbfe685f3628dea5cb5680bd4e175319c998", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-0dad7610acda8677", "migration": false}, {"id": "14.0-e2cc6dfdd2805261", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/14/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a>\u8df3\u8fc7\u7d22\u5f15\u6e05\u7406\u548c\u622a\u65ad\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/9550ea302\">\u00a7</a></p>\n<p>\u9009\u9879\u4e3a <code>--no-index-cleanup</code> \u548c <code>--no-truncate</code>\u3002</p>", "text": "\u5141\u8bb8vacuumdb\u8df3\u8fc7\u7d22\u5f15\u6e05\u7406\u548c\u622a\u65ad\uff08Nathan Bossart\uff09\u00a7 \u9009\u9879\u4e3a --no-index-cleanup \u548c --no-truncate\u3002", "title": "\u5141\u8bb8vacuumdb\u8df3\u8fc7\u7d22\u5f15\u6e05\u7406\u548c\u622a\u65ad", "commits": ["9550ea302"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-9", "source_hash": "951aa4ab0ca2dad71a5acfe1c4d32ed8901b257d808be8e62225b976631867fb", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528"], "commit_groups": [["9550ea302"]], "identity_text": "Allow vacuumdb to skip index cleanup and truncation (Nathan Bossart) The options are --no-index-cleanup and --no-truncate.", "commit_aliases": ["9550ea302"], "source_commits": ["9550ea302"], "source_entry_id": "14.0/changes/143", "db_id": "62bcaec75381486db1e4a92432a360b1", "patch_ids": ["a8714c62fcff1556e4aff57929734926"], "statement_hash": "c3f6b3f0c628ba6cc3dcf70dc1fdd818f03462e1877ad298c5c8c03060cec281", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-e2cc6dfdd2805261", "migration": false}, {"id": "14.0-53673f48b6e5d5af", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/14/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>\u4ec5\u5bfc\u51fa\u7279\u5b9a\u6269\u5c55\uff08Guillaume Lelarge\uff09<a href=\"https://postgr.es/c/6568cef26\">\u00a7</a></p>\n<p>\u8fd9\u7531\u9009\u9879 <code>--extension</code> \u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8pg_dump\u4ec5\u5bfc\u51fa\u7279\u5b9a\u6269\u5c55\uff08Guillaume Lelarge\uff09\u00a7 \u8fd9\u7531\u9009\u9879 --extension \u63a7\u5236\u3002", "title": "\u5141\u8bb8pg_dump\u4ec5\u5bfc\u51fa\u7279\u5b9a\u6269\u5c55", "commits": ["6568cef26"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-9", "source_hash": "673584e77529d5a8dc4ff8e1a46e2ef3100556893525897ba829c637b51c00dd", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528"], "commit_groups": [["6568cef26"]], "identity_text": "Allow pg_dump to dump only certain extensions (Guillaume Lelarge) This is controlled by option --extension.", "commit_aliases": ["6568cef26"], "source_commits": ["6568cef26"], "source_entry_id": "14.0/changes/144", "db_id": "883e4362480e8a07065f1547c8090530", "patch_ids": ["0fb25f6eb341a76bc20800aba3a41256"], "statement_hash": "04e8c5771c52891e75fa1b55fbb1d5458633f57d29d3aa4e6afdea40c09ed07c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-53673f48b6e5d5af", "migration": false}, {"id": "14.0-1d7586fb65b22b3a", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/14/pgbench.html\" title=\"pgbench\"><span>pgbench</span></a>\u7684 <code>permute()</code> \u51fd\u6570\u4ee5\u968f\u673a\u6253\u4e71\u503c\uff08Fabien Coelho\uff0cHironobu Suzuki\uff0cDean Rasheed\uff09<a href=\"https://postgr.es/c/6b258e3d6\">\u00a7</a></p>", "text": "\u589e\u52a0pgbench\u7684 permute() \u51fd\u6570\u4ee5\u968f\u673a\u6253\u4e71\u503c\uff08Fabien Coelho\uff0cHironobu Suzuki\uff0cDean Rasheed\uff09\u00a7", "title": "\u589e\u52a0pgbench\u7684 permute() \u51fd\u6570\u4ee5\u968f\u673a\u6253\u4e71\u503c", "commits": ["6b258e3d6"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-9", "source_hash": "c5a7e41482ca2ac9c89ab8bd005c530a0e7c2692d943645133f2350a23a99794", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528"], "commit_groups": [["6b258e3d6"]], "identity_text": "Add pgbench permute() function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed)", "commit_aliases": ["6b258e3d6"], "source_commits": ["6b258e3d6"], "source_entry_id": "14.0/changes/145", "db_id": "eb77447998d47768c5340637f2a2fb24", "patch_ids": ["edac6eb2f0e3687124582cd6eaed69e4"], "statement_hash": "dab2ee661ac331a183752bb0f9e7d3af63410fe306f45a7eea493f84a0fa8e98", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-1d7586fb65b22b3a", "migration": false}, {"id": "14.0-f5c0d38936d044c7", "cves": [], "html": "<p>\u5728 <span>pgbench</span> \u4f7f\u7528 <code>-C</code> \u9009\u9879\u6d4b\u91cf\u7684\u91cd\u8fde\u5f00\u9500\u4e2d\u5305\u542b\u65ad\u5f00\u8fde\u63a5\u65f6\u95f4\uff08Yugo Nagata\uff09<a href=\"https://postgr.es/c/d760d942c\">\u00a7</a></p>", "text": "\u5728 pgbench \u4f7f\u7528 -C \u9009\u9879\u6d4b\u91cf\u7684\u91cd\u8fde\u5f00\u9500\u4e2d\u5305\u542b\u65ad\u5f00\u8fde\u63a5\u65f6\u95f4\uff08Yugo Nagata\uff09\u00a7", "title": "\u5728 pgbench \u4f7f\u7528 -C \u9009\u9879\u6d4b\u91cf\u7684\u91cd\u8fde\u5f00\u9500\u4e2d\u5305\u542b\u65ad\u5f00\u8fde\u63a5\u65f6\u95f4", "commits": ["d760d942c"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-9", "source_hash": "1d008fa340c3a219c7d13b8e551ad6edc4340b56cd703c297e4abf4a886d7fc5", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528"], "commit_groups": [["d760d942c"]], "identity_text": "Include disconnection times in the reconnection overhead measured by pgbench with -C (Yugo Nagata)", "commit_aliases": ["d760d942c"], "source_commits": ["d760d942c"], "source_entry_id": "14.0/changes/146", "db_id": "d5427ecd84c221870133476ad55a109e", "patch_ids": ["789820933920cd47618cec84f34a2bb8"], "statement_hash": "f0c0d18e22cd58374fc1d2cdf35c044d9fd511891a64e8eb824d20e23214cd6a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-f5c0d38936d044c7", "migration": false}, {"id": "14.0-9613ee55cb2c6755", "cves": [], "html": "<p>\u5141\u8bb8\u591a\u6b21\u6307\u5b9a\u8be6\u7ec6\u9009\u9879\uff08<code>-v</code>\uff09\u4ee5\u589e\u52a0\u65e5\u5fd7\u8be6\u7ec6\u7a0b\u5ea6\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/99175141c\">\u00a7</a></p>\n<p><a href=\"/docs/14/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>\u3001<a href=\"/docs/14/app-pg-dumpall.html\" title=\"pg_dumpall\"><span>pg_dumpall</span></a>\u548c<a href=\"/docs/14/app-pgrestore.html\" title=\"pg_restore\"><span>pg_restore</span></a>\u652f\u6301\u6b64\u884c\u4e3a\u3002</p>", "text": "\u5141\u8bb8\u591a\u6b21\u6307\u5b9a\u8be6\u7ec6\u9009\u9879\uff08-v\uff09\u4ee5\u589e\u52a0\u65e5\u5fd7\u8be6\u7ec6\u7a0b\u5ea6\uff08Tom Lane\uff09\u00a7 pg_dump\u3001pg_dumpall\u548cpg_restore\u652f\u6301\u6b64\u884c\u4e3a\u3002", "title": "\u5141\u8bb8\u591a\u6b21\u6307\u5b9a\u8be6\u7ec6\u9009\u9879\uff08-v\uff09\u4ee5\u589e\u52a0\u65e5\u5fd7\u8be6\u7ec6\u7a0b\u5ea6", "commits": ["99175141c"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-9", "source_hash": "0e94d9170a3dfc6557e06a17c4af3c9ef34243909f0675c4e145ac34a0aa7b05", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528"], "commit_groups": [["99175141c"]], "identity_text": "Allow multiple verbose option specifications (-v) to increase the logging verbosity (Tom Lane) This behavior is supported by pg_dump, pg_dumpall, and pg_restore.", "commit_aliases": ["99175141c"], "source_commits": ["99175141c"], "source_entry_id": "14.0/changes/147", "db_id": "45a41c5a0785def8ad6c7dc3de4444d5", "patch_ids": ["8e9cb00d435b0e9f8be13c159e776569"], "statement_hash": "b6e3f726cf0ed254d10045b4c7bcf5c87413ba19c1d5886ea4f46c76ccb1fcc3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-9613ee55cb2c6755", "migration": false}, {"id": "14.0-1817070d8486ec85-1", "cves": [], "html": "<p>\u5141\u8bb8 <span>psql</span> \u7684 <code>\\df</code> \u548c <code>\\do</code> \u547d\u4ee4\u6307\u5b9a\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\u53c2\u6570\u7c7b\u578b\uff08Greg Sabino Mullane\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/a3027e1e7\">\u00a7</a></p>\n<p>\u8fd9\u6709\u52a9\u4e8e\u51cf\u5c11\u91cd\u8f7d\u540d\u79f0\u6253\u5370\u7684\u5339\u914d\u6570\u3002</p>", "text": "\u5141\u8bb8 psql \u7684 \\df \u548c \\do \u547d\u4ee4\u6307\u5b9a\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\u53c2\u6570\u7c7b\u578b\uff08Greg Sabino Mullane\uff0cTom Lane\uff09\u00a7 \u8fd9\u6709\u52a9\u4e8e\u51cf\u5c11\u91cd\u8f7d\u540d\u79f0\u6253\u5370\u7684\u5339\u914d\u6570\u3002", "title": "\u5141\u8bb8 psql \u7684 \\df \u548c \\do \u547d\u4ee4\u6307\u5b9a\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\u53c2\u6570\u7c7b\u578b", "commits": ["a3027e1e7"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-11", "source_hash": "db69d15132e9b22e38f627025a42c38d936e5473f10e38ea3cc875d883721acd", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["a3027e1e7"]], "identity_text": "Allow psql's \\df and \\do commands to specify function and operator argument types (Greg Sabino Mullane, Tom Lane) This helps reduce the number of matches printed for overloaded names.", "commit_aliases": ["a3027e1e7"], "source_commits": ["a3027e1e7"], "source_entry_id": "14.0/changes/148", "db_id": "a4fda9d7a35aba06e4d6f037a5875a61", "patch_ids": ["b5516ad5d36eb03d62cefebf100e5ded"], "statement_hash": "1b8f44f077de669f5ed4d13478cea231d0331afae794a302bca73fa5814531ca", "relations": [{"rule": 2, "type": "related", "target": "66aa0c0195a82c942aaf84c756416274", "evidence": {"same_day": true, "patch_ids": ["b5516ad5d36eb03d62cefebf100e5ded"], "ambiguous_patch_ids": ["b5516ad5d36eb03d62cefebf100e5ded"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-1817070d8486ec85-1", "migration": false}, {"id": "14.0-5d0fdc1efaa92bf5", "cves": [], "html": "<p>\u5728 <span>psql</span> \u7684 <code>\\d[i|m|t]+</code> \u8f93\u51fa\u4e2d\u589e\u52a0\u8bbf\u95ee\u65b9\u6cd5\u5217\uff08Georgios Kokolatos\uff09<a href=\"https://postgr.es/c/07f386ede\">\u00a7</a></p>", "text": "\u5728 psql \u7684 \\d[i|m|t]+ \u8f93\u51fa\u4e2d\u589e\u52a0\u8bbf\u95ee\u65b9\u6cd5\u5217\uff08Georgios Kokolatos\uff09\u00a7", "title": "\u5728 psql \u7684 \\d[i|m|t]+ \u8f93\u51fa\u4e2d\u589e\u52a0\u8bbf\u95ee\u65b9\u6cd5\u5217", "commits": ["07f386ede"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-11", "source_hash": "faed29f28150381198642e5e794c179057e31e8b0d2989ec73f7743f85fd0ee3", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["07f386ede"]], "identity_text": "Add an access method column to psql's \\d[i|m|t]+ output (Georgios Kokolatos)", "commit_aliases": ["07f386ede"], "source_commits": ["07f386ede"], "source_entry_id": "14.0/changes/149", "db_id": "08238cbd16c1433af7110c4ac534a490", "patch_ids": ["d94ff6fdf7126f0ade1a578c28a4f94b"], "statement_hash": "9b7b98908d6cfc3fef647e6ff95a30a9fb0cc4262eb1b33a030f3e7f08cbf228", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-5d0fdc1efaa92bf5", "migration": false}, {"id": "14.0-a0823abef12575bd", "cves": [], "html": "<p>\u5141\u8bb8 <span>psql</span> \u7684 <code>\\dt</code> \u548c <code>\\di</code> \u663e\u793a <acronym>TOAST</acronym> \u8868\u53ca\u5176\u7d22\u5f15\uff08Justin Pryzby\uff09<a href=\"https://postgr.es/c/7d80441d2\">\u00a7</a></p>", "text": "\u5141\u8bb8 psql \u7684 \\dt \u548c \\di \u663e\u793a TOAST \u8868\u53ca\u5176\u7d22\u5f15\uff08Justin Pryzby\uff09\u00a7", "title": "\u5141\u8bb8 psql \u7684 \\dt \u548c \\di \u663e\u793a TOAST \u8868\u53ca\u5176\u7d22\u5f15", "commits": ["7d80441d2"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-11", "source_hash": "f88d864778970a689e919180cdba07d585b31aa8729156be44a7b9c1888e0e0c", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["7d80441d2"]], "identity_text": "Allow psql's \\dt and \\di to show TOAST tables and their indexes (Justin Pryzby)", "commit_aliases": ["7d80441d2"], "source_commits": ["7d80441d2"], "source_entry_id": "14.0/changes/150", "db_id": "3d980471873fffe3a49317b2367ae5f0", "patch_ids": ["3951e04e02a981703c757ed4866c0c93"], "statement_hash": "b070796064514b56f985f7a2c8e9315a97bac88adef214c1c84675d9a704a0ed", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-a0823abef12575bd", "migration": false}, {"id": "14.0-2332d0edc7bfaa20", "cves": [], "html": "<p>\u589e\u52a0 <span>psql</span> \u547d\u4ee4 <code>\\dX</code> \u4ee5\u5217\u51fa\u6269\u5c55\u7edf\u8ba1\u5bf9\u8c61\uff08Tatsuro Yamada\uff09<a href=\"https://postgr.es/c/ad600bba0\">\u00a7</a></p>", "text": "\u589e\u52a0 psql \u547d\u4ee4 \\dX \u4ee5\u5217\u51fa\u6269\u5c55\u7edf\u8ba1\u5bf9\u8c61\uff08Tatsuro Yamada\uff09\u00a7", "title": "\u589e\u52a0 psql \u547d\u4ee4 \\dX \u4ee5\u5217\u51fa\u6269\u5c55\u7edf\u8ba1\u5bf9\u8c61", "commits": ["ad600bba0"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-11", "source_hash": "a7b07b69238e1137a37621a79a8d411db28f191214484d8dfaeef0023625947a", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["ad600bba0"]], "identity_text": "Add psql command \\dX to list extended statistics objects (Tatsuro Yamada)", "commit_aliases": ["ad600bba0"], "source_commits": ["ad600bba0"], "source_entry_id": "14.0/changes/151", "db_id": "67aa66fcf5c6948295873ef5d0ce8962", "patch_ids": ["5ac4980da9262c65cca6ee8c21c89a21"], "statement_hash": "d6373c61e73976bc472b6b5e9804ccd0c273c449912079db6b54b0e26e9153b5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-2332d0edc7bfaa20", "migration": false}, {"id": "14.0-1817070d8486ec85-2", "cves": [], "html": "<p>\u4fee\u590d <span>psql</span> \u7684 <code>\\dT</code> \u4ee5\u7406\u89e3\u6570\u7ec4\u8bed\u6cd5\u548c\u540e\u7aef\u8bed\u6cd5\u522b\u540d\uff0c\u5982 <code>int</code> \u4ee3\u66ff <code>integer</code>\uff08Greg Sabino Mullane\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/a3027e1e7\">\u00a7</a></p>", "text": "\u4fee\u590d psql \u7684 \\dT \u4ee5\u7406\u89e3\u6570\u7ec4\u8bed\u6cd5\u548c\u540e\u7aef\u8bed\u6cd5\u522b\u540d\uff0c\u5982 int \u4ee3\u66ff integer\uff08Greg Sabino Mullane\uff0cTom Lane\uff09\u00a7", "title": "\u4fee\u590d psql \u7684 \\dT \u4ee5\u7406\u89e3\u6570\u7ec4\u8bed\u6cd5\u548c\u540e\u7aef\u8bed\u6cd5\u522b\u540d\uff0c\u5982 int \u4ee3\u66ff integer", "commits": ["a3027e1e7"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "bugfix", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-11", "source_hash": "33a7cf5145180672f2064456f159663bddb3eee845ace3d0b2e5bbf2148b01ed", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["a3027e1e7"]], "identity_text": "Fix psql's \\dT to understand array syntax and backend grammar aliases, like int for integer (Greg Sabino Mullane, Tom Lane)", "commit_aliases": ["a3027e1e7"], "source_commits": ["a3027e1e7"], "source_entry_id": "14.0/changes/152", "db_id": "66aa0c0195a82c942aaf84c756416274", "patch_ids": ["b5516ad5d36eb03d62cefebf100e5ded"], "statement_hash": "1a3bb4f5eeee72c0b61836e23f02e77ff76d2e19f018307e4518aca366134a97", "relations": [{"rule": 2, "type": "related", "target": "a4fda9d7a35aba06e4d6f037a5875a61", "evidence": {"same_day": true, "patch_ids": ["b5516ad5d36eb03d62cefebf100e5ded"], "ambiguous_patch_ids": ["b5516ad5d36eb03d62cefebf100e5ded"]}}], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=14.0#14.0-1817070d8486ec85-2", "migration": false}, {"id": "14.0-9f16e6bee9b9984e", "cves": [], "html": "<p>\u5f53\u4f7f\u7528 <span>psql</span> \u7684 <code>\\e</code> \u7f16\u8f91\u4e4b\u524d\u7684\u67e5\u8be2\u6216\u6587\u4ef6\uff0c\u6216\u4f7f\u7528 <code>\\ef</code> \u548c <code>\\ev</code> \u65f6\uff0c\u5982\u679c\u7f16\u8f91\u5668\u672a\u4fdd\u5b58\u5c31\u9000\u51fa\u5219\u5ffd\u7565\u7ed3\u679c\uff08Laurenz Albe\uff09<a href=\"https://postgr.es/c/55873a00e\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u8fd9\u79cd\u7f16\u8f91\u4f1a\u5c06\u4e4b\u524d\u7684\u67e5\u8be2\u52a0\u8f7d\u5230\u67e5\u8be2\u7f13\u51b2\u533a\u4e2d\uff0c\u5e76\u4e14\u901a\u5e38\u4f1a\u7acb\u5373\u6267\u884c\u3002\u8fd9\u88ab\u8ba4\u4e3a\u53ef\u80fd\u4e0d\u662f\u7528\u6237\u60f3\u8981\u7684\u3002</p>", "text": "\u5f53\u4f7f\u7528 psql \u7684 \\e \u7f16\u8f91\u4e4b\u524d\u7684\u67e5\u8be2\u6216\u6587\u4ef6\uff0c\u6216\u4f7f\u7528 \\ef \u548c \\ev \u65f6\uff0c\u5982\u679c\u7f16\u8f91\u5668\u672a\u4fdd\u5b58\u5c31\u9000\u51fa\u5219\u5ffd\u7565\u7ed3\u679c\uff08Laurenz Albe\uff09\u00a7 \u4ee5\u524d\uff0c\u8fd9\u79cd\u7f16\u8f91\u4f1a\u5c06\u4e4b\u524d\u7684\u67e5\u8be2\u52a0\u8f7d\u5230\u67e5\u8be2\u7f13\u51b2\u533a\u4e2d\uff0c\u5e76\u4e14\u901a\u5e38\u4f1a\u7acb\u5373\u6267\u884c\u3002\u8fd9\u88ab\u8ba4\u4e3a\u53ef\u80fd\u4e0d\u662f\u7528\u6237\u60f3\u8981\u7684\u3002", "title": "\u5f53\u4f7f\u7528 psql \u7684 \\e \u7f16\u8f91\u4e4b\u524d\u7684\u67e5\u8be2\u6216\u6587\u4ef6\uff0c\u6216\u4f7f\u7528 \\ef \u548c \\ev \u65f6\uff0c\u5982\u679c\u7f16\u8f91\u5668\u672a\u4fdd\u5b58\u5c31\u9000\u51fa\u5219\u5ffd\u7565\u7ed3\u679c", "commits": ["55873a00e"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-11", "source_hash": "d47bde6f516ac79fd2efde38a914d7563fcb64311b948c1520df33a2e8df3723", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["55873a00e"]], "identity_text": "When editing the previous query or a file with psql's \\e, or using \\ef and \\ev, ignore the results if the editor exits without saving (Laurenz Albe) Previously, such edits would load the previous query into the query buffer, and typically execute it immediately. This was deemed to be probably not what the user wants.", "commit_aliases": ["55873a00e"], "source_commits": ["55873a00e"], "source_entry_id": "14.0/changes/153", "db_id": "4cd8f621c01721fccd6a2fdf1627b6b9", "patch_ids": ["79bcedbd40460747196fa951ad2ff284"], "statement_hash": "9cad4605287f9a3867ec52752142a5737dd226fa8473049a48bd4ddb6d2d0a7d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-9f16e6bee9b9984e", "migration": false}, {"id": "14.0-058cec3856f5223a", "cves": [], "html": "<p>\u6539\u8fdb Tab \u8865\u5168\uff08Vignesh C\uff0cMichael Paquier\uff0cJustin Pryzby\uff0cGeorgios Kokolatos\uff0cJulien Rouhaud\uff09<a href=\"https://postgr.es/c/c273d9d8c\">\u00a7</a> <a href=\"https://postgr.es/c/f1af75c5f\">\u00a7</a> <a href=\"https://postgr.es/c/1f75b4541\">\u00a7</a> <a href=\"https://postgr.es/c/7307df16a\">\u00a7</a> <a href=\"https://postgr.es/c/0baf82fa0\">\u00a7</a> <a href=\"https://postgr.es/c/0b46e82c0\">\u00a7</a> <a href=\"https://postgr.es/c/bf0aa7c4b\">\u00a7</a> <a href=\"https://postgr.es/c/3f238b882\">\u00a7</a> <a href=\"https://postgr.es/c/e1c02d92a\">\u00a7</a> <a href=\"https://postgr.es/c/e6b8e83b9\">\u00a7</a> <a href=\"https://postgr.es/c/5bc09a747\">\u00a7</a> <a href=\"https://postgr.es/c/6b40d9bdb\">\u00a7</a> <a href=\"https://postgr.es/c/5b2266e33\">\u00a7</a> <a href=\"https://postgr.es/c/d1fcbde57\">\u00a7</a> <a href=\"https://postgr.es/c/81e094bdf\">\u00a7</a> <a href=\"https://postgr.es/c/22b2dec31\">\u00a7</a> <a href=\"https://postgr.es/c/6dd1042ed\">\u00a7</a> <a href=\"https://postgr.es/c/1906cc07d\">\u00a7</a></p>", "text": "\u6539\u8fdb Tab \u8865\u5168\uff08Vignesh C\uff0cMichael Paquier\uff0cJustin Pryzby\uff0cGeorgios Kokolatos\uff0cJulien Rouhaud\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7", "title": "\u6539\u8fdb Tab \u8865\u5168", "commits": ["0b46e82c0", "0baf82fa0", "1906cc07d", "1f75b4541", "22b2dec31", "3f238b882", "5b2266e33", "5bc09a747", "6b40d9bdb", "6dd1042ed", "7307df16a", "81e094bdf", "bf0aa7c4b", "c273d9d8c", "d1fcbde57", "e1c02d92a", "e6b8e83b9", "f1af75c5f"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-11", "source_hash": "e35a7a33d8b36ae3b584452f858d01e080992a90b5eb909415972e6478847ee2", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["0b46e82c0"], ["0baf82fa0"], ["1906cc07d"], ["1f75b4541"], ["22b2dec31"], ["3f238b882"], ["5b2266e33"], ["5bc09a747"], ["6b40d9bdb"], ["6dd1042ed"], ["7307df16a"], ["81e094bdf"], ["bf0aa7c4b"], ["c273d9d8c"], ["d1fcbde57"], ["e1c02d92a"], ["e6b8e83b9"], ["f1af75c5f"]], "identity_text": "Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Kokolatos, Julien Rouhaud)", "commit_aliases": ["0b46e82c0", "0baf82fa0", "1906cc07d", "1f75b4541", "22b2dec31", "3f238b882", "5b2266e33", "5bc09a747", "6b40d9bdb", "6dd1042ed", "7307df16a", "81e094bdf", "bf0aa7c4b", "c273d9d8c", "d1fcbde57", "e1c02d92a", "e6b8e83b9", "f1af75c5f"], "source_commits": ["0b46e82c0", "0baf82fa0", "1906cc07d", "1f75b4541", "22b2dec31", "3f238b882", "5b2266e33", "5bc09a747", "6b40d9bdb", "6dd1042ed", "7307df16a", "81e094bdf", "bf0aa7c4b", "c273d9d8c", "d1fcbde57", "e1c02d92a", "e6b8e83b9", "f1af75c5f"], "source_entry_id": "14.0/changes/154", "db_id": "def03cbe9f62e255ae7c56b34c2cf4cf", "patch_ids": ["19c2e452f31c1f78bc30cee626d4e046", "1f78fefb97826f3f0984edc343755a1a", "2250160b56c4a0c82c9ffe177f4311ab", "47832978418033aa0c6d9b6295f5f86b", "4bd6ec5e5fe752e213462883f036712a", "5fb0e1380cee165e6b9b7c2c188452fd", "5ff2d49a10ee28fd88b14916e9c11744", "72e676a91f781a19e462d153ba741774", "8084231ccbbc0ed77c1fbc85ccf7b5cb", "889c0bddf420b6e65241efe013b7d831", "976f50b8a2abb94a1afba60e9c464da5", "a8c7983cde9cb3727dd35f3d4ef2c77a", "a952e7cdac244ed3009ca418a217adb6", "c482e1e400896510d1d01eee6b06e17a", "c6ced02cc4e046d34e4343b93facca5a", "c9203c3195b93f33f60c65323ace0c07", "dd0bf60d07c849aee8e9f35e9c808a9b", "f45a47bc027261885f5b2c4cc7b16504"], "statement_hash": "747f43354171f2f3e1a528acfa1abd231e4fcafedf85eb38a9e5ff90617a8f59", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-058cec3856f5223a", "migration": false}, {"id": "14.0-af056bf698ced224", "cves": [], "html": "<p>\u589e\u52a0\u547d\u4ee4\u884c\u5de5\u5177<a href=\"/docs/14/app-pgamcheck.html\" title=\"pg_amcheck\"><span>pg_amcheck</span></a>\u4ee5\u7b80\u5316\u5728\u591a\u4e2a\u5173\u7cfb\u4e0a\u8fd0\u884c <code>contrib/amcheck</code> \u6d4b\u8bd5\uff08Mark Dilger\uff09<a href=\"https://postgr.es/c/970609283\">\u00a7</a></p>", "text": "\u589e\u52a0\u547d\u4ee4\u884c\u5de5\u5177pg_amcheck\u4ee5\u7b80\u5316\u5728\u591a\u4e2a\u5173\u7cfb\u4e0a\u8fd0\u884c contrib/amcheck \u6d4b\u8bd5\uff08Mark Dilger\uff09\u00a7", "title": "\u589e\u52a0\u547d\u4ee4\u884c\u5de5\u5177pg_amcheck\u4ee5\u7b80\u5316\u5728\u591a\u4e2a\u5173\u7cfb\u4e0a\u8fd0\u884c contrib/amcheck \u6d4b\u8bd5", "commits": ["970609283"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-10", "source_hash": "25024b09c866ea4904e1833f0bf16146d7e1afac6f4c4f152e1a07fb41888c60", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["970609283"]], "identity_text": "Add command-line utility pg_amcheck to simplify running contrib/amcheck tests on many relations (Mark Dilger)", "commit_aliases": ["970609283"], "source_commits": ["970609283"], "source_entry_id": "14.0/changes/155", "db_id": "ef252ac122b7272924161bb70439ff12", "patch_ids": ["c0ebacf03debdb56abfe20345624c892"], "statement_hash": "4f2dc0563aeb5932719e1e083bd4341349c864ccd48a7bd01d672c89ca4ac2a2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-af056bf698ced224", "migration": false}, {"id": "14.0-f3b59a9e02bf4fe4", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/14/app-initdb.html\" title=\"initdb\"><span>initdb</span></a>\u589e\u52a0 <code>--no-instructions</code> \u9009\u9879\uff08Magnus Hagander\uff09<a href=\"https://postgr.es/c/e09155bd6\">\u00a7</a></p>\n<p>\u8fd9\u4f1a\u6291\u5236\u901a\u5e38\u6253\u5370\u7684\u670d\u52a1\u5668\u542f\u52a8\u8bf4\u660e\u3002</p>", "text": "\u4e3ainitdb\u589e\u52a0 --no-instructions \u9009\u9879\uff08Magnus Hagander\uff09\u00a7 \u8fd9\u4f1a\u6291\u5236\u901a\u5e38\u6253\u5370\u7684\u670d\u52a1\u5668\u542f\u52a8\u8bf4\u660e\u3002", "title": "\u4e3ainitdb\u589e\u52a0 --no-instructions \u9009\u9879", "commits": ["e09155bd6"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-10", "source_hash": "f7e023ba6f034e8014617fcb64220e8be5b548d3ef8eaab02ea32b8fc686f54e", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["e09155bd6"]], "identity_text": "Add --no-instructions option to initdb (Magnus Hagander) This suppresses the server startup instructions that are normally printed.", "commit_aliases": ["e09155bd6"], "source_commits": ["e09155bd6"], "source_entry_id": "14.0/changes/156", "db_id": "b10a3994c55a0e7ae07e75b782d258c3", "patch_ids": ["f453502148da3386d0c9fdb0af18fc8d"], "statement_hash": "da029cc4fced07b4a5c84a822a5d893027d6bb212a73879cde7bf4c5dd80b002", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-f3b59a9e02bf4fe4", "migration": false}, {"id": "14.0-8600daf07b54b2d5", "cves": [], "html": "<p>\u505c\u6b62<a href=\"/docs/14/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a>\u521b\u5efa <code>analyze_new_cluster</code> \u811a\u672c\uff08Magnus Hagander\uff09<a href=\"https://postgr.es/c/8f113698b\">\u00a7</a></p>\n<p>\u53d6\u800c\u4ee3\u4e4b\u7684\u662f\u7ed9\u51fa\u7c7b\u4f3c\u7684<a href=\"/docs/14/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a>\u8bf4\u660e\u3002</p>", "text": "\u505c\u6b62pg_upgrade\u521b\u5efa analyze_new_cluster \u811a\u672c\uff08Magnus Hagander\uff09\u00a7 \u53d6\u800c\u4ee3\u4e4b\u7684\u662f\u7ed9\u51fa\u7c7b\u4f3c\u7684vacuumdb\u8bf4\u660e\u3002", "title": "\u505c\u6b62pg_upgrade\u521b\u5efa analyze_new_cluster \u811a\u672c", "commits": ["8f113698b"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-10", "source_hash": "dc38b1f9d5ec318e8423b52333fe8291f7f6cefba503d373c89f514b55ac2fee", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["8f113698b"]], "identity_text": "Stop pg_upgrade from creating analyze_new_cluster script (Magnus Hagander) Instead, give comparable vacuumdb instructions.", "commit_aliases": ["8f113698b"], "source_commits": ["8f113698b"], "source_entry_id": "14.0/changes/157", "db_id": "41addd2e60211cb0aa294ff65760eee6", "patch_ids": ["4eee81499f4dc0b940909fb4e77a231e"], "statement_hash": "7f173acea9b51d03c420511fb7e9506e04f2fba53ee429dfc6174ff9bf1f0723", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-8600daf07b54b2d5", "migration": false}, {"id": "14.0-f141a33ce2ed3354", "cves": [], "html": "<p>\u79fb\u9664\u5bf9 <a href=\"/docs/14/app-postgres.html\" title=\"postgres\"><span>postmaster</span></a> <code>-o</code> \u9009\u9879\u7684\u652f\u6301\uff08Magnus Hagander\uff09<a href=\"https://postgr.es/c/d2e4bf688\">\u00a7</a></p>\n<p>\u6b64\u9009\u9879\u662f\u4e0d\u5fc5\u8981\u7684\uff0c\u56e0\u4e3a\u6240\u6709\u4f20\u9012\u7684\u9009\u9879\u90fd\u5df2\u7ecf\u53ef\u4ee5\u76f4\u63a5\u6307\u5b9a\u3002</p>", "text": "\u79fb\u9664\u5bf9 postmaster -o \u9009\u9879\u7684\u652f\u6301\uff08Magnus Hagander\uff09\u00a7 \u6b64\u9009\u9879\u662f\u4e0d\u5fc5\u8981\u7684\uff0c\u56e0\u4e3a\u6240\u6709\u4f20\u9012\u7684\u9009\u9879\u90fd\u5df2\u7ecf\u53ef\u4ee5\u76f4\u63a5\u6307\u5b9a\u3002", "title": "\u79fb\u9664\u5bf9 postmaster -o \u9009\u9879\u7684\u652f\u6301", "commits": ["d2e4bf688"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-10", "source_hash": "4682c95be698cc8f23770836edf5e5d42726cdbfc5f63aae6ed0c3fd482be429", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["d2e4bf688"]], "identity_text": "Remove support for the postmaster -o option (Magnus Hagander) This option was unnecessary since all passed options could already be specified directly.", "commit_aliases": ["d2e4bf688"], "source_commits": ["d2e4bf688"], "source_entry_id": "14.0/changes/158", "db_id": "07cc094c093e7de4ce5dd108b0e5fccd", "patch_ids": ["81149a51739bfd9045424e93c07b2cf3"], "statement_hash": "2299068769a0aae88d25c13f21a1bb0757ab8f7146eb45999767984709673eca", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-f141a33ce2ed3354", "migration": false}, {"id": "14.0-075188b43c6506a3", "cves": [], "html": "<p>\u5c06\"\u9ed8\u8ba4\u89d2\u8272\"\u91cd\u547d\u540d\u4e3a<a href=\"/docs/14/predefined-roles.html\" title=\"22.5.\u00a0\u9884\u5b9a\u4e49\u89d2\u8272\">\"\u9884\u5b9a\u4e49\u89d2\u8272\"</a>\uff08Bruce Momjian\uff0cStephen Frost\uff09<a href=\"https://postgr.es/c/c9c41c7a3\">\u00a7</a></p>", "text": "\u5c06\"\u9ed8\u8ba4\u89d2\u8272\"\u91cd\u547d\u540d\u4e3a\"\u9884\u5b9a\u4e49\u89d2\u8272\"\uff08Bruce Momjian\uff0cStephen Frost\uff09\u00a7", "title": "\u5c06\"\u9ed8\u8ba4\u89d2\u8272\"\u91cd\u547d\u540d\u4e3a\"\u9884\u5b9a\u4e49\u89d2\u8272\"", "commits": ["c9c41c7a3"], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-11", "source_hash": "503784be175c69bf9e58f0fbf4d91ccb3ec4a820539ebe0dd4f66db37415d729", "section_path": ["\u6587\u6863"], "commit_groups": [["c9c41c7a3"]], "identity_text": "Rename \"Default Roles\" to \"Predefined Roles\" (Bruce Momjian, Stephen Frost)", "commit_aliases": ["c9c41c7a3"], "source_commits": ["c9c41c7a3"], "source_entry_id": "14.0/changes/159", "db_id": "0cb09430a0fb79fa473dd4194016aae3", "patch_ids": ["63c92850339b6965a1dcc15d0ff0bdbf"], "statement_hash": "aa88a38e8c5c0c33fed73a32c4e512bcd583a8f8b06137d26959f0fd397305a1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-075188b43c6506a3", "migration": false}, {"id": "14.0-78d618b3102f0cdc", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/14/functions-math.html#FUNCTION-FACTORIAL\"><code>factorial()</code></a> \u51fd\u6570\u7684\u6587\u6863\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/4c5cf5431\">\u00a7</a></p>\n<p>\u968f\u7740\u6b64\u7248\u672c\u79fb\u9664\u4e86 ! \u64cd\u4f5c\u7b26\uff0c<code>factorial()</code> \u662f\u8ba1\u7b97\u9636\u4e58\u7684\u552f\u4e00\u5185\u7f6e\u65b9\u5f0f\u3002</p>", "text": "\u589e\u52a0 factorial() \u51fd\u6570\u7684\u6587\u6863\uff08Peter Eisentraut\uff09\u00a7 \u968f\u7740\u6b64\u7248\u672c\u79fb\u9664\u4e86 ! \u64cd\u4f5c\u7b26\uff0cfactorial() \u662f\u8ba1\u7b97\u9636\u4e58\u7684\u552f\u4e00\u5185\u7f6e\u65b9\u5f0f\u3002", "title": "\u589e\u52a0 factorial() \u51fd\u6570\u7684\u6587\u6863", "commits": ["4c5cf5431"], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-11", "source_hash": "c0a2769aa450329505a03f1df02dd369b5e49af308c9a1cf29fda53812ae2408", "section_path": ["\u6587\u6863"], "commit_groups": [["4c5cf5431"]], "identity_text": "Add documentation for the factorial() function (Peter Eisentraut) With the removal of the ! operator in this release, factorial() is the only built-in way to compute a factorial.", "commit_aliases": ["4c5cf5431"], "source_commits": ["4c5cf5431"], "source_entry_id": "14.0/changes/160", "db_id": "c036a6ed8a104844703846c614022fbe", "patch_ids": ["429d7ca14629576f20ecc0b25c6d353f"], "statement_hash": "4e1a3a9cbe96cadedbbbecf3dc4bf1a530ad25bd37d03f695840d874eb2efa03", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-78d618b3102f0cdc", "migration": false}, {"id": "14.0-ec4036a2760633b8", "cves": [], "html": "<p>\u589e\u52a0 configure \u9009\u9879 <a href=\"/docs/14/install-procedure.html#CONFIGURE-OPTIONS-FEATURES\" title=\"17.4.1.2.\u00a0PostgreSQL \u7279\u6027\"><code>--with-ssl={openssl}</code></a> \u4ee5\u5141\u8bb8\u5c06\u6765\u9009\u62e9\u8981\u4f7f\u7528\u7684 SSL \u5e93\uff08Daniel Gustafsson\uff0cMichael Paquier\uff09<a href=\"https://postgr.es/c/fe61df7f8\">\u00a7</a></p>\n<p>\u4fdd\u7559 <code>--with-openssl</code> \u62fc\u5199\u4ee5\u517c\u5bb9\u3002</p>", "text": "\u589e\u52a0 configure \u9009\u9879 --with-ssl={openssl} \u4ee5\u5141\u8bb8\u5c06\u6765\u9009\u62e9\u8981\u4f7f\u7528\u7684 SSL \u5e93\uff08Daniel Gustafsson\uff0cMichael Paquier\uff09\u00a7 \u4fdd\u7559 --with-openssl \u62fc\u5199\u4ee5\u517c\u5bb9\u3002", "title": "\u589e\u52a0 configure \u9009\u9879 --with-ssl={openssl} \u4ee5\u5141\u8bb8\u5c06\u6765\u9009\u62e9\u8981\u4f7f\u7528\u7684 SSL \u5e93", "commits": ["fe61df7f8"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "91a6cf99a3749a05051aa6343ed017a621737f1913bf70e2283f387bf2333cbb", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["fe61df7f8"]], "identity_text": "Add configure option --with-ssl={openssl} to allow future choice of the SSL library to use (Daniel Gustafsson, Michael Paquier) The spelling --with-openssl is kept for compatibility.", "commit_aliases": ["fe61df7f8"], "source_commits": ["fe61df7f8"], "source_entry_id": "14.0/changes/161", "db_id": "7fd05dcd14d4ba6af063ba52cdb77f06", "patch_ids": ["442ac98acd0e3848d145a6a016642a6f"], "statement_hash": "d83b645e69e73e077a9c0070e02a7aa9019c38200c95979aa27321cca288b2a4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-ec4036a2760633b8", "migration": false}, {"id": "14.0-39b01666a97e35c5", "cves": [], "html": "<p>\u589e\u52a0\u5bf9<a href=\"/docs/14/runtime-config-connection.html#GUC-UNIX-SOCKET-DIRECTORIES\">\u62bd\u8c61 Unix \u57df\u5957\u63a5\u5b57</a>\u7684\u652f\u6301\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/c9f0624bc\">\u00a7</a></p>\n<p>\u76ee\u524d\u5728 <span>Linux</span> \u548c <span>Windows</span> \u4e0a\u53d7\u652f\u6301\u3002</p>", "text": "\u589e\u52a0\u5bf9\u62bd\u8c61 Unix \u57df\u5957\u63a5\u5b57\u7684\u652f\u6301\uff08Peter Eisentraut\uff09\u00a7 \u76ee\u524d\u5728 Linux \u548c Windows \u4e0a\u53d7\u652f\u6301\u3002", "title": "\u589e\u52a0\u5bf9\u62bd\u8c61 Unix \u57df\u5957\u63a5\u5b57\u7684\u652f\u6301", "commits": ["c9f0624bc"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "a12f683b977a45c5b7f27c52838c2bbde40b994ea8f58d931476ef5d473b01cd", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["c9f0624bc"]], "identity_text": "Add support for abstract Unix-domain sockets (Peter Eisentraut) This is currently supported on Linux and Windows.", "commit_aliases": ["c9f0624bc"], "source_commits": ["c9f0624bc"], "source_entry_id": "14.0/changes/162", "db_id": "6ced47e07ddfc1177f31b894a30e87d5", "patch_ids": ["255f06d52b29b2fc6c09c9f64466a7bf"], "statement_hash": "2ffadc53ab04d858481736116531cf829e576f1a313eaa114f65db9848757d73", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-39b01666a97e35c5", "migration": false}, {"id": "14.0-405d3d323737f7b1", "cves": [], "html": "<p>\u5141\u8bb8 Windows \u6b63\u786e\u5904\u7406\u5927\u4e8e 4GB \u7684\u6587\u4ef6\uff08Juan Jos\u00e9 Santamar\u00eda Flecha\uff09<a href=\"https://postgr.es/c/bed90759f\">\u00a7</a></p>\n<p>\u4f8b\u5982\uff0c\u8fd9\u5141\u8bb8 <a href=\"/docs/14/sql-copy.html\" title=\"COPY\"><code>COPY</code></a>\u3001<a href=\"/docs/14/install-procedure.html#CONFIGURE-OPTIONS-MISC\" title=\"17.4.1.5.\u00a0\u6742\u9879\"><acronym>WAL</acronym></a> \u6587\u4ef6\u548c\u5173\u7cfb\u6bb5\u6587\u4ef6\u5927\u4e8e 4GB\u3002</p>", "text": "\u5141\u8bb8 Windows \u6b63\u786e\u5904\u7406\u5927\u4e8e 4GB \u7684\u6587\u4ef6\uff08Juan Jos\u00e9 Santamar\u00eda Flecha\uff09\u00a7 \u4f8b\u5982\uff0c\u8fd9\u5141\u8bb8 COPY\u3001WAL \u6587\u4ef6\u548c\u5173\u7cfb\u6bb5\u6587\u4ef6\u5927\u4e8e 4GB\u3002", "title": "\u5141\u8bb8 Windows \u6b63\u786e\u5904\u7406\u5927\u4e8e 4GB \u7684\u6587\u4ef6", "commits": ["bed90759f"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "876d69f0523a8396d2beb8a8bb9cfd67185f8de8103193944c4abd96ff7e55b7", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["bed90759f"]], "identity_text": "Allow Windows to properly handle files larger than four gigabytes (Juan Jos\u00e9 Santamar\u00eda Flecha) For example this allows COPY, WAL files, and relation segment files to be larger than four gigabytes.", "commit_aliases": ["bed90759f"], "source_commits": ["bed90759f"], "source_entry_id": "14.0/changes/163", "db_id": "355e5deb15b158b78554e356f2b609fd", "patch_ids": ["98fb9f1c4ac1e7b8092df211e73c338d"], "statement_hash": "b2bf54329f391d238fa2709add0fdb4b5c7fa07de6c643911b923611d58340ed", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-405d3d323737f7b1", "migration": false}, {"id": "14.0-3b3caa302f11b44f", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/14/runtime-config-developer.html#GUC-DEBUG-DISCARD-CACHES\">debug_discard_caches</a>\u4ee5\u63a7\u5236\u7528\u4e8e\u6d4b\u8bd5\u76ee\u7684\u7684\u7f13\u5b58\u5237\u65b0\uff08Craig Ringer\uff09<a href=\"https://postgr.es/c/4656e3d66\">\u00a7</a> <a href=\"https://postgr.es/c/d04770801\">\u00a7</a> <a href=\"https://postgr.es/c/6201fa3c1\">\u00a7</a></p>\n<p>\u4ee5\u524d\u6b64\u884c\u4e3a\u53ea\u80fd\u5728\u7f16\u8bd1\u65f6\u8bbe\u7f6e\u3002\u8981\u5728 <span>initdb</span> \u671f\u95f4\u8c03\u7528\u5b83\uff0c\u4f7f\u7528\u65b0\u9009\u9879 <code>--discard-caches</code>\u3002</p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570debug_discard_caches\u4ee5\u63a7\u5236\u7528\u4e8e\u6d4b\u8bd5\u76ee\u7684\u7684\u7f13\u5b58\u5237\u65b0\uff08Craig Ringer\uff09\u00a7 \u00a7 \u00a7 \u4ee5\u524d\u6b64\u884c\u4e3a\u53ea\u80fd\u5728\u7f16\u8bd1\u65f6\u8bbe\u7f6e\u3002\u8981\u5728 initdb \u671f\u95f4\u8c03\u7528\u5b83\uff0c\u4f7f\u7528\u65b0\u9009\u9879 --discard-caches\u3002", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570debug_discard_caches\u4ee5\u63a7\u5236\u7528\u4e8e\u6d4b\u8bd5\u76ee\u7684\u7684\u7f13\u5b58\u5237\u65b0", "commits": ["4656e3d66", "6201fa3c1", "d04770801"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "9004bf9a657027d2e1c6f96a344adebcb2cc7673b0d26c9a272f586b08418808", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["4656e3d66"], ["6201fa3c1"], ["d04770801"]], "identity_text": "Add server parameter guc-debug-discard-caches to control cache flushing for test purposes (Craig Ringer) Previously this behavior could only be set at compile time. To invoke it during initdb, use the new option --discard-caches.", "commit_aliases": ["4656e3d66", "6201fa3c1", "d04770801"], "source_commits": ["4656e3d66", "6201fa3c1", "d04770801"], "source_entry_id": "14.0/changes/164", "db_id": "99d6a18986bda104a24824b31e1f8b82", "patch_ids": ["84502cb37de3cf7d175b60bc01eb4336", "c0b02fece1200532e05e8afed52d5d1c", "df3eb1f6db9451cb6b8d6d3b082bd7b2"], "statement_hash": "db0be5d5f23a3fa4726c9b0bd9ae45165275c1a3a7649bd5721ae6fe272478ab", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-3b3caa302f11b44f", "migration": false}, {"id": "14.0-218be55d1f124dca", "cves": [], "html": "<p><span>valgrind</span> \u9519\u8bef\u68c0\u6d4b\u80fd\u529b\u7684\u5404\u79cd\u6539\u8fdb\uff08\u00c1lvaro Herrera\uff0cPeter Geoghegan\uff09<a href=\"https://postgr.es/c/1e0dfd166\">\u00a7</a> <a href=\"https://postgr.es/c/46ef520b9\">\u00a7</a> <a href=\"https://postgr.es/c/a766d6ca2\">\u00a7</a></p>", "text": "valgrind \u9519\u8bef\u68c0\u6d4b\u80fd\u529b\u7684\u5404\u79cd\u6539\u8fdb\uff08\u00c1lvaro Herrera\uff0cPeter Geoghegan\uff09\u00a7 \u00a7 \u00a7", "title": "valgrind \u9519\u8bef\u68c0\u6d4b\u80fd\u529b\u7684\u5404\u79cd\u6539\u8fdb", "commits": ["1e0dfd166", "46ef520b9", "a766d6ca2"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "0edbe917a896beaa661a426f7d94f60bda728ac1fab688b19241464c988495d5", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["1e0dfd166"], ["46ef520b9"], ["a766d6ca2"]], "identity_text": "Various improvements in valgrind error detection ability (\u00c1lvaro Herrera, Peter Geoghegan)", "commit_aliases": ["1e0dfd166", "46ef520b9", "a766d6ca2"], "source_commits": ["1e0dfd166", "46ef520b9", "a766d6ca2"], "source_entry_id": "14.0/changes/165", "db_id": "1709d0b10993acf05f6f1db2296814da", "patch_ids": ["31d2637c0ee7b1bfa99376d5c00ea251", "7b852bec390d61b95fd8b66de0ed4d4a", "a0d92565e0236a336d707a7ac63096ba"], "statement_hash": "8bf42bf1f8e3fa4cefff3666e03463cf83396d121d582a111075f74c2e9961a1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-218be55d1f124dca", "migration": false}, {"id": "14.0-07ca30a178911927", "cves": [], "html": "<p>\u589e\u52a0\u6b63\u5219\u8868\u8fbe\u5f0f\u5305\u7684\u6d4b\u8bd5\u6a21\u5757\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/ca8217c10\">\u00a7</a></p>", "text": "\u589e\u52a0\u6b63\u5219\u8868\u8fbe\u5f0f\u5305\u7684\u6d4b\u8bd5\u6a21\u5757\uff08Tom Lane\uff09\u00a7", "title": "\u589e\u52a0\u6b63\u5219\u8868\u8fbe\u5f0f\u5305\u7684\u6d4b\u8bd5\u6a21\u5757", "commits": ["ca8217c10"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "7b60d191bfb6f155cce5fe51dd35695dedf078533e25435c07cc4c2683b14db5", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["ca8217c10"]], "identity_text": "Add a test module for the regular expression package (Tom Lane)", "commit_aliases": ["ca8217c10"], "source_commits": ["ca8217c10"], "source_entry_id": "14.0/changes/166", "db_id": "5cc75d4bb574b4be88656def8b3f443f", "patch_ids": ["05bdfb35fda8b9db98a765acb47dcfe9"], "statement_hash": "d5cfab2f5d525e10c64824661b52aa14131387c4cc3e746f74b8c7717ce5bf65", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-07ca30a178911927", "migration": false}, {"id": "14.0-3e9983c6172bd5e3", "cves": [], "html": "<p>\u589e\u52a0\u5bf9 <span>LLVM</span> \u7248\u672c 12 \u7684\u652f\u6301\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/6c57f2ed1\">\u00a7</a></p>", "text": "\u589e\u52a0\u5bf9 LLVM \u7248\u672c 12 \u7684\u652f\u6301\uff08Andres Freund\uff09\u00a7", "title": "\u589e\u52a0\u5bf9 LLVM \u7248\u672c 12 \u7684\u652f\u6301", "commits": ["6c57f2ed1"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "6433da198694b598db2dcaebf2d8934b700afd627910631a4e668f416c426307", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["6a192c77d", "6c57f2ed1", "90eb343ef", "fa7a52fb9"]], "identity_text": "Add support for LLVM version 12 (Andres Freund)", "commit_aliases": ["6a192c77d", "6c57f2ed1", "90eb343ef", "fa7a52fb9"], "source_commits": ["6c57f2ed1"], "source_entry_id": "14.0/changes/167", "db_id": "953eea49ea13be68e1ba18f192f409e3", "patch_ids": ["6873195cd38f6166a1b0f007a1b9d943"], "statement_hash": "815cbfc3e6a46149a2cb7081af440cff96b7fab7425c54ef62277ca524793e90", "relations": [{"rule": 2, "type": "related", "target": "04eea6763c68cc0f210cb5d49d7f9a45", "evidence": {"same_day": false, "patch_ids": ["6873195cd38f6166a1b0f007a1b9d943"]}}, {"rule": 2, "type": "related", "target": "aed82f7d691f0c4b2650925d9b422ec1", "evidence": {"same_day": false, "patch_ids": ["6873195cd38f6166a1b0f007a1b9d943"]}}, {"rule": 2, "type": "related", "target": "fff2593fb3db34e7d28cf52cad770917", "evidence": {"same_day": false, "patch_ids": ["6873195cd38f6166a1b0f007a1b9d943"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-3e9983c6172bd5e3", "migration": false}, {"id": "14.0-6ed542947008115f", "cves": [], "html": "<p>\u5c06 SHA1\u3001SHA2 \u548c MD5 hash \u8ba1\u7b97\u6539\u4e3a\u4f7f\u7528 <span>OpenSSL</span> <acronym>EVP API</acronym>\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/4f48a6fbe\">\u00a7</a> <a href=\"https://postgr.es/c/b67b57a96\">\u00a7</a> <a href=\"https://postgr.es/c/a8ed6bb8f\">\u00a7</a> <a href=\"https://postgr.es/c/e6bdfd970\">\u00a7</a></p>\n<p>\u8fd9\u66f4\u52a0\u73b0\u4ee3\u5e76\u652f\u6301 <acronym>FIPS</acronym> \u6a21\u5f0f\u3002</p>", "text": "\u5c06 SHA1\u3001SHA2 \u548c MD5 hash \u8ba1\u7b97\u6539\u4e3a\u4f7f\u7528 OpenSSL EVP API\uff08Michael Paquier\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u8fd9\u66f4\u52a0\u73b0\u4ee3\u5e76\u652f\u6301 FIPS \u6a21\u5f0f\u3002", "title": "\u5c06 SHA1\u3001SHA2 \u548c MD5 hash \u8ba1\u7b97\u6539\u4e3a\u4f7f\u7528 OpenSSL EVP API", "commits": ["4f48a6fbe", "a8ed6bb8f", "b67b57a96", "e6bdfd970"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "2d2782161ae6e66965ee703c3f18a30386f6b3a9be9d3d88588a3070fd818dcb", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["4f48a6fbe"], ["a8ed6bb8f"], ["b67b57a96"], ["e6bdfd970"]], "identity_text": "Change SHA1, SHA2, and MD5 hash computations to use the OpenSSL EVP API (Michael Paquier) This is more modern and supports FIPS mode.", "commit_aliases": ["4f48a6fbe", "a8ed6bb8f", "b67b57a96", "e6bdfd970"], "source_commits": ["4f48a6fbe", "a8ed6bb8f", "b67b57a96", "e6bdfd970"], "source_entry_id": "14.0/changes/168", "db_id": "14dec3f7f8e0627cf45f0ed20a78a3d5", "patch_ids": ["01be2c441928cabfae31a69681545499", "505db812527846958a83ecbb74507622", "663d03b25af4d0c3fd99d8b2295e6a53", "d42e74619ff55d60c88b985fb55ac67c"], "statement_hash": "dff9073056e20f535699537b95dab31172b221c56358625ad14d0e2c11df53ed", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-6ed542947008115f", "migration": false}, {"id": "14.0-b9425eb7741c4478", "cves": [], "html": "<p>\u79fb\u9664\u5bf9\u968f\u673a\u6570\u751f\u6210\u5668\u9009\u62e9\u7684\u5355\u72ec\u6784\u5efa\u65f6\u63a7\u5236\uff08Daniel Gustafsson\uff09<a href=\"https://postgr.es/c/16f96c74d\">\u00a7</a></p>\n<p>\u73b0\u5728\u59cb\u7ec8\u7531 SSL \u5e93\u7684\u9009\u62e9\u51b3\u5b9a\u3002</p>", "text": "\u79fb\u9664\u5bf9\u968f\u673a\u6570\u751f\u6210\u5668\u9009\u62e9\u7684\u5355\u72ec\u6784\u5efa\u65f6\u63a7\u5236\uff08Daniel Gustafsson\uff09\u00a7 \u73b0\u5728\u59cb\u7ec8\u7531 SSL \u5e93\u7684\u9009\u62e9\u51b3\u5b9a\u3002", "title": "\u79fb\u9664\u5bf9\u968f\u673a\u6570\u751f\u6210\u5668\u9009\u62e9\u7684\u5355\u72ec\u6784\u5efa\u65f6\u63a7\u5236", "commits": ["16f96c74d"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "14257d34ebcbbe29063a6250a63305ec016a18ede4200875625b09e798ec4efa", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["16f96c74d"]], "identity_text": "Remove separate build-time control over the choice of random number generator (Daniel Gustafsson) This is now always determined by the choice of SSL library.", "commit_aliases": ["16f96c74d"], "source_commits": ["16f96c74d"], "source_entry_id": "14.0/changes/169", "db_id": "0aea3c0f836cf5fb160118bc9fcffb5f", "patch_ids": ["4030743842d5e72afe2f11221c379495"], "statement_hash": "139448610e9f59d0c69ed274f9339347145bd5e978192d2595a7f78f95abe942", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-b9425eb7741c4478", "migration": false}, {"id": "14.0-5605f1868b572ddb", "cves": [], "html": "<p>\u589e\u52a0 EUC_TW \u548c Big5 \u7f16\u7801\u4e4b\u95f4\u7684\u76f4\u63a5\u8f6c\u6362\u4f8b\u7a0b\uff08Heikki Linnakangas\uff09<a href=\"https://postgr.es/c/6c5576075\">\u00a7</a></p>", "text": "\u589e\u52a0 EUC_TW \u548c Big5 \u7f16\u7801\u4e4b\u95f4\u7684\u76f4\u63a5\u8f6c\u6362\u4f8b\u7a0b\uff08Heikki Linnakangas\uff09\u00a7", "title": "\u589e\u52a0 EUC_TW \u548c Big5 \u7f16\u7801\u4e4b\u95f4\u7684\u76f4\u63a5\u8f6c\u6362\u4f8b\u7a0b", "commits": ["6c5576075"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "7983857bb346fa8c0d92a0d82f0236d6f18349f796c9064e35235ce77c5665d5", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["6c5576075"]], "identity_text": "Add direct conversion routines between EUC_TW and Big5 encodings (Heikki Linnakangas)", "commit_aliases": ["6c5576075"], "source_commits": ["6c5576075"], "source_entry_id": "14.0/changes/170", "db_id": "780e0c89e60a1199e649a750522c8022", "patch_ids": ["ade10d924bbb73b1d84d08cfe79477f8"], "statement_hash": "f556d0ecb5d8fff79985c368ea358c44c6e9bb75fd7cc5ad8ee4bd1d260e0d90", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-5605f1868b572ddb", "migration": false}, {"id": "14.0-95f33c35a0472b1f", "cves": [], "html": "<p>\u589e\u52a0 <span>FreeBSD</span> \u7684\u6392\u5e8f\u89c4\u5219\u7248\u672c\u652f\u6301\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/ca051d8b1\">\u00a7</a></p>", "text": "\u589e\u52a0 FreeBSD \u7684\u6392\u5e8f\u89c4\u5219\u7248\u672c\u652f\u6301\uff08Thomas Munro\uff09\u00a7", "title": "\u589e\u52a0 FreeBSD \u7684\u6392\u5e8f\u89c4\u5219\u7248\u672c\u652f\u6301", "commits": ["ca051d8b1"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "db7a9f1036327d411cfbf382b67894f89814e530b9695a8277ad386492220847", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["ca051d8b1"]], "identity_text": "Add collation version support for FreeBSD (Thomas Munro)", "commit_aliases": ["ca051d8b1"], "source_commits": ["ca051d8b1"], "source_entry_id": "14.0/changes/171", "db_id": "e0a3bb652d2ee557c822810dae0a4bdf", "patch_ids": ["5431591f3215ff9dedbca3c13126c1a9"], "statement_hash": "09efd4999da181d0e7bdbaa28f873fe9fc2bceda2f883dcf7ff2eb30f6ac8eb6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-95f33c35a0472b1f", "migration": false}, {"id": "14.0-1ca3ed931e86a918", "cves": [], "html": "<p>\u5728\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5 <acronym>API</acronym> \u4e2d\u589e\u52a0 <a href=\"/docs/14/indexam.html#INDEX-API\" title=\"62.1.\u00a0\u7d22\u5f15\u7684\u57fa\u672c API \u7ed3\u6784\"><code>amadjustmembers</code></a>\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/9f9682783\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5\u5728\u521b\u5efa\u65b0\u64cd\u4f5c\u7b26\u7c7b\u6216\u65cf\u65f6\u63d0\u4f9b\u6709\u6548\u6027\u68c0\u67e5\u3002</p>", "text": "\u5728\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5 API \u4e2d\u589e\u52a0 amadjustmembers\uff08Tom Lane\uff09\u00a7 \u8fd9\u5141\u8bb8\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5\u5728\u521b\u5efa\u65b0\u64cd\u4f5c\u7b26\u7c7b\u6216\u65cf\u65f6\u63d0\u4f9b\u6709\u6548\u6027\u68c0\u67e5\u3002", "title": "\u5728\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5 API \u4e2d\u589e\u52a0 amadjustmembers", "commits": ["9f9682783"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "92fdeb4b8fcd5f74a298f4232eb4274f6ee5105a80c31254a7a85b547fec1064", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["9f9682783"]], "identity_text": "Add amadjustmembers to the index access method API (Tom Lane) This allows an index access method to provide validity checking during creation of a new operator class or family.", "commit_aliases": ["9f9682783"], "source_commits": ["9f9682783"], "source_entry_id": "14.0/changes/172", "db_id": "67dcbb97d57520263ed5b5b24c08cf00", "patch_ids": ["5475bbdb2bfd6a7f784d6f00970a575e"], "statement_hash": "616510c5198426be5bb7b527589c35c426e15e62b36d17defaa3b1263a48fe9d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-1ca3ed931e86a918", "migration": false}, {"id": "14.0-183fdacb48d5351e", "cves": [], "html": "<p>\u5728 <code>libpq-fe.h</code> \u4e2d\u63d0\u4f9b\u6700\u8fd1\u6dfb\u52a0\u7684 <span>libpq</span> \u529f\u80fd\u7684\u7279\u6027\u6d4b\u8bd5\u5b8f\uff08Tom Lane\uff0c\u00c1lvaro Herrera\uff09<a href=\"https://postgr.es/c/6991e774e\">\u00a7</a></p>\n<p>\u5386\u53f2\u4e0a\uff0c\u5e94\u7528\u7a0b\u5e8f\u901a\u5e38\u4f7f\u7528 <code>PG_VERSION_NUM</code> \u7684\u7f16\u8bd1\u65f6\u68c0\u67e5\u6765\u6d4b\u8bd5\u529f\u80fd\u662f\u5426\u53ef\u7528\u3002\u4f46\u90a3\u901a\u5e38\u662f\u670d\u52a1\u5668\u7248\u672c\uff0c\u53ef\u80fd\u4e0d\u80fd\u5f88\u597d\u5730\u6307\u5bfc <span>libpq</span> \u7684\u7248\u672c\u3002<code>libpq-fe.h</code> \u73b0\u5728\u63d0\u4f9b <code>#define</code> \u7b26\u53f7\u8868\u793a v14 \u4e2d\u6dfb\u52a0\u7684\u5e94\u7528\u7a0b\u5e8f\u53ef\u89c1\u529f\u80fd\uff1b\u610f\u56fe\u662f\u5728\u5c06\u6765\u7684\u7248\u672c\u4e2d\u7ee7\u7eed\u4e3a\u6b64\u7c7b\u529f\u80fd\u6dfb\u52a0\u7b26\u53f7\u3002</p>", "text": "\u5728 libpq-fe.h \u4e2d\u63d0\u4f9b\u6700\u8fd1\u6dfb\u52a0\u7684 libpq \u529f\u80fd\u7684\u7279\u6027\u6d4b\u8bd5\u5b8f\uff08Tom Lane\uff0c\u00c1lvaro Herrera\uff09\u00a7 \u5386\u53f2\u4e0a\uff0c\u5e94\u7528\u7a0b\u5e8f\u901a\u5e38\u4f7f\u7528 PG_VERSION_NUM \u7684\u7f16\u8bd1\u65f6\u68c0\u67e5\u6765\u6d4b\u8bd5\u529f\u80fd\u662f\u5426\u53ef\u7528\u3002\u4f46\u90a3\u901a\u5e38\u662f\u670d\u52a1\u5668\u7248\u672c\uff0c\u53ef\u80fd\u4e0d\u80fd\u5f88\u597d\u5730\u6307\u5bfc libpq \u7684\u7248\u672c\u3002libpq-fe.h \u73b0\u5728\u63d0\u4f9b #define \u7b26\u53f7\u8868\u793a v14 \u4e2d\u6dfb\u52a0\u7684\u5e94\u7528\u7a0b\u5e8f\u53ef\u89c1\u529f\u80fd\uff1b\u610f\u56fe\u662f\u5728\u5c06\u6765\u7684\u7248\u672c\u4e2d\u7ee7\u7eed\u4e3a\u6b64\u7c7b\u529f\u80fd\u6dfb\u52a0\u7b26\u53f7\u3002", "title": "\u5728 libpq-fe.h \u4e2d\u63d0\u4f9b\u6700\u8fd1\u6dfb\u52a0\u7684 libpq \u529f\u80fd\u7684\u7279\u6027\u6d4b\u8bd5\u5b8f", "commits": ["6991e774e"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-12", "source_hash": "b52c02cf436fdf2a185a9b3efa11b83d067d2fcb64c4f9bdb0f8b6973cffeaf0", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["6991e774e"]], "identity_text": "Provide feature-test macros in libpq-fe.h for recently-added libpq features (Tom Lane, \u00c1lvaro Herrera) Historically, applications have usually used compile-time checks of PG_VERSION_NUM to test whether a feature is available. But that's normally the server version, which might not be a good guide to libpq's version. libpq-fe.h now offers #define symbols denoting application-visible features added in v14; the intent is to keep adding symbols for such features in future versions.", "commit_aliases": ["6991e774e"], "source_commits": ["6991e774e"], "source_entry_id": "14.0/changes/173", "db_id": "a7c6579bc8ffc3fac0dbcad5119a9bb2", "patch_ids": ["3ad82629b851fb092a672a6dc622ab99"], "statement_hash": "29e4a6b76f75106a2eee2df3ee9710e9b44619f3ff54b6f6f699425280517ae4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-183fdacb48d5351e", "migration": false}, {"id": "14.0-03858ecc350cbdc4", "cves": [], "html": "<p>\u5141\u8bb8\u5bf9<a href=\"/docs/14/hstore.html\" title=\"F.16.\u00a0hstore\"><span>hstore</span></a>\u503c\u4f7f\u7528\u4e0b\u6807\u8fd0\u7b97\uff08Tom Lane\uff0cDmitry Dolgov\uff09<a href=\"https://postgr.es/c/0ec5f7e78\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5bf9hstore\u503c\u4f7f\u7528\u4e0b\u6807\u8fd0\u7b97\uff08Tom Lane\uff0cDmitry Dolgov\uff09\u00a7", "title": "\u5141\u8bb8\u5bf9hstore\u503c\u4f7f\u7528\u4e0b\u6807\u8fd0\u7b97", "commits": ["0ec5f7e78"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-13", "source_hash": "d5f34d44fe4828098f9c2c2d6116656ca55a6605534d7f7f92e0a43fa2c4b1c8", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["0ec5f7e78"]], "identity_text": "Allow subscripting of hstore values (Tom Lane, Dmitry Dolgov)", "commit_aliases": ["0ec5f7e78"], "source_commits": ["0ec5f7e78"], "source_entry_id": "14.0/changes/174", "db_id": "35e1fa63982ea2eba3ad940467fd54d7", "patch_ids": ["6b0d0782f7d2c5729e7d36d465ea5368"], "statement_hash": "54fca5934ff39cc30997aeb21bea77492b0510dbafb26ecf4bc6ad1734fd2a64", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-03858ecc350cbdc4", "migration": false}, {"id": "14.0-751b7175c3ffacf7", "cves": [], "html": "<p>\u5141\u8bb8 GiST/GIN <a href=\"/docs/14/pgtrgm.html\" title=\"F.33.\u00a0pg_trgm\"><span>pg_trgm</span></a> \u7d22\u5f15\u8fdb\u884c\u7b49\u503c\u67e5\u627e\uff08Julien Rouhaud\uff09<a href=\"https://postgr.es/c/935f66665\">\u00a7</a></p>\n<p>\u8fd9\u7c7b\u4f3c\u4e8e <code>LIKE</code>\uff0c\u53ea\u662f\u4e0d\u8bc6\u522b\u901a\u914d\u7b26\u3002</p>", "text": "\u5141\u8bb8 GiST/GIN pg_trgm \u7d22\u5f15\u8fdb\u884c\u7b49\u503c\u67e5\u627e\uff08Julien Rouhaud\uff09\u00a7 \u8fd9\u7c7b\u4f3c\u4e8e LIKE\uff0c\u53ea\u662f\u4e0d\u8bc6\u522b\u901a\u914d\u7b26\u3002", "title": "\u5141\u8bb8 GiST/GIN pg_trgm \u7d22\u5f15\u8fdb\u884c\u7b49\u503c\u67e5\u627e", "commits": ["935f66665"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-13", "source_hash": "c5fafbcc98fb4c422da39bfe8d85a99cc0927ff89f3435295f7c572a5f3d0cc8", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["935f66665"]], "identity_text": "Allow GiST/GIN pg_trgm indexes to do equality lookups (Julien Rouhaud) This is similar to LIKE except no wildcards are honored.", "commit_aliases": ["935f66665"], "source_commits": ["935f66665"], "source_entry_id": "14.0/changes/175", "db_id": "d5ff42c834bd3a04ae4c6cddfea08721", "patch_ids": ["8194d9588b930d7895e083bc43d40036"], "statement_hash": "a372ae2dbdfdd52bf86be8c73c33df920684800cf1972b4e1f67d4e0d6ccad99", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-751b7175c3ffacf7", "migration": false}, {"id": "14.0-b838a2e47cd51fee", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/14/cube.html\" title=\"F.9.\u00a0cube\"><span>cube</span></a>\u6570\u636e\u7c7b\u578b\u4ee5\u4e8c\u8fdb\u5236\u6a21\u5f0f\u4f20\u8f93\uff08KaiGai Kohei\uff09<a href=\"https://postgr.es/c/1265a9c8f\">\u00a7</a></p>", "text": "\u5141\u8bb8cube\u6570\u636e\u7c7b\u578b\u4ee5\u4e8c\u8fdb\u5236\u6a21\u5f0f\u4f20\u8f93\uff08KaiGai Kohei\uff09\u00a7", "title": "\u5141\u8bb8cube\u6570\u636e\u7c7b\u578b\u4ee5\u4e8c\u8fdb\u5236\u6a21\u5f0f\u4f20\u8f93", "commits": ["1265a9c8f"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-13", "source_hash": "a3da381df8ac11e1b59e0327cad97362ad5ce20783b0188376e5505dd3d50d32", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["1265a9c8f"]], "identity_text": "Allow the cube data type to be transferred in binary mode (KaiGai Kohei)", "commit_aliases": ["1265a9c8f"], "source_commits": ["1265a9c8f"], "source_entry_id": "14.0/changes/176", "db_id": "8674ca09cafc36a81f695e9541261616", "patch_ids": ["918d21b602ad3faf48278e77f4ff480e"], "statement_hash": "44c762c5a960af6a649f0b72b65067073e8bf551f71732097c54ef28ff6993ca", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-b838a2e47cd51fee", "migration": false}, {"id": "14.0-ea28f9bc11cc9e72", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/14/pgstattuple.html\" title=\"F.31.\u00a0pgstattuple\"><code>pgstattuple_approx()</code></a> \u62a5\u544a <acronym>TOAST</acronym> \u8868\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/ee0202d55\">\u00a7</a></p>", "text": "\u5141\u8bb8 pgstattuple_approx() \u62a5\u544a TOAST \u8868\uff08Peter Eisentraut\uff09\u00a7", "title": "\u5141\u8bb8 pgstattuple_approx() \u62a5\u544a TOAST \u8868", "commits": ["ee0202d55"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-13", "source_hash": "edf02faa29694e9ae1c7428f3135b81e8a016f64997d0c51cb031f8f7e6a46ee", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["ee0202d55"]], "identity_text": "Allow pgstattuple_approx() to report on TOAST tables (Peter Eisentraut)", "commit_aliases": ["ee0202d55"], "source_commits": ["ee0202d55"], "source_entry_id": "14.0/changes/177", "db_id": "8db834688d3cb0a2a2ad23fffec27293", "patch_ids": ["b254a76fdbf3f826386c358e953015fd"], "statement_hash": "d0442d1f34d43a51ffccd6af345731ca0b10283d4281fbdcb791b60341b2b2d8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-ea28f9bc11cc9e72", "migration": false}, {"id": "14.0-dbfde44dd43eacf4", "cves": [], "html": "<p>\u589e\u52a0 contrib \u6a21\u5757<a href=\"/docs/14/pgsurgery.html\" title=\"F.32.\u00a0pg_surgery\"><span>pg_surgery</span></a>\u4ee5\u5141\u8bb8\u66f4\u6539\u884c\u53ef\u89c1\u6027\uff08Ashutosh Sharma\uff09<a href=\"https://postgr.es/c/34a947ca1\">\u00a7</a></p>\n<p>\u8fd9\u5bf9\u4e8e\u4fee\u590d\u6570\u636e\u5e93\u635f\u574f\u5f88\u6709\u7528\u3002</p>", "text": "\u589e\u52a0 contrib \u6a21\u5757pg_surgery\u4ee5\u5141\u8bb8\u66f4\u6539\u884c\u53ef\u89c1\u6027\uff08Ashutosh Sharma\uff09\u00a7 \u8fd9\u5bf9\u4e8e\u4fee\u590d\u6570\u636e\u5e93\u635f\u574f\u5f88\u6709\u7528\u3002", "title": "\u589e\u52a0 contrib \u6a21\u5757pg_surgery\u4ee5\u5141\u8bb8\u66f4\u6539\u884c\u53ef\u89c1\u6027", "commits": ["34a947ca1"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-13", "source_hash": "f74abe6ca5d324303822da9a79af4b14d6da334de396abf00a6835a44c3ccf5a", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["34a947ca1"]], "identity_text": "Add contrib module pg_surgery which allows changes to row visibility (Ashutosh Sharma) This is useful for correcting database corruption.", "commit_aliases": ["34a947ca1"], "source_commits": ["34a947ca1"], "source_entry_id": "14.0/changes/178", "db_id": "5237a2bf6a7faec60b8dae0e1dc8aa63", "patch_ids": ["c8a4d00bf715837a1e5bc22ba899f1e6"], "statement_hash": "288b5fef4fd60d673d9312f68adaedc126255305da4835125d106058dd163afc", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-dbfde44dd43eacf4", "migration": false}, {"id": "14.0-db5aee5fa161c0d7", "cves": [], "html": "<p>\u589e\u52a0 contrib \u6a21\u5757<a href=\"/docs/14/oldsnapshot.html\" title=\"F.22.\u00a0old_snapshot\"><span>old_snapshot</span></a>\uff0c\u7528\u4e8e\u62a5\u544a\u6d3b\u52a8\u7684<a href=\"/docs/14/runtime-config-resource.html#GUC-OLD-SNAPSHOT-THRESHOLD\">old_snapshot_threshold</a>\u6240\u4f7f\u7528\u7684 <code>XID</code>/\u65f6\u95f4\u6620\u5c04\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/aecf5ee2b\">\u00a7</a></p>", "text": "\u589e\u52a0 contrib \u6a21\u5757old_snapshot\uff0c\u7528\u4e8e\u62a5\u544a\u6d3b\u52a8\u7684old_snapshot_threshold\u6240\u4f7f\u7528\u7684 XID/\u65f6\u95f4\u6620\u5c04\uff08Robert Haas\uff09\u00a7", "title": "\u589e\u52a0 contrib \u6a21\u5757old_snapshot\uff0c\u7528\u4e8e\u62a5\u544a\u6d3b\u52a8\u7684old_snapshot_threshold\u6240\u4f7f\u7528\u7684 XID/\u65f6\u95f4\u6620\u5c04", "commits": ["aecf5ee2b"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-13", "source_hash": "af106c5449af10cdf253e3074780cbaacafd0d29d6167f7ae9f7ef2e69932045", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["aecf5ee2b"]], "identity_text": "Add contrib module old_snapshot to report the XID/time mapping used by an active guc-old-snapshot-threshold (Robert Haas)", "commit_aliases": ["aecf5ee2b"], "source_commits": ["aecf5ee2b"], "source_entry_id": "14.0/changes/179", "db_id": "1d6556e5e0328ccc0ad0cd969e937fb4", "patch_ids": ["530f8dae87f8f3503900856f50dd3349"], "statement_hash": "b448b432cc5e5cc068757151a5396703ff859b7fd90f892496b48d11d0b30837", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-db5aee5fa161c0d7", "migration": false}, {"id": "14.0-ebd81a9bdf622463", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/14/amcheck.html\" title=\"F.2.\u00a0amcheck\"><span>amcheck</span></a>\u4e5f\u68c0\u67e5\u5806\u9875\u9762\uff08Mark Dilger\uff09<a href=\"https://postgr.es/c/866e24d47\">\u00a7</a></p>\n<p>\u4ee5\u524d\u5b83\u53ea\u68c0\u67e5 B-\u6811\u7d22\u5f15\u9875\u9762\u3002</p>", "text": "\u5141\u8bb8amcheck\u4e5f\u68c0\u67e5\u5806\u9875\u9762\uff08Mark Dilger\uff09\u00a7 \u4ee5\u524d\u5b83\u53ea\u68c0\u67e5 B-\u6811\u7d22\u5f15\u9875\u9762\u3002", "title": "\u5141\u8bb8amcheck\u4e5f\u68c0\u67e5\u5806\u9875\u9762", "commits": ["866e24d47"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-13", "source_hash": "dd1c019f206ec155abb7f71082b1e3ce34e744afa655c4f461047d6dcd946eaf", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["866e24d47"]], "identity_text": "Allow amcheck to also check heap pages (Mark Dilger) Previously it only checked B-Tree index pages.", "commit_aliases": ["866e24d47"], "source_commits": ["866e24d47"], "source_entry_id": "14.0/changes/180", "db_id": "458faa6c5575b1f36c7b15a75224fddf", "patch_ids": ["32f0eb8b8dd820a3288f765b570b316c"], "statement_hash": "2a21c06c933be743191c3e978fc93f4e226345f17d75482f0a6c94448fd5b60a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-ebd81a9bdf622463", "migration": false}, {"id": "14.0-ab06248ad63e36f5", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/14/pageinspect.html\" title=\"F.23.\u00a0pageinspect\"><span>pageinspect</span></a>\u68c0\u67e5 GiST \u7d22\u5f15\uff08Andrey Borodin\uff0cHeikki Linnakangas\uff09<a href=\"https://postgr.es/c/756ab2912\">\u00a7</a> <a href=\"https://postgr.es/c/9e596b65f\">\u00a7</a></p>", "text": "\u5141\u8bb8pageinspect\u68c0\u67e5 GiST \u7d22\u5f15\uff08Andrey Borodin\uff0cHeikki Linnakangas\uff09\u00a7 \u00a7", "title": "\u5141\u8bb8pageinspect\u68c0\u67e5 GiST \u7d22\u5f15", "commits": ["756ab2912", "9e596b65f"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-13", "source_hash": "c6beab5ee31b4089b94e2a8dc54df3ddbfd0ca3f6633d39ec27b88f5652675e7", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["756ab2912"], ["9e596b65f"]], "identity_text": "Allow pageinspect to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas)", "commit_aliases": ["756ab2912", "9e596b65f"], "source_commits": ["756ab2912", "9e596b65f"], "source_entry_id": "14.0/changes/181", "db_id": "4ae5de7378c79206299d14a648126a57", "patch_ids": ["0f79e60a97a233f2744a0604a32af6f2", "49a4b254fa9b472cbca1656ef65d896a"], "statement_hash": "b77436f57beaa53721aed36cdcd35696eb90e5f200ade5a474884db381d32278", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-ab06248ad63e36f5", "migration": false}, {"id": "14.0-48803b7316dcf002", "cves": [], "html": "<p>\u5c06 <span>pageinspect</span> \u5757\u53f7\u6539\u4e3a <a href=\"/docs/14/datatype.html#DATATYPE-INT\" title=\"8.1.1.\u00a0\u6574\u6570\u7c7b\u578b\"><code>bigint</code></a>\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/f18aa1b20\">\u00a7</a></p>", "text": "\u5c06 pageinspect \u5757\u53f7\u6539\u4e3a bigint\uff08Peter Eisentraut\uff09\u00a7", "title": "\u5c06 pageinspect \u5757\u53f7\u6539\u4e3a bigint", "commits": ["f18aa1b20"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-13", "source_hash": "015ae61bfcff3f5dee4d680cbecc42980c7feb6e707c8d30a2291b052bbcee1c", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["f18aa1b20"]], "identity_text": "Change pageinspect block numbers to be bigints (Peter Eisentraut)", "commit_aliases": ["f18aa1b20"], "source_commits": ["f18aa1b20"], "source_entry_id": "14.0/changes/182", "db_id": "b06347c9baac3a9d6c10a67e08c6196a", "patch_ids": ["dd73f45df9299ae50e8958cbee3610b6"], "statement_hash": "bc36d117b57d8adb2b3780c94ffe43d2e900bced01a33144f09e50d5ca4e3058", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-48803b7316dcf002", "migration": false}, {"id": "14.0-7769d1bf32df6621", "cves": [], "html": "<p>\u5c06<a href=\"/docs/14/btree-gist.html\" title=\"F.7.\u00a0btree_gist\"><span>btree_gist</span></a>\u51fd\u6570\u6807\u8bb0\u4e3a\u5e76\u884c\u5b89\u5168\uff08Steven Winfield\uff09<a href=\"https://postgr.es/c/d98c08cdc\">\u00a7</a></p>", "text": "\u5c06btree_gist\u51fd\u6570\u6807\u8bb0\u4e3a\u5e76\u884c\u5b89\u5168\uff08Steven Winfield\uff09\u00a7", "title": "\u5c06btree_gist\u51fd\u6570\u6807\u8bb0\u4e3a\u5e76\u884c\u5b89\u5168", "commits": ["d98c08cdc"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT3-13", "source_hash": "69a716ad1ae7cb5b9031db0ba07ed3bcb091047eedb20f02a0f3a3169bd9df8e", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["d98c08cdc"]], "identity_text": "Mark btree_gist functions as parallel safe (Steven Winfield)", "commit_aliases": ["d98c08cdc"], "source_commits": ["d98c08cdc"], "source_entry_id": "14.0/changes/183", "db_id": "d60bc82a124523ed8b20d5b2a30447ab", "patch_ids": ["7d3f9918d49be14ed4346805ff89f663"], "statement_hash": "0056e3a0404da553180798ce09277173f1fa9d21bb6fa59e6c7f7b17e27ccbfd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-7769d1bf32df6621", "migration": false}, {"id": "14.0-5344f9ad68e599d6", "cves": [], "html": "<p>\u5c06\u67e5\u8be2 hash \u8ba1\u7b97\u4ece <span>pg_stat_statements</span> \u79fb\u81f3\u6838\u5fc3\u670d\u52a1\u5668\uff08Julien Rouhaud\uff09<a href=\"https://postgr.es/c/5fd9dfa5f\">\u00a7</a></p>\n<p>\u65b0\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/14/runtime-config-statistics.html#GUC-COMPUTE-QUERY-ID\">compute_query_id</a>\u7684\u9ed8\u8ba4\u503c <code>auto</code> \u5c06\u5728\u52a0\u8f7d\u6b64\u6269\u5c55\u65f6\u81ea\u52a8\u542f\u7528\u67e5\u8be2 ID \u8ba1\u7b97\u3002</p>", "text": "\u5c06\u67e5\u8be2 hash \u8ba1\u7b97\u4ece pg_stat_statements \u79fb\u81f3\u6838\u5fc3\u670d\u52a1\u5668\uff08Julien Rouhaud\uff09\u00a7 \u65b0\u670d\u52a1\u5668\u53c2\u6570compute_query_id\u7684\u9ed8\u8ba4\u503c auto \u5c06\u5728\u52a0\u8f7d\u6b64\u6269\u5c55\u65f6\u81ea\u52a8\u542f\u7528\u67e5\u8be2 ID \u8ba1\u7b97\u3002", "title": "\u5c06\u67e5\u8be2 hash \u8ba1\u7b97\u4ece pg_stat_statements \u79fb\u81f3\u6838\u5fc3\u670d\u52a1\u5668", "commits": ["5fd9dfa5f"], "section": "\u9644\u52a0\u6a21\u5757 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-12", "source_hash": "8e2d8618cf40f1989da8444f110014223b6cd88b49eaa3a60d9bc6e98641f838", "section_path": ["\u9644\u52a0\u6a21\u5757", "pg_stat_statements"], "commit_groups": [["5fd9dfa5f"]], "identity_text": "Move query hash computation from pg_stat_statements to the core server (Julien Rouhaud) The new server parameter guc-compute-query-id 's default of auto will automatically enable query id computation when this extension is loaded.", "commit_aliases": ["5fd9dfa5f"], "source_commits": ["5fd9dfa5f"], "source_entry_id": "14.0/changes/184", "db_id": "cd67eb400519623ed7a9c0e05df86087", "patch_ids": ["0e14241033f6730c4c4b815cf7f75544"], "statement_hash": "cbd2f06d42609ab0ebbdfc3d76d212dea5bee5d427c99d94522dfeabf3731a9a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-5344f9ad68e599d6", "migration": false}, {"id": "14.0-4be3a194bba20f66", "cves": [], "html": "<p>\u4f7f <span>pg_stat_statements</span> \u5206\u522b\u8ddf\u8e2a\u9876\u5c42\u548c\u5d4c\u5957\u8bed\u53e5\uff08Julien Rohaud\uff09<a href=\"https://postgr.es/c/6b4d23fee\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u5728\u8ddf\u8e2a\u6240\u6709\u8bed\u53e5\u65f6\uff0c\u76f8\u540c\u7684\u9876\u5c42\u548c\u5d4c\u5957\u8bed\u53e5\u88ab\u4f5c\u4e3a\u5355\u4e2a\u6761\u76ee\u8ddf\u8e2a\uff1b\u4f46\u5206\u5f00\u6b64\u7c7b\u7528\u6cd5\u4f3c\u4e4e\u66f4\u6709\u7528\u3002</p>", "text": "\u4f7f pg_stat_statements \u5206\u522b\u8ddf\u8e2a\u9876\u5c42\u548c\u5d4c\u5957\u8bed\u53e5\uff08Julien Rohaud\uff09\u00a7 \u4ee5\u524d\uff0c\u5728\u8ddf\u8e2a\u6240\u6709\u8bed\u53e5\u65f6\uff0c\u76f8\u540c\u7684\u9876\u5c42\u548c\u5d4c\u5957\u8bed\u53e5\u88ab\u4f5c\u4e3a\u5355\u4e2a\u6761\u76ee\u8ddf\u8e2a\uff1b\u4f46\u5206\u5f00\u6b64\u7c7b\u7528\u6cd5\u4f3c\u4e4e\u66f4\u6709\u7528\u3002", "title": "\u4f7f pg_stat_statements \u5206\u522b\u8ddf\u8e2a\u9876\u5c42\u548c\u5d4c\u5957\u8bed\u53e5", "commits": ["6b4d23fee"], "section": "\u9644\u52a0\u6a21\u5757 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-12", "source_hash": "df2a65b95eeceab437e490d39ca11c69eb0930ae19da8478949d5d45f46e798c", "section_path": ["\u9644\u52a0\u6a21\u5757", "pg_stat_statements"], "commit_groups": [["6b4d23fee"]], "identity_text": "Cause pg_stat_statements to track top and nested statements separately (Julien Rohaud) Previously, when tracking all statements, identical top and nested statements were tracked as a single entry; but it seems more useful to separate such usages.", "commit_aliases": ["6b4d23fee"], "source_commits": ["6b4d23fee"], "source_entry_id": "14.0/changes/185", "db_id": "11134931e64a6d9c5b4c4e2e48062016", "patch_ids": ["275773d620858f3b89fc0adb1c4bad9a"], "statement_hash": "9b7c8f204beb578ce91753404d15ae112876bb630961b7306763a182ae06d33a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-4be3a194bba20f66", "migration": false}, {"id": "14.0-d60e91bc46b8960f", "cves": [], "html": "<p>\u4e3a <span>pg_stat_statements</span> \u589e\u52a0\u5de5\u5177\u547d\u4ee4\u7684\u884c\u8ba1\u6570\uff08Fujii Masao\uff0cKatsuragi Yuta\uff0cSeino Yuki\uff09<a href=\"https://postgr.es/c/6023b7ea7\">\u00a7</a> <a href=\"https://postgr.es/c/b62e6056a\">\u00a7</a></p>", "text": "\u4e3a pg_stat_statements \u589e\u52a0\u5de5\u5177\u547d\u4ee4\u7684\u884c\u8ba1\u6570\uff08Fujii Masao\uff0cKatsuragi Yuta\uff0cSeino Yuki\uff09\u00a7 \u00a7", "title": "\u4e3a pg_stat_statements \u589e\u52a0\u5de5\u5177\u547d\u4ee4\u7684\u884c\u8ba1\u6570", "commits": ["6023b7ea7", "b62e6056a"], "section": "\u9644\u52a0\u6a21\u5757 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-12", "source_hash": "4f67752ab84eaff4dc89a025ff6a9d728f18a2a7978ad6bd302fc2958c20744a", "section_path": ["\u9644\u52a0\u6a21\u5757", "pg_stat_statements"], "commit_groups": [["6023b7ea7"], ["b62e6056a"]], "identity_text": "Add row counts for utility commands to pg_stat_statements (Fujii Masao, Katsuragi Yuta, Seino Yuki)", "commit_aliases": ["6023b7ea7", "b62e6056a"], "source_commits": ["6023b7ea7", "b62e6056a"], "source_entry_id": "14.0/changes/186", "db_id": "983eab785ff24b21fae514737155ecbf", "patch_ids": ["a0aebb376ffa6dd4e7eef34d48fe4192", "de211c0bcc2147272f183ca9e73343df"], "statement_hash": "852df99d2b1ebde368ac96a479f2a95d4923cf7f3286757bcac698ba48a82704", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-d60e91bc46b8960f", "migration": false}, {"id": "14.0-db3f03ac797eb678", "cves": [], "html": "<p>\u589e\u52a0 <code>pg_stat_statements_info</code> \u7cfb\u7edf\u89c6\u56fe\u4ee5\u663e\u793a <span>pg_stat_statements</span> \u6d3b\u52a8\uff08Katsuragi Yuta\uff0cYuki Seino\uff0cNaoki Nakamichi\uff09<a href=\"https://postgr.es/c/9fbc3f318\">\u00a7</a> <a href=\"https://postgr.es/c/2e0fedf03\">\u00a7</a></p>", "text": "\u589e\u52a0 pg_stat_statements_info \u7cfb\u7edf\u89c6\u56fe\u4ee5\u663e\u793a pg_stat_statements \u6d3b\u52a8\uff08Katsuragi Yuta\uff0cYuki Seino\uff0cNaoki Nakamichi\uff09\u00a7 \u00a7", "title": "\u589e\u52a0 pg_stat_statements_info \u7cfb\u7edf\u89c6\u56fe\u4ee5\u663e\u793a pg_stat_statements \u6d3b\u52a8", "commits": ["2e0fedf03", "9fbc3f318"], "section": "\u9644\u52a0\u6a21\u5757 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-12", "source_hash": "2884a3ec714f75d2e89e213590c7d4c8444ffa16028e47885d3290ea8aacebdf", "section_path": ["\u9644\u52a0\u6a21\u5757", "pg_stat_statements"], "commit_groups": [["2e0fedf03"], ["9fbc3f318"]], "identity_text": "Add pg_stat_statements_info system view to show pg_stat_statements activity (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi)", "commit_aliases": ["2e0fedf03", "9fbc3f318"], "source_commits": ["2e0fedf03", "9fbc3f318"], "source_entry_id": "14.0/changes/187", "db_id": "2853bf742bb8b1e4dc0a143338319cb0", "patch_ids": ["0ff3687b0528bfbe0ee3cc01f3768f48", "e374d39ca8d38ea3885053a65d85d0ec"], "statement_hash": "a2215c7b9c417c67723f2379757be61c8de70e8c3f76c3c46abefc87d5095231", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-db3f03ac797eb678", "migration": false}, {"id": "14.0-59ebfc5ca30bc094", "cves": [], "html": "<p>\u5141\u8bb8 <span>postgres_fdw</span> \u6279\u91cf <code>INSERT</code> \u884c\uff08Takayuki Tsunakawa\uff0cTomas Vondra\uff0cAmit Langote\uff09<a href=\"https://postgr.es/c/b663a4136\">\u00a7</a> <a href=\"https://postgr.es/c/927f453a9\">\u00a7</a></p>", "text": "\u5141\u8bb8 postgres_fdw \u6279\u91cf INSERT \u884c\uff08Takayuki Tsunakawa\uff0cTomas Vondra\uff0cAmit Langote\uff09\u00a7 \u00a7", "title": "\u5141\u8bb8 postgres_fdw \u6279\u91cf INSERT \u884c", "commits": ["927f453a9", "b663a4136"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-13", "source_hash": "91ac8cb31bf3f7ad8d0e7677ba248004cc5273748e101753d36bc1e684d0df56", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["927f453a9"], ["b663a4136"]], "identity_text": "Allow postgres_fdw to INSERT rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote)", "commit_aliases": ["927f453a9", "b663a4136"], "source_commits": ["927f453a9", "b663a4136"], "source_entry_id": "14.0/changes/188", "db_id": "8edca89074d977c65a11cd2d9241ffab", "patch_ids": ["3f86d363692153d84de4460e7af1c9f3", "7d46efb735f60f650d471b45d5db5509"], "statement_hash": "163cb023ed651fb77a64df7b93d0d0947e97fdc8eb4145c7be4c770995d5b042", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-59ebfc5ca30bc094", "migration": false}, {"id": "14.0-068c41c7edefb320", "cves": [], "html": "<p>\u5141\u8bb8 <span>postgres_fdw</span> \u5728 <a href=\"/docs/14/sql-importforeignschema.html\" title=\"IMPORT FOREIGN SCHEMA\"><code>IMPORT FOREIGN SCHEMA ... LIMIT TO</code></a> \u6307\u5b9a\u65f6\u5bfc\u5165\u8868\u5206\u533a\uff08Matthias van de Meent\uff09<a href=\"https://postgr.es/c/a3740c48e\">\u00a7</a></p>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u4ec5\u5bfc\u5165\u5206\u533a\u8868\u7684\u6839\u8868\u3002</p>", "text": "\u5141\u8bb8 postgres_fdw \u5728 IMPORT FOREIGN SCHEMA ... LIMIT TO \u6307\u5b9a\u65f6\u5bfc\u5165\u8868\u5206\u533a\uff08Matthias van de Meent\uff09\u00a7 \u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u4ec5\u5bfc\u5165\u5206\u533a\u8868\u7684\u6839\u8868\u3002", "title": "\u5141\u8bb8 postgres_fdw \u5728 IMPORT FOREIGN SCHEMA ... LIMIT TO \u6307\u5b9a\u65f6\u5bfc\u5165\u8868\u5206\u533a", "commits": ["a3740c48e"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-13", "source_hash": "2a40dae8be975e501c241a152275c8e922507df112138beb727187b5a9121f32", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["a3740c48e"]], "identity_text": "Allow postgres_fdw to import table partitions if specified by IMPORT FOREIGN SCHEMA ... LIMIT TO (Matthias van de Meent) By default, only the root of a partitioned table is imported.", "commit_aliases": ["a3740c48e"], "source_commits": ["a3740c48e"], "source_entry_id": "14.0/changes/189", "db_id": "3e7b57978d99713422c46b142cf3a8c1", "patch_ids": ["5fe554ea784f0c6553ce2ed91ebff6d4"], "statement_hash": "b2459a7eb320d47e1ba795fc8236cffc80d63caf4ebde8cbaf40e9ba58d0dafa", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-068c41c7edefb320", "migration": false}, {"id": "14.0-1ca1bb2eccb8e078", "cves": [], "html": "<p>\u589e\u52a0 <span>postgres_fdw</span> \u51fd\u6570 <code>postgres_fdw_get_connections()</code> \u4ee5\u62a5\u544a\u6253\u5f00\u7684\u5916\u90e8\u670d\u52a1\u5668\u8fde\u63a5\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/708d165dd\">\u00a7</a></p>", "text": "\u589e\u52a0 postgres_fdw \u51fd\u6570 postgres_fdw_get_connections() \u4ee5\u62a5\u544a\u6253\u5f00\u7684\u5916\u90e8\u670d\u52a1\u5668\u8fde\u63a5\uff08Bharath Rupireddy\uff09\u00a7", "title": "\u589e\u52a0 postgres_fdw \u51fd\u6570 postgres_fdw_get_connections() \u4ee5\u62a5\u544a\u6253\u5f00\u7684\u5916\u90e8\u670d\u52a1\u5668\u8fde\u63a5", "commits": ["708d165dd"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-13", "source_hash": "17958661d2d1cb78afb39dac63c85028db5d5fe49288f40d518a4d55a21d7245", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["708d165dd"]], "identity_text": "Add postgres_fdw function postgres_fdw_get_connections() to report open foreign server connections (Bharath Rupireddy)", "commit_aliases": ["708d165dd"], "source_commits": ["708d165dd"], "source_entry_id": "14.0/changes/190", "db_id": "4a378185e60544c692c97365907017fa", "patch_ids": ["e72fee3989fe3212ca48686e540fd8ca"], "statement_hash": "40d55fc715b879f8d9983544c4b6a98abea448017a40c020fc76cf0bfd62daaa", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-1ca1bb2eccb8e078", "migration": false}, {"id": "14.0-214ead86293a9ad5", "cves": [], "html": "<p>\u5141\u8bb8\u63a7\u5236\u5916\u90e8\u670d\u52a1\u5668\u5728\u4e8b\u52a1\u5b8c\u6210\u540e\u662f\u5426\u4fdd\u6301\u8fde\u63a5\u6253\u5f00\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/b1be3074a\">\u00a7</a></p>\n<p>\u8fd9\u7531 <code>keep_connections</code> \u63a7\u5236\uff0c\u9ed8\u8ba4\u4e3a\u5f00\u542f\u3002</p>", "text": "\u5141\u8bb8\u63a7\u5236\u5916\u90e8\u670d\u52a1\u5668\u5728\u4e8b\u52a1\u5b8c\u6210\u540e\u662f\u5426\u4fdd\u6301\u8fde\u63a5\u6253\u5f00\uff08Bharath Rupireddy\uff09\u00a7 \u8fd9\u7531 keep_connections \u63a7\u5236\uff0c\u9ed8\u8ba4\u4e3a\u5f00\u542f\u3002", "title": "\u5141\u8bb8\u63a7\u5236\u5916\u90e8\u670d\u52a1\u5668\u5728\u4e8b\u52a1\u5b8c\u6210\u540e\u662f\u5426\u4fdd\u6301\u8fde\u63a5\u6253\u5f00", "commits": ["b1be3074a"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-13", "source_hash": "ec13cca913ea017b236cad47bfee5e3c5dfbe8b86a97c919805306023a0be57f", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["b1be3074a"]], "identity_text": "Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy) This is controlled by keep_connections and defaults to on.", "commit_aliases": ["b1be3074a"], "source_commits": ["b1be3074a"], "source_entry_id": "14.0/changes/191", "db_id": "854cf96d9cd70db7b9b23e0172db3b93", "patch_ids": ["d68e68ad94224bc4c8b6e247d3f01d92"], "statement_hash": "53376001a8f82497dcd7c1080e809d565cacd18aaa043406b16a5b0b7dd07f73", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-214ead86293a9ad5", "migration": false}, {"id": "14.0-9b0c412bd730fab1", "cves": [], "html": "<p>\u5141\u8bb8 <span>postgres_fdw</span> \u5728\u5fc5\u8981\u65f6\u91cd\u65b0\u8fde\u63a5\u5230\u5916\u90e8\u670d\u52a1\u5668\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/32a9c0bdf\">\u00a7</a> <a href=\"https://postgr.es/c/7fc1a81e4\">\u00a7</a></p>\n<p>\u4ee5\u524d\u5916\u90e8\u670d\u52a1\u5668\u91cd\u542f\u53ef\u80fd\u5bfc\u81f4\u5916\u90e8\u8868\u8bbf\u95ee\u9519\u8bef\u3002</p>", "text": "\u5141\u8bb8 postgres_fdw \u5728\u5fc5\u8981\u65f6\u91cd\u65b0\u8fde\u63a5\u5230\u5916\u90e8\u670d\u52a1\u5668\uff08Bharath Rupireddy\uff09\u00a7 \u00a7 \u4ee5\u524d\u5916\u90e8\u670d\u52a1\u5668\u91cd\u542f\u53ef\u80fd\u5bfc\u81f4\u5916\u90e8\u8868\u8bbf\u95ee\u9519\u8bef\u3002", "title": "\u5141\u8bb8 postgres_fdw \u5728\u5fc5\u8981\u65f6\u91cd\u65b0\u8fde\u63a5\u5230\u5916\u90e8\u670d\u52a1\u5668", "commits": ["32a9c0bdf", "7fc1a81e4"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-13", "source_hash": "3d50ac36c2e87e1b01d77a8311c474937d64acf45e7405d45b656e793b76004f", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["32a9c0bdf"], ["7fc1a81e4"]], "identity_text": "Allow postgres_fdw to reestablish foreign server connections if necessary (Bharath Rupireddy) Previously foreign server restarts could cause foreign table access errors.", "commit_aliases": ["32a9c0bdf", "7fc1a81e4"], "source_commits": ["32a9c0bdf", "7fc1a81e4"], "source_entry_id": "14.0/changes/192", "db_id": "ddab4bb28b4fbaabd50d59c753af7feb", "patch_ids": ["1bb123d39a409d6adb97de97addd5c43", "ecb0adb3bad70f5af0e20437b240bc9d"], "statement_hash": "cd4359c0d8768a67d0bb7e990463de05b7dda61138013b8d6414230b5ef99483", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-9b0c412bd730fab1", "migration": false}, {"id": "14.0-5b8287201117d7ba", "cves": [], "html": "<p>\u589e\u52a0 <span>postgres_fdw</span> \u51fd\u6570\u4ee5\u4e22\u5f03\u7f13\u5b58\u7684\u8fde\u63a5\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/411ae6499\">\u00a7</a></p>", "text": "\u589e\u52a0 postgres_fdw \u51fd\u6570\u4ee5\u4e22\u5f03\u7f13\u5b58\u7684\u8fde\u63a5\uff08Bharath Rupireddy\uff09\u00a7", "title": "\u589e\u52a0 postgres_fdw \u51fd\u6570\u4ee5\u4e22\u5f03\u7f13\u5b58\u7684\u8fde\u63a5", "commits": ["411ae6499"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/14.0/#ZH-AUTO-RELEASE-14-SECT4-13", "source_hash": "d40b5b5ffacdcea79112ebe1115f0933f98b43f9099ac3bb548fc8a43a2bc8d8", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["411ae6499"]], "identity_text": "Add postgres_fdw functions to discard cached connections (Bharath Rupireddy)", "commit_aliases": ["411ae6499"], "source_commits": ["411ae6499"], "source_entry_id": "14.0/changes/193", "db_id": "e5cfb8d774409fb5aeb59aa09c37fe50", "patch_ids": ["8a8b28146278cdae32260b003f7c7044"], "statement_hash": "32e02552bb3df0983f18f5baa281bff6b7e1ef4395acf1e5831a6efb857c620c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=14.0#14.0-5b8287201117d7ba", "migration": false}], "initial_entry_count": 220, "migration_html": "<p>\u5bf9\u4e8e\u5e0c\u671b\u4ece\u4efb\u4f55\u4ee5\u524d\u7684\u7248\u672c\u8fc1\u79fb\u6570\u636e\u7684\u4eba\u6765\u8bf4\uff0c\u9700\u8981\u4f7f\u7528<a href=\"/docs/14/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a>\u8fdb\u884c\u8f6c\u50a8/\u6062\u590d\uff0c\u6216\u8005\u4f7f\u7528<a href=\"/docs/14/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a>\u6216\u903b\u8f91\u590d\u5236\u3002\u6709\u5173\u8fc1\u79fb\u5230\u65b0\u4e3b\u8981\u7248\u672c\u7684\u901a\u7528\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605<a href=\"/docs/14/upgrading.html\" title=\"19.6.\u00a0\u5347\u7ea7 PostgreSQL \u96c6\u7c07\">\u7b2c\u00a019.6\u00a0\u8282</a>\u3002</p>\n<p>\u7248\u672c 14 \u5305\u542b\u8bb8\u591a\u53ef\u80fd\u5f71\u54cd\u4e0e\u5148\u524d\u7248\u672c\u517c\u5bb9\u6027\u7684\u53d8\u66f4\u3002\u8bf7\u6ce8\u610f\u4ee5\u4e0b\u4e0d\u517c\u5bb9\u6027\uff1a</p>\n<div>\n</div>", "category_filters": [{"key": "feature", "label": "\u65b0\u529f\u80fd", "count": 178}, {"key": "bugfix", "label": "BUG \u4fee\u590d", "count": 2}, {"key": "security", "label": "\u5b89\u5168\u76f8\u5173", "count": 0}, {"key": "performance", "label": "\u6027\u80fd\u6539\u8fdb", "count": 13}, {"key": "compatibility", "label": "\u517c\u5bb9\u6027\u53d8\u5316", "count": 27}, {"key": "improvement", "label": "\u5176\u4ed6\u6539\u8fdb", "count": 0}], "security_rows": [{"id": "CVE-2026-6637", "title": "PostgreSQL refint allows stack buffer overflow and SQL injection", "url": "https://www.postgresql.org/support/security/CVE-2026-6637/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Stack buffer overflow in PostgreSQL module \"refint\" allows an unprivileged database user to execute arbitrary code as the operating system user running the database. A distinct attack is possible if the application declares a user-controlled column as a \"refint\" cascade primary key and facilitates user-controlled updates to that column. In that case, a SQL injection allows a primary key update value provider to execute arbitrary SQL as the database user performing the primary key update. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u907f\u514d contrib/refint \u7684 check_foreign_key() \u4e2d\u89e3\u5f15\u7528 NULL \u6307\u9488", "url": "/docs/compare/?release=14.24#14.24-1db62b2c5a9b5839"}, {"build": "14.23", "version": "14.23", "title": "\u9632\u6b62 contrib/spi \u4e2d\u7684 SQL \u6ce8\u5165\u548c\u7f13\u51b2\u533a\u8d8a\u754c\u5199", "url": "/docs/compare/?release=14.23#14.23-6193d19850500f38"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6479", "title": "PostgreSQL SSL/GSS init causes denial of service, via uncontrolled recursion", "url": "https://www.postgresql.org/support/security/CVE-2026-6479/", "score": 7.5, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "description": "Uncontrolled recursion in PostgreSQL SSL and GSS negotiation allows an attacker able to connect to a PostgreSQL AF_UNIX socket to achieve sustained denial of service. If SSL and GSS are both disabled, an attacker can do the same via access to a PostgreSQL TCP socket. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "core server", "mentions": [{"build": "14.23", "version": "14.23", "title": "\u9632\u6b62\u5904\u7406\u542f\u52a8\u5305\u65f6\u53d1\u751f\u65e0\u754c\u9012\u5f52", "url": "/docs/compare/?release=14.23#14.23-c632f730b154b207"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6478", "title": "PostgreSQL discloses MD5-hashed passwords via covert timing channel", "url": "https://www.postgresql.org/support/security/CVE-2026-6478/", "score": 6.5, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "description": "Covert timing channel in comparison of MD5-hashed password in PostgreSQL authentication allows an attacker to recover user credentials sufficient to authenticate. This does not affect scram-sha-256 passwords, the default in all supported releases. However, current databases may have MD5-hashed passwords originating in upgrades from PostgreSQL 13 or earlier. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "core server", "mentions": [{"build": "14.23", "version": "14.23", "title": "\u5728\u8ba4\u8bc1\u4ee3\u7801\u4e2d\u4f7f\u7528\u65f6\u5e8f\u5b89\u5168\u7684\u5b57\u7b26\u4e32\u6bd4\u8f83", "url": "/docs/compare/?release=14.23#14.23-cc5cacc93416a361"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6477", "title": "PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory", "url": "https://www.postgresql.org/support/security/CVE-2026-6477/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Use of inherently dangerous function PQfn(..., result_is_int=0, ...) in PostgreSQL libpq lo_export(), lo_read(), lo_lseek64(), and lo_tell64() functions allows the server superuser to overwrite a client stack buffer with an arbitrarily-large response. Like gets(), PQfn(..., result_is_int=0, ...) stores arbitrary-length, server-determined data into a buffer of unspecified size. Because both the \\lo_export command in psql and pg_dump call lo_read(), the server superuser can overwrite pg_dump or psql stack memory. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "client", "mentions": [{"build": "14.23", "version": "14.23", "title": "\u5c06 PQfn() \u6807\u8bb0\u4e3a\u4e0d\u5b89\u5168\uff0c\u5e76\u907f\u514d\u5728 libpq \u5185\u90e8\u4f7f\u7528\u5b83", "url": "/docs/compare/?release=14.23#14.23-0894c376482213b5"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6475", "title": "PostgreSQL pg_basebackup and pg_rewind can overwrite unrelated files of origin superuser choice", "url": "https://www.postgresql.org/support/security/CVE-2026-6475/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Symlink following in PostgreSQL pg_basebackup plain format and in pg_rewind allows an origin superuser to overwrite local files, e.g. /var/lib/postgres/.bashrc, that hijack the operating system account. It will remain the case that starting the server after these commands implicitly trusts the origin superuser, due to features like shared_preload_libraries. Hence, the attack has practical implications only if one takes relevant action between these commands and server start, like moving the files to a different VM or snapshotting the VM. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "client", "mentions": [{"build": "14.23", "version": "14.23", "title": "\u9632\u6b62 pg_basebackup \u548c pg_rewind \u4e2d\u7684\u8def\u5f84\u904d\u5386", "url": "/docs/compare/?release=14.23#14.23-1e7e9c27c7b963a2"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6474", "title": "PostgreSQL timeofday() can disclose portions of server memory", "url": "https://www.postgresql.org/support/security/CVE-2026-6474/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Externally-controlled format string in PostgreSQL timeofday() function allows an attacker to retrieve portions of server memory, via crafted timezone zones. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "core server", "mentions": [{"build": "14.23", "version": "14.23", "title": "\u9632\u8303 timeofday() \u548c pg_strftime() \u4e2d\u7684\u6076\u610f\u65f6\u533a\u540d", "url": "/docs/compare/?release=14.23#14.23-4b161a739a37e73b"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6473", "title": "PostgreSQL server undersizes allocations, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2026-6473/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Integer wraparound in multiple PostgreSQL server features allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds. This may execute arbitrary code as the operating system user running the database. In applications that pass gigabyte-scale user inputs to the relevant database functions, the application input provider may achieve a segmentation fault. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4fee\u590d PL/Perl \u548c PL/Tcl \u5185\u5b58\u5206\u914d\u8ba1\u7b97\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=14.24#14.24-cbf179d0fe218ed0"}, {"build": "14.23", "version": "14.23", "title": "\u4fee\u590d\u5185\u5b58\u5206\u914d\u8ba1\u7b97\u4e2d\u7684\u591a\u5904\u6574\u6570\u6ea2\u51fa\u95ee\u9898", "url": "/docs/compare/?release=14.23#14.23-1cae472cd8aafd7d"}, {"build": "14.23", "version": "14.23", "title": "\u62d2\u7edd ts_headline() \u4e2d\u8fc7\u957f\u7684\u9009\u9879", "url": "/docs/compare/?release=14.23#14.23-c4c6b68f62616df1"}, {"build": "14.23", "version": "14.23", "title": "\u9632\u8303 contrib/intarray \u7684 query_int \u7c7b\u578b\u4ee5\u53ca contrib/ltree \u7684 ltxtquery \u7c7b\u578b\u4e2d\u7684\u5b57\u6bb5\u6ea2\u51fa", "url": "/docs/compare/?release=14.23#14.23-73b4c72ec19c85bf"}, {"build": "14.23", "version": "14.23", "title": "\u9632\u8303 contrib/ltree \u7684 lquery \u7c7b\u578b\u4e2d\u8fc7\u957f\u7684\u503c", "url": "/docs/compare/?release=14.23#14.23-466881ae2d66f716"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6472", "title": "PostgreSQL CREATE TYPE does not check multirange schema CREATE privilege", "url": "https://www.postgresql.org/support/security/CVE-2026-6472/", "score": 5.4, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Missing authorization in PostgreSQL CREATE TYPE allows an object creator to hijack other queries that use search_path to find user-defined types, including extension-defined types. That is to say, the victim will execute arbitrary SQL functions of the attacker's choice. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "core server", "mentions": [{"build": "14.23", "version": "14.23", "title": "\u521b\u5efa\u591a\u8303\u56f4\u7c7b\u578b\u65f6\uff0c\u786e\u4fdd\u7528\u6237\u5728\u4e3a\u8be5\u591a\u8303\u56f4\u7c7b\u578b\u6307\u5b9a\u7684\u6a21\u5f0f\u4e0a\u62e5\u6709 CREATE \u6743\u9650", "url": "/docs/compare/?release=14.23#14.23-9d3fa6790baf242e"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6471", "title": "PostgreSQL logical decoding can dlopen arbitrary file", "url": "https://www.postgresql.org/support/security/CVE-2026-6471/", "score": 7.2, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "description": "Missing authorization in PostgreSQL logical decoding allows a non-superuser holding REPLICATION privilege to dlopen any file visible to the operating system account running the server, via the choice of logical decoding plugin. This in turn runs arbitrary code as that account. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u5c06\u903b\u8f91\u89e3\u7801\u8f93\u51fa\u63d2\u4ef6\u9650\u5236\u4e3a\u65b0\u670d\u52a1\u5668\u53c2\u6570 output_plugin_libraries \u6307\u5b9a\u7684\u96c6\u5408", "url": "/docs/compare/?release=14.24#14.24-ee721afe6731e1ce"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6470", "title": "PostgreSQL fails to check type USAGE privilege", "url": "https://www.postgresql.org/support/security/CVE-2026-6470/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L", "description": "Missing authorization in PostgreSQL DDL commands allows an object creator to achieve denial of service against ALTER and DROP of the type, via creating a dependency on the type. Many DDL operations did check the privilege, but assigning a range subtype and referencing the type from an SQL expression did not. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u5728\u6b64\u524d\u6f0f\u68c0\u7684\u573a\u666f\u4e2d\u68c0\u67e5\u6570\u636e\u7c7b\u578b\u7684 USAGE \u6743\u9650", "url": "/docs/compare/?release=14.24#14.24-045d18982c440e91"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6469", "title": "PostgreSQL ALTER TABLE ALTER TYPE resets extended statistics ownership", "url": "https://www.postgresql.org/support/security/CVE-2026-6469/", "score": 3.8, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", "description": "Incorrect ownership assignment in PostgreSQL ALTER TABLE ALTER TYPE command reassigns ownership of dependent statistics objects to the current user. This wrongly allows the table owner to run DROP STATISTICS and ALTER STATISTICS via this improper ownership. It wrongly denies those commands to the prior statistics object owner. DROP TABLE remains able to remove statistics objects, so this exploit achieves nothing in many ownership arrangements. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u5728 ALTER TABLE \u91cd\u5efa\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\u5bf9\u8c61\u65f6\u4fdd\u7559\u5176\u6240\u6709\u6743", "url": "/docs/compare/?release=14.24#14.24-dd4b41945f77ff4b"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6464", "title": "PostgreSQL psql COPY FROM STDIN early failure processes data lines as psql commands", "url": "https://www.postgresql.org/support/security/CVE-2026-6464/", "score": 8.1, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "description": "Untrusted data inclusion in PostgreSQL psql COPY may allow a server administrator to elicit execution of data lines as psql commands, via error injection. If the \"COPY FROM STDIN\" or \"\\copy FROM STDIN\" command fails before the server indicates that it awaits input rows, psql processes the in-line data rows as psql commands. \"COPY FROM\" with a filename is unaffected. The server administrator has no inherent control over the data rows, so a complete attack requires the attacker to separately acquire control of both the server and the data rows. Alternatively, an attacker controlling data rows alone might complete an attack through a coincidental error that they don't control. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "client", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4fee\u590d psql\uff1a\u8df3\u8fc7\u811a\u672c\u4e2d\u7684 COPY ... FROM STDIN \u547d\u4ee4\u540e\u9762\u7684\u5185\u8054\u6570\u636e\uff0c\u5373\u4f7f COPY \u5728\u53d1\u9001 PGRES_COPY_IN \u524d\u5931\u8d25", "url": "/docs/compare/?release=14.24#14.24-6d095df52bb23c05"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-2006", "title": "PostgreSQL missing validation of multibyte character length executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-2006/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Missing validation of multibyte character length in PostgreSQL text manipulation allows a database user to issue crafted queries that achieve a buffer overrun. That suffices to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "description_language": "en", "fixed": "14.21", "fixed_url": "/docs/compare/?release=14.21", "affected": "14", "component": "core server", "mentions": [{"build": "14.22", "version": "14.22", "title": "\u907f\u514d\u5728\u5bf9\u201c\u7ecf\u8fc7 TOAST \u5904\u7406\u201d\u7684\u6570\u636e\u5e94\u7528 substring() \u65f6\u8bef\u62a5\u65e0\u6548\u7f16\u7801", "url": "/docs/compare/?release=14.22#14.22-0e619c964c972dcb"}, {"build": "14.21", "version": "14.21", "title": "\u4fee\u590d\u591a\u5b57\u8282\u5b57\u7b26\u957f\u5ea6\u9a8c\u8bc1\u4e0d\u5145\u5206\u7684\u95ee\u9898", "url": "/docs/compare/?release=14.21#14.21-0170b76fb58a4a02"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-2005", "title": "PostgreSQL pgcrypto heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-2005/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL pgcrypto allows a ciphertext provider to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "description_language": "en", "fixed": "14.21", "fixed_url": "/docs/compare/?release=14.21", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.21", "version": "14.21", "title": "\u4fee\u590d contrib/pgcrypto PGP \u89e3\u5bc6\u51fd\u6570\u4e2d\u7684\u7f13\u51b2\u533a\u6ea2\u51fa\u95ee\u9898", "url": "/docs/compare/?release=14.21#14.21-8072e6858a1ccb57"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-2004", "title": "PostgreSQL intarray missing validation of type of input to selectivity estimator executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-2004/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Missing validation of type of input in PostgreSQL intarray extension selectivity estimator function allows an object creator to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "description_language": "en", "fixed": "14.21", "fixed_url": "/docs/compare/?release=14.21", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.21", "version": "14.21", "title": "\u589e\u5f3a\u9009\u62e9\u7387\u4f30\u7b97\u5668\u5728\u88ab\u9644\u52a0\u5230\u63a5\u53d7\u975e\u9884\u671f\u6570\u636e\u7c7b\u578b\u7684\u64cd\u4f5c\u7b26\u65f6\u7684\u9632\u62a4", "url": "/docs/compare/?release=14.21#14.21-4f1356e5a78a8982"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-2003", "title": "PostgreSQL oidvector discloses a few bytes of memory", "url": "https://www.postgresql.org/support/security/CVE-2026-2003/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Improper validation of type \"oidvector\" in PostgreSQL allows a database user to disclose a few bytes of server memory. We have not ruled out viability of attacks that arrange for presence of confidential information in disclosed bytes, but they seem unlikely. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "description_language": "en", "fixed": "14.21", "fixed_url": "/docs/compare/?release=14.21", "affected": "14", "component": "core server", "mentions": [{"build": "14.21", "version": "14.21", "title": "\u9632\u6b62 oidvector/int2vector \u51fa\u73b0\u610f\u5916\u7684\u7ef4\u5ea6", "url": "/docs/compare/?release=14.21#14.21-182abf620be79725"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-19385", "title": "PostgreSQL pg_dump heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-19385/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL pg_dump of long function transform lists allows an object creator to execute arbitrary code as the operating system user running pg_dump, via a crafted transform list. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "client", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u79fb\u9664 pg_dump \u5173\u4e8e pg_proc.protrftypes \u4e0d\u53ef\u80fd\u5305\u542b\u8d85\u8fc7 FUNC_MAX_ARGS \u4e2a\u6761\u76ee\u7684\u5047\u8bbe", "url": "/docs/compare/?release=14.24#14.24-f37e6003b995c6db"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-18408", "title": "PostgreSQL psql \\unrestrict lets superuser of pg_dump origin server execute arbitrary code in psql client", "url": "https://www.postgresql.org/support/security/CVE-2026-18408/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql \\restrict meta-command input expansion. The fix for CVE-2025-8714 introduced \\restrict and \\unrestrict to block this attack, but \\unrestrict itself was sufficient for an attack. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. Non-core use of \\restrict would be affected, but we've not identified non-core use. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "client", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4e0d\u8981\u5bf9 psql \u7684 \\unrestrict \u547d\u4ee4\u53c2\u6570\u6267\u884c\u53cd\u5f15\u53f7\u6269\u5c55", "url": "/docs/compare/?release=14.24#14.24-383244a3d19a3ddf"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-18024", "title": "PostgreSQL ascii() function reads past end of buffer", "url": "https://www.postgresql.org/support/security/CVE-2026-18024/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Buffer over-read in PostgreSQL ascii() SQL function allows a user to disclose up to 3 bytes after the end of a specific allocation, via a crafted text value. This is the same class of defect that CVE-2026-2006 fixed, though this instance has less impact. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u589e\u5f3a ascii() \u51fd\u6570\u5bf9\u65e0\u6548\u8f93\u5165\u7684\u9632\u62a4", "url": "/docs/compare/?release=14.24#14.24-7c4016acc1446315"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-16241", "title": "PostgreSQL ECPG integer underflow can crash the client", "url": "https://www.postgresql.org/support/security/CVE-2026-16241/", "score": 3.8, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", "description": "Integer underflow in PostgreSQL ECPG allows a database server administrator to achieve temporary denial of service against the ECPG client via sending a bytea value lacking the mandatory prefix. The client overwrites a huge memory region with bytes outside attacker knowledge or control. This typically yields a simple SIGSEGV, but rare cases might achieve client-specific integrity impact via the write. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "client", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4fee\u590d ecpg \u5e94\u7528\u7a0b\u5e8f\u56e0\u63a5\u6536\u670d\u52a1\u5668\u8fd4\u56de\u7684\u65e0\u6548 bytea \u6570\u636e\u800c\u53d1\u751f\u7684\u8d8a\u754c\u5199\u5165", "url": "/docs/compare/?release=14.24#14.24-a12e893b89f31441"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-16239", "title": "PostgreSQL type confusion in cursor CLOSE + DECLARE executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-16239/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Type confusion in PostgreSQL \"portal\"/cursor lifecycle allows a user to execute arbitrary code as the operating system user running the database, via re-creation of a cursor or other portal with different types. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4ea4\u53c9\u68c0\u67e5\u8fd0\u884c EXECUTE \u6216 FETCH \u7684 portal \u7684\u8f93\u51fa\u884c\u7c7b\u578b", "url": "/docs/compare/?release=14.24#14.24-741f9481441d702d"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-16238", "title": "PostgreSQL type confusion in pg_restore_attribute_stats() executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-16238/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Type confusion in PostgreSQL pg_restore_attribute_stats() allows an object creator to execute arbitrary code as the operating system user running the database, via conflation of range and multirange values. Within major version 18, minor versions before PostgreSQL 18.6 are affected. Versions before PostgreSQL 18 are unaffected.", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4fee\u590d pg_restore_attribute_stats() \u5bf9\u591a\u8303\u56f4\u7c7b\u578b\u7684\u5904\u7406", "url": "/docs/compare/?release=14.24#14.24-5d9a6f9f262886ec"}], "evidence": "release-note-mention"}, {"id": "CVE-2026-15742", "title": "PostgreSQL fuzzystrmatch writes effectively-arbitrary addresses, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2026-15742/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Integer wraparound in PostgreSQL fuzzystrmatch allows a user to direct writes to a huge range of addresses, executing arbitrary code as the operating system user running the database, via extreme inputs to SQL function levenshtein() or levenshtein_less_equal(). Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4fee\u590d contrib/fuzzystrmatch \u7684 levenshtein() \u548c levenshtein_less_equal() \u51fd\u6570\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=14.24#14.24-249a71765a38f726"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-15741", "title": "PostgreSQL expression deparse allows SQL injection via EXTRACT argument", "url": "https://www.postgresql.org/support/security/CVE-2026-15741/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "SQL injection in PostgreSQL EXTRACT() deparse allows an object owner to execute arbitrary SQL as a superuser via a hostile object definition. Attacks affect expression deparse consumers broadly, including pg_dump, psql commands like \\sf, and any similar usage in non-core tools. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u9006\u89e3\u6790 EXTRACT() \u51fd\u6570\u8c03\u7528\u65f6\uff0c\u6309\u9700\u4e3a\u5b57\u6bb5\u540d\u52a0\u5f15\u53f7", "url": "/docs/compare/?release=14.24#14.24-6222e3f0de511b22"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14681", "title": "PostgreSQL improper enforcement of GSSAPI encryption when coupled with SSL", "url": "https://www.postgresql.org/support/security/CVE-2026-14681/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Improper enforcement of message integrity in PostgreSQL GSSAPI support allows a user to negotiate GSSAPI contrary to pg_hba.conf rules, via initial direct TLS connection. Despite a pg_hba.conf that appears to require GSSAPI, the connection may exchange data over TLS encryption alone. If the TLS settings are more permissive than the GSS settings, the connection may continue with lesser protection. Within major versions 17-18, minor versions before PostgreSQL 18.6 and 17.11 are affected. Versions before PostgreSQL 17 are unaffected.", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u5728\u76f4\u63a5 SSL \u8fde\u63a5\u4e4b\u540e\u62d2\u7edd GSSEncRequest", "url": "/docs/compare/?release=14.24#14.24-f7c6e475d2ee5cf0"}], "evidence": "release-note-mention"}, {"id": "CVE-2026-14680", "title": "PostgreSQL type confusion via \"internal\" arguments", "url": "https://www.postgresql.org/support/security/CVE-2026-14680/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Type confusion with PostgreSQL \"internal\" data type arguments allows any user to execute arbitrary code as the operating system user running the database, via calls to functions with that argument type. Type \"internal\" represents a class of mutually-incompatible data structures not intended for access from SQL. The system intended to prevent such function calls, but this prevention had gaps. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u62d2\u7edd\u4ece SQL \u8c03\u7528\u63a5\u53d7\u6216\u8fd4\u56de internal \u7c7b\u578b\u7684\u51fd\u6570", "url": "/docs/compare/?release=14.24#14.24-d4901f423633ca69"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14679", "title": "PostgreSQL stack buffer overflow in argument match writes 0x0 and 0x1 to server memory", "url": "https://www.postgresql.org/support/security/CVE-2026-14679/", "score": 8.2, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H", "description": "Stack buffer overflow in PostgreSQL argument name matching allows an object creator to achieve unknown impacts via OUT parameter count. The attack can write only 0x0 and 0x1 bytes. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4fee\u590d\u591a\u5904\u9519\u8bef\u5730\u5047\u5b9a\u65e0\u9700\u5904\u7406\u8d85\u8fc7 FUNC_MAX_ARGS \u4e2a\u51fd\u6570\u53c2\u6570\u7684\u95ee\u9898", "url": "/docs/compare/?release=14.24#14.24-573a25e391fc116a"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14678", "title": "PostgreSQL pg_trgm picksplit reads past end of buffer", "url": "https://www.postgresql.org/support/security/CVE-2026-14678/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Buffer over-read in PostgreSQL pg_trgm index picksplit function reads past end of a heap buffer. This might allow a table maintainer to infer limited memory values, via the lossy signal of index split choices. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4fee\u590d contrib/pg_trgm \u7684 GiST picksplit \u51fd\u6570\u4e2d\u7684\u6570\u636e\u7c7b\u578b\u9519\u8bef", "url": "/docs/compare/?release=14.24#14.24-76522194454c0c43"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14677", "title": "PostgreSQL 32-bit pltcl and plperl undersize allocations, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2026-14677/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Integer wraparound in PostgreSQL 32-bit builds of pltcl and plperl allows an object creator to cause the server to undersize an allocation and write out-of-bounds via crafted function bodies. This may execute arbitrary code as the operating system user running the database. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4fee\u590d PL/Perl \u548c PL/Tcl \u5185\u5b58\u5206\u914d\u8ba1\u7b97\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=14.24#14.24-cbf179d0fe218ed0"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14676", "title": "PostgreSQL pg_stat_statements heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14676/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL pg_stat_statements allows the query author to execute arbitrary code as the operating system user running the database, via crafted queries containing array constants. Within major version 18, minor versions before PostgreSQL 18.6 are affected. Versions before PostgreSQL 18 are unaffected.", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4fee\u590d contrib/pg_stat_statements \u4e2d\u7684\u7f13\u51b2\u533a\u8d8a\u754c\u5199\u5165", "url": "/docs/compare/?release=14.24#14.24-c47a9a8863c0fc6e"}], "evidence": "release-note-mention"}, {"id": "CVE-2026-14673", "title": "PostgreSQL amcheck does not clear untrusted search path", "url": "https://www.postgresql.org/support/security/CVE-2026-14673/", "score": 3.8, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N", "description": "Untrusted search path in PostgreSQL amcheck allows a grantee of amcheck function EXECUTE privilege to execute arbitrary functions as the owners of expression indexes that depend on the search path, via setting a hostile search path before calling the amcheck function. Within major versions 18, 16, 15, and 14, minor versions before PostgreSQL 18.6, 16.15, 15.19, and 14.24 are affected. PostgreSQL 17 is unaffected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u786e\u4fdd contrib/amcheck \u51fd\u6570\u5728\u6267\u884c\u7d22\u5f15\u8868\u8fbe\u5f0f\u524d\u9650\u5236 search_path", "url": "/docs/compare/?release=14.24#14.24-e234967475d09d13"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14672", "title": "PostgreSQL observable response discrepancy with non-default scram_iterations provides user existence oracle", "url": "https://www.postgresql.org/support/security/CVE-2026-14672/", "score": 5.3, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N", "description": "Observable response discrepancy in PostgreSQL SCRAM authentication allows an unauthenticated user to test the existence of a user via observing the SCRAM iteration count. This requires the probed user to have a non-default scram_iterations count, because the authentication challenge for a nonexistent user reports the default scram_iterations. Within major versions 16-18, minor versions before PostgreSQL 18.6, 17.11, and 16.15 are affected. Versions before PostgreSQL 16 are unaffected.", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u8ba9\u6a21\u62df\u7684 SCRAM secret \u66f4\u53ef\u4fe1", "url": "/docs/compare/?release=14.24#14.24-e106429efa4365f8"}], "evidence": "release-note-mention"}, {"id": "CVE-2026-14671", "title": "PostgreSQL refint plan cache type confusion executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14671/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Type confusion in PostgreSQL module \"refint\" allows an object creator to execute arbitrary code as the operating system user running the database. The fix for this emerged as a non-security bug report, and the fix appear in the git repository with subject \"refint: Remove plan cache.\", without a CVE number. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u79fb\u9664 contrib/refint \u4e2d\u7684\u8ba1\u5212\u7f13\u5b58", "url": "/docs/compare/?release=14.24#14.24-80251253da1ccc96"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14670", "title": "PostgreSQL plperl tied object heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14670/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL plperl return of a tied hash allows the function owner to execute arbitrary code as the operating system user running the database, via a crafted function body. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u589e\u5f3a PL/Perl \u5bf9\u201ctied\u201d Perl \u6570\u7ec4\u548c hash \u7684\u9632\u62a4", "url": "/docs/compare/?release=14.24#14.24-00b84c1b83bd3d6b"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14669", "title": "PostgreSQL to_char heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14669/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL to_char(timestamptz) allows the party choosing the timezone to execute arbitrary code as the operating system user running the database, via a long POSIX timezone abbreviation. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4fee\u590d to_char() \u5904\u7406\u8fc7\u957f\u65f6\u533a\u7f29\u5199\u65f6\u53d1\u751f\u7684\u7f13\u51b2\u533a\u8d8a\u754c\u5199\u5165", "url": "/docs/compare/?release=14.24#14.24-744489dc4872d6f1-1"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14668", "title": "PostgreSQL ctid type confusion in selectivity estimator discloses derivative of arbitrary read", "url": "https://www.postgresql.org/support/security/CVE-2026-14668/", "score": 8.1, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H", "description": "Type confusion regarding input of PostgreSQL ctid data type selectivity estimator allows an object creator to view a calculation derived from the value of an arbitrary 4-byte span of memory, via a chosen non-ctid input. While the calculation loses precision, substantial memory value recovery appears possible. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u8ba9 scalarineqsel() \u68c0\u67e5\u9884\u671f\u4e3a tid \u7c7b\u578b\u7684\u5e38\u91cf\u662f\u5426\u786e\u5b9e\u5c5e\u4e8e\u8be5\u7c7b\u578b", "url": "/docs/compare/?release=14.24#14.24-5956eea8fb565470"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14666", "title": "PostgreSQL row security caching disregards role modifications", "url": "https://www.postgresql.org/support/security/CVE-2026-14666/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Incomplete tracking in PostgreSQL of changes to role membership, role attributes, and database ownership allows a query to continue using cached row-level security policies after those changes require a different policy, via plan reuse. Stale policies continue until some other event invalidates the cache or connection termination ends the session. This permits a user to complete reads and modifications that were recently permitted but now forbidden. An attacker must tailor an attack to a particular application's pattern of privilege removal and role-specific row security policies. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u89d2\u8272\u53d1\u751f\u53d8\u66f4\u540e\u4f7f\u4f9d\u8d56\u89d2\u8272\u7684\u7f13\u5b58\u8ba1\u5212\u5931\u6548", "url": "/docs/compare/?release=14.24#14.24-6987bc0045f3c2c5"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14664", "title": "PostgreSQL regexp heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14664/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL regexp allows the query author to execute arbitrary code as the operating system user running the database, via text that would not pass encoding validation. This shares heritage with CVE-2026-2006, but this case involved unanticipated data growth when round-tripped through pg_wchar. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4fee\u590d\u6b63\u5219\u8868\u8fbe\u5f0f\u5339\u914d/\u62c6\u5206\u51fd\u6570\u4e2d\u7684\u7f13\u51b2\u533a\u8d8a\u754c\u5199\u5165", "url": "/docs/compare/?release=14.24#14.24-e8fecccd48726ac8"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14663", "title": "PostgreSQL pgcrypto, for OpenSSL-disabled ciphers, silently encrypts to and decrypts from cleartext", "url": "https://www.postgresql.org/support/security/CVE-2026-14663/", "score": 6.5, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "description": "Cleartext storage in PostgreSQL pgcrypto disabled ciphers allows a user to recover cleartext, via direct observation of the faulty ciphertext. The OpenSSL version and OpenSSL configuration determine the disabled ciphers. If the application accepts encrypted data as input, decryption will succeed even with the wrong key. This in turn loses the modest protection from the Modification Detection Code (MDC). Affected functions are pgp_sym_encrypt, pgp_sym_decrypt, pgp_pub_encrypt, pgp_pub_decrypt, pgp_sym_encrypt_bytea, pgp_sym_decrypt_bytea, pgp_pub_encrypt_bytea, and pgp_pub_decrypt_bytea. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4fee\u590d contrib/pgcrypto \u7684 PGP \u52a0\u5bc6\uff0c\u4f7f\u5176\u80fd\u591f\u68c0\u6d4b\u4e0d\u53d7\u652f\u6301\u7684\u5bc6\u7801\u7b97\u6cd5", "url": "/docs/compare/?release=14.24#14.24-fdda567fdb9d909d"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14662", "title": "PostgreSQL tsvector and tsquery undersize allocations, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2026-14662/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Integer wraparound in PostgreSQL tsvector and tsquery data type functions allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds, via crafted large inputs. This may execute arbitrary code as the operating system user running the database. These types are typically sourced from application logic, not taken from the application's user. Hence, application users attacking the database, through the application as a conduit, are unlikely. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u589e\u5f3a tsvector \u548c tsquery \u4ee3\u7801\u5bf9\u8d85\u957f\u503c\u7684\u9632\u62a4\uff08\u5305\u62ec\u5355\u4e2a\u8bcd\u4f4d\u4ee5\u53ca\u5411\u91cf/\u67e5\u8be2\u7684\u603b\u957f\u5ea6\uff09", "url": "/docs/compare/?release=14.24#14.24-60bda94b8310bec9"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-8715", "title": "PostgreSQL pg_dump newline in object name executes arbitrary code in psql client and in restore target server", "url": "https://www.postgresql.org/support/security/CVE-2025-8715/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Improper neutralization of newlines in pg_dump in PostgreSQL allows a user of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands inside a purpose-crafted object name. The same attacks can achieve SQL injection as a superuser of the restore target server. pg_dumpall, pg_restore, and pg_upgrade are also affected. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected. Versions before 11.20 are unaffected. CVE-2012-0868 had fixed this class of problem, but version 11.20 reintroduced it.", "description_language": "en", "fixed": "14.19", "fixed_url": "/docs/compare/?release=14.19", "affected": "14", "component": "core server", "mentions": [{"build": "14.19", "version": "14.19", "title": "\u5728 pg_dump \u8f93\u51fa\u7684\u6ce8\u91ca\u4e2d\uff0c\u5c06\u540d\u79f0\u4e2d\u5305\u542b\u7684\u6362\u884c\u7b26\u8f6c\u6362\u4e3a\u7a7a\u683c", "url": "/docs/compare/?release=14.19#14.19-fb4152603ed81a9f"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-8714", "title": "PostgreSQL pg_dump lets superuser of origin server execute arbitrary code in psql client", "url": "https://www.postgresql.org/support/security/CVE-2025-8714/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. This is similar to MySQL CVE-2024-21096. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "description_language": "en", "fixed": "14.19", "fixed_url": "/docs/compare/?release=14.19", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "\u4e0d\u8981\u5bf9 psql \u7684 \\unrestrict \u547d\u4ee4\u53c2\u6570\u6267\u884c\u53cd\u5f15\u53f7\u6269\u5c55", "url": "/docs/compare/?release=14.24#14.24-383244a3d19a3ddf"}, {"build": "14.19", "version": "14.19", "title": "\u9632\u6b62 pg_dump \u811a\u672c\u88ab\u7528\u4e8e\u653b\u51fb\u6267\u884c\u6062\u590d\u7684\u7528\u6237", "url": "/docs/compare/?release=14.19#14.19-7d06a1d1ebfb29d7"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-8713", "title": "PostgreSQL optimizer statistics can expose sampled data within a view, partition, or child table", "url": "https://www.postgresql.org/support/security/CVE-2025-8713/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "PostgreSQL optimizer statistics allow a user to read sampled data within a view that the user cannot access. Separately, statistics allow a user to read sampled data that a row security policy intended to hide. PostgreSQL maintains statistics for tables by sampling data available in columns; this data is consulted during the query planning process. Prior to this release, a user could craft a leaky operator that bypassed view access control lists (ACLs) and bypassed row security policies in partitioning or table inheritance hierarchies. Reachable statistics data notably included histograms and most-common-values lists. CVE-2017-7484 and CVE-2019-10130 intended to close this class of vulnerability, but this gap remained. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "description_language": "en", "fixed": "14.19", "fixed_url": "/docs/compare/?release=14.19", "affected": "14", "component": "core server", "mentions": [{"build": "14.19", "version": "14.19", "title": "\u52a0\u5f3a\u89c4\u5212\u5668\u4f30\u7b97\u51fd\u6570\u4e2d\u7684\u5b89\u5168\u68c0\u67e5", "url": "/docs/compare/?release=14.19#14.19-37596904cdde57bc"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-4207", "title": "PostgreSQL GB18030 encoding validation can read one byte past end of allocation for text that fails validation", "url": "https://www.postgresql.org/support/security/CVE-2025-4207/", "score": 5.9, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "description": "Buffer over-read in PostgreSQL GB18030 encoding validation allows a database input provider to achieve temporary denial of service on platforms where a 1-byte over-read can elicit process termination. This affects the database server and also libpq. Versions before PostgreSQL 17.5, 16.9, 15.13, 14.18, and 13.21 are affected.", "description_language": "en", "fixed": "14.18", "fixed_url": "/docs/compare/?release=14.18", "affected": "14", "component": "core server", "mentions": [{"build": "14.18", "version": "14.18", "title": "\u907f\u514d\u5728\u68c0\u67e5\u58f0\u79f0\u4e3a GB18030 \u7f16\u7801\u7684\u65e0\u6548\u7f16\u7801\u5b57\u7b26\u4e32\u65f6\u53d1\u751f\u5355\u5b57\u8282\u7f13\u51b2\u533a\u8d8a\u754c\u8bfb\u53d6", "url": "/docs/compare/?release=14.18#14.18-e7c0d482f98a0ba1"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-12818", "title": "PostgreSQL libpq undersizes allocations, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2025-12818/", "score": 5.9, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "description": "Integer wraparound in multiple PostgreSQL libpq client library functions allows an application input provider or network peer to cause libpq to undersize an allocation and write out-of-bounds by hundreds of megabytes. This results in a segmentation fault for the application using libpq. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "description_language": "en", "fixed": "14.20", "fixed_url": "/docs/compare/?release=14.20", "affected": "14", "component": "core server", "mentions": [{"build": "14.20", "version": "14.20", "title": "\u907f\u514d libpq \u4e2d\u5206\u914d\u5927\u5c0f\u8ba1\u7b97\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=14.20#14.20-e2a95ddb7200c878"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-12817", "title": "PostgreSQL CREATE STATISTICS does not check for schema CREATE privilege", "url": "https://www.postgresql.org/support/security/CVE-2025-12817/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L", "description": "Missing authorization in PostgreSQL CREATE STATISTICS command allows a table owner to achieve denial of service against other CREATE STATISTICS users by creating in any schema. A later CREATE STATISTICS for the same name, from a user having the CREATE privilege, would then fail. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "description_language": "en", "fixed": "14.20", "fixed_url": "/docs/compare/?release=14.20", "affected": "14", "component": "core server", "mentions": [{"build": "14.20", "version": "14.20", "title": "\u68c0\u67e5 CREATE STATISTICS \u4e2d\u6a21\u5f0f\u7684 CREATE \u6743\u9650", "url": "/docs/compare/?release=14.20#14.20-1acfdd0cd4bbd28d"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-1094", "title": "PostgreSQL quoting APIs miss neutralizing quoting syntax in text that fails encoding validation", "url": "https://www.postgresql.org/support/security/CVE-2025-1094/", "score": 8.1, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "description": "Improper neutralization of quoting syntax in PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() allows a database input provider to achieve SQL injection in certain usage patterns. Specifically, SQL injection requires the application to use the function result to construct input to psql, the PostgreSQL interactive terminal. Similarly, improper neutralization of quoting syntax in PostgreSQL command line utility programs allows a source of command line arguments to achieve SQL injection when client_encoding is BIG5 and server_encoding is one of EUC_TW or MULE_INTERNAL. Versions before PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 are affected.", "description_language": "en", "fixed": "14.16", "fixed_url": "/docs/compare/?release=14.16", "affected": "14", "component": "core server", "mentions": [{"build": "14.17", "version": "14.17", "title": "\u6539\u8fdb libpq \u5f15\u7528\u51fd\u6570\u7684\u884c\u4e3a", "url": "/docs/compare/?release=14.17#14.17-5608e94c3b2dd6d1"}, {"build": "14.16", "version": "14.16", "title": "\u52a0\u5f3a PQescapeString \u53ca\u76f8\u5173\u51fd\u6570\u5bf9\u65e0\u6548\u7f16\u7801\u8f93\u5165\u5b57\u7b26\u4e32\u7684\u9632\u62a4", "url": "/docs/compare/?release=14.16#14.16-84a4341a43ed7fd0"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-7348", "title": "PostgreSQL relation replacement during pg_dump executes arbitrary SQL", "url": "https://www.postgresql.org/support/security/CVE-2024-7348/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Time-of-check Time-of-use (TOCTOU) race condition in pg_dump in PostgreSQL allows an object creator to execute arbitrary SQL functions as the user running pg_dump, which is often a superuser. The attack involves replacing another relation type with a view or foreign table. The attack requires waiting for pg_dump to start, but winning the race condition is trivial if the attacker retains an open transaction. Versions before PostgreSQL 16.4, 15.8, 14.13, 13.16, and 12.20 are affected.\n\nThe PostgreSQL project thanks Noah Misch for reporting this problem.", "description_language": "en", "fixed": "14.13", "fixed_url": "/docs/compare/?release=14.13", "affected": "14", "component": "core server", "mentions": [{"build": "14.13", "version": "14.13", "title": "\u9632\u6b62\u5728 pg_dump \u671f\u95f4\u6267\u884c\u672a\u7ecf\u6388\u6743\u7684\u4ee3\u7801", "url": "/docs/compare/?release=14.13#14.13-79afc7e6590473c8"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-4317", "title": "Restrict visibility of \"pg_stats_ext\" and \"pg_stats_ext_exprs\" entries to the table owner", "url": "https://www.postgresql.org/support/security/CVE-2024-4317/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Missing authorization in PostgreSQL built-in views pg_stats_ext and pg_stats_ext_exprs allows an unprivileged database user to read most common values and other statistics from CREATE STATISTICS commands of other users. The most common values may reveal column values the eavesdropper could not otherwise read or results of functions they cannot execute. Installing an unaffected version only fixes fresh PostgreSQL installations, namely those that are created with the initdb utility after installing that version. Current PostgreSQL installations will remain vulnerable until they follow the instructions in the release notes, which are provided as a convenience in the below section. Within major versions 14-16, minor versions before PostgreSQL 16.3, 15.7, and 14.12 are affected. Versions before PostgreSQL 14 are unaffected.\n\nThis fix only fixes fresh PostgreSQL installations, namely those that are created with the initdb utility after this fix is applied. If you have a current PostgreSQL installation and are concerned about this issue, please use the following remediation steps to fix the issue:\n\nFrom the above URLs, you can click the URL that says \"raw\" to download a version that you can copy and paste.\n\nBe sure to use the script appropriate to your PostgreSQL major version. If you do not see this file, either your version is not vulnerable (only PostgreSQL 14, 15, and 16 are affected) or your minor version is too old to have the fix.\n\n\\i /usr/share/postgresql/fix-CVE-2024-4317.sql\n\nALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;\n\nAfter executing the fix-CVE-2024-4317.sql script in template0 and template1 , you should revoke the ability for template0 to accept connections. You can do this with the following command:\n\nALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;\n\nThe PostgreSQL project thanks Lukas Fittl for reporting this problem.", "description_language": "en", "fixed": "14.12", "fixed_url": "/docs/compare/?release=14.12", "affected": "14", "component": "core server", "mentions": [{"build": "14.12", "version": "14.12", "title": "\u5c06 pg_stats_ext \u548c pg_stats_ext_exprs \u6761\u76ee\u7684\u53ef\u89c1\u6027\u9650\u5236\u4e3a\u8868\u6240\u6709\u8005", "url": "/docs/compare/?release=14.12#14.12-8bc43ac4b7f05ccd"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-10979", "title": "PostgreSQL PL/Perl environment variable changes execute arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2024-10979/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Incorrect control of environment variables in PostgreSQL PL/Perl allows an unprivileged database user to change sensitive process environment variables (e.g. PATH ). That often suffices to enable arbitrary code execution, even if the attacker lacks a database server operating system user. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Coby Abrams for reporting this problem.", "description_language": "en", "fixed": "14.14", "fixed_url": "/docs/compare/?release=14.14", "affected": "14", "component": "core server", "mentions": [{"build": "14.14", "version": "14.14", "title": "\u9632\u6b62\u53d7\u4fe1\u4efb\u7684 PL/Perl \u4ee3\u7801\u66f4\u6539\u73af\u5883\u53d8\u91cf", "url": "/docs/compare/?release=14.14#14.14-cc2f3258f095a62a"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-10978", "title": "PostgreSQL SET ROLE, SET SESSION AUTHORIZATION reset to wrong user ID", "url": "https://www.postgresql.org/support/security/CVE-2024-10978/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Incorrect privilege assignment in PostgreSQL allows a less-privileged application user to view or change different rows from those intended. An attack requires the application to use SET ROLE , SET SESSION AUTHORIZATION , or an equivalent feature. The problem arises when an application query uses parameters from the attacker or conveys query results to the attacker. If that query reacts to current_setting('role') or the current user ID, it may modify or return data as though the session had not used SET ROLE or SET SESSION AUTHORIZATION . The attacker does not control which incorrect user ID applies. Query text from less-privileged sources is not a concern here, because SET ROLE and SET SESSION AUTHORIZATION are not sandboxes for unvetted queries. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "description_language": "en", "fixed": "14.14", "fixed_url": "/docs/compare/?release=14.14", "affected": "14", "component": "core server", "mentions": [{"build": "14.15", "version": "14.15", "title": "\u6062\u590d ALTER {ROLE|DATABASE} SET role \u7684\u529f\u80fd", "url": "/docs/compare/?release=14.15#14.15-422cf39c7394aada"}, {"build": "14.14", "version": "14.14", "title": "\u4fee\u590d SET SESSION AUTHORIZATION \u4e0e SET ROLE \u4e4b\u95f4\u610f\u5916\u7684\u4ea4\u4e92", "url": "/docs/compare/?release=14.14#14.14-4b483cb165d6e486"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-10977", "title": "PostgreSQL libpq retains an error message from man-in-the-middle", "url": "https://www.postgresql.org/support/security/CVE-2024-10977/", "score": 3.1, "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N", "description": "Client use of server error message in PostgreSQL allows a server not trusted under current SSL or GSS settings to furnish arbitrary non-NUL bytes to the libpq application. For example, a man-in-the-middle attacker could send a long error message that a human or screen-scraper user of psql mistakes for valid query results. This is probably not a concern for clients where the user interface unambiguously indicates the boundary between one error message and other text. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "description_language": "en", "fixed": "14.14", "fixed_url": "/docs/compare/?release=14.14", "affected": "14", "component": "client", "mentions": [{"build": "14.14", "version": "14.14", "title": "\u4f7f libpq \u4e22\u5f03\u5728 SSL \u6216 GSS \u534f\u8bae\u534f\u5546\u671f\u95f4\u6536\u5230\u7684\u9519\u8bef\u6d88\u606f", "url": "/docs/compare/?release=14.14#14.14-8e4bd7f9b172bf1c"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-10976", "title": "PostgreSQL row security below e.g. subqueries disregards user ID changes", "url": "https://www.postgresql.org/support/security/CVE-2024-10976/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Incomplete tracking in PostgreSQL of tables with row security allows a reused query to view or change different rows from those intended. CVE-2023-2455 and CVE-2016-2193 fixed most interaction between row security and user ID changes. They missed cases where a subquery, WITH query, security invoker view, or SQL-language function references a table with a row-level security policy. This has the same consequences as the two earlier CVEs. That is to say, it leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles. This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLEs.\n\nApplying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications. This affects only databases that have used CREATE POLICY to define a row security policy. An attacker must tailor an attack to a particular application's pattern of query plan reuse, user ID changes, and role-specific row security policies. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.", "description_language": "en", "fixed": "14.14", "fixed_url": "/docs/compare/?release=14.14", "affected": "14", "component": "core server", "mentions": [{"build": "14.14", "version": "14.14", "title": "\u786e\u4fdd\u5f53 RLS \u5e94\u7528\u4e8e\u975e\u9876\u7ea7\u8868\u5f15\u7528\u65f6\uff0c\u7f13\u5b58\u7684\u6267\u884c\u8ba1\u5212\u88ab\u6807\u8bb0\u4e3a\u4f9d\u8d56\u4e8e\u8c03\u7528\u89d2\u8272", "url": "/docs/compare/?release=14.14#14.14-ef2b342695c66732"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-0985", "title": "PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL", "url": "https://www.postgresql.org/support/security/CVE-2024-0985/", "score": 8.0, "vector": "AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H", "description": "UPDATE (June 19, 2024) : Added v16 as impacted. Updated description to clarify the attack vector.\n\nLate privilege drop in REFRESH MATERIALIZED VIEW CONCURRENTLY in PostgreSQL allows an object creator to execute arbitrary SQL functions as the command issuer. The command intends to run SQL functions as the owner of the materialized view, enabling safe refresh of untrusted materialized views. The victim is a superuser or member of one of the attacker's roles. The attack requires luring the victim into running REFRESH MATERIALIZED VIEW CONCURRENTLY on the attacker's materialized view.", "description_language": "en", "fixed": "14.11", "fixed_url": "/docs/compare/?release=14.11", "affected": "14", "component": "core server", "mentions": [{"build": "14.11", "version": "14.11", "title": "\u52a0\u5f3a REFRESH MATERIALIZED VIEW CONCURRENTLY \u4e2d\u7684\u5b89\u5168\u9650\u5236", "url": "/docs/compare/?release=14.11#14.11-3d7f07659b2a3553"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-5870", "title": "Role \"pg_signal_backend\" can signal certain superuser processes", "url": "https://www.postgresql.org/support/security/CVE-2023-5870/", "score": 2.2, "vector": "AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L", "description": "Documentation says the pg_signal_backend role cannot signal \"a backend owned by a superuser\". On the contrary, it can signal background workers, including the logical replication launcher. It can signal autovacuum workers and the autovacuum launcher. Signaling autovacuum workers and those two launchers provides no meaningful exploit, so exploiting this vulnerability requires a non-core extension with a less-resilient background worker. For example, a non-core background worker that does not auto-restart would experience a denial of service with respect to that particular background worker.\n\nThe PostgreSQL project thanks Hemanth Sandrana and Mahendrakar Srinivasarao for reporting this problem.", "description_language": "en", "fixed": "14.10", "fixed_url": "/docs/compare/?release=14.10", "affected": "14", "component": "core server", "mentions": [{"build": "14.10", "version": "14.10", "title": "\u9632\u6b62 pg_signal_backend \u89d2\u8272\u5411\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u548c\u81ea\u52a8\u6e05\u7406\u8fdb\u7a0b\u53d1\u9001\u4fe1\u53f7", "url": "/docs/compare/?release=14.10#14.10-ea5079e94edabc74"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-5869", "title": "Buffer overrun from integer overflow in array modification", "url": "https://www.postgresql.org/support/security/CVE-2023-5869/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "While modifying certain SQL array values, missing overflow checks let authenticated database users write arbitrary bytes to a memory area that facilitates arbitrary code execution. Missing overflow checks also let authenticated database users read a wide area of server memory. The CVE-2021-32027 fix covered some attacks of this description, but it missed others.\n\nThe PostgreSQL project thanks Pedro Gallegos for reporting this problem.", "description_language": "en", "fixed": "14.10", "fixed_url": "/docs/compare/?release=14.10", "affected": "14", "component": "core server", "mentions": [{"build": "14.13", "version": "14.13", "title": "\u68c0\u6d4b\u8ba1\u7b97\u65b0\u6570\u7ec4\u7ef4\u5ea6\u65f6\u7684\u53e6\u4e00\u4e2a\u6574\u6570\u6ea2\u51fa\u60c5\u51b5", "url": "/docs/compare/?release=14.13#14.13-13f6c9d61147cac5"}, {"build": "14.10", "version": "14.10", "title": "\u68c0\u6d4b\u8ba1\u7b97\u65b0\u6570\u7ec4\u7ef4\u5ea6\u65f6\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=14.10#14.10-581b45cad797a532"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-5868", "title": "Memory disclosure in aggregate function calls", "url": "https://www.postgresql.org/support/security/CVE-2023-5868/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Certain aggregate function calls receiving \"unknown\"-type arguments could disclose bytes of server memory from the end of the \"unknown\"-type value to the next zero byte. One typically gets an \"unknown\"-type value via a string literal having no type designation. We have not confirmed or ruled out viability of attacks that arrange for presence of notable, confidential information in disclosed bytes.\n\nThe PostgreSQL project thanks Jingzhou Fu for reporting this problem.", "description_language": "en", "fixed": "14.10", "fixed_url": "/docs/compare/?release=14.10", "affected": "14", "component": "core server", "mentions": [{"build": "14.10", "version": "14.10", "title": "\u4fee\u590d DISTINCT \"any\" \u805a\u5408\u51fd\u6570\u4e2d\u5bf9\u672a\u77e5\u7c7b\u578b\u53c2\u6570\u7684\u5904\u7406", "url": "/docs/compare/?release=14.10#14.10-02faee33a889dd5e"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-39417", "title": "Extension script @substitutions@ within quoting allow SQL injection", "url": "https://www.postgresql.org/support/security/CVE-2023-39417/", "score": 7.5, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "An extension script is vulnerable if it uses @extowner@ , @extschema@ , or @extschema:...@ inside a quoting construct (dollar quoting, '' , or \"\" ). No bundled extension is vulnerable. Vulnerable uses do appear in a documentation example and in non-bundled extensions. Hence, the attack prerequisite is an administrator having installed files of a vulnerable, trusted, non-bundled extension. Subject to that prerequisite, this enables an attacker having database-level CREATE privilege to execute arbitrary code as the bootstrap superuser. PostgreSQL will block this attack in the core server, so there's no need to modify individual extensions.\n\nThe PostgreSQL project thanks Micah Gates, Valerie Woolard, Tim Carey-Smith, and Christoph Berg for reporting this problem.", "description_language": "en", "fixed": "14.9", "fixed_url": "/docs/compare/?release=14.9", "affected": "14", "component": "core server", "mentions": [{"build": "14.9", "version": "14.9", "title": "\u5982\u679c\u6a21\u5f0f\u6216\u6240\u6709\u8005\u540d\u79f0\u5305\u542b\u5f15\u53f7\u3001\u53cd\u659c\u6760\u6216\u7f8e\u5143\u7b26\u53f7\uff0c\u5219\u4e0d\u5141\u8bb8\u5c06\u5176\u66ff\u6362\u5230\u6269\u5c55\u811a\u672c\u4e2d", "url": "/docs/compare/?release=14.9#14.9-478a82e9fe36e0eb"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-2455", "title": "Row security policies disregard user ID changes after inlining", "url": "https://www.postgresql.org/support/security/CVE-2023-2455/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "While CVE-2016-2193 fixed most interaction between row security and user ID changes, it missed a scenario involving function inlining. This leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles. This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLE s. Applying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications. This affects only databases that have used CREATE POLICY to define a row security policy.\n\nThe PostgreSQL project thanks Wolfgang Walther for reporting this problem.", "description_language": "en", "fixed": "14.8", "fixed_url": "/docs/compare/?release=14.8", "affected": "14", "component": "core server", "mentions": [{"build": "14.8", "version": "14.8", "title": "\u5728\u5185\u8054\u96c6\u5408\u8fd4\u56de\u51fd\u6570\u540e\u6b63\u786e\u6267\u884c\u884c\u7ea7\u5b89\u5168\u7b56\u7565", "url": "/docs/compare/?release=14.8#14.8-59120cdbb1e5d2b1"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-2454", "title": "CREATE SCHEMA ... schema_element defeats protective search_path changes", "url": "https://www.postgresql.org/support/security/CVE-2023-2454/", "score": 7.2, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "description": "This enabled an attacker having database-level CREATE privilege to execute arbitrary code as the bootstrap superuser. Database owners have that right by default, and explicit grants may extend it to other users.\n\nThe PostgreSQL project thanks Alexander Lakhin for reporting this problem.", "description_language": "en", "fixed": "14.8", "fixed_url": "/docs/compare/?release=14.8", "affected": "14", "component": "core server", "mentions": [{"build": "14.8", "version": "14.8", "title": "\u9632\u6b62 CREATE SCHEMA \u7ed5\u8fc7 search_path \u7684\u66f4\u6539", "url": "/docs/compare/?release=14.8#14.8-64bbc83a26f3e0e4"}], "evidence": "branch-matrix"}, {"id": "CVE-2022-41862", "title": "Client memory disclosure when connecting, with Kerberos, to modified server", "url": "https://www.postgresql.org/support/security/CVE-2022-41862/", "score": 3.7, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N", "description": "A modified, unauthenticated server can send an unterminated string during the establishment of Kerberos transport encryption. When a libpq client application has a Kerberos credential cache and doesn't explicitly disable option gssencmode , a server can cause libpq to over-read and report an error message containing uninitialized bytes from and following its receive buffer. If libpq's caller somehow makes that message accessible to the attacker, this achieves a disclosure of the over-read bytes. We have not confirmed or ruled out viability of attacks that arrange for a crash or for presence of notable, confidential information in disclosed bytes.\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "description_language": "en", "fixed": "14.7", "fixed_url": "/docs/compare/?release=14.7", "affected": "14", "component": "client", "mentions": [{"build": "14.7", "version": "14.7", "title": "libpq \u5728 GSSAPI \u4f20\u8f93\u52a0\u5bc6\u521d\u59cb\u5316\u5931\u8d25\u540e\u53ef\u80fd\u6cc4\u6f0f\u5185\u5b58\u5185\u5bb9", "url": "/docs/compare/?release=14.7#14.7-2dbd2730debe7f61"}], "evidence": "branch-matrix"}, {"id": "CVE-2022-2625", "title": "Extension scripts replace objects not belonging to the extension", "url": "https://www.postgresql.org/support/security/CVE-2022-2625/", "score": 7.1, "vector": "AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "description": "Some extensions use CREATE OR REPLACE or CREATE IF NOT EXISTS commands. Some don't adhere to the documented rule to target only objects known to be extension members already. An attack requires permission to create non-temporary objects in at least one schema, ability to lure or wait for an administrator to create or update an affected extension in that schema, and ability to lure or wait for a victim to use the object targeted in CREATE OR REPLACE or CREATE IF NOT EXISTS . Given all three prerequisites, the attacker can run arbitrary code as the victim role, which may be a superuser. Known-affected extensions include both PostgreSQL-bundled and non-bundled extensions. PostgreSQL is blocking this attack in the core server, so there's no need to modify individual extensions.\n\nThe PostgreSQL project thanks Sven Klemm for reporting this problem.", "description_language": "en", "fixed": "14.5", "fixed_url": "/docs/compare/?release=14.5", "affected": "14", "component": "core server", "mentions": [{"build": "14.5", "version": "14.5", "title": "\u4e0d\u5141\u8bb8\u6269\u5c55\u811a\u672c\u66ff\u6362\u4e0d\u5c5e\u4e8e\u8be5\u6269\u5c55\u7684\u5df2\u6709\u5bf9\u8c61", "url": "/docs/compare/?release=14.5#14.5-f18192a896faf696"}], "evidence": "branch-matrix"}, {"id": "CVE-2022-1552", "title": "Autovacuum, REINDEX, and others omit \"security restricted operation\" sandbox", "url": "https://www.postgresql.org/support/security/CVE-2022-1552/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Autovacuum, REINDEX , CREATE INDEX , REFRESH MATERIALIZED VIEW , CLUSTER , and pg_amcheck made incomplete efforts to operate safely when a privileged user is maintaining another user's objects. Those commands activated relevant protections too late or not at all. An attacker having permission to create non-temp objects in at least one schema could execute arbitrary SQL functions under a superuser identity.\n\nWhile promptly updating PostgreSQL is the best remediation for most users, a user unable to do that can work around the vulnerability by disabling autovacuum, not manually running the above commands, and not restoring from output of the pg_dump command. Performance may degrade quickly under this workaround. VACUUM is safe, and all commands are fine when a trusted user owns the target object.\n\nThe PostgreSQL project thanks Alexander Lakhin for reporting this problem.", "description_language": "en", "fixed": "14.3", "fixed_url": "/docs/compare/?release=14.3", "affected": "14", "component": "core server", "mentions": [{"build": "14.5", "version": "14.5", "title": "\u4fee\u590d CREATE INDEX \u4e2d\u7684\u6743\u9650\u68c0\u67e5", "url": "/docs/compare/?release=14.5#14.5-5abd146c9f585b45"}, {"build": "14.3", "version": "14.3", "title": "\u5c06\u66f4\u591a\u64cd\u4f5c\u9650\u5236\u5728\u201c\u5b89\u5168\u53d7\u9650\u64cd\u4f5c\u201d\u6c99\u7bb1\u5185", "url": "/docs/compare/?release=14.3#14.3-a23393de94e369b8"}], "evidence": "branch-matrix"}, {"id": "CVE-2021-23222", "title": "libpq processes unencrypted bytes from man-in-the-middle", "url": "https://www.postgresql.org/support/security/CVE-2021-23222/", "score": 3.7, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N", "description": "A man-in-the-middle attacker can inject false responses to the client's first few queries, despite the use of SSL certificate verification and encryption.\n\nIf more preconditions hold, the attacker can exfiltrate the client's password or other confidential data that might be transmitted early in a session. The attacker must have a way to trick the client's intended server into making the confidential data accessible to the attacker. A known implementation having that property is a PostgreSQL configuration vulnerable to CVE-2021-23214 . As with any exploitation of CVE-2021-23214 , the server must be using trust authentication with a clientcert requirement or using cert authentication. To disclose a password, the client must be in possession of a password, which is atypical when using an authentication configuration vulnerable to CVE-2021-23214 . The attacker must have some other way to access the server to retrieve the exfiltrated data (a valid, unprivileged login account would be sufficient).\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "description_language": "en", "fixed": "14.1", "fixed_url": "/docs/compare/?release=14.1", "affected": "14", "component": "client", "mentions": [{"build": "14.1", "version": "14.1", "title": "\u4f7f libpq \u5728 SSL \u6216 GSS \u52a0\u5bc6\u63e1\u624b\u540e\u62d2\u7edd\u591a\u4f59\u7684\u6570\u636e", "url": "/docs/compare/?release=14.1#14.1-2148a2c0309fac1a"}], "evidence": "branch-matrix"}, {"id": "CVE-2021-23214", "title": "Server processes unencrypted bytes from man-in-the-middle", "url": "https://www.postgresql.org/support/security/CVE-2021-23214/", "score": 8.1, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "description": "When the server is configured to use trust authentication with a clientcert requirement or to use cert authentication, a man-in-the-middle attacker can inject arbitrary SQL queries when a connection is first established, despite the use of SSL certificate verification and encryption. This is similar to CVE-2011-0411 (different product).\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "description_language": "en", "fixed": "14.1", "fixed_url": "/docs/compare/?release=14.1", "affected": "14", "component": "core server", "mentions": [{"build": "14.1", "version": "14.1", "title": "\u4f7f\u670d\u52a1\u5668\u5728 SSL \u6216 GSS \u52a0\u5bc6\u63e1\u624b\u540e\u62d2\u7edd\u591a\u4f59\u7684\u6570\u636e", "url": "/docs/compare/?release=14.1#14.1-1856c71e2cf03259"}, {"build": "14.1", "version": "14.1", "title": "\u4f7f libpq \u5728 SSL \u6216 GSS \u52a0\u5bc6\u63e1\u624b\u540e\u62d2\u7edd\u591a\u4f59\u7684\u6570\u636e", "url": "/docs/compare/?release=14.1#14.1-2148a2c0309fac1a"}], "evidence": "branch-matrix"}, {"id": "CVE-2017-7484", "title": "selectivity estimators bypass SELECT privilege checks", "url": "https://www.postgresql.org/support/security/CVE-2017-7484/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "core server", "mentions": [{"build": "14.19", "version": "14.19", "title": "\u52a0\u5f3a\u89c4\u5212\u5668\u4f30\u7b97\u51fd\u6570\u4e2d\u7684\u5b89\u5168\u68c0\u67e5", "url": "/docs/compare/?release=14.19#14.19-37596904cdde57bc"}], "evidence": "release-note-mention"}, {"id": "CVE-2012-0868", "title": "Line breaks in object names can be exploited to execute arbitrary SQL when reloading a pg_dump file.", "url": "https://www.postgresql.org/support/security/CVE-2012-0868/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "", "mentions": [{"build": "14.19", "version": "14.19", "title": "\u5728 pg_dump \u8f93\u51fa\u7684\u6ce8\u91ca\u4e2d\uff0c\u5c06\u540d\u79f0\u4e2d\u5305\u542b\u7684\u6362\u884c\u7b26\u8f6c\u6362\u4e3a\u7a7a\u683c", "url": "/docs/compare/?release=14.19#14.19-fb4152603ed81a9f"}], "evidence": "release-note-mention"}], "security_covered": true, "release_as_of": "2026-09-26", "security_as_of": "2026-09-26", "policy_url": "https://www.postgresql.org/support/versioning/", "pdfs": [{"label": "A4 PDF", "bytes": 16409678, "url": "/files/documentation/pdf/14/postgresql-14-A4.pdf"}, {"label": "US Letter PDF", "bytes": 16394936, "url": "/files/documentation/pdf/14/postgresql-14-US.pdf"}], "query": "", "selected_kind": "", "branches": [{"branch": "20", "url": "/wiki/versions/20/", "state": "devel", "state_label": "\u5f00\u53d1\u7248", "tag": "\u5f00\u53d1\u7248", "build": "20devel", "first_release": "", "end_of_life": "", "latest_release_date": "", "manual_url": "/docs/devel/index.html", "manual_slug": "devel", "manual_pages": 1162, "manual_loaded_at": "2026-09-28T13:10:20.822721", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "19", "url": "/wiki/versions/19/", "state": "beta", "state_label": "\u9884\u89c8\u7248", "tag": "beta 4", "build": "19beta4", "first_release": "", "end_of_life": "", "latest_release_date": "", "manual_url": "/docs/19/index.html", "manual_slug": "19", "manual_pages": 1160, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 1, "entry_count": 198, "initial": {"version": "19.0", "build": "19beta4", "status": "preview", "date": "", "source_as_of": "2026-09-14", "url": "/docs/compare/?release=19.0", "manual_url": "/docs/19/release-19.html", "source_url": "/docs/release/19.0/", "entry_count": 198, "categories": {"compatibility": 17, "feature": 161, "performance": 20}, "compatibility_count": 17, "cves": [], "cve_count": 0}, "latest": {"version": "19.0", "build": "19beta4", "status": "preview", "date": "", "source_as_of": "2026-09-14", "url": "/docs/compare/?release=19.0", "manual_url": "/docs/19/release-19.html", "source_url": "/docs/release/19.0/", "entry_count": 198, "categories": {"compatibility": 17, "feature": 161, "performance": 20}, "compatibility_count": 17, "cves": [], "cve_count": 0}, "comparison_url": ""}, {"branch": "18", "url": "/wiki/versions/18/", "state": "current", "state_label": "\u5f53\u524d\u7a33\u5b9a\u7248", "tag": "\u5f53\u524d", "build": "18.6", "first_release": "2025-09-25", "end_of_life": "2030-11-14", "latest_release_date": "2026-08-13", "manual_url": "/docs/18/index.html", "manual_slug": "18", "manual_pages": 1151, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 6, "entry_count": 561, "initial": {"version": "18.0", "build": "18.0", "status": "stable", "date": "2025-09-25", "source_as_of": "", "url": "/docs/compare/?release=18.0", "manual_url": "/docs/18/release-18.html", "source_url": "/docs/release/18.0/", "entry_count": 210, "categories": {"compatibility": 11, "feature": 188, "performance": 10, "bugfix": 1}, "compatibility_count": 11, "cves": [], "cve_count": 0}, "latest": {"version": "18.6", "build": "18.6", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=18.6", "manual_url": "/docs/18/release-18-6.html", "source_url": "/docs/release/18.6/", "entry_count": 140, "categories": {"security": 29, "improvement": 46, "bugfix": 65}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, "comparison_url": "/docs/compare/?from=18.0&to=18.6"}, {"branch": "17", "url": "/wiki/versions/17/", "state": "supported", "state_label": "\u652f\u6301\u4e2d", "tag": "", "build": "17.11", "first_release": "2024-09-26", "end_of_life": "2029-11-08", "latest_release_date": "2026-08-13", "manual_url": "/docs/17/index.html", "manual_slug": "17", "manual_pages": 1146, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 12, "entry_count": 727, "initial": {"version": "17.0", "build": "17.0", "status": "stable", "date": "2024-09-26", "source_as_of": "", "url": "/docs/compare/?release=17.0", "manual_url": "/docs/17/release-17.html", "source_url": "/docs/release/17.0/", "entry_count": 182, "categories": {"compatibility": 17, "feature": 154, "bugfix": 2, "performance": 9}, "compatibility_count": 17, "cves": [], "cve_count": 0}, "latest": {"version": "17.11", "build": "17.11", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=17.11", "manual_url": "/docs/17/release-17-11.html", "source_url": "/docs/release/17.11/", "entry_count": 109, "categories": {"security": 29, "bugfix": 49, "improvement": 31}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, "comparison_url": "/docs/compare/?from=17.0&to=17.11"}, {"branch": "16", "url": "/wiki/versions/16/", "state": "supported", "state_label": "\u652f\u6301\u4e2d", "tag": "", "build": "16.15", "first_release": "2023-09-14", "end_of_life": "2028-11-09", "latest_release_date": "2026-08-13", "manual_url": "/docs/16/index.html", "manual_slug": "16", "manual_pages": 1172, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 16, "entry_count": 930, "initial": {"version": "16.0", "build": "16.0", "status": "stable", "date": "2023-09-14", "source_as_of": "", "url": "/docs/compare/?release=16.0", "manual_url": "/docs/16/release-16.html", "source_url": "/docs/release/16.0/", "entry_count": 206, "categories": {"compatibility": 13, "feature": 175, "performance": 15, "bugfix": 3}, "compatibility_count": 13, "cves": [], "cve_count": 0}, "latest": {"version": "16.15", "build": "16.15", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=16.15", "manual_url": "/docs/16/release-16-15.html", "source_url": "/docs/release/16.15/", "entry_count": 98, "categories": {"security": 29, "bugfix": 42, "improvement": 27}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, "comparison_url": "/docs/compare/?from=16.0&to=16.15"}, {"branch": "15", "url": "/wiki/versions/15/", "state": "supported", "state_label": "\u652f\u6301\u4e2d", "tag": "", "build": "15.19", "first_release": "2022-10-13", "end_of_life": "2027-11-11", "latest_release_date": "2026-08-13", "manual_url": "/docs/15/index.html", "manual_slug": "15", "manual_pages": 1092, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 20, "entry_count": 1046, "initial": {"version": "15.0", "build": "15.0", "status": "stable", "date": "2022-10-13", "source_as_of": "", "url": "/docs/compare/?release=15.0", "manual_url": "/docs/15/release-15.html", "source_url": "/docs/release/15.0/", "entry_count": 184, "categories": {"security": 1, "compatibility": 30, "feature": 135, "bugfix": 3, "performance": 15}, "compatibility_count": 31, "cves": ["CVE-2018-1058"], "cve_count": 1}, "latest": {"version": "15.19", "build": "15.19", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=15.19", "manual_url": "/docs/15/release-15-19.html", "source_url": "/docs/release/15.19/", "entry_count": 90, "categories": {"security": 29, "bugfix": 36, "improvement": 25}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, "comparison_url": "/docs/compare/?from=15.0&to=15.19"}, {"branch": "14", "url": "/wiki/versions/14/", "state": "supported", "state_label": "\u652f\u6301\u4e2d", "tag": "", "build": "14.24", "first_release": "2021-09-30", "end_of_life": "2026-11-12", "latest_release_date": "2026-08-13", "manual_url": "/docs/14/index.html", "manual_slug": "14", "manual_pages": 1084, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 25, "entry_count": 1206, "initial": {"version": "14.0", "build": "14.0", "status": "stable", "date": "2021-09-30", "source_as_of": "", "url": "/docs/compare/?release=14.0", "manual_url": "/docs/14/release-14.html", "source_url": "/docs/release/14.0/", "entry_count": 220, "categories": {"compatibility": 27, "feature": 178, "performance": 13, "bugfix": 2}, "compatibility_count": 27, "cves": [], "cve_count": 0}, "latest": {"version": "14.24", "build": "14.24", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=14.24", "manual_url": "/docs/14/release-14-24.html", "source_url": "/docs/release/14.24/", "entry_count": 83, "categories": {"security": 29, "bugfix": 31, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, "comparison_url": "/docs/compare/?from=14.0&to=14.24"}, {"branch": "13", "url": "/wiki/versions/13/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "13.23", "first_release": "2020-09-24", "end_of_life": "2025-11-13", "latest_release_date": "2025-11-13", "manual_url": "/docs/13/index.html", "manual_slug": "13", "manual_pages": 1065, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 24, "entry_count": 1164, "initial": {"version": "13.0", "build": "13.0", "status": "stable", "date": "2020-09-24", "source_as_of": "", "url": "/docs/compare/?release=13.0", "manual_url": "/docs/13/release-13.html", "source_url": "/docs/release/13.0/", "entry_count": 178, "categories": {"compatibility": 15, "feature": 143, "performance": 16, "bugfix": 4}, "compatibility_count": 15, "cves": [], "cve_count": 0}, "latest": {"version": "13.23", "build": "13.23", "status": "stable", "date": "2025-11-13", "source_as_of": "", "url": "/docs/compare/?release=13.23", "manual_url": "/docs/13/release-13-23.html", "source_url": "/docs/release/13.23/", "entry_count": 43, "categories": {"security": 2, "bugfix": 22, "improvement": 19}, "compatibility_count": 0, "cves": ["CVE-2025-12817", "CVE-2025-12818"], "cve_count": 2}, "comparison_url": "/docs/compare/?from=13.0&to=13.23"}, {"branch": "12", "url": "/wiki/versions/12/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "12.22", "first_release": "2019-10-03", "end_of_life": "2024-11-21", "latest_release_date": "2024-11-21", "manual_url": "/docs/12/index.html", "manual_slug": "12", "manual_pages": 1058, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 23, "entry_count": 1181, "initial": {"version": "12.0", "build": "12.0", "status": "stable", "date": "2019-10-03", "source_as_of": "", "url": "/docs/compare/?release=12.0", "manual_url": "/docs/12/release-12.html", "source_url": "/docs/release/12.0/", "entry_count": 180, "categories": {"compatibility": 23, "performance": 14, "feature": 139, "bugfix": 4}, "compatibility_count": 23, "cves": [], "cve_count": 0}, "latest": {"version": "12.22", "build": "12.22", "status": "stable", "date": "2024-11-21", "source_as_of": "", "url": "/docs/compare/?release=12.22", "manual_url": "/docs/12/release-12-22.html", "source_url": "/docs/release/12.22/", "entry_count": 1, "categories": {"security": 1}, "compatibility_count": 0, "cves": ["CVE-2024-10978"], "cve_count": 1}, "comparison_url": "/docs/compare/?from=12.0&to=12.22"}, {"branch": "11", "url": "/wiki/versions/11/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "11.22", "first_release": "2018-10-18", "end_of_life": "2023-11-09", "latest_release_date": "2023-11-09", "manual_url": "/docs/11/index.html", "manual_slug": "11", "manual_pages": 1049, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 23, "entry_count": 1141, "initial": {"version": "11.0", "build": "11.0", "status": "stable", "date": "2018-10-18", "source_as_of": "", "url": "/docs/compare/?release=11.0", "manual_url": "/docs/11/release-11.html", "source_url": "/docs/release/11.0/", "entry_count": 170, "categories": {"compatibility": 20, "feature": 134, "performance": 15, "bugfix": 1}, "compatibility_count": 20, "cves": [], "cve_count": 0}, "latest": {"version": "11.22", "build": "11.22", "status": "stable", "date": "2023-11-09", "source_as_of": "", "url": "/docs/compare/?release=11.22", "manual_url": "/docs/11/release-11-22.html", "source_url": "/docs/release/11.22/", "entry_count": 31, "categories": {"security": 3, "bugfix": 10, "improvement": 18}, "compatibility_count": 0, "cves": ["CVE-2023-5868", "CVE-2023-5869", "CVE-2023-5870"], "cve_count": 3}, "comparison_url": "/docs/compare/?from=11.0&to=11.22"}, {"branch": "10", "url": "/wiki/versions/10/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "10.23", "first_release": "2017-10-05", "end_of_life": "2022-11-10", "latest_release_date": "2022-11-10", "manual_url": "/docs/10/index.html", "manual_slug": "10", "manual_pages": 1011, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 24, "entry_count": 1140, "initial": {"version": "10.0", "build": "10.0", "status": "stable", "date": "2017-10-05", "source_as_of": "", "url": "/docs/compare/?release=10.0", "manual_url": "/docs/10/release-10.html", "source_url": "/docs/release/10.0/", "entry_count": 189, "categories": {"compatibility": 27, "feature": 148, "performance": 12, "bugfix": 2}, "compatibility_count": 27, "cves": [], "cve_count": 0}, "latest": {"version": "10.23", "build": "10.23", "status": "stable", "date": "2022-11-10", "source_as_of": "", "url": "/docs/compare/?release=10.23", "manual_url": "/docs/10/release-10-23.html", "source_url": "/docs/release/10.23/", "entry_count": 29, "categories": {"bugfix": 13, "improvement": 16}, "compatibility_count": 0, "cves": [], "cve_count": 0}, "comparison_url": "/docs/compare/?from=10.0&to=10.23"}, {"branch": "9.6", "url": "/wiki/versions/9.6/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "9.6.24", "first_release": "2016-09-29", "end_of_life": "2021-11-11", "latest_release_date": "2021-11-11", "manual_url": "/docs/9.6/index.html", "manual_slug": "9.6", "manual_pages": 975, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 25, "entry_count": 1105, "initial": {"version": "9.6.0", "build": "9.6.0", "status": "stable", "date": "2016-09-29", "source_as_of": "", "url": "/docs/compare/?release=9.6.0", "manual_url": "/docs/9.6/release-9-6.html", "source_url": "/docs/release/9.6.0/", "entry_count": 214, "categories": {"compatibility": 13, "feature": 169, "performance": 26, "bugfix": 6}, "compatibility_count": 13, "cves": [], "cve_count": 0}, "latest": {"version": "9.6.24", "build": "9.6.24", "status": "stable", "date": "2021-11-11", "source_as_of": "", "url": "/docs/compare/?release=9.6.24", "manual_url": "/docs/9.6/release-9-6-24.html", "source_url": "/docs/release/9.6.24/", "entry_count": 40, "categories": {"security": 2, "bugfix": 18, "improvement": 19, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2021-23214", "CVE-2021-23222"], "cve_count": 2}, "comparison_url": "/docs/compare/?from=9.6.0&to=9.6.24"}, {"branch": "9.5", "url": "/wiki/versions/9.5/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "9.5.25", "first_release": "2016-01-07", "end_of_life": "2021-02-11", "latest_release_date": "2021-02-11", "manual_url": "/docs/9.5/index.html", "manual_slug": "9.5", "manual_pages": 959, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 26, "entry_count": 1026, "initial": {"version": "9.5.0", "build": "9.5.0", "status": "stable", "date": "2016-01-07", "source_as_of": "", "url": "/docs/compare/?release=9.5.0", "manual_url": "/docs/9.5/release-9-5.html", "source_url": "/docs/release/9.5.0/", "entry_count": 193, "categories": {"compatibility": 12, "feature": 163, "performance": 17, "bugfix": 1}, "compatibility_count": 12, "cves": [], "cve_count": 0}, "latest": {"version": "9.5.25", "build": "9.5.25", "status": "stable", "date": "2021-02-11", "source_as_of": "", "url": "/docs/compare/?release=9.5.25", "manual_url": "/docs/9.5/release-9-5-25.html", "source_url": "/docs/release/9.5.25/", "entry_count": 32, "categories": {"bugfix": 15, "improvement": 17}, "compatibility_count": 0, "cves": [], "cve_count": 0}, "comparison_url": "/docs/compare/?from=9.5.0&to=9.5.25"}, {"branch": "9.4", "url": "/wiki/versions/9.4/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "9.4.26", "first_release": "2014-12-18", "end_of_life": "2020-02-13", "latest_release_date": "2020-02-13", "manual_url": "/docs/9.4/index.html", "manual_slug": "9.4", "manual_pages": 935, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 27, "entry_count": 1007, "initial": {"version": "9.4.0", "build": "9.4.0", "status": "stable", "date": "2014-12-18", "source_as_of": "", "url": "/docs/compare/?release=9.4.0", "manual_url": "/docs/9.4/release-9-4.html", "source_url": "/docs/release/9.4.0/", "entry_count": 211, "categories": {"compatibility": 22, "feature": 171, "bugfix": 6, "performance": 12}, "compatibility_count": 22, "cves": [], "cve_count": 0}, "latest": {"version": "9.4.26", "build": "9.4.26", "status": "stable", "date": "2020-02-13", "source_as_of": "", "url": "/docs/compare/?release=9.4.26", "manual_url": "/docs/9.4/release-9-4-26.html", "source_url": "/docs/release/9.4.26/", "entry_count": 28, "categories": {"improvement": 12, "bugfix": 15, "performance": 1}, "compatibility_count": 0, "cves": [], "cve_count": 0}, "comparison_url": "/docs/compare/?from=9.4.0&to=9.4.26"}, {"branch": "9.3", "url": "/wiki/versions/9.3/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "9.3.25", "first_release": "2013-09-09", "end_of_life": "2018-11-08", "latest_release_date": "2018-11-08", "manual_url": "/docs/9.3/index.html", "manual_slug": "9.3", "manual_pages": 1199, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 26, "entry_count": 968, "initial": {"version": "9.3.0", "build": "9.3.0", "status": "stable", "date": "2013-09-09", "source_as_of": "", "url": "/docs/compare/?release=9.3.0", "manual_url": "/docs/9.3/release-9-3.html", "source_url": "/docs/release/9.3.0/", "entry_count": 177, "categories": {"compatibility": 10, "feature": 148, "performance": 13, "bugfix": 6}, "compatibility_count": 10, "cves": [], "cve_count": 0}, "latest": {"version": "9.3.25", "build": "9.3.25", "status": "stable", "date": "2018-11-08", "source_as_of": "", "url": "/docs/compare/?release=9.3.25", "manual_url": "/docs/9.3/release-9-3-25.html", "source_url": "/docs/release/9.3.25/", "entry_count": 35, "categories": {"bugfix": 17, "improvement": 18}, "compatibility_count": 0, "cves": [], "cve_count": 0}, "comparison_url": "/docs/compare/?from=9.3.0&to=9.3.25"}, {"branch": "9.2", "url": "/wiki/versions/9.2/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "9.2.24", "first_release": "2012-09-10", "end_of_life": "2017-11-09", "latest_release_date": "2017-11-09", "manual_url": "/docs/9.2/index.html", "manual_slug": "9.2", "manual_pages": 1153, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 25, "entry_count": 968, "initial": {"version": "9.2.0", "build": "9.2.0", "status": "stable", "date": "2012-09-10", "source_as_of": "", "url": "/docs/compare/?release=9.2.0", "manual_url": "/docs/9.2/release-9-2.html", "source_url": "/docs/release/9.2.0/", "entry_count": 238, "categories": {"compatibility": 23, "feature": 197, "performance": 12, "bugfix": 6}, "compatibility_count": 23, "cves": [], "cve_count": 0}, "latest": {"version": "9.2.24", "build": "9.2.24", "status": "stable", "date": "2017-11-09", "source_as_of": "", "url": "/docs/compare/?release=9.2.24", "manual_url": "/docs/9.2/release-9-2-24.html", "source_url": "/docs/release/9.2.24/", "entry_count": 13, "categories": {"security": 1, "improvement": 7, "bugfix": 5}, "compatibility_count": 0, "cves": ["CVE-2017-12172"], "cve_count": 1}, "comparison_url": "/docs/compare/?from=9.2.0&to=9.2.24"}, {"branch": "9.1", "url": "/wiki/versions/9.1/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "9.1.24", "first_release": "2011-09-12", "end_of_life": "2016-10-27", "latest_release_date": "2016-10-27", "manual_url": "/docs/9.1/index.html", "manual_slug": "9.1", "manual_pages": 1102, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 25, "entry_count": 895, "initial": {"version": "9.1.0", "build": "9.1.0", "status": "stable", "date": "2011-09-12", "source_as_of": "", "url": "/docs/compare/?release=9.1.0", "manual_url": "/docs/9.1/release-9-1.html", "source_url": "/docs/release/9.1.0/", "entry_count": 203, "categories": {"compatibility": 17, "feature": 174, "performance": 3, "bugfix": 9}, "compatibility_count": 17, "cves": [], "cve_count": 0}, "latest": {"version": "9.1.24", "build": "9.1.24", "status": "stable", "date": "2016-10-27", "source_as_of": "", "url": "/docs/compare/?release=9.1.24", "manual_url": "/docs/9.1/release-9-1-24.html", "source_url": "/docs/release/9.1.24/", "entry_count": 13, "categories": {"bugfix": 7, "improvement": 6}, "compatibility_count": 0, "cves": [], "cve_count": 0}, "comparison_url": "/docs/compare/?from=9.1.0&to=9.1.24"}, {"branch": "9.0", "url": "/wiki/versions/9.0/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "9.0.23", "first_release": "2010-09-20", "end_of_life": "2015-10-08", "latest_release_date": "2015-10-08", "manual_url": "/docs/9.0/index.html", "manual_slug": "9.0", "manual_pages": 1024, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 24, "entry_count": 850, "initial": {"version": "9.0.0", "build": "9.0.0", "status": "stable", "date": "2010-09-20", "source_as_of": "", "url": "/docs/compare/?release=9.0.0", "manual_url": "/docs/9.0/release-9-0.html", "source_url": "/docs/release/9.0.0/", "entry_count": 237, "categories": {"compatibility": 20, "feature": 206, "performance": 6, "bugfix": 5}, "compatibility_count": 20, "cves": [], "cve_count": 0}, "latest": {"version": "9.0.23", "build": "9.0.23", "status": "stable", "date": "2015-10-08", "source_as_of": "", "url": "/docs/compare/?release=9.0.23", "manual_url": "/docs/9.0/release-9-0-23.html", "source_url": "/docs/release/9.0.23/", "entry_count": 47, "categories": {"security": 1, "bugfix": 25, "improvement": 21}, "compatibility_count": 0, "cves": ["CVE-2015-5288"], "cve_count": 1}, "comparison_url": "/docs/compare/?from=9.0.0&to=9.0.23"}, {"branch": "8.4", "url": "/wiki/versions/8.4/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "8.4.22", "first_release": "2009-07-01", "end_of_life": "2014-07-24", "latest_release_date": "2014-07-24", "manual_url": "/docs/8.4/index.html", "manual_slug": "8.4", "manual_pages": 968, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "8.3", "url": "/wiki/versions/8.3/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "8.3.23", "first_release": "2008-02-04", "end_of_life": "2013-02-07", "latest_release_date": "2013-02-07", "manual_url": "/docs/8.3/index.html", "manual_slug": "8.3", "manual_pages": 913, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "8.2", "url": "/wiki/versions/8.2/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "8.2.23", "first_release": "2006-12-05", "end_of_life": "2011-12-05", "latest_release_date": "2011-12-05", "manual_url": "/docs/8.2/index.html", "manual_slug": "8.2", "manual_pages": 785, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "8.1", "url": "/wiki/versions/8.1/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "8.1.23", "first_release": "2005-11-08", "end_of_life": "2010-11-08", "latest_release_date": "2010-12-16", "manual_url": "/docs/8.1/index.html", "manual_slug": "8.1", "manual_pages": 730, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "8.0", "url": "/wiki/versions/8.0/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "8.0.26", "first_release": "2005-01-19", "end_of_life": "2010-10-01", "latest_release_date": "2010-10-04", "manual_url": "/docs/8.0/index.html", "manual_slug": "8.0", "manual_pages": 664, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "7.4", "url": "/wiki/versions/7.4/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "7.4.30", "first_release": "2003-11-17", "end_of_life": "2010-10-01", "latest_release_date": "2010-10-04", "manual_url": "/docs/7.4/index.html", "manual_slug": "7.4", "manual_pages": 644, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "7.3", "url": "/wiki/versions/7.3/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "7.3.21", "first_release": "2002-11-27", "end_of_life": "2007-11-27", "latest_release_date": "2008-01-07", "manual_url": "/docs/7.3/index.html", "manual_slug": "7.3", "manual_pages": 617, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "7.2", "url": "/wiki/versions/7.2/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "7.2.8", "first_release": "2002-02-04", "end_of_life": "2007-02-04", "latest_release_date": "2005-05-09", "manual_url": "/docs/7.2/index.html", "manual_slug": "7.2", "manual_pages": 553, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "7.1", "url": "/wiki/versions/7.1/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "7.1.3", "first_release": "2001-04-13", "end_of_life": "2006-04-13", "latest_release_date": "2001-08-17", "manual_url": "/docs/7.1/index.html", "manual_slug": "7.1", "manual_pages": 489, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "7.0", "url": "/wiki/versions/7.0/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "7.0.3", "first_release": "2000-05-08", "end_of_life": "2005-05-08", "latest_release_date": "2000-11-12", "manual_url": "/docs/7.0/index.html", "manual_slug": "7.0", "manual_pages": 414, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "6.5", "url": "/wiki/versions/6.5/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "6.5.3", "first_release": "1999-06-09", "end_of_life": "2004-06-09", "latest_release_date": "1999-11-04", "manual_url": "/docs/6.5/index.html", "manual_slug": "6.5", "manual_pages": 371, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "6.4", "url": "/wiki/versions/6.4/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "6.4.2", "first_release": "1998-10-30", "end_of_life": "2003-10-30", "latest_release_date": "1999-01-03", "manual_url": "/docs/6.4/index.html", "manual_slug": "6.4", "manual_pages": 340, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "6.3", "url": "/wiki/versions/6.3/", "state": "eol", "state_label": "\u5df2\u505c\u6b62\u652f\u6301", "tag": "", "build": "6.3.2", "first_release": "1998-03-01", "end_of_life": "2003-03-01", "latest_release_date": "", "manual_url": "/docs/6.3/index.html", "manual_slug": "6.3", "manual_pages": 202, "manual_loaded_at": "2026-09-27T00:10:45.258078", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}]}