{"format": 1, "version": {"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"}, "releases": [{"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}, {"version": "15.18", "build": "15.18", "status": "stable", "date": "2026-05-14", "source_as_of": "", "url": "/docs/compare/?release=15.18", "manual_url": "/docs/15/release-15-18.html", "source_url": "/docs/release/15.18/", "entry_count": 43, "categories": {"security": 11, "improvement": 15, "bugfix": 17}, "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": "15.17", "build": "15.17", "status": "stable", "date": "2026-02-26", "source_as_of": "", "url": "/docs/compare/?release=15.17", "manual_url": "/docs/15/release-15-17.html", "source_url": "/docs/release/15.17/", "entry_count": 5, "categories": {"bugfix": 4, "security": 1}, "compatibility_count": 0, "cves": ["CVE-2026-2006"], "cve_count": 1}, {"version": "15.16", "build": "15.16", "status": "stable", "date": "2026-02-12", "source_as_of": "", "url": "/docs/compare/?release=15.16", "manual_url": "/docs/15/release-15-16.html", "source_url": "/docs/release/15.16/", "entry_count": 40, "categories": {"security": 4, "improvement": 19, "bugfix": 17}, "compatibility_count": 0, "cves": ["CVE-2026-2003", "CVE-2026-2004", "CVE-2026-2005", "CVE-2026-2006"], "cve_count": 4}, {"version": "15.15", "build": "15.15", "status": "stable", "date": "2025-11-13", "source_as_of": "", "url": "/docs/compare/?release=15.15", "manual_url": "/docs/15/release-15-15.html", "source_url": "/docs/release/15.15/", "entry_count": 54, "categories": {"security": 2, "bugfix": 30, "improvement": 22}, "compatibility_count": 0, "cves": ["CVE-2025-12817", "CVE-2025-12818"], "cve_count": 2}, {"version": "15.14", "build": "15.14", "status": "stable", "date": "2025-08-14", "source_as_of": "", "url": "/docs/compare/?release=15.14", "manual_url": "/docs/15/release-15-14.html", "source_url": "/docs/release/15.14/", "entry_count": 54, "categories": {"security": 3, "bugfix": 17, "improvement": 34}, "compatibility_count": 0, "cves": ["CVE-2012-0868", "CVE-2017-7484", "CVE-2025-8713", "CVE-2025-8714", "CVE-2025-8715"], "cve_count": 5}, {"version": "15.13", "build": "15.13", "status": "stable", "date": "2025-05-08", "source_as_of": "", "url": "/docs/compare/?release=15.13", "manual_url": "/docs/15/release-15-13.html", "source_url": "/docs/release/15.13/", "entry_count": 38, "categories": {"security": 1, "improvement": 19, "bugfix": 18}, "compatibility_count": 0, "cves": ["CVE-2025-4207"], "cve_count": 1}, {"version": "15.12", "build": "15.12", "status": "stable", "date": "2025-02-20", "source_as_of": "", "url": "/docs/compare/?release=15.12", "manual_url": "/docs/15/release-15-12.html", "source_url": "/docs/release/15.12/", "entry_count": 1, "categories": {"security": 1}, "compatibility_count": 0, "cves": ["CVE-2025-1094"], "cve_count": 1}, {"version": "15.11", "build": "15.11", "status": "stable", "date": "2025-02-13", "source_as_of": "", "url": "/docs/compare/?release=15.11", "manual_url": "/docs/15/release-15-11.html", "source_url": "/docs/release/15.11/", "entry_count": 48, "categories": {"security": 1, "improvement": 18, "bugfix": 29}, "compatibility_count": 0, "cves": ["CVE-2025-1094"], "cve_count": 1}, {"version": "15.10", "build": "15.10", "status": "stable", "date": "2024-11-21", "source_as_of": "", "url": "/docs/compare/?release=15.10", "manual_url": "/docs/15/release-15-10.html", "source_url": "/docs/release/15.10/", "entry_count": 8, "categories": {"bugfix": 4, "security": 1, "improvement": 3}, "compatibility_count": 0, "cves": ["CVE-2024-10978"], "cve_count": 1}, {"version": "15.9", "build": "15.9", "status": "stable", "date": "2024-11-14", "source_as_of": "", "url": "/docs/compare/?release=15.9", "manual_url": "/docs/15/release-15-9.html", "source_url": "/docs/release/15.9/", "entry_count": 46, "categories": {"security": 4, "bugfix": 18, "improvement": 24}, "compatibility_count": 0, "cves": ["CVE-2024-10976", "CVE-2024-10977", "CVE-2024-10978", "CVE-2024-10979"], "cve_count": 4}, {"version": "15.8", "build": "15.8", "status": "stable", "date": "2024-08-08", "source_as_of": "", "url": "/docs/compare/?release=15.8", "manual_url": "/docs/15/release-15-8.html", "source_url": "/docs/release/15.8/", "entry_count": 49, "categories": {"security": 2, "improvement": 22, "bugfix": 25}, "compatibility_count": 0, "cves": ["CVE-2023-5869", "CVE-2024-7348"], "cve_count": 2}, {"version": "15.7", "build": "15.7", "status": "stable", "date": "2024-05-09", "source_as_of": "", "url": "/docs/compare/?release=15.7", "manual_url": "/docs/15/release-15-7.html", "source_url": "/docs/release/15.7/", "entry_count": 52, "categories": {"security": 1, "bugfix": 23, "improvement": 28}, "compatibility_count": 0, "cves": ["CVE-2024-4317"], "cve_count": 1}, {"version": "15.6", "build": "15.6", "status": "stable", "date": "2024-02-08", "source_as_of": "", "url": "/docs/compare/?release=15.6", "manual_url": "/docs/15/release-15-6.html", "source_url": "/docs/release/15.6/", "entry_count": 60, "categories": {"security": 1, "bugfix": 22, "improvement": 37}, "compatibility_count": 0, "cves": ["CVE-2024-0985"], "cve_count": 1}, {"version": "15.5", "build": "15.5", "status": "stable", "date": "2023-11-09", "source_as_of": "", "url": "/docs/compare/?release=15.5", "manual_url": "/docs/15/release-15-5.html", "source_url": "/docs/release/15.5/", "entry_count": 60, "categories": {"security": 3, "bugfix": 26, "improvement": 31}, "compatibility_count": 0, "cves": ["CVE-2023-5868", "CVE-2023-5869", "CVE-2023-5870"], "cve_count": 3}, {"version": "15.4", "build": "15.4", "status": "stable", "date": "2023-08-10", "source_as_of": "", "url": "/docs/compare/?release=15.4", "manual_url": "/docs/15/release-15-4.html", "source_url": "/docs/release/15.4/", "entry_count": 47, "categories": {"security": 2, "bugfix": 22, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2023-39417", "CVE-2023-39418"], "cve_count": 2}, {"version": "15.3", "build": "15.3", "status": "stable", "date": "2023-05-11", "source_as_of": "", "url": "/docs/compare/?release=15.3", "manual_url": "/docs/15/release-15-3.html", "source_url": "/docs/release/15.3/", "entry_count": 83, "categories": {"security": 2, "bugfix": 41, "improvement": 40}, "compatibility_count": 0, "cves": ["CVE-2023-2454", "CVE-2023-2455"], "cve_count": 2}, {"version": "15.2", "build": "15.2", "status": "stable", "date": "2023-02-09", "source_as_of": "", "url": "/docs/compare/?release=15.2", "manual_url": "/docs/15/release-15-2.html", "source_url": "/docs/release/15.2/", "entry_count": 58, "categories": {"security": 1, "bugfix": 30, "improvement": 27}, "compatibility_count": 0, "cves": ["CVE-2022-41862"], "cve_count": 1}, {"version": "15.1", "build": "15.1", "status": "stable", "date": "2022-11-10", "source_as_of": "", "url": "/docs/compare/?release=15.1", "manual_url": "/docs/15/release-15-1.html", "source_url": "/docs/release/15.1/", "entry_count": 26, "categories": {"bugfix": 13, "improvement": 13}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"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}], "initial_entries": [{"id": "15.0-8e9d06659badfaa6-1", "cves": ["CVE-2018-1058"], "html": "<p>\u79fb\u9664 <a href=\"/docs/15/ddl-schemas.html#DDL-SCHEMAS-PUBLIC\" title=\"5.9.2.\u00a0\u516c\u5171\u6a21\u5f0f\"><code>public</code> \u6a21\u5f0f</a>\u5bf9 <code>PUBLIC</code> \u7684\u521b\u5efa\u6743\u9650\uff08Noah Misch\uff09<a href=\"https://postgr.es/c/b073c3ccd\">\u00a7</a></p>\n<p>\u8fd9\u4e00\u9ed8\u8ba4\u8bbe\u7f6e\u662f\u6a21\u5f0f\u7684\u5b89\u5168\u4f7f\u7528\u65b9\u5f0f\u4e4b\u4e00\uff1b\u81ea CVE-2018-1058 \u5b89\u5168\u53d1\u5e03\u4ee5\u6765\uff0c<a href=\"/docs/15/ddl-schemas.html#DDL-SCHEMAS-PATTERNS\" title=\"5.9.6.\u00a0\u4f7f\u7528\u65b9\u5f0f\">\u7b2c\u00a05.9.6\u00a0\u8282</a>\u4e00\u76f4\u63a8\u8350\u8fd9\u79cd\u65b9\u5f0f\u3002\u6b64\u53d8\u66f4\u9002\u7528\u4e8e\u65b0\u7684\u6570\u636e\u5e93\u96c6\u7c07\u548c\u73b0\u6709\u96c6\u7c07\u4e2d\u65b0\u521b\u5efa\u7684\u6570\u636e\u5e93\u3002\u5347\u7ea7\u96c6\u7c07\u6216\u6062\u590d\u6570\u636e\u5e93\u5bfc\u51fa\u5c06\u4fdd\u7559 <code>public</code> \u7684\u73b0\u6709\u6743\u9650\u3002</p>\n<p>\u5bf9\u4e8e\u73b0\u6709\u6570\u636e\u5e93\uff0c\u5c24\u5176\u662f\u591a\u7528\u6237\u6570\u636e\u5e93\uff0c\u8bf7\u8003\u8651\u64a4\u9500 <code>public</code> \u6a21\u5f0f\u4e0a\u7684 <code>CREATE</code> \u6743\u9650\uff0c\u4ee5\u91c7\u7528\u8fd9\u4e00\u65b0\u7684\u9ed8\u8ba4\u8bbe\u7f6e\u3002\u5bf9\u4e8e\u65e0\u9700\u9632\u5fa1\u5185\u90e8\u5a01\u80c1\u7684\u65b0\u6570\u636e\u5e93\uff0c\u6388\u4e88 <code>CREATE</code> \u6743\u9650\u5373\u53ef\u6062\u590d\u5148\u524d\u7248\u672c\u7684\u884c\u4e3a\u3002</p>", "text": "\u79fb\u9664 public \u6a21\u5f0f\u5bf9 PUBLIC \u7684\u521b\u5efa\u6743\u9650\uff08Noah Misch\uff09\u00a7 \u8fd9\u4e00\u9ed8\u8ba4\u8bbe\u7f6e\u662f\u6a21\u5f0f\u7684\u5b89\u5168\u4f7f\u7528\u65b9\u5f0f\u4e4b\u4e00\uff1b\u81ea CVE-2018-1058 \u5b89\u5168\u53d1\u5e03\u4ee5\u6765\uff0c\u7b2c 5.9.6 \u8282\u4e00\u76f4\u63a8\u8350\u8fd9\u79cd\u65b9\u5f0f\u3002\u6b64\u53d8\u66f4\u9002\u7528\u4e8e\u65b0\u7684\u6570\u636e\u5e93\u96c6\u7c07\u548c\u73b0\u6709\u96c6\u7c07\u4e2d\u65b0\u521b\u5efa\u7684\u6570\u636e\u5e93\u3002\u5347\u7ea7\u96c6\u7c07\u6216\u6062\u590d\u6570\u636e\u5e93\u5bfc\u51fa\u5c06\u4fdd\u7559 public \u7684\u73b0\u6709\u6743\u9650\u3002 \u5bf9\u4e8e\u73b0\u6709\u6570\u636e\u5e93\uff0c\u5c24\u5176\u662f\u591a\u7528\u6237\u6570\u636e\u5e93\uff0c\u8bf7\u8003\u8651\u64a4\u9500 public \u6a21\u5f0f\u4e0a\u7684 CREATE \u6743\u9650\uff0c\u4ee5\u91c7\u7528\u8fd9\u4e00\u65b0\u7684\u9ed8\u8ba4\u8bbe\u7f6e\u3002\u5bf9\u4e8e\u65e0\u9700\u9632\u5fa1\u5185\u90e8\u5a01\u80c1\u7684\u65b0\u6570\u636e\u5e93\uff0c\u6388\u4e88 CREATE \u6743\u9650\u5373\u53ef\u6062\u590d\u5148\u524d\u7248\u672c\u7684\u884c\u4e3a\u3002", "title": "\u79fb\u9664 public \u6a21\u5f0f\u5bf9 PUBLIC \u7684\u521b\u5efa\u6743\u9650", "commits": ["b073c3ccd"], "section": "\u517c\u5bb9\u6027", "category": "security", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "295e99e709137e3206b79e3dd47348be84a35585f9ae70d7168ca21f0311e571", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["b073c3ccd"]], "identity_text": "Remove PUBLIC creation permission on the public schema (Noah Misch) The new default is one of the secure schema usage patterns that ddl-schemas-patterns has recommended since the security release for CVE-2018-1058. The change applies to new database clusters and to newly-created databases in existing clusters. Upgrading a cluster or restoring a database dump will preserve public's existing permissions. For existing databases, especially those having multiple users, consider revoking CREATE permission on the public schema to adopt this new default. For new databases having no need to defend against insider threats, granting CREATE permission will yield the behavior of prior releases.", "commit_aliases": ["b073c3ccd"], "source_commits": ["b073c3ccd"], "source_entry_id": "15.0/migration/001", "db_id": "3d952f458c7657f4c4553441b6ede53d", "patch_ids": ["c0b6742fd5b4b03bc763475527331083"], "statement_hash": "34c967436aee85d104eab8afbb3417c9ef242a6d2d5f4c5a9aab623fe5c5d867", "relations": [{"rule": 2, "type": "related", "target": "bd3bcc803aa2695741ffbfb900e148b1", "evidence": {"same_day": true, "patch_ids": ["c0b6742fd5b4b03bc763475527331083"], "ambiguous_patch_ids": ["c0b6742fd5b4b03bc763475527331083"]}}], "category_label": "\u5b89\u5168\u76f8\u5173", "url": "/docs/compare/?release=15.0#15.0-8e9d06659badfaa6-1", "migration": true}, {"id": "15.0-8e9d06659badfaa6-2", "cves": [], "html": "<p>\u5c06 <code>public</code> \u6a21\u5f0f\u7684\u6240\u6709\u8005\u66f4\u6539\u4e3a\u65b0\u7684 <code>pg_database_owner</code> \u89d2\u8272\uff08Noah Misch\uff09<a href=\"https://postgr.es/c/b073c3ccd\">\u00a7</a></p>\n<p>\u8fd9\u4f7f\u6bcf\u4e2a\u6570\u636e\u5e93\u7684\u6240\u6709\u8005\u90fd\u80fd\u5bf9\u5176\u6570\u636e\u5e93\u4e2d\u7684 <code>public</code> \u6a21\u5f0f\u884c\u4f7f\u6240\u6709\u8005\u6743\u9650\u3002\u6b64\u524d\uff0c\u8be5\u6a21\u5f0f\u7531\u5f15\u5bfc\u8d85\u7ea7\u7528\u6237\u62e5\u6709\uff0c\u56e0\u6b64\u975e\u8d85\u7ea7\u7528\u6237\u7684\u6570\u636e\u5e93\u6240\u6709\u8005\u65e0\u6cd5\u5bf9\u5176\u6267\u884c\u4efb\u4f55\u64cd\u4f5c\u3002</p>\n<p>\u6b64\u53d8\u66f4\u9002\u7528\u4e8e\u65b0\u7684\u6570\u636e\u5e93\u96c6\u7c07\u548c\u73b0\u6709\u96c6\u7c07\u4e2d\u65b0\u521b\u5efa\u7684\u6570\u636e\u5e93\u3002\u5347\u7ea7\u96c6\u7c07\u6216\u6062\u590d\u6570\u636e\u5e93\u5bfc\u51fa\u5c06\u4fdd\u7559 <code>public</code> \u7684\u73b0\u6709\u6240\u6709\u6743\u8bbe\u7f6e\u3002</p>", "text": "\u5c06 public \u6a21\u5f0f\u7684\u6240\u6709\u8005\u66f4\u6539\u4e3a\u65b0\u7684 pg_database_owner \u89d2\u8272\uff08Noah Misch\uff09\u00a7 \u8fd9\u4f7f\u6bcf\u4e2a\u6570\u636e\u5e93\u7684\u6240\u6709\u8005\u90fd\u80fd\u5bf9\u5176\u6570\u636e\u5e93\u4e2d\u7684 public \u6a21\u5f0f\u884c\u4f7f\u6240\u6709\u8005\u6743\u9650\u3002\u6b64\u524d\uff0c\u8be5\u6a21\u5f0f\u7531\u5f15\u5bfc\u8d85\u7ea7\u7528\u6237\u62e5\u6709\uff0c\u56e0\u6b64\u975e\u8d85\u7ea7\u7528\u6237\u7684\u6570\u636e\u5e93\u6240\u6709\u8005\u65e0\u6cd5\u5bf9\u5176\u6267\u884c\u4efb\u4f55\u64cd\u4f5c\u3002 \u6b64\u53d8\u66f4\u9002\u7528\u4e8e\u65b0\u7684\u6570\u636e\u5e93\u96c6\u7c07\u548c\u73b0\u6709\u96c6\u7c07\u4e2d\u65b0\u521b\u5efa\u7684\u6570\u636e\u5e93\u3002\u5347\u7ea7\u96c6\u7c07\u6216\u6062\u590d\u6570\u636e\u5e93\u5bfc\u51fa\u5c06\u4fdd\u7559 public \u7684\u73b0\u6709\u6240\u6709\u6743\u8bbe\u7f6e\u3002", "title": "\u5c06 public \u6a21\u5f0f\u7684\u6240\u6709\u8005\u66f4\u6539\u4e3a\u65b0\u7684 pg_database_owner \u89d2\u8272", "commits": ["b073c3ccd"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "e22130aeb1f46db8301eb04f4b9c58ea110a04d012feb1293c37d915bd94bba6", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["b073c3ccd"]], "identity_text": "Change the owner of the public schema to be the new pg_database_owner role (Noah Misch) This allows each database's owner to have ownership privileges on the public schema within their database. Previously it was owned by the bootstrap superuser, so that non-superuser database owners could not do anything with it. This change applies to new database clusters and to newly-created databases in existing clusters. Upgrading a cluster or restoring a database dump will preserve public's existing ownership specification.", "commit_aliases": ["b073c3ccd"], "source_commits": ["b073c3ccd"], "source_entry_id": "15.0/migration/002", "db_id": "bd3bcc803aa2695741ffbfb900e148b1", "patch_ids": ["c0b6742fd5b4b03bc763475527331083"], "statement_hash": "11d993272837d7e350c18d37e859e6ce48b70e474d26151b6ea461e389a43f56", "relations": [{"rule": 2, "type": "related", "target": "3d952f458c7657f4c4553441b6ede53d", "evidence": {"same_day": true, "patch_ids": ["c0b6742fd5b4b03bc763475527331083"], "ambiguous_patch_ids": ["c0b6742fd5b4b03bc763475527331083"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-8e9d06659badfaa6-2", "migration": true}, {"id": "15.0-093c072c6580901d", "cves": [], "html": "<p>\u79fb\u9664\u957f\u671f\u5f03\u7528\u7684<a href=\"/docs/15/continuous-archiving.html#BACKUP-BASE-BACKUP\" title=\"26.3.2.\u00a0\u8fdb\u884c\u57fa\u7840\u5907\u4efd\">\u72ec\u5360\u5907\u4efd\u6a21\u5f0f</a>\uff08David Steele\uff0cNathan Bossart\uff09<a href=\"https://postgr.es/c/39969e2a1\">\u00a7</a></p>\n<p>\u5982\u679c\u6570\u636e\u5e93\u670d\u52a1\u5668\u5728\u6b64\u6a21\u5f0f\u4e0b\u7a81\u7136\u505c\u6b62\uff0c\u670d\u52a1\u5668\u53ef\u80fd\u65e0\u6cd5\u542f\u52a8\u3002\u975e\u72ec\u5360\u5907\u4efd\u6a21\u5f0f\u5728\u5404\u65b9\u9762\u90fd\u88ab\u8ba4\u4e3a\u66f4\u4f18\u3002\u51fd\u6570 <code>pg_start_backup()</code>/<code>pg_stop_backup()</code> \u5df2\u91cd\u547d\u540d\u4e3a <code>pg_backup_start()</code>/<code>pg_backup_stop()</code>\uff0c\u800c\u51fd\u6570 <code>pg_backup_start_time()</code> \u548c <code>pg_is_in_backup()</code> \u5df2\u88ab\u79fb\u9664\u3002</p>", "text": "\u79fb\u9664\u957f\u671f\u5f03\u7528\u7684\u72ec\u5360\u5907\u4efd\u6a21\u5f0f\uff08David Steele\uff0cNathan Bossart\uff09\u00a7 \u5982\u679c\u6570\u636e\u5e93\u670d\u52a1\u5668\u5728\u6b64\u6a21\u5f0f\u4e0b\u7a81\u7136\u505c\u6b62\uff0c\u670d\u52a1\u5668\u53ef\u80fd\u65e0\u6cd5\u542f\u52a8\u3002\u975e\u72ec\u5360\u5907\u4efd\u6a21\u5f0f\u5728\u5404\u65b9\u9762\u90fd\u88ab\u8ba4\u4e3a\u66f4\u4f18\u3002\u51fd\u6570 pg_start_backup()/pg_stop_backup() \u5df2\u91cd\u547d\u540d\u4e3a pg_backup_start()/pg_backup_stop()\uff0c\u800c\u51fd\u6570 pg_backup_start_time() \u548c pg_is_in_backup() \u5df2\u88ab\u79fb\u9664\u3002", "title": "\u79fb\u9664\u957f\u671f\u5f03\u7528\u7684\u72ec\u5360\u5907\u4efd\u6a21\u5f0f", "commits": ["39969e2a1"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "d014d9f569f6103322d124710899611b0e5a9c637c38c2b96912d2230d0350b0", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["39969e2a1"]], "identity_text": "Remove long-deprecated exclusive backup mode (David Steele, Nathan Bossart) If the database server stops abruptly while in this mode, the server could fail to start. The non-exclusive backup mode is considered superior for all purposes. Functions pg_start_backup()/pg_stop_backup() have been renamed to pg_backup_start()/pg_backup_stop(), and the functions pg_backup_start_time() and pg_is_in_backup() have been removed.", "commit_aliases": ["39969e2a1"], "source_commits": ["39969e2a1"], "source_entry_id": "15.0/migration/003", "db_id": "4b2dd9a7f3824c77d37e0c39c9bb462a", "patch_ids": ["62ee1485ae68ae89310d5ff7424ec525"], "statement_hash": "dda5b21234c2c7718a507b507a9c8d34f78f5e7ec01d055cf00023de19bbe198", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-093c072c6580901d", "migration": true}, {"id": "15.0-4f177705d2adc97d", "cves": [], "html": "<p>\u5c06 <a href=\"/docs/15/runtime-config-resource.html#GUC-HASH-MEM-MULTIPLIER\"><code>hash_mem_multiplier</code></a> \u9ed8\u8ba4\u503c\u589e\u52a0\u5230 2.0\uff08Peter Geoghegan\uff09<a href=\"https://postgr.es/c/8f388f6f5\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u67e5\u8be2 hash \u64cd\u4f5c\u4f7f\u7528\u6bd4\u5176\u4ed6\u64cd\u4f5c\u66f4\u591a\u7684 <a href=\"/docs/15/runtime-config-resource.html#GUC-WORK-MEM\"><code>work_mem</code></a> \u5185\u5b58\u3002</p>", "text": "\u5c06 hash_mem_multiplier \u9ed8\u8ba4\u503c\u589e\u52a0\u5230 2.0\uff08Peter Geoghegan\uff09\u00a7 \u8fd9\u5141\u8bb8\u67e5\u8be2 hash \u64cd\u4f5c\u4f7f\u7528\u6bd4\u5176\u4ed6\u64cd\u4f5c\u66f4\u591a\u7684 work_mem \u5185\u5b58\u3002", "title": "\u5c06 hash_mem_multiplier \u9ed8\u8ba4\u503c\u589e\u52a0\u5230 2.0", "commits": ["8f388f6f5"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "e71d014dede7b2e0525803b01b6935207b8f812897700d27e7cde92628a059a0", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["8f388f6f5"]], "identity_text": "Increase hash_mem_multiplier default to 2.0 (Peter Geoghegan) This allows query hash operations to use more work_mem memory than other operations.", "commit_aliases": ["8f388f6f5"], "source_commits": ["8f388f6f5"], "source_entry_id": "15.0/migration/004", "db_id": "d43fd8daf7546baa3168e8e0cb77e53f", "patch_ids": ["a4949da3d01586cd3c0b2de3fab98643"], "statement_hash": "118e8d0ca879b243c8b136dfee3fb403e47045202e43147edb73066d0bb6110e", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-4f177705d2adc97d", "migration": true}, {"id": "15.0-59924f014445d2a7", "cves": [], "html": "<p>\u79fb\u9664\u670d\u52a1\u5668\u7aef\u8bed\u8a00 <a href=\"/docs/15/plpython.html\" title=\"\u7b2c\u00a046\u00a0\u7ae0\u00a0PL/Python \u2014 Python \u8fc7\u7a0b\u8bed\u8a00\"><code>plpython2u</code></a> \u548c\u901a\u7528 Python \u8bed\u8a00 <code>plpythonu</code>\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/76a29adee\">\u00a7</a></p>\n<p>Python 2.x \u5df2\u4e0d\u518d\u53d7\u652f\u6301\u3002\u867d\u7136 <code>plpythonu</code> \u6700\u521d\u7684\u610f\u56fe\u662f\u6700\u7ec8\u53ef\u4ee5\u6307\u5411 <code>plpython3u</code>\uff0c\u4f46\u73b0\u5728\u66f4\u6539\u5b83\u4f3c\u4e4e\u66f4\u53ef\u80fd\u9020\u6210\u95ee\u9898\u800c\u975e\u89e3\u51b3\u95ee\u9898\uff0c\u56e0\u6b64\u5b83\u88ab\u76f4\u63a5\u79fb\u9664\u3002</p>", "text": "\u79fb\u9664\u670d\u52a1\u5668\u7aef\u8bed\u8a00 plpython2u \u548c\u901a\u7528 Python \u8bed\u8a00 plpythonu\uff08Andres Freund\uff09\u00a7 Python 2.x \u5df2\u4e0d\u518d\u53d7\u652f\u6301\u3002\u867d\u7136 plpythonu \u6700\u521d\u7684\u610f\u56fe\u662f\u6700\u7ec8\u53ef\u4ee5\u6307\u5411 plpython3u\uff0c\u4f46\u73b0\u5728\u66f4\u6539\u5b83\u4f3c\u4e4e\u66f4\u53ef\u80fd\u9020\u6210\u95ee\u9898\u800c\u975e\u89e3\u51b3\u95ee\u9898\uff0c\u56e0\u6b64\u5b83\u88ab\u76f4\u63a5\u79fb\u9664\u3002", "title": "\u79fb\u9664\u670d\u52a1\u5668\u7aef\u8bed\u8a00 plpython2u \u548c\u901a\u7528 Python \u8bed\u8a00 plpythonu", "commits": ["76a29adee"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "3bacdb48848ad8c1031f0ddb8781e124f4b116d2b721d404c82030b8d35d60d0", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["76a29adee"]], "identity_text": "Remove server-side language plpython2u and generic Python language plpythonu (Andres Freund) Python 2.x is no longer supported. While the original intent of plpythonu was that it could eventually refer to plpython3u, changing it now seems more likely to cause problems than solve them, so it's just been removed.", "commit_aliases": ["76a29adee"], "source_commits": ["76a29adee"], "source_entry_id": "15.0/migration/005", "db_id": "bc8db5e90e7ee8c969d900bde3778f88", "patch_ids": ["7ee3c745421eda7655c07c1ed9ceda99"], "statement_hash": "cbb362ea2e82d251b4148378035639e4f197d858c8bcdb742f45345040c8b722", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-59924f014445d2a7", "migration": true}, {"id": "15.0-4eadb6349d78084d", "cves": [], "html": "<p>\u5982\u679c\u5411 <a href=\"/docs/15/functions-textsearch.html#TEXTSEARCH-FUNCTIONS-TABLE\" title=\"\u8868\u00a09.43.\u00a0\u6587\u672c\u68c0\u7d22\u51fd\u6570\"><code>array_to_tsvector()</code></a> \u4f20\u9012\u7a7a\u5b57\u7b26\u4e32\u6570\u7ec4\u5143\u7d20\uff0c\u5219\u751f\u6210\u9519\u8bef\uff08Jean-Christophe Arnu\uff09<a href=\"https://postgr.es/c/cbe25dcff\">\u00a7</a></p>\n<p>\u8fd9\u662f\u88ab\u7981\u6b62\u7684\uff0c\u56e0\u4e3a\u8bcd\u4f4d\u4e0d\u5e94\u4e3a\u7a7a\u3002\u5148\u524d Postgres \u7248\u672c\u7684\u7528\u6237\u5e94\u786e\u8ba4\u672a\u5b58\u50a8\u7a7a\u8bcd\u4f4d\uff0c\u56e0\u4e3a\u5b83\u4eec\u53ef\u80fd\u5bfc\u81f4\u5bfc\u51fa/\u6062\u590d\u5931\u8d25\u548c\u7ed3\u679c\u4e0d\u4e00\u81f4\u3002</p>", "text": "\u5982\u679c\u5411 array_to_tsvector() \u4f20\u9012\u7a7a\u5b57\u7b26\u4e32\u6570\u7ec4\u5143\u7d20\uff0c\u5219\u751f\u6210\u9519\u8bef\uff08Jean-Christophe Arnu\uff09\u00a7 \u8fd9\u662f\u88ab\u7981\u6b62\u7684\uff0c\u56e0\u4e3a\u8bcd\u4f4d\u4e0d\u5e94\u4e3a\u7a7a\u3002\u5148\u524d Postgres \u7248\u672c\u7684\u7528\u6237\u5e94\u786e\u8ba4\u672a\u5b58\u50a8\u7a7a\u8bcd\u4f4d\uff0c\u56e0\u4e3a\u5b83\u4eec\u53ef\u80fd\u5bfc\u81f4\u5bfc\u51fa/\u6062\u590d\u5931\u8d25\u548c\u7ed3\u679c\u4e0d\u4e00\u81f4\u3002", "title": "\u5982\u679c\u5411 array_to_tsvector() \u4f20\u9012\u7a7a\u5b57\u7b26\u4e32\u6570\u7ec4\u5143\u7d20\uff0c\u5219\u751f\u6210\u9519\u8bef", "commits": ["cbe25dcff"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "179f424315b48076d7069673408f4a54f5840511d1a91875fb857b99c7f3265c", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["cbe25dcff"]], "identity_text": "Generate an error if array_to_tsvector() is passed an empty-string array element (Jean-Christophe Arnu) This is prohibited because lexemes should never be empty. Users of previous Postgres releases should verify that no empty lexemes are stored because they can lead to dump/restore failures and inconsistent results.", "commit_aliases": ["cbe25dcff"], "source_commits": ["cbe25dcff"], "source_entry_id": "15.0/migration/006", "db_id": "768b8971e5889da73f7b6b4bc5a8375a", "patch_ids": ["902c91fd79c150eb68e6d461743bad23"], "statement_hash": "84a61840940d275c9d2f56cecd7e6e94f188f427b15904fe773a19019d4f5171", "relations": [{"rule": 2, "type": "related", "target": "a67642f4488d4ec2d54ae643a86aac06", "evidence": {"same_day": true, "patch_ids": ["902c91fd79c150eb68e6d461743bad23"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-4eadb6349d78084d", "migration": true}, {"id": "15.0-9ab0f7381f970049", "cves": [], "html": "<p>\u5f53\u5411 <a href=\"/docs/15/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"\u8868\u00a09.10.\u00a0\u5176\u4ed6\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>chr()</code></a> \u63d0\u4f9b\u8d1f\u53c2\u6570\u65f6\u751f\u6210\u9519\u8bef\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/e9e63b702\">\u00a7</a></p>", "text": "\u5f53\u5411 chr() \u63d0\u4f9b\u8d1f\u53c2\u6570\u65f6\u751f\u6210\u9519\u8bef\uff08Peter Eisentraut\uff09\u00a7", "title": "\u5f53\u5411 chr() \u63d0\u4f9b\u8d1f\u53c2\u6570\u65f6\u751f\u6210\u9519\u8bef", "commits": ["e9e63b702"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "92d8a7f40910d74fed0979047efaca17e45ec8306c09443b87eb9414fc2caa59", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["e9e63b702"]], "identity_text": "Generate an error when chr() is supplied with a negative argument (Peter Eisentraut)", "commit_aliases": ["e9e63b702"], "source_commits": ["e9e63b702"], "source_entry_id": "15.0/migration/007", "db_id": "2d84e921a0755a77e1d7e2d8901d3f8a", "patch_ids": ["20ce81e3e5e36ecaed178adcee576fac"], "statement_hash": "cdfaa2e53a5ee92edda02580f948209246407cd76f0be94ed48e9f3a20c604f0", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-9ab0f7381f970049", "migration": true}, {"id": "15.0-82c64b003a992d78", "cves": [], "html": "<p>\u9632\u6b62 <a href=\"/docs/15/sql-createview.html\" title=\"CREATE VIEW\"><code>CREATE OR REPLACE VIEW</code></a> \u66f4\u6539\u8f93\u51fa\u5217\u7684\u6392\u5e8f\u89c4\u5219\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/2523928b2\">\u00a7</a></p>", "text": "\u9632\u6b62 CREATE OR REPLACE VIEW \u66f4\u6539\u8f93\u51fa\u5217\u7684\u6392\u5e8f\u89c4\u5219\uff08Tom Lane\uff09\u00a7", "title": "\u9632\u6b62 CREATE OR REPLACE VIEW \u66f4\u6539\u8f93\u51fa\u5217\u7684\u6392\u5e8f\u89c4\u5219", "commits": ["2523928b2"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "a793c89dbcdcb5c66a1e760d78aa656fa473797d2c3902557a0cf1f28a21bd64", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["2523928b2"]], "identity_text": "Prevent CREATE OR REPLACE VIEW from changing the collation of an output column (Tom Lane)", "commit_aliases": ["2523928b2"], "source_commits": ["2523928b2"], "source_entry_id": "15.0/migration/008", "db_id": "2062751d1a69ee387f9e11e5ae409a27", "patch_ids": ["707c7d6c75c07e32b39ab4bca462070b"], "statement_hash": "b7d8527275aae9ffb4a7bbbc1e84f832caf885374e97ca6fab10a936adb42612", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-82c64b003a992d78", "migration": true}, {"id": "15.0-fcc6613427fd7784", "cves": [], "html": "<p>\u7981\u6b62\u96f6\u957f\u5ea6\u7684 <a href=\"/docs/15/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS\" title=\"4.1.1.\u00a0\u6807\u8bc6\u7b26\u548c\u5173\u952e\u8bcd\">Unicode \u6807\u8bc6\u7b26</a>\uff0c\u4f8b\u5982 <code>U&amp;\"\"</code>\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/a18b6d2dc\">\u00a7</a></p>\n<p>\u975e Unicode \u7684\u96f6\u957f\u5ea6\u6807\u8bc6\u7b26\u5df2\u7ecf\u88ab\u7981\u6b62\u3002</p>", "text": "\u7981\u6b62\u96f6\u957f\u5ea6\u7684 Unicode \u6807\u8bc6\u7b26\uff0c\u4f8b\u5982 U&\"\"\uff08Peter Eisentraut\uff09\u00a7 \u975e Unicode \u7684\u96f6\u957f\u5ea6\u6807\u8bc6\u7b26\u5df2\u7ecf\u88ab\u7981\u6b62\u3002", "title": "\u7981\u6b62\u96f6\u957f\u5ea6\u7684 Unicode \u6807\u8bc6\u7b26\uff0c\u4f8b\u5982 U&\"\"", "commits": ["a18b6d2dc"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "6f7c716498f9dd56e236d0a44039a988a418dc865a849f084070210e2a9520e4", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["a18b6d2dc"]], "identity_text": "Disallow zero-length Unicode identifiers, e.g., U&\"\" (Peter Eisentraut) Non-Unicode zero-length identifiers were already disallowed.", "commit_aliases": ["a18b6d2dc"], "source_commits": ["a18b6d2dc"], "source_entry_id": "15.0/migration/009", "db_id": "2e17de1a49ef3da6e13a2a819aa3fb34", "patch_ids": ["e451864200f96765b28d07b19d73a668"], "statement_hash": "7566f0a0196affb03bd64c5622cae002d0ed7ea50375a5b770f3385162e4fda0", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-fcc6613427fd7784", "migration": true}, {"id": "15.0-a4ce90bd2a7299c6", "cves": [], "html": "<p>\u9632\u6b62<a href=\"/docs/15/sql-syntax.html#SQL-SYNTAX-CONSTANTS-NUMERIC\" title=\"4.1.2.6.\u00a0\u6570\u5b57\u5e38\u91cf\">\u6570\u5b57\u5b57\u9762\u91cf</a>\u5177\u6709\u975e\u6570\u5b57\u7684\u5c3e\u968f\u5b57\u7b26\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/2549f0661\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u50cf <code>123abc</code> \u8fd9\u6837\u7684\u67e5\u8be2\u6587\u672c\u4f1a\u88ab\u89e3\u91ca\u4e3a <code>123</code> \u540e\u8ddf\u4e00\u4e2a\u5355\u72ec\u7684\u6807\u8bb0 <code>abc</code>\u3002</p>", "text": "\u9632\u6b62\u6570\u5b57\u5b57\u9762\u91cf\u5177\u6709\u975e\u6570\u5b57\u7684\u5c3e\u968f\u5b57\u7b26\uff08Peter Eisentraut\uff09\u00a7 \u4ee5\u524d\uff0c\u50cf 123abc \u8fd9\u6837\u7684\u67e5\u8be2\u6587\u672c\u4f1a\u88ab\u89e3\u91ca\u4e3a 123 \u540e\u8ddf\u4e00\u4e2a\u5355\u72ec\u7684\u6807\u8bb0 abc\u3002", "title": "\u9632\u6b62\u6570\u5b57\u5b57\u9762\u91cf\u5177\u6709\u975e\u6570\u5b57\u7684\u5c3e\u968f\u5b57\u7b26", "commits": ["2549f0661"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "a7e24132729838e5a593dd76e713306d848028a71a5a0b64f0f39a54f2bc0e13", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["2549f0661"]], "identity_text": "Prevent numeric literals from having non-numeric trailing characters (Peter Eisentraut) Previously, query text like 123abc would be interpreted as 123 followed by a separate token abc.", "commit_aliases": ["2549f0661"], "source_commits": ["2549f0661"], "source_entry_id": "15.0/migration/010", "db_id": "3fb3652c613dd2a461fbb56a522cc456", "patch_ids": ["674fdc78c0aeb80796dd5e5299da9623"], "statement_hash": "ccbac88fd4a1cb237d6f36212e44204d7554a4f0389167b8333be2d6198729ce", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-a4ce90bd2a7299c6", "migration": true}, {"id": "15.0-4c500d4ab01dd401", "cves": [], "html": "<p>\u8c03\u6574 <a href=\"/docs/15/datatype-json.html\" title=\"8.14.\u00a0JSON \u7c7b\u578b\"><acronym>JSON</acronym></a> \u6570\u5b57\u5b57\u9762\u91cf\u5904\u7406\u4ee5\u5339\u914d <acronym>SQL</acronym>/<acronym>JSON</acronym> \u6807\u51c6\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/e26114c81\">\u00a7</a></p>\n<p>\u8fd9\u63a5\u53d7\u50cf <code>.1</code> \u548c <code>1.</code> \u8fd9\u6837\u7684\u6570\u5b57\u683c\u5f0f\uff0c\u5e76\u7981\u6b62\u6570\u5b57\u5b57\u9762\u91cf\u4e4b\u540e\u7684\u5c3e\u968f\u5783\u573e\uff0c\u5982 <code>1.type()</code>\u3002</p>", "text": "\u8c03\u6574 JSON \u6570\u5b57\u5b57\u9762\u91cf\u5904\u7406\u4ee5\u5339\u914d SQL/JSON \u6807\u51c6\uff08Peter Eisentraut\uff09\u00a7 \u8fd9\u63a5\u53d7\u50cf .1 \u548c 1. \u8fd9\u6837\u7684\u6570\u5b57\u683c\u5f0f\uff0c\u5e76\u7981\u6b62\u6570\u5b57\u5b57\u9762\u91cf\u4e4b\u540e\u7684\u5c3e\u968f\u5783\u573e\uff0c\u5982 1.type()\u3002", "title": "\u8c03\u6574 JSON \u6570\u5b57\u5b57\u9762\u91cf\u5904\u7406\u4ee5\u5339\u914d SQL/JSON \u6807\u51c6", "commits": ["e26114c81"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "58cd09c71a53dc49cd944e3e4b702ef9a29f4e8976f4d347df9015eb06291991", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["e26114c81"]], "identity_text": "Adjust JSON numeric literal processing to match the SQL/JSON-standard (Peter Eisentraut) This accepts numeric formats like .1 and 1., and disallows trailing junk after numeric literals, like 1.type().", "commit_aliases": ["e26114c81"], "source_commits": ["e26114c81"], "source_entry_id": "15.0/migration/011", "db_id": "e902fdce9976df17b58a16bcbadee075", "patch_ids": ["701825a710582fbbefa7c88480ee707f"], "statement_hash": "72d269769ab8215716dbd2f6943c92e07f61dfcb0302dae767d60293a4f45d2f", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-4c500d4ab01dd401", "migration": true}, {"id": "15.0-fdc229e831342007", "cves": [], "html": "<p>\u5f53 <a href=\"/docs/15/datatype-datetime.html\" title=\"8.5.\u00a0\u65e5\u671f/\u65f6\u95f4\u7c7b\u578b\"><code>interval</code></a> \u8f93\u5165\u4e3a\u5927\u4e8e\u6708\u7684\u5355\u4f4d\u63d0\u4f9b\u5c0f\u6570\u503c\u65f6\uff0c\u5c06\u5176\u820d\u5165\u5230\u6700\u63a5\u8fd1\u7684\u6574\u6570\u6708\u6570\uff08Bruce Momjian\uff09<a href=\"https://postgr.es/c/95ab1e0a9\">\u00a7</a></p>\n<p>\u4f8b\u5982\uff0c\u5c06 <code>1.99 years</code> \u8f6c\u6362\u4e3a <code>2 years</code>\uff0c\u800c\u4e0d\u662f\u50cf\u4ee5\u524d\u90a3\u6837\u8f6c\u6362\u4e3a <code>1 year 11 months</code>\u3002</p>", "text": "\u5f53 interval \u8f93\u5165\u4e3a\u5927\u4e8e\u6708\u7684\u5355\u4f4d\u63d0\u4f9b\u5c0f\u6570\u503c\u65f6\uff0c\u5c06\u5176\u820d\u5165\u5230\u6700\u63a5\u8fd1\u7684\u6574\u6570\u6708\u6570\uff08Bruce Momjian\uff09\u00a7 \u4f8b\u5982\uff0c\u5c06 1.99 years \u8f6c\u6362\u4e3a 2 years\uff0c\u800c\u4e0d\u662f\u50cf\u4ee5\u524d\u90a3\u6837\u8f6c\u6362\u4e3a 1 year 11 months\u3002", "title": "\u5f53 interval \u8f93\u5165\u4e3a\u5927\u4e8e\u6708\u7684\u5355\u4f4d\u63d0\u4f9b\u5c0f\u6570\u503c\u65f6\uff0c\u5c06\u5176\u820d\u5165\u5230\u6700\u63a5\u8fd1\u7684\u6574\u6570\u6708\u6570", "commits": ["95ab1e0a9"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "9be95d82dd32fbae82dc63dacf6d49777b1b007db1a5c1c460c5c2f53869e36e", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["95ab1e0a9"]], "identity_text": "When interval input provides a fractional value for a unit greater than months, round to the nearest month (Bruce Momjian) For example, convert 1.99 years to 2 years, not 1 year 11 months as before.", "commit_aliases": ["95ab1e0a9"], "source_commits": ["95ab1e0a9"], "source_entry_id": "15.0/migration/012", "db_id": "8823db69d169eb2804f9ac94e74ed024", "patch_ids": ["20e1832ef34b3594410a3fa7333ec9ba"], "statement_hash": "e16346c2003eaa9c29322924526828d359bb8dfbeee6c9b0882248976af8afcb", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-fdc229e831342007", "migration": true}, {"id": "15.0-367049f8cc9f05e7", "cves": [], "html": "<p>\u6539\u8fdb\u5e26\u6709\u5c3e\u968f\u53e5\u70b9\u7684 <code>interval</code> \u89e3\u6790\u7684\u4e00\u81f4\u6027\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/591e088dd\">\u00a7</a></p>\n<p>\u5e26\u6709\u5c3e\u968f\u53e5\u70b9\u7684\u6570\u5b57\u5728\u67d0\u4e9b\u5e73\u53f0\u4e0a\u88ab\u62d2\u7edd\u3002</p>", "text": "\u6539\u8fdb\u5e26\u6709\u5c3e\u968f\u53e5\u70b9\u7684 interval \u89e3\u6790\u7684\u4e00\u81f4\u6027\uff08Tom Lane\uff09\u00a7 \u5e26\u6709\u5c3e\u968f\u53e5\u70b9\u7684\u6570\u5b57\u5728\u67d0\u4e9b\u5e73\u53f0\u4e0a\u88ab\u62d2\u7edd\u3002", "title": "\u6539\u8fdb\u5e26\u6709\u5c3e\u968f\u53e5\u70b9\u7684 interval \u89e3\u6790\u7684\u4e00\u81f4\u6027", "commits": ["591e088dd"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "54d7b2e3d7e0364a369595998cf58578c2f3dca437ce2c9aedaa01c29c04e447", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["591e088dd"]], "identity_text": "Improve consistency of interval parsing with trailing periods (Tom Lane) Numbers with trailing periods were rejected on some platforms.", "commit_aliases": ["591e088dd"], "source_commits": ["591e088dd"], "source_entry_id": "15.0/migration/013", "db_id": "9dfe7b6f39eae05081d2a5b85b57aa17", "patch_ids": ["e6ba87f994bb4c71c9a0ca087a95c3d6"], "statement_hash": "6638fe5056873389c5c83a554599f0d92cb6b92ed9c3ce1798fbc365391f2d70", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-367049f8cc9f05e7", "migration": true}, {"id": "15.0-c75b6a1704bcd98b", "cves": [], "html": "<p>\u5c06 <code>interval</code> \u8f93\u51fa\u51fd\u6570\u6807\u8bb0\u4e3a stable \u800c\u975e immutable\uff0c\u56e0\u4e3a\u5b83\u4f9d\u8d56\u4e8e <a href=\"/docs/15/runtime-config-client.html#GUC-INTERVALSTYLE\"><code>IntervalStyle</code></a>\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/a3d6264bb\">\u00a7</a></p>\n<p>\u4f8b\u5982\uff0c\u8fd9\u5c06\u5bfc\u81f4\u4f9d\u8d56\u4e8e <code>interval</code> \u503c\u6587\u672c\u8f93\u51fa\u7684\u7d22\u5f15\u521b\u5efa\u5931\u8d25\u3002</p>", "text": "\u5c06 interval \u8f93\u51fa\u51fd\u6570\u6807\u8bb0\u4e3a stable \u800c\u975e immutable\uff0c\u56e0\u4e3a\u5b83\u4f9d\u8d56\u4e8e IntervalStyle\uff08Tom Lane\uff09\u00a7 \u4f8b\u5982\uff0c\u8fd9\u5c06\u5bfc\u81f4\u4f9d\u8d56\u4e8e interval \u503c\u6587\u672c\u8f93\u51fa\u7684\u7d22\u5f15\u521b\u5efa\u5931\u8d25\u3002", "title": "\u5c06 interval \u8f93\u51fa\u51fd\u6570\u6807\u8bb0\u4e3a stable \u800c\u975e immutable\uff0c\u56e0\u4e3a\u5b83\u4f9d\u8d56\u4e8e IntervalStyle", "commits": ["a3d6264bb"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "d31738c546c944bde860582e59c86d23675d2c4df7b4d6c0c03f61468e4ace51", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["a3d6264bb"]], "identity_text": "Mark the interval output function as stable, not immutable, since it depends on IntervalStyle (Tom Lane) This will, for example, cause creation of indexes relying on the text output of interval values to fail.", "commit_aliases": ["a3d6264bb"], "source_commits": ["a3d6264bb"], "source_entry_id": "15.0/migration/014", "db_id": "a7bcf20d778520fa75606f6e9115e2ac", "patch_ids": ["aed87f0e34bbe902f3d4197e141e63af"], "statement_hash": "a1d2305a040ffdc9b89269722faba77662da5330340a8f55c03ed12aa907c8ab", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-c75b6a1704bcd98b", "migration": true}, {"id": "15.0-985e42614f983be6", "cves": [], "html": "<p>\u5728<a href=\"/docs/15/functions-datetime.html#FUNCTIONS-DATETIME-TABLE\" title=\"\u8868\u00a09.33.\u00a0\u65e5\u671f/\u65f6\u95f4\u51fd\u6570\">\u95f4\u9694\u8c03\u6574\u51fd\u6570</a>\u4e2d\u68c0\u6d4b\u6574\u6570\u6ea2\u51fa\uff08Joe Koshakow\uff09<a href=\"https://postgr.es/c/54bd1e43c\">\u00a7</a></p>\n<p>\u53d7\u5f71\u54cd\u7684\u51fd\u6570\u662f <code>justify_interval()</code>\u3001<code>justify_hours()</code> \u548c <code>justify_days()</code>\u3002</p>", "text": "\u5728\u95f4\u9694\u8c03\u6574\u51fd\u6570\u4e2d\u68c0\u6d4b\u6574\u6570\u6ea2\u51fa\uff08Joe Koshakow\uff09\u00a7 \u53d7\u5f71\u54cd\u7684\u51fd\u6570\u662f justify_interval()\u3001justify_hours() \u548c justify_days()\u3002", "title": "\u5728\u95f4\u9694\u8c03\u6574\u51fd\u6570\u4e2d\u68c0\u6d4b\u6574\u6570\u6ea2\u51fa", "commits": ["54bd1e43c"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "9eeeac96ddb2adc0e39578a09e5f04995030c2fbcbdbd3a46bd3ac827ed7fad6", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["54bd1e43c"]], "identity_text": "Detect integer overflow in interval justification functions (Joe Koshakow) The affected functions are justify_interval(), justify_hours(), and justify_days().", "commit_aliases": ["54bd1e43c"], "source_commits": ["54bd1e43c"], "source_entry_id": "15.0/migration/015", "db_id": "1853f61a8e5bae4d309d69f45fd7983f", "patch_ids": ["bbf766386bfbd78fe1a5692e958b6e0a"], "statement_hash": "789b63459b7af2a1fd8c147365338e326b97fc1c7e716c730101869840238476", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-985e42614f983be6", "migration": true}, {"id": "15.0-b436fe3ac59812cf", "cves": [], "html": "<p>\u66f4\u6539\u7c7b\u578b <code>\"char\"</code> \u975e ASCII \u5b57\u7b26\u7684 I/O \u683c\u5f0f\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/c034b629c\">\u00a7</a></p>\n<p>\u9ad8\u4f4d\u88ab\u8bbe\u7f6e\u7684\u5b57\u8282\u73b0\u5728\u8f93\u51fa\u4e3a\u53cd\u659c\u6760\u548c\u4e09\u4e2a\u516b\u8fdb\u5236\u6570\u5b57\uff0c\u4ee5\u907f\u514d\u7f16\u7801\u95ee\u9898\u3002</p>", "text": "\u66f4\u6539\u7c7b\u578b \"char\" \u975e ASCII \u5b57\u7b26\u7684 I/O \u683c\u5f0f\uff08Tom Lane\uff09\u00a7 \u9ad8\u4f4d\u88ab\u8bbe\u7f6e\u7684\u5b57\u8282\u73b0\u5728\u8f93\u51fa\u4e3a\u53cd\u659c\u6760\u548c\u4e09\u4e2a\u516b\u8fdb\u5236\u6570\u5b57\uff0c\u4ee5\u907f\u514d\u7f16\u7801\u95ee\u9898\u3002", "title": "\u66f4\u6539\u7c7b\u578b \"char\" \u975e ASCII \u5b57\u7b26\u7684 I/O \u683c\u5f0f", "commits": ["c034b629c"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "0b5034f53ef55356e8d85215757a5b33ee21b2f7203216b0fbcc54c21ef293f3", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["c034b629c"]], "identity_text": "Change the I/O format of type \"char\" for non-ASCII characters (Tom Lane) Bytes with the high bit set are now output as a backslash and three octal digits, to avoid encoding issues.", "commit_aliases": ["c034b629c"], "source_commits": ["c034b629c"], "source_entry_id": "15.0/migration/016", "db_id": "c801ad85320584635310c2f5de2dadbc", "patch_ids": ["9cb7c33ebae6b8b3e1c38c489e53275c"], "statement_hash": "aa5f3bdc76aacaec9f2ccfe5fba7d2f9a98552ca69ff67251008a69dbca021bc", "relations": [{"rule": 2, "type": "related", "target": "53764c4fc79b416c6c79e206ea86914a", "evidence": {"same_day": true, "patch_ids": ["9cb7c33ebae6b8b3e1c38c489e53275c"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-b436fe3ac59812cf", "migration": true}, {"id": "15.0-850e76b0fc08295e", "cves": [], "html": "<p>\u79fb\u9664\u767b\u5f55\u89d2\u8272\u5bf9\u5176\u81ea\u8eab\u89d2\u8272\u6210\u5458\u8d44\u683c\u7684\u9ed8\u8ba4 <a href=\"/docs/15/sql-createrole.html\" title=\"CREATE ROLE\"><code>ADMIN OPTION</code></a> \u6743\u9650\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/79de9842a\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u767b\u5f55\u89d2\u8272\u5373\u4f7f\u6ca1\u6709 <code>ADMIN OPTION</code> \u6743\u9650\u4e5f\u53ef\u4ee5\u6dfb\u52a0/\u79fb\u9664\u5176\u81ea\u8eab\u89d2\u8272\u7684\u6210\u5458\u3002</p>", "text": "\u79fb\u9664\u767b\u5f55\u89d2\u8272\u5bf9\u5176\u81ea\u8eab\u89d2\u8272\u6210\u5458\u8d44\u683c\u7684\u9ed8\u8ba4 ADMIN OPTION \u6743\u9650\uff08Robert Haas\uff09\u00a7 \u4ee5\u524d\uff0c\u767b\u5f55\u89d2\u8272\u5373\u4f7f\u6ca1\u6709 ADMIN OPTION \u6743\u9650\u4e5f\u53ef\u4ee5\u6dfb\u52a0/\u79fb\u9664\u5176\u81ea\u8eab\u89d2\u8272\u7684\u6210\u5458\u3002", "title": "\u79fb\u9664\u767b\u5f55\u89d2\u8272\u5bf9\u5176\u81ea\u8eab\u89d2\u8272\u6210\u5458\u8d44\u683c\u7684\u9ed8\u8ba4 ADMIN OPTION \u6743\u9650", "commits": ["79de9842a"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "fca9e9a67721d11f75c6d6e3c6b126922d1eaa122c8624be2b5b9f1418e7e7ec", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["79de9842a"]], "identity_text": "Remove the default ADMIN OPTION privilege a login role has on its own role membership (Robert Haas) Previously, a login role could add/remove members of its own role, even without ADMIN OPTION privilege.", "commit_aliases": ["79de9842a"], "source_commits": ["79de9842a"], "source_entry_id": "15.0/migration/017", "db_id": "42ea21d25d3b090ab9c0c6cdaf770ce9", "patch_ids": ["5881200cfcd9766081cc84e9b32bf730"], "statement_hash": "e270c3318750c1f97ffe6c4f4e011ab132801dec980f4a755d292c29b9410a14", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-850e76b0fc08295e", "migration": true}, {"id": "15.0-55b3e150fe49dd73", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/15/logical-replication.html\" title=\"\u7b2c\u00a031\u00a0\u7ae0\u00a0\u903b\u8f91\u590d\u5236\">\u903b\u8f91\u590d\u5236</a>\u4ee5\u8ba2\u9605\u7684\u6240\u6709\u8005\u8eab\u4efd\u8fd0\u884c\uff08Mark Dilger\uff09<a href=\"https://postgr.es/c/a2ab9c06e\">\u00a7</a></p>\n<p>\u56e0\u4e3a\u4e0d\u68c0\u67e5\u884c\u7ea7\u5b89\u5168\u7b56\u7565\uff0c\u6240\u4ee5\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u3001\u5177\u6709 <code>bypassrls</code> \u7684\u89d2\u8272\u548c\u8868\u6240\u6709\u8005\u624d\u80fd\u590d\u5236\u5230\u5177\u6709\u884c\u7ea7\u5b89\u5168\u7b56\u7565\u7684\u8868\u4e2d\u3002</p>", "text": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u4ee5\u8ba2\u9605\u7684\u6240\u6709\u8005\u8eab\u4efd\u8fd0\u884c\uff08Mark Dilger\uff09\u00a7 \u56e0\u4e3a\u4e0d\u68c0\u67e5\u884c\u7ea7\u5b89\u5168\u7b56\u7565\uff0c\u6240\u4ee5\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u3001\u5177\u6709 bypassrls \u7684\u89d2\u8272\u548c\u8868\u6240\u6709\u8005\u624d\u80fd\u590d\u5236\u5230\u5177\u6709\u884c\u7ea7\u5b89\u5168\u7b56\u7565\u7684\u8868\u4e2d\u3002", "title": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u4ee5\u8ba2\u9605\u7684\u6240\u6709\u8005\u8eab\u4efd\u8fd0\u884c", "commits": ["a2ab9c06e"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "b7023bf968e11b430568df9ac6ebf8a14f469ea60b59124b4e37d030f0d3dc7d", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["a2ab9c06e"]], "identity_text": "Allow logical replication to run as the owner of the subscription (Mark Dilger) Because row-level security policies are not checked, only superusers, roles with bypassrls, and table owners can replicate into tables with row-level security policies.", "commit_aliases": ["a2ab9c06e"], "source_commits": ["a2ab9c06e"], "source_entry_id": "15.0/migration/018", "db_id": "3ee38526edddf410bddb9c8e22010efd", "patch_ids": ["ef59bd328c4f28874a544a094013116d"], "statement_hash": "c527a902dd06e0b5f455d8251371817fd843d20743945d8d560da076964e05c2", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-55b3e150fe49dd73", "migration": true}, {"id": "15.0-d99d18f308e23964", "cves": [], "html": "<p>\u9632\u6b62\u5728\u8ba2\u9605\u6240\u6709\u8005\u5bf9\u8868\u6ca1\u6709 <code>SELECT</code> \u6743\u9650\u7684\u8868\u4e0a\u6267\u884c <code>UPDATE</code> \u548c <code>DELETE</code> <a href=\"/docs/15/logical-replication.html\" title=\"\u7b2c\u00a031\u00a0\u7ae0\u00a0\u903b\u8f91\u590d\u5236\">\u903b\u8f91\u590d\u5236</a>\u64cd\u4f5c\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/96a6f11c0\">\u00a7</a></p>\n<p><code>UPDATE</code> \u548c <code>DELETE</code> \u547d\u4ee4\u901a\u5e38\u4e5f\u6d89\u53ca\u8bfb\u53d6\u8868\uff0c\u56e0\u6b64\u8981\u6c42\u8ba2\u9605\u6240\u6709\u8005\u5177\u6709\u8868\u7684 <code>SELECT</code> \u6743\u9650\u3002</p>", "text": "\u9632\u6b62\u5728\u8ba2\u9605\u6240\u6709\u8005\u5bf9\u8868\u6ca1\u6709 SELECT \u6743\u9650\u7684\u8868\u4e0a\u6267\u884c UPDATE \u548c DELETE \u903b\u8f91\u590d\u5236\u64cd\u4f5c\uff08Jeff Davis\uff09\u00a7 UPDATE \u548c DELETE \u547d\u4ee4\u901a\u5e38\u4e5f\u6d89\u53ca\u8bfb\u53d6\u8868\uff0c\u56e0\u6b64\u8981\u6c42\u8ba2\u9605\u6240\u6709\u8005\u5177\u6709\u8868\u7684 SELECT \u6743\u9650\u3002", "title": "\u9632\u6b62\u5728\u8ba2\u9605\u6240\u6709\u8005\u5bf9\u8868\u6ca1\u6709 SELECT \u6743\u9650\u7684\u8868\u4e0a\u6267\u884c UPDATE \u548c DELETE \u903b\u8f91\u590d\u5236\u64cd\u4f5c", "commits": ["96a6f11c0"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "4ccbbb014c113191fef2f531fac098294a525d51fcaa0451d83c3b4b732fecca", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["96a6f11c0"]], "identity_text": "Prevent UPDATE and DELETE logical replication operations on tables where the subscription owner does not have SELECT permission on the table (Jeff Davis) UPDATE and DELETE commands typically involve reading the table as well, so require the subscription owner to have table SELECT permission.", "commit_aliases": ["96a6f11c0"], "source_commits": ["96a6f11c0"], "source_entry_id": "15.0/migration/019", "db_id": "a51f47f1dc334fc2afaa18007f0fe2e9", "patch_ids": ["fa16d101707807f2f03f1bac689f1ff8"], "statement_hash": "485f35867d4567cb79e33f30247601b0358eda42ca3242c62072bf8bc5ce8018", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-d99d18f308e23964", "migration": true}, {"id": "15.0-4f9111587a724222", "cves": [], "html": "<p>\u5f53 <a href=\"/docs/15/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN</code></a> \u5f15\u7528\u4f1a\u8bdd\u7684\u4e34\u65f6\u5bf9\u8c61\u6a21\u5f0f\u65f6\uff0c\u5c06\u5176\u79f0\u4e3a <code>pg_temp</code>\uff08Amul Sul\uff09<a href=\"https://postgr.es/c/48c5c9068\">\u00a7</a></p>\n<p>\u4ee5\u524d\u62a5\u544a\u7684\u662f\u5b9e\u9645\u6a21\u5f0f\u540d\u79f0\uff0c\u5bfc\u81f4\u4e0d\u540c\u4f1a\u8bdd\u4e4b\u95f4\u7684\u4e0d\u4e00\u81f4\u3002</p>", "text": "\u5f53 EXPLAIN \u5f15\u7528\u4f1a\u8bdd\u7684\u4e34\u65f6\u5bf9\u8c61\u6a21\u5f0f\u65f6\uff0c\u5c06\u5176\u79f0\u4e3a pg_temp\uff08Amul Sul\uff09\u00a7 \u4ee5\u524d\u62a5\u544a\u7684\u662f\u5b9e\u9645\u6a21\u5f0f\u540d\u79f0\uff0c\u5bfc\u81f4\u4e0d\u540c\u4f1a\u8bdd\u4e4b\u95f4\u7684\u4e0d\u4e00\u81f4\u3002", "title": "\u5f53 EXPLAIN \u5f15\u7528\u4f1a\u8bdd\u7684\u4e34\u65f6\u5bf9\u8c61\u6a21\u5f0f\u65f6\uff0c\u5c06\u5176\u79f0\u4e3a pg_temp", "commits": ["48c5c9068"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "c2b0226830703998ffc02206ce2b38ea6bdc212681c81cb4fc722432a77f55fa", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["48c5c9068"]], "identity_text": "When EXPLAIN references the session's temporary object schema, refer to it as pg_temp (Amul Sul) Previously the actual schema name was reported, leading to inconsistencies across sessions.", "commit_aliases": ["48c5c9068"], "source_commits": ["48c5c9068"], "source_entry_id": "15.0/migration/020", "db_id": "2013101724608cf7431b1ed546a21a1f", "patch_ids": ["223f09d3f4ba566ea2235fc2b1a2a5cd"], "statement_hash": "1f0e59df33ffe587ab6a0ff3d9bb7010681a8630ca1b8704c521c8ff8a504c03", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-4f9111587a724222", "migration": true}, {"id": "15.0-7d40c6908848a8f1", "cves": [], "html": "<p>\u4fee\u590d <a href=\"/docs/15/monitoring-stats.html#MONITORING-PG-STATIO-ALL-TABLES-VIEW\" title=\"28.2.19.\u00a0pg_statio_all_tables\"><code>pg_statio_all_tables</code></a> \u4ee5\u5728 <acronym>TOAST</acronym> \u8868\u5177\u6709\u591a\u4e2a\u7d22\u5f15\u7684\u7f55\u89c1\u60c5\u51b5\u4e0b\u6c42\u548c\u503c\uff08Andrei Zubkov\uff09<a href=\"https://postgr.es/c/ce95c5437\">\u00a7</a></p>\n<p>\u4ee5\u524d\u8fd9\u79cd\u60c5\u51b5\u4f1a\u4e3a\u6bcf\u4e2a\u7d22\u5f15\u663e\u793a\u4e00\u884c\u3002</p>", "text": "\u4fee\u590d pg_statio_all_tables \u4ee5\u5728 TOAST \u8868\u5177\u6709\u591a\u4e2a\u7d22\u5f15\u7684\u7f55\u89c1\u60c5\u51b5\u4e0b\u6c42\u548c\u503c\uff08Andrei Zubkov\uff09\u00a7 \u4ee5\u524d\u8fd9\u79cd\u60c5\u51b5\u4f1a\u4e3a\u6bcf\u4e2a\u7d22\u5f15\u663e\u793a\u4e00\u884c\u3002", "title": "\u4fee\u590d pg_statio_all_tables \u4ee5\u5728 TOAST \u8868\u5177\u6709\u591a\u4e2a\u7d22\u5f15\u7684\u7f55\u89c1\u60c5\u51b5\u4e0b\u6c42\u548c\u503c", "commits": ["ce95c5437"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "e4914f50216bdc17f6c57d890b0b44d4b07edf0bd6fe751f7f4579659fe312b1", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["ce95c5437"]], "identity_text": "Fix pg_statio_all_tables to sum values for the rare case of TOAST tables with multiple indexes (Andrei Zubkov) Previously such cases would show one row for each index.", "commit_aliases": ["ce95c5437"], "source_commits": ["ce95c5437"], "source_entry_id": "15.0/migration/021", "db_id": "f94ce9d9b6bd57f1aee7db91220c4dc9", "patch_ids": ["39acc960a6c22afda1e23149da55c16c"], "statement_hash": "350919116c11de53432c19d6cc6be7be66abab26cd5820438a71fb9e67dc0ac8", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-7d40c6908848a8f1", "migration": true}, {"id": "15.0-924eccc2f887d0f6", "cves": [], "html": "<p>\u7981\u6b62\u8bbe\u7f6e\u4e0e\u5df2\u5b89\u88c5\u6269\u5c55\u540d\u79f0\u5339\u914d\u4f46\u4e0d\u662f\u8be5\u6269\u5c55\u58f0\u660e\u7684\u53d8\u91cf\u4e4b\u4e00\u7684<a href=\"/docs/15/runtime-config-custom.html\" title=\"20.16.\u00a0\u81ea\u5b9a\u4e49\u9009\u9879\">\u81ea\u5b9a\u4e49\u9009\u9879</a>\uff08Florin Irion\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/75d22069e\">\u00a7</a> <a href=\"https://postgr.es/c/2ed8a8cc5\">\u00a7</a> <a href=\"https://postgr.es/c/88103567c\">\u00a7</a></p>\n<p>\u6b64\u53d8\u66f4\u5bfc\u81f4\u5728\u6269\u5c55\u52a0\u8f7d\u671f\u95f4\u5220\u9664\u4efb\u4f55\u6b64\u7c7b\u5df2\u5b58\u5728\u7684\u53d8\u91cf\uff0c\u7136\u540e\u9632\u6b62\u5728\u4f1a\u8bdd\u4e2d\u7a0d\u540e\u521b\u5efa\u65b0\u7684\u53d8\u91cf\u3002\u5176\u76ee\u7684\u662f\u9632\u6b62\u5173\u4e8e\u53d8\u91cf\u662f\u5426\u4e0e\u6269\u5c55\u5173\u8054\u7684\u6df7\u6dc6\u3002</p>", "text": "\u7981\u6b62\u8bbe\u7f6e\u4e0e\u5df2\u5b89\u88c5\u6269\u5c55\u540d\u79f0\u5339\u914d\u4f46\u4e0d\u662f\u8be5\u6269\u5c55\u58f0\u660e\u7684\u53d8\u91cf\u4e4b\u4e00\u7684\u81ea\u5b9a\u4e49\u9009\u9879\uff08Florin Irion\uff0cTom Lane\uff09\u00a7 \u00a7 \u00a7 \u6b64\u53d8\u66f4\u5bfc\u81f4\u5728\u6269\u5c55\u52a0\u8f7d\u671f\u95f4\u5220\u9664\u4efb\u4f55\u6b64\u7c7b\u5df2\u5b58\u5728\u7684\u53d8\u91cf\uff0c\u7136\u540e\u9632\u6b62\u5728\u4f1a\u8bdd\u4e2d\u7a0d\u540e\u521b\u5efa\u65b0\u7684\u53d8\u91cf\u3002\u5176\u76ee\u7684\u662f\u9632\u6b62\u5173\u4e8e\u53d8\u91cf\u662f\u5426\u4e0e\u6269\u5c55\u5173\u8054\u7684\u6df7\u6dc6\u3002", "title": "\u7981\u6b62\u8bbe\u7f6e\u4e0e\u5df2\u5b89\u88c5\u6269\u5c55\u540d\u79f0\u5339\u914d\u4f46\u4e0d\u662f\u8be5\u6269\u5c55\u58f0\u660e\u7684\u53d8\u91cf\u4e4b\u4e00\u7684\u81ea\u5b9a\u4e49\u9009\u9879", "commits": ["2ed8a8cc5", "75d22069e", "88103567c"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "60074f7648e4e3d989203c2f1dbd98e019a59276b658a95bb4558198f395c436", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["2ed8a8cc5"], ["75d22069e"], ["88103567c"]], "identity_text": "Disallow setting custom options that match the name of an installed extension, but are not one of the extension's declared variables (Florin Irion, Tom Lane) This change causes any such pre-existing variables to be deleted during extension load, and then prevents new ones from being created later in the session. The intent is to prevent confusion about whether a variable is associated with an extension or not.", "commit_aliases": ["2ed8a8cc5", "75d22069e", "88103567c"], "source_commits": ["2ed8a8cc5", "75d22069e", "88103567c"], "source_entry_id": "15.0/migration/022", "db_id": "19157574e8d1bb118f5045340885494c", "patch_ids": ["209e21ce3f51dfec2f70c6234fdc31b4", "a8e40f23a8b6b6592dea63e2df874e11", "e6e7dad2ebc099e6b2456cff2de6893d"], "statement_hash": "9d654ae1bb69ff9586915f0bca62c1aecd315ac5c00d53d18f97a850ee504252", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-924eccc2f887d0f6", "migration": true}, {"id": "15.0-c05ec3e69a204653", "cves": [], "html": "<p>\u79fb\u9664\u8fc7\u65f6\u7684\u670d\u52a1\u5668\u53d8\u91cf <code>stats_temp_directory</code>\uff08Andres Freund\uff0cKyotaro Horiguchi\uff09<a href=\"https://postgr.es/c/6f0cf8787\">\u00a7</a></p>", "text": "\u79fb\u9664\u8fc7\u65f6\u7684\u670d\u52a1\u5668\u53d8\u91cf stats_temp_directory\uff08Andres Freund\uff0cKyotaro Horiguchi\uff09\u00a7", "title": "\u79fb\u9664\u8fc7\u65f6\u7684\u670d\u52a1\u5668\u53d8\u91cf stats_temp_directory", "commits": ["6f0cf8787"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "4ff230e3e195617931e783ffedf8e9fb51f9dcc2fa0a5de7a2f43c6048caf9dc", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["6f0cf8787"]], "identity_text": "Remove obsolete server variable stats_temp_directory (Andres Freund, Kyotaro Horiguchi)", "commit_aliases": ["6f0cf8787"], "source_commits": ["6f0cf8787"], "source_entry_id": "15.0/migration/023", "db_id": "bb492baccd72002a8725ec65bc7a1591", "patch_ids": ["c72ab34c67ebad2d4b7c5f991e1cf747"], "statement_hash": "b2ef531cd4e4252f8768787b78d3a3322d1660fca2b716d1b997b0053c3a9283", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-c05ec3e69a204653", "migration": true}, {"id": "15.0-ccfb9015d816b9b6", "cves": [], "html": "<p>\u6539\u8fdb\u7528\u4e8e\u8ba1\u7b97 <a href=\"/docs/15/functions-math.html#FUNCTIONS-MATH-RANDOM-TABLE\" title=\"\u8868\u00a09.6.\u00a0\u968f\u673a\u51fd\u6570\"><code>random()</code></a> \u7684\u7b97\u6cd5\uff08Fabien Coelho\uff09<a href=\"https://postgr.es/c/3804539e4\">\u00a7</a> <a href=\"https://postgr.es/c/d4f109e4a\">\u00a7</a></p>\n<p>\u8fd9\u5c06\u5bfc\u81f4 <code>random()</code> \u7684\u7ed3\u679c\u4e0e\u4ee5\u524d\u7248\u672c\u53d1\u51fa\u7684\u7ed3\u679c\u4e0d\u540c\uff0c\u5373\u4f7f\u662f\u76f8\u540c\u7684\u79cd\u5b50\u503c\u3002</p>", "text": "\u6539\u8fdb\u7528\u4e8e\u8ba1\u7b97 random() \u7684\u7b97\u6cd5\uff08Fabien Coelho\uff09\u00a7 \u00a7 \u8fd9\u5c06\u5bfc\u81f4 random() \u7684\u7ed3\u679c\u4e0e\u4ee5\u524d\u7248\u672c\u53d1\u51fa\u7684\u7ed3\u679c\u4e0d\u540c\uff0c\u5373\u4f7f\u662f\u76f8\u540c\u7684\u79cd\u5b50\u503c\u3002", "title": "\u6539\u8fdb\u7528\u4e8e\u8ba1\u7b97 random() \u7684\u7b97\u6cd5", "commits": ["3804539e4", "d4f109e4a"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "7c0021395753af6cab39f9c4db2c71e0b6888b9fb7ec8f929afc1322c6abbe01", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["3804539e4"], ["d4f109e4a"]], "identity_text": "Improve the algorithm used to compute random() (Fabien Coelho) This will cause random()'s results to differ from what was emitted by prior versions, even for the same seed value.", "commit_aliases": ["3804539e4", "d4f109e4a"], "source_commits": ["3804539e4", "d4f109e4a"], "source_entry_id": "15.0/migration/024", "db_id": "ec19895fd12457735f892799ecb7e2eb", "patch_ids": ["8669b2372824f5dbbc14a7fd0781e67a", "ca5d4efeee3c6f0b0864e5f28fdb6ce8"], "statement_hash": "4411b01ff2f990a6ed952afe1afc5ccafd22036b0a4e849b43ec6f44b35285e5", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-ccfb9015d816b9b6", "migration": true}, {"id": "15.0-274b596d26f26fd6", "cves": [], "html": "<p><span>libpq</span> \u7684 <a href=\"/docs/15/libpq-async.html#LIBPQ-PQSENDQUERY\"><code>PQsendQuery()</code></a> \u51fd\u6570\u5728\u7ba1\u9053\u6a21\u5f0f\u4e0b\u4e0d\u518d\u88ab\u652f\u6301\uff08\u00c1lvaro Herrera\uff09<a href=\"https://postgr.es/c/bd8ac900d\">\u00a7</a></p>\n<p>\u4f7f\u7528\u8be5\u7ec4\u5408\u7684\u5e94\u7528\u7a0b\u5e8f\u9700\u8981\u4fee\u6539\u4e3a\u4f7f\u7528 <code>PQsendQueryParams()</code> \u4ee3\u66ff\u3002</p>", "text": "libpq \u7684 PQsendQuery() \u51fd\u6570\u5728\u7ba1\u9053\u6a21\u5f0f\u4e0b\u4e0d\u518d\u88ab\u652f\u6301\uff08\u00c1lvaro Herrera\uff09\u00a7 \u4f7f\u7528\u8be5\u7ec4\u5408\u7684\u5e94\u7528\u7a0b\u5e8f\u9700\u8981\u4fee\u6539\u4e3a\u4f7f\u7528 PQsendQueryParams() \u4ee3\u66ff\u3002", "title": "libpq \u7684 PQsendQuery() \u51fd\u6570\u5728\u7ba1\u9053\u6a21\u5f0f\u4e0b\u4e0d\u518d\u88ab\u652f\u6301", "commits": ["bd8ac900d"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "4373b529eed3d885f3265252a7e427062391a395d6eac7b90eba8446a67ccecd", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["bd8ac900d"]], "identity_text": "libpq's PQsendQuery() function is no longer supported in pipeline mode (\u00c1lvaro Herrera) Applications that are using that combination will need to be modified to use PQsendQueryParams() instead.", "commit_aliases": ["bd8ac900d"], "source_commits": ["bd8ac900d"], "source_entry_id": "15.0/migration/025", "db_id": "3567f9c80422bdfa5339c7aa024e375e", "patch_ids": ["b9d8eca04dd3d1d8d47fdc70a2b0ffd1"], "statement_hash": "e5d1a29d1d625a648657f894410f44976d628aeeafd32fe2991e321a182cfdff", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-274b596d26f26fd6", "migration": true}, {"id": "15.0-d7f020fc826074d3", "cves": [], "html": "<p>\u5728\u975e Windows \u5e73\u53f0\u4e0a\uff0c\u67e5\u8be2 <code>HOME</code> \u73af\u5883\u53d8\u91cf\u4ee5\u67e5\u627e\u7528\u6237\u7684\u4e3b\u76ee\u5f55\uff08Anders Kaseorg\uff09<a href=\"https://postgr.es/c/376ce3e40\">\u00a7</a></p>\n<p>\u5982\u679c <code>HOME</code> \u4e3a\u7a7a\u6216\u672a\u8bbe\u7f6e\uff0c\u5219\u56de\u9000\u5230\u5148\u524d\u7684\u65b9\u6cd5\uff0c\u68c0\u67e5 <code>&lt;pwd.h&gt;</code> \u6570\u636e\u5e93\u3002\u6b64\u53d8\u66f4\u5f71\u54cd <span>libpq</span>\uff08\u4f8b\u5982\uff0c\u5728\u67e5\u627e <code>~/.pgpass</code> \u65f6\uff09\u4ee5\u53ca\u5404\u79cd\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f\u3002</p>", "text": "\u5728\u975e Windows \u5e73\u53f0\u4e0a\uff0c\u67e5\u8be2 HOME \u73af\u5883\u53d8\u91cf\u4ee5\u67e5\u627e\u7528\u6237\u7684\u4e3b\u76ee\u5f55\uff08Anders Kaseorg\uff09\u00a7 \u5982\u679c HOME \u4e3a\u7a7a\u6216\u672a\u8bbe\u7f6e\uff0c\u5219\u56de\u9000\u5230\u5148\u524d\u7684\u65b9\u6cd5\uff0c\u68c0\u67e5 <pwd.h> \u6570\u636e\u5e93\u3002\u6b64\u53d8\u66f4\u5f71\u54cd libpq\uff08\u4f8b\u5982\uff0c\u5728\u67e5\u627e ~/.pgpass \u65f6\uff09\u4ee5\u53ca\u5404\u79cd\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f\u3002", "title": "\u5728\u975e Windows \u5e73\u53f0\u4e0a\uff0c\u67e5\u8be2 HOME \u73af\u5883\u53d8\u91cf\u4ee5\u67e5\u627e\u7528\u6237\u7684\u4e3b\u76ee\u5f55", "commits": ["376ce3e40"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "038c6471cfcaa4daccbdfa734108b1737fcb16c262828595fe018d39170dc904", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["376ce3e40"]], "identity_text": "On non-Windows platforms, consult the HOME environment variable to find the user's home directory (Anders Kaseorg) If HOME is empty or unset, fall back to the previous method of checking the <pwd.h> database. This change affects libpq (for example, while looking up ~/.pgpass) as well as various client application programs.", "commit_aliases": ["376ce3e40"], "source_commits": ["376ce3e40"], "source_entry_id": "15.0/migration/026", "db_id": "95a4c83b719b02257c91a0d179ab7a18", "patch_ids": ["f86f53d2759e297cfdf8b63a4d0b7fe5"], "statement_hash": "c90b8d9c08906887251463d6ad256c856278087ab22caeade3cb3de2806a4c10", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-d7f020fc826074d3", "migration": true}, {"id": "15.0-9df9b407d031db4b", "cves": [], "html": "<p>\u79fb\u9664<a href=\"/docs/15/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>\u7684 <code>--no-synchronized-snapshots</code> \u9009\u9879\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/2a712066d\">\u00a7</a></p>\n<p>\u6240\u6709\u4ecd\u53d7\u652f\u6301\u7684\u670d\u52a1\u5668\u7248\u672c\u90fd\u652f\u6301\u540c\u6b65\u5feb\u7167\uff0c\u56e0\u6b64\u4e0d\u518d\u9700\u8981\u6b64\u9009\u9879\u3002</p>", "text": "\u79fb\u9664pg_dump\u7684 --no-synchronized-snapshots \u9009\u9879\uff08Tom Lane\uff09\u00a7 \u6240\u6709\u4ecd\u53d7\u652f\u6301\u7684\u670d\u52a1\u5668\u7248\u672c\u90fd\u652f\u6301\u540c\u6b65\u5feb\u7167\uff0c\u56e0\u6b64\u4e0d\u518d\u9700\u8981\u6b64\u9009\u9879\u3002", "title": "\u79fb\u9664pg_dump\u7684 --no-synchronized-snapshots \u9009\u9879", "commits": ["2a712066d"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "a23e4b84e598f6a80a95cdd072430ce1c0f613a05d79140c8d3aca95eed746c4", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["2a712066d"]], "identity_text": "Remove pg_dump's --no-synchronized-snapshots option (Tom Lane) All still-supported server versions support synchronized snapshots, so there's no longer a need for this option.", "commit_aliases": ["2a712066d"], "source_commits": ["2a712066d"], "source_entry_id": "15.0/migration/027", "db_id": "fcd81dbb4d22dbc1b09fa769e7c4a49f", "patch_ids": ["36dcf9ecb4385cac43975fa62eda0fff"], "statement_hash": "28a2901bbe729f58299adfc6f2749d9284344d4bfeb85c3e33c3c107937228c7", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-9df9b407d031db4b", "migration": true}, {"id": "15.0-1fee1b72cff6c26f", "cves": [], "html": "<p>\u5728<a href=\"/docs/15/app-psql.html\" title=\"psql\"><span>psql</span></a>\u7684 <code>--single-transaction</code> \u6a21\u5f0f\u4e2d\u68c0\u6d4b\u5230\u9519\u8bef\u540e\uff0c\u4ec5\u5728\u8bbe\u7f6e\u4e86 <code>ON_ERROR_STOP</code> \u65f6\u624d\u5c06\u6700\u7ec8\u7684 <code>COMMIT</code> \u547d\u4ee4\u66f4\u6539\u4e3a <code>ROLLBACK</code>\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/a3ff08e0b\">\u00a7</a></p>", "text": "\u5728psql\u7684 --single-transaction \u6a21\u5f0f\u4e2d\u68c0\u6d4b\u5230\u9519\u8bef\u540e\uff0c\u4ec5\u5728\u8bbe\u7f6e\u4e86 ON_ERROR_STOP \u65f6\u624d\u5c06\u6700\u7ec8\u7684 COMMIT \u547d\u4ee4\u66f4\u6539\u4e3a ROLLBACK\uff08Michael Paquier\uff09\u00a7", "title": "\u5728psql\u7684 --single-transaction \u6a21\u5f0f\u4e2d\u68c0\u6d4b\u5230\u9519\u8bef\u540e\uff0c\u4ec5\u5728\u8bbe\u7f6e\u4e86 ON_ERROR_STOP \u65f6\u624d\u5c06\u6700\u7ec8\u7684 COMMIT \u547d\u4ee4\u66f4\u6539\u4e3a ROLLBACK", "commits": ["a3ff08e0b"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "2271bc9852977aca0dea851563fcbbaa06e5467a05887d971ca3f247b31e4571", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["a3ff08e0b"]], "identity_text": "After an error is detected in psql's --single-transaction mode, change the final COMMIT command to ROLLBACK only if ON_ERROR_STOP is set (Michael Paquier)", "commit_aliases": ["a3ff08e0b"], "source_commits": ["a3ff08e0b"], "source_entry_id": "15.0/migration/028", "db_id": "1a71bcc8d97d6a4f54b540eee9925da4", "patch_ids": ["36bb38c7a679d043da54a29068b3b082"], "statement_hash": "5403ed881e779b6626f6a1d3142f951bc3a2aef4a78989d39adf2b8a146a6fed", "relations": [{"rule": 2, "type": "related", "target": "34435455019e0b74e22b74b0d84bd533", "evidence": {"same_day": true, "patch_ids": ["36bb38c7a679d043da54a29068b3b082"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-1fee1b72cff6c26f", "migration": true}, {"id": "15.0-15fa1398ecd77bb7", "cves": [], "html": "<p>\u907f\u514d\u5728 <a href=\"/docs/15/postgres-fdw.html\" title=\"F.38.\u00a0postgres_fdw\">postgres_fdw</a> \u53d1\u9001\u7684\u67e5\u8be2\u4e2d\u5bf9\u5e38\u91cf\u8fdb\u884c\u4e0d\u5fc5\u8981\u7684\u7c7b\u578b\u8f6c\u6362\uff08Dian Fay\uff09<a href=\"https://postgr.es/c/f8abb0f5e\">\u00a7</a></p>\n<p>\u5f53\u672c\u5730\u548c\u8fdc\u7a0b\u6570\u636e\u5e93\u4e4b\u95f4\u7684\u5217\u7c7b\u578b\u6545\u610f\u4e0d\u540c\u65f6\uff0c\u8fd9\u79cd\u7c7b\u578b\u8f6c\u6362\u53ef\u80fd\u4f1a\u5bfc\u81f4\u9519\u8bef\u3002</p>", "text": "\u907f\u514d\u5728 postgres_fdw \u53d1\u9001\u7684\u67e5\u8be2\u4e2d\u5bf9\u5e38\u91cf\u8fdb\u884c\u4e0d\u5fc5\u8981\u7684\u7c7b\u578b\u8f6c\u6362\uff08Dian Fay\uff09\u00a7 \u5f53\u672c\u5730\u548c\u8fdc\u7a0b\u6570\u636e\u5e93\u4e4b\u95f4\u7684\u5217\u7c7b\u578b\u6545\u610f\u4e0d\u540c\u65f6\uff0c\u8fd9\u79cd\u7c7b\u578b\u8f6c\u6362\u53ef\u80fd\u4f1a\u5bfc\u81f4\u9519\u8bef\u3002", "title": "\u907f\u514d\u5728 postgres_fdw \u53d1\u9001\u7684\u67e5\u8be2\u4e2d\u5bf9\u5e38\u91cf\u8fdb\u884c\u4e0d\u5fc5\u8981\u7684\u7c7b\u578b\u8f6c\u6362", "commits": ["f8abb0f5e"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "39dd301f2d7e744127603492b7fc9994fce58a479b57ab814810ada16732be47", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["f8abb0f5e"]], "identity_text": "Avoid unnecessary casting of constants in queries sent by postgres_fdw (Dian Fay) When column types are intentionally different between local and remote databases, such casts could cause errors.", "commit_aliases": ["f8abb0f5e"], "source_commits": ["f8abb0f5e"], "source_entry_id": "15.0/migration/029", "db_id": "16c5cd4da5391eb1bf388c596e0a28ed", "patch_ids": ["34676fc01ba618e302c6bdfde0a999da"], "statement_hash": "da62e2c1136052d62c502e9c270d269540d13ffdc3ec04f23afe0e9415153e3c", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-15fa1398ecd77bb7", "migration": true}, {"id": "15.0-52988333f92c48c7", "cves": [], "html": "<p>\u79fb\u9664 <a href=\"/docs/15/xml2.html\" title=\"F.50.\u00a0xml2\">xml2</a> \u7684 <code>xml_is_well_formed()</code> \u51fd\u6570\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/fd2abeb7c\">\u00a7</a></p>\n<p>\u6b64\u51fd\u6570\u81ea Postgres 9.1 \u4ee5\u6765\u5df2\u5728\u6838\u5fc3\u540e\u7aef\u4e2d\u5b9e\u73b0\u3002</p>", "text": "\u79fb\u9664 xml2 \u7684 xml_is_well_formed() \u51fd\u6570\uff08Tom Lane\uff09\u00a7 \u6b64\u51fd\u6570\u81ea Postgres 9.1 \u4ee5\u6765\u5df2\u5728\u6838\u5fc3\u540e\u7aef\u4e2d\u5b9e\u73b0\u3002", "title": "\u79fb\u9664 xml2 \u7684 xml_is_well_formed() \u51fd\u6570", "commits": ["fd2abeb7c"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "7b978e7b8a6ccddd291c7984cc8026d7f7ae10298062961a8fe93aefee18073f", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["fd2abeb7c"]], "identity_text": "Remove xml2's xml_is_well_formed() function (Tom Lane) This function has been implemented in the core backend since Postgres 9.1.", "commit_aliases": ["fd2abeb7c"], "source_commits": ["fd2abeb7c"], "source_entry_id": "15.0/migration/030", "db_id": "f23538bb4a599966cc71e0d3d97ab960", "patch_ids": ["71fc350a5d1e827c839116b36b55f8cf"], "statement_hash": "2abc644ce55482d9660bfb750b164b5f5b95f179e474a67271b776e36579576a", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-52988333f92c48c7", "migration": true}, {"id": "15.0-cb53c5d00f6e83c7", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/15/custom-scan.html\" title=\"\u7b2c\u00a061\u00a0\u7ae0\u00a0\u7f16\u5199\u81ea\u5b9a\u4e49\u626b\u63cf\u63d0\u4f9b\u8005\">\u81ea\u5b9a\u4e49\u626b\u63cf\u63d0\u4f9b\u8005</a>\u6307\u793a\u5b83\u4eec\u662f\u5426\u652f\u6301\u6295\u5f71\uff08Sven Klemm\uff09<a href=\"https://postgr.es/c/955b3e0f9\">\u00a7</a></p>\n<p>\u73b0\u5728\u9ed8\u8ba4\u5047\u8bbe\u81ea\u5b9a\u4e49\u626b\u63cf\u63d0\u4f9b\u8005\u4e0d\u652f\u6301\u6295\u5f71\uff1b\u652f\u6301\u6295\u5f71\u7684\u63d0\u4f9b\u8005\u9700\u8981\u4e3a\u6b64\u7248\u672c\u8fdb\u884c\u66f4\u65b0\u3002</p>", "text": "\u5141\u8bb8\u81ea\u5b9a\u4e49\u626b\u63cf\u63d0\u4f9b\u8005\u6307\u793a\u5b83\u4eec\u662f\u5426\u652f\u6301\u6295\u5f71\uff08Sven Klemm\uff09\u00a7 \u73b0\u5728\u9ed8\u8ba4\u5047\u8bbe\u81ea\u5b9a\u4e49\u626b\u63cf\u63d0\u4f9b\u8005\u4e0d\u652f\u6301\u6295\u5f71\uff1b\u652f\u6301\u6295\u5f71\u7684\u63d0\u4f9b\u8005\u9700\u8981\u4e3a\u6b64\u7248\u672c\u8fdb\u884c\u66f4\u65b0\u3002", "title": "\u5141\u8bb8\u81ea\u5b9a\u4e49\u626b\u63cf\u63d0\u4f9b\u8005\u6307\u793a\u5b83\u4eec\u662f\u5426\u652f\u6301\u6295\u5f71", "commits": ["955b3e0f9"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT2-36", "source_hash": "6ee39ca1177d00130e5d731bcebd4d1408700bd96bbf410f437865d2950e8476", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["955b3e0f9"]], "identity_text": "Allow custom scan providers to indicate if they support projections (Sven Klemm) The default is now that custom scan providers are assumed to not support projections; those that do will need to be updated for this release.", "commit_aliases": ["955b3e0f9"], "source_commits": ["955b3e0f9"], "source_entry_id": "15.0/migration/031", "db_id": "abb52bc53d91498abe89ec4e3b7a5add", "patch_ids": ["6c6ca3d3f689899832a70969667300aa"], "statement_hash": "ff8d6319752c158df983fb2994ff7bf88ff8cd75c7b3e8eb38161a80370c53d5", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=15.0#15.0-cb53c5d00f6e83c7", "migration": true}, {"id": "15.0-2df3d2f3347b43d6", "cves": [], "html": "<p>\u8bb0\u5f55\u5e76\u68c0\u67e5\u6bcf\u4e2a<a href=\"/docs/15/sql-createdatabase.html\" title=\"CREATE DATABASE\">\u6570\u636e\u5e93</a>\u7684\u6392\u5e8f\u89c4\u5219\u7248\u672c\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/37851a8b8\">\u00a7</a></p>\n<p>\u6b64\u529f\u80fd\u65e8\u5728\u68c0\u6d4b\u6392\u5e8f\u89c4\u5219\u7248\u672c\u53d8\u66f4\u4ee5\u907f\u514d\u7d22\u5f15\u635f\u574f\u3002\u51fd\u6570 <code>pg_database_collation_actual_version()</code> \u62a5\u544a\u5e95\u5c42\u64cd\u4f5c\u7cfb\u7edf\u7684\u6392\u5e8f\u89c4\u5219\u7248\u672c\uff0c\u800c <code>ALTER DATABASE ... REFRESH</code> \u5c06\u8bb0\u5f55\u7684\u6570\u636e\u5e93\u6392\u5e8f\u89c4\u5219\u7248\u672c\u8bbe\u7f6e\u4e3a\u4e0e\u64cd\u4f5c\u7cfb\u7edf\u6392\u5e8f\u89c4\u5219\u7248\u672c\u5339\u914d\u3002</p>", "text": "\u8bb0\u5f55\u5e76\u68c0\u67e5\u6bcf\u4e2a\u6570\u636e\u5e93\u7684\u6392\u5e8f\u89c4\u5219\u7248\u672c\uff08Peter Eisentraut\uff09\u00a7 \u6b64\u529f\u80fd\u65e8\u5728\u68c0\u6d4b\u6392\u5e8f\u89c4\u5219\u7248\u672c\u53d8\u66f4\u4ee5\u907f\u514d\u7d22\u5f15\u635f\u574f\u3002\u51fd\u6570 pg_database_collation_actual_version() \u62a5\u544a\u5e95\u5c42\u64cd\u4f5c\u7cfb\u7edf\u7684\u6392\u5e8f\u89c4\u5219\u7248\u672c\uff0c\u800c ALTER DATABASE ... REFRESH \u5c06\u8bb0\u5f55\u7684\u6570\u636e\u5e93\u6392\u5e8f\u89c4\u5219\u7248\u672c\u8bbe\u7f6e\u4e3a\u4e0e\u64cd\u4f5c\u7cfb\u7edf\u6392\u5e8f\u89c4\u5219\u7248\u672c\u5339\u914d\u3002", "title": "\u8bb0\u5f55\u5e76\u68c0\u67e5\u6bcf\u4e2a\u6570\u636e\u5e93\u7684\u6392\u5e8f\u89c4\u5219\u7248\u672c", "commits": ["37851a8b8"], "section": "\u670d\u52a1\u5668", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-1", "source_hash": "8d63881a81e344cfd537982109f5e653f89fbbd4205ec2c0ea69cc54d0a2e370", "section_path": ["\u670d\u52a1\u5668"], "commit_groups": [["37851a8b8"]], "identity_text": "Record and check the collation version of each database (Peter Eisentraut) This feature is designed to detect collation version changes to avoid index corruption. Function pg_database_collation_actual_version() reports the underlying operating system collation version, and ALTER DATABASE ... REFRESH sets the recorded database collation version to match the operating system collation version.", "commit_aliases": ["37851a8b8"], "source_commits": ["37851a8b8"], "source_entry_id": "15.0/changes/001", "db_id": "cb6b839096c8b7a7912a6d84dffbfbc7", "patch_ids": ["77f11be83e1c948d164b302aa7770cff"], "statement_hash": "e0507d5643e00ee5f61cd788512add7319e1b75b24c091897fe60760b3bde833", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-2df3d2f3347b43d6", "migration": false}, {"id": "15.0-e94d741b7577ce4e", "cves": [], "html": "<p>\u5141\u8bb8\u5c06 <a href=\"/docs/15/charset.html#LOCALE\" title=\"24.1.\u00a0\u533a\u57df\u8bbe\u7f6e\u652f\u6301\"><acronym>ICU</acronym></a> \u6392\u5e8f\u89c4\u5219\u8bbe\u7f6e\u4e3a\u96c6\u7c07\u548c\u6570\u636e\u5e93\u7684\u9ed8\u8ba4\u503c\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/f2553d430\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u53ea\u80fd\u5728\u96c6\u7c07\u548c\u6570\u636e\u5e93\u7ea7\u522b\u9009\u62e9\u57fa\u4e8e <span>libc</span> \u7684\u6392\u5e8f\u89c4\u5219\u3002<acronym>ICU</acronym> \u6392\u5e8f\u89c4\u5219\u53ea\u80fd\u901a\u8fc7\u663e\u5f0f\u7684 <code>COLLATE</code> \u5b50\u53e5\u4f7f\u7528\u3002</p>", "text": "\u5141\u8bb8\u5c06 ICU \u6392\u5e8f\u89c4\u5219\u8bbe\u7f6e\u4e3a\u96c6\u7c07\u548c\u6570\u636e\u5e93\u7684\u9ed8\u8ba4\u503c\uff08Peter Eisentraut\uff09\u00a7 \u4ee5\u524d\uff0c\u53ea\u80fd\u5728\u96c6\u7c07\u548c\u6570\u636e\u5e93\u7ea7\u522b\u9009\u62e9\u57fa\u4e8e libc \u7684\u6392\u5e8f\u89c4\u5219\u3002ICU \u6392\u5e8f\u89c4\u5219\u53ea\u80fd\u901a\u8fc7\u663e\u5f0f\u7684 COLLATE \u5b50\u53e5\u4f7f\u7528\u3002", "title": "\u5141\u8bb8\u5c06 ICU \u6392\u5e8f\u89c4\u5219\u8bbe\u7f6e\u4e3a\u96c6\u7c07\u548c\u6570\u636e\u5e93\u7684\u9ed8\u8ba4\u503c", "commits": ["f2553d430"], "section": "\u670d\u52a1\u5668", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-1", "source_hash": "4cfb7b4d9260a0df3dc38aa310c5b75cf4d13fdfc09a0be1b207663b7f177997", "section_path": ["\u670d\u52a1\u5668"], "commit_groups": [["f2553d430"]], "identity_text": "Allow ICU collations to be set as the default for clusters and databases (Peter Eisentraut) Previously, only libc-based collations could be selected at the cluster and database levels. ICU collations could only be used via explicit COLLATE clauses.", "commit_aliases": ["f2553d430"], "source_commits": ["f2553d430"], "source_entry_id": "15.0/changes/002", "db_id": "e923f3d75e1a6d1ac2d2e17c68e9cdd6", "patch_ids": ["6520afe95cec3ec2a9eb57b3fffe2395"], "statement_hash": "c1490f4fbf9d9fd8650c62e97580832bf8caaf29c23cbbdac5bc7530d7aa18c7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-e94d741b7577ce4e", "migration": false}, {"id": "15.0-54bca48ba33a005c", "cves": [], "html": "<p>\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/15/view-pg-ident-file-mappings.html\" title=\"54.10.\u00a0pg_ident_file_mappings\"><code>pg_ident_file_mappings</code></a> \u4ee5\u62a5\u544a <code>pg_ident.conf</code> \u4fe1\u606f\uff08Julien Rouhaud\uff09<a href=\"https://postgr.es/c/a2c84990b\">\u00a7</a></p>", "text": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_ident_file_mappings \u4ee5\u62a5\u544a pg_ident.conf \u4fe1\u606f\uff08Julien Rouhaud\uff09\u00a7", "title": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_ident_file_mappings \u4ee5\u62a5\u544a pg_ident.conf \u4fe1\u606f", "commits": ["a2c84990b"], "section": "\u670d\u52a1\u5668", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-1", "source_hash": "b91fe8c8376d5707b3a72b03e9ae028699e332fe033bb149a4d05ef252f6db06", "section_path": ["\u670d\u52a1\u5668"], "commit_groups": [["a2c84990b"]], "identity_text": "Add system view pg_ident_file_mappings to report pg_ident.conf information (Julien Rouhaud)", "commit_aliases": ["a2c84990b"], "source_commits": ["a2c84990b"], "source_entry_id": "15.0/changes/003", "db_id": "fe0f06d48040137be5ce910e67ab8ead", "patch_ids": ["cc916defdc6184c1a4cb6bc146810356"], "statement_hash": "4e2d56c83c7d5801a286e033f711933c48add686195956d144901fe8d4731bbd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-54bca48ba33a005c", "migration": false}, {"id": "15.0-2d52a191c9e53a45", "cves": [], "html": "<p>\u6539\u8fdb\u5f15\u7528\u5206\u533a\u8868\u7684\u67e5\u8be2\u7684\u89c4\u5212\u65f6\u95f4\uff08David Rowley\uff09<a href=\"https://postgr.es/c/475dbd0b7\">\u00a7</a></p>\n<p>\u6b64\u53d8\u66f4\u5728\u53ea\u6709\u5c11\u6570\u5206\u533a\u76f8\u5173\u65f6\u6709\u6240\u5e2e\u52a9\u3002</p>", "text": "\u6539\u8fdb\u5f15\u7528\u5206\u533a\u8868\u7684\u67e5\u8be2\u7684\u89c4\u5212\u65f6\u95f4\uff08David Rowley\uff09\u00a7 \u6b64\u53d8\u66f4\u5728\u53ea\u6709\u5c11\u6570\u5206\u533a\u76f8\u5173\u65f6\u6709\u6240\u5e2e\u52a9\u3002", "title": "\u6539\u8fdb\u5f15\u7528\u5206\u533a\u8868\u7684\u67e5\u8be2\u7684\u89c4\u5212\u65f6\u95f4", "commits": ["475dbd0b7"], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-1", "source_hash": "5f6d5cd2f65ed2944e4f876372471d0d6a02290dccec4420ac56e6b8aaede205", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["475dbd0b7"]], "identity_text": "Improve planning time for queries referencing partitioned tables (David Rowley) This change helps when only a few of many partitions are relevant.", "commit_aliases": ["475dbd0b7"], "source_commits": ["475dbd0b7"], "source_entry_id": "15.0/changes/004", "db_id": "42c36cdbd22eff0a1795dd7415128af5", "patch_ids": ["37f4d176b6db4893294360b2c5967c0b"], "statement_hash": "dc9e9ccd8b0c6279ec85307a0a3c8a544bd6c5dd5a7af4f08ca686dff1e6a916", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-2d52a191c9e53a45", "migration": false}, {"id": "15.0-20a6ee2fb1684b1a", "cves": [], "html": "<p>\u5141\u8bb8\u5206\u533a\u7684\u6709\u5e8f\u626b\u63cf\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u907f\u514d\u6392\u5e8f\uff08David Rowley\uff09<a href=\"https://postgr.es/c/db632fbca\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u5177\u6709 <code>DEFAULT</code> \u5206\u533a\u6216\u5305\u542b\u591a\u4e2a\u503c\u7684 <code>LIST</code> \u5206\u533a\u7684\u5206\u533a\u8868\u4e0d\u80fd\u7528\u4e8e\u6709\u5e8f\u5206\u533a\u626b\u63cf\u3002\u73b0\u5728\uff0c\u5982\u679c\u8fd9\u4e9b\u5206\u533a\u5728\u89c4\u5212\u671f\u95f4\u88ab\u526a\u679d\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528\u5b83\u4eec\u3002</p>", "text": "\u5141\u8bb8\u5206\u533a\u7684\u6709\u5e8f\u626b\u63cf\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u907f\u514d\u6392\u5e8f\uff08David Rowley\uff09\u00a7 \u4ee5\u524d\uff0c\u5177\u6709 DEFAULT \u5206\u533a\u6216\u5305\u542b\u591a\u4e2a\u503c\u7684 LIST \u5206\u533a\u7684\u5206\u533a\u8868\u4e0d\u80fd\u7528\u4e8e\u6709\u5e8f\u5206\u533a\u626b\u63cf\u3002\u73b0\u5728\uff0c\u5982\u679c\u8fd9\u4e9b\u5206\u533a\u5728\u89c4\u5212\u671f\u95f4\u88ab\u526a\u679d\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528\u5b83\u4eec\u3002", "title": "\u5141\u8bb8\u5206\u533a\u7684\u6709\u5e8f\u626b\u63cf\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u907f\u514d\u6392\u5e8f", "commits": ["db632fbca"], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-1", "source_hash": "a28e6edb6826ca6d236345e871276b41cd0a7f1eae1d2064f5308214d1e61118", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["db632fbca"]], "identity_text": "Allow ordered scans of partitions to avoid sorting in more cases (David Rowley) Previously, a partitioned table with a DEFAULT partition or a LIST partition containing multiple values could not be used for ordered partition scans. Now they can be used if such partitions are pruned during planning.", "commit_aliases": ["db632fbca"], "source_commits": ["db632fbca"], "source_entry_id": "15.0/changes/005", "db_id": "51b1286e581c07b6ca114d14ee5067da", "patch_ids": ["07373f34bd5bda52984ebd8bbaf2ccb3"], "statement_hash": "bb3fcb81d3dfb4f1c7bc9d96f522a6710c487b058898b1138695bac1ba69c90e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-20a6ee2fb1684b1a", "migration": false}, {"id": "15.0-add97550991b5988", "cves": [], "html": "<p>\u6539\u8fdb\u5728\u5206\u533a\u8868\u4e0a\u6267\u884c\u5c06\u884c\u5728\u5206\u533a\u4e4b\u95f4\u79fb\u52a8\u7684\u66f4\u65b0\u65f6\u7684\u5916\u952e\u884c\u4e3a\uff08Amit Langote\uff09<a href=\"https://postgr.es/c/ba9a7e392\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u8fd9\u6837\u7684\u66f4\u65b0\u5728\u6e90\u5206\u533a\u4e0a\u8fd0\u884c\u5220\u9664\u64cd\u4f5c\uff0c\u5728\u76ee\u6807\u5206\u533a\u4e0a\u8fd0\u884c\u63d2\u5165\u64cd\u4f5c\u3002<span>PostgreSQL</span> \u73b0\u5728\u5c06\u5728\u5206\u533a\u6839\u4e0a\u8fd0\u884c\u66f4\u65b0\u64cd\u4f5c\uff0c\u63d0\u4f9b\u66f4\u6e05\u6670\u7684\u8bed\u4e49\u3002</p>", "text": "\u6539\u8fdb\u5728\u5206\u533a\u8868\u4e0a\u6267\u884c\u5c06\u884c\u5728\u5206\u533a\u4e4b\u95f4\u79fb\u52a8\u7684\u66f4\u65b0\u65f6\u7684\u5916\u952e\u884c\u4e3a\uff08Amit Langote\uff09\u00a7 \u4ee5\u524d\uff0c\u8fd9\u6837\u7684\u66f4\u65b0\u5728\u6e90\u5206\u533a\u4e0a\u8fd0\u884c\u5220\u9664\u64cd\u4f5c\uff0c\u5728\u76ee\u6807\u5206\u533a\u4e0a\u8fd0\u884c\u63d2\u5165\u64cd\u4f5c\u3002PostgreSQL \u73b0\u5728\u5c06\u5728\u5206\u533a\u6839\u4e0a\u8fd0\u884c\u66f4\u65b0\u64cd\u4f5c\uff0c\u63d0\u4f9b\u66f4\u6e05\u6670\u7684\u8bed\u4e49\u3002", "title": "\u6539\u8fdb\u5728\u5206\u533a\u8868\u4e0a\u6267\u884c\u5c06\u884c\u5728\u5206\u533a\u4e4b\u95f4\u79fb\u52a8\u7684\u66f4\u65b0\u65f6\u7684\u5916\u952e\u884c\u4e3a", "commits": ["ba9a7e392"], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-1", "source_hash": "71571305576e3a6d9b32bbcd9f117c4129d1469dd2b31cf80b8fa810099d3a71", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["ba9a7e392"]], "identity_text": "Improve foreign key behavior of updates on partitioned tables that move rows between partitions (Amit Langote) Previously, such updates ran a delete action on the source partition and an insert action on the target partition. PostgreSQL will now run an update action on the partition root, providing cleaner semantics.", "commit_aliases": ["ba9a7e392"], "source_commits": ["ba9a7e392"], "source_entry_id": "15.0/changes/006", "db_id": "10a5202ba81334ba3987e46783795423", "patch_ids": ["be2800668bca6bd07954e469ea4d0223"], "statement_hash": "56054a75413541244252b04426631f6bcc3d51aaa0e6ae83d2f054846dcbc721", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-add97550991b5988", "migration": false}, {"id": "15.0-942d3a7de9382101", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u6267\u884c <a href=\"/docs/15/sql-cluster.html\" title=\"CLUSTER\"><code>CLUSTER</code></a>\uff08Justin Pryzby\uff09<a href=\"https://postgr.es/c/cfdd03f45\">\u00a7</a> <a href=\"https://postgr.es/c/3f19e176a\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u6267\u884c CLUSTER\uff08Justin Pryzby\uff09\u00a7 \u00a7", "title": "\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u6267\u884c CLUSTER", "commits": ["3f19e176a", "cfdd03f45"], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-1", "source_hash": "f170b629a0ce673227886bd024c61b3c2f412b3238d4e54ffae7797620a8e186", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["3f19e176a"], ["cfdd03f45"]], "identity_text": "Allow CLUSTER on partitioned tables (Justin Pryzby)", "commit_aliases": ["3f19e176a", "cfdd03f45"], "source_commits": ["3f19e176a", "cfdd03f45"], "source_entry_id": "15.0/changes/007", "db_id": "b8b8289ea5216a3d5c91ac5315f269d6", "patch_ids": ["a94bf9b2cdf07a3c8786ce595d2cac97", "d37e545c929e01fa60c675da02c8e31a"], "statement_hash": "12d0682657d8e432ae62df7d1bf2412de9cb9560e291df6354a81ce05fafefdb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-942d3a7de9382101", "migration": false}, {"id": "15.0-044f6cefb9640417", "cves": [], "html": "<p>\u4fee\u590d\u5206\u533a\u8868\u4e0a\u7684 <a href=\"/docs/15/sql-altertable.html\" title=\"ALTER TABLE\"><code>ALTER TRIGGER RENAME</code></a> \u4ee5\u6b63\u786e\u91cd\u547d\u540d\u6240\u6709\u5206\u533a\u4e0a\u7684\u89e6\u53d1\u5668\uff08Arne Roland\uff0c\u00c1lvaro Herrera\uff09<a href=\"https://postgr.es/c/80ba4bb38\">\u00a7</a></p>\n<p>\u540c\u65f6\u7981\u6b62\u91cd\u547d\u540d\u514b\u9686\u7684\u89e6\u53d1\u5668\u3002</p>", "text": "\u4fee\u590d\u5206\u533a\u8868\u4e0a\u7684 ALTER TRIGGER RENAME \u4ee5\u6b63\u786e\u91cd\u547d\u540d\u6240\u6709\u5206\u533a\u4e0a\u7684\u89e6\u53d1\u5668\uff08Arne Roland\uff0c\u00c1lvaro Herrera\uff09\u00a7 \u540c\u65f6\u7981\u6b62\u91cd\u547d\u540d\u514b\u9686\u7684\u89e6\u53d1\u5668\u3002", "title": "\u4fee\u590d\u5206\u533a\u8868\u4e0a\u7684 ALTER TRIGGER RENAME \u4ee5\u6b63\u786e\u91cd\u547d\u540d\u6240\u6709\u5206\u533a\u4e0a\u7684\u89e6\u53d1\u5668", "commits": ["80ba4bb38"], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "bugfix", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-1", "source_hash": "54f15708e4b68d5b6527ad6736e522765993e9ece7e129c2de76443c9c5603cf", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["80ba4bb38"]], "identity_text": "Fix ALTER TRIGGER RENAME on partitioned tables to properly rename triggers on all partitions (Arne Roland, \u00c1lvaro Herrera) Also prohibit cloned triggers from being renamed.", "commit_aliases": ["80ba4bb38"], "source_commits": ["80ba4bb38"], "source_entry_id": "15.0/changes/008", "db_id": "453d14e1df3ae61dc9b591569c3badf0", "patch_ids": ["7e38d26c9e583c6391f62ec46d8f6c38"], "statement_hash": "e20c7a252cf9deedd678a1959be530cacc6e7a0a8361c03aeb1b525d67b0b05e", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=15.0#15.0-044f6cefb9640417", "migration": false}, {"id": "15.0-511e5cf3ef72b726", "cves": [], "html": "<p>\u5141\u8bb8\u7cfb\u7edf\u8868\u548c <a href=\"/docs/15/storage-toast.html\" title=\"73.2.\u00a0TOAST\"><acronym>TOAST</acronym></a> \u8868\u4e0a\u7684 B-\u6811\u7d22\u5f15\u9ad8\u6548\u5b58\u50a8\u91cd\u590d\u9879\uff08Peter Geoghegan\uff09<a href=\"https://postgr.es/c/2903f1404\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u8fd9\u4e9b\u7c7b\u578b\u7684\u7d22\u5f15\u7981\u7528\u4e86\u53bb\u91cd\u3002</p>", "text": "\u5141\u8bb8\u7cfb\u7edf\u8868\u548c TOAST \u8868\u4e0a\u7684 B-\u6811\u7d22\u5f15\u9ad8\u6548\u5b58\u50a8\u91cd\u590d\u9879\uff08Peter Geoghegan\uff09\u00a7 \u4ee5\u524d\uff0c\u8fd9\u4e9b\u7c7b\u578b\u7684\u7d22\u5f15\u7981\u7528\u4e86\u53bb\u91cd\u3002", "title": "\u5141\u8bb8\u7cfb\u7edf\u8868\u548c TOAST \u8868\u4e0a\u7684 B-\u6811\u7d22\u5f15\u9ad8\u6548\u5b58\u50a8\u91cd\u590d\u9879", "commits": ["2903f1404"], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-2", "source_hash": "3bed6df63ab73382d6ae841ceda6f10a5e3760b03b3ff503128d06f6d938c344", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["2903f1404"]], "identity_text": "Allow btree indexes on system and TOAST tables to efficiently store duplicates (Peter Geoghegan) Previously de-duplication was disabled for these types of indexes.", "commit_aliases": ["2903f1404"], "source_commits": ["2903f1404"], "source_entry_id": "15.0/changes/009", "db_id": "94cf2a40a3e2cbc3631ab3a23b5e696c", "patch_ids": ["36d222a29688ae8953eb30f69e7cbe16"], "statement_hash": "cc878d2c9b5c92a474a0615c873370de770c54d88325faa5ad8098c2ff23c6d6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-511e5cf3ef72b726", "migration": false}, {"id": "15.0-1586c7b9194d5dc8", "cves": [], "html": "<p>\u6539\u8fdb\u4f7f\u7528\u6392\u5e8f\u6784\u5efa\u7684 <a href=\"/docs/15/gist.html\" title=\"\u7b2c\u00a068\u00a0\u7ae0\u00a0GiST \u7d22\u5f15\"><acronym>GiST</acronym></a> \u7d22\u5f15\u7684\u67e5\u627e\u6027\u80fd\uff08Aliaksandr Kalenik\uff0cSergei Shoulbakov\uff0cAndrey Borodin\uff09<a href=\"https://postgr.es/c/f1ea98a79\">\u00a7</a></p>", "text": "\u6539\u8fdb\u4f7f\u7528\u6392\u5e8f\u6784\u5efa\u7684 GiST \u7d22\u5f15\u7684\u67e5\u627e\u6027\u80fd\uff08Aliaksandr Kalenik\uff0cSergei Shoulbakov\uff0cAndrey Borodin\uff09\u00a7", "title": "\u6539\u8fdb\u4f7f\u7528\u6392\u5e8f\u6784\u5efa\u7684 GiST \u7d22\u5f15\u7684\u67e5\u627e\u6027\u80fd", "commits": ["f1ea98a79"], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-2", "source_hash": "8117e4ceac5f5857b26565fb3d54e92b5f825c5174da03fbeeedbc6298e945c0", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["f1ea98a79"]], "identity_text": "Improve lookup performance of GiST indexes that were built using sorting (Aliaksandr Kalenik, Sergei Shoulbakov, Andrey Borodin)", "commit_aliases": ["f1ea98a79"], "source_commits": ["f1ea98a79"], "source_entry_id": "15.0/changes/010", "db_id": "889ff35d327d30fb34f2ebca1263c1c4", "patch_ids": ["135aae16e4f757be71c85dd8916d802b"], "statement_hash": "58f352516ca9595775dede6904482d7cd000c936ad5b839c56a5d39608be45a9", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-1586c7b9194d5dc8", "migration": false}, {"id": "15.0-fc1d797ad9a16f69", "cves": [], "html": "<p>\u5141\u8bb8\u552f\u4e00\u7ea6\u675f\u548c\u7d22\u5f15\u5c06 <code>NULL</code> \u503c\u89c6\u4e3a\u4e0d\u552f\u4e00\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/94aa7cc5f\">\u00a7</a></p>\n<p>\u4ee5\u524d <code>NULL</code> \u6761\u76ee\u603b\u662f\u88ab\u89c6\u4e3a\u4e0d\u540c\u7684\u503c\uff0c\u4f46\u73b0\u5728\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 <code>UNIQUE NULLS NOT DISTINCT</code> \u521b\u5efa\u7ea6\u675f\u548c\u7d22\u5f15\u6765\u66f4\u6539\u6b64\u884c\u4e3a\u3002</p>", "text": "\u5141\u8bb8\u552f\u4e00\u7ea6\u675f\u548c\u7d22\u5f15\u5c06 NULL \u503c\u89c6\u4e3a\u4e0d\u552f\u4e00\uff08Peter Eisentraut\uff09\u00a7 \u4ee5\u524d NULL \u6761\u76ee\u603b\u662f\u88ab\u89c6\u4e3a\u4e0d\u540c\u7684\u503c\uff0c\u4f46\u73b0\u5728\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 UNIQUE NULLS NOT DISTINCT \u521b\u5efa\u7ea6\u675f\u548c\u7d22\u5f15\u6765\u66f4\u6539\u6b64\u884c\u4e3a\u3002", "title": "\u5141\u8bb8\u552f\u4e00\u7ea6\u675f\u548c\u7d22\u5f15\u5c06 NULL \u503c\u89c6\u4e3a\u4e0d\u552f\u4e00", "commits": ["94aa7cc5f"], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-2", "source_hash": "680c1482e503179e7af82b111ac366ac67e833630f863b6c4b528d5c3dacbab3", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["94aa7cc5f"]], "identity_text": "Allow unique constraints and indexes to treat NULL values as not distinct (Peter Eisentraut) Previously NULL entries were always treated as distinct values, but this can now be changed by creating constraints and indexes using UNIQUE NULLS NOT DISTINCT.", "commit_aliases": ["94aa7cc5f"], "source_commits": ["94aa7cc5f"], "source_entry_id": "15.0/changes/011", "db_id": "b944aa57456d7d9408c3d075153b266d", "patch_ids": ["ab8d646a18d7091d2298a4ac5d260091"], "statement_hash": "0471a02aa75ffd6806f0c49531b23e7f3a3d55a652fa0602073d3936abcf4c96", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-fc1d797ad9a16f69", "migration": false}, {"id": "15.0-878a9f565c1cc8a9", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/15/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"\u8868\u00a09.10.\u00a0\u5176\u4ed6\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>^@</code></a> \u8d77\u59cb\u5339\u914d\u64cd\u4f5c\u7b26\u548c <code>starts_with()</code> \u51fd\u6570\u5728\u4f7f\u7528 C \u6392\u5e8f\u89c4\u5219\u65f6\u4f7f\u7528 B-\u6811\u7d22\u5f15\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/a148f8bc0\">\u00a7</a></p>\n<p>\u4ee5\u524d\u5b83\u4eec\u53ea\u80fd\u4f7f\u7528 <a href=\"/docs/15/spgist.html\" title=\"\u7b2c\u00a069\u00a0\u7ae0\u00a0SP-GiST \u7d22\u5f15\"><acronym>SP-GiST</acronym></a> \u7d22\u5f15\u3002</p>", "text": "\u5141\u8bb8 ^@ \u8d77\u59cb\u5339\u914d\u64cd\u4f5c\u7b26\u548c starts_with() \u51fd\u6570\u5728\u4f7f\u7528 C \u6392\u5e8f\u89c4\u5219\u65f6\u4f7f\u7528 B-\u6811\u7d22\u5f15\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\u5b83\u4eec\u53ea\u80fd\u4f7f\u7528 SP-GiST \u7d22\u5f15\u3002", "title": "\u5141\u8bb8 ^@ \u8d77\u59cb\u5339\u914d\u64cd\u4f5c\u7b26\u548c starts_with() \u51fd\u6570\u5728\u4f7f\u7528 C \u6392\u5e8f\u89c4\u5219\u65f6\u4f7f\u7528 B-\u6811\u7d22\u5f15", "commits": ["a148f8bc0"], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-2", "source_hash": "3a708e9f2fb58afb9e6e7df3f0a5c8e60205640acd3f4a98945ba50ee35d9a08", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["a148f8bc0"]], "identity_text": "Allow the ^@ starts-with operator and the starts_with() function to use btree indexes if using the C collation (Tom Lane) Previously these could only use SP-GiST indexes.", "commit_aliases": ["a148f8bc0"], "source_commits": ["a148f8bc0"], "source_entry_id": "15.0/changes/012", "db_id": "0a560adf9c281c9da7236cc3ea820d1e", "patch_ids": ["6d99d33e88432a8bed597e0d31220b06"], "statement_hash": "171858d7d490d816dd8284ae708a2987948ee28211300d35248d43d150e8bbe2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-878a9f565c1cc8a9", "migration": false}, {"id": "15.0-8b47dafa20a72c3f", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/15/sql-createstatistics.html\" title=\"CREATE STATISTICS\">\u6269\u5c55\u7edf\u8ba1</a>\u8bb0\u5f55\u7236\u8868\u53ca\u5176\u6240\u6709\u5b50\u8868\u7684\u7edf\u8ba1\u4fe1\u606f\uff08Tomas Vondra\uff0cJustin Pryzby\uff09<a href=\"https://postgr.es/c/269b532ae\">\u00a7</a></p>\n<p>\u5e38\u89c4\u7edf\u8ba1\u5df2\u7ecf\u5206\u522b\u8ddf\u8e2a\u7236\u8868\u548c\u7236\u8868\u52a0\u6240\u6709\u5b50\u8868\u7684\u7edf\u8ba1\u4fe1\u606f\u3002</p>", "text": "\u5141\u8bb8\u6269\u5c55\u7edf\u8ba1\u8bb0\u5f55\u7236\u8868\u53ca\u5176\u6240\u6709\u5b50\u8868\u7684\u7edf\u8ba1\u4fe1\u606f\uff08Tomas Vondra\uff0cJustin Pryzby\uff09\u00a7 \u5e38\u89c4\u7edf\u8ba1\u5df2\u7ecf\u5206\u522b\u8ddf\u8e2a\u7236\u8868\u548c\u7236\u8868\u52a0\u6240\u6709\u5b50\u8868\u7684\u7edf\u8ba1\u4fe1\u606f\u3002", "title": "\u5141\u8bb8\u6269\u5c55\u7edf\u8ba1\u8bb0\u5f55\u7236\u8868\u53ca\u5176\u6240\u6709\u5b50\u8868\u7684\u7edf\u8ba1\u4fe1\u606f", "commits": ["269b532ae"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-3", "source_hash": "5f8bf3783f54e390aace2abedd0fcd7632ecc619f9e973994b67ebc22ea6108d", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["269b532ae"]], "identity_text": "Allow extended statistics to record statistics for a parent with all its children (Tomas Vondra, Justin Pryzby) Regular statistics already tracked parent and parent-plus-all-children statistics separately.", "commit_aliases": ["269b532ae"], "source_commits": ["269b532ae"], "source_entry_id": "15.0/changes/013", "db_id": "523bf96738959dc22052708610cda49e", "patch_ids": ["0313790a94c7b369607343e90dd33ff8"], "statement_hash": "7a1865e63d167d1bb2741c26ef5ce6175e8b9e30cafe61eb5028e1a8cda5318d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-8b47dafa20a72c3f", "migration": false}, {"id": "15.0-3a2eef52a9dae568", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/15/runtime-config-query.html#GUC-RECURSIVE-WORKTABLE-FACTOR\"><code>recursive_worktable_factor</code></a> \u4ee5\u5141\u8bb8\u7528\u6237\u6307\u5b9a<a href=\"/docs/15/queries-with.html#QUERIES-WITH-RECURSIVE\" title=\"7.8.2.\u00a0\u9012\u5f52\u67e5\u8be2\">\u9012\u5f52\u67e5\u8be2</a>\u5de5\u4f5c\u8868\u7684\u9884\u671f\u5927\u5c0f\uff08Simon Riggs\uff09<a href=\"https://postgr.es/c/0bd7af082\">\u00a7</a></p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf recursive_worktable_factor \u4ee5\u5141\u8bb8\u7528\u6237\u6307\u5b9a\u9012\u5f52\u67e5\u8be2\u5de5\u4f5c\u8868\u7684\u9884\u671f\u5927\u5c0f\uff08Simon Riggs\uff09\u00a7", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf recursive_worktable_factor \u4ee5\u5141\u8bb8\u7528\u6237\u6307\u5b9a\u9012\u5f52\u67e5\u8be2\u5de5\u4f5c\u8868\u7684\u9884\u671f\u5927\u5c0f", "commits": ["0bd7af082"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-3", "source_hash": "5b5045d98fdb3ef9be40c0c047c4b32c1aa7d0e5b946dcbb4e758e5e3ef0b8c5", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["0bd7af082"]], "identity_text": "Add server variable recursive_worktable_factor to allow the user to specify the expected size of the working table of a recursive query (Simon Riggs)", "commit_aliases": ["0bd7af082"], "source_commits": ["0bd7af082"], "source_entry_id": "15.0/changes/014", "db_id": "323483f43f6d00542af3d248cbb5458f", "patch_ids": ["bd05ba2fbf89c3222d88258706cc4bce"], "statement_hash": "23940b25cdb995baf8e39d7c7486fc59870e67600120f3fcbf7de66036b6d10b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-3a2eef52a9dae568", "migration": false}, {"id": "15.0-8b4b5d538bb39cc3", "cves": [], "html": "<p>\u5141\u8bb8\u5bf9\u5305\u542b\u8bb8\u591a\u5e38\u91cf\u7684 <a href=\"/docs/15/functions-subquery.html#FUNCTIONS-SUBQUERY-NOTIN\" title=\"9.23.3.\u00a0NOT IN\"><code>NOT IN</code></a> \u5b50\u53e5\u4f7f\u7528 hash \u67e5\u627e\uff08David Rowley\uff0cJames Coleman\uff09<a href=\"https://postgr.es/c/29f45e299\">\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 NOT IN \u5b50\u53e5\u4f7f\u7528 hash \u67e5\u627e\uff08David Rowley\uff0cJames Coleman\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 NOT IN \u5b50\u53e5\u4f7f\u7528 hash \u67e5\u627e", "commits": ["29f45e299"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-4", "source_hash": "90a538f173bfadd6c4288d638907b7cec1ceb7b6fc1aba67f0254fc64d0bbe1b", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["29f45e299"]], "identity_text": "Allow hash lookup for NOT IN clauses with many constants (David Rowley, James Coleman) Previously the code always sequentially scanned the list of values.", "commit_aliases": ["29f45e299"], "source_commits": ["29f45e299"], "source_entry_id": "15.0/changes/015", "db_id": "a6d784ae4c67a8a7399b79fe742f8f84", "patch_ids": ["a7a2f7babba00ce845555a2b47849a86"], "statement_hash": "007d85111b5bc146d7c7cd06e6050536b34f1e9dff1b33a4a231c5c7b4cc6ccf", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-8b4b5d538bb39cc3", "migration": false}, {"id": "15.0-27d1a54bb60e3543", "cves": [], "html": "<p>\u5141\u8bb8 <code>SELECT DISTINCT</code> \u5e76\u884c\u5316\uff08David Rowley\uff09<a href=\"https://postgr.es/c/22c4e88eb\">\u00a7</a></p>", "text": "\u5141\u8bb8 SELECT DISTINCT \u5e76\u884c\u5316\uff08David Rowley\uff09\u00a7", "title": "\u5141\u8bb8 SELECT DISTINCT \u5e76\u884c\u5316", "commits": ["22c4e88eb"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-4", "source_hash": "90e0d1112eb5cc1a82bc21432f462bb0dd74e3687a8ba715a320d3f9df39242e", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["22c4e88eb"]], "identity_text": "Allow SELECT DISTINCT to be parallelized (David Rowley)", "commit_aliases": ["22c4e88eb"], "source_commits": ["22c4e88eb"], "source_entry_id": "15.0/changes/016", "db_id": "ee80b2c482d2addedfca984d993afaa5", "patch_ids": ["2681b49cd743dee036c68f69961e9596"], "statement_hash": "2d2537a8ece1654596ece0eea3f4354f8c19d50c4954c260315ed678f1db34c2", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-27d1a54bb60e3543", "migration": false}, {"id": "15.0-6408cd97cdcaccf8", "cves": [], "html": "<p>\u901a\u8fc7\u6bcf\u6b21\u5904\u7406 16 \u5b57\u8282\u6765\u52a0\u901f <acronym>UTF</acronym>-8 \u6587\u672c\u7684\u7f16\u7801\u9a8c\u8bc1\uff08John Naylor\uff0cHeikki Linnakangas\uff09<a href=\"https://postgr.es/c/911588a3f\">\u00a7</a></p>\n<p>\u8fd9\u5c06\u6539\u8fdb\u6587\u672c\u5bc6\u96c6\u578b\u64cd\u4f5c\uff0c\u5982 <a href=\"/docs/15/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a>\u3002</p>", "text": "\u901a\u8fc7\u6bcf\u6b21\u5904\u7406 16 \u5b57\u8282\u6765\u52a0\u901f UTF-8 \u6587\u672c\u7684\u7f16\u7801\u9a8c\u8bc1\uff08John Naylor\uff0cHeikki Linnakangas\uff09\u00a7 \u8fd9\u5c06\u6539\u8fdb\u6587\u672c\u5bc6\u96c6\u578b\u64cd\u4f5c\uff0c\u5982 COPY FROM\u3002", "title": "\u901a\u8fc7\u6bcf\u6b21\u5904\u7406 16 \u5b57\u8282\u6765\u52a0\u901f UTF-8 \u6587\u672c\u7684\u7f16\u7801\u9a8c\u8bc1", "commits": ["911588a3f"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-4", "source_hash": "a0ab6986220dc3454e3015ff4dc8d9d982c0ec12e5112dac52973c67cb35c033", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["911588a3f"]], "identity_text": "Speed up encoding validation of UTF-8 text by processing 16 bytes at a time (John Naylor, Heikki Linnakangas) This will improve text-heavy operations like COPY FROM.", "commit_aliases": ["911588a3f"], "source_commits": ["911588a3f"], "source_entry_id": "15.0/changes/017", "db_id": "39cbb0b7ff6a13edf66d09e8bffb2b2a", "patch_ids": ["82bdc2e7172eb421b5eea9924f39c19e"], "statement_hash": "b894b8188d50698dd8db716cf9ef0c9dbbce56437bd05c59bbaa800b43cbd8be", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-6408cd97cdcaccf8", "migration": false}, {"id": "15.0-0fae01d0ef9748a7", "cves": [], "html": "<p>\u6539\u8fdb\u8d85\u8fc7 <a href=\"/docs/15/runtime-config-resource.html#GUC-WORK-MEM\"><code>work_mem</code></a> \u7684\u6392\u5e8f\u6027\u80fd\uff08Heikki Linnakangas\uff09<a href=\"https://postgr.es/c/65014000b\">\u00a7</a> <a href=\"https://postgr.es/c/166f94377\">\u00a7</a></p>\n<p>\u5f53\u6392\u5e8f\u6570\u636e\u4e0d\u518d\u9002\u5408 <code>work_mem</code> \u65f6\uff0c\u5207\u6362\u5230\u4f7f\u7528\u6bd4\u4ee5\u524d\u66f4\u591a\u8f93\u51fa\u6d41\u7684\u6279\u91cf\u6392\u5e8f\u7b97\u6cd5\u3002</p>", "text": "\u6539\u8fdb\u8d85\u8fc7 work_mem \u7684\u6392\u5e8f\u6027\u80fd\uff08Heikki Linnakangas\uff09\u00a7 \u00a7 \u5f53\u6392\u5e8f\u6570\u636e\u4e0d\u518d\u9002\u5408 work_mem \u65f6\uff0c\u5207\u6362\u5230\u4f7f\u7528\u6bd4\u4ee5\u524d\u66f4\u591a\u8f93\u51fa\u6d41\u7684\u6279\u91cf\u6392\u5e8f\u7b97\u6cd5\u3002", "title": "\u6539\u8fdb\u8d85\u8fc7 work_mem \u7684\u6392\u5e8f\u6027\u80fd", "commits": ["166f94377", "65014000b"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-4", "source_hash": "c285f56d8996cc3929ea09f1759bc7f9f2c4058f0fc0cf9cd090dca5dca48593", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["166f94377"], ["65014000b"]], "identity_text": "Improve performance for sorts that exceed work_mem (Heikki Linnakangas) When the sort data no longer fits in work_mem, switch to a batch sorting algorithm that uses more output streams than before.", "commit_aliases": ["166f94377", "65014000b"], "source_commits": ["166f94377", "65014000b"], "source_entry_id": "15.0/changes/018", "db_id": "7fd2510d8f58bee4dd002e8831fff28d", "patch_ids": ["8040739d4648b0c392ec60f98f8bf9d5", "c78ecefa8af6637937d2ab617e0da3e7"], "statement_hash": "02452a4ad93d70ad38aad22d15e3b3feeba60dda761ca247f39c6956623b2f44", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-0fae01d0ef9748a7", "migration": false}, {"id": "15.0-2d7ec05a16c3dab1", "cves": [], "html": "<p>\u6539\u8fdb\u5185\u5b58\u6392\u5e8f\u7684\u6027\u80fd\u5e76\u51cf\u5c11\u5185\u5b58\u6d88\u8017\uff08Ronan Dunklau\uff0cDavid Rowley\uff0cThomas Munro\uff0cJohn Naylor\uff09<a href=\"https://postgr.es/c/91e9e89dc\">\u00a7</a> <a href=\"https://postgr.es/c/40af10b57\">\u00a7</a> <a href=\"https://postgr.es/c/697492434\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5185\u5b58\u6392\u5e8f\u7684\u6027\u80fd\u5e76\u51cf\u5c11\u5185\u5b58\u6d88\u8017\uff08Ronan Dunklau\uff0cDavid Rowley\uff0cThomas Munro\uff0cJohn Naylor\uff09\u00a7 \u00a7 \u00a7", "title": "\u6539\u8fdb\u5185\u5b58\u6392\u5e8f\u7684\u6027\u80fd\u5e76\u51cf\u5c11\u5185\u5b58\u6d88\u8017", "commits": ["40af10b57", "697492434", "91e9e89dc"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-4", "source_hash": "5d535ac84364856a8348c786d2f06f372eab4bbb7d0c883a29470036446c5d05", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["40af10b57"], ["697492434"], ["91e9e89dc"]], "identity_text": "Improve performance and reduce memory consumption of in-memory sorts (Ronan Dunklau, David Rowley, Thomas Munro, John Naylor)", "commit_aliases": ["40af10b57", "697492434", "91e9e89dc"], "source_commits": ["40af10b57", "697492434", "91e9e89dc"], "source_entry_id": "15.0/changes/019", "db_id": "35a56f28c4344b39c05839ea234bdff3", "patch_ids": ["6502f70ad1db26ac292fa21faa230558", "8402aa2b1710092599bbd0a94a9e4280", "9ab80cac99f7974d77b2d9a66a864342"], "statement_hash": "84323504d559d0d88693c682374e0257281bf30fe65f018828ca3aec190d7d45", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-2d7ec05a16c3dab1", "migration": false}, {"id": "15.0-d98ac479398541b1", "cves": [], "html": "<p>\u5141\u8bb8 <acronym>WAL</acronym> <a href=\"/docs/15/runtime-config-wal.html#GUC-FULL-PAGE-WRITES\">\u5168\u9875\u5199\u5165</a>\u4f7f\u7528 LZ4 \u548c Zstandard \u538b\u7f29\uff08Andrey Borodin\uff0cJustin Pryzby\uff09<a href=\"https://postgr.es/c/4035cd5d4\">\u00a7</a> <a href=\"https://postgr.es/c/e9537321a\">\u00a7</a></p>\n<p>\u8fd9\u7531 <a href=\"/docs/15/runtime-config-wal.html#GUC-WAL-COMPRESSION\"><code>wal_compression</code></a> \u670d\u52a1\u5668\u8bbe\u7f6e\u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8 WAL \u5168\u9875\u5199\u5165\u4f7f\u7528 LZ4 \u548c Zstandard \u538b\u7f29\uff08Andrey Borodin\uff0cJustin Pryzby\uff09\u00a7 \u00a7 \u8fd9\u7531 wal_compression \u670d\u52a1\u5668\u8bbe\u7f6e\u63a7\u5236\u3002", "title": "\u5141\u8bb8 WAL \u5168\u9875\u5199\u5165\u4f7f\u7528 LZ4 \u548c Zstandard \u538b\u7f29", "commits": ["4035cd5d4", "e9537321a"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-4", "source_hash": "e35bacd6c100bfc4be841c9059b8dfb44e940ab275cff6f712ab3a641cbe0dbf", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["4035cd5d4"], ["e9537321a"]], "identity_text": "Allow WAL full page writes to use LZ4 and Zstandard compression (Andrey Borodin, Justin Pryzby) This is controlled by the wal_compression server setting.", "commit_aliases": ["4035cd5d4", "e9537321a"], "source_commits": ["4035cd5d4", "e9537321a"], "source_entry_id": "15.0/changes/020", "db_id": "e717d2bc866b492c093b610ada708353", "patch_ids": ["937c710aafa761982ee3c59e33f45b54", "dadf72633c09bec22311dcb7c7841c77"], "statement_hash": "0163cd30d48d0310569b54effb6130bf3dfaf8ca6e0402492bdf1f7e7d29b34c", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-d98ac479398541b1", "migration": false}, {"id": "15.0-48b662b99480784f", "cves": [], "html": "<p>\u589e\u52a0\u5728 macOS \u4e0a\u4f7f\u7528<a href=\"/docs/15/runtime-config-wal.html#GUC-WAL-SYNC-METHOD\">\u76f4\u63a5 I/O</a> \u5199\u5165 <acronym>WAL</acronym> \u7684\u652f\u6301\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/2dbe89057\">\u00a7</a></p>\n<p>\u8fd9\u4ec5\u5728 <code>max_wal_senders = 0</code> \u4e14 <code>wal_level = minimal</code> \u65f6\u6709\u6548\u3002</p>", "text": "\u589e\u52a0\u5728 macOS \u4e0a\u4f7f\u7528\u76f4\u63a5 I/O \u5199\u5165 WAL \u7684\u652f\u6301\uff08Thomas Munro\uff09\u00a7 \u8fd9\u4ec5\u5728 max_wal_senders = 0 \u4e14 wal_level = minimal \u65f6\u6709\u6548\u3002", "title": "\u589e\u52a0\u5728 macOS \u4e0a\u4f7f\u7528\u76f4\u63a5 I/O \u5199\u5165 WAL \u7684\u652f\u6301", "commits": ["2dbe89057"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-4", "source_hash": "008457fc98570b8dfddc01adac2b508a40d9c02e7700fdd75ae7d50b1c1133be", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["2dbe89057"]], "identity_text": "Add support for writing WAL using direct I/O on macOS (Thomas Munro) This only works if max_wal_senders = 0 and wal_level = minimal.", "commit_aliases": ["2dbe89057"], "source_commits": ["2dbe89057"], "source_entry_id": "15.0/changes/021", "db_id": "f0de267937118c2f98bdcf423fd27557", "patch_ids": ["ecebb38bee143fa36f8d3e1e42364146"], "statement_hash": "0033e83c288ecd24129bfddf2ce1422ce5fa009e0f3b07841e07bbc45c18c94e", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-48b662b99480784f", "migration": false}, {"id": "15.0-f415eb4cfd547da3", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/15/maintenance.html#ROUTINE-VACUUMING\" title=\"25.1.\u00a0\u65e5\u5e38\u6e05\u7406\">vacuum</a> \u5728\u8bbe\u7f6e\u6700\u65e7\u7684\u51bb\u7ed3\u548c\u591a\u4e8b\u52a1 ID \u65f6\u66f4\u79ef\u6781\uff08Peter Geoghegan\uff09<a href=\"https://postgr.es/c/0b018faba\">\u00a7</a></p>", "text": "\u5141\u8bb8 vacuum \u5728\u8bbe\u7f6e\u6700\u65e7\u7684\u51bb\u7ed3\u548c\u591a\u4e8b\u52a1 ID \u65f6\u66f4\u79ef\u6781\uff08Peter Geoghegan\uff09\u00a7", "title": "\u5141\u8bb8 vacuum \u5728\u8bbe\u7f6e\u6700\u65e7\u7684\u51bb\u7ed3\u548c\u591a\u4e8b\u52a1 ID \u65f6\u66f4\u79ef\u6781", "commits": ["0b018faba"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-4", "source_hash": "f5453209cd7a6b7cbc154c98df9acd8cf373b1a2b25edf7d4555dd9eeb642281", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["0b018faba"]], "identity_text": "Allow vacuum to be more aggressive in setting the oldest frozen and multi transaction id (Peter Geoghegan)", "commit_aliases": ["0b018faba"], "source_commits": ["0b018faba"], "source_entry_id": "15.0/changes/022", "db_id": "f86fe75ec5eb9fcc9fac85d1783f013d", "patch_ids": ["217ff3031a1857e379234f95c2d3dba3"], "statement_hash": "11d10ba55a82194b899d7df65474e26d0342ed56172969ab7b745b61cd1e4795", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-f415eb4cfd547da3", "migration": false}, {"id": "15.0-f4c2e2a0c2baf0b1", "cves": [], "html": "<p>\u5141\u8bb8\u5f15\u7528\u591a\u4e2a<a href=\"/docs/15/ddl-foreign-data.html\" title=\"5.12.\u00a0\u5916\u90e8\u6570\u636e\">\u5916\u90e8\u8868</a>\u7684\u67e5\u8be2\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u6267\u884c\u5e76\u884c\u5916\u90e8\u8868\u626b\u63cf\uff08Andrey Lepikhov\uff0cEtsuro Fujita\uff09<a href=\"https://postgr.es/c/c2bb02bc2\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5f15\u7528\u591a\u4e2a\u5916\u90e8\u8868\u7684\u67e5\u8be2\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u6267\u884c\u5e76\u884c\u5916\u90e8\u8868\u626b\u63cf\uff08Andrey Lepikhov\uff0cEtsuro Fujita\uff09\u00a7", "title": "\u5141\u8bb8\u5f15\u7528\u591a\u4e2a\u5916\u90e8\u8868\u7684\u67e5\u8be2\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u6267\u884c\u5e76\u884c\u5916\u90e8\u8868\u626b\u63cf", "commits": ["c2bb02bc2"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-4", "source_hash": "f6c4c2b4131790562bd423a79d6fc331eac7a943cf1421a086d57c5df7a48d9d", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["c2bb02bc2"]], "identity_text": "Allow a query referencing multiple foreign tables to perform parallel foreign table scans in more cases (Andrey Lepikhov, Etsuro Fujita)", "commit_aliases": ["c2bb02bc2"], "source_commits": ["c2bb02bc2"], "source_entry_id": "15.0/changes/023", "db_id": "f8de474dd775f80511f2db5a9928d5f8", "patch_ids": ["2b57949fecfc3d4b36f531b5cf1238bb"], "statement_hash": "2d549f3a040d9a3b0a2b40a6c5d23f03bf30286df01387fd6fca58159cfc7aca", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-f4c2e2a0c2baf0b1", "migration": false}, {"id": "15.0-6ea5caa462f31a87", "cves": [], "html": "<p>\u6539\u8fdb\u4f7f\u7528 <code>row_number()</code>\u3001<code>rank()</code>\u3001<code>dense_rank()</code> \u548c <code>count()</code> \u7684<a href=\"/docs/15/functions-window.html\" title=\"9.22.\u00a0\u7a97\u53e3\u51fd\u6570\">\u7a97\u53e3\u51fd\u6570</a>\u7684\u6027\u80fd\uff08David Rowley\uff09<a href=\"https://postgr.es/c/9d9c02ccd\">\u00a7</a></p>", "text": "\u6539\u8fdb\u4f7f\u7528 row_number()\u3001rank()\u3001dense_rank() \u548c count() \u7684\u7a97\u53e3\u51fd\u6570\u7684\u6027\u80fd\uff08David Rowley\uff09\u00a7", "title": "\u6539\u8fdb\u4f7f\u7528 row_number()\u3001rank()\u3001dense_rank() \u548c count() \u7684\u7a97\u53e3\u51fd\u6570\u7684\u6027\u80fd", "commits": ["9d9c02ccd"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-4", "source_hash": "859abb3026d3c9f3097742b1fb391186288a461750ab6a17d185d8a9d77b3b71", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["9d9c02ccd"]], "identity_text": "Improve the performance of window functions that use row_number(), rank(), dense_rank() and count() (David Rowley)", "commit_aliases": ["9d9c02ccd"], "source_commits": ["9d9c02ccd"], "source_entry_id": "15.0/changes/024", "db_id": "562682e07732c6360bf1800351184b40", "patch_ids": ["a9fed7b5259abc8531a61c7d9cf54da8"], "statement_hash": "0b0c91fcebe84026abd2cd5b073267a5742bdff6a0b3782de1248fd880fec801", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-6ea5caa462f31a87", "migration": false}, {"id": "15.0-637a47e40a5ebbf9", "cves": [], "html": "<p>\u6539\u8fdb\u9ad8\u6838\u5fc3\u6570 ARM64 \u7cfb\u7edf\u4e0a\u81ea\u65cb\u9501\u7684\u6027\u80fd\uff08Geoffrey Blake\uff09<a href=\"https://postgr.es/c/a82a5eee3\">\u00a7</a></p>", "text": "\u6539\u8fdb\u9ad8\u6838\u5fc3\u6570 ARM64 \u7cfb\u7edf\u4e0a\u81ea\u65cb\u9501\u7684\u6027\u80fd\uff08Geoffrey Blake\uff09\u00a7", "title": "\u6539\u8fdb\u9ad8\u6838\u5fc3\u6570 ARM64 \u7cfb\u7edf\u4e0a\u81ea\u65cb\u9501\u7684\u6027\u80fd", "commits": ["a82a5eee3"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-4", "source_hash": "ac0bb835221a3d58da4a0c759d2c20cb391d0eab9245b10148b93dd688d87068", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["a82a5eee3"]], "identity_text": "Improve the performance of spinlocks on high-core-count ARM64 systems (Geoffrey Blake)", "commit_aliases": ["a82a5eee3"], "source_commits": ["a82a5eee3"], "source_entry_id": "15.0/changes/025", "db_id": "57608fb108202ce6314b63b8a3fe970e", "patch_ids": ["4acee3422bf44a8c99880c06180b3782"], "statement_hash": "ba2ee3aa9a49443a784c4c406182f67f29e3e464ee80ab132b9580f3eaaa5774", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-637a47e40a5ebbf9", "migration": false}, {"id": "15.0-f84aa7f8e8be0440", "cves": [], "html": "<p>\u542f\u7528\u68c0\u67e5\u70b9\u548c\u6162\u901f\u81ea\u52a8\u6e05\u7406\u64cd\u4f5c\u7684\u9ed8\u8ba4\u65e5\u5fd7\u8bb0\u5f55\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/64da07c41\">\u00a7</a></p>\n<p>\u8fd9\u5c06 <a href=\"/docs/15/runtime-config-logging.html#GUC-LOG-CHECKPOINTS\"><code>log_checkpoints</code></a> \u7684\u9ed8\u8ba4\u503c\u66f4\u6539\u4e3a <code>on</code>\uff0c\u5c06 <a href=\"/docs/15/runtime-config-logging.html#GUC-LOG-AUTOVACUUM-MIN-DURATION\"><code>log_autovacuum_min_duration</code></a> \u7684\u9ed8\u8ba4\u503c\u66f4\u6539\u4e3a 10 \u5206\u949f\u3002\u8fd9\u5c06\u5bfc\u81f4\u5373\u4f7f\u662f\u7a7a\u95f2\u7684\u670d\u52a1\u5668\u4e5f\u4f1a\u751f\u6210\u4e00\u4e9b\u65e5\u5fd7\u8f93\u51fa\uff0c\u8fd9\u5728\u6ca1\u6709\u65e5\u5fd7\u6587\u4ef6\u8f6e\u8f6c\u7684\u8d44\u6e90\u53d7\u9650\u670d\u52a1\u5668\u4e0a\u53ef\u80fd\u4f1a\u9020\u6210\u95ee\u9898\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\u5e94\u66f4\u6539\u8fd9\u4e9b\u9ed8\u8ba4\u503c\u3002</p>", "text": "\u542f\u7528\u68c0\u67e5\u70b9\u548c\u6162\u901f\u81ea\u52a8\u6e05\u7406\u64cd\u4f5c\u7684\u9ed8\u8ba4\u65e5\u5fd7\u8bb0\u5f55\uff08Bharath Rupireddy\uff09\u00a7 \u8fd9\u5c06 log_checkpoints \u7684\u9ed8\u8ba4\u503c\u66f4\u6539\u4e3a on\uff0c\u5c06 log_autovacuum_min_duration \u7684\u9ed8\u8ba4\u503c\u66f4\u6539\u4e3a 10 \u5206\u949f\u3002\u8fd9\u5c06\u5bfc\u81f4\u5373\u4f7f\u662f\u7a7a\u95f2\u7684\u670d\u52a1\u5668\u4e5f\u4f1a\u751f\u6210\u4e00\u4e9b\u65e5\u5fd7\u8f93\u51fa\uff0c\u8fd9\u5728\u6ca1\u6709\u65e5\u5fd7\u6587\u4ef6\u8f6e\u8f6c\u7684\u8d44\u6e90\u53d7\u9650\u670d\u52a1\u5668\u4e0a\u53ef\u80fd\u4f1a\u9020\u6210\u95ee\u9898\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\u5e94\u66f4\u6539\u8fd9\u4e9b\u9ed8\u8ba4\u503c\u3002", "title": "\u542f\u7528\u68c0\u67e5\u70b9\u548c\u6162\u901f\u81ea\u52a8\u6e05\u7406\u64cd\u4f5c\u7684\u9ed8\u8ba4\u65e5\u5fd7\u8bb0\u5f55", "commits": ["64da07c41"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-5", "source_hash": "b5adcad823cb95bc613a607098db7e1918b29e5ec1049a89c68a656a517f4ee3", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["64da07c41"]], "identity_text": "Enable default logging of checkpoints and slow autovacuum operations (Bharath Rupireddy) This changes the default of log_checkpoints to on and that of log_autovacuum_min_duration to 10 minutes. This will cause even an idle server to generate some log output, which might cause problems on resource-constrained servers without log file rotation. These defaults should be changed in such cases.", "commit_aliases": ["64da07c41"], "source_commits": ["64da07c41"], "source_entry_id": "15.0/changes/026", "db_id": "3e8a2f2b5a45f2b786de0adf98348de7", "patch_ids": ["3cd61921f54fd2c40e5acf21d5f7dfde"], "statement_hash": "44d031bb1b6862b4a433b4b5017c4fcd62e2e4df53dc723f3b7331bb03033617", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-f84aa7f8e8be0440", "migration": false}, {"id": "15.0-fe233b719c5115af", "cves": [], "html": "<p>\u5728\u670d\u52a1\u5668\u7f13\u6162\u542f\u52a8\u671f\u95f4\u5728\u670d\u52a1\u5668\u65e5\u5fd7\u4e2d\u751f\u6210\u8fdb\u5ea6\u6d88\u606f\uff08Nitin Jadhav\uff0cRobert Haas\uff09<a href=\"https://postgr.es/c/9ce346eab\">\u00a7</a> <a href=\"https://postgr.es/c/e543906e2\">\u00a7</a></p>\n<p>\u6d88\u606f\u62a5\u544a\u5ef6\u8fdf\u7684\u539f\u56e0\u3002\u901a\u77e5\u7684\u65f6\u95f4\u95f4\u9694\u7531\u65b0\u7684\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/15/runtime-config-logging.html#GUC-LOG-STARTUP-PROGRESS-INTERVAL\"><code>log_startup_progress_interval</code></a> \u63a7\u5236\u3002</p>", "text": "\u5728\u670d\u52a1\u5668\u7f13\u6162\u542f\u52a8\u671f\u95f4\u5728\u670d\u52a1\u5668\u65e5\u5fd7\u4e2d\u751f\u6210\u8fdb\u5ea6\u6d88\u606f\uff08Nitin Jadhav\uff0cRobert Haas\uff09\u00a7 \u00a7 \u6d88\u606f\u62a5\u544a\u5ef6\u8fdf\u7684\u539f\u56e0\u3002\u901a\u77e5\u7684\u65f6\u95f4\u95f4\u9694\u7531\u65b0\u7684\u670d\u52a1\u5668\u53d8\u91cf log_startup_progress_interval \u63a7\u5236\u3002", "title": "\u5728\u670d\u52a1\u5668\u7f13\u6162\u542f\u52a8\u671f\u95f4\u5728\u670d\u52a1\u5668\u65e5\u5fd7\u4e2d\u751f\u6210\u8fdb\u5ea6\u6d88\u606f", "commits": ["9ce346eab", "e543906e2"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-5", "source_hash": "2548d0627faeeabe19432877df406c1c5fe8cdf97de57d713c658bca625b567c", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["9ce346eab"], ["e543906e2"]], "identity_text": "Generate progress messages in the server log during slow server starts (Nitin Jadhav, Robert Haas) The messages report the cause of the delay. The time interval for notification is controlled by the new server variable log_startup_progress_interval.", "commit_aliases": ["9ce346eab", "e543906e2"], "source_commits": ["9ce346eab", "e543906e2"], "source_entry_id": "15.0/changes/027", "db_id": "162892fb36f9b8740d3f32bffc3d10b4", "patch_ids": ["57136900848f5336aa253f6fc6f54eb2", "b395a84c35b51c085e1858e04f2bcab6"], "statement_hash": "d926510823cb6bc40b71de37e2306045c42d4bbbd22af88a2c093e1ad7728399", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-fe233b719c5115af", "migration": false}, {"id": "15.0-32a4c556ff5cb277", "cves": [], "html": "<p>\u5c06<a href=\"/docs/15/monitoring-stats.html\" title=\"28.2.\u00a0\u7d2f\u79ef\u7edf\u8ba1\u7cfb\u7edf\">\u7d2f\u8ba1\u7edf\u8ba1\u7cfb\u7edf</a>\u6570\u636e\u5b58\u50a8\u5728\u5171\u4eab\u5185\u5b58\u4e2d\uff08Kyotaro Horiguchi\uff0cAndres Freund\uff0cMelanie Plageman\uff09<a href=\"https://postgr.es/c/5891c7a8e\">\u00a7</a> <a href=\"https://postgr.es/c/b3abca681\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u6b64\u6570\u636e\u901a\u8fc7 <acronym>UDP</acronym> \u6570\u636e\u5305\u53d1\u9001\u5230\u7edf\u8ba1\u6536\u96c6\u5668\u8fdb\u7a0b\uff0c\u53ea\u6709\u5728\u901a\u8fc7\u6587\u4ef6\u7cfb\u7edf\u4f20\u8f93\u540e\u4f1a\u8bdd\u624d\u80fd\u8bfb\u53d6\u3002\u73b0\u5728\u4e0d\u518d\u6709\u5355\u72ec\u7684\u7edf\u8ba1\u6536\u96c6\u5668\u8fdb\u7a0b\u3002</p>", "text": "\u5c06\u7d2f\u8ba1\u7edf\u8ba1\u7cfb\u7edf\u6570\u636e\u5b58\u50a8\u5728\u5171\u4eab\u5185\u5b58\u4e2d\uff08Kyotaro Horiguchi\uff0cAndres Freund\uff0cMelanie Plageman\uff09\u00a7 \u00a7 \u4ee5\u524d\uff0c\u6b64\u6570\u636e\u901a\u8fc7 UDP \u6570\u636e\u5305\u53d1\u9001\u5230\u7edf\u8ba1\u6536\u96c6\u5668\u8fdb\u7a0b\uff0c\u53ea\u6709\u5728\u901a\u8fc7\u6587\u4ef6\u7cfb\u7edf\u4f20\u8f93\u540e\u4f1a\u8bdd\u624d\u80fd\u8bfb\u53d6\u3002\u73b0\u5728\u4e0d\u518d\u6709\u5355\u72ec\u7684\u7edf\u8ba1\u6536\u96c6\u5668\u8fdb\u7a0b\u3002", "title": "\u5c06\u7d2f\u8ba1\u7edf\u8ba1\u7cfb\u7edf\u6570\u636e\u5b58\u50a8\u5728\u5171\u4eab\u5185\u5b58\u4e2d", "commits": ["5891c7a8e", "b3abca681"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-5", "source_hash": "026233ce8cdddd213df5e0ff772628927209e291c25711bbf70a4ed5164ec763", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["5891c7a8e"], ["b3abca681"]], "identity_text": "Store cumulative statistics system data in shared memory (Kyotaro Horiguchi, Andres Freund, Melanie Plageman) Previously this data was sent to a statistics collector process via UDP packets, and could only be read by sessions after transferring it via the file system. There is no longer a separate statistics collector process.", "commit_aliases": ["5891c7a8e", "b3abca681"], "source_commits": ["5891c7a8e", "b3abca681"], "source_entry_id": "15.0/changes/028", "db_id": "2b4c3a1d0d622090a1b3f461f0f6cdb5", "patch_ids": ["5a8ad8184bf3f5af9643b8027b07b362", "d1a3cfdb3531e91bc7ee554cc77951a1"], "statement_hash": "160489be2411370df2896245c8731b43489201e44814fabdada082fb4c44cf12", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-32a4c556ff5cb277", "migration": false}, {"id": "15.0-e8f1499f17787f4d", "cves": [], "html": "<p>\u5411 <code>VACUUM VERBOSE</code> \u548c\u81ea\u52a8\u6e05\u7406\u65e5\u5fd7\u6d88\u606f\u6dfb\u52a0\u989d\u5916\u4fe1\u606f\uff08Peter Geoghegan\uff09<a href=\"https://postgr.es/c/872770fd6\">\u00a7</a> <a href=\"https://postgr.es/c/6e20f4600\">\u00a7</a> <a href=\"https://postgr.es/c/bdb71dbe8\">\u00a7</a></p>", "text": "\u5411 VACUUM VERBOSE \u548c\u81ea\u52a8\u6e05\u7406\u65e5\u5fd7\u6d88\u606f\u6dfb\u52a0\u989d\u5916\u4fe1\u606f\uff08Peter Geoghegan\uff09\u00a7 \u00a7 \u00a7", "title": "\u5411 VACUUM VERBOSE \u548c\u81ea\u52a8\u6e05\u7406\u65e5\u5fd7\u6d88\u606f\u6dfb\u52a0\u989d\u5916\u4fe1\u606f", "commits": ["6e20f4600", "872770fd6", "bdb71dbe8"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-5", "source_hash": "45547588612e315339880312a4f27519cbf3633ec0c46f169de9e2ddbb8678d5", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["6e20f4600"], ["872770fd6"], ["bdb71dbe8"]], "identity_text": "Add additional information to VACUUM VERBOSE and autovacuum logging messages (Peter Geoghegan)", "commit_aliases": ["6e20f4600", "872770fd6", "bdb71dbe8"], "source_commits": ["6e20f4600", "872770fd6", "bdb71dbe8"], "source_entry_id": "15.0/changes/029", "db_id": "d81f9a07dff8f8f9ce76fa9871ca204e", "patch_ids": ["659b16154c167a33bdb08f889018646c", "7d8b79144aeeea4542bf3128c2409168", "893816e6e32b2e400c0ff89abc631e71"], "statement_hash": "2b9d0dec7f8196fe6806250ae1e29385b80a35061714e93a4a15b1110f116cb9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-e8f1499f17787f4d", "migration": false}, {"id": "15.0-de59b021681da019", "cves": [], "html": "<p>\u589e\u52a0\u4e34\u65f6\u6587\u4ef6\u5757 I/O \u7684 <a href=\"/docs/15/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN (BUFFERS)</code></a> \u8f93\u51fa\uff08Masahiko Sawada\uff09<a href=\"https://postgr.es/c/efb0ef909\">\u00a7</a></p>", "text": "\u589e\u52a0\u4e34\u65f6\u6587\u4ef6\u5757 I/O \u7684 EXPLAIN (BUFFERS) \u8f93\u51fa\uff08Masahiko Sawada\uff09\u00a7", "title": "\u589e\u52a0\u4e34\u65f6\u6587\u4ef6\u5757 I/O \u7684 EXPLAIN (BUFFERS) \u8f93\u51fa", "commits": ["efb0ef909"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-5", "source_hash": "40b5ae385c4405d255de7707bd4d7142c295812b517f6fe43ea247209221a212", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["efb0ef909"]], "identity_text": "Add EXPLAIN (BUFFERS) output for temporary file block I/O (Masahiko Sawada)", "commit_aliases": ["efb0ef909"], "source_commits": ["efb0ef909"], "source_entry_id": "15.0/changes/030", "db_id": "85d0d94d23821a0f9c95e8b219841bfa", "patch_ids": ["7426e8c81e3611821c1183e0d1ec26fd"], "statement_hash": "15dc6796a1b1f54007eb3b5d30bd90f6ad9d0fa303b3e5601379afa01584dd63", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-de59b021681da019", "migration": false}, {"id": "15.0-87a9ffd95aac507c", "cves": [], "html": "<p>\u5141\u8bb8\u4ee5 <acronym>JSON</acronym> \u683c\u5f0f\u8fdb\u884c<a href=\"/docs/15/runtime-config-logging.html#GUC-LOG-DESTINATION\">\u65e5\u5fd7\u8f93\u51fa</a>\uff08Sehrope Sarkuni\uff0cMichael Paquier\uff09<a href=\"https://postgr.es/c/dc686681e\">\u00a7</a></p>\n<p>\u65b0\u7684\u8bbe\u7f6e\u662f <code>log_destination = jsonlog</code>\u3002</p>", "text": "\u5141\u8bb8\u4ee5 JSON \u683c\u5f0f\u8fdb\u884c\u65e5\u5fd7\u8f93\u51fa\uff08Sehrope Sarkuni\uff0cMichael Paquier\uff09\u00a7 \u65b0\u7684\u8bbe\u7f6e\u662f log_destination = jsonlog\u3002", "title": "\u5141\u8bb8\u4ee5 JSON \u683c\u5f0f\u8fdb\u884c\u65e5\u5fd7\u8f93\u51fa", "commits": ["dc686681e"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-5", "source_hash": "319c0f3e1a707dd98c518df1fd2e0784243b71834a4d5f55ef74afe3763c3058", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["dc686681e"]], "identity_text": "Allow log output in JSON format (Sehrope Sarkuni, Michael Paquier) The new setting is log_destination = jsonlog.", "commit_aliases": ["dc686681e"], "source_commits": ["dc686681e"], "source_entry_id": "15.0/changes/031", "db_id": "1dceb1fcf8248a23abab43f4faddf8e0", "patch_ids": ["aa6d6c5a95c335adb45a1eac4f798ceb"], "statement_hash": "0e453ecd78ac03c100b54fd14808c6c4aa9eb37580d01cdf299b774fd3408f74", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-87a9ffd95aac507c", "migration": false}, {"id": "15.0-7e73cbae381c60bc", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/15/monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE\" title=\"\u8868\u00a028.34.\u00a0\u9644\u52a0\u7edf\u8ba1\u51fd\u6570\"><code>pg_stat_reset_single_table_counters()</code></a> \u91cd\u7f6e\u6240\u6709\u6570\u636e\u5e93\u95f4\u5171\u4eab\u7684\u5173\u7cfb\u7684\u8ba1\u6570\u5668\uff08Sadhuprasad Patro\uff09<a href=\"https://postgr.es/c/e04267844\">\u00a7</a></p>", "text": "\u5141\u8bb8 pg_stat_reset_single_table_counters() \u91cd\u7f6e\u6240\u6709\u6570\u636e\u5e93\u95f4\u5171\u4eab\u7684\u5173\u7cfb\u7684\u8ba1\u6570\u5668\uff08Sadhuprasad Patro\uff09\u00a7", "title": "\u5141\u8bb8 pg_stat_reset_single_table_counters() \u91cd\u7f6e\u6240\u6709\u6570\u636e\u5e93\u95f4\u5171\u4eab\u7684\u5173\u7cfb\u7684\u8ba1\u6570\u5668", "commits": ["e04267844"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-5", "source_hash": "6028657a26d3879f1158090e0fab5c9af6eb181d7c0cf6705abaa7fdbfb3fc4d", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["e04267844"]], "identity_text": "Allow pg_stat_reset_single_table_counters() to reset the counters of relations shared across all databases (Sadhuprasad Patro)", "commit_aliases": ["e04267844"], "source_commits": ["e04267844"], "source_entry_id": "15.0/changes/032", "db_id": "9940d6aaa9715c9ec34c130372ad75b2", "patch_ids": ["7dad320365e5823b4247c2e5f0374e54"], "statement_hash": "ef558e5ac3ef9cbb14f2af83d297e5d50f42c5e2fde9e95059b520f63ae9fe4d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-7e73cbae381c60bc", "migration": false}, {"id": "15.0-553fe9a11b93cd71", "cves": [], "html": "<p>\u4e3a\u672c\u5730 shell \u547d\u4ee4\u589e\u52a0<a href=\"/docs/15/monitoring-stats.html#WAIT-EVENT-TABLE\" title=\"\u8868\u00a028.4.\u00a0\u7b49\u5f85\u4e8b\u4ef6\u7c7b\u578b\">\u7b49\u5f85\u4e8b\u4ef6</a>\uff08Fujii Masao\uff09<a href=\"https://postgr.es/c/1b06d7bac\">\u00a7</a></p>\n<p>\u65b0\u7684\u7b49\u5f85\u4e8b\u4ef6\u5728\u8c03\u7528 <code>archive_command</code>\u3001<code>archive_cleanup_command</code>\u3001<code>restore_command</code> \u548c <code>recovery_end_command</code> \u65f6\u4f7f\u7528\u3002</p>", "text": "\u4e3a\u672c\u5730 shell \u547d\u4ee4\u589e\u52a0\u7b49\u5f85\u4e8b\u4ef6\uff08Fujii Masao\uff09\u00a7 \u65b0\u7684\u7b49\u5f85\u4e8b\u4ef6\u5728\u8c03\u7528 archive_command\u3001archive_cleanup_command\u3001restore_command \u548c recovery_end_command \u65f6\u4f7f\u7528\u3002", "title": "\u4e3a\u672c\u5730 shell \u547d\u4ee4\u589e\u52a0\u7b49\u5f85\u4e8b\u4ef6", "commits": ["1b06d7bac"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-5", "source_hash": "488ec2462321daafedf01b683d809d82723301efc11db4e4868b99fc97fe8430", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["1b06d7bac"]], "identity_text": "Add wait events for local shell commands (Fujii Masao) The new wait events are used when calling archive_command, archive_cleanup_command, restore_command and recovery_end_command.", "commit_aliases": ["1b06d7bac"], "source_commits": ["1b06d7bac"], "source_entry_id": "15.0/changes/033", "db_id": "9e1c3978d43861854d97c8247d6b7968", "patch_ids": ["7d21949ba0d2423bc65d65d561eb21e3"], "statement_hash": "c320e984dad6926a91d0348ecd1392ba5b6539d5362484ee4349bfdc09cd4ebb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-553fe9a11b93cd71", "migration": false}, {"id": "15.0-6dfa38ff893feb7f", "cves": [], "html": "<p>\u5141\u8bb8\u901a\u8fc7<a href=\"/docs/15/sql-createview.html\" title=\"CREATE VIEW\">\u89c6\u56fe</a>\u8fdb\u884c\u7684\u8868\u8bbf\u95ee\u53ef\u9009\u62e9\u6027\u5730\u7531\u89c6\u56fe\u8c03\u7528\u8005\u7684\u6743\u9650\u63a7\u5236\uff08Christoph Heiss\uff09<a href=\"https://postgr.es/c/7faa5fc84\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u89c6\u56fe\u8bbf\u95ee\u603b\u662f\u88ab\u89c6\u4e3a\u7531\u89c6\u56fe\u6240\u6709\u8005\u5b8c\u6210\u3002\u8fd9\u4ecd\u7136\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>", "text": "\u5141\u8bb8\u901a\u8fc7\u89c6\u56fe\u8fdb\u884c\u7684\u8868\u8bbf\u95ee\u53ef\u9009\u62e9\u6027\u5730\u7531\u89c6\u56fe\u8c03\u7528\u8005\u7684\u6743\u9650\u63a7\u5236\uff08Christoph Heiss\uff09\u00a7 \u4ee5\u524d\uff0c\u89c6\u56fe\u8bbf\u95ee\u603b\u662f\u88ab\u89c6\u4e3a\u7531\u89c6\u56fe\u6240\u6709\u8005\u5b8c\u6210\u3002\u8fd9\u4ecd\u7136\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002", "title": "\u5141\u8bb8\u901a\u8fc7\u89c6\u56fe\u8fdb\u884c\u7684\u8868\u8bbf\u95ee\u53ef\u9009\u62e9\u6027\u5730\u7531\u89c6\u56fe\u8c03\u7528\u8005\u7684\u6743\u9650\u63a7\u5236", "commits": ["7faa5fc84"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-6", "source_hash": "34c7456d32ee96c08253a25844d271681c2071c6e6661b0e0e6290783402c01a", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["7faa5fc84"]], "identity_text": "Allow table accesses done by a view to optionally be controlled by privileges of the view's caller (Christoph Heiss) Previously, view accesses were always treated as being done by the view's owner. That's still the default.", "commit_aliases": ["7faa5fc84"], "source_commits": ["7faa5fc84"], "source_entry_id": "15.0/changes/034", "db_id": "ac85d8783cb59a13718384a955a89fb5", "patch_ids": ["6225d989be7298c5dfd0998b9828f498"], "statement_hash": "c138d7d9810085827f5ce4fe925cbaeb2785d9c9a06b600f4f15247a8419a725", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-6dfa38ff893feb7f", "migration": false}, {"id": "15.0-2f4007cb3932554b", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/15/predefined-roles.html#PREDEFINED-ROLES-TABLE\" title=\"\u8868\u00a022.1.\u00a0\u9884\u5b9a\u4e49\u89d2\u8272\"><code>pg_write_server_files</code></a> \u9884\u5b9a\u4e49\u89d2\u8272\u7684\u6210\u5458\u6267\u884c\u670d\u52a1\u5668\u7aef\u57fa\u7840\u5907\u4efd\uff08Dagfinn Ilmari Manns\u00e5ker\uff09<a href=\"https://postgr.es/c/7f6772317\">\u00a7</a></p>\n<p>\u4ee5\u524d\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u53ef\u4ee5\u6267\u884c\u6b64\u7c7b\u5907\u4efd\u3002</p>", "text": "\u5141\u8bb8 pg_write_server_files \u9884\u5b9a\u4e49\u89d2\u8272\u7684\u6210\u5458\u6267\u884c\u670d\u52a1\u5668\u7aef\u57fa\u7840\u5907\u4efd\uff08Dagfinn Ilmari Manns\u00e5ker\uff09\u00a7 \u4ee5\u524d\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u53ef\u4ee5\u6267\u884c\u6b64\u7c7b\u5907\u4efd\u3002", "title": "\u5141\u8bb8 pg_write_server_files \u9884\u5b9a\u4e49\u89d2\u8272\u7684\u6210\u5458\u6267\u884c\u670d\u52a1\u5668\u7aef\u57fa\u7840\u5907\u4efd", "commits": ["7f6772317"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-6", "source_hash": "aef2c985bcf3fee2b76fde1d3641d428411f50479c7233487a9cfc8ff2ed217c", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["7f6772317"]], "identity_text": "Allow members of the pg_write_server_files predefined role to perform server-side base backups (Dagfinn Ilmari Manns\u00e5ker) Previously only superusers could perform such backups.", "commit_aliases": ["7f6772317"], "source_commits": ["7f6772317"], "source_entry_id": "15.0/changes/035", "db_id": "52cbaa16877951f5179ad2e822c082cb", "patch_ids": ["d8c1f36313a292fb893bc5f9c7dd1495"], "statement_hash": "bf93425604d838e275aefd53d23653e69305a801e4c57d36e8383262bea2fab7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-2f4007cb3932554b", "migration": false}, {"id": "15.0-33c052637f819cbe", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/15/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a> \u6388\u4e88\u901a\u8fc7 <code>SET</code> \u548c <code>ALTER SYSTEM</code> \u66f4\u6539\u5355\u4e2a\u670d\u52a1\u5668\u53d8\u91cf\u7684\u6743\u9650\uff08Mark Dilger\uff09<a href=\"https://postgr.es/c/a0ffa885e\">\u00a7</a> <a href=\"https://postgr.es/c/a2944d872\">\u00a7</a></p>\n<p>\u65b0\u51fd\u6570 <code>has_parameter_privilege()</code> \u62a5\u544a\u6b64\u6743\u9650\u3002</p>", "text": "\u5141\u8bb8 GRANT \u6388\u4e88\u901a\u8fc7 SET \u548c ALTER SYSTEM \u66f4\u6539\u5355\u4e2a\u670d\u52a1\u5668\u53d8\u91cf\u7684\u6743\u9650\uff08Mark Dilger\uff09\u00a7 \u00a7 \u65b0\u51fd\u6570 has_parameter_privilege() \u62a5\u544a\u6b64\u6743\u9650\u3002", "title": "\u5141\u8bb8 GRANT \u6388\u4e88\u901a\u8fc7 SET \u548c ALTER SYSTEM \u66f4\u6539\u5355\u4e2a\u670d\u52a1\u5668\u53d8\u91cf\u7684\u6743\u9650", "commits": ["a0ffa885e", "a2944d872"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-6", "source_hash": "e5dc3fd46dcba9ebbd0547f414446f413fd5cf74446f0e302c15adc3f171af1a", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["a0ffa885e"], ["a2944d872"]], "identity_text": "Allow GRANT to grant permissions to change individual server variables via SET and ALTER SYSTEM (Mark Dilger) The new function has_parameter_privilege() reports on this privilege.", "commit_aliases": ["a0ffa885e", "a2944d872"], "source_commits": ["a0ffa885e", "a2944d872"], "source_entry_id": "15.0/changes/036", "db_id": "bc94b5fe19fa91334b8506d569c17dce", "patch_ids": ["0cabbb1430727967a1a61f10456549d1", "641f8abe140459c2f4985b9de0d628bc"], "statement_hash": "4ea5a4db83891deb60d63344961f4415a764b06e43e9f337380ef4f7ecbd4337", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-33c052637f819cbe", "migration": false}, {"id": "15.0-48cb485f88d042fa", "cves": [], "html": "<p>\u589e\u52a0\u9884\u5b9a\u4e49\u89d2\u8272 <a href=\"/docs/15/predefined-roles.html#PREDEFINED-ROLES-TABLE\" title=\"\u8868\u00a022.1.\u00a0\u9884\u5b9a\u4e49\u89d2\u8272\"><code>pg_checkpoint</code></a>\uff0c\u5141\u8bb8\u5176\u6210\u5458\u8fd0\u884c <code>CHECKPOINT</code>\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/4168a4745\">\u00a7</a> <a href=\"https://postgr.es/c/d3526e59f\">\u00a7</a></p>\n<p>\u4ee5\u524d\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u53ef\u4ee5\u8fd0\u884c\u68c0\u67e5\u70b9\u3002</p>", "text": "\u589e\u52a0\u9884\u5b9a\u4e49\u89d2\u8272 pg_checkpoint\uff0c\u5141\u8bb8\u5176\u6210\u5458\u8fd0\u884c CHECKPOINT\uff08Jeff Davis\uff09\u00a7 \u00a7 \u4ee5\u524d\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u53ef\u4ee5\u8fd0\u884c\u68c0\u67e5\u70b9\u3002", "title": "\u589e\u52a0\u9884\u5b9a\u4e49\u89d2\u8272 pg_checkpoint\uff0c\u5141\u8bb8\u5176\u6210\u5458\u8fd0\u884c CHECKPOINT", "commits": ["4168a4745", "d3526e59f"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-6", "source_hash": "922630a097755a75cc7be8b29ed9cb9fbf56593065cd6cc67205275d743eeed7", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["4168a4745"], ["d3526e59f"]], "identity_text": "Add predefined role pg_checkpoint that allows members to run CHECKPOINT (Jeff Davis) Previously checkpoints could only be run by superusers.", "commit_aliases": ["4168a4745", "d3526e59f"], "source_commits": ["4168a4745", "d3526e59f"], "source_entry_id": "15.0/changes/037", "db_id": "c2af8fb124f2af65244531762f8ab2d4", "patch_ids": ["977d906d45fde8a5505036608578f33b", "ca297ed1272fdcb551c3c0f733a0ca5f"], "statement_hash": "547bf39dec75764427579964990d2aeaf63db06ae4412e4357715037c4bb6c18", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-48cb485f88d042fa", "migration": false}, {"id": "15.0-6433244e229a3922", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/15/predefined-roles.html#PREDEFINED-ROLES-TABLE\" title=\"\u8868\u00a022.1.\u00a0\u9884\u5b9a\u4e49\u89d2\u8272\"><code>pg_read_all_stats</code></a> \u9884\u5b9a\u4e49\u89d2\u8272\u7684\u6210\u5458\u8bbf\u95ee <a href=\"/docs/15/view-pg-backend-memory-contexts.html\" title=\"54.4.\u00a0pg_backend_memory_contexts\"><code>pg_backend_memory_contexts</code></a> \u548c <a href=\"/docs/15/view-pg-shmem-allocations.html\" title=\"54.26.\u00a0pg_shmem_allocations\"><code>pg_shmem_allocations</code></a> \u89c6\u56fe\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/77ea4f943\">\u00a7</a></p>\n<p>\u4ee5\u524d\u8fd9\u4e9b\u89c6\u56fe\u53ea\u80fd\u7531\u8d85\u7ea7\u7528\u6237\u8bbf\u95ee\u3002</p>", "text": "\u5141\u8bb8 pg_read_all_stats \u9884\u5b9a\u4e49\u89d2\u8272\u7684\u6210\u5458\u8bbf\u95ee pg_backend_memory_contexts \u548c pg_shmem_allocations \u89c6\u56fe\uff08Bharath Rupireddy\uff09\u00a7 \u4ee5\u524d\u8fd9\u4e9b\u89c6\u56fe\u53ea\u80fd\u7531\u8d85\u7ea7\u7528\u6237\u8bbf\u95ee\u3002", "title": "\u5141\u8bb8 pg_read_all_stats \u9884\u5b9a\u4e49\u89d2\u8272\u7684\u6210\u5458\u8bbf\u95ee pg_backend_memory_contexts \u548c pg_shmem_allocations \u89c6\u56fe", "commits": ["77ea4f943"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-6", "source_hash": "327358a7320ab8a5f40f291508ce1cf1d0b9ccb33bd3bfd75fdb625e1a3a1465", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["77ea4f943"]], "identity_text": "Allow members of the pg_read_all_stats predefined role to access the views pg_backend_memory_contexts and pg_shmem_allocations (Bharath Rupireddy) Previously these views could only be accessed by superusers.", "commit_aliases": ["77ea4f943"], "source_commits": ["77ea4f943"], "source_entry_id": "15.0/changes/038", "db_id": "f3a745745c3273d5acb00f38965f71f2", "patch_ids": ["05f54922167b1d479ec2f1be205801ea"], "statement_hash": "3f723d4aaf8b80e2a537b251141e9e3bca1b59f029fca726c1302b753da0b6be", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-6433244e229a3922", "migration": false}, {"id": "15.0-a4af8be0c49cc043", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/15/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a> \u6388\u4e88 <a href=\"/docs/15/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> \u7684\u6743\u9650\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/f0b051e32\">\u00a7</a></p>\n<p>\u4ee5\u524d\u6b64\u51fd\u6570\u53ea\u80fd\u7531\u8d85\u7ea7\u7528\u6237\u8fd0\u884c\u3002</p>", "text": "\u5141\u8bb8 GRANT \u6388\u4e88 pg_log_backend_memory_contexts() \u7684\u6743\u9650\uff08Jeff Davis\uff09\u00a7 \u4ee5\u524d\u6b64\u51fd\u6570\u53ea\u80fd\u7531\u8d85\u7ea7\u7528\u6237\u8fd0\u884c\u3002", "title": "\u5141\u8bb8 GRANT \u6388\u4e88 pg_log_backend_memory_contexts() \u7684\u6743\u9650", "commits": ["f0b051e32"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-6", "source_hash": "a4809331f917a92b6b560db492b29cce63c460ebf62f02cd2441b7dac6659231", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["f0b051e32"]], "identity_text": "Allow GRANT to grant permissions on pg_log_backend_memory_contexts() (Jeff Davis) Previously this function could only be run by superusers.", "commit_aliases": ["f0b051e32"], "source_commits": ["f0b051e32"], "source_entry_id": "15.0/changes/039", "db_id": "261b76ed0ed33aaea5936589f7a23413", "patch_ids": ["ebe4b932fa124fc77fd76a7e9ab0c8d7"], "statement_hash": "f5eae73862e7d12dc0436c727dd947e5a178498d3487010f6cca89db69100536", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-a4af8be0c49cc043", "migration": false}, {"id": "15.0-2f0c1d8373b72547", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/15/runtime-config-preset.html#GUC-SHARED-MEMORY-SIZE\"><code>shared_memory_size</code></a> \u4ee5\u62a5\u544a\u5df2\u5206\u914d\u5171\u4eab\u5185\u5b58\u7684\u5927\u5c0f\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/bd1788051\">\u00a7</a> <a href=\"https://postgr.es/c/3b231596c\">\u00a7</a></p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf shared_memory_size \u4ee5\u62a5\u544a\u5df2\u5206\u914d\u5171\u4eab\u5185\u5b58\u7684\u5927\u5c0f\uff08Nathan Bossart\uff09\u00a7 \u00a7", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf shared_memory_size \u4ee5\u62a5\u544a\u5df2\u5206\u914d\u5171\u4eab\u5185\u5b58\u7684\u5927\u5c0f", "commits": ["3b231596c", "bd1788051"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-7", "source_hash": "fe564b7fe1e87467af92fa9e94feb70f3a25df304ab334d496ad417546b835ee", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["3b231596c"], ["bd1788051"]], "identity_text": "Add server variable shared_memory_size to report the size of allocated shared memory (Nathan Bossart)", "commit_aliases": ["3b231596c", "bd1788051"], "source_commits": ["3b231596c", "bd1788051"], "source_entry_id": "15.0/changes/040", "db_id": "5916026cc36ea1bcea28c7f0ca6c90d7", "patch_ids": ["2e40a2b2fbcb7581d54f5f5d44888129", "d46dfa0bbb1b243693954c89636ecd2b"], "statement_hash": "74c5dfdae4cb89883cc9c83d97f827f553192c433fbd99832619cd461f8c47ba", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-2f0c1d8373b72547", "migration": false}, {"id": "15.0-fd83e0802e8bcf80", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/15/runtime-config-preset.html#GUC-SHARED-MEMORY-SIZE-IN-HUGE-PAGES\"><code>shared_memory_size_in_huge_pages</code></a> \u4ee5\u62a5\u544a\u6240\u9700\u7684\u5927\u5185\u5b58\u9875\u6570\u91cf\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/43c1c4f65\">\u00a7</a> <a href=\"https://postgr.es/c/bbd4951b7\">\u00a7</a></p>\n<p>\u8fd9\u4ec5\u5728 Linux \u4e0a\u53d7\u652f\u6301\u3002</p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf shared_memory_size_in_huge_pages \u4ee5\u62a5\u544a\u6240\u9700\u7684\u5927\u5185\u5b58\u9875\u6570\u91cf\uff08Nathan Bossart\uff09\u00a7 \u00a7 \u8fd9\u4ec5\u5728 Linux \u4e0a\u53d7\u652f\u6301\u3002", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf shared_memory_size_in_huge_pages \u4ee5\u62a5\u544a\u6240\u9700\u7684\u5927\u5185\u5b58\u9875\u6570\u91cf", "commits": ["43c1c4f65", "bbd4951b7"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-7", "source_hash": "0a7dee2f8a463c5f448b2ab8445de8cd3806426645854e42873d495f8ecaabff", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["43c1c4f65"], ["bbd4951b7"]], "identity_text": "Add server variable shared_memory_size_in_huge_pages to report the number of huge memory pages required (Nathan Bossart) This is only supported on Linux.", "commit_aliases": ["43c1c4f65", "bbd4951b7"], "source_commits": ["43c1c4f65", "bbd4951b7"], "source_entry_id": "15.0/changes/041", "db_id": "e611d94692bf1cdf1448de4cb76bcbf5", "patch_ids": ["3e15ee3fa727f3c86894ffb1125d0fb8", "aa8974a4199e674f82b6fda3da1112d4"], "statement_hash": "50e7fdf99f17742ca40328a63e976700f1fb6eaccec587fb59ef65ebd44b6b3d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-fd83e0802e8bcf80", "migration": false}, {"id": "15.0-f74a8a246004981f", "cves": [], "html": "<p>\u5728\u5355\u7528\u6237\u6a21\u5f0f\u4e0b\u9075\u5b88\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/15/runtime-config-client.html#GUC-SHARED-PRELOAD-LIBRARIES\"><code>shared_preload_libraries</code></a>\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/2103266a3\">\u00a7</a></p>\n<p>\u6b64\u53d8\u66f4\u652f\u6301\u4f7f\u7528 <code>shared_preload_libraries</code> \u52a0\u8f7d\u81ea\u5b9a\u4e49\u8bbf\u95ee\u65b9\u6cd5\u548c WAL \u8d44\u6e90\u7ba1\u7406\u5668\uff0c\u5373\u4f7f\u5728\u5355\u7528\u6237\u6a21\u5f0f\u4e0b\u8fd9\u5bf9\u6570\u636e\u5e93\u8bbf\u95ee\u4e5f\u662f\u5fc5\u9700\u7684\u3002</p>", "text": "\u5728\u5355\u7528\u6237\u6a21\u5f0f\u4e0b\u9075\u5b88\u670d\u52a1\u5668\u53d8\u91cf shared_preload_libraries\uff08Jeff Davis\uff09\u00a7 \u6b64\u53d8\u66f4\u652f\u6301\u4f7f\u7528 shared_preload_libraries \u52a0\u8f7d\u81ea\u5b9a\u4e49\u8bbf\u95ee\u65b9\u6cd5\u548c WAL \u8d44\u6e90\u7ba1\u7406\u5668\uff0c\u5373\u4f7f\u5728\u5355\u7528\u6237\u6a21\u5f0f\u4e0b\u8fd9\u5bf9\u6570\u636e\u5e93\u8bbf\u95ee\u4e5f\u662f\u5fc5\u9700\u7684\u3002", "title": "\u5728\u5355\u7528\u6237\u6a21\u5f0f\u4e0b\u9075\u5b88\u670d\u52a1\u5668\u53d8\u91cf shared_preload_libraries", "commits": ["2103266a3"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-7", "source_hash": "ba29119a8366545c01217f4b0c74092b88d67870874b60e9612e906433860fc3", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["2103266a3"]], "identity_text": "Honor server variable shared_preload_libraries in single-user mode (Jeff Davis) This change supports use of shared_preload_libraries to load custom access methods and WAL resource managers, which would be essential for database access even in single-user mode.", "commit_aliases": ["2103266a3"], "source_commits": ["2103266a3"], "source_entry_id": "15.0/changes/042", "db_id": "3276ddd9c50907cad911a2bde6f06bb0", "patch_ids": ["224d949d76de47c64770b7acf358f326"], "statement_hash": "8fe715f59ad25e41b20e38d1818760f8958ed281e62c82f9d80e7a1a8a80d468", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-f74a8a246004981f", "migration": false}, {"id": "15.0-72b5264bc8ea712f", "cves": [], "html": "<p>\u5728 Solaris \u4e0a\uff0c\u5c06 <a href=\"/docs/15/runtime-config-resource.html#GUC-DYNAMIC-SHARED-MEMORY-TYPE\"><code>dynamic_shared_memory_type</code></a> \u7684\u9ed8\u8ba4\u8bbe\u7f6e\u8bbe\u4e3a <code>sysv</code>\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/a2b0719cc\">\u00a7</a></p>\n<p>\u4e4b\u524d\u7684\u9ed8\u8ba4\u9009\u62e9 <code>posix</code> \u53ef\u80fd\u5bfc\u81f4\u6b64\u5e73\u53f0\u4e0a\u7684\u865a\u5047\u5931\u8d25\u3002</p>", "text": "\u5728 Solaris \u4e0a\uff0c\u5c06 dynamic_shared_memory_type \u7684\u9ed8\u8ba4\u8bbe\u7f6e\u8bbe\u4e3a sysv\uff08Thomas Munro\uff09\u00a7 \u4e4b\u524d\u7684\u9ed8\u8ba4\u9009\u62e9 posix \u53ef\u80fd\u5bfc\u81f4\u6b64\u5e73\u53f0\u4e0a\u7684\u865a\u5047\u5931\u8d25\u3002", "title": "\u5728 Solaris \u4e0a\uff0c\u5c06 dynamic_shared_memory_type \u7684\u9ed8\u8ba4\u8bbe\u7f6e\u8bbe\u4e3a sysv", "commits": ["a2b0719cc"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-7", "source_hash": "db3e5f2e47749fd795c3210015e8029e67289f836bd0ea74b1f1b28e16bdc668", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["a2b0719cc"]], "identity_text": "On Solaris, make the default setting of dynamic_shared_memory_type be sysv (Thomas Munro) The previous default choice, posix, can result in spurious failures on this platform.", "commit_aliases": ["a2b0719cc"], "source_commits": ["a2b0719cc"], "source_entry_id": "15.0/changes/043", "db_id": "1930e7af8252671991d5dad0a5e25964", "patch_ids": ["8c00bebdd2ec541981560542ba6459d3"], "statement_hash": "0e95fe1f7c768bce2bbf791e82d5f4a9b253020e2694573c1e8e8376c3847edd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-72b5264bc8ea712f", "migration": false}, {"id": "15.0-d44f5ca0b8aa56f7", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/15/app-postgres.html\" title=\"postgres\"><code>postgres -C</code></a> \u6b63\u786e\u62a5\u544a\u8fd0\u884c\u65f6\u8ba1\u7b97\u7684\u503c\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/0c39c2920\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u8fd0\u884c\u65f6\u8ba1\u7b97\u7684\u503c <a href=\"/docs/15/runtime-config-preset.html#GUC-DATA-CHECKSUMS\"><code>data_checksums</code></a>\u3001<a href=\"/docs/15/runtime-config-preset.html#GUC-WAL-SEGMENT-SIZE\"><code>wal_segment_size</code></a> \u548c <a href=\"/docs/15/runtime-config-preset.html#GUC-DATA-DIRECTORY-MODE\"><code>data_directory_mode</code></a> \u4f1a\u62a5\u544a\u5728\u8fd0\u884c\u4e2d\u7684\u670d\u52a1\u5668\u4e0a\u4e0d\u51c6\u786e\u7684\u503c\u3002\u4f46\u662f\uff0c\u8fd9\u5728\u8fd0\u884c\u4e2d\u7684\u670d\u52a1\u5668\u4e0a\u4e0d\u8d77\u4f5c\u7528\u3002</p>", "text": "\u5141\u8bb8 postgres -C \u6b63\u786e\u62a5\u544a\u8fd0\u884c\u65f6\u8ba1\u7b97\u7684\u503c\uff08Nathan Bossart\uff09\u00a7 \u4ee5\u524d\uff0c\u8fd0\u884c\u65f6\u8ba1\u7b97\u7684\u503c data_checksums\u3001wal_segment_size \u548c data_directory_mode \u4f1a\u62a5\u544a\u5728\u8fd0\u884c\u4e2d\u7684\u670d\u52a1\u5668\u4e0a\u4e0d\u51c6\u786e\u7684\u503c\u3002\u4f46\u662f\uff0c\u8fd9\u5728\u8fd0\u884c\u4e2d\u7684\u670d\u52a1\u5668\u4e0a\u4e0d\u8d77\u4f5c\u7528\u3002", "title": "\u5141\u8bb8 postgres -C \u6b63\u786e\u62a5\u544a\u8fd0\u884c\u65f6\u8ba1\u7b97\u7684\u503c", "commits": ["0c39c2920"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-7", "source_hash": "054acc68871ae91f261e06f8e56c466e8e4db7fd6783c54aa995bf4ed6e4a2d2", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["0c39c2920"]], "identity_text": "Allow postgres -C to properly report runtime-computed values (Nathan Bossart) Previously runtime-computed values data_checksums, wal_segment_size, and data_directory_mode would report values that would not be accurate on the running server. However, this does not work on a running server.", "commit_aliases": ["0c39c2920"], "source_commits": ["0c39c2920"], "source_entry_id": "15.0/changes/044", "db_id": "ea8fc2bd5f87e822a570f6e1aa64549e", "patch_ids": ["ebe1711801ceb95225eb9a1633b6489f"], "statement_hash": "120f85a707ca51bc1e71c42bf0a3d38aa808b13830912da221c48adaa179215c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-d44f5ca0b8aa56f7", "migration": false}, {"id": "15.0-ef40d228b31695da", "cves": [], "html": "<p>\u589e\u52a0\u5bf9\u670d\u52a1\u5668\u7aef<a href=\"/docs/15/continuous-archiving.html#BACKUP-BASE-BACKUP\" title=\"26.3.2.\u00a0\u8fdb\u884c\u57fa\u7840\u5907\u4efd\">\u57fa\u7840\u5907\u4efd</a>\u7684 LZ4 \u548c Zstandard \u538b\u7f29\u652f\u6301\uff08Jeevan Ladhe\uff0cRobert Haas\uff09<a href=\"https://postgr.es/c/dab298471\">\u00a7</a> <a href=\"https://postgr.es/c/7cf085f07\">\u00a7</a> <a href=\"https://postgr.es/c/51c0d186d\">\u00a7</a></p>", "text": "\u589e\u52a0\u5bf9\u670d\u52a1\u5668\u7aef\u57fa\u7840\u5907\u4efd\u7684 LZ4 \u548c Zstandard \u538b\u7f29\u652f\u6301\uff08Jeevan Ladhe\uff0cRobert Haas\uff09\u00a7 \u00a7 \u00a7", "title": "\u589e\u52a0\u5bf9\u670d\u52a1\u5668\u7aef\u57fa\u7840\u5907\u4efd\u7684 LZ4 \u548c Zstandard \u538b\u7f29\u652f\u6301", "commits": ["51c0d186d", "7cf085f07", "dab298471"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-2", "source_hash": "7eed8c95a1c19e0e212884f7115ef4c7c1bd60303b33087d732e69fc7377975f", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["51c0d186d"], ["7cf085f07"], ["dab298471"]], "identity_text": "Add support for LZ4 and Zstandard compression of server-side base backups (Jeevan Ladhe, Robert Haas)", "commit_aliases": ["51c0d186d", "7cf085f07", "dab298471"], "source_commits": ["51c0d186d", "7cf085f07", "dab298471"], "source_entry_id": "15.0/changes/045", "db_id": "17f165db6d2594958287676579602aec", "patch_ids": ["14c329bc35f9bdb64f20e6446d18ad01", "a06a70c3b6de9ee81579ac5e3897ff6c", "bdb98f760bc90ec86ce75f099481cafa"], "statement_hash": "5e03b1dd6702dce27fb088d53d67460fa9a254f3faba87371b4b75c8acae5216", "relations": [{"rule": 2, "type": "related", "target": "a0c3ea9a34f7191acb55d64cb8b67b8d", "evidence": {"same_day": true, "patch_ids": ["a06a70c3b6de9ee81579ac5e3897ff6c"], "ambiguous_patch_ids": ["a06a70c3b6de9ee81579ac5e3897ff6c", "df970c275b164d4974b6006d7d27b907"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-ef40d228b31695da", "migration": false}, {"id": "15.0-3135809b46589e03", "cves": [], "html": "<p>\u5728\u5d29\u6e83\u6062\u590d\u671f\u95f4\u8fd0\u884c\u68c0\u67e5\u70b9\u8fdb\u7a0b\u548c\u540e\u53f0\u5199\u5165\u8fdb\u7a0b\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/7ff23c6d2\">\u00a7</a></p>\n<p>\u8fd9\u6709\u52a9\u4e8e\u52a0\u901f\u957f\u65f6\u95f4\u7684\u5d29\u6e83\u6062\u590d\u3002</p>", "text": "\u5728\u5d29\u6e83\u6062\u590d\u671f\u95f4\u8fd0\u884c\u68c0\u67e5\u70b9\u8fdb\u7a0b\u548c\u540e\u53f0\u5199\u5165\u8fdb\u7a0b\uff08Thomas Munro\uff09\u00a7 \u8fd9\u6709\u52a9\u4e8e\u52a0\u901f\u957f\u65f6\u95f4\u7684\u5d29\u6e83\u6062\u590d\u3002", "title": "\u5728\u5d29\u6e83\u6062\u590d\u671f\u95f4\u8fd0\u884c\u68c0\u67e5\u70b9\u8fdb\u7a0b\u548c\u540e\u53f0\u5199\u5165\u8fdb\u7a0b", "commits": ["7ff23c6d2"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-2", "source_hash": "290e3bd6b37b410c136b3e37da983b7c272d01e9af5bd6236d4b891101058b63", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["7ff23c6d2"]], "identity_text": "Run the checkpointer and bgwriter processes during crash recovery (Thomas Munro) This helps to speed up long crash recoveries.", "commit_aliases": ["7ff23c6d2"], "source_commits": ["7ff23c6d2"], "source_entry_id": "15.0/changes/046", "db_id": "071a9a0c7a9f41c02e78f49b4560363f", "patch_ids": ["fb32424539ba9dea3ebc902ce466af42"], "statement_hash": "d5f5fa85d826c2401bac669ca6a243061093e887ceb8a29f5cb8d59c23516540", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-3135809b46589e03", "migration": false}, {"id": "15.0-4920871a176c8afa", "cves": [], "html": "<p>\u5141\u8bb8 <acronym>WAL</acronym> \u5904\u7406\u9884\u53d6\u6240\u9700\u7684\u6587\u4ef6\u5185\u5bb9\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/5dc0418fa\">\u00a7</a></p>\n<p>\u8fd9\u7531\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/15/runtime-config-wal.html#GUC-RECOVERY-PREFETCH\"><code>recovery_prefetch</code></a> \u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8 WAL \u5904\u7406\u9884\u53d6\u6240\u9700\u7684\u6587\u4ef6\u5185\u5bb9\uff08Thomas Munro\uff09\u00a7 \u8fd9\u7531\u670d\u52a1\u5668\u53d8\u91cf recovery_prefetch \u63a7\u5236\u3002", "title": "\u5141\u8bb8 WAL \u5904\u7406\u9884\u53d6\u6240\u9700\u7684\u6587\u4ef6\u5185\u5bb9", "commits": ["5dc0418fa"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-2", "source_hash": "8a5d9d40ebcb474851abb2662ca4a4fc204553dc3654be57727de860ec092b6e", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["5dc0418fa"]], "identity_text": "Allow WAL processing to pre-fetch needed file contents (Thomas Munro) This is controlled by the server variable recovery_prefetch.", "commit_aliases": ["5dc0418fa"], "source_commits": ["5dc0418fa"], "source_entry_id": "15.0/changes/047", "db_id": "e3b6acf7983927df7f8a5eb5967974fb", "patch_ids": ["976877a722af09a1a01b30796bd6e15f"], "statement_hash": "aa32c32e5fafda158e2ce0b5c70d264e77ef11dafb0861797f55893fbbe1d42c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-4920871a176c8afa", "migration": false}, {"id": "15.0-b74cf61eaf6cd9af", "cves": [], "html": "<p>\u5141\u8bb8\u901a\u8fc7\u53ef\u52a0\u8f7d\u6a21\u5757\u8fdb\u884c\u5f52\u6863\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/5ef1eefd7\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u5f52\u6863\u53ea\u80fd\u901a\u8fc7\u8c03\u7528 shell \u547d\u4ee4\u5b8c\u6210\u3002\u65b0\u7684\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/15/runtime-config-wal.html#GUC-ARCHIVE-LIBRARY\"><code>archive_library</code></a> \u53ef\u4ee5\u8bbe\u7f6e\u4e3a\u6307\u5b9a\u7528\u4e8e\u5f52\u6863\u7684\u5e93\u3002</p>", "text": "\u5141\u8bb8\u901a\u8fc7\u53ef\u52a0\u8f7d\u6a21\u5757\u8fdb\u884c\u5f52\u6863\uff08Nathan Bossart\uff09\u00a7 \u4ee5\u524d\uff0c\u5f52\u6863\u53ea\u80fd\u901a\u8fc7\u8c03\u7528 shell \u547d\u4ee4\u5b8c\u6210\u3002\u65b0\u7684\u670d\u52a1\u5668\u53d8\u91cf archive_library \u53ef\u4ee5\u8bbe\u7f6e\u4e3a\u6307\u5b9a\u7528\u4e8e\u5f52\u6863\u7684\u5e93\u3002", "title": "\u5141\u8bb8\u901a\u8fc7\u53ef\u52a0\u8f7d\u6a21\u5757\u8fdb\u884c\u5f52\u6863", "commits": ["5ef1eefd7"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-2", "source_hash": "2dbef2b7f4bb89c0153269bb6aa9e1341610b1bbe33e22b6fb334a5f0643612d", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["5ef1eefd7"]], "identity_text": "Allow archiving via loadable modules (Nathan Bossart) Previously, archiving was only done by calling shell commands. The new server variable archive_library can be set to specify a library to be called for archiving.", "commit_aliases": ["5ef1eefd7"], "source_commits": ["5ef1eefd7"], "source_entry_id": "15.0/changes/048", "db_id": "c1312471a0873e36c0bdaeb6b052f1c3", "patch_ids": ["fefb75cad2e75b8bf33474a9f9894b08"], "statement_hash": "c923fa06f3298305d8f4643b69333ed9fc82ea72aee3f9ee8e2b4f43d1d74d4d", "relations": [{"rule": 2, "type": "related", "target": "79fac0353beb1cbfa1395b60c57af992", "evidence": {"same_day": true, "patch_ids": ["fefb75cad2e75b8bf33474a9f9894b08"], "ambiguous_patch_ids": ["fefb75cad2e75b8bf33474a9f9894b08"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-b74cf61eaf6cd9af", "migration": false}, {"id": "15.0-75ba01422c28f62f", "cves": [], "html": "<p>\u4e0d\u518d\u8981\u6c42\u5728 <code>START_REPLICATION</code> \u4e4b\u524d\u8fd0\u884c <a href=\"/docs/15/protocol-replication.html\" title=\"55.4.\u00a0\u6d41\u590d\u5236\u534f\u8bae\"><code>IDENTIFY_SYSTEM</code></a>\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/8e7811e95\">\u00a7</a></p>", "text": "\u4e0d\u518d\u8981\u6c42\u5728 START_REPLICATION \u4e4b\u524d\u8fd0\u884c IDENTIFY_SYSTEM\uff08Jeff Davis\uff09\u00a7", "title": "\u4e0d\u518d\u8981\u6c42\u5728 START_REPLICATION \u4e4b\u524d\u8fd0\u884c IDENTIFY_SYSTEM", "commits": ["8e7811e95"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-2", "source_hash": "caf3e0a4f2e73e788ab47548fc747910511d37942e411b7ebcb094b3f35a3ab0", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["8e7811e95"]], "identity_text": "No longer require IDENTIFY_SYSTEM to be run before START_REPLICATION (Jeff Davis)", "commit_aliases": ["8e7811e95"], "source_commits": ["8e7811e95"], "source_entry_id": "15.0/changes/049", "db_id": "a07c00677ffe51c20df482af74971068", "patch_ids": ["f500c907dfb5937aa753e380ce4751c3"], "statement_hash": "fad09abc137349c961b205449007a85a8965dca920e3b4d04fc62c545602cd74", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-75ba01422c28f62f", "migration": false}, {"id": "15.0-35ff90396dafea3c", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/15/sql-createpublication.html\" title=\"CREATE PUBLICATION\">\u53d1\u5e03</a>\u6a21\u5f0f\u4e2d\u7684\u6240\u6709\u8868\uff08Vignesh C\uff0cHou Zhijie\uff0cAmit Kapila\uff09<a href=\"https://postgr.es/c/5a2832465\">\u00a7</a> <a href=\"https://postgr.es/c/1a2aaeb0d\">\u00a7</a> <a href=\"https://postgr.es/c/f256236fb\">\u00a7</a></p>\n<p>\u4f8b\u5982\uff0c\u73b0\u5728\u652f\u6301\u6b64\u8bed\u6cd5\uff1a<code>CREATE PUBLICATION pub1 FOR TABLES IN SCHEMA s1,s2</code>\u3002<code>ALTER PUBLICATION</code> \u652f\u6301\u7c7b\u4f3c\u7684\u8bed\u6cd5\u3002\u7a0d\u540e\u6dfb\u52a0\u5230\u5217\u51fa\u7684\u6a21\u5f0f\u4e2d\u7684\u8868\u4e5f\u5c06\u88ab\u590d\u5236\u3002</p>", "text": "\u5141\u8bb8\u53d1\u5e03\u6a21\u5f0f\u4e2d\u7684\u6240\u6709\u8868\uff08Vignesh C\uff0cHou Zhijie\uff0cAmit Kapila\uff09\u00a7 \u00a7 \u00a7 \u4f8b\u5982\uff0c\u73b0\u5728\u652f\u6301\u6b64\u8bed\u6cd5\uff1aCREATE PUBLICATION pub1 FOR TABLES IN SCHEMA s1,s2\u3002ALTER PUBLICATION \u652f\u6301\u7c7b\u4f3c\u7684\u8bed\u6cd5\u3002\u7a0d\u540e\u6dfb\u52a0\u5230\u5217\u51fa\u7684\u6a21\u5f0f\u4e2d\u7684\u8868\u4e5f\u5c06\u88ab\u590d\u5236\u3002", "title": "\u5141\u8bb8\u53d1\u5e03\u6a21\u5f0f\u4e2d\u7684\u6240\u6709\u8868", "commits": ["1a2aaeb0d", "5a2832465", "f256236fb"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-8", "source_hash": "1494bc345048aa3022c10927edfbbca934fc6bee3b1e22794a2645a9cce82bf4", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["1a2aaeb0d"], ["5a2832465"], ["f256236fb"]], "identity_text": "Allow publication of all tables in a schema (Vignesh C, Hou Zhijie, Amit Kapila) For example, this syntax is now supported: CREATE PUBLICATION pub1 FOR TABLES IN SCHEMA s1,s2. ALTER PUBLICATION supports a similar syntax. Tables added later to the listed schemas will also be replicated.", "commit_aliases": ["1a2aaeb0d", "5a2832465", "f256236fb"], "source_commits": ["1a2aaeb0d", "5a2832465", "f256236fb"], "source_entry_id": "15.0/changes/050", "db_id": "31b3679a7254b92a810952e3f75d29d6", "patch_ids": ["1365bed6d677c220f58f9098b95ed8ee", "2080799d08feaa37887e9f867b9283c1", "cddf03ee7820f801603b95a2f5c17194"], "statement_hash": "1cd4b35e296250c12ac71015f04aea3a7fef7f8d4afdefe8858cfcbe608639e1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-35ff90396dafea3c", "migration": false}, {"id": "15.0-b3e8080b783ae9bc", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 <code>WHERE</code> \u5b50\u53e5\u8fc7\u6ee4\u53d1\u5e03\u5185\u5bb9\uff08Hou Zhijie\uff0cEuler Taveira\uff0cPeter Smith\uff0cAjin Cherian\uff0cTomas Vondra\uff0cAmit Kapila\uff09<a href=\"https://postgr.es/c/52e4f0cd4\">\u00a7</a> <a href=\"https://postgr.es/c/5a0796622\">\u00a7</a> <a href=\"https://postgr.es/c/676eeb6dd\">\u00a7</a></p>\n<p>\u4e0d\u6ee1\u8db3 <code>WHERE</code> \u5b50\u53e5\u7684\u884c\u4e0d\u4f1a\u88ab\u53d1\u5e03\u3002</p>", "text": "\u5141\u8bb8\u4f7f\u7528 WHERE \u5b50\u53e5\u8fc7\u6ee4\u53d1\u5e03\u5185\u5bb9\uff08Hou Zhijie\uff0cEuler Taveira\uff0cPeter Smith\uff0cAjin Cherian\uff0cTomas Vondra\uff0cAmit Kapila\uff09\u00a7 \u00a7 \u00a7 \u4e0d\u6ee1\u8db3 WHERE \u5b50\u53e5\u7684\u884c\u4e0d\u4f1a\u88ab\u53d1\u5e03\u3002", "title": "\u5141\u8bb8\u4f7f\u7528 WHERE \u5b50\u53e5\u8fc7\u6ee4\u53d1\u5e03\u5185\u5bb9", "commits": ["52e4f0cd4", "5a0796622", "676eeb6dd"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-8", "source_hash": "73d59390ea5a983b4577d4731210a507b3bf58c05db0c67d67ee449ea0ad7959", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["52e4f0cd4"], ["5a0796622"], ["676eeb6dd"]], "identity_text": "Allow publication content to be filtered using a WHERE clause (Hou Zhijie, Euler Taveira, Peter Smith, Ajin Cherian, Tomas Vondra, Amit Kapila) Rows not satisfying the WHERE clause are not published.", "commit_aliases": ["52e4f0cd4", "5a0796622", "676eeb6dd"], "source_commits": ["52e4f0cd4", "5a0796622", "676eeb6dd"], "source_entry_id": "15.0/changes/051", "db_id": "209ba5bd302042f8c67cc334f2ace389", "patch_ids": ["3ab6afde4349ad9c10364d76b15c0600", "513cf59a8258b7e3a34aa4773f876ed8", "cf2576c9be7ae936ddb944d1ba243f5d"], "statement_hash": "188d06c318ec3f0b6d81b3ee56d3f3d59189c2b410609a1ff7b88d6b5e8abe91", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-b3e8080b783ae9bc", "migration": false}, {"id": "15.0-373be57c046ccc6e", "cves": [], "html": "<p>\u5141\u8bb8\u5c06\u53d1\u5e03\u5185\u5bb9\u9650\u5236\u4e3a\u7279\u5b9a\u5217\uff08Tomas Vondra\uff0c\u00c1lvaro Herrera\uff0cRahila Syed\uff09<a href=\"https://postgr.es/c/923def9a5\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5c06\u53d1\u5e03\u5185\u5bb9\u9650\u5236\u4e3a\u7279\u5b9a\u5217\uff08Tomas Vondra\uff0c\u00c1lvaro Herrera\uff0cRahila Syed\uff09\u00a7", "title": "\u5141\u8bb8\u5c06\u53d1\u5e03\u5185\u5bb9\u9650\u5236\u4e3a\u7279\u5b9a\u5217", "commits": ["923def9a5"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-8", "source_hash": "3afbd1bc64a8deee189d9e8f555889df73a7dcd10740498afa661057b5cce3ae", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["923def9a5"]], "identity_text": "Allow publication content to be restricted to specific columns (Tomas Vondra, \u00c1lvaro Herrera, Rahila Syed)", "commit_aliases": ["923def9a5"], "source_commits": ["923def9a5"], "source_entry_id": "15.0/changes/052", "db_id": "b456da61e42f2a1ddb34f767384da92d", "patch_ids": ["6020b8ca263776efdbdffb0cb5d0a4df"], "statement_hash": "bf7fea43fac700bda1d5e76ae075449adddab0b99ecc197d2abef3c8df3bcf3c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-373be57c046ccc6e", "migration": false}, {"id": "15.0-9a00ede730f10f93", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 <a href=\"/docs/15/sql-altersubscription.html\" title=\"ALTER SUBSCRIPTION\"><code>ALTER SUBSCRIPTION ... SKIP</code></a> \u5728\u8ba2\u9605\u8005\u4e0a\u8df3\u8fc7\u4e8b\u52a1\uff08Masahiko Sawada\uff09<a href=\"https://postgr.es/c/208c5d65b\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4f7f\u7528 ALTER SUBSCRIPTION ... SKIP \u5728\u8ba2\u9605\u8005\u4e0a\u8df3\u8fc7\u4e8b\u52a1\uff08Masahiko Sawada\uff09\u00a7", "title": "\u5141\u8bb8\u4f7f\u7528 ALTER SUBSCRIPTION ... SKIP \u5728\u8ba2\u9605\u8005\u4e0a\u8df3\u8fc7\u4e8b\u52a1", "commits": ["208c5d65b"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-8", "source_hash": "a6ca0bae3edd6bb34a4d691708d8463fbad2864e8437942b07a9a654b62ce7d2", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["208c5d65b"]], "identity_text": "Allow skipping of transactions on a subscriber using ALTER SUBSCRIPTION ... SKIP (Masahiko Sawada)", "commit_aliases": ["208c5d65b"], "source_commits": ["208c5d65b"], "source_entry_id": "15.0/changes/053", "db_id": "87b3d1dc11ca386db9f19731bccf7990", "patch_ids": ["d170a838bf357ecf630f587b78ffdd37"], "statement_hash": "c1829655bebaf260d933b370d8bb7da306d7674e842800bc631bb323ded839a6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-9a00ede730f10f93", "migration": false}, {"id": "15.0-84fb0c97931ddb62", "cves": [], "html": "<p>\u4e3a\u903b\u8f91\u590d\u5236\u589e\u52a0\u9884\u5907\uff08\u4e24\u9636\u6bb5\uff09\u4e8b\u52a1\u652f\u6301\uff08Peter Smith\uff0cAjin Cherian\uff0cAmit Kapila\uff0cNikhil Sontakke\uff0cStas Kelvich\uff09<a href=\"https://postgr.es/c/cda03cfed\">\u00a7</a> <a href=\"https://postgr.es/c/a8fd13cab\">\u00a7</a> <a href=\"https://postgr.es/c/63cf61cde\">\u00a7</a></p>\n<p>\u65b0\u7684 <a href=\"/docs/15/protocol-replication.html\" title=\"55.4.\u00a0\u6d41\u590d\u5236\u534f\u8bae\"><code>CREATE_REPLICATION_SLOT</code></a> \u9009\u9879\u79f0\u4e3a <code>TWO_PHASE</code>\u3002<span>pg_recvlogical</span> \u73b0\u5728\u5728\u521b\u5efa\u69fd\u65f6\u652f\u6301\u65b0\u7684 <code>--two-phase</code> \u9009\u9879\u3002</p>", "text": "\u4e3a\u903b\u8f91\u590d\u5236\u589e\u52a0\u9884\u5907\uff08\u4e24\u9636\u6bb5\uff09\u4e8b\u52a1\u652f\u6301\uff08Peter Smith\uff0cAjin Cherian\uff0cAmit Kapila\uff0cNikhil Sontakke\uff0cStas Kelvich\uff09\u00a7 \u00a7 \u00a7 \u65b0\u7684 CREATE_REPLICATION_SLOT \u9009\u9879\u79f0\u4e3a TWO_PHASE\u3002pg_recvlogical \u73b0\u5728\u5728\u521b\u5efa\u69fd\u65f6\u652f\u6301\u65b0\u7684 --two-phase \u9009\u9879\u3002", "title": "\u4e3a\u903b\u8f91\u590d\u5236\u589e\u52a0\u9884\u5907\uff08\u4e24\u9636\u6bb5\uff09\u4e8b\u52a1\u652f\u6301", "commits": ["63cf61cde", "a8fd13cab", "cda03cfed"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-8", "source_hash": "c1bc98e990054dd1ec316836dc4eb9c07a553ca7bfc8a2f7a9a42614a9e65587", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["63cf61cde"], ["a8fd13cab"], ["cda03cfed"]], "identity_text": "Add support for prepared (two-phase) transactions to logical replication (Peter Smith, Ajin Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich) The new CREATE_REPLICATION_SLOT option is called TWO_PHASE. pg_recvlogical now supports a new --two-phase option during slot creation.", "commit_aliases": ["63cf61cde", "a8fd13cab", "cda03cfed"], "source_commits": ["63cf61cde", "a8fd13cab", "cda03cfed"], "source_entry_id": "15.0/changes/054", "db_id": "2cec5aa510bae08e92990ccfbf684d72", "patch_ids": ["33f95da4c7f5abfc47423f04834adb30", "884161af9a0d1bab9d93d612c3edf155", "e4941e3853d502530f75a5d26f37bd2b"], "statement_hash": "4afd12e2f38855c8eb031ab9a87a271e08fce3e0282317df3a118c5f1961f155", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-84fb0c97931ddb62", "migration": false}, {"id": "15.0-726390477e2f3880", "cves": [], "html": "<p>\u9632\u6b62\u7a7a\u4e8b\u52a1\u7684\u903b\u8f91\u590d\u5236\uff08Ajin Cherian\uff0cHou Zhijie\uff0cEuler Taveira\uff09<a href=\"https://postgr.es/c/d5a9d86d8\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u5982\u679c\u8ba2\u9605\u7684\u8868\u6ca1\u6709\u88ab\u4fee\u6539\uff0c\u53d1\u5e03\u8005\u4f1a\u5411\u8ba2\u9605\u8005\u53d1\u9001\u7a7a\u4e8b\u52a1\u3002</p>", "text": "\u9632\u6b62\u7a7a\u4e8b\u52a1\u7684\u903b\u8f91\u590d\u5236\uff08Ajin Cherian\uff0cHou Zhijie\uff0cEuler Taveira\uff09\u00a7 \u4ee5\u524d\uff0c\u5982\u679c\u8ba2\u9605\u7684\u8868\u6ca1\u6709\u88ab\u4fee\u6539\uff0c\u53d1\u5e03\u8005\u4f1a\u5411\u8ba2\u9605\u8005\u53d1\u9001\u7a7a\u4e8b\u52a1\u3002", "title": "\u9632\u6b62\u7a7a\u4e8b\u52a1\u7684\u903b\u8f91\u590d\u5236", "commits": ["d5a9d86d8"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-8", "source_hash": "3c25a01dfb1efd839fa309474261309727d3564cfe1683f881835d88a823ca8b", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["d5a9d86d8"]], "identity_text": "Prevent logical replication of empty transactions (Ajin Cherian, Hou Zhijie, Euler Taveira) Previously, publishers would send empty transactions to subscribers if subscribed tables were not modified.", "commit_aliases": ["d5a9d86d8"], "source_commits": ["d5a9d86d8"], "source_entry_id": "15.0/changes/055", "db_id": "b06caacd49e66e05d6c257f501c21843", "patch_ids": ["883cf6a6ebf151647cd15434c62d828b"], "statement_hash": "16de11f8e98bd4729b60db6643ff9c0211bba2aac2377e5d02c09ff6488c1e56", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-726390477e2f3880", "migration": false}, {"id": "15.0-282fc4b6099443ce", "cves": [], "html": "<p>\u589e\u52a0 <acronym>SQL</acronym> \u51fd\u6570\u6765\u76d1\u63a7\u903b\u8f91\u590d\u5236\u69fd\u7684\u76ee\u5f55\u5185\u5bb9\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/1922d7c6e\">\u00a7</a></p>\n<p>\u65b0\u51fd\u6570\u662f <a href=\"/docs/15/functions-admin.html#FUNCTIONS-ADMIN-GENFILE-TABLE\" title=\"\u8868\u00a09.99.\u00a0\u901a\u7528\u6587\u4ef6\u8bbf\u95ee\u51fd\u6570\"><code>pg_ls_logicalsnapdir()</code></a>\u3001<code>pg_ls_logicalmapdir()</code> \u548c <code>pg_ls_replslotdir()</code>\u3002\u5b83\u4eec\u53ef\u4ee5\u7531\u9884\u5b9a\u4e49\u7684 <code>pg_monitor</code> \u89d2\u8272\u7684\u6210\u5458\u8fd0\u884c\u3002</p>", "text": "\u589e\u52a0 SQL \u51fd\u6570\u6765\u76d1\u63a7\u903b\u8f91\u590d\u5236\u69fd\u7684\u76ee\u5f55\u5185\u5bb9\uff08Bharath Rupireddy\uff09\u00a7 \u65b0\u51fd\u6570\u662f pg_ls_logicalsnapdir()\u3001pg_ls_logicalmapdir() \u548c pg_ls_replslotdir()\u3002\u5b83\u4eec\u53ef\u4ee5\u7531\u9884\u5b9a\u4e49\u7684 pg_monitor \u89d2\u8272\u7684\u6210\u5458\u8fd0\u884c\u3002", "title": "\u589e\u52a0 SQL \u51fd\u6570\u6765\u76d1\u63a7\u903b\u8f91\u590d\u5236\u69fd\u7684\u76ee\u5f55\u5185\u5bb9", "commits": ["1922d7c6e"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-8", "source_hash": "8fc976b1f0c9a480991acdf3215e34d8f26f4a5515af9b4945cf949df7d7c611", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["1922d7c6e"]], "identity_text": "Add SQL functions to monitor the directory contents of logical replication slots (Bharath Rupireddy) The new functions are pg_ls_logicalsnapdir(), pg_ls_logicalmapdir(), and pg_ls_replslotdir(). They can be run by members of the predefined pg_monitor role.", "commit_aliases": ["1922d7c6e"], "source_commits": ["1922d7c6e"], "source_entry_id": "15.0/changes/056", "db_id": "5c349aed853e6aaa3e987e3cbee08230", "patch_ids": ["45471def37c660555d603eb8afb890b9"], "statement_hash": "422545fba45a124fb0c10df4fd2a16d7ffd5f05c2a1ea8e783d0e691b0340716", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-282fc4b6099443ce", "migration": false}, {"id": "15.0-7d85c4e7d9495836", "cves": [], "html": "<p>\u5141\u8bb8\u8ba2\u9605\u8005\u5728\u51fa\u9519\u65f6\u505c\u6b62\u5e94\u7528\u903b\u8f91\u590d\u5236\u53d8\u66f4\uff08Osumi Takamichi\uff0cMark Dilger\uff09<a href=\"https://postgr.es/c/705e20f85\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7\u8ba2\u9605\u8005\u9009\u9879 <a href=\"/docs/15/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>disable_on_error</code></a> \u542f\u7528\uff0c\u907f\u514d\u6d41\u5e94\u7528\u671f\u95f4\u53ef\u80fd\u7684\u65e0\u9650\u9519\u8bef\u5faa\u73af\u3002</p>", "text": "\u5141\u8bb8\u8ba2\u9605\u8005\u5728\u51fa\u9519\u65f6\u505c\u6b62\u5e94\u7528\u903b\u8f91\u590d\u5236\u53d8\u66f4\uff08Osumi Takamichi\uff0cMark Dilger\uff09\u00a7 \u8fd9\u901a\u8fc7\u8ba2\u9605\u8005\u9009\u9879 disable_on_error \u542f\u7528\uff0c\u907f\u514d\u6d41\u5e94\u7528\u671f\u95f4\u53ef\u80fd\u7684\u65e0\u9650\u9519\u8bef\u5faa\u73af\u3002", "title": "\u5141\u8bb8\u8ba2\u9605\u8005\u5728\u51fa\u9519\u65f6\u505c\u6b62\u5e94\u7528\u903b\u8f91\u590d\u5236\u53d8\u66f4", "commits": ["705e20f85"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-8", "source_hash": "0ea2e0b8936f03a09c9598bf0f4d25dd5d623e784c03ded265fa3bea9cd6d1ba", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["705e20f85"]], "identity_text": "Allow subscribers to stop the application of logical replication changes on error (Osumi Takamichi, Mark Dilger) This is enabled with the subscriber option disable_on_error and avoids possible infinite error loops during stream application.", "commit_aliases": ["705e20f85"], "source_commits": ["705e20f85"], "source_entry_id": "15.0/changes/057", "db_id": "432af4a9b8582d5c706c464886c85701", "patch_ids": ["2e30199bbab85a4f4966c2730de333c4"], "statement_hash": "e45864259352e051801ec4ec8fd58d0b27adafd782a7a33ce01232dd7f488e01", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-7d85c4e7d9495836", "migration": false}, {"id": "15.0-6c40f7153b9318a1", "cves": [], "html": "<p>\u8c03\u6574\u8ba2\u9605\u8005\u670d\u52a1\u5668\u53d8\u91cf\u4ee5\u5339\u914d\u53d1\u5e03\u8005\uff0c\u4f7f datetime \u548c float8 \u503c\u88ab\u4e00\u81f4\u5730\u89e3\u91ca\uff08Japin Li\uff09<a href=\"https://postgr.es/c/f3d4019da\">\u00a7</a></p>\n<p>\u67d0\u4e9b\u53d1\u5e03\u8005\u53ef\u80fd\u4f9d\u8d56\u4e8e\u4e0d\u4e00\u81f4\u7684\u884c\u4e3a\u3002</p>", "text": "\u8c03\u6574\u8ba2\u9605\u8005\u670d\u52a1\u5668\u53d8\u91cf\u4ee5\u5339\u914d\u53d1\u5e03\u8005\uff0c\u4f7f datetime \u548c float8 \u503c\u88ab\u4e00\u81f4\u5730\u89e3\u91ca\uff08Japin Li\uff09\u00a7 \u67d0\u4e9b\u53d1\u5e03\u8005\u53ef\u80fd\u4f9d\u8d56\u4e8e\u4e0d\u4e00\u81f4\u7684\u884c\u4e3a\u3002", "title": "\u8c03\u6574\u8ba2\u9605\u8005\u670d\u52a1\u5668\u53d8\u91cf\u4ee5\u5339\u914d\u53d1\u5e03\u8005\uff0c\u4f7f datetime \u548c float8 \u503c\u88ab\u4e00\u81f4\u5730\u89e3\u91ca", "commits": ["f3d4019da"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-8", "source_hash": "08bfc07ff682ec778160953fc31f356e9417a1382061b281ddf98505dd015792", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["f3d4019da"]], "identity_text": "Adjust subscriber server variables to match the publisher so datetime and float8 values are interpreted consistently (Japin Li) Some publishers might be relying on inconsistent behavior.", "commit_aliases": ["f3d4019da"], "source_commits": ["f3d4019da"], "source_entry_id": "15.0/changes/058", "db_id": "45d90db48a6060bc374e93453e66b229", "patch_ids": ["7bba2a84a415d1511ec801934e1b6449"], "statement_hash": "2368e8014a44ea1bf95dc1efadd7cc4ca788def53b3112fa5545d621a54a6b0e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-6c40f7153b9318a1", "migration": false}, {"id": "15.0-3080458e975e3bdb", "cves": [], "html": "<p>\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/15/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATS\" title=\"28.2.9.\u00a0pg_stat_subscription_stats\"><code>pg_stat_subscription_stats</code></a> \u4ee5\u62a5\u544a\u8ba2\u9605\u8005\u6d3b\u52a8\uff08Masahiko Sawada\uff09<a href=\"https://postgr.es/c/8d74fc96d\">\u00a7</a> <a href=\"https://postgr.es/c/7a8507329\">\u00a7</a></p>\n<p>\u65b0\u51fd\u6570 <a href=\"/docs/15/monitoring-stats.html#MONITORING-STATS-FUNCTIONS\" title=\"28.2.24.\u00a0\u7edf\u8ba1\u51fd\u6570\"><code>pg_stat_reset_subscription_stats()</code></a> \u5141\u8bb8\u91cd\u7f6e\u8fd9\u4e9b\u7edf\u8ba1\u8ba1\u6570\u5668\u3002</p>", "text": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_stat_subscription_stats \u4ee5\u62a5\u544a\u8ba2\u9605\u8005\u6d3b\u52a8\uff08Masahiko Sawada\uff09\u00a7 \u00a7 \u65b0\u51fd\u6570 pg_stat_reset_subscription_stats() \u5141\u8bb8\u91cd\u7f6e\u8fd9\u4e9b\u7edf\u8ba1\u8ba1\u6570\u5668\u3002", "title": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_stat_subscription_stats \u4ee5\u62a5\u544a\u8ba2\u9605\u8005\u6d3b\u52a8", "commits": ["7a8507329", "8d74fc96d"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-8", "source_hash": "2918ad388dd25de4a904bffeab3c54d41c4c54baba5620ea167439e40fab7107", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["7a8507329"], ["8d74fc96d"]], "identity_text": "Add system view pg_stat_subscription_stats to report on subscriber activity (Masahiko Sawada) The new function pg_stat_reset_subscription_stats() allows resetting these statistics counters.", "commit_aliases": ["7a8507329", "8d74fc96d"], "source_commits": ["7a8507329", "8d74fc96d"], "source_entry_id": "15.0/changes/059", "db_id": "c990deea7bc3863da6ae50c368faa65c", "patch_ids": ["01e3afb6d00326603068c180915bb0bc", "8f82d0280b3984bd9fabb2b548cba3cb"], "statement_hash": "023f1e9dcacae4981979b978a59d7d71703afe8c285e735e26de2aee5aece6a2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-3080458e975e3bdb", "migration": false}, {"id": "15.0-6844b9cd0fc31867", "cves": [], "html": "<p>\u5728 <a href=\"/docs/15/view-pg-publication-tables.html\" title=\"54.17.\u00a0pg_publication_tables\"><code>pg_publication_tables</code></a> \u7cfb\u7edf\u89c6\u56fe\u4e2d\u6291\u5236\u91cd\u590d\u6761\u76ee\uff08Hou Zhijie\uff09<a href=\"https://postgr.es/c/a61bff2bf\">\u00a7</a></p>\n<p>\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u4e00\u4e2a\u5206\u533a\u53ef\u80fd\u51fa\u73b0\u591a\u6b21\u3002</p>", "text": "\u5728 pg_publication_tables \u7cfb\u7edf\u89c6\u56fe\u4e2d\u6291\u5236\u91cd\u590d\u6761\u76ee\uff08Hou Zhijie\uff09\u00a7 \u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u4e00\u4e2a\u5206\u533a\u53ef\u80fd\u51fa\u73b0\u591a\u6b21\u3002", "title": "\u5728 pg_publication_tables \u7cfb\u7edf\u89c6\u56fe\u4e2d\u6291\u5236\u91cd\u590d\u6761\u76ee", "commits": ["a61bff2bf"], "section": "\u6d41\u590d\u5236\u4e0e\u6062\u590d / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-8", "source_hash": "f68d2de1566cbafaa7b8fd698c4729f487425e3cbc2841ff2d83ba3bddb5663a", "section_path": ["\u6d41\u590d\u5236\u4e0e\u6062\u590d", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["a61bff2bf"]], "identity_text": "Suppress duplicate entries in the pg_publication_tables system view (Hou Zhijie) In some cases a partition could appear more than once.", "commit_aliases": ["a61bff2bf"], "source_commits": ["a61bff2bf"], "source_entry_id": "15.0/changes/060", "db_id": "d30216f433a22600d36d3554f0821d5a", "patch_ids": ["b2838a5df1a60c9c6582ba830dcb01dd"], "statement_hash": "44e203d664af63647c8b85e06903d0eb89b5c6d60da8b040d5a3db961a62f705", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-6844b9cd0fc31867", "migration": false}, {"id": "15.0-e9aa01201c473391", "cves": [], "html": "<p>\u589e\u52a0 <acronym>SQL</acronym> <a href=\"/docs/15/sql-merge.html\" title=\"MERGE\"><code>MERGE</code></a> \u547d\u4ee4\u4ee5\u8c03\u6574\u4e00\u4e2a\u8868\u4f7f\u5176\u4e0e\u53e6\u4e00\u4e2a\u8868\u5339\u914d\uff08Simon Riggs\uff0cPavan Deolasee\uff0c\u00c1lvaro Herrera\uff0cAmit Langote\uff09<a href=\"https://postgr.es/c/7103ebb7a\">\u00a7</a></p>\n<p>\u8fd9\u4e0e <code>INSERT ... ON CONFLICT</code> \u7c7b\u4f3c\uff0c\u4f46\u66f4\u9762\u5411\u6279\u91cf\u64cd\u4f5c\u3002</p>", "text": "\u589e\u52a0 SQL MERGE \u547d\u4ee4\u4ee5\u8c03\u6574\u4e00\u4e2a\u8868\u4f7f\u5176\u4e0e\u53e6\u4e00\u4e2a\u8868\u5339\u914d\uff08Simon Riggs\uff0cPavan Deolasee\uff0c\u00c1lvaro Herrera\uff0cAmit Langote\uff09\u00a7 \u8fd9\u4e0e INSERT ... ON CONFLICT \u7c7b\u4f3c\uff0c\u4f46\u66f4\u9762\u5411\u6279\u91cf\u64cd\u4f5c\u3002", "title": "\u589e\u52a0 SQL MERGE \u547d\u4ee4\u4ee5\u8c03\u6574\u4e00\u4e2a\u8868\u4f7f\u5176\u4e0e\u53e6\u4e00\u4e2a\u8868\u5339\u914d", "commits": ["7103ebb7a"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-3", "source_hash": "91e1553e003e057c8e898bfe40bc5d25d6cdf356931710f7812f6e01a345b365", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["7103ebb7a"]], "identity_text": "Add SQL MERGE command to adjust one table to match another (Simon Riggs, Pavan Deolasee, \u00c1lvaro Herrera, Amit Langote) This is similar to INSERT ... ON CONFLICT but more batch-oriented.", "commit_aliases": ["7103ebb7a"], "source_commits": ["7103ebb7a"], "source_entry_id": "15.0/changes/061", "db_id": "33a73aeb516220932d9a85c51c3c7296", "patch_ids": ["bcf7995eced9a2c229fd7931d0c6c438"], "statement_hash": "7abc183a00c3f235f89569adc9fc8a7ed7dafac550fa6c11558d7d41b6538d7f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-e9aa01201c473391", "migration": false}, {"id": "15.0-8fd6e666e783d405", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/15/sql-copy.html\" title=\"COPY\"><code>COPY</code></a> \u6587\u672c\u683c\u5f0f\u4e2d <code>HEADER</code> \u9009\u9879\u7684\u652f\u6301\uff08R\u00e9mi Lapeyre\uff09<a href=\"https://postgr.es/c/43f33dc01\">\u00a7</a> <a href=\"https://postgr.es/c/072132f04\">\u00a7</a></p>\n<p>\u65b0\u9009\u9879\u5bfc\u81f4\u5217\u540d\u88ab\u8f93\u51fa\uff0c\u5e76\u53ef\u9009\u62e9\u5728\u8f93\u5165\u65f6\u8fdb\u884c\u9a8c\u8bc1\u3002</p>", "text": "\u589e\u52a0 COPY \u6587\u672c\u683c\u5f0f\u4e2d HEADER \u9009\u9879\u7684\u652f\u6301\uff08R\u00e9mi Lapeyre\uff09\u00a7 \u00a7 \u65b0\u9009\u9879\u5bfc\u81f4\u5217\u540d\u88ab\u8f93\u51fa\uff0c\u5e76\u53ef\u9009\u62e9\u5728\u8f93\u5165\u65f6\u8fdb\u884c\u9a8c\u8bc1\u3002", "title": "\u589e\u52a0 COPY \u6587\u672c\u683c\u5f0f\u4e2d HEADER \u9009\u9879\u7684\u652f\u6301", "commits": ["072132f04", "43f33dc01"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-3", "source_hash": "76b4f5505d5b6841ea9a7960a8aa1e2746ae0e83dcd005df1bb76dd426c6b93e", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["072132f04"], ["43f33dc01"]], "identity_text": "Add support for HEADER option in COPY text format (R\u00e9mi Lapeyre) The new option causes the column names to be output, and optionally verified on input.", "commit_aliases": ["072132f04", "43f33dc01"], "source_commits": ["072132f04", "43f33dc01"], "source_entry_id": "15.0/changes/062", "db_id": "50cdbb604da65fe2fad681e9ef1971f7", "patch_ids": ["861e7fc360d8dba158254dc7c2d1e22e", "ac2e80d15eaa39a8a81f590d05adb38d"], "statement_hash": "cf425462fa7b38f5bfca46c4b1d24436a4252251ac0f3ab55baf64525d4c22d4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-8fd6e666e783d405", "migration": false}, {"id": "15.0-e1ce219c5c9bfbb6", "cves": [], "html": "<p>\u589e\u52a0\u65b0\u7684 <acronym>WAL</acronym> \u65e5\u5fd7\u8bb0\u5f55\u65b9\u6cd5\u7528\u4e8e<a href=\"/docs/15/sql-createdatabase.html\" title=\"CREATE DATABASE\">\u6570\u636e\u5e93\u521b\u5efa</a>\uff08Dilip Kumar\uff09<a href=\"https://postgr.es/c/9c08aea6a\">\u00a7</a></p>\n<p>\u8fd9\u662f\u590d\u5236\u6a21\u677f\u6570\u636e\u5e93\u7684\u65b0\u9ed8\u8ba4\u65b9\u6cd5\uff0c\u56e0\u4e3a\u5b83\u907f\u514d\u4e86\u6570\u636e\u5e93\u521b\u5efa\u671f\u95f4\u5bf9\u68c0\u67e5\u70b9\u7684\u9700\u6c42\u3002\u4f46\u662f\uff0c\u5982\u679c\u6a21\u677f\u6570\u636e\u5e93\u5f88\u5927\uff0c\u5b83\u53ef\u80fd\u4f1a\u5f88\u6162\uff0c\u56e0\u6b64\u65e7\u65b9\u6cd5\u4ecd\u7136\u53ef\u7528\u3002</p>", "text": "\u589e\u52a0\u65b0\u7684 WAL \u65e5\u5fd7\u8bb0\u5f55\u65b9\u6cd5\u7528\u4e8e\u6570\u636e\u5e93\u521b\u5efa\uff08Dilip Kumar\uff09\u00a7 \u8fd9\u662f\u590d\u5236\u6a21\u677f\u6570\u636e\u5e93\u7684\u65b0\u9ed8\u8ba4\u65b9\u6cd5\uff0c\u56e0\u4e3a\u5b83\u907f\u514d\u4e86\u6570\u636e\u5e93\u521b\u5efa\u671f\u95f4\u5bf9\u68c0\u67e5\u70b9\u7684\u9700\u6c42\u3002\u4f46\u662f\uff0c\u5982\u679c\u6a21\u677f\u6570\u636e\u5e93\u5f88\u5927\uff0c\u5b83\u53ef\u80fd\u4f1a\u5f88\u6162\uff0c\u56e0\u6b64\u65e7\u65b9\u6cd5\u4ecd\u7136\u53ef\u7528\u3002", "title": "\u589e\u52a0\u65b0\u7684 WAL \u65e5\u5fd7\u8bb0\u5f55\u65b9\u6cd5\u7528\u4e8e\u6570\u636e\u5e93\u521b\u5efa", "commits": ["9c08aea6a"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-3", "source_hash": "f1f020a21837f9df036577c72354ed1d4703ed3cefd9e40ee52b6ee80ac250f8", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["9c08aea6a"]], "identity_text": "Add new WAL-logged method for database creation (Dilip Kumar) This is the new default method for copying the template database, as it avoids the need for checkpoints during database creation. However, it might be slow if the template database is large, so the old method is still available.", "commit_aliases": ["9c08aea6a"], "source_commits": ["9c08aea6a"], "source_entry_id": "15.0/changes/063", "db_id": "837f8aa50d78a699f69b7c102d09dd09", "patch_ids": ["fe0a4ddf1e649b08606ccec1f25a2ba9"], "statement_hash": "414e821b820ff53a0e8b9d3bff615ed7ca9420c3759fc0fcfc8bc6be377633ce", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-e1ce219c5c9bfbb6", "migration": false}, {"id": "15.0-9ccc4e000393a1a9", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/15/sql-createdatabase.html\" title=\"CREATE DATABASE\"><code>CREATE DATABASE</code></a> \u8bbe\u7f6e\u6570\u636e\u5e93 <acronym>OID</acronym>\uff08Shruthi Gowda\uff0cAntonin Houska\uff09<a href=\"https://postgr.es/c/aa0105141\">\u00a7</a></p>", "text": "\u5141\u8bb8 CREATE DATABASE \u8bbe\u7f6e\u6570\u636e\u5e93 OID\uff08Shruthi Gowda\uff0cAntonin Houska\uff09\u00a7", "title": "\u5141\u8bb8 CREATE DATABASE \u8bbe\u7f6e\u6570\u636e\u5e93 OID", "commits": ["aa0105141"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-3", "source_hash": "f587b8c69a3250708250ad573e9b57792f088edcd7786956bd0f2a60b18f03d8", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["aa0105141"]], "identity_text": "Allow CREATE DATABASE to set the database OID (Shruthi Gowda, Antonin Houska)", "commit_aliases": ["aa0105141"], "source_commits": ["aa0105141"], "source_entry_id": "15.0/changes/064", "db_id": "d7d31e84056b5ba44b89e4326e719b92", "patch_ids": ["3c64a7720e102ffee6c1831a9206e6d3"], "statement_hash": "f8d0fc8f940da1283bc4b773d7497d5b0373fe9e35edb0327b4f7217c85093a2", "relations": [{"rule": 2, "type": "related", "target": "6e73d03cb426a621655c14e56efd92db", "evidence": {"same_day": true, "patch_ids": ["3c64a7720e102ffee6c1831a9206e6d3"], "ambiguous_patch_ids": ["3c64a7720e102ffee6c1831a9206e6d3"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-9ccc4e000393a1a9", "migration": false}, {"id": "15.0-e485eef470322e42", "cves": [], "html": "<p>\u9632\u6b62 <a href=\"/docs/15/sql-dropdatabase.html\" title=\"DROP DATABASE\"><code>DROP DATABASE</code></a>\u3001<a href=\"/docs/15/sql-droptablespace.html\" title=\"DROP TABLESPACE\"><code>DROP TABLESPACE</code></a> \u548c <a href=\"/docs/15/sql-alterdatabase.html\" title=\"ALTER DATABASE\"><code>ALTER DATABASE SET TABLESPACE</code></a> \u5728 Windows \u4e0a\u5e76\u53d1\u4f7f\u7528\u65f6\u5076\u5c14\u5931\u8d25\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/4eb217631\">\u00a7</a></p>", "text": "\u9632\u6b62 DROP DATABASE\u3001DROP TABLESPACE \u548c ALTER DATABASE SET TABLESPACE \u5728 Windows \u4e0a\u5e76\u53d1\u4f7f\u7528\u65f6\u5076\u5c14\u5931\u8d25\uff08Thomas Munro\uff09\u00a7", "title": "\u9632\u6b62 DROP DATABASE\u3001DROP TABLESPACE \u548c ALTER DATABASE SET TABLESPACE \u5728 Windows \u4e0a\u5e76\u53d1\u4f7f\u7528\u65f6\u5076\u5c14\u5931\u8d25", "commits": ["4eb217631"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-3", "source_hash": "a596c63d4aa3f7a0717b68fbdc189fb602176014553f0b117719edb42781532e", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["4eb217631"]], "identity_text": "Prevent DROP DATABASE, DROP TABLESPACE, and ALTER DATABASE SET TABLESPACE from occasionally failing during concurrent use on Windows (Thomas Munro)", "commit_aliases": ["4eb217631"], "source_commits": ["4eb217631"], "source_entry_id": "15.0/changes/065", "db_id": "b988ccbadda1358a8ce96a3ad8f36da2", "patch_ids": ["d77cc12d9cb0cbdb9cfff9887b2c8a8a"], "statement_hash": "92feeb1860166cf50a122814b955def809eec04412b20cf6b6ff579625a03146", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-e485eef470322e42", "migration": false}, {"id": "15.0-5a5ba8780b52bd4b", "cves": [], "html": "<p>\u5141\u8bb8\u5916\u952e <a href=\"/docs/15/ddl-constraints.html#DDL-CONSTRAINTS-FK\" title=\"5.4.5.\u00a0\u5916\u952e\"><code>ON DELETE SET</code></a> \u64cd\u4f5c\u4ec5\u5f71\u54cd\u6307\u5b9a\u7684\u5217\uff08Paul Martinez\uff09<a href=\"https://postgr.es/c/d6f96ed94\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u5916\u952e\u4e2d\u7684\u6240\u6709\u5217\u603b\u662f\u53d7\u5230\u5f71\u54cd\u3002</p>", "text": "\u5141\u8bb8\u5916\u952e ON DELETE SET \u64cd\u4f5c\u4ec5\u5f71\u54cd\u6307\u5b9a\u7684\u5217\uff08Paul Martinez\uff09\u00a7 \u4ee5\u524d\uff0c\u5916\u952e\u4e2d\u7684\u6240\u6709\u5217\u603b\u662f\u53d7\u5230\u5f71\u54cd\u3002", "title": "\u5141\u8bb8\u5916\u952e ON DELETE SET \u64cd\u4f5c\u4ec5\u5f71\u54cd\u6307\u5b9a\u7684\u5217", "commits": ["d6f96ed94"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-3", "source_hash": "3303f1481a15a9d21238df88fa14083b9c8a0cb61ff3d7d71fbf02bbeb8e3361", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["d6f96ed94"]], "identity_text": "Allow foreign key ON DELETE SET actions to affect only specified columns (Paul Martinez) Previously, all of the columns in the foreign key were always affected.", "commit_aliases": ["d6f96ed94"], "source_commits": ["d6f96ed94"], "source_entry_id": "15.0/changes/066", "db_id": "f2a4e00d946471562dec1250bf602f20", "patch_ids": ["ce105425bef40a5339f1e242c1168b20"], "statement_hash": "30d0938439d1480f335f1b4c843715a1084aea1f9419fda554c6f901179032b9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-5a5ba8780b52bd4b", "migration": false}, {"id": "15.0-2ac1d2f7bf7df7ac", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/15/sql-altertable.html\" title=\"ALTER TABLE\"><code>ALTER TABLE</code></a> \u4fee\u6539\u8868\u7684 <code>ACCESS METHOD</code>\uff08Justin Pryzby\uff0cJeff Davis\uff09<a href=\"https://postgr.es/c/b0483263d\">\u00a7</a></p>", "text": "\u5141\u8bb8 ALTER TABLE \u4fee\u6539\u8868\u7684 ACCESS METHOD\uff08Justin Pryzby\uff0cJeff Davis\uff09\u00a7", "title": "\u5141\u8bb8 ALTER TABLE \u4fee\u6539\u8868\u7684 ACCESS METHOD", "commits": ["b0483263d"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-3", "source_hash": "fd03ce643079afd2890a94799ea411872bb33c1484ddaf498d1408b9ee43943a", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["b0483263d"]], "identity_text": "Allow ALTER TABLE to modify a table's ACCESS METHOD (Justin Pryzby, Jeff Davis)", "commit_aliases": ["b0483263d"], "source_commits": ["b0483263d"], "source_entry_id": "15.0/changes/067", "db_id": "6c9f23ad962b82dcbd7dad3e50e31ae7", "patch_ids": ["1c0e5e959030dab7cf054a4c67febf5a"], "statement_hash": "4fddbb83feb58eff50c5ffbe04eefd656383daea0b5c9fa47b9a6e2bf0f64f6e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-2ac1d2f7bf7df7ac", "migration": false}, {"id": "15.0-a313a0cbcb22bfbd", "cves": [], "html": "<p>\u5f53 <a href=\"/docs/15/sql-altertable.html\" title=\"ALTER TABLE\"><code>ALTER TABLE</code></a> \u5bfc\u81f4\u8868\u91cd\u5199\u65f6\u6b63\u786e\u8c03\u7528\u5bf9\u8c61\u8bbf\u95ee\u94a9\u5b50\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/7b565843a\">\u00a7</a></p>", "text": "\u5f53 ALTER TABLE \u5bfc\u81f4\u8868\u91cd\u5199\u65f6\u6b63\u786e\u8c03\u7528\u5bf9\u8c61\u8bbf\u95ee\u94a9\u5b50\uff08Michael Paquier\uff09\u00a7", "title": "\u5f53 ALTER TABLE \u5bfc\u81f4\u8868\u91cd\u5199\u65f6\u6b63\u786e\u8c03\u7528\u5bf9\u8c61\u8bbf\u95ee\u94a9\u5b50", "commits": ["7b565843a"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-3", "source_hash": "1928f2b081c9da4ddb8685f67295f24aca5dc14d08cced7d4f78078ef7fc6e6a", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["7b565843a"]], "identity_text": "Properly call object access hooks when ALTER TABLE causes table rewrites (Michael Paquier)", "commit_aliases": ["7b565843a"], "source_commits": ["7b565843a"], "source_entry_id": "15.0/changes/068", "db_id": "37cee5498e71f88adc80a7a0b4e25b99", "patch_ids": ["224f092fd970cc7d80161e42069377ed"], "statement_hash": "7387a369d753968f01566da9f694e619271e5f3f536a684065f3eca2a256fd5c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-a313a0cbcb22bfbd", "migration": false}, {"id": "15.0-b1052b62c0259674", "cves": [], "html": "<p>\u5141\u8bb8\u521b\u5efa\u4e0d\u8bb0\u5f55 WAL \u7684<a href=\"/docs/15/sql-createsequence.html\" title=\"CREATE SEQUENCE\">\u5e8f\u5217</a>\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/344d62fb9\">\u00a7</a></p>", "text": "\u5141\u8bb8\u521b\u5efa\u4e0d\u8bb0\u5f55 WAL \u7684\u5e8f\u5217\uff08Peter Eisentraut\uff09\u00a7", "title": "\u5141\u8bb8\u521b\u5efa\u4e0d\u8bb0\u5f55 WAL \u7684\u5e8f\u5217", "commits": ["344d62fb9"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-3", "source_hash": "571ec0379a8625d0f2c0558a6bcffbf81e2905788a22095914afdef0cd17f003", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["344d62fb9"]], "identity_text": "Allow creation of unlogged sequences (Peter Eisentraut)", "commit_aliases": ["344d62fb9"], "source_commits": ["344d62fb9"], "source_entry_id": "15.0/changes/069", "db_id": "6cf020bbfb18eb34a2942dd81f9b6a99", "patch_ids": ["12057a0bad9700f1a7e2d60b8809d7cf"], "statement_hash": "01b327f7d9e6770cd5362f5ea7dc2b681804c3967075704fb5f8f415a152b391", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-b1052b62c0259674", "migration": false}, {"id": "15.0-0c3cdbddab841651", "cves": [], "html": "<p>\u8ddf\u8e2a\u8fd4\u56de\u590d\u5408\u7c7b\u578b\u7684\u51fd\u6570\u7ed3\u679c\u4e2d\u5404\u4e2a\u5217\u7684\u4f9d\u8d56\u5173\u7cfb\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/c2fa113dd\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u5982\u679c\u89c6\u56fe\u6216\u89c4\u5219\u5305\u542b\u5bf9\u8fd4\u56de\u590d\u5408\u7c7b\u578b\u7684\u51fd\u6570\u7ed3\u679c\u4e2d\u7279\u5b9a\u5217\u7684\u5f15\u7528\uff0c\u8fd9\u4e0d\u4f1a\u88ab\u8bb0\u5f55\u4e3a\u4f9d\u8d56\u5173\u7cfb\uff1b\u89c6\u56fe\u6216\u89c4\u5219\u4ec5\u88ab\u8ba4\u4e3a\u4f9d\u8d56\u4e8e\u6574\u4e2a\u590d\u5408\u7c7b\u578b\u3002\u8fd9\u610f\u5473\u7740\u5141\u8bb8\u5220\u9664\u5355\u4e2a\u5217\uff0c\u4ece\u800c\u5728\u4ee5\u540e\u4f7f\u7528\u89c6\u56fe\u6216\u89c4\u5219\u65f6\u9020\u6210\u95ee\u9898\u3002\u73b0\u5728\u4e5f\u8bb0\u5f55\u4e86\u5217\u7ea7\u4f9d\u8d56\u5173\u7cfb\uff0c\u56e0\u6b64\u9664\u975e\u66f4\u6539\u6216\u5220\u9664\u89c6\u56fe\uff0c\u5426\u5219\u5220\u9664\u6b64\u7c7b\u5217\u5c06\u88ab\u62d2\u7edd\u3002</p>", "text": "\u8ddf\u8e2a\u8fd4\u56de\u590d\u5408\u7c7b\u578b\u7684\u51fd\u6570\u7ed3\u679c\u4e2d\u5404\u4e2a\u5217\u7684\u4f9d\u8d56\u5173\u7cfb\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\uff0c\u5982\u679c\u89c6\u56fe\u6216\u89c4\u5219\u5305\u542b\u5bf9\u8fd4\u56de\u590d\u5408\u7c7b\u578b\u7684\u51fd\u6570\u7ed3\u679c\u4e2d\u7279\u5b9a\u5217\u7684\u5f15\u7528\uff0c\u8fd9\u4e0d\u4f1a\u88ab\u8bb0\u5f55\u4e3a\u4f9d\u8d56\u5173\u7cfb\uff1b\u89c6\u56fe\u6216\u89c4\u5219\u4ec5\u88ab\u8ba4\u4e3a\u4f9d\u8d56\u4e8e\u6574\u4e2a\u590d\u5408\u7c7b\u578b\u3002\u8fd9\u610f\u5473\u7740\u5141\u8bb8\u5220\u9664\u5355\u4e2a\u5217\uff0c\u4ece\u800c\u5728\u4ee5\u540e\u4f7f\u7528\u89c6\u56fe\u6216\u89c4\u5219\u65f6\u9020\u6210\u95ee\u9898\u3002\u73b0\u5728\u4e5f\u8bb0\u5f55\u4e86\u5217\u7ea7\u4f9d\u8d56\u5173\u7cfb\uff0c\u56e0\u6b64\u9664\u975e\u66f4\u6539\u6216\u5220\u9664\u89c6\u56fe\uff0c\u5426\u5219\u5220\u9664\u6b64\u7c7b\u5217\u5c06\u88ab\u62d2\u7edd\u3002", "title": "\u8ddf\u8e2a\u8fd4\u56de\u590d\u5408\u7c7b\u578b\u7684\u51fd\u6570\u7ed3\u679c\u4e2d\u5404\u4e2a\u5217\u7684\u4f9d\u8d56\u5173\u7cfb", "commits": ["c2fa113dd"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-3", "source_hash": "875992af582e98c6251d91dad2d92444e64f44a5e8a03a3716fa9bd2aaecafce", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["c2fa113dd"]], "identity_text": "Track dependencies on individual columns in the results of functions returning composite types (Tom Lane) Previously, if a view or rule contained a reference to a specific column within the result of a composite-returning function, that was not noted as a dependency; the view or rule was only considered to depend on the composite type as a whole. This meant that dropping the individual column would be allowed, causing problems in later use of the view or rule. The column-level dependency is now also noted, so that dropping such a column will be rejected unless the view is changed or dropped.", "commit_aliases": ["c2fa113dd"], "source_commits": ["c2fa113dd"], "source_entry_id": "15.0/changes/070", "db_id": "68708ad382b3759d74cdaebe15933246", "patch_ids": ["7fc78df2a9bf2ed309ab1296ddb00c1a"], "statement_hash": "fdbdd221688dab0ea8a0b84385454b6276d010641faa2b926af593b54f7fbf24", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-0c3cdbddab841651", "migration": false}, {"id": "15.0-a23227cfb0fe2073", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/15/datatype.html#DATATYPE-NUMERIC\" title=\"8.1.\u00a0\u6570\u5b57\u7c7b\u578b\"><code>numeric</code></a> \u503c\u7684\u7cbe\u5ea6\u4e3a\u8d1f\u6570\u6216\u5927\u4e8e\u5176\u7cbe\u5ea6\uff08Dean Rasheed\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/085f931f5\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u5bf9\u5c0f\u6570\u70b9\u5de6\u8fb9\u7684\u503c\u8fdb\u884c\u56db\u820d\u4e94\u5165\uff0c\u4f8b\u5982\uff0c<code>'1234'::numeric(4, -2)</code> \u8fd4\u56de 1200\u3002</p>", "text": "\u5141\u8bb8 numeric \u503c\u7684\u7cbe\u5ea6\u4e3a\u8d1f\u6570\u6216\u5927\u4e8e\u5176\u7cbe\u5ea6\uff08Dean Rasheed\uff0cTom Lane\uff09\u00a7 \u8fd9\u5141\u8bb8\u5bf9\u5c0f\u6570\u70b9\u5de6\u8fb9\u7684\u503c\u8fdb\u884c\u56db\u820d\u4e94\u5165\uff0c\u4f8b\u5982\uff0c'1234'::numeric(4, -2) \u8fd4\u56de 1200\u3002", "title": "\u5141\u8bb8 numeric \u503c\u7684\u7cbe\u5ea6\u4e3a\u8d1f\u6570\u6216\u5927\u4e8e\u5176\u7cbe\u5ea6", "commits": ["085f931f5"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-4", "source_hash": "d4a933b0f9de3d9256cf3db5c91962ca3f19763a525e0f972b1db7335b66a9f2", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["085f931f5"]], "identity_text": "Allow the scale of a numeric value to be negative, or greater than its precision (Dean Rasheed, Tom Lane) This allows rounding of values to the left of the decimal point, e.g., '1234'::numeric(4, -2) returns 1200.", "commit_aliases": ["085f931f5"], "source_commits": ["085f931f5"], "source_entry_id": "15.0/changes/071", "db_id": "9b6f52e077b85c325cbd551a62581177", "patch_ids": ["ff83ba6900c61e6b4d7174183348fe9c"], "statement_hash": "0625c747b4226fd99778e984d540b3c32e6d60ba4e7dac406730b5d5f0dfbcf0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-a23227cfb0fe2073", "migration": false}, {"id": "15.0-71a25fc751661e8d", "cves": [], "html": "<p>\u6539\u8fdb\u5c06\u503c\u8f6c\u6362\u4e3a <a href=\"/docs/15/datatype-datetime.html\" title=\"8.5.\u00a0\u65e5\u671f/\u65f6\u95f4\u7c7b\u578b\">interval</a> \u65f6\u7684\u6ea2\u51fa\u68c0\u6d4b\uff08Joe Koshakow\uff09<a href=\"https://postgr.es/c/e39f99046\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5c06\u503c\u8f6c\u6362\u4e3a interval \u65f6\u7684\u6ea2\u51fa\u68c0\u6d4b\uff08Joe Koshakow\uff09\u00a7", "title": "\u6539\u8fdb\u5c06\u503c\u8f6c\u6362\u4e3a interval \u65f6\u7684\u6ea2\u51fa\u68c0\u6d4b", "commits": ["e39f99046"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-4", "source_hash": "62dd9ed547ba41e161afb227a524ed893f14bb47104e4bb05a14e5ae2c73c418", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["e39f99046"]], "identity_text": "Improve overflow detection when casting values to interval (Joe Koshakow)", "commit_aliases": ["e39f99046"], "source_commits": ["e39f99046"], "source_entry_id": "15.0/changes/072", "db_id": "a3ba2f079557dad06dc1b0a0692acccf", "patch_ids": ["edc54fec2bcf16bce0dd98a77f61962e"], "statement_hash": "01841c623a9e70526022273443727520454a6579c56940871350cd43637e534c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-71a25fc751661e8d", "migration": false}, {"id": "15.0-bea5f607299b313f", "cves": [], "html": "<p>\u66f4\u6539\u7c7b\u578b <code>\"char\"</code> \u975e ASCII \u5b57\u7b26\u7684 I/O \u683c\u5f0f\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/c034b629c\">\u00a7</a></p>", "text": "\u66f4\u6539\u7c7b\u578b \"char\" \u975e ASCII \u5b57\u7b26\u7684 I/O \u683c\u5f0f\uff08Tom Lane\uff09\u00a7", "title": "\u66f4\u6539\u7c7b\u578b \"char\" \u975e ASCII \u5b57\u7b26\u7684 I/O \u683c\u5f0f", "commits": ["c034b629c"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-4", "source_hash": "98d0d76b0e6945c7f6d85aed972c089572725863cde11e69eb8bf082af82a568", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["c034b629c"]], "identity_text": "Change the I/O format of type \"char\" for non-ASCII characters (Tom Lane)", "commit_aliases": ["c034b629c"], "source_commits": ["c034b629c"], "source_entry_id": "15.0/changes/073", "db_id": "53764c4fc79b416c6c79e206ea86914a", "patch_ids": ["9cb7c33ebae6b8b3e1c38c489e53275c"], "statement_hash": "ea164765acb0585698ebf33c0991c03d4b8f9337beaa02533074a7ae46f3971c", "relations": [{"rule": 2, "type": "related", "target": "c801ad85320584635310c2f5de2dadbc", "evidence": {"same_day": true, "patch_ids": ["9cb7c33ebae6b8b3e1c38c489e53275c"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-bea5f607299b313f", "migration": false}, {"id": "15.0-bb029d360a3bc176", "cves": [], "html": "<p>\u66f4\u65b0\u73b0\u4ee3 Unicode \u5b57\u7b26\uff08\u5982\u8868\u60c5\u7b26\u53f7\uff09\u7684\u663e\u793a\u5bbd\u5ea6\u4fe1\u606f\uff08Jacob Champion\uff09<a href=\"https://postgr.es/c/bab982161\">\u00a7</a> <a href=\"https://postgr.es/c/f7e56f1f5\">\u00a7</a></p>\n<p>\u540c\u65f6\u4ece Unicode 5.0 \u66f4\u65b0\u5230 14.0.0\u3002\u73b0\u5728\u6709\u4e00\u79cd\u81ea\u52a8\u5316\u65b9\u6cd5\u6765\u4fdd\u6301 Postgres \u4e0e Unicode \u53d1\u5e03\u540c\u6b65\u3002</p>", "text": "\u66f4\u65b0\u73b0\u4ee3 Unicode \u5b57\u7b26\uff08\u5982\u8868\u60c5\u7b26\u53f7\uff09\u7684\u663e\u793a\u5bbd\u5ea6\u4fe1\u606f\uff08Jacob Champion\uff09\u00a7 \u00a7 \u540c\u65f6\u4ece Unicode 5.0 \u66f4\u65b0\u5230 14.0.0\u3002\u73b0\u5728\u6709\u4e00\u79cd\u81ea\u52a8\u5316\u65b9\u6cd5\u6765\u4fdd\u6301 Postgres \u4e0e Unicode \u53d1\u5e03\u540c\u6b65\u3002", "title": "\u66f4\u65b0\u73b0\u4ee3 Unicode \u5b57\u7b26\uff08\u5982\u8868\u60c5\u7b26\u53f7\uff09\u7684\u663e\u793a\u5bbd\u5ea6\u4fe1\u606f", "commits": ["bab982161", "f7e56f1f5"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-4", "source_hash": "f3d4085d43fe2334f39eae78e964a26152383b29d2057e07a76b1718caf06ee8", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["bab982161"], ["f7e56f1f5"]], "identity_text": "Update the display width information of modern Unicode characters, like emojis (Jacob Champion) Also update from Unicode 5.0 to 14.0.0. There is now an automated way to keep Postgres updated with Unicode releases.", "commit_aliases": ["bab982161", "f7e56f1f5"], "source_commits": ["bab982161", "f7e56f1f5"], "source_entry_id": "15.0/changes/074", "db_id": "f699f751c050e6cbb1a82fcd1be1e739", "patch_ids": ["153d99aaa0d393794c204546a94b8fc4", "67ca96936f8b16ad99b63ad0de4a0c3e"], "statement_hash": "597185613039421d276f46fe13bed3025bdf83898035f213b99490f3362ae679", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-bb029d360a3bc176", "migration": false}, {"id": "15.0-d1ac4c248cec4489", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/15/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE\" title=\"\u8868\u00a09.58.\u00a0\u901a\u7528\u805a\u5408\u51fd\u6570\"><code>range_agg()</code></a> \u589e\u52a0\u591a\u8303\u56f4\u8f93\u5165\uff08Paul Jungwirth\uff09<a href=\"https://postgr.es/c/7ae1619bc\">\u00a7</a></p>", "text": "\u4e3a range_agg() \u589e\u52a0\u591a\u8303\u56f4\u8f93\u5165\uff08Paul Jungwirth\uff09\u00a7", "title": "\u4e3a range_agg() \u589e\u52a0\u591a\u8303\u56f4\u8f93\u5165", "commits": ["7ae1619bc"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-5", "source_hash": "f26ac8fe829e331316eb84670d2fdc454b7c6d5cec027db51ba31f70840e5fe4", "section_path": ["\u51fd\u6570"], "commit_groups": [["7ae1619bc"]], "identity_text": "Add multirange input to range_agg() (Paul Jungwirth)", "commit_aliases": ["7ae1619bc"], "source_commits": ["7ae1619bc"], "source_entry_id": "15.0/changes/075", "db_id": "84d2c1165215e287526a397c3fa20372", "patch_ids": ["f07a7db60cc0531b9bcf7d1d83732c1c"], "statement_hash": "8c950f18e3b3fe2b24ccc8899dd35655dcbb8b934c9e4f7e9d0e7c154a9c8e0a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-d1ac4c248cec4489", "migration": false}, {"id": "15.0-207d51fca619b86b", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/15/datatype.html#DATATYPE-INT\" title=\"8.1.1.\u00a0\u6574\u6570\u7c7b\u578b\"><code>xid8</code></a> \u6570\u636e\u7c7b\u578b\u589e\u52a0 <a href=\"/docs/15/tutorial-agg.html\" title=\"2.7.\u00a0\u805a\u5408\u51fd\u6570\"><code>MIN()</code></a> \u548c <code>MAX()</code> \u805a\u5408\uff08Ken Kato\uff09<a href=\"https://postgr.es/c/400fc6b64\">\u00a7</a></p>", "text": "\u4e3a xid8 \u6570\u636e\u7c7b\u578b\u589e\u52a0 MIN() \u548c MAX() \u805a\u5408\uff08Ken Kato\uff09\u00a7", "title": "\u4e3a xid8 \u6570\u636e\u7c7b\u578b\u589e\u52a0 MIN() \u548c MAX() \u805a\u5408", "commits": ["400fc6b64"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-5", "source_hash": "d63ce3e1a6b00c4f085a7a58aacfc000bcc41542c487b16b54f4586aac395970", "section_path": ["\u51fd\u6570"], "commit_groups": [["400fc6b64"]], "identity_text": "Add MIN() and MAX() aggregates for the xid8 data type (Ken Kato)", "commit_aliases": ["400fc6b64"], "source_commits": ["400fc6b64"], "source_entry_id": "15.0/changes/076", "db_id": "f8caafc270679a9fe29402febd2afda1", "patch_ids": ["e3922af07e5480df446118b6b3c27bfd"], "statement_hash": "3c61dbc0690733667fecf43a2b79dc5e59e33ef2438d3e1af9adc7ed7a1ddb7e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-207d51fca619b86b", "migration": false}, {"id": "15.0-795be1488abd0cf5", "cves": [], "html": "<p>\u589e\u52a0\u6b63\u5219\u8868\u8fbe\u5f0f\u51fd\u6570\u4ee5\u4e0e\u5176\u4ed6\u5173\u7cfb\u7cfb\u7edf\u517c\u5bb9\uff08Gilles Darold\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/642433707\">\u00a7</a></p>\n<p>\u65b0\u51fd\u6570\u662f <a href=\"/docs/15/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"\u8868\u00a09.10.\u00a0\u5176\u4ed6\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>regexp_count()</code></a>\u3001<code>regexp_instr()</code>\u3001<code>regexp_like()</code> \u548c <code>regexp_substr()</code>\u3002\u8fd8\u4e3a <code>regexp_replace()</code> \u589e\u52a0\u4e86\u4e00\u4e9b\u65b0\u7684\u53ef\u9009\u53c2\u6570\u3002</p>", "text": "\u589e\u52a0\u6b63\u5219\u8868\u8fbe\u5f0f\u51fd\u6570\u4ee5\u4e0e\u5176\u4ed6\u5173\u7cfb\u7cfb\u7edf\u517c\u5bb9\uff08Gilles Darold\uff0cTom Lane\uff09\u00a7 \u65b0\u51fd\u6570\u662f regexp_count()\u3001regexp_instr()\u3001regexp_like() \u548c regexp_substr()\u3002\u8fd8\u4e3a regexp_replace() \u589e\u52a0\u4e86\u4e00\u4e9b\u65b0\u7684\u53ef\u9009\u53c2\u6570\u3002", "title": "\u589e\u52a0\u6b63\u5219\u8868\u8fbe\u5f0f\u51fd\u6570\u4ee5\u4e0e\u5176\u4ed6\u5173\u7cfb\u7cfb\u7edf\u517c\u5bb9", "commits": ["642433707"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-5", "source_hash": "57ad4866ef2a10d5a1c384638b5e338e9f8a497a6a6e55c5086dacf8a2d0290c", "section_path": ["\u51fd\u6570"], "commit_groups": [["642433707"]], "identity_text": "Add regular expression functions for compatibility with other relational systems (Gilles Darold, Tom Lane) The new functions are regexp_count(), regexp_instr(), regexp_like(), and regexp_substr(). Some new optional arguments were also added to regexp_replace().", "commit_aliases": ["642433707"], "source_commits": ["642433707"], "source_entry_id": "15.0/changes/077", "db_id": "ba6e535393aae49dd0643eb8e07dc322", "patch_ids": ["4925796f64e7d7b99cd434f2c76d8e19"], "statement_hash": "2c4a173d8b51b81a25e1de528b591cac309eba7be0c01bdf2e86c36487e24b46", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-795be1488abd0cf5", "migration": false}, {"id": "15.0-70addd5b88bd12ec", "cves": [], "html": "<p>\u589e\u52a0\u8ba1\u7b97<a href=\"/docs/15/datatype-geometric.html#DATATYPE-POLYGON\" title=\"8.8.6.\u00a0\u591a\u8fb9\u5f62\"><code>\u591a\u8fb9\u5f62</code></a>\u4e4b\u95f4\u8ddd\u79bb\u7684\u80fd\u529b\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/c5c192d7b\">\u00a7</a></p>", "text": "\u589e\u52a0\u8ba1\u7b97\u591a\u8fb9\u5f62\u4e4b\u95f4\u8ddd\u79bb\u7684\u80fd\u529b\uff08Tom Lane\uff09\u00a7", "title": "\u589e\u52a0\u8ba1\u7b97\u591a\u8fb9\u5f62\u4e4b\u95f4\u8ddd\u79bb\u7684\u80fd\u529b", "commits": ["c5c192d7b"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-5", "source_hash": "61f5eb3f3c1d9d3af03e6161dd5fd90585b4d46f3410e0ca03a09c14bc6d485a", "section_path": ["\u51fd\u6570"], "commit_groups": [["c5c192d7b"]], "identity_text": "Add the ability to compute the distance between polygons (Tom Lane)", "commit_aliases": ["c5c192d7b"], "source_commits": ["c5c192d7b"], "source_entry_id": "15.0/changes/078", "db_id": "a020d5762389d260a78fb20e0e7b8b92", "patch_ids": ["16763f3c1fc42f0bbb41c68ecaf36445"], "statement_hash": "5e72a418056d5de52d787d3c47ce588dec576abb201b55a2ea07add904c409fd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-70addd5b88bd12ec", "migration": false}, {"id": "15.0-24cf786c697ff524", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/15/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE\" title=\"\u8868\u00a09.26.\u00a0\u683c\u5f0f\u5316\u51fd\u6570\"><code>to_char()</code></a> \u589e\u52a0\u683c\u5f0f\u4ee3\u7801 <code>of</code>\u3001<code>tzh</code> \u548c <code>tzm</code>\uff08Nitin Jadhav\uff09<a href=\"https://postgr.es/c/9dde82899\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u7684\u5927\u5199\u7b49\u4ef7\u5f62\u5f0f\u5df2\u7ecf\u88ab\u652f\u6301\u3002</p>", "text": "\u4e3a to_char() \u589e\u52a0\u683c\u5f0f\u4ee3\u7801 of\u3001tzh \u548c tzm\uff08Nitin Jadhav\uff09\u00a7 \u8fd9\u4e9b\u7684\u5927\u5199\u7b49\u4ef7\u5f62\u5f0f\u5df2\u7ecf\u88ab\u652f\u6301\u3002", "title": "\u4e3a to_char() \u589e\u52a0\u683c\u5f0f\u4ee3\u7801 of\u3001tzh \u548c tzm", "commits": ["9dde82899"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-5", "source_hash": "ac0e0151b5fcd2cbd59f59978524c110dcf59b63312c1acb759d1699577d4ac4", "section_path": ["\u51fd\u6570"], "commit_groups": [["9dde82899"]], "identity_text": "Add to_char() format codes of, tzh, and tzm (Nitin Jadhav) The upper-case equivalents of these were already supported.", "commit_aliases": ["9dde82899"], "source_commits": ["9dde82899"], "source_entry_id": "15.0/changes/079", "db_id": "e25bacdbd787c82bbc071e096b20211a", "patch_ids": ["e38ef48e119b396bc816a0fe29077f3a"], "statement_hash": "0c0f0637434b375c19cab4496d8934e96c3a97285b2d90340ee54e196a6fffee", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-24cf786c697ff524", "migration": false}, {"id": "15.0-978df0cd7acbdfae", "cves": [], "html": "<p>\u5f53\u5c06 <a href=\"/docs/15/functions-datetime.html#FUNCTIONS-DATETIME-ZONECONVERT\" title=\"9.9.4.\u00a0AT TIME ZONE\"><code>AT TIME ZONE</code></a> \u5e94\u7528\u4e8e <code>time with time zone</code> \u503c\u65f6\uff0c\u4f7f\u7528\u4e8b\u52a1\u5f00\u59cb\u65f6\u95f4\u800c\u4e0d\u662f\u6302\u949f\u65f6\u95f4\u6765\u786e\u5b9a\u662f\u5426\u9002\u7528\u590f\u4ee4\u65f6\uff08Aleksander Alekseev\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/388e71af8\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u5c06\u8f6c\u6362\u89c6\u4e3a\u7a33\u5b9a\u7684\u800c\u4e0d\u662f\u6613\u53d8\u7684\uff0c\u5e76\u4e14\u6bcf\u6b21\u8c03\u7528\u8282\u7701\u4e00\u6b21\u5185\u6838\u8c03\u7528\u3002</p>", "text": "\u5f53\u5c06 AT TIME ZONE \u5e94\u7528\u4e8e time with time zone \u503c\u65f6\uff0c\u4f7f\u7528\u4e8b\u52a1\u5f00\u59cb\u65f6\u95f4\u800c\u4e0d\u662f\u6302\u949f\u65f6\u95f4\u6765\u786e\u5b9a\u662f\u5426\u9002\u7528\u590f\u4ee4\u65f6\uff08Aleksander Alekseev\uff0cTom Lane\uff09\u00a7 \u8fd9\u5141\u8bb8\u5c06\u8f6c\u6362\u89c6\u4e3a\u7a33\u5b9a\u7684\u800c\u4e0d\u662f\u6613\u53d8\u7684\uff0c\u5e76\u4e14\u6bcf\u6b21\u8c03\u7528\u8282\u7701\u4e00\u6b21\u5185\u6838\u8c03\u7528\u3002", "title": "\u5f53\u5c06 AT TIME ZONE \u5e94\u7528\u4e8e time with time zone \u503c\u65f6\uff0c\u4f7f\u7528\u4e8b\u52a1\u5f00\u59cb\u65f6\u95f4\u800c\u4e0d\u662f\u6302\u949f\u65f6\u95f4\u6765\u786e\u5b9a\u662f\u5426\u9002\u7528\u590f\u4ee4\u65f6", "commits": ["388e71af8"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-5", "source_hash": "e74c6037786b0d8ba52ff6f2e2a54e3de27a4f89d042d87f054a39158070075c", "section_path": ["\u51fd\u6570"], "commit_groups": [["388e71af8"]], "identity_text": "When applying AT TIME ZONE to a time with time zone value, use the transaction start time rather than wall clock time to determine whether DST applies (Aleksander Alekseev, Tom Lane) This allows the conversion to be considered stable rather than volatile, and it saves a kernel call per invocation.", "commit_aliases": ["388e71af8"], "source_commits": ["388e71af8"], "source_entry_id": "15.0/changes/080", "db_id": "bf0019f4589b7bcfd502a5fa1ffc3391", "patch_ids": ["7391024a01f9f7a0ea4749ba322938d1"], "statement_hash": "9034cebef47756083a94f86fb820abeb00374c448e8e40803508af646638d760", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-978df0cd7acbdfae", "migration": false}, {"id": "15.0-0504cd4cafc43e2a", "cves": [], "html": "<p>\u5728\u5e26\u6570\u7ec4\u53c2\u6570\u7684 <a href=\"/docs/15/functions-textsearch.html#TEXTSEARCH-FUNCTIONS-TABLE\" title=\"\u8868\u00a09.43.\u00a0\u6587\u672c\u68c0\u7d22\u51fd\u6570\"><code>ts_delete()</code></a> \u548c <code>setweight()</code> \u51fd\u6570\u4e2d\u5ffd\u7565 NULL \u6570\u7ec4\u5143\u7d20\uff08Jean-Christophe Arnu\uff09<a href=\"https://postgr.es/c/cbe25dcff\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u51fd\u6570\u5b9e\u9645\u4e0a\u4f1a\u5ffd\u7565\u7a7a\u5b57\u7b26\u4e32\u6570\u7ec4\u5143\u7d20\uff08\u56e0\u4e3a\u5b83\u4eec\u6c38\u8fdc\u4e0d\u4f1a\u5339\u914d\u6709\u6548\u7684\u8bcd\u7d20\uff09\u3002\u8ba9\u5b83\u4eec\u4e5f\u5ffd\u7565 NULL \u5143\u7d20\u800c\u4e0d\u662f\u5931\u8d25\u4f3c\u4e4e\u662f\u4e00\u81f4\u7684\u3002</p>", "text": "\u5728\u5e26\u6570\u7ec4\u53c2\u6570\u7684 ts_delete() \u548c setweight() \u51fd\u6570\u4e2d\u5ffd\u7565 NULL \u6570\u7ec4\u5143\u7d20\uff08Jean-Christophe Arnu\uff09\u00a7 \u8fd9\u4e9b\u51fd\u6570\u5b9e\u9645\u4e0a\u4f1a\u5ffd\u7565\u7a7a\u5b57\u7b26\u4e32\u6570\u7ec4\u5143\u7d20\uff08\u56e0\u4e3a\u5b83\u4eec\u6c38\u8fdc\u4e0d\u4f1a\u5339\u914d\u6709\u6548\u7684\u8bcd\u7d20\uff09\u3002\u8ba9\u5b83\u4eec\u4e5f\u5ffd\u7565 NULL \u5143\u7d20\u800c\u4e0d\u662f\u5931\u8d25\u4f3c\u4e4e\u662f\u4e00\u81f4\u7684\u3002", "title": "\u5728\u5e26\u6570\u7ec4\u53c2\u6570\u7684 ts_delete() \u548c setweight() \u51fd\u6570\u4e2d\u5ffd\u7565 NULL \u6570\u7ec4\u5143\u7d20", "commits": ["cbe25dcff"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-5", "source_hash": "c7d57c55f8a5252dfacd1e66ba52de4139faf9d353e740bf48be42b2e9020df5", "section_path": ["\u51fd\u6570"], "commit_groups": [["cbe25dcff"]], "identity_text": "Ignore NULL array elements in ts_delete() and setweight() functions with array arguments (Jean-Christophe Arnu) These functions effectively ignore empty-string array elements (since those could never match a valid lexeme). It seems consistent to let them ignore NULL elements too, instead of failing.", "commit_aliases": ["cbe25dcff"], "source_commits": ["cbe25dcff"], "source_entry_id": "15.0/changes/081", "db_id": "a67642f4488d4ec2d54ae643a86aac06", "patch_ids": ["902c91fd79c150eb68e6d461743bad23"], "statement_hash": "eaded0dde2bc7c3fa7648e71a2bc6c606e1e7f65059733720404bfcc5389b725", "relations": [{"rule": 2, "type": "related", "target": "768b8971e5889da73f7b6b4bc5a8375a", "evidence": {"same_day": true, "patch_ids": ["902c91fd79c150eb68e6d461743bad23"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-0504cd4cafc43e2a", "migration": false}, {"id": "15.0-8fbdb3d6c02ffb4c", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/15/functions-admin.html#FUNCTIONS-ADMIN-DBSIZE\" title=\"\u8868\u00a09.94.\u00a0\u6570\u636e\u5e93\u5bf9\u8c61\u5c3a\u5bf8\u51fd\u6570\"><code>pg_size_pretty()</code></a> \u548c <code>pg_size_bytes()</code> \u589e\u52a0 PB \u5355\u4f4d\u652f\u6301\uff08David Christensen\uff09<a href=\"https://postgr.es/c/ca2e4472b\">\u00a7</a></p>", "text": "\u4e3a pg_size_pretty() \u548c pg_size_bytes() \u589e\u52a0 PB \u5355\u4f4d\u652f\u6301\uff08David Christensen\uff09\u00a7", "title": "\u4e3a pg_size_pretty() \u548c pg_size_bytes() \u589e\u52a0 PB \u5355\u4f4d\u652f\u6301", "commits": ["ca2e4472b"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-5", "source_hash": "ce229f755c520bd83d4a9f57fd911636de747966050b529ae90c05947961a6d6", "section_path": ["\u51fd\u6570"], "commit_groups": [["ca2e4472b"]], "identity_text": "Add support for petabyte units to pg_size_pretty() and pg_size_bytes() (David Christensen)", "commit_aliases": ["ca2e4472b"], "source_commits": ["ca2e4472b"], "source_entry_id": "15.0/changes/082", "db_id": "727ef3c44f8c4f690c441cd56dee4d66", "patch_ids": ["d4663a5132eb1c91768abfd131824339"], "statement_hash": "2b1f8880dfa9e2bf0401d91e815b3938134eaeaa4a7266a30ad35a50b6f31e1a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-8fbdb3d6c02ffb4c", "migration": false}, {"id": "15.0-69159de45dd334bf", "cves": [], "html": "<p>\u66f4\u6539 <a href=\"/docs/15/functions-event-triggers.html#PG-EVENT-TRIGGER-DDL-COMMAND-END-FUNCTIONS\" title=\"9.29.1.\u00a0\u5728\u547d\u4ee4\u7ed3\u675f\u65f6\u6355\u6349\u66f4\u6539\"><code>pg_event_trigger_ddl_commands()</code></a> \u4ee5\u4f7f\u7528\u5b9e\u9645\u6a21\u5f0f\u540d\u79f0\u8f93\u51fa\u5bf9\u5176\u4ed6\u4f1a\u8bdd\u4e34\u65f6\u6a21\u5f0f\u7684\u5f15\u7528\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/024515cac\">\u00a7</a></p>\n<p>\u4ee5\u524d\u6b64\u51fd\u6570\u5c06\u6240\u6709\u4e34\u65f6\u6a21\u5f0f\u62a5\u544a\u4e3a <code>pg_temp</code>\uff0c\u4f46\u5bf9\u5f53\u524d\u4f1a\u8bdd\u7684\u4e34\u65f6\u6a21\u5f0f\u4ee5\u5916\u7684\u4efb\u4f55\u6a21\u5f0f\u4f7f\u7528\u8be5\u540d\u79f0\u662f\u6709\u8bef\u5bfc\u6027\u7684\u3002</p>", "text": "\u66f4\u6539 pg_event_trigger_ddl_commands() \u4ee5\u4f7f\u7528\u5b9e\u9645\u6a21\u5f0f\u540d\u79f0\u8f93\u51fa\u5bf9\u5176\u4ed6\u4f1a\u8bdd\u4e34\u65f6\u6a21\u5f0f\u7684\u5f15\u7528\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\u6b64\u51fd\u6570\u5c06\u6240\u6709\u4e34\u65f6\u6a21\u5f0f\u62a5\u544a\u4e3a pg_temp\uff0c\u4f46\u5bf9\u5f53\u524d\u4f1a\u8bdd\u7684\u4e34\u65f6\u6a21\u5f0f\u4ee5\u5916\u7684\u4efb\u4f55\u6a21\u5f0f\u4f7f\u7528\u8be5\u540d\u79f0\u662f\u6709\u8bef\u5bfc\u6027\u7684\u3002", "title": "\u66f4\u6539 pg_event_trigger_ddl_commands() \u4ee5\u4f7f\u7528\u5b9e\u9645\u6a21\u5f0f\u540d\u79f0\u8f93\u51fa\u5bf9\u5176\u4ed6\u4f1a\u8bdd\u4e34\u65f6\u6a21\u5f0f\u7684\u5f15\u7528", "commits": ["024515cac"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-5", "source_hash": "713040fb6f0a69cdda35e04c24f9e8ee9917b7b563910a72f6cf380b36c58a7d", "section_path": ["\u51fd\u6570"], "commit_groups": [["024515cac"]], "identity_text": "Change pg_event_trigger_ddl_commands() to output references to other sessions' temporary schemas using the actual schema name (Tom Lane) Previously this function reported all temporary schemas as pg_temp, but it's misleading to use that for any but the current session's temporary schema.", "commit_aliases": ["024515cac"], "source_commits": ["024515cac"], "source_entry_id": "15.0/changes/083", "db_id": "cc0c6ac7a65f256553af0a9928d888e1", "patch_ids": ["08067ce4d0226ba76411b401c7ff4d5d"], "statement_hash": "460544ec7a04cdb788d0b40b31b8d0a575485d55271e3ca2fd28720e52e65538", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-69159de45dd334bf", "migration": false}, {"id": "15.0-3ba01974f1cf47da", "cves": [], "html": "<p>\u4fee\u590d PL/pgSQL \u53d8\u91cf <code>CONSTANT</code> \u6807\u8bb0\u7684\u5f3a\u5236\u6267\u884c\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/ccd10a9bf\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u53d8\u91cf\u5373\u4f7f\u88ab\u6807\u8bb0\u4e3a <code>CONSTANT</code>\uff0c\u4ecd\u53ef\u4ee5\u7528\u4f5c <a href=\"/docs/15/plpgsql-control-structures.html#PLPGSQL-STATEMENTS-CALLING-PROCEDURE\" title=\"43.6.3.\u00a0\u8c03\u7528\u8fc7\u7a0b\"><code>CALL</code></a> \u8f93\u51fa\u53c2\u6570\u6216 refcursor <code>OPEN</code> \u53d8\u91cf\u3002</p>", "text": "\u4fee\u590d PL/pgSQL \u53d8\u91cf CONSTANT \u6807\u8bb0\u7684\u5f3a\u5236\u6267\u884c\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\uff0c\u53d8\u91cf\u5373\u4f7f\u88ab\u6807\u8bb0\u4e3a CONSTANT\uff0c\u4ecd\u53ef\u4ee5\u7528\u4f5c CALL \u8f93\u51fa\u53c2\u6570\u6216 refcursor OPEN \u53d8\u91cf\u3002", "title": "\u4fee\u590d PL/pgSQL \u53d8\u91cf CONSTANT \u6807\u8bb0\u7684\u5f3a\u5236\u6267\u884c", "commits": ["ccd10a9bf"], "section": "PL/pgSQL", "category": "bugfix", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-6", "source_hash": "a503652f72826ddb68a92fd6f0fb64d57fb236de1b94cd057ce3b32f22787da8", "section_path": ["PL/pgSQL"], "commit_groups": [["ccd10a9bf"]], "identity_text": "Fix enforcement of PL/pgSQL variable CONSTANT markings (Tom Lane) Previously, a variable could be used as a CALL output parameter or refcursor OPEN variable despite being marked CONSTANT.", "commit_aliases": ["ccd10a9bf"], "source_commits": ["ccd10a9bf"], "source_entry_id": "15.0/changes/084", "db_id": "2c5ce7d32cb41622cddd08da286ace32", "patch_ids": ["07ba2140c5a34f63a3092ce66f6fab00"], "statement_hash": "bac249ec4293722b1113fdb70543bd057fa7bcda5f9677f57b8b255bf35e7bf1", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=15.0#15.0-3ba01974f1cf47da", "migration": false}, {"id": "15.0-f69611ed6a498eb5", "cves": [], "html": "<p>\u5141\u8bb8 <acronym>IP</acronym> \u5730\u5740\u4e0e\u670d\u52a1\u5668\u8bc1\u4e66\u7684\u4e3b\u4f53\u66ff\u4ee3\u540d\u79f0\u8fdb\u884c\u5339\u914d\uff08Jacob Champion\uff09<a href=\"https://postgr.es/c/c1932e542\">\u00a7</a></p>", "text": "\u5141\u8bb8 IP \u5730\u5740\u4e0e\u670d\u52a1\u5668\u8bc1\u4e66\u7684\u4e3b\u4f53\u66ff\u4ee3\u540d\u79f0\u8fdb\u884c\u5339\u914d\uff08Jacob Champion\uff09\u00a7", "title": "\u5141\u8bb8 IP \u5730\u5740\u4e0e\u670d\u52a1\u5668\u8bc1\u4e66\u7684\u4e3b\u4f53\u66ff\u4ee3\u540d\u79f0\u8fdb\u884c\u5339\u914d", "commits": ["c1932e542"], "section": "libpq", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-7", "source_hash": "4587bc05fc3e2b5e6850d8cb8051f3bbed6ebbc994d4f9149f1fd801c871bddf", "section_path": ["libpq"], "commit_groups": [["c1932e542"]], "identity_text": "Allow IP address matching against a server certificate's Subject Alternative Name (Jacob Champion)", "commit_aliases": ["c1932e542"], "source_commits": ["c1932e542"], "source_entry_id": "15.0/changes/085", "db_id": "5f146c2302df38ffb606db3a242dc21b", "patch_ids": ["541693faea113e51749c107513a0a938"], "statement_hash": "4d526ad1200eae1673ffff042957eee3fa4c54c341f007004e1e1f0a554b95b2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-f69611ed6a498eb5", "migration": false}, {"id": "15.0-505bb4a38c774617", "cves": [], "html": "<p>\u5141\u8bb8 <code>PQsslAttribute()</code> \u5728\u4e0d\u9700\u8981 libpq \u8fde\u63a5\u7684\u60c5\u51b5\u4e0b\u62a5\u544a <acronym>SSL</acronym> \u5e93\u7c7b\u578b\uff08Jacob Champion\uff09<a href=\"https://postgr.es/c/ebc8b7d44\">\u00a7</a></p>", "text": "\u5141\u8bb8 PQsslAttribute() \u5728\u4e0d\u9700\u8981 libpq \u8fde\u63a5\u7684\u60c5\u51b5\u4e0b\u62a5\u544a SSL \u5e93\u7c7b\u578b\uff08Jacob Champion\uff09\u00a7", "title": "\u5141\u8bb8 PQsslAttribute() \u5728\u4e0d\u9700\u8981 libpq \u8fde\u63a5\u7684\u60c5\u51b5\u4e0b\u62a5\u544a SSL \u5e93\u7c7b\u578b", "commits": ["ebc8b7d44"], "section": "libpq", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-7", "source_hash": "429668e2ecd470ae746136af215f504debb19f4116effa6d3117f8e6aebf8683", "section_path": ["libpq"], "commit_groups": [["ebc8b7d44"]], "identity_text": "Allow PQsslAttribute() to report the SSL library type without requiring a libpq connection (Jacob Champion)", "commit_aliases": ["ebc8b7d44"], "source_commits": ["ebc8b7d44"], "source_entry_id": "15.0/changes/086", "db_id": "f9278892e417ab5b68d7ae6363011626", "patch_ids": ["34e8fd0bb8f7150a05fb258a5b2c1305"], "statement_hash": "a05b58a1b6dccf56ab32fb4db2560959938ed7481ec2b3e6bff1bbac0b1e6f35", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-505bb4a38c774617", "migration": false}, {"id": "15.0-43dce96ad811bc6f", "cves": [], "html": "<p>\u66f4\u6539\u5ba2\u6237\u7aef\u53d1\u9001\u7684\u67e5\u8be2\u53d6\u6d88\u4ee5\u4f7f\u7528\u4e0e\u6b63\u5e38\u5ba2\u6237\u7aef\u8fde\u63a5\u76f8\u540c\u7684 <acronym>TCP</acronym> \u8bbe\u7f6e\uff08Jelte Fennema\uff09<a href=\"https://postgr.es/c/5987feb70\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u914d\u7f6e\u7684 <acronym>TCP</acronym> \u8d85\u65f6\u5e94\u7528\u5230\u67e5\u8be2\u53d6\u6d88\u8fde\u63a5\u3002</p>", "text": "\u66f4\u6539\u5ba2\u6237\u7aef\u53d1\u9001\u7684\u67e5\u8be2\u53d6\u6d88\u4ee5\u4f7f\u7528\u4e0e\u6b63\u5e38\u5ba2\u6237\u7aef\u8fde\u63a5\u76f8\u540c\u7684 TCP \u8bbe\u7f6e\uff08Jelte Fennema\uff09\u00a7 \u8fd9\u5141\u8bb8\u914d\u7f6e\u7684 TCP \u8d85\u65f6\u5e94\u7528\u5230\u67e5\u8be2\u53d6\u6d88\u8fde\u63a5\u3002", "title": "\u66f4\u6539\u5ba2\u6237\u7aef\u53d1\u9001\u7684\u67e5\u8be2\u53d6\u6d88\u4ee5\u4f7f\u7528\u4e0e\u6b63\u5e38\u5ba2\u6237\u7aef\u8fde\u63a5\u76f8\u540c\u7684 TCP \u8bbe\u7f6e", "commits": ["5987feb70"], "section": "libpq", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-7", "source_hash": "e855cec7df8a4eb74a14d7782505d8b3933e7265628f1144d13957272f2b5a15", "section_path": ["libpq"], "commit_groups": [["5987feb70"]], "identity_text": "Change query cancellations sent by the client to use the same TCP settings as normal client connections (Jelte Fennema) This allows configured TCP timeouts to apply to query cancel connections.", "commit_aliases": ["5987feb70"], "source_commits": ["5987feb70"], "source_entry_id": "15.0/changes/087", "db_id": "f6a033e8a912ff7f6388f32e5181db40", "patch_ids": ["d35c960d971d3ff94c52805a6b98a997"], "statement_hash": "1c49c99eb3eeeaa6468b8e41f4712502e9dcdfcb316ec79319f7048b770bcb32", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-43dce96ad811bc6f", "migration": false}, {"id": "15.0-ffe924414ac14b77", "cves": [], "html": "<p>\u9632\u6b62 libpq \u4e8b\u4ef6\u56de\u8c03\u5931\u8d25\u5f3a\u5236\u4ea7\u751f\u9519\u8bef\u7ed3\u679c\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/ce1e7a2f7\">\u00a7</a> <a href=\"https://postgr.es/c/2e372869a\">\u00a7</a></p>", "text": "\u9632\u6b62 libpq \u4e8b\u4ef6\u56de\u8c03\u5931\u8d25\u5f3a\u5236\u4ea7\u751f\u9519\u8bef\u7ed3\u679c\uff08Tom Lane\uff09\u00a7 \u00a7", "title": "\u9632\u6b62 libpq \u4e8b\u4ef6\u56de\u8c03\u5931\u8d25\u5f3a\u5236\u4ea7\u751f\u9519\u8bef\u7ed3\u679c", "commits": ["2e372869a", "ce1e7a2f7"], "section": "libpq", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-7", "source_hash": "c134a276fbaf129c954af895716a87bfd8f07cc7d6d0c2fac0dc6de5d99e1d9b", "section_path": ["libpq"], "commit_groups": [["2e372869a"], ["ce1e7a2f7"]], "identity_text": "Prevent libpq event callback failures from forcing an error result (Tom Lane)", "commit_aliases": ["2e372869a", "ce1e7a2f7"], "source_commits": ["2e372869a", "ce1e7a2f7"], "source_entry_id": "15.0/changes/088", "db_id": "95895b2425bec0b7ced9719a4e7a13ce", "patch_ids": ["8fe103186b6f0bf4e2871a1609dce0b3", "ab4b1b259d13261eb2fd63b9b1013d99"], "statement_hash": "c98b5d39844f5296f5f610bea898e6eb34599fdecaccda4617c675251d7d8d94", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-ffe924414ac14b77", "migration": false}, {"id": "15.0-a99d4ec3d5103665", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/15/pgbench.html\" title=\"pgbench\"><span>pgbench</span></a>\u5728\u5e8f\u5217\u5316\u548c\u6b7b\u9501\u5931\u8d25\u540e\u91cd\u8bd5\uff08Yugo Nagata\uff0cMarina Polyakova\uff09<a href=\"https://postgr.es/c/4a39f87ac\">\u00a7</a></p>", "text": "\u5141\u8bb8pgbench\u5728\u5e8f\u5217\u5316\u548c\u6b7b\u9501\u5931\u8d25\u540e\u91cd\u8bd5\uff08Yugo Nagata\uff0cMarina Polyakova\uff09\u00a7", "title": "\u5141\u8bb8pgbench\u5728\u5e8f\u5217\u5316\u548c\u6b7b\u9501\u5931\u8d25\u540e\u91cd\u8bd5", "commits": ["4a39f87ac"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-8", "source_hash": "a607d529808856eb2c2f43151922b87dccb3cf9bf79ab1689ba7760fbae3c5e1", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528"], "commit_groups": [["4a39f87ac"]], "identity_text": "Allow pgbench to retry after serialization and deadlock failures (Yugo Nagata, Marina Polyakova)", "commit_aliases": ["4a39f87ac"], "source_commits": ["4a39f87ac"], "source_entry_id": "15.0/changes/089", "db_id": "a57d6b0c1a7b1c98513f53dbd122cec6", "patch_ids": ["92322891e00afcbf2b7d74266d6718cf"], "statement_hash": "8bbfcb57149343b2719b035601e78e39b6b9eee1c008bbf338e5ca82c56a9087", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-a99d4ec3d5103665", "migration": false}, {"id": "15.0-fadd47ec7b61897a", "cves": [], "html": "<p>\u901a\u8fc7\u4ee5\u66f4\u5927\u7684\u5757\u53d1\u9001\u6570\u636e\u6765\u6539\u8fdb <span>psql</span> \u7684 <code>\\copy</code> \u547d\u4ee4\u7684\u6027\u80fd\uff08Heikki Linnakangas\uff09<a href=\"https://postgr.es/c/eec57115e\">\u00a7</a></p>", "text": "\u901a\u8fc7\u4ee5\u66f4\u5927\u7684\u5757\u53d1\u9001\u6570\u636e\u6765\u6539\u8fdb psql \u7684 \\copy \u547d\u4ee4\u7684\u6027\u80fd\uff08Heikki Linnakangas\uff09\u00a7", "title": "\u901a\u8fc7\u4ee5\u66f4\u5927\u7684\u5757\u53d1\u9001\u6570\u636e\u6765\u6539\u8fdb psql \u7684 \\copy \u547d\u4ee4\u7684\u6027\u80fd", "commits": ["eec57115e"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-9", "source_hash": "44c356d5cda3e046376df6f0fc69bfa258e817f403a48f746d8f664083383fa6", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["eec57115e"]], "identity_text": "Improve performance of psql's \\copy command, by sending data in larger chunks (Heikki Linnakangas)", "commit_aliases": ["eec57115e"], "source_commits": ["eec57115e"], "source_entry_id": "15.0/changes/090", "db_id": "1ea78dd27b88abd6ee54ecbfcc978b35", "patch_ids": ["dca529d3e14bb35c008e087e1cef2f18"], "statement_hash": "81b5bd7dc8183a8274eb41d7266f9f7b253cc9a1724c1b6bc610d8b9bf9d5e4a", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-fadd47ec7b61897a", "migration": false}, {"id": "15.0-6a018a0b25c97adb", "cves": [], "html": "<p>\u589e\u52a0 <code>\\dconfig</code> \u547d\u4ee4\u4ee5\u62a5\u544a\u670d\u52a1\u5668\u53d8\u91cf\uff08Mark Dilger\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/3e707fbb4\">\u00a7</a> <a href=\"https://postgr.es/c/5e70d8b5d\">\u00a7</a> <a href=\"https://postgr.es/c/139d46ee2\">\u00a7</a></p>\n<p>\u8fd9\u7c7b\u4f3c\u4e8e\u670d\u52a1\u5668\u7aef\u7684 <code>SHOW</code> \u547d\u4ee4\uff0c\u4f46\u5b83\u53ef\u4ee5\u5904\u7406\u6a21\u5f0f\u4ee5\u65b9\u4fbf\u5730\u663e\u793a\u591a\u4e2a\u53d8\u91cf\u3002</p>", "text": "\u589e\u52a0 \\dconfig \u547d\u4ee4\u4ee5\u62a5\u544a\u670d\u52a1\u5668\u53d8\u91cf\uff08Mark Dilger\uff0cTom Lane\uff09\u00a7 \u00a7 \u00a7 \u8fd9\u7c7b\u4f3c\u4e8e\u670d\u52a1\u5668\u7aef\u7684 SHOW \u547d\u4ee4\uff0c\u4f46\u5b83\u53ef\u4ee5\u5904\u7406\u6a21\u5f0f\u4ee5\u65b9\u4fbf\u5730\u663e\u793a\u591a\u4e2a\u53d8\u91cf\u3002", "title": "\u589e\u52a0 \\dconfig \u547d\u4ee4\u4ee5\u62a5\u544a\u670d\u52a1\u5668\u53d8\u91cf", "commits": ["139d46ee2", "3e707fbb4", "5e70d8b5d"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-9", "source_hash": "d3a543543aa2bd82aa29d2612193e64a357a51e84c0b0bf8708d910be92e9373", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["139d46ee2"], ["3e707fbb4"], ["5e70d8b5d"]], "identity_text": "Add \\dconfig command to report server variables (Mark Dilger, Tom Lane) This is similar to the server-side SHOW command, but it can process patterns to show multiple variables conveniently.", "commit_aliases": ["139d46ee2", "3e707fbb4", "5e70d8b5d"], "source_commits": ["139d46ee2", "3e707fbb4", "5e70d8b5d"], "source_entry_id": "15.0/changes/091", "db_id": "c427e1d18e7604bc4b949c431bf94706", "patch_ids": ["9268a5c72af686c17894599c350b1f55", "b96212a35e890b76d111280c5780d1cb", "c426e446db1b74c5bf3046729b72165b"], "statement_hash": "d3c70ac14d1cf1620b190553d5b61e12900425c1250c28c9a36934c47a1a0e36", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-6a018a0b25c97adb", "migration": false}, {"id": "15.0-f8f5d13b7ff9af8e", "cves": [], "html": "<p>\u589e\u52a0 <code>\\getenv</code> \u547d\u4ee4\u4ee5\u5c06\u73af\u5883\u53d8\u91cf\u7684\u503c\u8d4b\u7ed9 <span>psql</span> \u53d8\u91cf\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/33d3eeadb\">\u00a7</a></p>", "text": "\u589e\u52a0 \\getenv \u547d\u4ee4\u4ee5\u5c06\u73af\u5883\u53d8\u91cf\u7684\u503c\u8d4b\u7ed9 psql \u53d8\u91cf\uff08Tom Lane\uff09\u00a7", "title": "\u589e\u52a0 \\getenv \u547d\u4ee4\u4ee5\u5c06\u73af\u5883\u53d8\u91cf\u7684\u503c\u8d4b\u7ed9 psql \u53d8\u91cf", "commits": ["33d3eeadb"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-9", "source_hash": "b81d6aeda5d6b78314681bc32257350838518bb46d95a9fd8d5a513c1f600ac1", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["33d3eeadb"]], "identity_text": "Add \\getenv command to assign the value of an environment variable to a psql variable (Tom Lane)", "commit_aliases": ["33d3eeadb"], "source_commits": ["33d3eeadb"], "source_entry_id": "15.0/changes/092", "db_id": "fb4cda3e793e2432682de4dee0f3877a", "patch_ids": ["f1d3971bba7830bc23cb89925d1b303d"], "statement_hash": "e6d8a9f93eb2fb26a37330cff0dedfeef6fa4830a87045f2c65aef1a5ad34153", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-f8f5d13b7ff9af8e", "migration": false}, {"id": "15.0-292cc9f79575019a", "cves": [], "html": "<p>\u4e3a <code>\\lo_list</code> \u548c <code>\\dl</code> \u547d\u4ee4\u589e\u52a0 <code>+</code> \u9009\u9879\u4ee5\u663e\u793a\u5927\u5bf9\u8c61\u6743\u9650\uff08Pavel Luzanov\uff09<a href=\"https://postgr.es/c/328dfbdab\">\u00a7</a></p>", "text": "\u4e3a \\lo_list \u548c \\dl \u547d\u4ee4\u589e\u52a0 + \u9009\u9879\u4ee5\u663e\u793a\u5927\u5bf9\u8c61\u6743\u9650\uff08Pavel Luzanov\uff09\u00a7", "title": "\u4e3a \\lo_list \u548c \\dl \u547d\u4ee4\u589e\u52a0 + \u9009\u9879\u4ee5\u663e\u793a\u5927\u5bf9\u8c61\u6743\u9650", "commits": ["328dfbdab"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-9", "source_hash": "fb640c0576df2b74f7e4f85c203ede27521dd0d0e13a410e59a47a2794e8cdda", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["328dfbdab"]], "identity_text": "Add + option to the \\lo_list and \\dl commands to show large-object privileges (Pavel Luzanov)", "commit_aliases": ["328dfbdab"], "source_commits": ["328dfbdab"], "source_entry_id": "15.0/changes/093", "db_id": "397e01855098858dacc292d91241dbc6", "patch_ids": ["953cb0fba0bf34970fe1a4ebe2700249"], "statement_hash": "68f4b59a471de42132723561dabc16c67189f462ff14218a2b85d15c95ed6fc0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-292cc9f79575019a", "migration": false}, {"id": "15.0-6d9709216b81c46d", "cves": [], "html": "<p>\u4e3a <code>\\watch</code> \u547d\u4ee4\u589e\u52a0\u5206\u9875\u5668\u9009\u9879\uff08Pavel Stehule\uff0cThomas Munro\uff09<a href=\"https://postgr.es/c/7c09d2797\">\u00a7</a></p>\n<p>\u8fd9\u4ec5\u5728 Unix \u4e0a\u53d7\u652f\u6301\uff0c\u7531 <code>PSQL_WATCH_PAGER</code> \u73af\u5883\u53d8\u91cf\u63a7\u5236\u3002</p>", "text": "\u4e3a \\watch \u547d\u4ee4\u589e\u52a0\u5206\u9875\u5668\u9009\u9879\uff08Pavel Stehule\uff0cThomas Munro\uff09\u00a7 \u8fd9\u4ec5\u5728 Unix \u4e0a\u53d7\u652f\u6301\uff0c\u7531 PSQL_WATCH_PAGER \u73af\u5883\u53d8\u91cf\u63a7\u5236\u3002", "title": "\u4e3a \\watch \u547d\u4ee4\u589e\u52a0\u5206\u9875\u5668\u9009\u9879", "commits": ["7c09d2797"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-9", "source_hash": "df57a1b2cd67c56c6d0160afc8d0dc42d18526e65482a105cb7fc0565ba602f6", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["7c09d2797"]], "identity_text": "Add a pager option for the \\watch command (Pavel Stehule, Thomas Munro) This is only supported on Unix and is controlled by the PSQL_WATCH_PAGER environment variable.", "commit_aliases": ["7c09d2797"], "source_commits": ["7c09d2797"], "source_entry_id": "15.0/changes/094", "db_id": "11b94bcb6c7866a2e63853bd7a54499c", "patch_ids": ["73e54dba19628fa4e52376ad7fbcbf0c"], "statement_hash": "7b1a1fb0c50e5da4335a37d1b95b06baa75046f7ddcb5602e69f385853ec70dd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-6d9709216b81c46d", "migration": false}, {"id": "15.0-3bcf23c7070ab5d8", "cves": [], "html": "<p>\u4f7f <span>psql</span> \u5728\u53d1\u9001\u5230\u670d\u52a1\u5668\u7684\u67e5\u8be2\u4e2d\u5305\u542b\u67e5\u8be2\u5185\u7684\u53cc\u8fde\u5b57\u7b26\u6ce8\u91ca\uff08Tom Lane\uff0cGreg Nancarrow\uff09<a href=\"https://postgr.es/c/83884682f\">\u00a7</a> <a href=\"https://postgr.es/c/c2f654930\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u8fd9\u4e9b\u6ce8\u91ca\u5728\u53d1\u9001\u4e4b\u524d\u4f1a\u4ece\u67e5\u8be2\u4e2d\u5220\u9664\u3002\u5728\u4efb\u4f55\u67e5\u8be2\u6587\u672c\u4e4b\u524d\u7684\u53cc\u8fde\u5b57\u7b26\u6ce8\u91ca\u4e0d\u4f1a\u88ab\u53d1\u9001\uff0c\u4e5f\u4e0d\u4f1a\u88ab\u8bb0\u5f55\u4e3a\u5355\u72ec\u7684 <span>psql</span> \u5386\u53f2\u6761\u76ee\u3002</p>", "text": "\u4f7f psql \u5728\u53d1\u9001\u5230\u670d\u52a1\u5668\u7684\u67e5\u8be2\u4e2d\u5305\u542b\u67e5\u8be2\u5185\u7684\u53cc\u8fde\u5b57\u7b26\u6ce8\u91ca\uff08Tom Lane\uff0cGreg Nancarrow\uff09\u00a7 \u00a7 \u4ee5\u524d\uff0c\u8fd9\u4e9b\u6ce8\u91ca\u5728\u53d1\u9001\u4e4b\u524d\u4f1a\u4ece\u67e5\u8be2\u4e2d\u5220\u9664\u3002\u5728\u4efb\u4f55\u67e5\u8be2\u6587\u672c\u4e4b\u524d\u7684\u53cc\u8fde\u5b57\u7b26\u6ce8\u91ca\u4e0d\u4f1a\u88ab\u53d1\u9001\uff0c\u4e5f\u4e0d\u4f1a\u88ab\u8bb0\u5f55\u4e3a\u5355\u72ec\u7684 psql \u5386\u53f2\u6761\u76ee\u3002", "title": "\u4f7f psql \u5728\u53d1\u9001\u5230\u670d\u52a1\u5668\u7684\u67e5\u8be2\u4e2d\u5305\u542b\u67e5\u8be2\u5185\u7684\u53cc\u8fde\u5b57\u7b26\u6ce8\u91ca", "commits": ["83884682f", "c2f654930"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-9", "source_hash": "58a8f260c96766baf628261672a4939c95f94b58e9ae33efe988244716da1c1c", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["83884682f"], ["c2f654930"]], "identity_text": "Make psql include intra-query double-hyphen comments in queries sent to the server (Tom Lane, Greg Nancarrow) Previously such comments were removed from the query before being sent. Double-hyphen comments that are before any query text are not sent, and are not recorded as separate psql history entries.", "commit_aliases": ["83884682f", "c2f654930"], "source_commits": ["83884682f", "c2f654930"], "source_entry_id": "15.0/changes/095", "db_id": "8b6f6a33aea617283b817e4fb5783246", "patch_ids": ["6eda1a2a0a31bcddf84b68e7fc5b0bef", "917f033d4e855f35c87a47f6d3b61d7d"], "statement_hash": "59e3c0656f21f47febc2e8412fa4ec4772c5f84eac9ebc98e9a6d7bd09ab74be", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-3bcf23c7070ab5d8", "migration": false}, {"id": "15.0-4ad87665a251bd0b", "cves": [], "html": "<p>\u8c03\u6574 <span>psql</span>\uff0c\u4f7f <span>Readline</span> \u7684 meta-<code>#</code> \u547d\u4ee4\u63d2\u5165\u53cc\u8fde\u5b57\u7b26\u6ce8\u91ca\u6807\u8bb0\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/3d858af07\">\u00a7</a></p>\n<p>\u4ee5\u524d\u4f1a\u63d2\u5165\u4e95\u53f7\u6807\u8bb0\uff0c\u9664\u975e\u7528\u6237\u8d39\u5fc3\u914d\u7f6e\u4e86\u975e\u9ed8\u8ba4\u7684\u6ce8\u91ca\u6807\u8bb0\u3002</p>", "text": "\u8c03\u6574 psql\uff0c\u4f7f Readline \u7684 meta-# \u547d\u4ee4\u63d2\u5165\u53cc\u8fde\u5b57\u7b26\u6ce8\u91ca\u6807\u8bb0\uff08Tom Lane\uff09\u00a7 \u4ee5\u524d\u4f1a\u63d2\u5165\u4e95\u53f7\u6807\u8bb0\uff0c\u9664\u975e\u7528\u6237\u8d39\u5fc3\u914d\u7f6e\u4e86\u975e\u9ed8\u8ba4\u7684\u6ce8\u91ca\u6807\u8bb0\u3002", "title": "\u8c03\u6574 psql\uff0c\u4f7f Readline \u7684 meta-# \u547d\u4ee4\u63d2\u5165\u53cc\u8fde\u5b57\u7b26\u6ce8\u91ca\u6807\u8bb0", "commits": ["3d858af07"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-9", "source_hash": "9c9a3c4d91b28ec8b11dbf13c4fddff88fd4ae4984f1c01619d71ab1f08624e5", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["3d858af07"]], "identity_text": "Adjust psql so that Readline's meta-# command will insert a double-hyphen comment marker (Tom Lane) Previously a pound marker was inserted, unless the user had taken the trouble to configure a non-default comment marker.", "commit_aliases": ["3d858af07"], "source_commits": ["3d858af07"], "source_entry_id": "15.0/changes/096", "db_id": "5bac3cd048c78adcb23e5fcc519b205f", "patch_ids": ["68e50a559bba681d1f57c279978fa913"], "statement_hash": "e548eb64e04e2382303e9800c407c0c0e80c89dba9f468e8e31955a8a9a56c9b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-4ad87665a251bd0b", "migration": false}, {"id": "15.0-e2abccbc9cf3b868", "cves": [], "html": "<p>\u4f7f <span>psql</span> \u5728\u4e00\u6b21\u5411\u670d\u52a1\u5668\u4f20\u9012\u591a\u4e2a\u67e5\u8be2\u65f6\u8f93\u51fa\u6240\u6709\u7ed3\u679c\uff08Fabien Coelho\uff09<a href=\"https://postgr.es/c/7844c9918\">\u00a7</a></p>\n<p>\u4ee5\u524d\u53ea\u663e\u793a\u6700\u540e\u4e00\u4e2a\u67e5\u8be2\u7ed3\u679c\u3002\u53ef\u4ee5\u901a\u8fc7\u5c06 <code>SHOW_ALL_RESULTS</code> <span>psql</span> \u53d8\u91cf\u8bbe\u7f6e\u4e3a <code>off</code> \u6765\u6062\u590d\u65e7\u884c\u4e3a\u3002</p>", "text": "\u4f7f psql \u5728\u4e00\u6b21\u5411\u670d\u52a1\u5668\u4f20\u9012\u591a\u4e2a\u67e5\u8be2\u65f6\u8f93\u51fa\u6240\u6709\u7ed3\u679c\uff08Fabien Coelho\uff09\u00a7 \u4ee5\u524d\u53ea\u663e\u793a\u6700\u540e\u4e00\u4e2a\u67e5\u8be2\u7ed3\u679c\u3002\u53ef\u4ee5\u901a\u8fc7\u5c06 SHOW_ALL_RESULTS psql \u53d8\u91cf\u8bbe\u7f6e\u4e3a off \u6765\u6062\u590d\u65e7\u884c\u4e3a\u3002", "title": "\u4f7f psql \u5728\u4e00\u6b21\u5411\u670d\u52a1\u5668\u4f20\u9012\u591a\u4e2a\u67e5\u8be2\u65f6\u8f93\u51fa\u6240\u6709\u7ed3\u679c", "commits": ["7844c9918"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-9", "source_hash": "71690a683811d2f47de26dbbd9578565531dd72742b6e1c5dd700cabc4f50a90", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["7844c9918"]], "identity_text": "Make psql output all results when multiple queries are passed to the server at once (Fabien Coelho) Previously, only the last query result was displayed. The old behavior can be restored by setting the SHOW_ALL_RESULTS psql variable to off.", "commit_aliases": ["7844c9918"], "source_commits": ["7844c9918"], "source_entry_id": "15.0/changes/097", "db_id": "777251cd77e829eb07dc544a01264231", "patch_ids": ["3895d1dce1109d094ff75784959c0385"], "statement_hash": "a2be5bab0a335be4a4645e38ebf74680cb30cf6224b627c4568cf2f2d6aa94a1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-e2abccbc9cf3b868", "migration": false}, {"id": "15.0-1a71c444b9d4e3a2", "cves": [], "html": "<p>\u5728 <code>--single-transaction</code> \u6a21\u5f0f\u4e2d\u68c0\u6d4b\u5230\u9519\u8bef\u540e\uff0c\u4ec5\u5728\u8bbe\u7f6e\u4e86 <code>ON_ERROR_STOP</code> \u65f6\u624d\u5c06\u6700\u7ec8\u7684 <code>COMMIT</code> \u547d\u4ee4\u66f4\u6539\u4e3a <code>ROLLBACK</code>\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/a3ff08e0b\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u5728 <code>-c</code> \u547d\u4ee4\u6216 <code>-f</code> \u811a\u672c\u6587\u4ef6\u4e2d\u68c0\u6d4b\u5230\u9519\u8bef\u4f1a\u5bfc\u81f4\u5728\u6700\u540e\u53d1\u51fa <code>ROLLBACK</code>\uff0c\u800c\u4e0d\u7ba1 <code>ON_ERROR_STOP</code> \u7684\u503c\u5982\u4f55\u3002</p>", "text": "\u5728 --single-transaction \u6a21\u5f0f\u4e2d\u68c0\u6d4b\u5230\u9519\u8bef\u540e\uff0c\u4ec5\u5728\u8bbe\u7f6e\u4e86 ON_ERROR_STOP \u65f6\u624d\u5c06\u6700\u7ec8\u7684 COMMIT \u547d\u4ee4\u66f4\u6539\u4e3a ROLLBACK\uff08Michael Paquier\uff09\u00a7 \u4ee5\u524d\uff0c\u5728 -c \u547d\u4ee4\u6216 -f \u811a\u672c\u6587\u4ef6\u4e2d\u68c0\u6d4b\u5230\u9519\u8bef\u4f1a\u5bfc\u81f4\u5728\u6700\u540e\u53d1\u51fa ROLLBACK\uff0c\u800c\u4e0d\u7ba1 ON_ERROR_STOP \u7684\u503c\u5982\u4f55\u3002", "title": "\u5728 --single-transaction \u6a21\u5f0f\u4e2d\u68c0\u6d4b\u5230\u9519\u8bef\u540e\uff0c\u4ec5\u5728\u8bbe\u7f6e\u4e86 ON_ERROR_STOP \u65f6\u624d\u5c06\u6700\u7ec8\u7684 COMMIT \u547d\u4ee4\u66f4\u6539\u4e3a ROLLBACK", "commits": ["a3ff08e0b"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-9", "source_hash": "de8a27474c3b6191b9eeeaf9a69039b0dda56b38d24d20aedd9b60509c4a5ab3", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["a3ff08e0b"]], "identity_text": "After an error is detected in --single-transaction mode, change the final COMMIT command to ROLLBACK only if ON_ERROR_STOP is set (Michael Paquier) Previously, detection of an error in a -c command or -f script file would lead to issuing ROLLBACK at the end, regardless of the value of ON_ERROR_STOP.", "commit_aliases": ["a3ff08e0b"], "source_commits": ["a3ff08e0b"], "source_entry_id": "15.0/changes/098", "db_id": "34435455019e0b74e22b74b0d84bd533", "patch_ids": ["36bb38c7a679d043da54a29068b3b082"], "statement_hash": "a5b291502a99c77e5d1646c78fc1cd76809258373966bd1f4d670e580b018eeb", "relations": [{"rule": 2, "type": "related", "target": "1a71bcc8d97d6a4f54b540eee9925da4", "evidence": {"same_day": true, "patch_ids": ["36bb38c7a679d043da54a29068b3b082"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-1a71c444b9d4e3a2", "migration": false}, {"id": "15.0-f1951e7bd3ef09b8", "cves": [], "html": "<p>\u6539\u8fdb <span>psql</span> \u7684 Tab \u8865\u5168\uff08Shinya Kato\uff0cDagfinn Ilmari Manns\u00e5ker\uff0cPeter Smith\uff0cKoyu Tanigawa\uff0cKen Kato\uff0cDavid Fetter\uff0cHaiying Tang\uff0cPeter Eisentraut\uff0c\u00c1lvaro Herrera\uff0cTom Lane\uff0cMasahiko Sawada\uff09<a href=\"https://postgr.es/c/e2ce88b58\">\u00a7</a> <a href=\"https://postgr.es/c/346511313\">\u00a7</a> <a href=\"https://postgr.es/c/d3fa87657\">\u00a7</a> <a href=\"https://postgr.es/c/f2bbadce6\">\u00a7</a> <a href=\"https://postgr.es/c/b0c066297\">\u00a7</a> <a href=\"https://postgr.es/c/0b0d277c3\">\u00a7</a> <a href=\"https://postgr.es/c/a5b336b8b\">\u00a7</a> <a href=\"https://postgr.es/c/0cd6d3b3c\">\u00a7</a> <a href=\"https://postgr.es/c/f44ceb46e\">\u00a7</a> <a href=\"https://postgr.es/c/9270778f4\">\u00a7</a> <a href=\"https://postgr.es/c/dfe67c0e8\">\u00a7</a> <a href=\"https://postgr.es/c/74527c3e0\">\u00a7</a> <a href=\"https://postgr.es/c/fefce9ef9\">\u00a7</a> <a href=\"https://postgr.es/c/95787e849\">\u00a7</a> <a href=\"https://postgr.es/c/02b8048ba\">\u00a7</a> <a href=\"https://postgr.es/c/020258fbd\">\u00a7</a> <a href=\"https://postgr.es/c/f0cd9097c\">\u00a7</a> <a href=\"https://postgr.es/c/7fa3db367\">\u00a7</a> <a href=\"https://postgr.es/c/2d2232933\">\u00a7</a> <a href=\"https://postgr.es/c/b5607b074\">\u00a7</a></p>", "text": "\u6539\u8fdb psql \u7684 Tab \u8865\u5168\uff08Shinya Kato\uff0cDagfinn Ilmari Manns\u00e5ker\uff0cPeter Smith\uff0cKoyu Tanigawa\uff0cKen Kato\uff0cDavid Fetter\uff0cHaiying Tang\uff0cPeter Eisentraut\uff0c\u00c1lvaro Herrera\uff0cTom Lane\uff0cMasahiko Sawada\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7", "title": "\u6539\u8fdb psql \u7684 Tab \u8865\u5168", "commits": ["020258fbd", "02b8048ba", "0b0d277c3", "0cd6d3b3c", "2d2232933", "346511313", "74527c3e0", "7fa3db367", "9270778f4", "95787e849", "a5b336b8b", "b0c066297", "b5607b074", "d3fa87657", "dfe67c0e8", "e2ce88b58", "f0cd9097c", "f2bbadce6", "f44ceb46e", "fefce9ef9"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-9", "source_hash": "904518b4ca6be614ab8429d015b3fbf22747fb7f8c823b6cbb0aad2c9f1f95f2", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["020258fbd"], ["02b8048ba"], ["0b0d277c3"], ["0cd6d3b3c"], ["2d2232933"], ["346511313"], ["74527c3e0"], ["7fa3db367"], ["9270778f4"], ["95787e849"], ["a5b336b8b"], ["b0c066297"], ["b5607b074"], ["d3fa87657"], ["dfe67c0e8"], ["e2ce88b58"], ["f0cd9097c"], ["f2bbadce6"], ["f44ceb46e"], ["fefce9ef9"]], "identity_text": "Improve psql's tab completion (Shinya Kato, Dagfinn Ilmari Manns\u00e5ker, Peter Smith, Koyu Tanigawa, Ken Kato, David Fetter, Haiying Tang, Peter Eisentraut, \u00c1lvaro Herrera, Tom Lane, Masahiko Sawada)", "commit_aliases": ["020258fbd", "02b8048ba", "0b0d277c3", "0cd6d3b3c", "2d2232933", "346511313", "74527c3e0", "7fa3db367", "9270778f4", "95787e849", "a5b336b8b", "b0c066297", "b5607b074", "d3fa87657", "dfe67c0e8", "e2ce88b58", "f0cd9097c", "f2bbadce6", "f44ceb46e", "fefce9ef9"], "source_commits": ["020258fbd", "02b8048ba", "0b0d277c3", "0cd6d3b3c", "2d2232933", "346511313", "74527c3e0", "7fa3db367", "9270778f4", "95787e849", "a5b336b8b", "b0c066297", "b5607b074", "d3fa87657", "dfe67c0e8", "e2ce88b58", "f0cd9097c", "f2bbadce6", "f44ceb46e", "fefce9ef9"], "source_entry_id": "15.0/changes/099", "db_id": "864d6b1b6ecee360604334fec9d6677a", "patch_ids": ["09573dbb455c2839d060e431a0fb63d7", "12ae796847052f5a81d521ff771c6c8b", "211b14c3526a48ce9dacd5770b8ba4d9", "3abf8d666c091e26e817d9c502bc6c95", "4689a037bf12e22f91fa1a1ae2c164ff", "4ffe3e53ae69f47062174594b6903637", "6c4fc350254dc750e16a901180a01552", "71bbb2eea238bce595246b3dfde671bb", "82e2103786ca1105c1170c67b21ab77b", "86c715353362e0241f4d8c1a5ea60f13", "886b509d82f8552df55a0b2fc633d4df", "8ea65d39ced8646fd1a9c5c417db3bf7", "96da55ca6decc1808a02b70abba70e4c", "9b68e077d2054d84944dfebdb2ad9b7f", "acefd6be8a9c9b3a27dfdd17bef654dd", "ae0b65fd13f28d5487c23d970ddcf502", "bba31eb50d16ac79f38684c36845f119", "c798a538967566737bd96702e5dc03f5", "ccbe9aaa9cdc093a9ba9113fc99d8ba7", "e483dfd0ff3d69972521a2fec10d1a33"], "statement_hash": "5a668df472b5e49b1542b9d3a61d9b6a3879fc5b5ad03e8e523d8bf1d473eaec", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-f1951e7bd3ef09b8", "migration": false}, {"id": "15.0-322b4e2a7f6098fc", "cves": [], "html": "<p>\u5c06 <span>psql</span> \u53cd\u659c\u6760\u547d\u4ee4\u7684\u652f\u6301\u9650\u5236\u4e3a\u8fd0\u884c <span>PostgreSQL</span> 9.2 \u6216\u66f4\u9ad8\u7248\u672c\u7684\u670d\u52a1\u5668\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/cf0cab868\">\u00a7</a></p>\n<p>\u79fb\u9664\u4ec5\u5728\u4e0e\u8f83\u65e7\u670d\u52a1\u5668\u4e00\u8d77\u8fd0\u884c\u65f6\u4f7f\u7528\u7684\u4ee3\u7801\u3002\u4e0e 9.2 \u76f8\u6bd4\u4e0d\u9700\u8981\u4efb\u4f55\u7279\u5b9a\u7248\u672c\u8c03\u6574\u7684\u547d\u4ee4\u4ecd\u7136\u53ef\u4ee5\u5de5\u4f5c\u3002</p>", "text": "\u5c06 psql \u53cd\u659c\u6760\u547d\u4ee4\u7684\u652f\u6301\u9650\u5236\u4e3a\u8fd0\u884c PostgreSQL 9.2 \u6216\u66f4\u9ad8\u7248\u672c\u7684\u670d\u52a1\u5668\uff08Tom Lane\uff09\u00a7 \u79fb\u9664\u4ec5\u5728\u4e0e\u8f83\u65e7\u670d\u52a1\u5668\u4e00\u8d77\u8fd0\u884c\u65f6\u4f7f\u7528\u7684\u4ee3\u7801\u3002\u4e0e 9.2 \u76f8\u6bd4\u4e0d\u9700\u8981\u4efb\u4f55\u7279\u5b9a\u7248\u672c\u8c03\u6574\u7684\u547d\u4ee4\u4ecd\u7136\u53ef\u4ee5\u5de5\u4f5c\u3002", "title": "\u5c06 psql \u53cd\u659c\u6760\u547d\u4ee4\u7684\u652f\u6301\u9650\u5236\u4e3a\u8fd0\u884c PostgreSQL 9.2 \u6216\u66f4\u9ad8\u7248\u672c\u7684\u670d\u52a1\u5668", "commits": ["cf0cab868"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-9", "source_hash": "ba660a043e8953088eed6b9444f0168977869e012d2ee0b6f57b3d036603bc80", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["cf0cab868"]], "identity_text": "Limit support of psql's backslash commands to servers running PostgreSQL 9.2 or later (Tom Lane) Remove code that was only used when running with an older server. Commands that do not require any version-specific adjustments compared to 9.2 will still work.", "commit_aliases": ["cf0cab868"], "source_commits": ["cf0cab868"], "source_entry_id": "15.0/changes/100", "db_id": "16c9f67d7995d9d5bb86ba17a9b38ae2", "patch_ids": ["abcce0890139d9b2ed5eb827e36c1724"], "statement_hash": "755e7fbd790ac24bdf5104576d48c368d3f23ffec0e0665d813fe76ac7f5c0a9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-322b4e2a7f6098fc", "migration": false}, {"id": "15.0-0efef61e4d5ed504", "cves": [], "html": "<p>\u4f7f <span>pg_dump</span> \u5bfc\u51fa <code>public</code> \u6a21\u5f0f\u7684\u6240\u6709\u6743\u53d8\u66f4\u548c\u5b89\u5168\u6807\u7b7e\uff08Noah Misch\uff09<a href=\"https://postgr.es/c/a7a7be1f2\">\u00a7</a> <a href=\"https://postgr.es/c/7ac10f692\">\u00a7</a></p>", "text": "\u4f7f pg_dump \u5bfc\u51fa public \u6a21\u5f0f\u7684\u6240\u6709\u6743\u53d8\u66f4\u548c\u5b89\u5168\u6807\u7b7e\uff08Noah Misch\uff09\u00a7 \u00a7", "title": "\u4f7f pg_dump \u5bfc\u51fa public \u6a21\u5f0f\u7684\u6240\u6709\u6743\u53d8\u66f4\u548c\u5b89\u5168\u6807\u7b7e", "commits": ["7ac10f692", "a7a7be1f2"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / pg_dump", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-10", "source_hash": "e921d558ba0d5d244a6038f26d598e12c2138874bc00097e78975ada49564bfa", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "pg_dump"], "commit_groups": [["7ac10f692"], ["a7a7be1f2"]], "identity_text": "Make pg_dump dump public schema ownership changes and security labels (Noah Misch)", "commit_aliases": ["7ac10f692", "a7a7be1f2"], "source_commits": ["7ac10f692", "a7a7be1f2"], "source_entry_id": "15.0/changes/101", "db_id": "58b62b55a35c79317b2f2ee2aa821c34", "patch_ids": ["4d9bf1162347e983117fc607f878c30c", "bbfde1f6ffe807a35526ae1eae8ad54f"], "statement_hash": "59b1d5f6207606dcb859c5ff4fbbe9d19a2ee701a421c636e0e243d192384d6a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-0efef61e4d5ed504", "migration": false}, {"id": "15.0-d768ba1d591c020d", "cves": [], "html": "<p>\u6539\u8fdb\u5bfc\u51fa\u5305\u542b\u8bb8\u591a\u5bf9\u8c61\u7684\u6570\u636e\u5e93\u7684\u6027\u80fd\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/989596152\">\u00a7</a> <a href=\"https://postgr.es/c/be85727a3\">\u00a7</a> <a href=\"https://postgr.es/c/d5e8930f5\">\u00a7</a></p>\n<p>\u8fd9\u4e5f\u5c06\u6539\u8fdb<a href=\"/docs/15/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a>\u7684\u6027\u80fd\u3002</p>", "text": "\u6539\u8fdb\u5bfc\u51fa\u5305\u542b\u8bb8\u591a\u5bf9\u8c61\u7684\u6570\u636e\u5e93\u7684\u6027\u80fd\uff08Tom Lane\uff09\u00a7 \u00a7 \u00a7 \u8fd9\u4e5f\u5c06\u6539\u8fdbpg_upgrade\u7684\u6027\u80fd\u3002", "title": "\u6539\u8fdb\u5bfc\u51fa\u5305\u542b\u8bb8\u591a\u5bf9\u8c61\u7684\u6570\u636e\u5e93\u7684\u6027\u80fd", "commits": ["989596152", "be85727a3", "d5e8930f5"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / pg_dump", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-10", "source_hash": "fac08b5b1a31ba92b33ea52ad533b5a266c0a0f7e6e9159a409634eeec17e84b", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "pg_dump"], "commit_groups": [["989596152"], ["be85727a3"], ["d5e8930f5"]], "identity_text": "Improve performance of dumping databases with many objects (Tom Lane) This will also improve the performance of pg_upgrade.", "commit_aliases": ["989596152", "be85727a3", "d5e8930f5"], "source_commits": ["989596152", "be85727a3", "d5e8930f5"], "source_entry_id": "15.0/changes/102", "db_id": "854e6bc6967a8796653a925614901d9f", "patch_ids": ["6cef753139d0e3c6216cf0504b2d1cd9", "e74ec740eeaeedadc5edfbc6e9cb1f87", "f5ec6f86ed037c8f3cd9923d9b8f94ee"], "statement_hash": "37e37d82c8933a1d800e02e676af74319dd4d768c6f4087043795d88e2258963", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-d768ba1d591c020d", "migration": false}, {"id": "15.0-a087cd7d83166e64", "cves": [], "html": "<p>\u6539\u8fdb\u5e76\u884c <span>pg_dump</span> \u5bf9\u5177\u6709\u5927\u578b <acronym>TOAST</acronym> \u8868\u7684\u8868\u7684\u6027\u80fd\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/65aaed22a\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5e76\u884c pg_dump \u5bf9\u5177\u6709\u5927\u578b TOAST \u8868\u7684\u8868\u7684\u6027\u80fd\uff08Tom Lane\uff09\u00a7", "title": "\u6539\u8fdb\u5e76\u884c pg_dump \u5bf9\u5177\u6709\u5927\u578b TOAST \u8868\u7684\u8868\u7684\u6027\u80fd", "commits": ["65aaed22a"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / pg_dump", "category": "performance", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-10", "source_hash": "d7aa13556f961ab8e9e44b9e3fcdc8c603e22f784b94827a754169f3e341ff11", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "pg_dump"], "commit_groups": [["65aaed22a"]], "identity_text": "Improve parallel pg_dump's performance for tables with large TOAST tables (Tom Lane)", "commit_aliases": ["65aaed22a"], "source_commits": ["65aaed22a"], "source_entry_id": "15.0/changes/103", "db_id": "997f1c1bda68f8a7c4c4417ad7b9d962", "patch_ids": ["5ddbe84ce836a154e8c693f4cf4e354b"], "statement_hash": "cb69cf1a2b5e9850d42cfbb69ea3a0eab1b2ff7ef9503d8bc3b27c5e813cab55", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=15.0#15.0-a087cd7d83166e64", "migration": false}, {"id": "15.0-025cf3c95030f1ff", "cves": [], "html": "<p>\u589e\u52a0\u5bfc\u51fa/\u6062\u590d\u9009\u9879 <code>--no-table-access-method</code> \u4ee5\u5f3a\u5236\u6062\u590d\u4ec5\u4f7f\u7528\u9ed8\u8ba4\u8868\u8bbf\u95ee\u65b9\u6cd5\uff08Justin Pryzby\uff09<a href=\"https://postgr.es/c/215862886\">\u00a7</a></p>", "text": "\u589e\u52a0\u5bfc\u51fa/\u6062\u590d\u9009\u9879 --no-table-access-method \u4ee5\u5f3a\u5236\u6062\u590d\u4ec5\u4f7f\u7528\u9ed8\u8ba4\u8868\u8bbf\u95ee\u65b9\u6cd5\uff08Justin Pryzby\uff09\u00a7", "title": "\u589e\u52a0\u5bfc\u51fa/\u6062\u590d\u9009\u9879 --no-table-access-method \u4ee5\u5f3a\u5236\u6062\u590d\u4ec5\u4f7f\u7528\u9ed8\u8ba4\u8868\u8bbf\u95ee\u65b9\u6cd5", "commits": ["215862886"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / pg_dump", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-10", "source_hash": "e783d0e21b931e09ea303f752ec82a821fda420efb550a6197299a0ae76b9f93", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "pg_dump"], "commit_groups": [["215862886"]], "identity_text": "Add dump/restore option --no-table-access-method to force restore to only use the default table access method (Justin Pryzby)", "commit_aliases": ["215862886"], "source_commits": ["215862886"], "source_entry_id": "15.0/changes/104", "db_id": "a7bb07479221323c4d5dc04959737d1c", "patch_ids": ["57685313798a239712fb2e915b543f42"], "statement_hash": "494ed287b10a7eff82a1618fe3d29cf3cd03722b9b67168c182491703dfd16e6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-025cf3c95030f1ff", "migration": false}, {"id": "15.0-f686aad2469d0af4", "cves": [], "html": "<p>\u5c06 <span>pg_dump</span> \u548c<a href=\"/docs/15/app-pg-dumpall.html\" title=\"pg_dumpall\"><span>pg_dumpall</span></a>\u7684\u652f\u6301\u9650\u5236\u4e3a\u8fd0\u884c <span>PostgreSQL</span> 9.2 \u6216\u66f4\u9ad8\u7248\u672c\u7684\u670d\u52a1\u5668\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/30e7c175b\">\u00a7</a></p>", "text": "\u5c06 pg_dump \u548cpg_dumpall\u7684\u652f\u6301\u9650\u5236\u4e3a\u8fd0\u884c PostgreSQL 9.2 \u6216\u66f4\u9ad8\u7248\u672c\u7684\u670d\u52a1\u5668\uff08Tom Lane\uff09\u00a7", "title": "\u5c06 pg_dump \u548cpg_dumpall\u7684\u652f\u6301\u9650\u5236\u4e3a\u8fd0\u884c PostgreSQL 9.2 \u6216\u66f4\u9ad8\u7248\u672c\u7684\u670d\u52a1\u5668", "commits": ["30e7c175b"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / pg_dump", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-10", "source_hash": "4c51157906a7eac18162c4107edf0ee322a5cc765fc475fc7ad26bfcba2495de", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "pg_dump"], "commit_groups": [["30e7c175b"]], "identity_text": "Limit support of pg_dump and pg_dumpall to servers running PostgreSQL 9.2 or later (Tom Lane)", "commit_aliases": ["30e7c175b"], "source_commits": ["30e7c175b"], "source_entry_id": "15.0/changes/105", "db_id": "f1dd783785ab2a79c0f597c736946d40", "patch_ids": ["a69ea35c52583491f0a17986015d7e2c"], "statement_hash": "14bac38a3963eb42e28d11ab6eee3fba45f81c20a7f49670e90a033ca13c741b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-f686aad2469d0af4", "migration": false}, {"id": "15.0-7211138a7090647b", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/15/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a>\u589e\u52a0\u65b0\u9009\u9879 <code>--target</code> \u4ee5\u63a7\u5236\u57fa\u7840\u5907\u4efd\u4f4d\u7f6e\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/3500ccc39\">\u00a7</a></p>\n<p>\u65b0\u9009\u9879\u662f <code>server</code>\uff08\u5728\u672c\u5730\u5199\u5165\u5907\u4efd\uff09\u548c <code>blackhole</code>\uff08\u4e22\u5f03\u5907\u4efd\uff0c\u7528\u4e8e\u6d4b\u8bd5\uff09\u3002</p>", "text": "\u4e3apg_basebackup\u589e\u52a0\u65b0\u9009\u9879 --target \u4ee5\u63a7\u5236\u57fa\u7840\u5907\u4efd\u4f4d\u7f6e\uff08Robert Haas\uff09\u00a7 \u65b0\u9009\u9879\u662f server\uff08\u5728\u672c\u5730\u5199\u5165\u5907\u4efd\uff09\u548c blackhole\uff08\u4e22\u5f03\u5907\u4efd\uff0c\u7528\u4e8e\u6d4b\u8bd5\uff09\u3002", "title": "\u4e3apg_basebackup\u589e\u52a0\u65b0\u9009\u9879 --target \u4ee5\u63a7\u5236\u57fa\u7840\u5907\u4efd\u4f4d\u7f6e", "commits": ["3500ccc39"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-9", "source_hash": "27cc23163d8d05220c01807846512d35038238d9889488b1a1d079e6d0d5b9a3", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["3500ccc39"]], "identity_text": "Add new pg_basebackup option --target to control the base backup location (Robert Haas) The new options are server to write the backup locally and blackhole to discard the backup (for testing).", "commit_aliases": ["3500ccc39"], "source_commits": ["3500ccc39"], "source_entry_id": "15.0/changes/106", "db_id": "9d81f1af6fdb281048b9354ae017b43d", "patch_ids": ["316939f458f01349c265e09f06ee90c6"], "statement_hash": "db3327089b0dcf0bd9b2a203a35d487d8af1cbac3cfe4c17514cfacc0f2fcb22", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-7211138a7090647b", "migration": false}, {"id": "15.0-1ca652133469f4a5-1", "cves": [], "html": "<p>\u5141\u8bb8 <span>pg_basebackup</span> \u5bf9\u57fa\u7840\u5907\u4efd\u6587\u4ef6\u8fdb\u884c\u670d\u52a1\u5668\u7aef gzip\u3001LZ4 \u548c Zstandard \u538b\u7f29\u4ee5\u53ca\u5ba2\u6237\u7aef LZ4 \u548c Zstandard \u538b\u7f29\uff08Dipesh Pandit\uff0cJeevan Ladhe\uff09<a href=\"https://postgr.es/c/751b8d23b\">\u00a7</a> <a href=\"https://postgr.es/c/7cf085f07\">\u00a7</a> <a href=\"https://postgr.es/c/0ad803291\">\u00a7</a></p>\n<p>\u5ba2\u6237\u7aef <code>gzip</code> \u538b\u7f29\u5df2\u7ecf\u88ab\u652f\u6301\u3002</p>", "text": "\u5141\u8bb8 pg_basebackup \u5bf9\u57fa\u7840\u5907\u4efd\u6587\u4ef6\u8fdb\u884c\u670d\u52a1\u5668\u7aef gzip\u3001LZ4 \u548c Zstandard \u538b\u7f29\u4ee5\u53ca\u5ba2\u6237\u7aef LZ4 \u548c Zstandard \u538b\u7f29\uff08Dipesh Pandit\uff0cJeevan Ladhe\uff09\u00a7 \u00a7 \u00a7 \u5ba2\u6237\u7aef gzip \u538b\u7f29\u5df2\u7ecf\u88ab\u652f\u6301\u3002", "title": "\u5141\u8bb8 pg_basebackup \u5bf9\u57fa\u7840\u5907\u4efd\u6587\u4ef6\u8fdb\u884c\u670d\u52a1\u5668\u7aef gzip\u3001LZ4 \u548c Zstandard \u538b\u7f29\u4ee5\u53ca\u5ba2\u6237\u7aef LZ4 \u548c Zstandard \u538b\u7f29", "commits": ["0ad803291", "751b8d23b", "7cf085f07"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-9", "source_hash": "389553ec7cb82a20d142a03275c59adbb89dbf94b63083c000f50877c850f64b", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["0ad803291"], ["751b8d23b"], ["7cf085f07"]], "identity_text": "Allow pg_basebackup to do server-side gzip, LZ4, and Zstandard compression and client-side LZ4 and Zstandard compression of base backup files (Dipesh Pandit, Jeevan Ladhe) Client-side gzip compression was already supported.", "commit_aliases": ["0ad803291", "751b8d23b", "7cf085f07"], "source_commits": ["0ad803291", "751b8d23b", "7cf085f07"], "source_entry_id": "15.0/changes/107", "db_id": "a0c3ea9a34f7191acb55d64cb8b67b8d", "patch_ids": ["a06a70c3b6de9ee81579ac5e3897ff6c", "c4d4b48af520d03dc42ca0c02d5811ad", "df970c275b164d4974b6006d7d27b907"], "statement_hash": "62677008fa6f2eed3c3d299d87b4a3fb5e2551057cae5cbd63469ed7c1fbdb6f", "relations": [{"rule": 2, "type": "related", "target": "17f165db6d2594958287676579602aec", "evidence": {"same_day": true, "patch_ids": ["a06a70c3b6de9ee81579ac5e3897ff6c"], "ambiguous_patch_ids": ["a06a70c3b6de9ee81579ac5e3897ff6c", "df970c275b164d4974b6006d7d27b907"]}}, {"rule": 2, "type": "related", "target": "4b98edf22f81dc56d4e110ca35c7093b", "evidence": {"same_day": true, "patch_ids": ["df970c275b164d4974b6006d7d27b907"], "ambiguous_patch_ids": ["a06a70c3b6de9ee81579ac5e3897ff6c", "df970c275b164d4974b6006d7d27b907"]}}, {"rule": 2, "type": "related", "target": "e09894bd0365f4aac86b659f7cdb619e", "evidence": {"same_day": true, "patch_ids": ["df970c275b164d4974b6006d7d27b907"], "ambiguous_patch_ids": ["a06a70c3b6de9ee81579ac5e3897ff6c", "df970c275b164d4974b6006d7d27b907"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-1ca652133469f4a5-1", "migration": false}, {"id": "15.0-87b3173e44e0e645", "cves": [], "html": "<p>\u5141\u8bb8 <span>pg_basebackup</span> \u5728\u670d\u52a1\u5668\u7aef\u538b\u7f29\u5e76\u5728\u5ba2\u6237\u7aef\u5b58\u50a8\u4e4b\u524d\u89e3\u538b\u7f29\uff08Dipesh Pandit\uff09<a href=\"https://postgr.es/c/d45099425\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7\u6307\u5b9a\u670d\u52a1\u5668\u7aef\u538b\u7f29\u548c\u7eaf\u6587\u672c\u8f93\u51fa\u683c\u5f0f\u6765\u5b9e\u73b0\u3002</p>", "text": "\u5141\u8bb8 pg_basebackup \u5728\u670d\u52a1\u5668\u7aef\u538b\u7f29\u5e76\u5728\u5ba2\u6237\u7aef\u5b58\u50a8\u4e4b\u524d\u89e3\u538b\u7f29\uff08Dipesh Pandit\uff09\u00a7 \u8fd9\u901a\u8fc7\u6307\u5b9a\u670d\u52a1\u5668\u7aef\u538b\u7f29\u548c\u7eaf\u6587\u672c\u8f93\u51fa\u683c\u5f0f\u6765\u5b9e\u73b0\u3002", "title": "\u5141\u8bb8 pg_basebackup \u5728\u670d\u52a1\u5668\u7aef\u538b\u7f29\u5e76\u5728\u5ba2\u6237\u7aef\u5b58\u50a8\u4e4b\u524d\u89e3\u538b\u7f29", "commits": ["d45099425"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-9", "source_hash": "1ab997c85bdcc4904d22a9385f994822ed20e29a30d1b5a7c6dcecf765da1a64", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["d45099425"]], "identity_text": "Allow pg_basebackup to compress on the server side and decompress on the client side before storage (Dipesh Pandit) This is accomplished by specifying compression on the server side and plain output format.", "commit_aliases": ["d45099425"], "source_commits": ["d45099425"], "source_entry_id": "15.0/changes/108", "db_id": "0558a89d8317fab466a522a80ddee05f", "patch_ids": ["2a1f8baa8d52cb1c51738cf366e00039"], "statement_hash": "3c43ac8f7395e56ccbf3bff24902e60a0681e6500ecd5052a1a9df1b2b8498f0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-87b3173e44e0e645", "migration": false}, {"id": "15.0-1ca652133469f4a5-2", "cves": [], "html": "<p>\u5141\u8bb8 <span>pg_basebackup</span> \u7684 <code>--compress</code> \u9009\u9879\u63a7\u5236\u538b\u7f29\u4f4d\u7f6e\uff08\u670d\u52a1\u5668\u6216\u5ba2\u6237\u7aef\uff09\u3001\u538b\u7f29\u65b9\u6cd5\u548c\u538b\u7f29\u9009\u9879\uff08Michael Paquier\uff0cRobert Haas\uff09<a href=\"https://postgr.es/c/5c649fe15\">\u00a7</a> <a href=\"https://postgr.es/c/0ad803291\">\u00a7</a> <a href=\"https://postgr.es/c/e1f860f13\">\u00a7</a></p>", "text": "\u5141\u8bb8 pg_basebackup \u7684 --compress \u9009\u9879\u63a7\u5236\u538b\u7f29\u4f4d\u7f6e\uff08\u670d\u52a1\u5668\u6216\u5ba2\u6237\u7aef\uff09\u3001\u538b\u7f29\u65b9\u6cd5\u548c\u538b\u7f29\u9009\u9879\uff08Michael Paquier\uff0cRobert Haas\uff09\u00a7 \u00a7 \u00a7", "title": "\u5141\u8bb8 pg_basebackup \u7684 --compress \u9009\u9879\u63a7\u5236\u538b\u7f29\u4f4d\u7f6e\uff08\u670d\u52a1\u5668\u6216\u5ba2\u6237\u7aef\uff09\u3001\u538b\u7f29\u65b9\u6cd5\u548c\u538b\u7f29\u9009\u9879", "commits": ["0ad803291", "5c649fe15", "e1f860f13"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-9", "source_hash": "25e3a49ff46a9ed0b75c531379619b2293d3a2595fe4ae3abc0d07bb42a5d1cf", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["0ad803291"], ["5c649fe15"], ["e1f860f13"]], "identity_text": "Allow pg_basebackup's --compress option to control the compression location (server or client), compression method, and compression options (Michael Paquier, Robert Haas)", "commit_aliases": ["0ad803291", "5c649fe15", "e1f860f13"], "source_commits": ["0ad803291", "5c649fe15", "e1f860f13"], "source_entry_id": "15.0/changes/109", "db_id": "e09894bd0365f4aac86b659f7cdb619e", "patch_ids": ["ae8ab65696a85bd02862a954c4d68111", "df970c275b164d4974b6006d7d27b907", "e7ea12783557b32123a5d8da76b07360"], "statement_hash": "6d3f10d9103711801e6b8f6910476452e60b6a156bfc2a03a869322568abaa37", "relations": [{"rule": 2, "type": "related", "target": "4b98edf22f81dc56d4e110ca35c7093b", "evidence": {"same_day": true, "patch_ids": ["df970c275b164d4974b6006d7d27b907"], "ambiguous_patch_ids": ["df970c275b164d4974b6006d7d27b907"]}}, {"rule": 2, "type": "related", "target": "a0c3ea9a34f7191acb55d64cb8b67b8d", "evidence": {"same_day": true, "patch_ids": ["df970c275b164d4974b6006d7d27b907"], "ambiguous_patch_ids": ["a06a70c3b6de9ee81579ac5e3897ff6c", "df970c275b164d4974b6006d7d27b907"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-1ca652133469f4a5-2", "migration": false}, {"id": "15.0-55d1e17418c41920", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/15/app-pgreceivewal.html\" title=\"pg_receivewal\"><span>pg_receivewal</span></a>\u589e\u52a0 LZ4 \u538b\u7f29\u65b9\u6cd5\uff08Georgios Kokolatos\uff09<a href=\"https://postgr.es/c/babbbb595\">\u00a7</a> <a href=\"https://postgr.es/c/042a923ad\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7 <code>--compress=lz4</code> \u542f\u7528\uff0c\u9700\u8981\u4f7f\u7528 <code>--with-lz4</code> \u6784\u5efa\u4e8c\u8fdb\u5236\u6587\u4ef6\u3002</p>", "text": "\u4e3apg_receivewal\u589e\u52a0 LZ4 \u538b\u7f29\u65b9\u6cd5\uff08Georgios Kokolatos\uff09\u00a7 \u00a7 \u8fd9\u901a\u8fc7 --compress=lz4 \u542f\u7528\uff0c\u9700\u8981\u4f7f\u7528 --with-lz4 \u6784\u5efa\u4e8c\u8fdb\u5236\u6587\u4ef6\u3002", "title": "\u4e3apg_receivewal\u589e\u52a0 LZ4 \u538b\u7f29\u65b9\u6cd5", "commits": ["042a923ad", "babbbb595"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-9", "source_hash": "937357728b21c8a41d94f88ee7218e2c087e74736bb41daf39869f5e5d0fa1ad", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["042a923ad"], ["babbbb595"]], "identity_text": "Add the LZ4 compression method to pg_receivewal (Georgios Kokolatos) This is enabled via --compress=lz4 and requires binaries to be built using --with-lz4.", "commit_aliases": ["042a923ad", "babbbb595"], "source_commits": ["042a923ad", "babbbb595"], "source_entry_id": "15.0/changes/110", "db_id": "bca44beef6d5ec68614f5a69145fcf79", "patch_ids": ["0a3420e42ca39f8dd1129a91bed14c62", "fbbde0ca44591ade5232e6a56bf119a9"], "statement_hash": "e8944a29f4c815f4014284e3ba4da3183a3dae80289554cd97b995444e047c5b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-55d1e17418c41920", "migration": false}, {"id": "15.0-104ef5a3a3277ffe", "cves": [], "html": "<p>\u4e3a <span>pg_receivewal</span> \u7684 <code>--compress</code> \u9009\u9879\u589e\u52a0\u989d\u5916\u529f\u80fd\uff08Georgios Kokolatos\uff09<a href=\"https://postgr.es/c/d62bcc8b0\">\u00a7</a></p>", "text": "\u4e3a pg_receivewal \u7684 --compress \u9009\u9879\u589e\u52a0\u989d\u5916\u529f\u80fd\uff08Georgios Kokolatos\uff09\u00a7", "title": "\u4e3a pg_receivewal \u7684 --compress \u9009\u9879\u589e\u52a0\u989d\u5916\u529f\u80fd", "commits": ["d62bcc8b0"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-9", "source_hash": "efc31b633595d8cb611003ddf2c38654c696d3b833527d530521a4aaae5287ba", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["d62bcc8b0"]], "identity_text": "Add additional capabilities to pg_receivewal's --compress option (Georgios Kokolatos)", "commit_aliases": ["d62bcc8b0"], "source_commits": ["d62bcc8b0"], "source_entry_id": "15.0/changes/111", "db_id": "c0d8b796add8beefcbc1fbb8b2a33269", "patch_ids": ["5c0510e11fe8dd9694d86f366e1e39f9"], "statement_hash": "b53c12b6e014bdd685d6b4369ca4213a0b34473ed0fc14099244f38419e6c106", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-104ef5a3a3277ffe", "migration": false}, {"id": "15.0-61bb5887f438da4a", "cves": [], "html": "<p>\u6539\u8fdb <span>pg_receivewal</span> \u5728\u6b63\u786e\u7684 <acronym>WAL</acronym> \u4f4d\u7f6e\u91cd\u65b0\u542f\u52a8\u7684\u80fd\u529b\uff08Ronan Dunklau\uff09<a href=\"https://postgr.es/c/f61e1dd2c\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c<span>pg_receivewal</span> \u4f1a\u57fa\u4e8e\u5b58\u50a8\u5728\u672c\u5730\u5f52\u6863\u76ee\u5f55\u4e2d\u7684 <acronym>WAL</acronym> \u6587\u4ef6\u542f\u52a8\uff0c\u6216\u4ece\u53d1\u9001\u670d\u52a1\u5668\u7684\u5f53\u524d <acronym>WAL</acronym> \u5237\u65b0\u4f4d\u7f6e\u542f\u52a8\u3002\u901a\u8fc7\u6b64\u53d8\u66f4\uff0c\u5982\u679c\u53d1\u9001\u670d\u52a1\u5668\u8fd0\u884c Postgres 15 \u6216\u66f4\u9ad8\u7248\u672c\uff0c\u672c\u5730\u5f52\u6863\u76ee\u5f55\u4e3a\u7a7a\uff0c\u5e76\u4e14\u6307\u5b9a\u4e86\u590d\u5236\u69fd\uff0c\u5219\u5c06\u4f7f\u7528\u590d\u5236\u69fd\u7684\u91cd\u65b0\u542f\u52a8\u70b9\u3002</p>", "text": "\u6539\u8fdb pg_receivewal \u5728\u6b63\u786e\u7684 WAL \u4f4d\u7f6e\u91cd\u65b0\u542f\u52a8\u7684\u80fd\u529b\uff08Ronan Dunklau\uff09\u00a7 \u4ee5\u524d\uff0cpg_receivewal \u4f1a\u57fa\u4e8e\u5b58\u50a8\u5728\u672c\u5730\u5f52\u6863\u76ee\u5f55\u4e2d\u7684 WAL \u6587\u4ef6\u542f\u52a8\uff0c\u6216\u4ece\u53d1\u9001\u670d\u52a1\u5668\u7684\u5f53\u524d WAL \u5237\u65b0\u4f4d\u7f6e\u542f\u52a8\u3002\u901a\u8fc7\u6b64\u53d8\u66f4\uff0c\u5982\u679c\u53d1\u9001\u670d\u52a1\u5668\u8fd0\u884c Postgres 15 \u6216\u66f4\u9ad8\u7248\u672c\uff0c\u672c\u5730\u5f52\u6863\u76ee\u5f55\u4e3a\u7a7a\uff0c\u5e76\u4e14\u6307\u5b9a\u4e86\u590d\u5236\u69fd\uff0c\u5219\u5c06\u4f7f\u7528\u590d\u5236\u69fd\u7684\u91cd\u65b0\u542f\u52a8\u70b9\u3002", "title": "\u6539\u8fdb pg_receivewal \u5728\u6b63\u786e\u7684 WAL \u4f4d\u7f6e\u91cd\u65b0\u542f\u52a8\u7684\u80fd\u529b", "commits": ["f61e1dd2c"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-9", "source_hash": "345f6356073c33029e65447817da2dde74abe689d089a53b7d9c179c2d982db1", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["f61e1dd2c"]], "identity_text": "Improve pg_receivewal's ability to restart at the proper WAL location (Ronan Dunklau) Previously, pg_receivewal would start based on the WAL file stored in the local archive directory, or at the sending server's current WAL flush location. With this change, if the sending server is running Postgres 15 or later, the local archive directory is empty, and a replication slot is specified, the replication slot's restart point will be used.", "commit_aliases": ["f61e1dd2c"], "source_commits": ["f61e1dd2c"], "source_entry_id": "15.0/changes/112", "db_id": "cf37c4852580603254b3f3131c58a230", "patch_ids": ["7ba7b7a8e2a94535b1483de6fcfc2a49"], "statement_hash": "95285ce1c308ca15617a9f34b05e8090fb3563d6aa4547fa6673a3b48257861a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-61bb5887f438da4a", "migration": false}, {"id": "15.0-fe26a59f447af4c2", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/15/app-pgrewind.html\" title=\"pg_rewind\"><span>pg_rewind</span></a>\u589e\u52a0\u9009\u9879 <code>--config-file</code> \u4ee5\u7b80\u5316\u670d\u52a1\u5668\u914d\u7f6e\u6587\u4ef6\u5b58\u50a8\u5728\u6570\u636e\u76ee\u5f55\u4e4b\u5916\u65f6\u7684\u4f7f\u7528\uff08Gunnar Bluth\uff09<a href=\"https://postgr.es/c/0d5c38757\">\u00a7</a></p>", "text": "\u4e3apg_rewind\u589e\u52a0\u9009\u9879 --config-file \u4ee5\u7b80\u5316\u670d\u52a1\u5668\u914d\u7f6e\u6587\u4ef6\u5b58\u50a8\u5728\u6570\u636e\u76ee\u5f55\u4e4b\u5916\u65f6\u7684\u4f7f\u7528\uff08Gunnar Bluth\uff09\u00a7", "title": "\u4e3apg_rewind\u589e\u52a0\u9009\u9879 --config-file \u4ee5\u7b80\u5316\u670d\u52a1\u5668\u914d\u7f6e\u6587\u4ef6\u5b58\u50a8\u5728\u6570\u636e\u76ee\u5f55\u4e4b\u5916\u65f6\u7684\u4f7f\u7528", "commits": ["0d5c38757"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-9", "source_hash": "1ab3b2d43eeb8332f5d9d14e2106e2743726d3eb495afec68ce62fe62963ce01", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["0d5c38757"]], "identity_text": "Add pg_rewind option --config-file to simplify use when server configuration files are stored outside the data directory (Gunnar Bluth)", "commit_aliases": ["0d5c38757"], "source_commits": ["0d5c38757"], "source_entry_id": "15.0/changes/113", "db_id": "9986ba2d782be87702d54d108ef50b4e", "patch_ids": ["8ac6797ea3253f42bd2f4caee047962a"], "statement_hash": "43eb855b7e85d807d2ca550ec860f28d6724427a2fe2094a40bc39626a448074", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-fe26a59f447af4c2", "migration": false}, {"id": "15.0-32ec36b26dd2b032", "cves": [], "html": "<p>\u5c06 <span>pg_upgrade</span> \u7684\u65e5\u5fd7\u548c\u4e34\u65f6\u6587\u4ef6\u5b58\u50a8\u5728\u65b0\u96c6\u7c07\u7684\u540d\u4e3a <code>pg_upgrade_output.d</code> \u7684\u5b50\u76ee\u5f55\u4e2d\uff08Justin Pryzby\uff09<a href=\"https://postgr.es/c/38bfae365\">\u00a7</a> <a href=\"https://postgr.es/c/a00849630\">\u00a7</a> <a href=\"https://postgr.es/c/f5047c129\">\u00a7</a></p>\n<p>\u4ee5\u524d\u8fd9\u4e9b\u6587\u4ef6\u7559\u5728\u5f53\u524d\u76ee\u5f55\u4e2d\uff0c\u9700\u8981\u624b\u52a8\u6e05\u7406\u3002\u73b0\u5728\u5b83\u4eec\u5728 <span>pg_upgrade</span> \u6210\u529f\u5b8c\u6210\u540e\u4f1a\u81ea\u52a8\u5220\u9664\u3002</p>", "text": "\u5c06 pg_upgrade \u7684\u65e5\u5fd7\u548c\u4e34\u65f6\u6587\u4ef6\u5b58\u50a8\u5728\u65b0\u96c6\u7c07\u7684\u540d\u4e3a pg_upgrade_output.d \u7684\u5b50\u76ee\u5f55\u4e2d\uff08Justin Pryzby\uff09\u00a7 \u00a7 \u00a7 \u4ee5\u524d\u8fd9\u4e9b\u6587\u4ef6\u7559\u5728\u5f53\u524d\u76ee\u5f55\u4e2d\uff0c\u9700\u8981\u624b\u52a8\u6e05\u7406\u3002\u73b0\u5728\u5b83\u4eec\u5728 pg_upgrade \u6210\u529f\u5b8c\u6210\u540e\u4f1a\u81ea\u52a8\u5220\u9664\u3002", "title": "\u5c06 pg_upgrade \u7684\u65e5\u5fd7\u548c\u4e34\u65f6\u6587\u4ef6\u5b58\u50a8\u5728\u65b0\u96c6\u7c07\u7684\u540d\u4e3a pg_upgrade_output.d \u7684\u5b50\u76ee\u5f55\u4e2d", "commits": ["38bfae365", "a00849630", "f5047c129"], "section": "\u670d\u52a1\u5668\u5e94\u7528 / pg_upgrade", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-11", "source_hash": "8e12160a461582dd30d375429b4074c389e88833a2ee09f36f7b3c0e44a4b9ee", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528", "pg_upgrade"], "commit_groups": [["38bfae365"], ["a00849630"], ["f5047c129"]], "identity_text": "Store pg_upgrade's log and temporary files in a subdirectory of the new cluster called pg_upgrade_output.d (Justin Pryzby) Previously such files were left in the current directory, requiring manual cleanup. Now they are automatically removed on successful completion of pg_upgrade.", "commit_aliases": ["38bfae365", "a00849630", "f5047c129"], "source_commits": ["38bfae365", "a00849630", "f5047c129"], "source_entry_id": "15.0/changes/114", "db_id": "79aa5645ebaf632bd10f28a1dd15b9da", "patch_ids": ["701bb1018fed951de94810c0a08acdd7", "8bc3318195704e41939bae860f62d085", "d29f595cb4f724838dc12f706eb46822"], "statement_hash": "7daaa1a3b65e68267ddc755a9140b60e69be90dbe20267e6aedec6f7a9f6ca6f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-32ec36b26dd2b032", "migration": false}, {"id": "15.0-5e22f27423a66b2a", "cves": [], "html": "<p>\u5982\u679c\u8f93\u51fa\u4e0d\u662f\u7ec8\u7aef\uff0c\u5219\u5728 <span>pg_upgrade</span> \u64cd\u4f5c\u671f\u95f4\u7981\u7528\u9ed8\u8ba4\u72b6\u6001\u62a5\u544a\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/27b02e070\">\u00a7</a></p>\n<p>\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 <code>--verbose</code> \u4e3a\u975e\u7ec8\u7aef\u4f7f\u7528\u542f\u7528\u72b6\u6001\u62a5\u544a\u8f93\u51fa\u3002</p>", "text": "\u5982\u679c\u8f93\u51fa\u4e0d\u662f\u7ec8\u7aef\uff0c\u5219\u5728 pg_upgrade \u64cd\u4f5c\u671f\u95f4\u7981\u7528\u9ed8\u8ba4\u72b6\u6001\u62a5\u544a\uff08Andres Freund\uff09\u00a7 \u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 --verbose \u4e3a\u975e\u7ec8\u7aef\u4f7f\u7528\u542f\u7528\u72b6\u6001\u62a5\u544a\u8f93\u51fa\u3002", "title": "\u5982\u679c\u8f93\u51fa\u4e0d\u662f\u7ec8\u7aef\uff0c\u5219\u5728 pg_upgrade \u64cd\u4f5c\u671f\u95f4\u7981\u7528\u9ed8\u8ba4\u72b6\u6001\u62a5\u544a", "commits": ["27b02e070"], "section": "\u670d\u52a1\u5668\u5e94\u7528 / pg_upgrade", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-11", "source_hash": "f53128314a8548386271a807a900fad39c25761c57643d6ef146badcbe29f015", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528", "pg_upgrade"], "commit_groups": [["27b02e070"]], "identity_text": "Disable default status reporting during pg_upgrade operation if the output is not a terminal (Andres Freund) The status reporting output can be enabled for non-tty usage by using --verbose.", "commit_aliases": ["27b02e070"], "source_commits": ["27b02e070"], "source_entry_id": "15.0/changes/115", "db_id": "9392e0a766dcefde0c53beb1a4ebe570", "patch_ids": ["da826138b8b5c0237db2977d61755ecf"], "statement_hash": "efe375ae6cfff0ecbd33a7c06fa6721c8e7974491c0a2d9a668b4f1a45ac3325", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-5e22f27423a66b2a", "migration": false}, {"id": "15.0-b1c720162fd5ae69", "cves": [], "html": "<p>\u4f7f <span>pg_upgrade</span> \u62a5\u544a\u6240\u6709\u5177\u6709\u65e0\u6548\u8fde\u63a5\u8bbe\u7f6e\u7684\u6570\u636e\u5e93\uff08Jeevan Ladhe\uff09<a href=\"https://postgr.es/c/26ebb0e28\">\u00a7</a></p>\n<p>\u4ee5\u524d\u53ea\u62a5\u544a\u7b2c\u4e00\u4e2a\u5177\u6709\u65e0\u6548\u8fde\u63a5\u8bbe\u7f6e\u7684\u6570\u636e\u5e93\u3002</p>", "text": "\u4f7f pg_upgrade \u62a5\u544a\u6240\u6709\u5177\u6709\u65e0\u6548\u8fde\u63a5\u8bbe\u7f6e\u7684\u6570\u636e\u5e93\uff08Jeevan Ladhe\uff09\u00a7 \u4ee5\u524d\u53ea\u62a5\u544a\u7b2c\u4e00\u4e2a\u5177\u6709\u65e0\u6548\u8fde\u63a5\u8bbe\u7f6e\u7684\u6570\u636e\u5e93\u3002", "title": "\u4f7f pg_upgrade \u62a5\u544a\u6240\u6709\u5177\u6709\u65e0\u6548\u8fde\u63a5\u8bbe\u7f6e\u7684\u6570\u636e\u5e93", "commits": ["26ebb0e28"], "section": "\u670d\u52a1\u5668\u5e94\u7528 / pg_upgrade", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-11", "source_hash": "2921969eb4e6b0c334a5ce586e90c0a01d9d2455b53f443a4840b60d25bd1dc6", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528", "pg_upgrade"], "commit_groups": [["26ebb0e28"]], "identity_text": "Make pg_upgrade report all databases with invalid connection settings (Jeevan Ladhe) Previously only the first database with an invalid connection setting was reported.", "commit_aliases": ["26ebb0e28"], "source_commits": ["26ebb0e28"], "source_entry_id": "15.0/changes/116", "db_id": "6787741d23ea986b461bd6110c325993", "patch_ids": ["e9ac5f23cbeb9bf266d75c272eba8d3b"], "statement_hash": "c4181fb2c0730066f38a63ddb3df1b9be379dffe50a765ceda6760ac04da3056", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-b1c720162fd5ae69", "migration": false}, {"id": "15.0-f858474793028829", "cves": [], "html": "<p>\u4f7f <span>pg_upgrade</span> \u4fdd\u7559\u8868\u7a7a\u95f4\u548c\u6570\u636e\u5e93 OID\uff0c\u4ee5\u53ca\u5173\u7cfb\u7684 relfilenode \u7f16\u53f7\uff08Shruthi Gowda\uff0cAntonin Houska\uff09<a href=\"https://postgr.es/c/9a974cbcb\">\u00a7</a> <a href=\"https://postgr.es/c/aa0105141\">\u00a7</a> <a href=\"https://postgr.es/c/4ab5dae94\">\u00a7</a></p>", "text": "\u4f7f pg_upgrade \u4fdd\u7559\u8868\u7a7a\u95f4\u548c\u6570\u636e\u5e93 OID\uff0c\u4ee5\u53ca\u5173\u7cfb\u7684 relfilenode \u7f16\u53f7\uff08Shruthi Gowda\uff0cAntonin Houska\uff09\u00a7 \u00a7 \u00a7", "title": "\u4f7f pg_upgrade \u4fdd\u7559\u8868\u7a7a\u95f4\u548c\u6570\u636e\u5e93 OID\uff0c\u4ee5\u53ca\u5173\u7cfb\u7684 relfilenode \u7f16\u53f7", "commits": ["4ab5dae94", "9a974cbcb", "aa0105141"], "section": "\u670d\u52a1\u5668\u5e94\u7528 / pg_upgrade", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-11", "source_hash": "55014ef5a46f7773353963f45ebaddc16de27b54493ccac301ed098764595c82", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528", "pg_upgrade"], "commit_groups": [["4ab5dae94"], ["9a974cbcb"], ["aa0105141"]], "identity_text": "Make pg_upgrade preserve tablespace and database OIDs, as well as relation relfilenode numbers (Shruthi Gowda, Antonin Houska)", "commit_aliases": ["4ab5dae94", "9a974cbcb", "aa0105141"], "source_commits": ["4ab5dae94", "9a974cbcb", "aa0105141"], "source_entry_id": "15.0/changes/117", "db_id": "6e73d03cb426a621655c14e56efd92db", "patch_ids": ["15f9a8df27b1c3d31088335174d79fb1", "3c64a7720e102ffee6c1831a9206e6d3", "be8d854d1eabafbec049dff84b0d35d0"], "statement_hash": "833ea9cada900fc738d7b071a592d8cf0ea90301b8ec26500732ecd7546a0e96", "relations": [{"rule": 2, "type": "related", "target": "d7d31e84056b5ba44b89e4326e719b92", "evidence": {"same_day": true, "patch_ids": ["3c64a7720e102ffee6c1831a9206e6d3"], "ambiguous_patch_ids": ["3c64a7720e102ffee6c1831a9206e6d3"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-f858474793028829", "migration": false}, {"id": "15.0-003531142a228275", "cves": [], "html": "<p>\u4e3a <span>pg_upgrade</span> \u589e\u52a0 <code>--no-sync</code> \u9009\u9879\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/3d5ffccb6\">\u00a7</a></p>\n<p>\u8fd9\u4ec5\u63a8\u8350\u7528\u4e8e\u6d4b\u8bd5\u3002</p>", "text": "\u4e3a pg_upgrade \u589e\u52a0 --no-sync \u9009\u9879\uff08Michael Paquier\uff09\u00a7 \u8fd9\u4ec5\u63a8\u8350\u7528\u4e8e\u6d4b\u8bd5\u3002", "title": "\u4e3a pg_upgrade \u589e\u52a0 --no-sync \u9009\u9879", "commits": ["3d5ffccb6"], "section": "\u670d\u52a1\u5668\u5e94\u7528 / pg_upgrade", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-11", "source_hash": "2b1a0239652737b3f2ab8484ca69c5f4415bfc2652673e358a8179997d327730", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528", "pg_upgrade"], "commit_groups": [["3d5ffccb6"]], "identity_text": "Add a --no-sync option to pg_upgrade (Michael Paquier) This is recommended only for testing.", "commit_aliases": ["3d5ffccb6"], "source_commits": ["3d5ffccb6"], "source_entry_id": "15.0/changes/118", "db_id": "c6a3476c741134b179a7d3ed70d8df67", "patch_ids": ["284323ec2cdaf81c0fcf5b4bc97a5199"], "statement_hash": "e9c7b1cc2f9e5bf6a6823b2942c624552ca836202f3ebf97c5b4c0e73472083c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-003531142a228275", "migration": false}, {"id": "15.0-4c1f912fe7914ee5", "cves": [], "html": "<p>\u5c06 <span>pg_upgrade</span> \u7684\u652f\u6301\u9650\u5236\u4e3a\u8fd0\u884c <span>PostgreSQL</span> 9.2 \u6216\u66f4\u9ad8\u7248\u672c\u7684\u65e7\u670d\u52a1\u5668\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/e469f0aaf\">\u00a7</a></p>", "text": "\u5c06 pg_upgrade \u7684\u652f\u6301\u9650\u5236\u4e3a\u8fd0\u884c PostgreSQL 9.2 \u6216\u66f4\u9ad8\u7248\u672c\u7684\u65e7\u670d\u52a1\u5668\uff08Tom Lane\uff09\u00a7", "title": "\u5c06 pg_upgrade \u7684\u652f\u6301\u9650\u5236\u4e3a\u8fd0\u884c PostgreSQL 9.2 \u6216\u66f4\u9ad8\u7248\u672c\u7684\u65e7\u670d\u52a1\u5668", "commits": ["e469f0aaf"], "section": "\u670d\u52a1\u5668\u5e94\u7528 / pg_upgrade", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-11", "source_hash": "53fcf0d12902fcbf3217d3fbfe8b543cc754f8426bf91638b8d605cb65fe9e9b", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528", "pg_upgrade"], "commit_groups": [["e469f0aaf"]], "identity_text": "Limit support of pg_upgrade to old servers running PostgreSQL 9.2 or later (Tom Lane)", "commit_aliases": ["e469f0aaf"], "source_commits": ["e469f0aaf"], "source_entry_id": "15.0/changes/119", "db_id": "33107d049c56b67410558d439566e02f", "patch_ids": ["df377b5034f606781b5e3f77c8034edb"], "statement_hash": "a39b0ebbbcf65bd99f1cd77d12f281b4732893503288f9a5d21cedbf98df9f96", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-4c1f912fe7914ee5", "migration": false}, {"id": "15.0-ced4aea26d4d9279", "cves": [], "html": "<p>\u5141\u8bb8\u6309\u5173\u7cfb\u6587\u4ef6\u8282\u70b9\u3001\u5757\u53f7\u3001\u5206\u652f\u7f16\u53f7\u548c\u6574\u9875\u955c\u50cf\u8fc7\u6ee4 <span>pg_waldump</span> \u8f93\u51fa\uff08David Christensen\uff0cThomas Munro\uff09<a href=\"https://postgr.es/c/127aea2a6\">\u00a7</a> <a href=\"https://postgr.es/c/52b556843\">\u00a7</a></p>", "text": "\u5141\u8bb8\u6309\u5173\u7cfb\u6587\u4ef6\u8282\u70b9\u3001\u5757\u53f7\u3001\u5206\u652f\u7f16\u53f7\u548c\u6574\u9875\u955c\u50cf\u8fc7\u6ee4 pg_waldump \u8f93\u51fa\uff08David Christensen\uff0cThomas Munro\uff09\u00a7 \u00a7", "title": "\u5141\u8bb8\u6309\u5173\u7cfb\u6587\u4ef6\u8282\u70b9\u3001\u5757\u53f7\u3001\u5206\u652f\u7f16\u53f7\u548c\u6574\u9875\u955c\u50cf\u8fc7\u6ee4 pg_waldump \u8f93\u51fa", "commits": ["127aea2a6", "52b556843"], "section": "\u670d\u52a1\u5668\u5e94\u7528 / pg_waldump", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-12", "source_hash": "9aca214baa3d68b9f96750d68b91bf5f5cc88263c20c04f31c2a6b917a49e2ce", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528", "pg_waldump"], "commit_groups": [["127aea2a6"], ["52b556843"]], "identity_text": "Allow pg_waldump output to be filtered by relation file node, block number, fork number, and full page images (David Christensen, Thomas Munro)", "commit_aliases": ["127aea2a6", "52b556843"], "source_commits": ["127aea2a6", "52b556843"], "source_entry_id": "15.0/changes/120", "db_id": "130d5aa96a7bb05fb15d51e165e1c1d2", "patch_ids": ["90c63bece8e40327a1f94d63cc7f08f5", "acec1f6fa27aa90fea52711a21bf2037"], "statement_hash": "197a06506bde87bb58febf47d14a43da66afd8498aa5c6d4a6c776ee184909b6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-ced4aea26d4d9279", "migration": false}, {"id": "15.0-017289cf5e618282", "cves": [], "html": "<p>\u4f7f <span>pg_waldump</span> \u5728\u88ab\u4e2d\u65ad\u9000\u51fa\u4e4b\u524d\u62a5\u544a\u7edf\u8ba1\u4fe1\u606f\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/f2c52eeba\">\u00a7</a></p>\n<p>\u4f8b\u5982\uff0c\u5728\u8fd0\u884c <code>pg_waldump --stats --follow</code> \u7684\u7ec8\u7aef\u4e2d\u6309 Ctrl-C \u5c06\u5728\u9000\u51fa\u524d\u62a5\u544a\u5f53\u524d\u7edf\u8ba1\u4fe1\u606f\u3002\u8fd9\u5728 Windows \u4e0a\u4e0d\u8d77\u4f5c\u7528\u3002</p>", "text": "\u4f7f pg_waldump \u5728\u88ab\u4e2d\u65ad\u9000\u51fa\u4e4b\u524d\u62a5\u544a\u7edf\u8ba1\u4fe1\u606f\uff08Bharath Rupireddy\uff09\u00a7 \u4f8b\u5982\uff0c\u5728\u8fd0\u884c pg_waldump --stats --follow \u7684\u7ec8\u7aef\u4e2d\u6309 Ctrl-C \u5c06\u5728\u9000\u51fa\u524d\u62a5\u544a\u5f53\u524d\u7edf\u8ba1\u4fe1\u606f\u3002\u8fd9\u5728 Windows \u4e0a\u4e0d\u8d77\u4f5c\u7528\u3002", "title": "\u4f7f pg_waldump \u5728\u88ab\u4e2d\u65ad\u9000\u51fa\u4e4b\u524d\u62a5\u544a\u7edf\u8ba1\u4fe1\u606f", "commits": ["f2c52eeba"], "section": "\u670d\u52a1\u5668\u5e94\u7528 / pg_waldump", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-12", "source_hash": "d59604bb02f3ef3295f348bb647415d82c0d60de948d064c2ff05e98f79c4a8c", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528", "pg_waldump"], "commit_groups": [["f2c52eeba"]], "identity_text": "Make pg_waldump report statistics before an interrupted exit (Bharath Rupireddy) For example, issuing a control-C in a terminal running pg_waldump --stats --follow will report the current statistics before exiting. This does not work on Windows.", "commit_aliases": ["f2c52eeba"], "source_commits": ["f2c52eeba"], "source_entry_id": "15.0/changes/121", "db_id": "882f7589195f89159151e2dfa847eb79", "patch_ids": ["85719519d5f7e1ffd5a5a41f8de7b9ca"], "statement_hash": "83a00e38a24bd2ac3ca4304258325d2dd660eb57640ac1c8bf07a55f470b0638", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-017289cf5e618282", "migration": false}, {"id": "15.0-1ae11cd012cfdf0a", "cves": [], "html": "<p>\u6539\u8fdb <span>pg_waldump</span> \u62a5\u544a\u7684\u67d0\u4e9b\u4e8b\u52a1 <acronym>WAL</acronym> \u8bb0\u5f55\u7684\u63cf\u8ff0\uff08Masahiko Sawada\uff0cMichael Paquier\uff09<a href=\"https://postgr.es/c/c8b733c4c\">\u00a7</a></p>", "text": "\u6539\u8fdb pg_waldump \u62a5\u544a\u7684\u67d0\u4e9b\u4e8b\u52a1 WAL \u8bb0\u5f55\u7684\u63cf\u8ff0\uff08Masahiko Sawada\uff0cMichael Paquier\uff09\u00a7", "title": "\u6539\u8fdb pg_waldump \u62a5\u544a\u7684\u67d0\u4e9b\u4e8b\u52a1 WAL \u8bb0\u5f55\u7684\u63cf\u8ff0", "commits": ["c8b733c4c"], "section": "\u670d\u52a1\u5668\u5e94\u7528 / pg_waldump", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-12", "source_hash": "d96d0521c97e8084eade6b382bcccd41ed02f52ca00e52aa85af51c16b33e7a4", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528", "pg_waldump"], "commit_groups": [["c8b733c4c"]], "identity_text": "Improve descriptions of some transaction WAL records reported by pg_waldump (Masahiko Sawada, Michael Paquier)", "commit_aliases": ["c8b733c4c"], "source_commits": ["c8b733c4c"], "source_entry_id": "15.0/changes/122", "db_id": "47f6e44800b0661c872df87cd6a210ee", "patch_ids": ["a6cad464993b693ea35a9de828bf4ad3"], "statement_hash": "2d1bf27b3013c7fabbbd7052a15000c9d88c6488a647514dbb2e60aba2ac50b7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-1ae11cd012cfdf0a", "migration": false}, {"id": "15.0-da30090119a641fb", "cves": [], "html": "<p>\u5141\u8bb8 <span>pg_waldump</span> \u8f6c\u50a8\u591a\u4e2a\u8d44\u6e90\u7ba1\u7406\u5668\u7684\u4fe1\u606f\uff08Heikki Linnakangas\uff09<a href=\"https://postgr.es/c/c8bf5098c\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7\u591a\u6b21\u6307\u5b9a <code>--rmgr</code> \u9009\u9879\u6765\u542f\u7528\u3002</p>", "text": "\u5141\u8bb8 pg_waldump \u8f6c\u50a8\u591a\u4e2a\u8d44\u6e90\u7ba1\u7406\u5668\u7684\u4fe1\u606f\uff08Heikki Linnakangas\uff09\u00a7 \u8fd9\u901a\u8fc7\u591a\u6b21\u6307\u5b9a --rmgr \u9009\u9879\u6765\u542f\u7528\u3002", "title": "\u5141\u8bb8 pg_waldump \u8f6c\u50a8\u591a\u4e2a\u8d44\u6e90\u7ba1\u7406\u5668\u7684\u4fe1\u606f", "commits": ["c8bf5098c"], "section": "\u670d\u52a1\u5668\u5e94\u7528 / pg_waldump", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-12", "source_hash": "3c807beac975ff4f68a5b8e0feae43d487d964ade2a4376d8f5da901bc6a6d03", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528", "pg_waldump"], "commit_groups": [["c8bf5098c"]], "identity_text": "Allow pg_waldump to dump information about multiple resource managers (Heikki Linnakangas) This is enabled by specifying the --rmgr option multiple times.", "commit_aliases": ["c8bf5098c"], "source_commits": ["c8bf5098c"], "source_entry_id": "15.0/changes/123", "db_id": "a82c0392ad81d31fcefd4620faf2d556", "patch_ids": ["b15208d7307a80374f451614729c010b"], "statement_hash": "67adc38dbbc23e035d0515b017c68681fe135effdf41f57ff3a8c0db8620a8b6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-da30090119a641fb", "migration": false}, {"id": "15.0-1e4f6b3ee7a30302", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/15/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"\u8868\u00a09.71.\u00a0\u7cfb\u7edf\u76ee\u5f55\u4fe1\u606f\u51fd\u6570\"><code>pg_encoding_to_char()</code></a> \u548c <code>pg_char_to_encoding()</code> \u7684\u6587\u6863\uff08Ian Lawrence Barwick\uff09<a href=\"https://postgr.es/c/f6b5d05ba\">\u00a7</a></p>", "text": "\u589e\u52a0 pg_encoding_to_char() \u548c pg_char_to_encoding() \u7684\u6587\u6863\uff08Ian Lawrence Barwick\uff09\u00a7", "title": "\u589e\u52a0 pg_encoding_to_char() \u548c pg_char_to_encoding() \u7684\u6587\u6863", "commits": ["f6b5d05ba"], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-10", "source_hash": "10ffc3dfa0e17ad542b23beaeedda901e633ed4339795ae0a533529bc656de3e", "section_path": ["\u6587\u6863"], "commit_groups": [["f6b5d05ba"]], "identity_text": "Add documentation for pg_encoding_to_char() and pg_char_to_encoding() (Ian Lawrence Barwick)", "commit_aliases": ["f6b5d05ba"], "source_commits": ["f6b5d05ba"], "source_entry_id": "15.0/changes/124", "db_id": "7302e94e69f9ad54d9f057e84788a04b", "patch_ids": ["dc591f1291d06e2ffb0271f0e334ce38"], "statement_hash": "452275875f2d1dc0b5fb5e6018659b96527bba9cc2b1040cf62af29c010f6ab1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-1e4f6b3ee7a30302", "migration": false}, {"id": "15.0-e04efe3a1f022828", "cves": [], "html": "<p>\u8bb0\u5f55 <a href=\"/docs/15/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"\u8868\u00a09.10.\u00a0\u5176\u4ed6\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>^@</code></a> \u8d77\u59cb\u5339\u914d\u64cd\u4f5c\u7b26\u7684\u6587\u6863\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/2ae5d72f0\">\u00a7</a></p>", "text": "\u8bb0\u5f55 ^@ \u8d77\u59cb\u5339\u914d\u64cd\u4f5c\u7b26\u7684\u6587\u6863\uff08Tom Lane\uff09\u00a7", "title": "\u8bb0\u5f55 ^@ \u8d77\u59cb\u5339\u914d\u64cd\u4f5c\u7b26\u7684\u6587\u6863", "commits": ["2ae5d72f0"], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-10", "source_hash": "9b01598244daa18fad54bc5783457616d9d1ccbf9bd5eb769af9cb877820e21f", "section_path": ["\u6587\u6863"], "commit_groups": [["2ae5d72f0"]], "identity_text": "Document the ^@ starts-with operator (Tom Lane)", "commit_aliases": ["2ae5d72f0"], "source_commits": ["2ae5d72f0"], "source_entry_id": "15.0/changes/125", "db_id": "8345d2a02ccc29beba046b4133e4e339", "patch_ids": ["bac815ce351390624e39c62f3709ae9b"], "statement_hash": "b602dd33b42270abdbbdc7f7afd9fcfb200cf5a7015709acca61eff804aca35c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-e04efe3a1f022828", "migration": false}, {"id": "15.0-33357e5eb52a6e99", "cves": [], "html": "<p>\u589e\u52a0\u4f7f\u7528 cirrus-ci \u8fdb\u884c\u6301\u7eed\u96c6\u6210\u6d4b\u8bd5\u7684\u652f\u6301\uff08Andres Freund\uff0cThomas Munro\uff0cMelanie Plageman\uff09<a href=\"https://postgr.es/c/93d973494\">\u00a7</a></p>", "text": "\u589e\u52a0\u4f7f\u7528 cirrus-ci \u8fdb\u884c\u6301\u7eed\u96c6\u6210\u6d4b\u8bd5\u7684\u652f\u6301\uff08Andres Freund\uff0cThomas Munro\uff0cMelanie Plageman\uff09\u00a7", "title": "\u589e\u52a0\u4f7f\u7528 cirrus-ci \u8fdb\u884c\u6301\u7eed\u96c6\u6210\u6d4b\u8bd5\u7684\u652f\u6301", "commits": ["93d973494"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "f6e8bb06c4e66697d8638265fa0a3ef3cbed13833c69e0b62e62fb9a70cb0714", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["93d973494"]], "identity_text": "Add support for continuous integration testing using cirrus-ci (Andres Freund, Thomas Munro, Melanie Plageman)", "commit_aliases": ["93d973494"], "source_commits": ["93d973494"], "source_entry_id": "15.0/changes/126", "db_id": "e8688e86b76bb1c6ac29760de73da956", "patch_ids": ["91ff85032b6c78fa5a06a8253f8c5525"], "statement_hash": "92fa27fae0b26f8d9f986d38c4faa05fa3521e3b0421dd63d6e4966b19a6f0f9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-33357e5eb52a6e99", "migration": false}, {"id": "15.0-ffca6ec14cc1d78e", "cves": [], "html": "<p>\u589e\u52a0\u914d\u7f6e\u9009\u9879 <a href=\"/docs/15/install-procedure.html#CONFIGURE-OPTIONS-FEATURES\" title=\"17.4.1.2.\u00a0PostgreSQL \u7279\u6027\"><code>--with-zstd</code></a> \u4ee5\u542f\u7528 Zstandard \u6784\u5efa\uff08Jeevan Ladhe\uff0cRobert Haas\uff0cMichael Paquier\uff09<a href=\"https://postgr.es/c/6c417bbcc\">\u00a7</a></p>", "text": "\u589e\u52a0\u914d\u7f6e\u9009\u9879 --with-zstd \u4ee5\u542f\u7528 Zstandard \u6784\u5efa\uff08Jeevan Ladhe\uff0cRobert Haas\uff0cMichael Paquier\uff09\u00a7", "title": "\u589e\u52a0\u914d\u7f6e\u9009\u9879 --with-zstd \u4ee5\u542f\u7528 Zstandard \u6784\u5efa", "commits": ["6c417bbcc"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "f272284a7e5d0e56c5b2851401d7458e2ed446d22981f237ebc1f751f6983109", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["6c417bbcc"]], "identity_text": "Add configure option --with-zstd to enable Zstandard builds (Jeevan Ladhe, Robert Haas, Michael Paquier)", "commit_aliases": ["6c417bbcc"], "source_commits": ["6c417bbcc"], "source_entry_id": "15.0/changes/127", "db_id": "a440ee7884305ecec06488475dfe26a3", "patch_ids": ["a0744cf8ab240771d542374e1171a427"], "statement_hash": "d75e7adc8239abc7f7298b00abe23564a09c2d4a0800183f65a08e77e40355d3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-ffca6ec14cc1d78e", "migration": false}, {"id": "15.0-e31d209fdbfb63f5", "cves": [], "html": "<p>\u5728\u53ef\u52a0\u8f7d\u5e93\u7684\u9b54\u672f\u5757\u4e2d\u589e\u52a0 ABI \u6807\u8bc6\u7b26\u5b57\u6bb5\uff0c\u5141\u8bb8\u975e\u793e\u533a <span>PostgreSQL</span> \u53d1\u884c\u7248\u8bc6\u522b\u4e0e\u5176\u4ed6\u6784\u5efa\u4e0d\u517c\u5bb9\u7684\u5e93\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/d6d1dfcc9\">\u00a7</a></p>\n<p>ABI \u5b57\u6bb5\u4e0d\u5339\u914d\u5c06\u5728\u52a0\u8f7d\u65f6\u751f\u6210\u9519\u8bef\u3002</p>", "text": "\u5728\u53ef\u52a0\u8f7d\u5e93\u7684\u9b54\u672f\u5757\u4e2d\u589e\u52a0 ABI \u6807\u8bc6\u7b26\u5b57\u6bb5\uff0c\u5141\u8bb8\u975e\u793e\u533a PostgreSQL \u53d1\u884c\u7248\u8bc6\u522b\u4e0e\u5176\u4ed6\u6784\u5efa\u4e0d\u517c\u5bb9\u7684\u5e93\uff08Peter Eisentraut\uff09\u00a7 ABI \u5b57\u6bb5\u4e0d\u5339\u914d\u5c06\u5728\u52a0\u8f7d\u65f6\u751f\u6210\u9519\u8bef\u3002", "title": "\u5728\u53ef\u52a0\u8f7d\u5e93\u7684\u9b54\u672f\u5757\u4e2d\u589e\u52a0 ABI \u6807\u8bc6\u7b26\u5b57\u6bb5\uff0c\u5141\u8bb8\u975e\u793e\u533a PostgreSQL \u53d1\u884c\u7248\u8bc6\u522b\u4e0e\u5176\u4ed6\u6784\u5efa\u4e0d\u517c\u5bb9\u7684\u5e93", "commits": ["d6d1dfcc9"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "53b3145bc2cb72f5031adcb4a9b3068d9c2a5a7fb6a97a59e81d72818f7bd356", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["d6d1dfcc9"]], "identity_text": "Add an ABI identifier field to the magic block in loadable libraries, allowing non-community PostgreSQL distributions to identify libraries that are not compatible with other builds (Peter Eisentraut) An ABI field mismatch will generate an error at load time.", "commit_aliases": ["d6d1dfcc9"], "source_commits": ["d6d1dfcc9"], "source_entry_id": "15.0/changes/128", "db_id": "a83dc5a7db7076b0cf90fac59bc7bab0", "patch_ids": ["891553385160124cd93eafed0f4ec024"], "statement_hash": "6141177cdbb9094c500e3f9c45743e6e8fc01b4a2c9b83f4f61b0cf0a589cdc3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-e31d209fdbfb63f5", "migration": false}, {"id": "15.0-91be796df9183d68", "cves": [], "html": "<p>\u4e3a <code>\"char\"</code> \u521b\u5efa\u65b0\u7684 <a href=\"/docs/15/catalog-pg-type.html\" title=\"53.64.\u00a0pg_type\"><code>pg_type.typcategory</code></a> \u503c\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/07eee5a0d\">\u00a7</a></p>\n<p>\u4e00\u4e9b\u5176\u4ed6\u4ec5\u4f9b\u5185\u90e8\u4f7f\u7528\u7684\u7c7b\u578b\u4e5f\u5df2\u88ab\u5206\u914d\u5230\u6b64\u7c7b\u522b\u3002</p>", "text": "\u4e3a \"char\" \u521b\u5efa\u65b0\u7684 pg_type.typcategory \u503c\uff08Tom Lane\uff09\u00a7 \u4e00\u4e9b\u5176\u4ed6\u4ec5\u4f9b\u5185\u90e8\u4f7f\u7528\u7684\u7c7b\u578b\u4e5f\u5df2\u88ab\u5206\u914d\u5230\u6b64\u7c7b\u522b\u3002", "title": "\u4e3a \"char\" \u521b\u5efa\u65b0\u7684 pg_type.typcategory \u503c", "commits": ["07eee5a0d"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "4b43dcb1b5376dc6d4c3ac33ef7ad7d599cafb777a78790f12f5e0874bdfc500", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["07eee5a0d"]], "identity_text": "Create a new pg_type.typcategory value for \"char\" (Tom Lane) Some other internal-use-only types have also been assigned to this category.", "commit_aliases": ["07eee5a0d"], "source_commits": ["07eee5a0d"], "source_entry_id": "15.0/changes/129", "db_id": "780b534a5dc60b7fadf4b4c7620efddf", "patch_ids": ["a4538ef262745ad877d231679964ab19"], "statement_hash": "f9db919015c9b5b41e40fade57d9a716495c39390f53a7dc7691b995008249b8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-91be796df9183d68", "migration": false}, {"id": "15.0-c8520b5cf0073a51", "cves": [], "html": "<p>\u589e\u52a0\u65b0\u7684\u534f\u8bae\u6d88\u606f <a href=\"/docs/15/protocol-replication.html#PROTOCOL-REPLICATION-BASE-BACKUP\"><code>TARGET</code></a> \u4ee5\u6307\u5b9a\u7528\u4e8e\u57fa\u7840\u5907\u4efd\u7684\u65b0 <code>COPY</code> \u65b9\u6cd5\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/cc333f323\">\u00a7</a></p>\n<p><a href=\"/docs/15/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a> \u73b0\u5728\u4f7f\u7528\u6b64\u65b9\u6cd5\u3002</p>", "text": "\u589e\u52a0\u65b0\u7684\u534f\u8bae\u6d88\u606f TARGET \u4ee5\u6307\u5b9a\u7528\u4e8e\u57fa\u7840\u5907\u4efd\u7684\u65b0 COPY \u65b9\u6cd5\uff08Robert Haas\uff09\u00a7 pg_basebackup \u73b0\u5728\u4f7f\u7528\u6b64\u65b9\u6cd5\u3002", "title": "\u589e\u52a0\u65b0\u7684\u534f\u8bae\u6d88\u606f TARGET \u4ee5\u6307\u5b9a\u7528\u4e8e\u57fa\u7840\u5907\u4efd\u7684\u65b0 COPY \u65b9\u6cd5", "commits": ["cc333f323"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "dfb40e1cd80184d17adaae254efca5b5568c03c43969c9a8f3373ae85c1d4d71", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["cc333f323"]], "identity_text": "Add new protocol message TARGET to specify a new COPY method to be used for base backups (Robert Haas) pg_basebackup now uses this method.", "commit_aliases": ["cc333f323"], "source_commits": ["cc333f323"], "source_entry_id": "15.0/changes/130", "db_id": "ec7b469226fec96e653f7bedd9c7a8d6", "patch_ids": ["786d8548fb2356eacf6b6eaa8b758721"], "statement_hash": "b94c888c21f336ce8ef2e24a72e92c579556f394672319fe9af731c6e0eeb5c6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-c8520b5cf0073a51", "migration": false}, {"id": "15.0-ae05197d6ebf5186", "cves": [], "html": "<p>\u589e\u52a0\u65b0\u7684\u534f\u8bae\u6d88\u606f <a href=\"/docs/15/protocol-replication.html#PROTOCOL-REPLICATION-BASE-BACKUP\"><code>COMPRESSION</code></a> \u548c <code>COMPRESSION_DETAIL</code> \u4ee5\u6307\u5b9a\u538b\u7f29\u65b9\u6cd5\u548c\u9009\u9879\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/0ad803291\">\u00a7</a> <a href=\"https://postgr.es/c/ffd53659c\">\u00a7</a></p>", "text": "\u589e\u52a0\u65b0\u7684\u534f\u8bae\u6d88\u606f COMPRESSION \u548c COMPRESSION_DETAIL \u4ee5\u6307\u5b9a\u538b\u7f29\u65b9\u6cd5\u548c\u9009\u9879\uff08Robert Haas\uff09\u00a7 \u00a7", "title": "\u589e\u52a0\u65b0\u7684\u534f\u8bae\u6d88\u606f COMPRESSION \u548c COMPRESSION_DETAIL \u4ee5\u6307\u5b9a\u538b\u7f29\u65b9\u6cd5\u548c\u9009\u9879", "commits": ["0ad803291", "ffd53659c"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "b86a493f3696d078073518b283fdffa819c5038b164bf26fd1aee5adda0b07ef", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["0ad803291"], ["ffd53659c"]], "identity_text": "Add new protocol message COMPRESSION and COMPRESSION_DETAIL to specify the compression method and options (Robert Haas)", "commit_aliases": ["0ad803291", "ffd53659c"], "source_commits": ["0ad803291", "ffd53659c"], "source_entry_id": "15.0/changes/131", "db_id": "4b98edf22f81dc56d4e110ca35c7093b", "patch_ids": ["01a1678aed32ecbaaacd14945c5e9a5e", "df970c275b164d4974b6006d7d27b907"], "statement_hash": "efff5e2d9e526d15168dd24d6331ebc4575489cc74149e42da585e817d537468", "relations": [{"rule": 2, "type": "related", "target": "a0c3ea9a34f7191acb55d64cb8b67b8d", "evidence": {"same_day": true, "patch_ids": ["df970c275b164d4974b6006d7d27b907"], "ambiguous_patch_ids": ["a06a70c3b6de9ee81579ac5e3897ff6c", "df970c275b164d4974b6006d7d27b907"]}}, {"rule": 2, "type": "related", "target": "e09894bd0365f4aac86b659f7cdb619e", "evidence": {"same_day": true, "patch_ids": ["df970c275b164d4974b6006d7d27b907"], "ambiguous_patch_ids": ["df970c275b164d4974b6006d7d27b907"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-ae05197d6ebf5186", "migration": false}, {"id": "15.0-5bccb34f1275d357", "cves": [], "html": "<p>\u79fb\u9664\u670d\u52a1\u5668\u5bf9\u65e7\u7684 <code>BASE_BACKUP</code> \u547d\u4ee4\u8bed\u6cd5\u548c\u57fa\u7840\u5907\u4efd\u534f\u8bae\u7684\u652f\u6301\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/9cd28c2e5\">\u00a7</a> <a href=\"https://postgr.es/c/0d4513b61\">\u00a7</a></p>", "text": "\u79fb\u9664\u670d\u52a1\u5668\u5bf9\u65e7\u7684 BASE_BACKUP \u547d\u4ee4\u8bed\u6cd5\u548c\u57fa\u7840\u5907\u4efd\u534f\u8bae\u7684\u652f\u6301\uff08Robert Haas\uff09\u00a7 \u00a7", "title": "\u79fb\u9664\u670d\u52a1\u5668\u5bf9\u65e7\u7684 BASE_BACKUP \u547d\u4ee4\u8bed\u6cd5\u548c\u57fa\u7840\u5907\u4efd\u534f\u8bae\u7684\u652f\u6301", "commits": ["0d4513b61", "9cd28c2e5"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "5f124123d89c1538dbfb41673687e24f6a6468f3d1bcd955f6b9a90ab440b2e9", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["0d4513b61"], ["9cd28c2e5"]], "identity_text": "Remove server support for old BASE_BACKUP command syntax and base backup protocol (Robert Haas)", "commit_aliases": ["0d4513b61", "9cd28c2e5"], "source_commits": ["0d4513b61", "9cd28c2e5"], "source_entry_id": "15.0/changes/132", "db_id": "f62f736ba1b69cdcb0a26f2bd5b6dc2c", "patch_ids": ["5c222a1f63c3195e29541f0afb7dd2c6", "be7239518049bdcf230674718b93d1cd"], "statement_hash": "3b2876fef0bb6d1b432217f18b8cd2951eb831b3bc7c968d79a7c8f13a5fec48", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-5bccb34f1275d357", "migration": false}, {"id": "15.0-e3175b1ca184d017", "cves": [], "html": "<p>\u589e\u52a0\u6269\u5c55\u8bbe\u7f6e\u81ea\u5b9a\u4e49\u5907\u4efd\u76ee\u6807\u7684\u652f\u6301\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/e4ba69f3f\">\u00a7</a></p>", "text": "\u589e\u52a0\u6269\u5c55\u8bbe\u7f6e\u81ea\u5b9a\u4e49\u5907\u4efd\u76ee\u6807\u7684\u652f\u6301\uff08Robert Haas\uff09\u00a7", "title": "\u589e\u52a0\u6269\u5c55\u8bbe\u7f6e\u81ea\u5b9a\u4e49\u5907\u4efd\u76ee\u6807\u7684\u652f\u6301", "commits": ["e4ba69f3f"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "e34c77deb37e3aebe5bda704ed54282f5cb2e572c9f4f6650137be200e57194b", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["e4ba69f3f"]], "identity_text": "Add support for extensions to set custom backup targets (Robert Haas)", "commit_aliases": ["e4ba69f3f"], "source_commits": ["e4ba69f3f"], "source_entry_id": "15.0/changes/133", "db_id": "b6452ed2733bfc2eeea0c9fc393c43c9", "patch_ids": ["3b82072929fe8436084822606a801bbd"], "statement_hash": "197289cba226aec031812f4c6e00ad4ad2434a253916a7a2b76417fc6eb6697e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-e3175b1ca184d017", "migration": false}, {"id": "15.0-f67b5a867d80c8c3", "cves": [], "html": "<p>\u5141\u8bb8\u6269\u5c55\u5b9a\u4e49\u81ea\u5b9a\u4e49 <acronym>WAL</acronym> \u8d44\u6e90\u7ba1\u7406\u5668\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/5c279a6d3\">\u00a7</a></p>", "text": "\u5141\u8bb8\u6269\u5c55\u5b9a\u4e49\u81ea\u5b9a\u4e49 WAL \u8d44\u6e90\u7ba1\u7406\u5668\uff08Jeff Davis\uff09\u00a7", "title": "\u5141\u8bb8\u6269\u5c55\u5b9a\u4e49\u81ea\u5b9a\u4e49 WAL \u8d44\u6e90\u7ba1\u7406\u5668", "commits": ["5c279a6d3"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "971c626991b66b5ebba09d94d5f1eb66e288106f2546a8197860d19b7c319852", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["5c279a6d3"]], "identity_text": "Allow extensions to define custom WAL resource managers (Jeff Davis)", "commit_aliases": ["5c279a6d3"], "source_commits": ["5c279a6d3"], "source_entry_id": "15.0/changes/134", "db_id": "801cc6942546c9bd68ce33599f3f5c98", "patch_ids": ["5b2e7f7400a826a8674f2992cc14e9cf"], "statement_hash": "70df27ecb72eb6c2959ccdcb8709135e853495c1398e6f6bea05a64849cb08ed", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-f67b5a867d80c8c3", "migration": false}, {"id": "15.0-3fcd3b63755ca870", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/15/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"\u8868\u00a09.71.\u00a0\u7cfb\u7edf\u76ee\u5f55\u4fe1\u606f\u51fd\u6570\"><code>pg_settings_get_flags()</code></a> \u4ee5\u83b7\u53d6\u670d\u52a1\u5668\u53d8\u91cf\u7684\u6807\u5fd7\uff08Justin Pryzby\uff09<a href=\"https://postgr.es/c/d10e41d42\">\u00a7</a></p>", "text": "\u589e\u52a0\u51fd\u6570 pg_settings_get_flags() \u4ee5\u83b7\u53d6\u670d\u52a1\u5668\u53d8\u91cf\u7684\u6807\u5fd7\uff08Justin Pryzby\uff09\u00a7", "title": "\u589e\u52a0\u51fd\u6570 pg_settings_get_flags() \u4ee5\u83b7\u53d6\u670d\u52a1\u5668\u53d8\u91cf\u7684\u6807\u5fd7", "commits": ["d10e41d42"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "83649557662c3b5e9a18fc9979b5be9c04fd9e967ccbf74085bbde108d9dfcdc", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["d10e41d42"]], "identity_text": "Add function pg_settings_get_flags() to get the flags of server variables (Justin Pryzby)", "commit_aliases": ["d10e41d42"], "source_commits": ["d10e41d42"], "source_entry_id": "15.0/changes/135", "db_id": "4ec84842f595559c0e15dd49469dd804", "patch_ids": ["5edb04ab887c15bbaac1568aca7470eb"], "statement_hash": "3af191e46c396222067a87b8bbb956d6b149833fba8d28c527066a88bb3155dd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-3fcd3b63755ca870", "migration": false}, {"id": "15.0-88143a9514acbd14", "cves": [], "html": "<p>\u5728 Windows \u4e0a\uff0c\u4f7f\u7528 <code>PGDLLIMPORT</code> \u6807\u8bb0\u5bfc\u51fa\u670d\u52a1\u5668\u7684\u6240\u6709\u5168\u5c40\u53d8\u91cf\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/8ec569479\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u5728 Windows \u4e0a\u53ea\u6709\u7279\u5b9a\u53d8\u91cf\u53ef\u4f9b\u6269\u5c55\u8bbf\u95ee\u3002</p>", "text": "\u5728 Windows \u4e0a\uff0c\u4f7f\u7528 PGDLLIMPORT \u6807\u8bb0\u5bfc\u51fa\u670d\u52a1\u5668\u7684\u6240\u6709\u5168\u5c40\u53d8\u91cf\uff08Robert Haas\uff09\u00a7 \u4ee5\u524d\uff0c\u5728 Windows \u4e0a\u53ea\u6709\u7279\u5b9a\u53d8\u91cf\u53ef\u4f9b\u6269\u5c55\u8bbf\u95ee\u3002", "title": "\u5728 Windows \u4e0a\uff0c\u4f7f\u7528 PGDLLIMPORT \u6807\u8bb0\u5bfc\u51fa\u670d\u52a1\u5668\u7684\u6240\u6709\u5168\u5c40\u53d8\u91cf", "commits": ["8ec569479"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "5bb3e861bed4b7ae1262ca818d3be7c32ea0c20337762327669893e8b0fb4592", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["8ec569479"]], "identity_text": "On Windows, export all the server's global variables using PGDLLIMPORT markers (Robert Haas) Previously, only specific variables were accessible to extensions on Windows.", "commit_aliases": ["8ec569479"], "source_commits": ["8ec569479"], "source_entry_id": "15.0/changes/136", "db_id": "ec44f1b9cdc215db62feef4e5af8e622", "patch_ids": ["ef6fe9f73ccf9f76af9ed4a36debdd03"], "statement_hash": "f8de50f4e4c2d77e510e63303d81dfb48bef2a424817015647e8e80c4541ee32", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-88143a9514acbd14", "migration": false}, {"id": "15.0-d063a7fb2d7b3a68", "cves": [], "html": "<p>\u6784\u5efa <span>PostgreSQL</span> \u9700\u8981 GNU <span>make</span> 3.81 \u6216\u66f4\u9ad8\u7248\u672c\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/3b474a2e6\">\u00a7</a></p>", "text": "\u6784\u5efa PostgreSQL \u9700\u8981 GNU make 3.81 \u6216\u66f4\u9ad8\u7248\u672c\uff08Tom Lane\uff09\u00a7", "title": "\u6784\u5efa PostgreSQL \u9700\u8981 GNU make 3.81 \u6216\u66f4\u9ad8\u7248\u672c", "commits": ["3b474a2e6"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "0f605f5a0a8373f6b029528c63444ce4429a69d3d78c3b6058a50f2d7ac2c568", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["3b474a2e6"]], "identity_text": "Require GNU make version 3.81 or later to build PostgreSQL (Tom Lane)", "commit_aliases": ["3b474a2e6"], "source_commits": ["3b474a2e6"], "source_entry_id": "15.0/changes/137", "db_id": "5c311510d5a907d41c5dc3cd88529561", "patch_ids": ["9adb6d941ef461d336acc87bea9594c0"], "statement_hash": "e8d0c7eb465c7f2abe0f47a9cbd7ead9bf33c2794e776662ec44707dda345292", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-d063a7fb2d7b3a68", "migration": false}, {"id": "15.0-93767339b51f03cc", "cves": [], "html": "<p>\u6784\u5efa<a href=\"/docs/15/pgcrypto.html\" title=\"F.28.\u00a0pgcrypto\"><span>pgcrypto</span></a>\u6269\u5c55\u9700\u8981 OpenSSL\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/db7d1a7b0\">\u00a7</a></p>", "text": "\u6784\u5efapgcrypto\u6269\u5c55\u9700\u8981 OpenSSL\uff08Peter Eisentraut\uff09\u00a7", "title": "\u6784\u5efapgcrypto\u6269\u5c55\u9700\u8981 OpenSSL", "commits": ["db7d1a7b0"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "4c4df02f2842efb6171bc34e20d3307f8bf6dfe56ed4335283309e67686e288d", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["db7d1a7b0"]], "identity_text": "Require OpenSSL to build the pgcrypto extension (Peter Eisentraut)", "commit_aliases": ["db7d1a7b0"], "source_commits": ["db7d1a7b0"], "source_entry_id": "15.0/changes/138", "db_id": "4672a954f72057860c018d53b8436bd6", "patch_ids": ["140f82b8abd3611eb94fbe1b8d680f70"], "statement_hash": "04bb30e4a183193b1a2234af380ad67e87e2aaa60670c74546bf473a30a4ea47", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-93767339b51f03cc", "migration": false}, {"id": "15.0-d8a32d7644f0a3f2", "cves": [], "html": "<p>\u9700\u8981 <span>Perl</span> 5.8.3 \u6216\u66f4\u9ad8\u7248\u672c\uff08Dagfinn Ilmari Manns\u00e5ker\uff09<a href=\"https://postgr.es/c/92e6a98c3\">\u00a7</a></p>", "text": "\u9700\u8981 Perl 5.8.3 \u6216\u66f4\u9ad8\u7248\u672c\uff08Dagfinn Ilmari Manns\u00e5ker\uff09\u00a7", "title": "\u9700\u8981 Perl 5.8.3 \u6216\u66f4\u9ad8\u7248\u672c", "commits": ["92e6a98c3"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "32f7dec0355a6be28c4354480f1b8eed1843a76e974827de70359ca8f613a21e", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["92e6a98c3"]], "identity_text": "Require Perl version 5.8.3 or later (Dagfinn Ilmari Manns\u00e5ker)", "commit_aliases": ["92e6a98c3"], "source_commits": ["92e6a98c3"], "source_entry_id": "15.0/changes/139", "db_id": "c73aff6a39e19bea4298bd36a4bfbc22", "patch_ids": ["cee024f0dd9df9fbd3d15027848593f5"], "statement_hash": "8aa948656af33e33453f25613c9c29196b7ead9a36d4015bd1718cc0f4ce055f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-d8a32d7644f0a3f2", "migration": false}, {"id": "15.0-2d4588f68e1e65d7", "cves": [], "html": "<p>\u9700\u8981 <span>Python</span> 3.2 \u6216\u66f4\u9ad8\u7248\u672c\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/19252e8ec\">\u00a7</a></p>", "text": "\u9700\u8981 Python 3.2 \u6216\u66f4\u9ad8\u7248\u672c\uff08Andres Freund\uff09\u00a7", "title": "\u9700\u8981 Python 3.2 \u6216\u66f4\u9ad8\u7248\u672c", "commits": ["19252e8ec"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-11", "source_hash": "6c15321bcd7ed2dfff0c91df7e3736a9f8a94c1a13be087fd1de98f68240873d", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["19252e8ec"]], "identity_text": "Require Python version 3.2 or later (Andres Freund)", "commit_aliases": ["19252e8ec"], "source_commits": ["19252e8ec"], "source_entry_id": "15.0/changes/140", "db_id": "b4383050c297d73c79cf2c99a35dfa0a", "patch_ids": ["6904498c2e2bc4f1ebc88a5bef09e0c0"], "statement_hash": "adfb4d795744879a1f16945b37356c8730cdaadb1db4f319593d3a131b836668", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-2d4588f68e1e65d7", "migration": false}, {"id": "15.0-3e6f73422742eb40", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/15/amcheck.html\" title=\"F.2.\u00a0amcheck\"><span>amcheck</span></a>\u68c0\u67e5\u5e8f\u5217\uff08Mark Dilger\uff09<a href=\"https://postgr.es/c/c3b011d99\">\u00a7</a></p>", "text": "\u5141\u8bb8amcheck\u68c0\u67e5\u5e8f\u5217\uff08Mark Dilger\uff09\u00a7", "title": "\u5141\u8bb8amcheck\u68c0\u67e5\u5e8f\u5217", "commits": ["c3b011d99"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-12", "source_hash": "8f59fa492b64702666106d3d404853dd07a2996430d6f55450d3241d44e34dd8", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["c3b011d99"]], "identity_text": "Allow amcheck to check sequences (Mark Dilger)", "commit_aliases": ["c3b011d99"], "source_commits": ["c3b011d99"], "source_entry_id": "15.0/changes/141", "db_id": "e636ceec12688e67b12dcc315ee759cb", "patch_ids": ["91026746ab2372c0da1e02de738fc59c"], "statement_hash": "fce9095c50e21b1463fbc2b0c70e54a2f3464a76a74b2375f70dc8c494daabe0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-3e6f73422742eb40", "migration": false}, {"id": "15.0-f1aee6ff81394092", "cves": [], "html": "<p>\u6539\u8fdb <span>amcheck</span> \u5bf9 <acronym>TOAST</acronym> \u8868\u7684\u5b8c\u6574\u6027\u68c0\u67e5\uff08Mark Dilger\uff09<a href=\"https://postgr.es/c/bd807be69\">\u00a7</a></p>", "text": "\u6539\u8fdb amcheck \u5bf9 TOAST \u8868\u7684\u5b8c\u6574\u6027\u68c0\u67e5\uff08Mark Dilger\uff09\u00a7", "title": "\u6539\u8fdb amcheck \u5bf9 TOAST \u8868\u7684\u5b8c\u6574\u6027\u68c0\u67e5", "commits": ["bd807be69"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-12", "source_hash": "55aa3a44f0d498f411f2d6d5aee79e6fb3a08ea3b620da3d50e4b066ee707c88", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["bd807be69"]], "identity_text": "Improve amcheck sanity checks for TOAST tables (Mark Dilger)", "commit_aliases": ["bd807be69"], "source_commits": ["bd807be69"], "source_entry_id": "15.0/changes/142", "db_id": "dc7eb21055a6cd8fa5156b9275b5ef23", "patch_ids": ["eb7c3c69548c18f54869447218ccf7b3"], "statement_hash": "c81a31cef8f1dad0bfaf805b1cb93bdd4ac744c625573f975d8606055a19e338", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-f1aee6ff81394092", "migration": false}, {"id": "15.0-b0efc06fff462cae", "cves": [], "html": "<p>\u589e\u52a0\u65b0\u6a21\u5757 <span><a href=\"/docs/15/basebackup-to-shell.html\" title=\"F.5.\u00a0basebackup_to_shell\">basebackup_to_shell</a></span> \u4f5c\u4e3a\u81ea\u5b9a\u4e49\u5907\u4efd\u76ee\u6807\u7684\u793a\u4f8b\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/c6306db24\">\u00a7</a> <a href=\"https://postgr.es/c/26a0c025e\">\u00a7</a></p>", "text": "\u589e\u52a0\u65b0\u6a21\u5757 basebackup_to_shell \u4f5c\u4e3a\u81ea\u5b9a\u4e49\u5907\u4efd\u76ee\u6807\u7684\u793a\u4f8b\uff08Robert Haas\uff09\u00a7 \u00a7", "title": "\u589e\u52a0\u65b0\u6a21\u5757 basebackup_to_shell \u4f5c\u4e3a\u81ea\u5b9a\u4e49\u5907\u4efd\u76ee\u6807\u7684\u793a\u4f8b", "commits": ["26a0c025e", "c6306db24"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-12", "source_hash": "ceb5af1b52d4319aadeb96fc2cc39c438977c5e770e31b8a302272f58e8431c5", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["26a0c025e"], ["c6306db24"]], "identity_text": "Add new module basebackup_to_shell as an example of a custom backup target (Robert Haas)", "commit_aliases": ["26a0c025e", "c6306db24"], "source_commits": ["26a0c025e", "c6306db24"], "source_entry_id": "15.0/changes/143", "db_id": "74177e8bf8a11f2c5772e52b980510ed", "patch_ids": ["1a99cd6ff67549d7b5977fa4a868b7cd", "aee3ec2a25182d4b039ad87ca6aaa492"], "statement_hash": "1b08dce07cb0d23f1e29521ead10206752c7bfaf2a3e2bc1e2ea7f8d6f815d88", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-b0efc06fff462cae", "migration": false}, {"id": "15.0-d5f2bf26ffd41a76", "cves": [], "html": "<p>\u589e\u52a0\u65b0\u6a21\u5757<a href=\"/docs/15/basic-archive.html\" title=\"F.6.\u00a0basic_archive\"><span>basic_archive</span></a>\u4f5c\u4e3a\u901a\u8fc7\u5e93\u6267\u884c\u5f52\u6863\u7684\u793a\u4f8b\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/5ef1eefd7\">\u00a7</a></p>", "text": "\u589e\u52a0\u65b0\u6a21\u5757basic_archive\u4f5c\u4e3a\u901a\u8fc7\u5e93\u6267\u884c\u5f52\u6863\u7684\u793a\u4f8b\uff08Nathan Bossart\uff09\u00a7", "title": "\u589e\u52a0\u65b0\u6a21\u5757basic_archive\u4f5c\u4e3a\u901a\u8fc7\u5e93\u6267\u884c\u5f52\u6863\u7684\u793a\u4f8b", "commits": ["5ef1eefd7"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-12", "source_hash": "42b8fb6abb6d75893c04111dd4a83fef2f312ba35aa2bab6f06d42c63a212d35", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["5ef1eefd7"]], "identity_text": "Add new module basic_archive as an example of performing archiving via a library (Nathan Bossart)", "commit_aliases": ["5ef1eefd7"], "source_commits": ["5ef1eefd7"], "source_entry_id": "15.0/changes/144", "db_id": "79fac0353beb1cbfa1395b60c57af992", "patch_ids": ["fefb75cad2e75b8bf33474a9f9894b08"], "statement_hash": "b95156d41dc2d7ff484bda56f7f131cbb79d3cd03eb4bb2292d4c74310ea3ad1", "relations": [{"rule": 2, "type": "related", "target": "c1312471a0873e36c0bdaeb6b052f1c3", "evidence": {"same_day": true, "patch_ids": ["fefb75cad2e75b8bf33474a9f9894b08"], "ambiguous_patch_ids": ["fefb75cad2e75b8bf33474a9f9894b08"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-d5f2bf26ffd41a76", "migration": false}, {"id": "15.0-dff5babe22f85fb3", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u5e03\u5c14\u5217\u4e0a\u521b\u5efa<a href=\"/docs/15/btree-gist.html\" title=\"F.9.\u00a0btree_gist\"><span>btree_gist</span></a>\u7d22\u5f15\uff08Emre Hasegeli\uff09<a href=\"https://postgr.es/c/57e3c5160\">\u00a7</a> <a href=\"https://postgr.es/c/e2fbb8837\">\u00a7</a> <a href=\"https://postgr.es/c/4c6145b51\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u53ef\u4ee5\u7528\u4e8e\u6392\u9664\u7ea6\u675f\u3002</p>", "text": "\u5141\u8bb8\u5728\u5e03\u5c14\u5217\u4e0a\u521b\u5efabtree_gist\u7d22\u5f15\uff08Emre Hasegeli\uff09\u00a7 \u00a7 \u00a7 \u8fd9\u4e9b\u53ef\u4ee5\u7528\u4e8e\u6392\u9664\u7ea6\u675f\u3002", "title": "\u5141\u8bb8\u5728\u5e03\u5c14\u5217\u4e0a\u521b\u5efabtree_gist\u7d22\u5f15", "commits": ["4c6145b51", "57e3c5160", "e2fbb8837"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-12", "source_hash": "6cf8d54f6a5d3f3d4b848f94db7321abaf1b3a1d03f16b716c18fb2cc82ef660", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["4c6145b51"], ["57e3c5160"], ["e2fbb8837"]], "identity_text": "Allow btree_gist indexes on boolean columns (Emre Hasegeli) These can be used for exclusion constraints.", "commit_aliases": ["4c6145b51", "57e3c5160", "e2fbb8837"], "source_commits": ["4c6145b51", "57e3c5160", "e2fbb8837"], "source_entry_id": "15.0/changes/145", "db_id": "b7cf008fb320e2f2bf060d44c89f77f8", "patch_ids": ["3e0cb9893f35db3e5d391953a6dbd534", "8eba70ef25d8ea791936ecfbcc97c6cb", "e5c8f3bea9d930ecd93bc4cfa011acb3"], "statement_hash": "7c9282894cba14f78369cbebedcb71903431e1f0eefc6652b052733c94db663f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-dff5babe22f85fb3", "migration": false}, {"id": "15.0-2a740d86df56d854", "cves": [], "html": "<p>\u4fee\u590d<a href=\"/docs/15/pageinspect.html\" title=\"F.25.\u00a0pageinspect\"><span>pageinspect</span></a>\u7684 <code>page_header()</code> \u4ee5\u5904\u7406 32KB \u9875\u9762\u5927\u5c0f\uff08Quan Zongliang\uff09<a href=\"https://postgr.es/c/127404fbe\">\u00a7</a></p>\n<p>\u4ee5\u524d\uff0c\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\u53ef\u80fd\u8fd4\u56de\u4e0d\u6b63\u786e\u7684\u8d1f\u503c\u3002</p>", "text": "\u4fee\u590dpageinspect\u7684 page_header() \u4ee5\u5904\u7406 32KB \u9875\u9762\u5927\u5c0f\uff08Quan Zongliang\uff09\u00a7 \u4ee5\u524d\uff0c\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\u53ef\u80fd\u8fd4\u56de\u4e0d\u6b63\u786e\u7684\u8d1f\u503c\u3002", "title": "\u4fee\u590dpageinspect\u7684 page_header() \u4ee5\u5904\u7406 32KB \u9875\u9762\u5927\u5c0f", "commits": ["127404fbe"], "section": "\u9644\u52a0\u6a21\u5757", "category": "bugfix", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-12", "source_hash": "dc2ac988639f89fc261a44c9ddd15451e57092b36c9b23634bcb339b54e06830", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["127404fbe"]], "identity_text": "Fix pageinspect's page_header() to handle 32-kilobyte page sizes (Quan Zongliang) Previously, improper negative values could be returned in certain cases.", "commit_aliases": ["127404fbe"], "source_commits": ["127404fbe"], "source_entry_id": "15.0/changes/146", "db_id": "f2b9293443164ddc01aecf05089422cf", "patch_ids": ["1547d27a6718e63d278804d315f11f69"], "statement_hash": "f25c96c463e4e10c6e126cab84d80c3321509384d6e2a3a6c04a55a36b05b38c", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=15.0#15.0-2a740d86df56d854", "migration": false}, {"id": "15.0-d7081b37c6c75328", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/15/pgstatstatements.html\" title=\"F.32.\u00a0pg_stat_statements\"><span>pg_stat_statements</span></a>\u589e\u52a0\u4e34\u65f6\u6587\u4ef6\u5757 I/O \u7684\u8ba1\u6570\u5668\uff08Masahiko Sawada\uff09<a href=\"https://postgr.es/c/76cbf7edb\">\u00a7</a></p>", "text": "\u4e3apg_stat_statements\u589e\u52a0\u4e34\u65f6\u6587\u4ef6\u5757 I/O \u7684\u8ba1\u6570\u5668\uff08Masahiko Sawada\uff09\u00a7", "title": "\u4e3apg_stat_statements\u589e\u52a0\u4e34\u65f6\u6587\u4ef6\u5757 I/O \u7684\u8ba1\u6570\u5668", "commits": ["76cbf7edb"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-12", "source_hash": "b69b68afc10035c1adc9cc2c9135ea3f72d25d9cdd60bc85f877683192467b65", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["76cbf7edb"]], "identity_text": "Add counters for temporary file block I/O to pg_stat_statements (Masahiko Sawada)", "commit_aliases": ["76cbf7edb"], "source_commits": ["76cbf7edb"], "source_entry_id": "15.0/changes/147", "db_id": "b6fe7c99d00a739dc69b466fa0ebbd82", "patch_ids": ["2388af42e5ba393747fd63779e514717"], "statement_hash": "39a4eaa4df8e0bf8cd39b4bd335fd7b1bea6f566b8db7ae4a3ddfdfef729791f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-d7081b37c6c75328", "migration": false}, {"id": "15.0-a980476b79d207e4", "cves": [], "html": "<p>\u4e3a pg_stat_statements \u589e\u52a0 <acronym>JIT</acronym> \u8ba1\u6570\u5668\uff08Magnus Hagander\uff09<a href=\"https://postgr.es/c/57d6aea00\">\u00a7</a></p>", "text": "\u4e3a pg_stat_statements \u589e\u52a0 JIT \u8ba1\u6570\u5668\uff08Magnus Hagander\uff09\u00a7", "title": "\u4e3a pg_stat_statements \u589e\u52a0 JIT \u8ba1\u6570\u5668", "commits": ["57d6aea00"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-12", "source_hash": "f3671e16e27c9f0df20f3f76f35cb02fc8c8e030f5919a4fd32a9a56477b3d30", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["57d6aea00"]], "identity_text": "Add JIT counters to pg_stat_statements (Magnus Hagander)", "commit_aliases": ["57d6aea00"], "source_commits": ["57d6aea00"], "source_entry_id": "15.0/changes/148", "db_id": "b0e3fa16848477349785932d5bea4287", "patch_ids": ["970749f1b01799378bf9524da786e972"], "statement_hash": "cc6d5e76ce72bc57d4dc2ea585bc84df735e93d3ce3603c4d6a637c068e73fef", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-a980476b79d207e4", "migration": false}, {"id": "15.0-7ca3a5b8c3826d44", "cves": [], "html": "<p>\u589e\u52a0\u65b0\u6a21\u5757<a href=\"/docs/15/pgwalinspect.html\" title=\"F.37.\u00a0pg_walinspect\"><span>pg_walinspect</span></a>\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/2258e76f9\">\u00a7</a></p>\n<p>\u8fd9\u63d0\u4f9b\u4e86\u7c7b\u4f3c\u4e8e<a href=\"/docs/15/pgwaldump.html\" title=\"pg_waldump\"><span>pg_waldump</span></a>\u7684 <acronym>SQL</acronym> \u7ea7\u522b\u8f93\u51fa\u3002</p>", "text": "\u589e\u52a0\u65b0\u6a21\u5757pg_walinspect\uff08Bharath Rupireddy\uff09\u00a7 \u8fd9\u63d0\u4f9b\u4e86\u7c7b\u4f3c\u4e8epg_waldump\u7684 SQL \u7ea7\u522b\u8f93\u51fa\u3002", "title": "\u589e\u52a0\u65b0\u6a21\u5757pg_walinspect", "commits": ["2258e76f9"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-12", "source_hash": "13f0faecb2abf2aae47705f5975a58b2927d5ba28be63b48d6f59e672d3f0370", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["2258e76f9"]], "identity_text": "Add new module pg_walinspect (Bharath Rupireddy) This gives SQL-level output similar to pg_waldump.", "commit_aliases": ["2258e76f9"], "source_commits": ["2258e76f9"], "source_entry_id": "15.0/changes/149", "db_id": "b0971711d6c477040ac3dff8487cecb2", "patch_ids": ["edca17bfd8511b12e386dafc666411c8"], "statement_hash": "50c6d22699ff3d5918c44f8bbc1bae8d443fd6dfb7f886178733b84255005a0f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-7ca3a5b8c3826d44", "migration": false}, {"id": "15.0-98401eca45393bc6", "cves": [], "html": "<p>\u5728<a href=\"/docs/15/sepgsql.html\" title=\"F.40.\u00a0sepgsql\"><span>sepgsql</span></a>\u65e5\u5fd7\u6d88\u606f\u4e2d\u6307\u793a\u5bbd\u5bb9/\u5f3a\u5236\u72b6\u6001\uff08Dave Page\uff09<a href=\"https://postgr.es/c/134d97463\">\u00a7</a></p>", "text": "\u5728sepgsql\u65e5\u5fd7\u6d88\u606f\u4e2d\u6307\u793a\u5bbd\u5bb9/\u5f3a\u5236\u72b6\u6001\uff08Dave Page\uff09\u00a7", "title": "\u5728sepgsql\u65e5\u5fd7\u6d88\u606f\u4e2d\u6307\u793a\u5bbd\u5bb9/\u5f3a\u5236\u72b6\u6001", "commits": ["134d97463"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT3-12", "source_hash": "d78bf05295ea0ff8fd4fd02f9d82bf9a7c1aaa0da3915272ba28886ce4ef3d2e", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["134d97463"]], "identity_text": "Indicate the permissive/enforcing state in sepgsql log messages (Dave Page)", "commit_aliases": ["134d97463"], "source_commits": ["134d97463"], "source_entry_id": "15.0/changes/150", "db_id": "bc3f393e029ea2b2965f9fae843b2a99", "patch_ids": ["4521657fa3d7990eed2ff1745dca68df"], "statement_hash": "d8497228fa6b4afa97175e2e19dfb63a9e2d957f9f73674006aca39ae1a76e44", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-98401eca45393bc6", "migration": false}, {"id": "15.0-97d6fdf76f6ed352", "cves": [], "html": "<p>\u5141\u8bb8 postgres_fdw \u4e0b\u63a8 <code>CASE</code> \u8868\u8fbe\u5f0f\uff08Alexander Pyhalov\uff09<a href=\"https://postgr.es/c/5d44fff01\">\u00a7</a></p>", "text": "\u5141\u8bb8 postgres_fdw \u4e0b\u63a8 CASE \u8868\u8fbe\u5f0f\uff08Alexander Pyhalov\uff09\u00a7", "title": "\u5141\u8bb8 postgres_fdw \u4e0b\u63a8 CASE \u8868\u8fbe\u5f0f", "commits": ["5d44fff01"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-13", "source_hash": "58d6c03dffe36637edffd161b4359a4b5cb32d50bc5484f2237b93f8b703a583", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["5d44fff01"]], "identity_text": "Allow postgres_fdw to push down CASE expressions (Alexander Pyhalov)", "commit_aliases": ["5d44fff01"], "source_commits": ["5d44fff01"], "source_entry_id": "15.0/changes/151", "db_id": "40c81d64d17f31d7ca60c3bd5596d454", "patch_ids": ["88280b238d241fbd09ac133892937e10"], "statement_hash": "553a31d42a7e0fea8c2a2dd40cc2e661d54132bbd96bec80233d912c3747815f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-97d6fdf76f6ed352", "migration": false}, {"id": "15.0-edaa939af5798aec", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf <code>postgres_fdw.application_name</code> \u4ee5\u63a7\u5236 postgres_fdw \u8fde\u63a5\u7684\u5e94\u7528\u7a0b\u5e8f\u540d\u79f0\uff08Hayato Kuroda\uff09<a href=\"https://postgr.es/c/449ab6350\">\u00a7</a> <a href=\"https://postgr.es/c/6e0cb3dec\">\u00a7</a> <a href=\"https://postgr.es/c/94c49d534\">\u00a7</a></p>\n<p>\u4ee5\u524d\u8fdc\u7a0b\u4f1a\u8bdd\u7684 <a href=\"/docs/15/runtime-config-logging.html#GUC-APPLICATION-NAME\"><code>application_name</code></a> \u53ea\u80fd\u5728\u8fdc\u7a0b\u670d\u52a1\u5668\u4e0a\u8bbe\u7f6e\u6216\u901a\u8fc7 <span>postgres_fdw</span> \u8fde\u63a5\u89c4\u8303\u8bbe\u7f6e\u3002<code>postgres_fdw.application_name</code> \u652f\u6301\u4e00\u4e9b\u7528\u4e8e\u81ea\u5b9a\u4e49\u7684\u8f6c\u4e49\u5e8f\u5217\uff0c\u4f7f\u5f97\u5728\u8fdc\u7a0b\u670d\u52a1\u5668\u4e0a\u66f4\u5bb9\u6613\u533a\u5206\u8fd9\u4e9b\u8fde\u63a5\u3002</p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf postgres_fdw.application_name \u4ee5\u63a7\u5236 postgres_fdw \u8fde\u63a5\u7684\u5e94\u7528\u7a0b\u5e8f\u540d\u79f0\uff08Hayato Kuroda\uff09\u00a7 \u00a7 \u00a7 \u4ee5\u524d\u8fdc\u7a0b\u4f1a\u8bdd\u7684 application_name \u53ea\u80fd\u5728\u8fdc\u7a0b\u670d\u52a1\u5668\u4e0a\u8bbe\u7f6e\u6216\u901a\u8fc7 postgres_fdw \u8fde\u63a5\u89c4\u8303\u8bbe\u7f6e\u3002postgres_fdw.application_name \u652f\u6301\u4e00\u4e9b\u7528\u4e8e\u81ea\u5b9a\u4e49\u7684\u8f6c\u4e49\u5e8f\u5217\uff0c\u4f7f\u5f97\u5728\u8fdc\u7a0b\u670d\u52a1\u5668\u4e0a\u66f4\u5bb9\u6613\u533a\u5206\u8fd9\u4e9b\u8fde\u63a5\u3002", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf postgres_fdw.application_name \u4ee5\u63a7\u5236 postgres_fdw \u8fde\u63a5\u7684\u5e94\u7528\u7a0b\u5e8f\u540d\u79f0", "commits": ["449ab6350", "6e0cb3dec", "94c49d534"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-13", "source_hash": "caaa095b70e88b9f1b5a6db44152a91c512f09778ff5daf232dc6b4ad190f419", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["449ab6350"], ["6e0cb3dec"], ["94c49d534"]], "identity_text": "Add server variable postgres_fdw.application_name to control the application name of postgres_fdw connections (Hayato Kuroda) Previously the remote session's application_name could only be set on the remote server or via a postgres_fdw connection specification. postgres_fdw.application_name supports some escape sequences for customization, making it easier to tell such connections apart on the remote server.", "commit_aliases": ["449ab6350", "6e0cb3dec", "94c49d534"], "source_commits": ["449ab6350", "6e0cb3dec", "94c49d534"], "source_entry_id": "15.0/changes/152", "db_id": "6c7ecc64b193e81d47e16f692a508146", "patch_ids": ["020d276d51caac88ca764bbb70a2e37a", "91765da13b0d60cbe3258867707bac81", "a3b4f329ae4cd4c47333c944cf38dca4"], "statement_hash": "303dae796bbea5767f795a4ffdcf1b031d58294d17965f34a06394e3aa86128d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-edaa939af5798aec", "migration": false}, {"id": "15.0-2beb6f8c665e5996", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <span>postgres_fdw</span> \u670d\u52a1\u5668\u4e0a\u8fdb\u884c\u5e76\u884c\u63d0\u4ea4\uff08Etsuro Fujita\uff09<a href=\"https://postgr.es/c/04e706d42\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7 <code>CREATE SERVER</code> \u9009\u9879 <code>parallel_commit</code> \u542f\u7528\u3002</p>", "text": "\u5141\u8bb8\u5728 postgres_fdw \u670d\u52a1\u5668\u4e0a\u8fdb\u884c\u5e76\u884c\u63d0\u4ea4\uff08Etsuro Fujita\uff09\u00a7 \u8fd9\u901a\u8fc7 CREATE SERVER \u9009\u9879 parallel_commit \u542f\u7528\u3002", "title": "\u5141\u8bb8\u5728 postgres_fdw \u670d\u52a1\u5668\u4e0a\u8fdb\u884c\u5e76\u884c\u63d0\u4ea4", "commits": ["04e706d42"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/15.0/#ZH-AUTO-RELEASE-15-SECT4-13", "source_hash": "de31a3a12356ae6ad72ebe7f82e41cbebc56c0a1ea9ca230c276b55f0af72c17", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["04e706d42"]], "identity_text": "Allow parallel commit on postgres_fdw servers (Etsuro Fujita) This is enabled with the CREATE SERVER option parallel_commit.", "commit_aliases": ["04e706d42"], "source_commits": ["04e706d42"], "source_entry_id": "15.0/changes/153", "db_id": "cd6ec51e313a50dfe93f769f6b3fc999", "patch_ids": ["44e1cd5cc8d4b16084b293053e2fc723"], "statement_hash": "83c3d419c686a48d2080ca9b93f2c486f539ac764cfc6fa1d949ec3b1e49f804", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=15.0#15.0-2beb6f8c665e5996", "migration": false}], "initial_entry_count": 184, "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/15/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/15/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/15/upgrading.html\" title=\"19.6.\u00a0\u5347\u7ea7 PostgreSQL \u96c6\u7c07\">\u7b2c\u00a019.6\u00a0\u8282</a>\u3002</p>\n<p>\u7248\u672c 15 \u5305\u542b\u591a\u9879\u53ef\u80fd\u5f71\u54cd\u4e0e\u5148\u524d\u7248\u672c\u517c\u5bb9\u6027\u7684\u53d8\u66f4\u3002\u8bf7\u6ce8\u610f\u4ee5\u4e0b\u4e0d\u517c\u5bb9\u4e4b\u5904\uff1a</p>\n<div>\n</div>", "category_filters": [{"key": "feature", "label": "\u65b0\u529f\u80fd", "count": 135}, {"key": "bugfix", "label": "BUG \u4fee\u590d", "count": 3}, {"key": "security", "label": "\u5b89\u5168\u76f8\u5173", "count": 1}, {"key": "performance", "label": "\u6027\u80fd\u6539\u8fdb", "count": 15}, {"key": "compatibility", "label": "\u517c\u5bb9\u6027\u53d8\u5316", "count": 30}, {"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": "15.18", "fixed_url": "/docs/compare/?release=15.18", "affected": "15", "component": "contrib module", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u907f\u514d contrib/refint \u7684 check_foreign_key() \u4e2d\u89e3\u5f15\u7528 NULL \u6307\u9488", "url": "/docs/compare/?release=15.19#15.19-e808c12e0db01138"}, {"build": "15.18", "version": "15.18", "title": "\u9632\u6b62 contrib/spi \u4e2d\u7684 SQL \u6ce8\u5165\u548c\u7f13\u51b2\u533a\u8d8a\u754c\u5199", "url": "/docs/compare/?release=15.18#15.18-9aab90e2decdd59b"}], "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": "15.18", "fixed_url": "/docs/compare/?release=15.18", "affected": "15", "component": "core server", "mentions": [{"build": "15.18", "version": "15.18", "title": "\u9632\u6b62\u5904\u7406\u542f\u52a8\u5305\u65f6\u53d1\u751f\u65e0\u754c\u9012\u5f52", "url": "/docs/compare/?release=15.18#15.18-6e37155a4c84008d"}], "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": "15.18", "fixed_url": "/docs/compare/?release=15.18", "affected": "15", "component": "core server", "mentions": [{"build": "15.18", "version": "15.18", "title": "\u5728\u8ba4\u8bc1\u4ee3\u7801\u4e2d\u4f7f\u7528\u65f6\u5e8f\u5b89\u5168\u7684\u5b57\u7b26\u4e32\u6bd4\u8f83", "url": "/docs/compare/?release=15.18#15.18-94e55aad3ebd8168"}], "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": "15.18", "fixed_url": "/docs/compare/?release=15.18", "affected": "15", "component": "client", "mentions": [{"build": "15.18", "version": "15.18", "title": "\u5c06 PQfn() \u6807\u8bb0\u4e3a\u4e0d\u5b89\u5168\uff0c\u5e76\u907f\u514d\u5728 libpq \u5185\u90e8\u4f7f\u7528\u5b83", "url": "/docs/compare/?release=15.18#15.18-aa006983b88ec66f"}], "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": "15.18", "fixed_url": "/docs/compare/?release=15.18", "affected": "15", "component": "client", "mentions": [{"build": "15.18", "version": "15.18", "title": "\u9632\u6b62 pg_basebackup \u548c pg_rewind \u4e2d\u7684\u8def\u5f84\u904d\u5386", "url": "/docs/compare/?release=15.18#15.18-3178339f2560c1fe"}], "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": "15.18", "fixed_url": "/docs/compare/?release=15.18", "affected": "15", "component": "core server", "mentions": [{"build": "15.18", "version": "15.18", "title": "\u9632\u8303 timeofday() \u548c pg_strftime() \u4e2d\u7684\u6076\u610f\u65f6\u533a\u540d", "url": "/docs/compare/?release=15.18#15.18-f5ceddac85b73b26"}], "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": "15.18", "fixed_url": "/docs/compare/?release=15.18", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u4fee\u590d PL/Perl \u548c PL/Tcl \u5185\u5b58\u5206\u914d\u8ba1\u7b97\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=15.19#15.19-d03175b8e62ca77d"}, {"build": "15.18", "version": "15.18", "title": "\u4fee\u590d\u5185\u5b58\u5206\u914d\u8ba1\u7b97\u4e2d\u7684\u591a\u5904\u6574\u6570\u6ea2\u51fa\u95ee\u9898", "url": "/docs/compare/?release=15.18#15.18-77623f915f7592d9"}, {"build": "15.18", "version": "15.18", "title": "\u62d2\u7edd ts_headline() \u4e2d\u8fc7\u957f\u7684\u9009\u9879", "url": "/docs/compare/?release=15.18#15.18-c3608e796458d13b"}, {"build": "15.18", "version": "15.18", "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=15.18#15.18-b4e159c1c3614019"}, {"build": "15.18", "version": "15.18", "title": "\u9632\u8303 contrib/ltree \u7684 lquery \u7c7b\u578b\u4e2d\u8fc7\u957f\u7684\u503c", "url": "/docs/compare/?release=15.18#15.18-f7162bdebe6fb249"}], "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": "15.18", "fixed_url": "/docs/compare/?release=15.18", "affected": "15", "component": "core server", "mentions": [{"build": "15.18", "version": "15.18", "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=15.18#15.18-5774e1af35e1add1"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "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=15.19#15.19-b1dbeb58e5a6c437"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u5728\u6b64\u524d\u6f0f\u68c0\u7684\u573a\u666f\u4e2d\u68c0\u67e5\u6570\u636e\u7c7b\u578b\u7684 USAGE \u6743\u9650", "url": "/docs/compare/?release=15.19#15.19-680192fcb0e07883"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "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=15.19#15.19-b4f58a948680ef82"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "client", "mentions": [{"build": "15.19", "version": "15.19", "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=15.19#15.19-69623f56c9e9722f"}], "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": "15.16", "fixed_url": "/docs/compare/?release=15.16", "affected": "15", "component": "core server", "mentions": [{"build": "15.17", "version": "15.17", "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=15.17#15.17-ed7a109835c41923"}, {"build": "15.16", "version": "15.16", "title": "\u4fee\u590d\u591a\u5b57\u8282\u5b57\u7b26\u957f\u5ea6\u9a8c\u8bc1\u4e0d\u5145\u5206\u7684\u95ee\u9898", "url": "/docs/compare/?release=15.16#15.16-62940c666c30fc8b"}], "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": "15.16", "fixed_url": "/docs/compare/?release=15.16", "affected": "15", "component": "contrib module", "mentions": [{"build": "15.16", "version": "15.16", "title": "\u4fee\u590d contrib/pgcrypto PGP \u89e3\u5bc6\u51fd\u6570\u4e2d\u7684\u7f13\u51b2\u533a\u6ea2\u51fa\u95ee\u9898", "url": "/docs/compare/?release=15.16#15.16-55f620c5255ec99f"}], "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": "15.16", "fixed_url": "/docs/compare/?release=15.16", "affected": "15", "component": "contrib module", "mentions": [{"build": "15.16", "version": "15.16", "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=15.16#15.16-9ecdcfc6d990fa17"}], "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": "15.16", "fixed_url": "/docs/compare/?release=15.16", "affected": "15", "component": "core server", "mentions": [{"build": "15.16", "version": "15.16", "title": "\u9632\u6b62 oidvector/int2vector \u51fa\u73b0\u610f\u5916\u7684\u7ef4\u5ea6", "url": "/docs/compare/?release=15.16#15.16-cffa85682917fc25"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "client", "mentions": [{"build": "15.19", "version": "15.19", "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=15.19#15.19-fa846de81d1d3c18"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "client", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u4e0d\u8981\u5bf9 psql \u7684 \\unrestrict \u547d\u4ee4\u53c2\u6570\u6267\u884c\u53cd\u5f15\u53f7\u6269\u5c55", "url": "/docs/compare/?release=15.19#15.19-1eaa89bc0932599c"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u589e\u5f3a ascii() \u51fd\u6570\u5bf9\u65e0\u6548\u8f93\u5165\u7684\u9632\u62a4", "url": "/docs/compare/?release=15.19#15.19-7d22c46c0b1e985e"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "client", "mentions": [{"build": "15.19", "version": "15.19", "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=15.19#15.19-8ab80940f2e8c31e"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u4ea4\u53c9\u68c0\u67e5\u8fd0\u884c EXECUTE \u6216 FETCH \u7684 portal \u7684\u8f93\u51fa\u884c\u7c7b\u578b", "url": "/docs/compare/?release=15.19#15.19-1912ca9b594fe54f"}], "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": "15.19", "version": "15.19", "title": "\u4fee\u590d pg_restore_attribute_stats() \u5bf9\u591a\u8303\u56f4\u7c7b\u578b\u7684\u5904\u7406", "url": "/docs/compare/?release=15.19#15.19-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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "contrib module", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u4fee\u590d contrib/fuzzystrmatch \u7684 levenshtein() \u548c levenshtein_less_equal() \u51fd\u6570\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=15.19#15.19-45fb139f005bf72d"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u9006\u89e3\u6790 EXTRACT() \u51fd\u6570\u8c03\u7528\u65f6\uff0c\u6309\u9700\u4e3a\u5b57\u6bb5\u540d\u52a0\u5f15\u53f7", "url": "/docs/compare/?release=15.19#15.19-a14e35e1025f9ddc"}], "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": "15.19", "version": "15.19", "title": "\u5728\u76f4\u63a5 SSL \u8fde\u63a5\u4e4b\u540e\u62d2\u7edd GSSEncRequest", "url": "/docs/compare/?release=15.19#15.19-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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u62d2\u7edd\u4ece SQL \u8c03\u7528\u63a5\u53d7\u6216\u8fd4\u56de internal \u7c7b\u578b\u7684\u51fd\u6570", "url": "/docs/compare/?release=15.19#15.19-945b15baee4c22d6"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "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=15.19#15.19-a19bdbedae40aee8"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "contrib module", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u4fee\u590d contrib/pg_trgm \u7684 GiST picksplit \u51fd\u6570\u4e2d\u7684\u6570\u636e\u7c7b\u578b\u9519\u8bef", "url": "/docs/compare/?release=15.19#15.19-057de36f6fc47ee3"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u4fee\u590d PL/Perl \u548c PL/Tcl \u5185\u5b58\u5206\u914d\u8ba1\u7b97\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=15.19#15.19-d03175b8e62ca77d"}], "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": "15.19", "version": "15.19", "title": "\u4fee\u590d contrib/pg_stat_statements \u4e2d\u7684\u7f13\u51b2\u533a\u8d8a\u754c\u5199\u5165", "url": "/docs/compare/?release=15.19#15.19-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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "contrib module", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u786e\u4fdd contrib/amcheck \u51fd\u6570\u5728\u6267\u884c\u7d22\u5f15\u8868\u8fbe\u5f0f\u524d\u9650\u5236 search_path", "url": "/docs/compare/?release=15.19#15.19-ab72faa7677e5388"}], "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": "15.19", "version": "15.19", "title": "\u8ba9\u6a21\u62df\u7684 SCRAM secret \u66f4\u53ef\u4fe1", "url": "/docs/compare/?release=15.19#15.19-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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "contrib module", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u79fb\u9664 contrib/refint \u4e2d\u7684\u8ba1\u5212\u7f13\u5b58", "url": "/docs/compare/?release=15.19#15.19-cf70552f3d82a213"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u589e\u5f3a PL/Perl \u5bf9\u201ctied\u201d Perl \u6570\u7ec4\u548c hash \u7684\u9632\u62a4", "url": "/docs/compare/?release=15.19#15.19-31838acd743ddb41"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "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=15.19#15.19-4395db3387c7cd38-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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "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=15.19#15.19-e5c6e044e35ae26d"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u89d2\u8272\u53d1\u751f\u53d8\u66f4\u540e\u4f7f\u4f9d\u8d56\u89d2\u8272\u7684\u7f13\u5b58\u8ba1\u5212\u5931\u6548", "url": "/docs/compare/?release=15.19#15.19-90c7239f7a1b81bc"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "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=15.19#15.19-8a672df6043ea295"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "contrib module", "mentions": [{"build": "15.19", "version": "15.19", "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=15.19#15.19-09644d5ff1559695"}], "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": "15.19", "fixed_url": "/docs/compare/?release=15.19", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "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=15.19#15.19-17c179b4d9e41496"}], "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": "15.14", "fixed_url": "/docs/compare/?release=15.14", "affected": "15", "component": "core server", "mentions": [{"build": "15.14", "version": "15.14", "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=15.14#15.14-f808465a0b3d99e8"}], "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": "15.14", "fixed_url": "/docs/compare/?release=15.14", "affected": "15", "component": "core server", "mentions": [{"build": "15.19", "version": "15.19", "title": "\u4e0d\u8981\u5bf9 psql \u7684 \\unrestrict \u547d\u4ee4\u53c2\u6570\u6267\u884c\u53cd\u5f15\u53f7\u6269\u5c55", "url": "/docs/compare/?release=15.19#15.19-1eaa89bc0932599c"}, {"build": "15.14", "version": "15.14", "title": "\u9632\u6b62 pg_dump \u811a\u672c\u88ab\u7528\u4e8e\u653b\u51fb\u6267\u884c\u6062\u590d\u7684\u7528\u6237", "url": "/docs/compare/?release=15.14#15.14-792ea6321c8a946b"}], "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": "15.14", "fixed_url": "/docs/compare/?release=15.14", "affected": "15", "component": "core server", "mentions": [{"build": "15.14", "version": "15.14", "title": "\u52a0\u5f3a\u89c4\u5212\u5668\u4f30\u7b97\u51fd\u6570\u4e2d\u7684\u5b89\u5168\u68c0\u67e5", "url": "/docs/compare/?release=15.14#15.14-52cce071b03c8e4a"}], "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": "15.13", "fixed_url": "/docs/compare/?release=15.13", "affected": "15", "component": "core server", "mentions": [{"build": "15.13", "version": "15.13", "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=15.13#15.13-ac5445ebcc0439eb"}], "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": "15.15", "fixed_url": "/docs/compare/?release=15.15", "affected": "15", "component": "core server", "mentions": [{"build": "15.15", "version": "15.15", "title": "\u907f\u514d libpq \u4e2d\u5206\u914d\u5927\u5c0f\u8ba1\u7b97\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=15.15#15.15-3568c624ba81b610"}], "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": "15.15", "fixed_url": "/docs/compare/?release=15.15", "affected": "15", "component": "core server", "mentions": [{"build": "15.15", "version": "15.15", "title": "\u68c0\u67e5 CREATE STATISTICS \u4e2d\u6a21\u5f0f\u7684 CREATE \u6743\u9650", "url": "/docs/compare/?release=15.15#15.15-41d0e2da68ae7d2f"}], "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": "15.11", "fixed_url": "/docs/compare/?release=15.11", "affected": "15", "component": "core server", "mentions": [{"build": "15.12", "version": "15.12", "title": "\u6539\u8fdb libpq \u5f15\u7528\u51fd\u6570\u7684\u884c\u4e3a", "url": "/docs/compare/?release=15.12#15.12-43f9b4124d940cad"}, {"build": "15.11", "version": "15.11", "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=15.11#15.11-ed0b0c5a5ce7c384"}], "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": "15.8", "fixed_url": "/docs/compare/?release=15.8", "affected": "15", "component": "core server", "mentions": [{"build": "15.8", "version": "15.8", "title": "\u9632\u6b62\u5728 pg_dump \u671f\u95f4\u6267\u884c\u672a\u7ecf\u6388\u6743\u7684\u4ee3\u7801", "url": "/docs/compare/?release=15.8#15.8-cb2ec150ee97d968"}], "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": "15.7", "fixed_url": "/docs/compare/?release=15.7", "affected": "15", "component": "core server", "mentions": [{"build": "15.7", "version": "15.7", "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=15.7#15.7-5c75daeed485b1fc"}], "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": "15.9", "fixed_url": "/docs/compare/?release=15.9", "affected": "15", "component": "core server", "mentions": [{"build": "15.9", "version": "15.9", "title": "\u9632\u6b62\u53d7\u4fe1\u4efb\u7684 PL/Perl \u4ee3\u7801\u66f4\u6539\u73af\u5883\u53d8\u91cf", "url": "/docs/compare/?release=15.9#15.9-c9b0c46ba6e5aa14"}], "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": "15.9", "fixed_url": "/docs/compare/?release=15.9", "affected": "15", "component": "core server", "mentions": [{"build": "15.10", "version": "15.10", "title": "\u6062\u590d ALTER {ROLE|DATABASE} SET role \u7684\u529f\u80fd", "url": "/docs/compare/?release=15.10#15.10-d3c8a67fc12652c8"}, {"build": "15.9", "version": "15.9", "title": "\u4fee\u590d SET SESSION AUTHORIZATION \u4e0e SET ROLE \u4e4b\u95f4\u610f\u5916\u7684\u4ea4\u4e92", "url": "/docs/compare/?release=15.9#15.9-edbb19d6ec7f223e"}], "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": "15.9", "fixed_url": "/docs/compare/?release=15.9", "affected": "15", "component": "client", "mentions": [{"build": "15.9", "version": "15.9", "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=15.9#15.9-5728e455ef5ad54b"}], "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": "15.9", "fixed_url": "/docs/compare/?release=15.9", "affected": "15", "component": "core server", "mentions": [{"build": "15.9", "version": "15.9", "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=15.9#15.9-0df8f5c6c57017c1"}], "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": "15.6", "fixed_url": "/docs/compare/?release=15.6", "affected": "15", "component": "core server", "mentions": [{"build": "15.6", "version": "15.6", "title": "\u52a0\u5f3a REFRESH MATERIALIZED VIEW CONCURRENTLY \u4e2d\u7684\u5b89\u5168\u9650\u5236", "url": "/docs/compare/?release=15.6#15.6-2bcb28f72020c8de"}], "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": "15.5", "fixed_url": "/docs/compare/?release=15.5", "affected": "15", "component": "core server", "mentions": [{"build": "15.5", "version": "15.5", "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=15.5#15.5-edd37c3a2a604e66"}], "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": "15.5", "fixed_url": "/docs/compare/?release=15.5", "affected": "15", "component": "core server", "mentions": [{"build": "15.8", "version": "15.8", "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=15.8#15.8-972cc39245b78980"}, {"build": "15.5", "version": "15.5", "title": "\u68c0\u6d4b\u8ba1\u7b97\u65b0\u6570\u7ec4\u7ef4\u5ea6\u65f6\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=15.5#15.5-e6fff3ddb818bbdf"}], "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": "15.5", "fixed_url": "/docs/compare/?release=15.5", "affected": "15", "component": "core server", "mentions": [{"build": "15.5", "version": "15.5", "title": "\u4fee\u590d DISTINCT \"any\" \u805a\u5408\u51fd\u6570\u4e2d\u5bf9\u672a\u77e5\u7c7b\u578b\u53c2\u6570\u7684\u5904\u7406", "url": "/docs/compare/?release=15.5#15.5-007533800ff37dbc"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-39418", "title": "MERGE fails to enforce UPDATE or SELECT row security policies", "url": "https://www.postgresql.org/support/security/CVE-2023-39418/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N", "description": "PostgreSQL 15 introduced the MERGE command, which fails to test new rows against row security policies defined for UPDATE and SELECT . If UPDATE and SELECT policies forbid some row that INSERT policies do not forbid, a user could store such rows. Subsequent consequences are application-dependent. This affects only databases that have used CREATE POLICY to define a row security policy.\n\nThe PostgreSQL project thanks Dean Rasheed for reporting this problem.", "description_language": "en", "fixed": "15.4", "fixed_url": "/docs/compare/?release=15.4", "affected": "15", "component": "core server", "mentions": [{"build": "15.4", "version": "15.4", "title": "\u4fee\u590d MERGE \u4ee5\u6b63\u786e\u6267\u884c\u884c\u5b89\u5168\u7b56\u7565", "url": "/docs/compare/?release=15.4#15.4-2da949e7f1e67d5c"}], "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": "15.4", "fixed_url": "/docs/compare/?release=15.4", "affected": "15", "component": "core server", "mentions": [{"build": "15.4", "version": "15.4", "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=15.4#15.4-916b73de52ac811a"}], "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": "15.3", "fixed_url": "/docs/compare/?release=15.3", "affected": "15", "component": "core server", "mentions": [{"build": "15.3", "version": "15.3", "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=15.3#15.3-e3062d4fe1bdb369"}], "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": "15.3", "fixed_url": "/docs/compare/?release=15.3", "affected": "15", "component": "core server", "mentions": [{"build": "15.3", "version": "15.3", "title": "\u9632\u6b62 CREATE SCHEMA \u7ed5\u8fc7 search_path \u7684\u66f4\u6539", "url": "/docs/compare/?release=15.3#15.3-a287358dd4e8c698"}], "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": "15.2", "fixed_url": "/docs/compare/?release=15.2", "affected": "15", "component": "client", "mentions": [{"build": "15.2", "version": "15.2", "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=15.2#15.2-259471afd131584c"}], "evidence": "branch-matrix"}, {"id": "CVE-2018-1058", "title": "Uncontrolled search path element in pg_dump and other client applications", "url": "https://www.postgresql.org/support/security/CVE-2018-1058/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "client", "mentions": [{"build": "15.0", "version": "15.0", "title": "\u79fb\u9664 public \u6a21\u5f0f\u5bf9 PUBLIC \u7684\u521b\u5efa\u6743\u9650", "url": "/docs/compare/?release=15.0#15.0-8e9d06659badfaa6-1"}], "evidence": "release-note-mention"}, {"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": "15.14", "version": "15.14", "title": "\u52a0\u5f3a\u89c4\u5212\u5668\u4f30\u7b97\u51fd\u6570\u4e2d\u7684\u5b89\u5168\u68c0\u67e5", "url": "/docs/compare/?release=15.14#15.14-52cce071b03c8e4a"}], "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": "15.14", "version": "15.14", "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=15.14#15.14-f808465a0b3d99e8"}], "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": 16822574, "url": "/files/documentation/pdf/15/postgresql-15-A4.pdf"}, {"label": "US Letter PDF", "bytes": 16814995, "url": "/files/documentation/pdf/15/postgresql-15-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": ""}]}