{"format": 1, "version": {"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"}, "releases": [{"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}, {"version": "11.21", "build": "11.21", "status": "stable", "date": "2023-08-10", "source_as_of": "", "url": "/docs/compare/?release=11.21", "manual_url": "/docs/11/release-11-21.html", "source_url": "/docs/release/11.21/", "entry_count": 29, "categories": {"security": 1, "bugfix": 11, "improvement": 17}, "compatibility_count": 0, "cves": ["CVE-2023-39417"], "cve_count": 1}, {"version": "11.20", "build": "11.20", "status": "stable", "date": "2023-05-11", "source_as_of": "", "url": "/docs/compare/?release=11.20", "manual_url": "/docs/11/release-11-20.html", "source_url": "/docs/release/11.20/", "entry_count": 44, "categories": {"security": 2, "bugfix": 22, "improvement": 20}, "compatibility_count": 0, "cves": ["CVE-2023-2454", "CVE-2023-2455"], "cve_count": 2}, {"version": "11.19", "build": "11.19", "status": "stable", "date": "2023-02-09", "source_as_of": "", "url": "/docs/compare/?release=11.19", "manual_url": "/docs/11/release-11-19.html", "source_url": "/docs/release/11.19/", "entry_count": 29, "categories": {"improvement": 17, "bugfix": 12}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "11.18", "build": "11.18", "status": "stable", "date": "2022-11-10", "source_as_of": "", "url": "/docs/compare/?release=11.18", "manual_url": "/docs/11/release-11-18.html", "source_url": "/docs/release/11.18/", "entry_count": 32, "categories": {"bugfix": 15, "improvement": 17}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "11.17", "build": "11.17", "status": "stable", "date": "2022-08-11", "source_as_of": "", "url": "/docs/compare/?release=11.17", "manual_url": "/docs/11/release-11-17.html", "source_url": "/docs/release/11.17/", "entry_count": 37, "categories": {"security": 2, "bugfix": 14, "improvement": 21}, "compatibility_count": 0, "cves": ["CVE-2022-1552", "CVE-2022-2625"], "cve_count": 2}, {"version": "11.16", "build": "11.16", "status": "stable", "date": "2022-05-12", "source_as_of": "", "url": "/docs/compare/?release=11.16", "manual_url": "/docs/11/release-11-16.html", "source_url": "/docs/release/11.16/", "entry_count": 32, "categories": {"security": 1, "improvement": 15, "bugfix": 16}, "compatibility_count": 0, "cves": ["CVE-2022-1552"], "cve_count": 1}, {"version": "11.15", "build": "11.15", "status": "stable", "date": "2022-02-10", "source_as_of": "", "url": "/docs/compare/?release=11.15", "manual_url": "/docs/11/release-11-15.html", "source_url": "/docs/release/11.15/", "entry_count": 29, "categories": {"bugfix": 13, "improvement": 16}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "11.14", "build": "11.14", "status": "stable", "date": "2021-11-11", "source_as_of": "", "url": "/docs/compare/?release=11.14", "manual_url": "/docs/11/release-11-14.html", "source_url": "/docs/release/11.14/", "entry_count": 58, "categories": {"security": 2, "bugfix": 27, "improvement": 28, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2021-23214", "CVE-2021-23222"], "cve_count": 2}, {"version": "11.13", "build": "11.13", "status": "stable", "date": "2021-08-12", "source_as_of": "", "url": "/docs/compare/?release=11.13", "manual_url": "/docs/11/release-11-13.html", "source_url": "/docs/release/11.13/", "entry_count": 63, "categories": {"security": 3, "improvement": 39, "bugfix": 20, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2006-2313", "CVE-2021-3449", "CVE-2021-3677"], "cve_count": 3}, {"version": "11.12", "build": "11.12", "status": "stable", "date": "2021-05-13", "source_as_of": "", "url": "/docs/compare/?release=11.12", "manual_url": "/docs/11/release-11-12.html", "source_url": "/docs/release/11.12/", "entry_count": 33, "categories": {"security": 3, "bugfix": 17, "improvement": 13}, "compatibility_count": 0, "cves": ["CVE-2021-32027", "CVE-2021-32028", "CVE-2021-32029"], "cve_count": 3}, {"version": "11.11", "build": "11.11", "status": "stable", "date": "2021-02-11", "source_as_of": "", "url": "/docs/compare/?release=11.11", "manual_url": "/docs/11/release-11-11.html", "source_url": "/docs/release/11.11/", "entry_count": 56, "categories": {"security": 1, "bugfix": 26, "improvement": 29}, "compatibility_count": 0, "cves": ["CVE-2021-3393"], "cve_count": 1}, {"version": "11.10", "build": "11.10", "status": "stable", "date": "2020-11-12", "source_as_of": "", "url": "/docs/compare/?release=11.10", "manual_url": "/docs/11/release-11-10.html", "source_url": "/docs/release/11.10/", "entry_count": 46, "categories": {"security": 4, "improvement": 25, "bugfix": 17}, "compatibility_count": 0, "cves": ["CVE-2020-25694", "CVE-2020-25695", "CVE-2020-25696"], "cve_count": 3}, {"version": "11.9", "build": "11.9", "status": "stable", "date": "2020-08-13", "source_as_of": "", "url": "/docs/compare/?release=11.9", "manual_url": "/docs/11/release-11-9.html", "source_url": "/docs/release/11.9/", "entry_count": 43, "categories": {"security": 2, "bugfix": 22, "improvement": 19}, "compatibility_count": 0, "cves": ["CVE-2018-1058", "CVE-2020-14349", "CVE-2020-14350"], "cve_count": 3}, {"version": "11.8", "build": "11.8", "status": "stable", "date": "2020-05-14", "source_as_of": "", "url": "/docs/compare/?release=11.8", "manual_url": "/docs/11/release-11-8.html", "source_url": "/docs/release/11.8/", "entry_count": 55, "categories": {"improvement": 32, "bugfix": 23}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "11.7", "build": "11.7", "status": "stable", "date": "2020-02-13", "source_as_of": "", "url": "/docs/compare/?release=11.7", "manual_url": "/docs/11/release-11-7.html", "source_url": "/docs/release/11.7/", "entry_count": 56, "categories": {"security": 2, "improvement": 24, "bugfix": 29, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2017-7484", "CVE-2020-1720"], "cve_count": 2}, {"version": "11.6", "build": "11.6", "status": "stable", "date": "2019-11-14", "source_as_of": "", "url": "/docs/compare/?release=11.6", "manual_url": "/docs/11/release-11-6.html", "source_url": "/docs/release/11.6/", "entry_count": 67, "categories": {"bugfix": 31, "improvement": 36}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "11.5", "build": "11.5", "status": "stable", "date": "2019-08-08", "source_as_of": "", "url": "/docs/compare/?release=11.5", "manual_url": "/docs/11/release-11-5.html", "source_url": "/docs/release/11.5/", "entry_count": 47, "categories": {"security": 2, "bugfix": 18, "improvement": 27}, "compatibility_count": 0, "cves": ["CVE-2007-2138", "CVE-2019-10208", "CVE-2019-10209"], "cve_count": 3}, {"version": "11.4", "build": "11.4", "status": "stable", "date": "2019-06-20", "source_as_of": "", "url": "/docs/compare/?release=11.4", "manual_url": "/docs/11/release-11-4.html", "source_url": "/docs/release/11.4/", "entry_count": 26, "categories": {"security": 1, "bugfix": 16, "improvement": 9}, "compatibility_count": 0, "cves": ["CVE-2019-10164"], "cve_count": 1}, {"version": "11.3", "build": "11.3", "status": "stable", "date": "2019-05-09", "source_as_of": "", "url": "/docs/compare/?release=11.3", "manual_url": "/docs/11/release-11-3.html", "source_url": "/docs/release/11.3/", "entry_count": 63, "categories": {"security": 2, "bugfix": 40, "improvement": 20, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2017-7484", "CVE-2019-10129", "CVE-2019-10130"], "cve_count": 3}, {"version": "11.2", "build": "11.2", "status": "stable", "date": "2019-02-14", "source_as_of": "", "url": "/docs/compare/?release=11.2", "manual_url": "/docs/11/release-11-2.html", "source_url": "/docs/release/11.2/", "entry_count": 73, "categories": {"bugfix": 37, "improvement": 36}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "11.1", "build": "11.1", "status": "stable", "date": "2018-11-08", "source_as_of": "", "url": "/docs/compare/?release=11.1", "manual_url": "/docs/11/release-11-1.html", "source_url": "/docs/release/11.1/", "entry_count": 22, "categories": {"security": 1, "improvement": 9, "bugfix": 12}, "compatibility_count": 0, "cves": ["CVE-2018-16850"], "cve_count": 1}, {"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}], "initial_entries": [{"id": "11.0-492dbace06fe7e3b", "cves": [], "html": "<p>\u4f7f<a href=\"/docs/11/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>\u8f6c\u50a8\u6570\u636e\u5e93\u7684\u5c5e\u6027\uff0c\u800c\u4e0d\u53ea\u662f\u5185\u5bb9\uff08Haribabu Kommi\uff09</p>\n<p>\u4ee5\u524d\uff0c\u6570\u636e\u5e93\u672c\u8eab\u7684\u5c5e\u6027\uff0c\u4f8b\u5982\u6570\u636e\u5e93\u7ea7 <code>GRANT</code>/<code>REVOKE</code> \u6743\u9650\u548c <code>ALTER DATABASE SET</code> \u53d8\u91cf\u8bbe\u7f6e\uff0c\u53ea\u80fd\u7531<a href=\"/docs/11/app-pg-dumpall.html\" title=\"pg_dumpall\"><span>pg_dumpall</span></a>\u8f6c\u50a8\u3002\u73b0\u5728\uff0c<code>pg_dump --create</code> \u548c <code>pg_restore --create</code> \u9664\u6062\u590d\u6570\u636e\u5e93\u5185\u7684\u5bf9\u8c61\u5916\uff0c\u4e5f\u4f1a\u6062\u590d\u8fd9\u4e9b\u6570\u636e\u5e93\u5c5e\u6027\u3002<code>pg_dumpall -g</code> \u73b0\u5728\u4ec5\u8f6c\u50a8\u89d2\u8272\u548c\u8868\u7a7a\u95f4\u76f8\u5173\u5c5e\u6027\u3002<span>pg_dumpall</span> \u7684\u5b8c\u6574\u8f93\u51fa\uff08\u4e0d\u5e26 <code>-g</code>\uff09\u4fdd\u6301\u4e0d\u53d8\u3002</p>\n<p>\u5982\u679c\u6ca1\u6709\u6307\u5b9a <code>--create</code>\uff0c<span>pg_dump</span> \u548c <span>pg_restore</span> \u4e0d\u518d\u8f6c\u50a8/\u6062\u590d\u6570\u636e\u5e93\u7ea7\u6ce8\u91ca\u548c\u5b89\u5168\u6807\u7b7e\uff1b\u8fd9\u4e9b\u5185\u5bb9\u73b0\u5728\u88ab\u89c6\u4e3a\u6570\u636e\u5e93\u7684\u5c5e\u6027\u3002</p>\n<p><span>pg_dumpall</span> \u7684\u8f93\u51fa\u811a\u672c\u73b0\u5728\u59cb\u7ec8\u4f7f\u7528\u6570\u636e\u5e93\u539f\u6709\u7684\u533a\u57df\u8bbe\u7f6e\u548c\u7f16\u7801\u521b\u5efa\u6570\u636e\u5e93\uff0c\u56e0\u6b64\u5982\u679c\u76ee\u6807\u7cfb\u7edf\u4e0d\u8ba4\u8bc6\u8be5\u533a\u57df\u8bbe\u7f6e\u6216\u7f16\u7801\u540d\u79f0\uff0c\u64cd\u4f5c\u5c31\u4f1a\u5931\u8d25\u3002\u4ee5\u524d\uff0c\u5982\u679c\u6570\u636e\u5e93\u7684\u533a\u57df\u8bbe\u7f6e\u548c\u7f16\u7801\u4e0e\u65e7\u96c6\u7fa4\u7684\u9ed8\u8ba4\u503c\u4e00\u81f4\uff0c\u8f93\u51fa\u7684 <code>CREATE DATABASE</code> \u5c31\u4e0d\u4f1a\u5305\u542b\u8fd9\u4e9b\u6307\u5b9a\u3002</p>\n<p><code>pg_dumpall --clean</code> \u73b0\u5728\u4f1a\u6062\u590d <code>postgres</code> \u548c <code>template1</code> \u6570\u636e\u5e93\u7684\u539f\u59cb\u533a\u57df\u8bbe\u7f6e\u548c\u7f16\u7801\uff0c\u4ee5\u53ca\u7528\u6237\u521b\u5efa\u6570\u636e\u5e93\u7684\u76f8\u5e94\u8bbe\u7f6e\u3002</p>", "text": "\u4f7fpg_dump\u8f6c\u50a8\u6570\u636e\u5e93\u7684\u5c5e\u6027\uff0c\u800c\u4e0d\u53ea\u662f\u5185\u5bb9\uff08Haribabu Kommi\uff09 \u4ee5\u524d\uff0c\u6570\u636e\u5e93\u672c\u8eab\u7684\u5c5e\u6027\uff0c\u4f8b\u5982\u6570\u636e\u5e93\u7ea7 GRANT/REVOKE \u6743\u9650\u548c ALTER DATABASE SET \u53d8\u91cf\u8bbe\u7f6e\uff0c\u53ea\u80fd\u7531pg_dumpall\u8f6c\u50a8\u3002\u73b0\u5728\uff0cpg_dump --create \u548c pg_restore --create \u9664\u6062\u590d\u6570\u636e\u5e93\u5185\u7684\u5bf9\u8c61\u5916\uff0c\u4e5f\u4f1a\u6062\u590d\u8fd9\u4e9b\u6570\u636e\u5e93\u5c5e\u6027\u3002pg_dumpall -g \u73b0\u5728\u4ec5\u8f6c\u50a8\u89d2\u8272\u548c\u8868\u7a7a\u95f4\u76f8\u5173\u5c5e\u6027\u3002pg_dumpall \u7684\u5b8c\u6574\u8f93\u51fa\uff08\u4e0d\u5e26 -g\uff09\u4fdd\u6301\u4e0d\u53d8\u3002 \u5982\u679c\u6ca1\u6709\u6307\u5b9a --create\uff0cpg_dump \u548c pg_restore \u4e0d\u518d\u8f6c\u50a8/\u6062\u590d\u6570\u636e\u5e93\u7ea7\u6ce8\u91ca\u548c\u5b89\u5168\u6807\u7b7e\uff1b\u8fd9\u4e9b\u5185\u5bb9\u73b0\u5728\u88ab\u89c6\u4e3a\u6570\u636e\u5e93\u7684\u5c5e\u6027\u3002 pg_dumpall \u7684\u8f93\u51fa\u811a\u672c\u73b0\u5728\u59cb\u7ec8\u4f7f\u7528\u6570\u636e\u5e93\u539f\u6709\u7684\u533a\u57df\u8bbe\u7f6e\u548c\u7f16\u7801\u521b\u5efa\u6570\u636e\u5e93\uff0c\u56e0\u6b64\u5982\u679c\u76ee\u6807\u7cfb\u7edf\u4e0d\u8ba4\u8bc6\u8be5\u533a\u57df\u8bbe\u7f6e\u6216\u7f16\u7801\u540d\u79f0\uff0c\u64cd\u4f5c\u5c31\u4f1a\u5931\u8d25\u3002\u4ee5\u524d\uff0c\u5982\u679c\u6570\u636e\u5e93\u7684\u533a\u57df\u8bbe\u7f6e\u548c\u7f16\u7801\u4e0e\u65e7\u96c6\u7fa4\u7684\u9ed8\u8ba4\u503c\u4e00\u81f4\uff0c\u8f93\u51fa\u7684 CREATE DATABASE \u5c31\u4e0d\u4f1a\u5305\u542b\u8fd9\u4e9b\u6307\u5b9a\u3002 pg_dumpall --clean \u73b0\u5728\u4f1a\u6062\u590d postgres \u548c template1 \u6570\u636e\u5e93\u7684\u539f\u59cb\u533a\u57df\u8bbe\u7f6e\u548c\u7f16\u7801\uff0c\u4ee5\u53ca\u7528\u6237\u521b\u5efa\u6570\u636e\u5e93\u7684\u76f8\u5e94\u8bbe\u7f6e\u3002", "title": "\u4f7fpg_dump\u8f6c\u50a8\u6570\u636e\u5e93\u7684\u5c5e\u6027\uff0c\u800c\u4e0d\u53ea\u662f\u5185\u5bb9", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "a3fc124e927ee593f80c81266c48456ab0138d5dde0ab768ea58ba6ff0ebb7da", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["0d4e6ed30"], ["160a4f62e"], ["b3f840120"]], "identity_text": "Make pg_dump dump the properties of a database, not just its contents (Haribabu Kommi) Previously, attributes of the database itself, such as database-level GRANT/REVOKE permissions and ALTER DATABASE SET variable settings, were only dumped by pg_dumpall. Now pg_dump --create and pg_restore --create will restore these database properties in addition to the objects within the database. pg_dumpall -g now only dumps role- and tablespace-related attributes. pg_dumpall's complete output (without -g) is unchanged. pg_dump and pg_restore, without --create, no longer dump/restore database-level comments and security labels; those are now treated as properties of the database. pg_dumpall's output script will now always create databases with their original locale and encoding, and hence will fail if the locale or encoding name is unknown to the destination system. Previously, CREATE DATABASE would be emitted without these specifications if the database locale and encoding matched the old cluster's defaults. pg_dumpall --clean now restores the original locale and encoding settings of the postgres and template1 databases, as well as those of user-created databases.", "commit_aliases": ["0d4e6ed30", "160a4f62e", "b3f840120"], "source_commits": ["0d4e6ed30", "160a4f62e", "b3f840120"], "source_entry_id": "11.0/migration/001", "db_id": "510a32841a2049816360194221e43ee2", "patch_ids": ["0974504ea6d572a67eaaecd6e867bd81", "409084a206143e94c12ed6cd19fa75ef", "d9e7426a5acc449d5a2a31a7c4c41a96"], "statement_hash": "e4f13e5dac9e70b1266e5396673a114cf8ea5f2043cb960385af08047e4dbfc7", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-492dbace06fe7e3b", "migration": true}, {"id": "11.0-46dad60da0d7accd", "cves": [], "html": "<p>\u5728\u6d88\u9664\u51fd\u6570\u5f15\u7528\u4e0e\u5217\u5f15\u7528\u4e4b\u95f4\u7684\u6b67\u4e49\u65f6\uff0c\u8003\u8651\u8bed\u6cd5\u5f62\u5f0f\uff08Tom Lane\uff09</p>\n<p>\u5f53 <em><code>x</code></em> \u662f\u8868\u540d\u6216\u590d\u5408\u5217\u65f6\uff0c<span>PostgreSQL</span> \u4f20\u7edf\u4e0a\u5c06\u8bed\u6cd5\u5f62\u5f0f <code><em><code>f</code></em>(<em><code>x</code></em>)</code> \u548c <code><em><code>x</code></em>.<em><code>f</code></em></code> \u89c6\u4e3a\u7b49\u4ef7\uff0c\u4ece\u800c\u5141\u8bb8\u7f16\u5199\u51fd\u6570\u540e\uff0c\u5c06\u5176\u5f53\u4f5c\u6309\u9700\u6c42\u503c\u7684\u5217\u6765\u4f7f\u7528\u3002\u7136\u800c\uff0c\u5982\u679c\u4e24\u79cd\u89e3\u91ca\u90fd\u53ef\u884c\uff0c\u4ee5\u524d\u603b\u4f1a\u9009\u62e9\u5217\u89e3\u91ca\uff1b\u5f53\u7528\u6237\u672c\u610f\u662f\u8c03\u7528\u51fd\u6570\u65f6\uff0c\u8fd9\u4f1a\u4ea7\u751f\u610f\u5916\u7ed3\u679c\u3002\u73b0\u5728\uff0c\u82e5\u5b58\u5728\u6b67\u4e49\uff0c\u4f1a\u9009\u62e9\u4e0e\u8bed\u6cd5\u5f62\u5f0f\u76f8\u7b26\u7684\u89e3\u91ca\u3002</p>", "text": "\u5728\u6d88\u9664\u51fd\u6570\u5f15\u7528\u4e0e\u5217\u5f15\u7528\u4e4b\u95f4\u7684\u6b67\u4e49\u65f6\uff0c\u8003\u8651\u8bed\u6cd5\u5f62\u5f0f\uff08Tom Lane\uff09 \u5f53 x \u662f\u8868\u540d\u6216\u590d\u5408\u5217\u65f6\uff0cPostgreSQL \u4f20\u7edf\u4e0a\u5c06\u8bed\u6cd5\u5f62\u5f0f f(x) \u548c x.f \u89c6\u4e3a\u7b49\u4ef7\uff0c\u4ece\u800c\u5141\u8bb8\u7f16\u5199\u51fd\u6570\u540e\uff0c\u5c06\u5176\u5f53\u4f5c\u6309\u9700\u6c42\u503c\u7684\u5217\u6765\u4f7f\u7528\u3002\u7136\u800c\uff0c\u5982\u679c\u4e24\u79cd\u89e3\u91ca\u90fd\u53ef\u884c\uff0c\u4ee5\u524d\u603b\u4f1a\u9009\u62e9\u5217\u89e3\u91ca\uff1b\u5f53\u7528\u6237\u672c\u610f\u662f\u8c03\u7528\u51fd\u6570\u65f6\uff0c\u8fd9\u4f1a\u4ea7\u751f\u610f\u5916\u7ed3\u679c\u3002\u73b0\u5728\uff0c\u82e5\u5b58\u5728\u6b67\u4e49\uff0c\u4f1a\u9009\u62e9\u4e0e\u8bed\u6cd5\u5f62\u5f0f\u76f8\u7b26\u7684\u89e3\u91ca\u3002", "title": "\u5728\u6d88\u9664\u51fd\u6570\u5f15\u7528\u4e0e\u5217\u5f15\u7528\u4e4b\u95f4\u7684\u6b67\u4e49\u65f6\uff0c\u8003\u8651\u8bed\u6cd5\u5f62\u5f0f", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "6b1a7e86ae5baeb7ce4047394f21fd6c9b4acf02f2406cd658ed621d21b51451", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["45e98ee73"], ["b97a3465d"]], "identity_text": "Consider syntactic form when disambiguating function versus column references (Tom Lane) When x is a table name or composite column, PostgreSQL has traditionally considered the syntactic forms f(x) and x.f to be equivalent, allowing tricks such as writing a function and then using it as though it were a computed-on-demand column. However, if both interpretations are feasible, the column interpretation was always chosen, leading to surprising results if the user intended the function interpretation. Now, if there is ambiguity, the interpretation that matches the syntactic form is chosen.", "commit_aliases": ["45e98ee73", "b97a3465d"], "source_commits": ["45e98ee73", "b97a3465d"], "source_entry_id": "11.0/migration/002", "db_id": "b4298d6c99dbe4cf7d2409833c389286", "patch_ids": ["02b06845841ba971aff8fcd922b61337", "f7546b8e9785d12b512e34d9a4ba5fe3"], "statement_hash": "0eee1185e933ebe2dbd87214fd3e57d626d0675cbc410f2a2f5da4c088141965", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-46dad60da0d7accd", "migration": true}, {"id": "11.0-2121ed8efe79e5a0", "cves": [], "html": "<p>\u5168\u9762\u5f3a\u5236\u8868\u7ea6\u675f\u540d\u548c\u57df\u7ea6\u675f\u540d\u7684\u552f\u4e00\u6027\uff08Tom Lane\uff09</p>\n<p><span>PostgreSQL</span> \u8981\u6c42\u540c\u4e00\u8868\u7684\u7ea6\u675f\u540d\u79f0\u5404\u4e0d\u76f8\u540c\uff0c\u57df\u7684\u7ea6\u675f\u540d\u79f0\u4e5f\u662f\u5982\u6b64\u3002\u4f46\u4ee5\u524d\u5bf9\u6b64\u6ca1\u6709\u4e25\u683c\u5f3a\u5236\u68c0\u67e5\uff0c\u5b58\u5728\u53ef\u521b\u5efa\u91cd\u590d\u540d\u79f0\u7684\u8fb9\u754c\u60c5\u51b5\u3002</p>", "text": "\u5168\u9762\u5f3a\u5236\u8868\u7ea6\u675f\u540d\u548c\u57df\u7ea6\u675f\u540d\u7684\u552f\u4e00\u6027\uff08Tom Lane\uff09 PostgreSQL \u8981\u6c42\u540c\u4e00\u8868\u7684\u7ea6\u675f\u540d\u79f0\u5404\u4e0d\u76f8\u540c\uff0c\u57df\u7684\u7ea6\u675f\u540d\u79f0\u4e5f\u662f\u5982\u6b64\u3002\u4f46\u4ee5\u524d\u5bf9\u6b64\u6ca1\u6709\u4e25\u683c\u5f3a\u5236\u68c0\u67e5\uff0c\u5b58\u5728\u53ef\u521b\u5efa\u91cd\u590d\u540d\u79f0\u7684\u8fb9\u754c\u60c5\u51b5\u3002", "title": "\u5168\u9762\u5f3a\u5236\u8868\u7ea6\u675f\u540d\u548c\u57df\u7ea6\u675f\u540d\u7684\u552f\u4e00\u6027", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "4bdebe8985707e6d9f0b290305681832b94c60751c1e706067f6eab95315dff1", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["fb466d7b5"]], "identity_text": "Fully enforce uniqueness of table and domain constraint names (Tom Lane) PostgreSQL expects the names of a table's constraints to be distinct, and likewise for the names of a domain's constraints. However, there was not rigid enforcement of this, and previously there were corner cases where duplicate names could be created.", "commit_aliases": ["fb466d7b5"], "source_commits": ["fb466d7b5"], "source_entry_id": "11.0/migration/003", "db_id": "123aceccc369aadda88119d2695f9eb3", "patch_ids": ["06b45dc7ea0b7a5af683574355ab7287"], "statement_hash": "4bf3335d18dccf3f5928783a351ae52a804cbdaffe0158949c9fc541ee53f290", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-2121ed8efe79e5a0", "migration": true}, {"id": "11.0-7a8f7b252c15249c", "cves": [], "html": "<p>\u4f7f <code>power(numeric, numeric)</code> \u548c <code>power(float8, float8)</code> \u6309\u7167 POSIX \u6807\u51c6\u5904\u7406 <code>NaN</code> \u8f93\u5165\uff08Tom Lane\uff0cDang Minh Huong\uff09</p>\n<p>POSIX \u89c4\u5b9a <code>NaN ^ 0 = 1</code> \u4e14 <code>1 ^ NaN = 1</code>\uff0c\u4f46\u5176\u4ed6\u6240\u6709\u5305\u542b <code>NaN</code> \u8f93\u5165\u7684\u60c5\u51b5\u90fd\u5e94\u8fd4\u56de <code>NaN</code>\u3002<code>power(numeric, numeric)</code> \u4ee5\u524d\u5728\u6240\u6709\u6b64\u7c7b\u60c5\u51b5\u4e0b\u90fd\u8fd4\u56de <code>NaN</code>\uff0c\u73b0\u5728\u4f1a\u9075\u5faa\u8fd9\u4e24\u4e2a\u4f8b\u5916\u3002\u53ea\u8981 C \u5e93\u7b26\u5408\u6807\u51c6\uff0c<code>power(float8, float8)</code> \u5c31\u4f1a\u7b26\u5408\u6807\u51c6\uff1b\u4f46\u67d0\u4e9b\u65e7 Unix \u5e73\u53f0\u7684\u5e93\u4e0d\u7b26\u5408\u6807\u51c6\uff0c\u67d0\u4e9b Windows \u7248\u672c\u4e0a\u4e5f\u5b58\u5728\u95ee\u9898\u3002</p>", "text": "\u4f7f power(numeric, numeric) \u548c power(float8, float8) \u6309\u7167 POSIX \u6807\u51c6\u5904\u7406 NaN \u8f93\u5165\uff08Tom Lane\uff0cDang Minh Huong\uff09 POSIX \u89c4\u5b9a NaN ^ 0 = 1 \u4e14 1 ^ NaN = 1\uff0c\u4f46\u5176\u4ed6\u6240\u6709\u5305\u542b NaN \u8f93\u5165\u7684\u60c5\u51b5\u90fd\u5e94\u8fd4\u56de NaN\u3002power(numeric, numeric) \u4ee5\u524d\u5728\u6240\u6709\u6b64\u7c7b\u60c5\u51b5\u4e0b\u90fd\u8fd4\u56de NaN\uff0c\u73b0\u5728\u4f1a\u9075\u5faa\u8fd9\u4e24\u4e2a\u4f8b\u5916\u3002\u53ea\u8981 C \u5e93\u7b26\u5408\u6807\u51c6\uff0cpower(float8, float8) \u5c31\u4f1a\u7b26\u5408\u6807\u51c6\uff1b\u4f46\u67d0\u4e9b\u65e7 Unix \u5e73\u53f0\u7684\u5e93\u4e0d\u7b26\u5408\u6807\u51c6\uff0c\u67d0\u4e9b Windows \u7248\u672c\u4e0a\u4e5f\u5b58\u5728\u95ee\u9898\u3002", "title": "\u4f7f power(numeric, numeric) \u548c power(float8, float8) \u6309\u7167 POSIX \u6807\u51c6\u5904\u7406 NaN \u8f93\u5165", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "5554f49f3f044353fc7f73c11d549e019b1782c9309c16bb446d94149037e422", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["61b200e2f"], ["6bdf1303b"], ["d1fc750b5"]], "identity_text": "Make power(numeric, numeric) and power(float8, float8) handle NaN inputs according to the POSIX standard (Tom Lane, Dang Minh Huong) POSIX says that NaN ^ 0 = 1 and 1 ^ NaN = 1, but all other cases with NaN input(s) should return NaN. power(numeric, numeric) just returned NaN in all such cases; now it honors the two exceptions. power(float8, float8) followed the standard if the C library does; but on some old Unix platforms the library doesn't, and there were also problems on some versions of Windows.", "commit_aliases": ["61b200e2f", "6bdf1303b", "d1fc750b5"], "source_commits": ["61b200e2f", "6bdf1303b", "d1fc750b5"], "source_entry_id": "11.0/migration/004", "db_id": "774865e34c7515aa91e3954bddc9c088", "patch_ids": ["92ec1df68ae5a65e5445a5b40d18cd26", "9c552403bc78d2542d99a074870a187c", "d72bdf8e00e2fa5ba515124464876c9b"], "statement_hash": "4dcc5e958d4fa836cd03e271c736ab7cc41bfc4d90d16c5fa3a6277a347ecc85", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-7a8f7b252c15249c", "migration": true}, {"id": "11.0-34e7333b34b9587f", "cves": [], "html": "<p>\u5f53\u6a21\u677f\u5206\u9694\u7b26\u4e0d\u5339\u914d\u65f6\uff0c\u9632\u6b62 <a href=\"/docs/11/functions-formatting.html#FUNCTIONS-FORMATTING-NUMERIC-TABLE\" title=\"\u8868\u00a09.26.\u00a0\u7528\u4e8e\u6570\u503c\u683c\u5f0f\u5316\u7684\u6a21\u677f\u6a21\u5f0f\"><code>to_number()</code></a> \u6d88\u8017\u5b57\u7b26\uff08Oliver Ford\uff09</p>\n<p>\u5177\u4f53\u800c\u8a00\uff0c<code>SELECT to_number('1234', '9,999')</code> \u4ee5\u524d\u8fd4\u56de <code>134</code>\uff0c\u73b0\u5728\u4f1a\u8fd4\u56de <code>1234</code>\u3002<code>L</code> \u548c <code>TH</code> \u73b0\u5728\u53ea\u6d88\u8017\u6570\u5b57\u3001\u6b63\u8d1f\u53f7\u3001\u5c0f\u6570\u70b9\u548c\u9017\u53f7\u4ee5\u5916\u7684\u5b57\u7b26\u3002</p>", "text": "\u5f53\u6a21\u677f\u5206\u9694\u7b26\u4e0d\u5339\u914d\u65f6\uff0c\u9632\u6b62 to_number() \u6d88\u8017\u5b57\u7b26\uff08Oliver Ford\uff09 \u5177\u4f53\u800c\u8a00\uff0cSELECT to_number('1234', '9,999') \u4ee5\u524d\u8fd4\u56de 134\uff0c\u73b0\u5728\u4f1a\u8fd4\u56de 1234\u3002L \u548c TH \u73b0\u5728\u53ea\u6d88\u8017\u6570\u5b57\u3001\u6b63\u8d1f\u53f7\u3001\u5c0f\u6570\u70b9\u548c\u9017\u53f7\u4ee5\u5916\u7684\u5b57\u7b26\u3002", "title": "\u5f53\u6a21\u677f\u5206\u9694\u7b26\u4e0d\u5339\u914d\u65f6\uff0c\u9632\u6b62 to_number() \u6d88\u8017\u5b57\u7b26", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "84e053e31addcc6beee4d530bd85c36c2f29403bde928d8aebbc6455d3688439", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["e87d4965b"]], "identity_text": "Prevent to_number() from consuming characters when the template separator does not match (Oliver Ford) Specifically, SELECT to_number('1234', '9,999') used to return 134. It will now return 1234. L and TH now only consume characters that are not digits, positive/negative signs, decimal points, or commas.", "commit_aliases": ["e87d4965b"], "source_commits": ["e87d4965b"], "source_entry_id": "11.0/migration/005", "db_id": "3d9024d04496de827ad1fe1243461c4f", "patch_ids": ["b85ccd508e90be82b57823635b20b89e"], "statement_hash": "518a3c07a26c6294b4251f9a88b7093173f758eaae092425187c8bfa11281b75", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-34e7333b34b9587f", "migration": true}, {"id": "11.0-bdea085f2478896f", "cves": [], "html": "<p>\u4fee\u590d <a href=\"/docs/11/functions-formatting.html\" title=\"9.8.\u00a0\u6570\u636e\u7c7b\u578b\u683c\u5f0f\u5316\u51fd\u6570\"><code>to_date()</code></a>\u3001<code>to_number()</code> \u548c <code>to_timestamp()</code>\uff0c\u4f7f\u5176\u5bf9\u6bcf\u4e2a\u6a21\u677f\u5b57\u7b26\u8df3\u8fc7\u4e00\u4e2a\u5b57\u7b26\uff08Tom Lane\uff09</p>\n<p>\u4ee5\u524d\uff0c\u5b83\u4eec\u5bf9\u6a21\u677f\u5b57\u7b26\u7684\u6bcf\u4e2a\u5b57\u8282\u8df3\u8fc7\u4e00\u4e2a<span><em>\u5b57\u8282</em></span>\uff0c\u5982\u679c\u4efb\u4e00\u5b57\u7b26\u4e32\u5305\u542b\u591a\u5b57\u8282\u5b57\u7b26\uff0c\u5c31\u4f1a\u51fa\u73b0\u5f02\u5e38\u884c\u4e3a\u3002</p>", "text": "\u4fee\u590d to_date()\u3001to_number() \u548c to_timestamp()\uff0c\u4f7f\u5176\u5bf9\u6bcf\u4e2a\u6a21\u677f\u5b57\u7b26\u8df3\u8fc7\u4e00\u4e2a\u5b57\u7b26\uff08Tom Lane\uff09 \u4ee5\u524d\uff0c\u5b83\u4eec\u5bf9\u6a21\u677f\u5b57\u7b26\u7684\u6bcf\u4e2a\u5b57\u8282\u8df3\u8fc7\u4e00\u4e2a\u5b57\u8282\uff0c\u5982\u679c\u4efb\u4e00\u5b57\u7b26\u4e32\u5305\u542b\u591a\u5b57\u8282\u5b57\u7b26\uff0c\u5c31\u4f1a\u51fa\u73b0\u5f02\u5e38\u884c\u4e3a\u3002", "title": "\u4fee\u590d to_date()\u3001to_number() \u548c to_timestamp()\uff0c\u4f7f\u5176\u5bf9\u6bcf\u4e2a\u6a21\u677f\u5b57\u7b26\u8df3\u8fc7\u4e00\u4e2a\u5b57\u7b26", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "b9bb1d95a02a2e58a51443c4d3556a46902084423cd01266e1fb3af2b232d31a", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["976a1a48f"]], "identity_text": "Fix to_date(), to_number(), and to_timestamp() to skip a character for each template character (Tom Lane) Previously, they skipped one byte for each byte of template character, resulting in strange behavior if either string contained multibyte characters.", "commit_aliases": ["976a1a48f"], "source_commits": ["976a1a48f"], "source_entry_id": "11.0/migration/006", "db_id": "6df82a80a5d3a6122d268b3bbdf21b2a", "patch_ids": ["269cd62584c55d7d310c398734f57870"], "statement_hash": "2836a86a738388e6f787cca08001f8204dd38eb0fdf5473b72d6f62fb16b569d", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-bdea085f2478896f", "migration": true}, {"id": "11.0-b61c6aef74df877f", "cves": [], "html": "<p>\u8c03\u6574 <code>to_char()</code>\u3001<code>to_number()</code> \u548c <code>to_timestamp()</code> \u5bf9\u6a21\u677f\u5b57\u7b26\u4e32\u4e2d\u53cc\u5f15\u53f7\u5185\u53cd\u659c\u7ebf\u7684\u5904\u7406\u3002</p>\n<p>\u8fd9\u79cd\u53cd\u659c\u7ebf\u73b0\u5728\u4f1a\u8f6c\u4e49\u5176\u540e\u7684\u5b57\u7b26\uff0c\u5c24\u5176\u662f\u53cc\u5f15\u53f7\u6216\u53e6\u4e00\u4e2a\u53cd\u659c\u7ebf\u3002</p>", "text": "\u8c03\u6574 to_char()\u3001to_number() \u548c to_timestamp() \u5bf9\u6a21\u677f\u5b57\u7b26\u4e32\u4e2d\u53cc\u5f15\u53f7\u5185\u53cd\u659c\u7ebf\u7684\u5904\u7406\u3002 \u8fd9\u79cd\u53cd\u659c\u7ebf\u73b0\u5728\u4f1a\u8f6c\u4e49\u5176\u540e\u7684\u5b57\u7b26\uff0c\u5c24\u5176\u662f\u53cc\u5f15\u53f7\u6216\u53e6\u4e00\u4e2a\u53cd\u659c\u7ebf\u3002", "title": "\u8c03\u6574 to_char()\u3001to_number() \u548c to_timestamp() \u5bf9\u6a21\u677f\u5b57\u7b26\u4e32\u4e2d\u53cc\u5f15\u53f7\u5185\u53cd\u659c\u7ebf\u7684\u5904\u7406\u3002", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "77a41e11b951df5a820061b703f45127f9a7f403c1cd7ca8d47a09aa6fe4e4e8", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["63ca86318"]], "identity_text": "Adjust the handling of backslashes inside double-quotes in template strings for to_char(), to_number(), and to_timestamp(). Such a backslash now escapes the character after it, particularly a double-quote or another backslash.", "commit_aliases": ["63ca86318"], "source_commits": ["63ca86318"], "source_entry_id": "11.0/migration/007", "db_id": "8b765ef312915548a5d0e1b3dc25e93a", "patch_ids": ["541fc3a298457cbbdf17a516fb268b77"], "statement_hash": "a1ad21134ed44eba401dac111dbdfa9da67d26118cc360a58ab81a619eee4c5a", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-b61c6aef74df877f", "migration": true}, {"id": "11.0-573ac15b77b3d279", "cves": [], "html": "<p>\u6b63\u786e\u5904\u7406 <code>xmltable()</code>\u3001<code>xpath()</code> \u53ca\u5176\u4ed6 XML \u5904\u7406\u51fd\u6570\u4e2d\u7684\u76f8\u5bf9\u8def\u5f84\u8868\u8fbe\u5f0f\uff08Markus Winand\uff09</p>\n<p>\u6309\u7167 SQL \u6807\u51c6\uff0c\u76f8\u5bf9\u8def\u5f84\u4ece XML \u8f93\u5165\u6587\u6863\u7684\u6587\u6863\u8282\u70b9\u5f00\u59cb\uff0c\u800c\u975e\u50cf\u8fd9\u4e9b\u51fd\u6570\u4ee5\u524d\u90a3\u6837\u4ece\u6839\u8282\u70b9\u5f00\u59cb\u3002</p>", "text": "\u6b63\u786e\u5904\u7406 xmltable()\u3001xpath() \u53ca\u5176\u4ed6 XML \u5904\u7406\u51fd\u6570\u4e2d\u7684\u76f8\u5bf9\u8def\u5f84\u8868\u8fbe\u5f0f\uff08Markus Winand\uff09 \u6309\u7167 SQL \u6807\u51c6\uff0c\u76f8\u5bf9\u8def\u5f84\u4ece XML \u8f93\u5165\u6587\u6863\u7684\u6587\u6863\u8282\u70b9\u5f00\u59cb\uff0c\u800c\u975e\u50cf\u8fd9\u4e9b\u51fd\u6570\u4ee5\u524d\u90a3\u6837\u4ece\u6839\u8282\u70b9\u5f00\u59cb\u3002", "title": "\u6b63\u786e\u5904\u7406 xmltable()\u3001xpath() \u53ca\u5176\u4ed6 XML \u5904\u7406\u51fd\u6570\u4e2d\u7684\u76f8\u5bf9\u8def\u5f84\u8868\u8fbe\u5f0f", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "b57dec541603d4df7eb296d86e9638bfc2b9f8aa1bc6bdd17dcd42c0bc1e4a98", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["e474c2b7e"]], "identity_text": "Correctly handle relative path expressions in xmltable(), xpath(), and other XML-handling functions (Markus Winand) Per the SQL standard, relative paths start from the document node of the XML input document, not the root node as these functions previously did.", "commit_aliases": ["e474c2b7e"], "source_commits": ["e474c2b7e"], "source_entry_id": "11.0/migration/008", "db_id": "5699f3abda8af69c0a85646bb3ff0293", "patch_ids": ["076da883585834bc70dee1fd22aadc3f"], "statement_hash": "6ada139b2aab9ed5d53b101a7faf9c590fe786f1bfa9c5afb96e2c98de1a7ea4", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-573ac15b77b3d279", "migration": true}, {"id": "11.0-8e9e09a48c7e164e", "cves": [], "html": "<p>\u5728<a href=\"/docs/11/protocol.html#PROTOCOL-QUERY-CONCEPTS\" title=\"53.1.2.\u00a0\u6269\u5c55\u67e5\u8be2\u6982\u8ff0\">\u6269\u5c55\u67e5\u8be2\u534f\u8bae</a>\u4e2d\uff0c\u4f7f <a href=\"/docs/11/runtime-config-client.html#GUC-STATEMENT-TIMEOUT\"><code>statement_timeout</code></a> \u5206\u522b\u5e94\u7528\u4e8e\u6bcf\u6761 Execute \u6d88\u606f\uff0c\u800c\u975e\u5e94\u7528\u4e8e Sync \u4e4b\u524d\u7684\u6240\u6709\u547d\u4ee4\uff08Tatsuo Ishii\uff0cAndres Freund\uff09</p>", "text": "\u5728\u6269\u5c55\u67e5\u8be2\u534f\u8bae\u4e2d\uff0c\u4f7f statement_timeout \u5206\u522b\u5e94\u7528\u4e8e\u6bcf\u6761 Execute \u6d88\u606f\uff0c\u800c\u975e\u5e94\u7528\u4e8e Sync \u4e4b\u524d\u7684\u6240\u6709\u547d\u4ee4\uff08Tatsuo Ishii\uff0cAndres Freund\uff09", "title": "\u5728\u6269\u5c55\u67e5\u8be2\u534f\u8bae\u4e2d\uff0c\u4f7f statement_timeout \u5206\u522b\u5e94\u7528\u4e8e\u6bcf\u6761 Execute \u6d88\u606f\uff0c\u800c\u975e\u5e94\u7528\u4e8e Sync \u4e4b\u524d\u7684\u6240\u6709\u547d\u4ee4", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "358af8b1107e42da798f0b9df23e9add71aa9c531a2dc9cedce5990e770eee9f", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["f8e5f156b"]], "identity_text": "In the extended query protocol, make statement_timeout apply to each Execute message separately, not to all commands before Sync (Tatsuo Ishii, Andres Freund)", "commit_aliases": ["f8e5f156b"], "source_commits": ["f8e5f156b"], "source_entry_id": "11.0/migration/009", "db_id": "7b054776734f8bbad92203a21929b6f2", "patch_ids": ["952a043065a2e0f994801faf295f7690"], "statement_hash": "c8f1b61b2cc8d888cf47553ea280aafe672562ce969f97a37cd33e301944740e", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-8e9e09a48c7e164e", "migration": true}, {"id": "11.0-6dbe17a348e2210a", "cves": [], "html": "<p>\u4ece\u7cfb\u7edf\u76ee\u5f55 <code>pg_class</code> \u4e2d\u79fb\u9664 <code>relhaspkey</code> \u5217\uff08Peter Eisentraut\uff09</p>\n<p>\u9700\u8981\u68c0\u67e5\u4e3b\u952e\u7684\u5e94\u7528\u5e94\u67e5\u8be2 <code>pg_index</code>\u3002</p>", "text": "\u4ece\u7cfb\u7edf\u76ee\u5f55 pg_class \u4e2d\u79fb\u9664 relhaspkey \u5217\uff08Peter Eisentraut\uff09 \u9700\u8981\u68c0\u67e5\u4e3b\u952e\u7684\u5e94\u7528\u5e94\u67e5\u8be2 pg_index\u3002", "title": "\u4ece\u7cfb\u7edf\u76ee\u5f55 pg_class \u4e2d\u79fb\u9664 relhaspkey \u5217", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "451074f233412662a2c3ed546f9353c63eabddbf07e0114a91484df133a55bbd", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["f66e8bf87"]], "identity_text": "Remove the relhaspkey column from system catalog pg_class (Peter Eisentraut) Applications needing to check for a primary key should consult pg_index.", "commit_aliases": ["f66e8bf87"], "source_commits": ["f66e8bf87"], "source_entry_id": "11.0/migration/010", "db_id": "4c202a68fddd3e594d876c0bc62862fa", "patch_ids": ["0403068faf237aae663158147663f0ef"], "statement_hash": "e5748c4a1299e1a8552d224d6dcb9446c88bfcf9e6a974d95a1ba66bb2b09340", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-6dbe17a348e2210a", "migration": true}, {"id": "11.0-fc5a411295936fe2", "cves": [], "html": "<p>\u5c06\u7cfb\u7edf\u76ee\u5f55 <code>pg_proc</code> \u7684 <code>proisagg</code> \u548c <code>proiswindow</code> \u5217\u66ff\u6362\u4e3a <code>prokind</code>\uff08Peter Eisentraut\uff09</p>\n<p>\u8fd9\u4e2a\u65b0\u5217\u66f4\u6e05\u695a\u5730\u533a\u5206\u4e86\u51fd\u6570\u3001\u8fc7\u7a0b\u3001\u805a\u5408\u548c\u7a97\u53e3\u51fd\u6570\u3002</p>", "text": "\u5c06\u7cfb\u7edf\u76ee\u5f55 pg_proc \u7684 proisagg \u548c proiswindow \u5217\u66ff\u6362\u4e3a prokind\uff08Peter Eisentraut\uff09 \u8fd9\u4e2a\u65b0\u5217\u66f4\u6e05\u695a\u5730\u533a\u5206\u4e86\u51fd\u6570\u3001\u8fc7\u7a0b\u3001\u805a\u5408\u548c\u7a97\u53e3\u51fd\u6570\u3002", "title": "\u5c06\u7cfb\u7edf\u76ee\u5f55 pg_proc \u7684 proisagg \u548c proiswindow \u5217\u66ff\u6362\u4e3a prokind", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "bd0cff500a63df2a36b517e981ac6a039083dad6ee29fa17bc325925aba9d41a", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["fd1a421fe"]], "identity_text": "Replace system catalog pg_proc's proisagg and proiswindow columns with prokind (Peter Eisentraut) This new column more clearly distinguishes functions, procedures, aggregates, and window functions.", "commit_aliases": ["fd1a421fe"], "source_commits": ["fd1a421fe"], "source_entry_id": "11.0/migration/011", "db_id": "46b97d9b8fc22340398342e0e2d1af76", "patch_ids": ["8e17e29f1be6a33f04f90f3e744bd693"], "statement_hash": "8b0e803bb096d60aa7eb687a94d5616f94c85849b514712421c46aa1ee399657", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-fc5a411295936fe2", "migration": true}, {"id": "11.0-0660dd9c08d66b2a", "cves": [], "html": "<p>\u4fee\u6b63\u4fe1\u606f\u6a21\u5f0f\u5217 <a href=\"/docs/11/infoschema-tables.html\" title=\"37.52.\u00a0tables\"><code>tables</code>.<code>table_type</code></a>\uff0c\u4f7f\u5176\u8fd4\u56de <code>FOREIGN</code> \u800c\u975e <code>FOREIGN TABLE</code>\uff08Peter Eisentraut\uff09</p>\n<p>\u8fd9\u79cd\u65b0\u8f93\u51fa\u7b26\u5408 SQL \u6807\u51c6\u3002</p>", "text": "\u4fee\u6b63\u4fe1\u606f\u6a21\u5f0f\u5217 tables.table_type\uff0c\u4f7f\u5176\u8fd4\u56de FOREIGN \u800c\u975e FOREIGN TABLE\uff08Peter Eisentraut\uff09 \u8fd9\u79cd\u65b0\u8f93\u51fa\u7b26\u5408 SQL \u6807\u51c6\u3002", "title": "\u4fee\u6b63\u4fe1\u606f\u6a21\u5f0f\u5217 tables.table_type\uff0c\u4f7f\u5176\u8fd4\u56de FOREIGN \u800c\u975e FOREIGN TABLE", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "54c773d3100e6e4d43ff5a65d6a7d79e575f33c2989f8650d43da735819f98fc", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["9b5140fb5"]], "identity_text": "Correct information schema column tables.table_type to return FOREIGN instead of FOREIGN TABLE (Peter Eisentraut) This new output matches the SQL standard.", "commit_aliases": ["9b5140fb5"], "source_commits": ["9b5140fb5"], "source_entry_id": "11.0/migration/012", "db_id": "4d19dd34e3e88bc61a91087b1c7ec4ff", "patch_ids": ["cc9473f3c6726efa0e5ba7d6df4d4cf0"], "statement_hash": "f16352bb86564ed5ad249abaa57ab4134e8626c1817850d5fa9ab17c7d785329", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-0660dd9c08d66b2a", "migration": true}, {"id": "11.0-5e2eda965c0eb82a", "cves": [], "html": "<p>\u66f4\u6539 ps \u8fdb\u7a0b\u663e\u793a\u4e2d\u7684\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u6807\u7b7e\uff0c\u4f7f\u5176\u4e0e <a href=\"/docs/11/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW\" title=\"\u8868\u00a028.3.\u00a0pg_stat_activity \u89c6\u56fe\"><code>pg_stat_activity</code>.<code>backend_type</code></a> \u6807\u7b7e\u4e00\u81f4\uff08Peter Eisentraut\uff09</p>", "text": "\u66f4\u6539 ps \u8fdb\u7a0b\u663e\u793a\u4e2d\u7684\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u6807\u7b7e\uff0c\u4f7f\u5176\u4e0e pg_stat_activity.backend_type \u6807\u7b7e\u4e00\u81f4\uff08Peter Eisentraut\uff09", "title": "\u66f4\u6539 ps \u8fdb\u7a0b\u663e\u793a\u4e2d\u7684\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u6807\u7b7e\uff0c\u4f7f\u5176\u4e0e pg_stat_activity.backend_type \u6807\u7b7e\u4e00\u81f4", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "78ad95b9fb7bbbcb4a72cd05fd8f8ed571ffba7c07c5e2be273cce5c20a541f8", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["be87b70b6"]], "identity_text": "Change the ps process display labels for background workers to match the pg_stat_activity.backend_type labels (Peter Eisentraut)", "commit_aliases": ["be87b70b6"], "source_commits": ["be87b70b6"], "source_entry_id": "11.0/migration/013", "db_id": "974a16b2c4345122e35fa3a44924a194", "patch_ids": ["962260b669a8a3c9158847504ed83da2"], "statement_hash": "d94fed9aaa18477c55da1c4a98d92f1fd5e1369723456135838b39efe9bef50b", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-5e2eda965c0eb82a", "migration": true}, {"id": "11.0-6a645212e19fbb02", "cves": [], "html": "<p>\u5728\u901a\u8fc7 <a href=\"/docs/11/lo-interfaces.html#LO-OPEN\" title=\"35.3.4.\u00a0\u6253\u5f00\u4e00\u4e2a\u73b0\u6709\u7684\u5927\u5bf9\u8c61\"><code>lo_open()</code></a> \u6253\u5f00\u5927\u5bf9\u8c61\u65f6\u68c0\u67e5\u5927\u5bf9\u8c61\u6743\u9650\uff0c\u800c\u975e\u5728\u5c1d\u8bd5\u8bfb\u5199\u65f6\u68c0\u67e5\uff08Tom Lane\uff0cMichael Paquier\uff09</p>\n<p>\u5982\u679c\u8bf7\u6c42\u5199\u5165\u6743\u9650\u4f46\u65e0\u6cd5\u83b7\u5f97\uff0c\u73b0\u5728\u5373\u4f7f\u6700\u7ec8\u4ece\u672a\u5199\u5165\u8be5\u5927\u5bf9\u8c61\uff0c\u4e5f\u4f1a\u629b\u51fa\u9519\u8bef\u3002</p>", "text": "\u5728\u901a\u8fc7 lo_open() \u6253\u5f00\u5927\u5bf9\u8c61\u65f6\u68c0\u67e5\u5927\u5bf9\u8c61\u6743\u9650\uff0c\u800c\u975e\u5728\u5c1d\u8bd5\u8bfb\u5199\u65f6\u68c0\u67e5\uff08Tom Lane\uff0cMichael Paquier\uff09 \u5982\u679c\u8bf7\u6c42\u5199\u5165\u6743\u9650\u4f46\u65e0\u6cd5\u83b7\u5f97\uff0c\u73b0\u5728\u5373\u4f7f\u6700\u7ec8\u4ece\u672a\u5199\u5165\u8be5\u5927\u5bf9\u8c61\uff0c\u4e5f\u4f1a\u629b\u51fa\u9519\u8bef\u3002", "title": "\u5728\u901a\u8fc7 lo_open() \u6253\u5f00\u5927\u5bf9\u8c61\u65f6\u68c0\u67e5\u5927\u5bf9\u8c61\u6743\u9650\uff0c\u800c\u975e\u5728\u5c1d\u8bd5\u8bfb\u5199\u65f6\u68c0\u67e5", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "fbf598ce9dad5b80cc65f4e4eb9f86d3f1ab70ba114fe741648f08aa5274ff7c", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["6d776522d"], ["ae20b23a9"]], "identity_text": "Cause large object permission checks to happen during large object open, lo_open(), not when a read or write is attempted (Tom Lane, Michael Paquier) If write access is requested and not available, an error will now be thrown even if the large object is never written to.", "commit_aliases": ["6d776522d", "ae20b23a9"], "source_commits": ["6d776522d", "ae20b23a9"], "source_entry_id": "11.0/migration/014", "db_id": "0b279c27863f37b234d2c71e90a34f66", "patch_ids": ["2f492a4642cc93d8877db1a9839f8422", "e024d72ca9cefd67b4b949d559a264bf"], "statement_hash": "6471209976cf5d1276925197802d9c912a204d4416a08695e9f340c57266c9a6", "relations": [{"rule": 2, "type": "related", "target": "64317dec4095a31874ad8bfffd1b3783", "evidence": {"same_day": true, "patch_ids": ["2f492a4642cc93d8877db1a9839f8422"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-6a645212e19fbb02", "migration": true}, {"id": "11.0-b0724f8405584b6f", "cves": [], "html": "<p>\u9632\u6b62\u975e\u8d85\u7ea7\u7528\u6237\u91cd\u5efa\u5171\u4eab\u76ee\u5f55\u7684\u7d22\u5f15\uff08Michael Paquier\uff0cRobert Haas\uff09</p>\n<p>\u4ee5\u524d\uff0c\u6570\u636e\u5e93\u6240\u6709\u8005\u4e5f\u88ab\u5141\u8bb8\u8fd9\u6837\u505a\uff0c\u4f46\u73b0\u5728\u8ba4\u4e3a\u8fd9\u8d85\u51fa\u4e86\u5176\u6743\u9650\u8303\u56f4\u3002</p>", "text": "\u9632\u6b62\u975e\u8d85\u7ea7\u7528\u6237\u91cd\u5efa\u5171\u4eab\u76ee\u5f55\u7684\u7d22\u5f15\uff08Michael Paquier\uff0cRobert Haas\uff09 \u4ee5\u524d\uff0c\u6570\u636e\u5e93\u6240\u6709\u8005\u4e5f\u88ab\u5141\u8bb8\u8fd9\u6837\u505a\uff0c\u4f46\u73b0\u5728\u8ba4\u4e3a\u8fd9\u8d85\u51fa\u4e86\u5176\u6743\u9650\u8303\u56f4\u3002", "title": "\u9632\u6b62\u975e\u8d85\u7ea7\u7528\u6237\u91cd\u5efa\u5171\u4eab\u76ee\u5f55\u7684\u7d22\u5f15", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "8ee57ba2c765d48589177b630d60a310a9805abf65fe0b35d18186b18095ca00", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["87330e21c"]], "identity_text": "Prevent non-superusers from reindexing shared catalogs (Michael Paquier, Robert Haas) Previously, database owners were also allowed to do this, but now it is considered outside the bounds of their privileges.", "commit_aliases": ["87330e21c"], "source_commits": ["87330e21c"], "source_entry_id": "11.0/migration/015", "db_id": "7eb022cb658a9316dd3bdbcb7c457b1d", "patch_ids": ["20edf52c8362f05176bca0d955851dcd"], "statement_hash": "7e78d2559eccc3fd82555d10ac834c89f03850fc49bcb728a3cfbe396a10c518", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-b0724f8405584b6f", "migration": true}, {"id": "11.0-595d2f64bc2955c0", "cves": [], "html": "<p>\u79fb\u9664\u5df2\u5f03\u7528\u7684 <a href=\"/docs/11/contrib.html#ADMINPACK\" title=\"F.1.\u00a0adminpack\"><code>adminpack</code></a> \u51fd\u6570 <code>pg_file_read()</code>\u3001<code>pg_file_length()</code> \u548c <code>pg_logfile_rotate()</code>\uff08Stephen Frost\uff09</p>\n<p>\u6838\u5fc3\u540e\u7aef\u73b0\u5728\u5df2\u63d0\u4f9b\u7b49\u6548\u529f\u80fd\u3002\u73b0\u6709 <code>adminpack</code> \u5b89\u88c5\u5728\u901a\u8fc7 <code>ALTER EXTENSION ... UPDATE</code> \u66f4\u65b0\u4e4b\u524d\uff0c\u4ecd\u53ef\u8bbf\u95ee\u8fd9\u4e9b\u51fd\u6570\u3002</p>", "text": "\u79fb\u9664\u5df2\u5f03\u7528\u7684 adminpack \u51fd\u6570 pg_file_read()\u3001pg_file_length() \u548c pg_logfile_rotate()\uff08Stephen Frost\uff09 \u6838\u5fc3\u540e\u7aef\u73b0\u5728\u5df2\u63d0\u4f9b\u7b49\u6548\u529f\u80fd\u3002\u73b0\u6709 adminpack \u5b89\u88c5\u5728\u901a\u8fc7 ALTER EXTENSION ... UPDATE \u66f4\u65b0\u4e4b\u524d\uff0c\u4ecd\u53ef\u8bbf\u95ee\u8fd9\u4e9b\u51fd\u6570\u3002", "title": "\u79fb\u9664\u5df2\u5f03\u7528\u7684 adminpack \u51fd\u6570 pg_file_read()\u3001pg_file_length() \u548c pg_logfile_rotate()", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "5265628b2223c3e03cd8827f788814ce551b8093d67f273345401417cd2cf864", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["11523e860"]], "identity_text": "Remove deprecated adminpack functions pg_file_read(), pg_file_length(), and pg_logfile_rotate() (Stephen Frost) Equivalent functionality is now present in the core backend. Existing adminpack installs will continue to have access to these functions until they are updated via ALTER EXTENSION ... UPDATE.", "commit_aliases": ["11523e860"], "source_commits": ["11523e860"], "source_entry_id": "11.0/migration/016", "db_id": "9fb362899a6b27f50f661fe029c5b5e3", "patch_ids": ["dc2579f2ac86796bba3e529db6afcab1"], "statement_hash": "6df57454c38ce36bb64e7db089172bcada5adb47c75a9f4313930af80c253463", "relations": [{"rule": 2, "type": "related", "target": "b927f77f6c379e3df3fb9257f14a8557", "evidence": {"same_day": true, "patch_ids": ["dc2579f2ac86796bba3e529db6afcab1"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-595d2f64bc2955c0", "migration": true}, {"id": "11.0-62d1c98e8d313997", "cves": [], "html": "<p>\u9075\u5faa\u53cc\u5f15\u53f7\u5185\u547d\u4ee4\u9009\u9879\u7684\u5927\u5c0f\u5199\uff08Daniel Gustafsson\uff09</p>\n<p>\u4ee5\u524d\uff0c\u67d0\u4e9b SQL \u547d\u4ee4\u4e2d\u7684\u9009\u9879\u540d\u5373\u4f7f\u4ee5\u53cc\u5f15\u53f7\u8f93\u5165\uff0c\u4e5f\u4f1a\u88ab\u5f3a\u5236\u8f6c\u6362\u4e3a\u5c0f\u5199\uff1b\u56e0\u6b64\uff0c\u4f8b\u5982 <code>\"FillFactor\"</code> \u4f1a\u88ab\u63a5\u53d7\u4e3a\u7d22\u5f15\u5b58\u50a8\u9009\u9879\uff0c\u5c3d\u7ba1\u5176\u6b63\u786e\u540d\u79f0\u5e94\u4e3a\u5c0f\u5199\u3002\u73b0\u5728\uff0c\u6b64\u7c7b\u60c5\u51b5\u5c06\u4ea7\u751f\u9519\u8bef\u3002</p>", "text": "\u9075\u5faa\u53cc\u5f15\u53f7\u5185\u547d\u4ee4\u9009\u9879\u7684\u5927\u5c0f\u5199\uff08Daniel Gustafsson\uff09 \u4ee5\u524d\uff0c\u67d0\u4e9b SQL \u547d\u4ee4\u4e2d\u7684\u9009\u9879\u540d\u5373\u4f7f\u4ee5\u53cc\u5f15\u53f7\u8f93\u5165\uff0c\u4e5f\u4f1a\u88ab\u5f3a\u5236\u8f6c\u6362\u4e3a\u5c0f\u5199\uff1b\u56e0\u6b64\uff0c\u4f8b\u5982 \"FillFactor\" \u4f1a\u88ab\u63a5\u53d7\u4e3a\u7d22\u5f15\u5b58\u50a8\u9009\u9879\uff0c\u5c3d\u7ba1\u5176\u6b63\u786e\u540d\u79f0\u5e94\u4e3a\u5c0f\u5199\u3002\u73b0\u5728\uff0c\u6b64\u7c7b\u60c5\u51b5\u5c06\u4ea7\u751f\u9519\u8bef\u3002", "title": "\u9075\u5faa\u53cc\u5f15\u53f7\u5185\u547d\u4ee4\u9009\u9879\u7684\u5927\u5c0f\u5199", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "218bf299f7628e439c3addff07016c15f6800099f2d7cfca00389aa2f05dc7ba", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["fb8697b31"]], "identity_text": "Honor the capitalization of double-quoted command options (Daniel Gustafsson) Previously, option names in certain SQL commands were forcibly lower-cased even if entered with double quotes; thus for example \"FillFactor\" would be accepted as an index storage option, though properly its name is lower-case. Such cases will now generate an error.", "commit_aliases": ["fb8697b31"], "source_commits": ["fb8697b31"], "source_entry_id": "11.0/migration/017", "db_id": "c6ca40c272e7970f7da69fafb122d105", "patch_ids": ["c4734e217c6eb8282130838c53e589f0"], "statement_hash": "d04dc17c486643760b8b7d810de699cd7f12333e05109893fda6b927a0d69b59", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-62d1c98e8d313997", "migration": true}, {"id": "11.0-64b52d1a36c0e343", "cves": [], "html": "<p>\u79fb\u9664\u670d\u52a1\u5668\u53c2\u6570 <code>replacement_sort_tuples</code>\uff08Peter Geoghegan\uff09</p>\n<p>\u7ecf\u5224\u65ad\uff0c\u7f6e\u6362\u6392\u5e8f\u5df2\u4e0d\u518d\u6709\u7528\u3002</p>", "text": "\u79fb\u9664\u670d\u52a1\u5668\u53c2\u6570 replacement_sort_tuples\uff08Peter Geoghegan\uff09 \u7ecf\u5224\u65ad\uff0c\u7f6e\u6362\u6392\u5e8f\u5df2\u4e0d\u518d\u6709\u7528\u3002", "title": "\u79fb\u9664\u670d\u52a1\u5668\u53c2\u6570 replacement_sort_tuples", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "328feeb2742bcb24f952fbbe24eaddd4b5e18e433102baf7563d95bbcd58bd5f", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["8b304b8b7"]], "identity_text": "Remove server parameter replacement_sort_tuples (Peter Geoghegan) Replacement sorts were determined to be no longer useful.", "commit_aliases": ["8b304b8b7"], "source_commits": ["8b304b8b7"], "source_entry_id": "11.0/migration/018", "db_id": "7cf4f2ec73d04546c03927edbe4be9db", "patch_ids": ["d1cfa6a03d12878685c6b764ca4f9db4"], "statement_hash": "d57f08d89d73c4b87c76f348e43051202a8046ebd46f6e18465db1ccb95d31ed", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-64b52d1a36c0e343", "migration": true}, {"id": "11.0-55f2585ac1bc4d18", "cves": [], "html": "<p>\u79fb\u9664 <a href=\"/docs/11/sql-createfunction.html\" title=\"CREATE FUNCTION\"><code>CREATE FUNCTION</code></a> \u4e2d\u7684 <code>WITH</code> \u5b50\u53e5\uff08Michael Paquier\uff09</p>\n<p><span>PostgreSQL</span> \u5f88\u65e9\u4ee5\u524d\u5c31\u5df2\u652f\u6301\u66f4\u7b26\u5408\u6807\u51c6\u7684\u8bed\u6cd5\u6765\u5b9e\u73b0\u6b64\u529f\u80fd\u3002</p>", "text": "\u79fb\u9664 CREATE FUNCTION \u4e2d\u7684 WITH \u5b50\u53e5\uff08Michael Paquier\uff09 PostgreSQL \u5f88\u65e9\u4ee5\u524d\u5c31\u5df2\u652f\u6301\u66f4\u7b26\u5408\u6807\u51c6\u7684\u8bed\u6cd5\u6765\u5b9e\u73b0\u6b64\u529f\u80fd\u3002", "title": "\u79fb\u9664 CREATE FUNCTION \u4e2d\u7684 WITH \u5b50\u53e5", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "921bb3d803a01622c41f642f4f66cf8b29e3a539e253dd0a6b0d173761c3e179", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["4971d2a32"]], "identity_text": "Remove WITH clause in CREATE FUNCTION (Michael Paquier) PostgreSQL has long supported a more standard-compliant syntax for this capability.", "commit_aliases": ["4971d2a32"], "source_commits": ["4971d2a32"], "source_entry_id": "11.0/migration/019", "db_id": "3cccbdd25cbdc9c0bb3564745dec576b", "patch_ids": ["e0b5bcba963a61c883ea515233c7a2a0"], "statement_hash": "8375875dcb7c64b550b7fd2f590205498270caebe376f4dfdb8b2d975cecadd9", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-55f2585ac1bc4d18", "migration": true}, {"id": "11.0-ff3eda9ae3792bf5", "cves": [], "html": "<p>\u5728 PL/pgSQL \u89e6\u53d1\u5668\u51fd\u6570\u4e2d\uff0c\u672a\u8d4b\u503c\u7684 <code>OLD</code> \u548c <code>NEW</code> \u53d8\u91cf\u73b0\u5728\u8bfb\u53d6\u4e3a NULL\uff08Tom Lane\uff09</p>\n<p>\u4ee5\u524d\uff0c\u5bf9\u8fd9\u4e9b\u53d8\u91cf\u7684\u5f15\u7528\u53ef\u4ee5\u89e3\u6790\uff0c\u4f46\u65e0\u6cd5\u6267\u884c\u3002</p>", "text": "\u5728 PL/pgSQL \u89e6\u53d1\u5668\u51fd\u6570\u4e2d\uff0c\u672a\u8d4b\u503c\u7684 OLD \u548c NEW \u53d8\u91cf\u73b0\u5728\u8bfb\u53d6\u4e3a NULL\uff08Tom Lane\uff09 \u4ee5\u524d\uff0c\u5bf9\u8fd9\u4e9b\u53d8\u91cf\u7684\u5f15\u7528\u53ef\u4ee5\u89e3\u6790\uff0c\u4f46\u65e0\u6cd5\u6267\u884c\u3002", "title": "\u5728 PL/pgSQL \u89e6\u53d1\u5668\u51fd\u6570\u4e2d\uff0c\u672a\u8d4b\u503c\u7684 OLD \u548c NEW \u53d8\u91cf\u73b0\u5728\u8bfb\u53d6\u4e3a NULL", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/11.0/#id-1.11.6.27.4", "source_hash": "893abeb3bea6ccf4e04e46bbe3bbff6d0ba0df6c8e8c1797978e15061a8669e3", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["4b93f5799"]], "identity_text": "In PL/pgSQL trigger functions, the OLD and NEW variables now read as NULL when not assigned (Tom Lane) Previously, references to these variables could be parsed but not executed.", "commit_aliases": ["4b93f5799"], "source_commits": ["4b93f5799"], "source_entry_id": "11.0/migration/020", "db_id": "3a10a968211dd2f57e469ce081a0fb6d", "patch_ids": ["f114eab24a7e02f5cca2a84c5e3329c7"], "statement_hash": "a5b061ff232949ced51b689168c06f142e18a6bb650ae9cc49f239b3f31d077f", "relations": [{"rule": 2, "type": "related", "target": "a3362f67b1e652e63b477f8810eafbf7", "evidence": {"same_day": true, "patch_ids": ["f114eab24a7e02f5cca2a84c5e3329c7"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=11.0#11.0-ff3eda9ae3792bf5", "migration": true}, {"id": "11.0-59117420e19d66d1", "cves": [], "html": "<p>\u5141\u8bb8\u6839\u636e\u952e\u5217\u7684 hash \u503c\u521b\u5efa\u5206\u533a\uff08Amul Sul\uff09</p>", "text": "\u5141\u8bb8\u6839\u636e\u952e\u5217\u7684 hash \u503c\u521b\u5efa\u5206\u533a\uff08Amul Sul\uff09", "title": "\u5141\u8bb8\u6839\u636e\u952e\u5217\u7684 hash \u503c\u521b\u5efa\u5206\u533a", "commits": [], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.2", "source_hash": "11e55c3fd2c68b90e12e4a8d18713e5ab35ef293cd478bfd59544f56cfa4ec5f", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["1aba8e651"]], "identity_text": "Allow the creation of partitions based on hashing a key column (Amul Sul)", "commit_aliases": ["1aba8e651"], "source_commits": ["1aba8e651"], "source_entry_id": "11.0/changes/001", "db_id": "f7cb7d4d9f264e9a3e3d4868febbb04f", "patch_ids": ["194514b774748b3babd76e89c9041d5a"], "statement_hash": "d80ddc780f51bb6e799c5e814e146dbd9c8ed9981cac21cb5a64bc13ed039cc2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-59117420e19d66d1", "migration": false}, {"id": "11.0-b45f0210071db040", "cves": [], "html": "<p>\u652f\u6301\u5206\u533a\u8868\u4e0a\u7684\u7d22\u5f15\uff08\u00c1lvaro Herrera\uff0cAmit Langote\uff09</p>\n<p>\u5206\u533a\u8868\u4e0a\u7684<span>\u201c<span>\u7d22\u5f15</span>\u201d</span>\u5e76\u975e\u8de8\u8d8a\u6574\u4e2a\u5206\u533a\u8868\u7684\u7269\u7406\u7d22\u5f15\uff0c\u800c\u662f\u7528\u4e8e\u5728\u8868\u7684\u6bcf\u4e2a\u5206\u533a\u4e0a\u81ea\u52a8\u521b\u5efa\u7c7b\u4f3c\u7d22\u5f15\u7684\u6a21\u677f\u3002</p>\n<p>\u5982\u679c\u7d22\u5f15\u5217\u96c6\u5408\u5305\u542b\u5206\u533a\u952e\uff0c\u5219\u53ef\u4ee5\u5c06\u5206\u533a\u7d22\u5f15\u58f0\u660e\u4e3a <code>UNIQUE</code>\u3002\u5b83\u5c06\u8868\u793a\u8986\u76d6\u6574\u4e2a\u5206\u533a\u8868\u7684\u6709\u6548\u552f\u4e00\u7ea6\u675f\uff0c\u5c3d\u7ba1\u6bcf\u4e2a\u7269\u7406\u7d22\u5f15\u53ea\u5728\u5176\u81ea\u8eab\u5206\u533a\u5185\u5b9e\u65bd\u552f\u4e00\u6027\u3002</p>\n<p>\u65b0\u547d\u4ee4 <a href=\"/docs/11/sql-alterindex.html\" title=\"ALTER INDEX\"><code>ALTER INDEX ATTACH PARTITION</code></a> \u5c06\u5206\u533a\u4e0a\u7684\u73b0\u6709\u7d22\u5f15\u4e0e\u5176\u5206\u533a\u8868\u7684\u5339\u914d\u7d22\u5f15\u6a21\u677f\u5173\u8054\u8d77\u6765\u3002\u8fd9\u4e3a\u7ed9\u73b0\u6709\u5206\u533a\u8868\u8bbe\u7f6e\u65b0\u7684\u5206\u533a\u7d22\u5f15\u63d0\u4f9b\u4e86\u7075\u6d3b\u6027\u3002</p>", "text": "\u652f\u6301\u5206\u533a\u8868\u4e0a\u7684\u7d22\u5f15\uff08\u00c1lvaro Herrera\uff0cAmit Langote\uff09 \u5206\u533a\u8868\u4e0a\u7684\u201c\u7d22\u5f15\u201d\u5e76\u975e\u8de8\u8d8a\u6574\u4e2a\u5206\u533a\u8868\u7684\u7269\u7406\u7d22\u5f15\uff0c\u800c\u662f\u7528\u4e8e\u5728\u8868\u7684\u6bcf\u4e2a\u5206\u533a\u4e0a\u81ea\u52a8\u521b\u5efa\u7c7b\u4f3c\u7d22\u5f15\u7684\u6a21\u677f\u3002 \u5982\u679c\u7d22\u5f15\u5217\u96c6\u5408\u5305\u542b\u5206\u533a\u952e\uff0c\u5219\u53ef\u4ee5\u5c06\u5206\u533a\u7d22\u5f15\u58f0\u660e\u4e3a UNIQUE\u3002\u5b83\u5c06\u8868\u793a\u8986\u76d6\u6574\u4e2a\u5206\u533a\u8868\u7684\u6709\u6548\u552f\u4e00\u7ea6\u675f\uff0c\u5c3d\u7ba1\u6bcf\u4e2a\u7269\u7406\u7d22\u5f15\u53ea\u5728\u5176\u81ea\u8eab\u5206\u533a\u5185\u5b9e\u65bd\u552f\u4e00\u6027\u3002 \u65b0\u547d\u4ee4 ALTER INDEX ATTACH PARTITION \u5c06\u5206\u533a\u4e0a\u7684\u73b0\u6709\u7d22\u5f15\u4e0e\u5176\u5206\u533a\u8868\u7684\u5339\u914d\u7d22\u5f15\u6a21\u677f\u5173\u8054\u8d77\u6765\u3002\u8fd9\u4e3a\u7ed9\u73b0\u6709\u5206\u533a\u8868\u8bbe\u7f6e\u65b0\u7684\u5206\u533a\u7d22\u5f15\u63d0\u4f9b\u4e86\u7075\u6d3b\u6027\u3002", "title": "\u652f\u6301\u5206\u533a\u8868\u4e0a\u7684\u7d22\u5f15", "commits": [], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.2", "source_hash": "09d91f248d197869ecaba39a253217462cad230e134d4fb8c349b4f0439e460e", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["555ee77a9"], ["8b08f7d48"], ["eb7ed3f30"]], "identity_text": "Support indexes on partitioned tables (\u00c1lvaro Herrera, Amit Langote) An index on a partitioned table is not a physical index across the whole partitioned table, but rather a template for automatically creating similar indexes on each partition of the table. If the partition key is part of the index's column set, a partitioned index may be declared UNIQUE. It will represent a valid uniqueness constraint across the whole partitioned table, even though each physical index only enforces uniqueness within its own partition. The new command ALTER INDEX ATTACH PARTITION causes an existing index on a partition to be associated with a matching index template for its partitioned table. This provides flexibility in setting up a new partitioned index for an existing partitioned table.", "commit_aliases": ["555ee77a9", "8b08f7d48", "eb7ed3f30"], "source_commits": ["555ee77a9", "8b08f7d48", "eb7ed3f30"], "source_entry_id": "11.0/changes/002", "db_id": "d72fc05b7d427a4995beac3f67085a53", "patch_ids": ["5ab7dbf3fad9b7142e1a9ebc497b3a04", "a341f869453793cabfee85393430eafe", "ff33867a62dae9d424759786a99d73d1"], "statement_hash": "75e1306aa923c835b68f797a11c28bc5b1a1e1883880ee48a72919b63a62bf3c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-b45f0210071db040", "migration": false}, {"id": "11.0-ea893f3932a4de8a", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u5b9a\u4e49\u5916\u952e\uff08\u00c1lvaro Herrera\uff09</p>", "text": "\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u5b9a\u4e49\u5916\u952e\uff08\u00c1lvaro Herrera\uff09", "title": "\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u5b9a\u4e49\u5916\u952e", "commits": [], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.2", "source_hash": "dc67bc785f7e1778043b758f310adc04b5852b98cdb4a903aeba155d7d10ba9f", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["3de241dba"]], "identity_text": "Allow foreign keys on partitioned tables (\u00c1lvaro Herrera)", "commit_aliases": ["3de241dba"], "source_commits": ["3de241dba"], "source_entry_id": "11.0/changes/003", "db_id": "0c7773820a30b56570d6f95aedfd1133", "patch_ids": ["94ca84cd999984e6a0b8c8ea9b634215"], "statement_hash": "5bd0ab22d8a44ac8754731968e3f4c5e559c0d9a06c5329944cdd698c6f9dbc4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-ea893f3932a4de8a", "migration": false}, {"id": "11.0-ba0b680dd97692d1", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u5b9a\u4e49 <code>FOR EACH ROW</code> \u89e6\u53d1\u5668\uff08\u00c1lvaro Herrera\uff09</p>\n<p>\u5728\u5206\u533a\u8868\u4e0a\u521b\u5efa\u89e6\u53d1\u5668\uff0c\u4f1a\u81ea\u52a8\u5728\u6240\u6709\u73b0\u6709\u548c\u672a\u6765\u5206\u533a\u4e0a\u521b\u5efa\u89e6\u53d1\u5668\u3002\u8fd9\u4e5f\u4f7f\u5206\u533a\u8868\u80fd\u591f\u4f7f\u7528\u5ef6\u8fdf\u552f\u4e00\u7ea6\u675f\u3002</p>", "text": "\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u5b9a\u4e49 FOR EACH ROW \u89e6\u53d1\u5668\uff08\u00c1lvaro Herrera\uff09 \u5728\u5206\u533a\u8868\u4e0a\u521b\u5efa\u89e6\u53d1\u5668\uff0c\u4f1a\u81ea\u52a8\u5728\u6240\u6709\u73b0\u6709\u548c\u672a\u6765\u5206\u533a\u4e0a\u521b\u5efa\u89e6\u53d1\u5668\u3002\u8fd9\u4e5f\u4f7f\u5206\u533a\u8868\u80fd\u591f\u4f7f\u7528\u5ef6\u8fdf\u552f\u4e00\u7ea6\u675f\u3002", "title": "\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u5b9a\u4e49 FOR EACH ROW \u89e6\u53d1\u5668", "commits": [], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.2", "source_hash": "cd41f776dce1c2c452de71398963679266387c8bf3d67f8d6f3df01c3ce559b3", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["86f575948"]], "identity_text": "Allow FOR EACH ROW triggers on partitioned tables (\u00c1lvaro Herrera) Creation of a trigger on a partitioned table automatically creates triggers on all existing and future partitions. This also allows deferred unique constraints on partitioned tables.", "commit_aliases": ["86f575948"], "source_commits": ["86f575948"], "source_entry_id": "11.0/changes/004", "db_id": "7d6202919b4586a86ada3b9fe59af082", "patch_ids": ["2b43e0cd05fd6b6d7632c98a936ad926"], "statement_hash": "1b03ebef716f00a393887f86f649f7e30c34fe9ffdb5ed2b50e28a8ced284685", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-ba0b680dd97692d1", "migration": false}, {"id": "11.0-9ae3e4f50e43c281", "cves": [], "html": "<p>\u5141\u8bb8\u5206\u533a\u8868\u5177\u6709\u9ed8\u8ba4\u5206\u533a\uff08Jeevan Ladhe\uff0cBeena Emerson\uff0cAshutosh Bapat\uff0cRahila Syed\uff0cRobert Haas\uff09</p>\n<p>\u9ed8\u8ba4\u5206\u533a\u5b58\u50a8\u4e0d\u5339\u914d\u5176\u4ed6\u4efb\u4f55\u5df2\u5b9a\u4e49\u5206\u533a\u7684\u884c\uff0c\u5e76\u636e\u6b64\u88ab\u641c\u7d22\u3002</p>", "text": "\u5141\u8bb8\u5206\u533a\u8868\u5177\u6709\u9ed8\u8ba4\u5206\u533a\uff08Jeevan Ladhe\uff0cBeena Emerson\uff0cAshutosh Bapat\uff0cRahila Syed\uff0cRobert Haas\uff09 \u9ed8\u8ba4\u5206\u533a\u5b58\u50a8\u4e0d\u5339\u914d\u5176\u4ed6\u4efb\u4f55\u5df2\u5b9a\u4e49\u5206\u533a\u7684\u884c\uff0c\u5e76\u636e\u6b64\u88ab\u641c\u7d22\u3002", "title": "\u5141\u8bb8\u5206\u533a\u8868\u5177\u6709\u9ed8\u8ba4\u5206\u533a", "commits": [], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.2", "source_hash": "9d9e2098b2319a321ba73f8de42ec125424bf45c54362e4e4d356446612f607e", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["6f6b99d13"], ["72cf7f310"]], "identity_text": "Allow partitioned tables to have a default partition (Jeevan Ladhe, Beena Emerson, Ashutosh Bapat, Rahila Syed, Robert Haas) The default partition will store rows that don't match any of the other defined partitions, and is searched accordingly.", "commit_aliases": ["6f6b99d13", "72cf7f310"], "source_commits": ["6f6b99d13", "72cf7f310"], "source_entry_id": "11.0/changes/005", "db_id": "a090353dc7e17740c7bdec216dd25f67", "patch_ids": ["434bfc281b2b0fd143b31d7eaab8272e", "d6b1868800d61b8f4183e57bfe95403e"], "statement_hash": "aed453c47c8a416546140b6e6ebcdaf1acc5acff4d4fb887b0daf143ea385c09", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-9ae3e4f50e43c281", "migration": false}, {"id": "11.0-5e1b7ed3d5b2217e", "cves": [], "html": "<p>\u66f4\u6539\u5206\u533a\u952e\u5217\u7684 <code>UPDATE</code> \u8bed\u53e5\u73b0\u5728\u4f1a\u5c06\u53d7\u5f71\u54cd\u7684\u884c\u79fb\u52a8\u5230\u9002\u5f53\u7684\u5206\u533a\uff08Amit Khandekar\uff09</p>", "text": "\u66f4\u6539\u5206\u533a\u952e\u5217\u7684 UPDATE \u8bed\u53e5\u73b0\u5728\u4f1a\u5c06\u53d7\u5f71\u54cd\u7684\u884c\u79fb\u52a8\u5230\u9002\u5f53\u7684\u5206\u533a\uff08Amit Khandekar\uff09", "title": "\u66f4\u6539\u5206\u533a\u952e\u5217\u7684 UPDATE \u8bed\u53e5\u73b0\u5728\u4f1a\u5c06\u53d7\u5f71\u54cd\u7684\u884c\u79fb\u52a8\u5230\u9002\u5f53\u7684\u5206\u533a", "commits": [], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.2", "source_hash": "94596f6d3bb090343d91f90c6ff6b397eadddd955aab7d7531c5ebcf72e2ccce", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["2f1784410"]], "identity_text": "UPDATE statements that change a partition key column now cause affected rows to be moved to the appropriate partitions (Amit Khandekar)", "commit_aliases": ["2f1784410"], "source_commits": ["2f1784410"], "source_entry_id": "11.0/changes/006", "db_id": "950d9a12b523abd981f23d93636390d8", "patch_ids": ["0feecd873e1e184b14c0fefaae3b69fb"], "statement_hash": "78b5268f96133fd77fde7c25e6a70aaf9ece45f31b015b6e1191af8b0db09364", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-5e1b7ed3d5b2217e", "migration": false}, {"id": "11.0-0db85a32f89b22d1", "cves": [], "html": "<p>\u5141\u8bb8\u5206\u533a\u8868\u4e0a\u7684 <code>INSERT</code>\u3001<code>UPDATE</code> \u548c <code>COPY</code> \u5c06\u884c\u6b63\u786e\u8def\u7531\u5230\u5916\u90e8\u5206\u533a\uff08Etsuro Fujita\uff0cAmit Langote\uff09</p>\n<p><code>postgres_fdw</code> \u5916\u90e8\u8868\u652f\u6301\u6b64\u529f\u80fd\u3002\u7531\u4e8e\u4e3a\u6b64\u8c03\u7528 <code>ExecForeignInsert</code> \u56de\u8c03\u51fd\u6570\u7684\u65b9\u5f0f\u4e0e\u4ee5\u524d\u4e0d\u540c\uff0c\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u5fc5\u987b\u76f8\u5e94\u4fee\u6539\u4ee5\u9002\u5e94\u6b64\u66f4\u6539\u3002</p>", "text": "\u5141\u8bb8\u5206\u533a\u8868\u4e0a\u7684 INSERT\u3001UPDATE \u548c COPY \u5c06\u884c\u6b63\u786e\u8def\u7531\u5230\u5916\u90e8\u5206\u533a\uff08Etsuro Fujita\uff0cAmit Langote\uff09 postgres_fdw \u5916\u90e8\u8868\u652f\u6301\u6b64\u529f\u80fd\u3002\u7531\u4e8e\u4e3a\u6b64\u8c03\u7528 ExecForeignInsert \u56de\u8c03\u51fd\u6570\u7684\u65b9\u5f0f\u4e0e\u4ee5\u524d\u4e0d\u540c\uff0c\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u5fc5\u987b\u76f8\u5e94\u4fee\u6539\u4ee5\u9002\u5e94\u6b64\u66f4\u6539\u3002", "title": "\u5141\u8bb8\u5206\u533a\u8868\u4e0a\u7684 INSERT\u3001UPDATE \u548c COPY \u5c06\u884c\u6b63\u786e\u8def\u7531\u5230\u5916\u90e8\u5206\u533a", "commits": [], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.2", "source_hash": "f708e373fb2cea9940c751fc9cc0eac09afd27b0c307d046f95227c585ba7ffc", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["3d956d956"]], "identity_text": "Allow INSERT, UPDATE, and COPY on partitioned tables to properly route rows to foreign partitions (Etsuro Fujita, Amit Langote) This is supported by postgres_fdw foreign tables. Since the ExecForeignInsert callback function is called for this in a different way than it used to be, foreign data wrappers must be modified to cope with this change.", "commit_aliases": ["3d956d956"], "source_commits": ["3d956d956"], "source_entry_id": "11.0/changes/007", "db_id": "b6fc302a95d7e4562a7c1aebdd906e30", "patch_ids": ["4b757543bac150c278156ee58c1bac29"], "statement_hash": "b4e5f0b07d6e96953c54686cbc006e25e46b925e51caee10240c72754078b92f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-0db85a32f89b22d1", "migration": false}, {"id": "11.0-66068e80a20b6dca", "cves": [], "html": "<p>\u52a0\u5feb\u67e5\u8be2\u5904\u7406\u671f\u95f4\u7684\u5206\u533a\u6392\u9664\uff08Amit Langote\uff0cDavid Rowley\uff0cDilip Kumar\uff09</p>\n<p>\u8fd9\u52a0\u5feb\u4e86\u5bf9\u5177\u6709\u5927\u91cf\u5206\u533a\u7684\u5206\u533a\u8868\u7684\u8bbf\u95ee\u3002</p>", "text": "\u52a0\u5feb\u67e5\u8be2\u5904\u7406\u671f\u95f4\u7684\u5206\u533a\u6392\u9664\uff08Amit Langote\uff0cDavid Rowley\uff0cDilip Kumar\uff09 \u8fd9\u52a0\u5feb\u4e86\u5bf9\u5177\u6709\u5927\u91cf\u5206\u533a\u7684\u5206\u533a\u8868\u7684\u8bbf\u95ee\u3002", "title": "\u52a0\u5feb\u67e5\u8be2\u5904\u7406\u671f\u95f4\u7684\u5206\u533a\u6392\u9664", "commits": [], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.2", "source_hash": "7f642df7b782ddb3cf168bee3ae7796785e4625279f9ae5840d2838ba121e7fb", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["055fb8d33"], ["9aef17316"], ["9fdb675fc"], ["f724022d0"]], "identity_text": "Allow faster partition elimination during query processing (Amit Langote, David Rowley, Dilip Kumar) This speeds access to partitioned tables with many partitions.", "commit_aliases": ["055fb8d33", "9aef17316", "9fdb675fc", "f724022d0"], "source_commits": ["055fb8d33", "9aef17316", "9fdb675fc", "f724022d0"], "source_entry_id": "11.0/changes/008", "db_id": "04be6fa026234526485799d43b324c90", "patch_ids": ["43f08e14edc9aa39d146e6feed033b5e", "48df2b8793fbd9e9af3599d5123c8ab0", "606557f0940af2073b36c96583ac1c7c", "a21bda5efcbb10a8727735a7d332ff4a"], "statement_hash": "a31961ad07ce3b19c800101372954cd30abd16a9c1a777a5c57ba3625141edd6", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-66068e80a20b6dca", "migration": false}, {"id": "11.0-df0a2b4745fc1ea4", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u67e5\u8be2\u6267\u884c\u671f\u95f4\u6392\u9664\u5206\u533a\uff08David Rowley\uff0cBeena Emerson\uff09</p>\n<p>\u4ee5\u524d\uff0c\u5206\u533a\u6392\u9664\u4ec5\u5728\u89c4\u5212\u65f6\u8fdb\u884c\uff0c\u56e0\u6b64\u8bb8\u591a\u8fde\u63a5\u548c\u9884\u5907\u67e5\u8be2\u65e0\u6cd5\u4f7f\u7528\u5206\u533a\u6392\u9664\u3002</p>", "text": "\u5141\u8bb8\u5728\u67e5\u8be2\u6267\u884c\u671f\u95f4\u6392\u9664\u5206\u533a\uff08David Rowley\uff0cBeena Emerson\uff09 \u4ee5\u524d\uff0c\u5206\u533a\u6392\u9664\u4ec5\u5728\u89c4\u5212\u65f6\u8fdb\u884c\uff0c\u56e0\u6b64\u8bb8\u591a\u8fde\u63a5\u548c\u9884\u5907\u67e5\u8be2\u65e0\u6cd5\u4f7f\u7528\u5206\u533a\u6392\u9664\u3002", "title": "\u5141\u8bb8\u5728\u67e5\u8be2\u6267\u884c\u671f\u95f4\u6392\u9664\u5206\u533a", "commits": [], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.2", "source_hash": "2aab3bab67d46f7fc4ed1bb73cafba823169c33dd0e17894b21e9b584acc2d2d", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["499be013d"]], "identity_text": "Allow partition elimination during query execution (David Rowley, Beena Emerson) Previously, partition elimination only happened at planning time, meaning many joins and prepared queries could not use partition elimination.", "commit_aliases": ["499be013d"], "source_commits": ["499be013d"], "source_entry_id": "11.0/changes/009", "db_id": "7e8f633201ff318bd320ea749fae06c7", "patch_ids": ["70e0afea6729c77502adb2f42a1048b8"], "statement_hash": "78e23bccb69798ba20a75be445dcb4e4933bab6afdf00adec16a26e1809ef408", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-df0a2b4745fc1ea4", "migration": false}, {"id": "11.0-57d1b0b652630f44", "cves": [], "html": "<p>\u5728\u5206\u533a\u8868\u4e4b\u95f4\u7684\u7b49\u503c\u8fde\u63a5\u4e2d\uff0c\u5141\u8bb8\u76f4\u63a5\u8fde\u63a5\u5339\u914d\u7684\u5206\u533a\uff08Ashutosh Bapat\uff09</p>\n<p>\u6b64\u7279\u6027\u9ed8\u8ba4\u7981\u7528\uff0c\u4f46\u53ef\u4ee5\u901a\u8fc7\u66f4\u6539 <a href=\"/docs/11/runtime-config-query.html#GUC-ENABLE-PARTITIONWISE-JOIN\"><code>enable_partitionwise_join</code></a> \u542f\u7528\u3002</p>", "text": "\u5728\u5206\u533a\u8868\u4e4b\u95f4\u7684\u7b49\u503c\u8fde\u63a5\u4e2d\uff0c\u5141\u8bb8\u76f4\u63a5\u8fde\u63a5\u5339\u914d\u7684\u5206\u533a\uff08Ashutosh Bapat\uff09 \u6b64\u7279\u6027\u9ed8\u8ba4\u7981\u7528\uff0c\u4f46\u53ef\u4ee5\u901a\u8fc7\u66f4\u6539 enable_partitionwise_join \u542f\u7528\u3002", "title": "\u5728\u5206\u533a\u8868\u4e4b\u95f4\u7684\u7b49\u503c\u8fde\u63a5\u4e2d\uff0c\u5141\u8bb8\u76f4\u63a5\u8fde\u63a5\u5339\u914d\u7684\u5206\u533a", "commits": [], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.2", "source_hash": "505d80d9ec655989b6c957202481ad9c140a07ca87eea0c61c6b4c54e05cd66f", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["2fb1abaeb"], ["e139f1953"], ["f49842d1e"]], "identity_text": "In an equality join between partitioned tables, allow matching partitions to be joined directly (Ashutosh Bapat) This feature is disabled by default but can be enabled by changing enable_partitionwise_join.", "commit_aliases": ["2fb1abaeb", "e139f1953", "f49842d1e"], "source_commits": ["2fb1abaeb", "e139f1953", "f49842d1e"], "source_entry_id": "11.0/changes/010", "db_id": "9f1dff93addd5e6ccfc1d5cf5bc93924", "patch_ids": ["0148c002d7ca693a052a743d05ecfa5f", "447a1218b7a0008691ae64608e3d0347", "4cce865ecbe08ad30eae3ba4b7cb2473"], "statement_hash": "6d5d2c2e7fb7d79ac1d07cf8eb001c19eba92fde05a378e7e831e6344de2ee00", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-57d1b0b652630f44", "migration": false}, {"id": "11.0-3ba31d155d2c5608", "cves": [], "html": "<p>\u5141\u8bb8\u5bf9\u5206\u533a\u8868\u4e0a\u7684\u805a\u5408\u51fd\u6570\u6309\u5206\u533a\u5206\u522b\u6c42\u503c\uff0c\u968f\u540e\u5408\u5e76\u7ed3\u679c\uff08Jeevan Chalke\uff0cAshutosh Bapat\uff0cRobert Haas\uff09</p>\n<p>\u6b64\u7279\u6027\u9ed8\u8ba4\u7981\u7528\uff0c\u4f46\u53ef\u4ee5\u901a\u8fc7\u66f4\u6539 <a href=\"/docs/11/runtime-config-query.html#GUC-ENABLE-PARTITIONWISE-AGGREGATE\"><code>enable_partitionwise_aggregate</code></a> \u542f\u7528\u3002</p>", "text": "\u5141\u8bb8\u5bf9\u5206\u533a\u8868\u4e0a\u7684\u805a\u5408\u51fd\u6570\u6309\u5206\u533a\u5206\u522b\u6c42\u503c\uff0c\u968f\u540e\u5408\u5e76\u7ed3\u679c\uff08Jeevan Chalke\uff0cAshutosh Bapat\uff0cRobert Haas\uff09 \u6b64\u7279\u6027\u9ed8\u8ba4\u7981\u7528\uff0c\u4f46\u53ef\u4ee5\u901a\u8fc7\u66f4\u6539 enable_partitionwise_aggregate \u542f\u7528\u3002", "title": "\u5141\u8bb8\u5bf9\u5206\u533a\u8868\u4e0a\u7684\u805a\u5408\u51fd\u6570\u6309\u5206\u533a\u5206\u522b\u6c42\u503c\uff0c\u968f\u540e\u5408\u5e76\u7ed3\u679c", "commits": [], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.2", "source_hash": "336bf7f0d4876b4637d5843ed841bfb97c5053368f864f1758b8405d080122a5", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["9fd8b7d63"], ["e2f1eb0ee"]], "identity_text": "Allow aggregate functions on partitioned tables to be evaluated separately for each partition, subsequently merging the results (Jeevan Chalke, Ashutosh Bapat, Robert Haas) This feature is disabled by default but can be enabled by changing enable_partitionwise_aggregate.", "commit_aliases": ["9fd8b7d63", "e2f1eb0ee"], "source_commits": ["9fd8b7d63", "e2f1eb0ee"], "source_entry_id": "11.0/changes/011", "db_id": "44f21364e31dfd8522d7a01889731157", "patch_ids": ["3bef689ffc2a98f5414ffd72f4033088", "87c6820de261a5d378c20c4ba3f23d19"], "statement_hash": "56df2f82008c99f2a7623254ca73cfdd6035b60b20adccf4448698ac9c204974", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-3ba31d155d2c5608", "migration": false}, {"id": "11.0-062da017cc7c48e7", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/11/postgres-fdw.html\" title=\"F.33.\u00a0postgres_fdw\"><code>postgres_fdw</code></a> \u5c06\u805a\u5408\u4e0b\u63a8\u5230\u4f5c\u4e3a\u5206\u533a\u7684\u5916\u90e8\u8868\uff08Jeevan Chalke\uff09</p>", "text": "\u5141\u8bb8 postgres_fdw \u5c06\u805a\u5408\u4e0b\u63a8\u5230\u4f5c\u4e3a\u5206\u533a\u7684\u5916\u90e8\u8868\uff08Jeevan Chalke\uff09", "title": "\u5141\u8bb8 postgres_fdw \u5c06\u805a\u5408\u4e0b\u63a8\u5230\u4f5c\u4e3a\u5206\u533a\u7684\u5916\u90e8\u8868", "commits": [], "section": "\u670d\u52a1\u5668 / \u5206\u533a", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.2", "source_hash": "fbf833ecf1f1a2407438032a4ba5d94b057b83298e3c3a531030b8f1d23fa086", "section_path": ["\u670d\u52a1\u5668", "\u5206\u533a"], "commit_groups": [["7e0d64c7a"]], "identity_text": "Allow postgres_fdw to push down aggregates to foreign tables that are partitions (Jeevan Chalke)", "commit_aliases": ["7e0d64c7a"], "source_commits": ["7e0d64c7a"], "source_entry_id": "11.0/changes/012", "db_id": "aa51051328181541cd022765486fa6c5", "patch_ids": ["60052ed7971443c33c8e4a78ff70f193"], "statement_hash": "c41b12e3c7db8df08ae6d10522b587b74acde453d4f7ccb4c893117521929865", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-062da017cc7c48e7", "migration": false}, {"id": "11.0-4e7c43e78fab8994", "cves": [], "html": "<p>\u5141\u8bb8\u5e76\u884c\u6784\u5efa B-\u6811\u7d22\u5f15\uff08Peter Geoghegan\uff0cRushabh Lathia\uff0cHeikki Linnakangas\uff09</p>", "text": "\u5141\u8bb8\u5e76\u884c\u6784\u5efa B-\u6811\u7d22\u5f15\uff08Peter Geoghegan\uff0cRushabh Lathia\uff0cHeikki Linnakangas\uff09", "title": "\u5141\u8bb8\u5e76\u884c\u6784\u5efa B-\u6811\u7d22\u5f15", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.3", "source_hash": "db1cde0d14ee2d0513ea8231c9ee5e4b638a0205981f862f8cd4e941173aeab5", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["9da0cc352"]], "identity_text": "Allow parallel building of a btree index (Peter Geoghegan, Rushabh Lathia, Heikki Linnakangas)", "commit_aliases": ["9da0cc352"], "source_commits": ["9da0cc352"], "source_entry_id": "11.0/changes/013", "db_id": "ebebcb159958434c7a70968c23e45efa", "patch_ids": ["2c9c56459f484ad9645918bc5f548db7"], "statement_hash": "38142ba29149c0a51365408497f76dd359050b4781d2dc8217f27272786ccf88", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-4e7c43e78fab8994", "migration": false}, {"id": "11.0-49f0f972c189bbb7", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528\u5171\u4eab hash \u8868\u5e76\u884c\u6267\u884c\u54c8\u5e0c\u8fde\u63a5\uff08Thomas Munro\uff09</p>", "text": "\u5141\u8bb8\u4f7f\u7528\u5171\u4eab hash \u8868\u5e76\u884c\u6267\u884c\u54c8\u5e0c\u8fde\u63a5\uff08Thomas Munro\uff09", "title": "\u5141\u8bb8\u4f7f\u7528\u5171\u4eab hash \u8868\u5e76\u884c\u6267\u884c\u54c8\u5e0c\u8fde\u63a5", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.3", "source_hash": "d11762aa88afbc10ebc63c7eed2512e24eb7b869384b2be50f80b74269bba3b8", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["180428404"]], "identity_text": "Allow hash joins to be performed in parallel using a shared hash table (Thomas Munro)", "commit_aliases": ["180428404"], "source_commits": ["180428404"], "source_entry_id": "11.0/changes/014", "db_id": "31c36b3f68c262b2ed036aa00cf5080f", "patch_ids": ["3231d47f627676812da6968fb733723b"], "statement_hash": "433681317904435eb293602ed6bb0c77e69dff46d8a42deeb7efc78697cbd0f9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-49f0f972c189bbb7", "migration": false}, {"id": "11.0-36677c155a4a46cc", "cves": [], "html": "<p>\u5982\u679c\u5404\u6761 <code>SELECT</code> \u65e0\u6cd5\u5206\u522b\u5e76\u884c\u5316\uff0c\u5219\u5141\u8bb8 <code>UNION</code> \u5e76\u884c\u8fd0\u884c\u5404\u6761 <code>SELECT</code>\uff08Amit Khandekar\uff0cRobert Haas\uff0cAmul Sul\uff09</p>", "text": "\u5982\u679c\u5404\u6761 SELECT \u65e0\u6cd5\u5206\u522b\u5e76\u884c\u5316\uff0c\u5219\u5141\u8bb8 UNION \u5e76\u884c\u8fd0\u884c\u5404\u6761 SELECT\uff08Amit Khandekar\uff0cRobert Haas\uff0cAmul Sul\uff09", "title": "\u5982\u679c\u5404\u6761 SELECT \u65e0\u6cd5\u5206\u522b\u5e76\u884c\u5316\uff0c\u5219\u5141\u8bb8 UNION \u5e76\u884c\u8fd0\u884c\u5404\u6761 SELECT", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.3", "source_hash": "0b55cb2b1296bb43c85a3acf8ca76220c9b51a193e5d97344c18196018e0dbd2", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["88ba0ae2a"], ["ab7271677"]], "identity_text": "Allow UNION to run each SELECT in parallel if the individual SELECTs cannot be parallelized (Amit Khandekar, Robert Haas, Amul Sul)", "commit_aliases": ["88ba0ae2a", "ab7271677"], "source_commits": ["88ba0ae2a", "ab7271677"], "source_entry_id": "11.0/changes/015", "db_id": "9ab18149bf30a44705b6fa2b2403debe", "patch_ids": ["457c25b7a415826ca03aceac35deb1f2", "c400bcb186f456151e538f876d061e4c"], "statement_hash": "750d99fe8ada34b14751dbd07736e10c363777e70a1405cc8b9bc85b6682486a", "relations": [{"rule": 2, "type": "related", "target": "5b4957aa1d555480e40c68785e28f2b2", "evidence": {"same_day": true, "patch_ids": ["457c25b7a415826ca03aceac35deb1f2", "c400bcb186f456151e538f876d061e4c"], "ambiguous_patch_ids": ["457c25b7a415826ca03aceac35deb1f2", "c400bcb186f456151e538f876d061e4c"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-36677c155a4a46cc", "migration": false}, {"id": "11.0-46825eb94ec26780", "cves": [], "html": "<p>\u5141\u8bb8\u5206\u533a\u626b\u63cf\u66f4\u9ad8\u6548\u5730\u4f7f\u7528\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\uff08Amit Khandekar\uff0cRobert Haas\uff0cAmul Sul\uff09</p>", "text": "\u5141\u8bb8\u5206\u533a\u626b\u63cf\u66f4\u9ad8\u6548\u5730\u4f7f\u7528\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\uff08Amit Khandekar\uff0cRobert Haas\uff0cAmul Sul\uff09", "title": "\u5141\u8bb8\u5206\u533a\u626b\u63cf\u66f4\u9ad8\u6548\u5730\u4f7f\u7528\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.3", "source_hash": "ceeddd9150462be93a5bc2af2afb7683b54e2ff2f93081dfe923d974fd8bd8de", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["88ba0ae2a"], ["ab7271677"]], "identity_text": "Allow partition scans to more efficiently use parallel workers (Amit Khandekar, Robert Haas, Amul Sul)", "commit_aliases": ["88ba0ae2a", "ab7271677"], "source_commits": ["88ba0ae2a", "ab7271677"], "source_entry_id": "11.0/changes/016", "db_id": "5b4957aa1d555480e40c68785e28f2b2", "patch_ids": ["457c25b7a415826ca03aceac35deb1f2", "c400bcb186f456151e538f876d061e4c"], "statement_hash": "ec2ed8211c34a41619081f1957d1c4a9a7a8755aa8298b747a37851b1ec69cd8", "relations": [{"rule": 2, "type": "related", "target": "9ab18149bf30a44705b6fa2b2403debe", "evidence": {"same_day": true, "patch_ids": ["457c25b7a415826ca03aceac35deb1f2", "c400bcb186f456151e538f876d061e4c"], "ambiguous_patch_ids": ["457c25b7a415826ca03aceac35deb1f2", "c400bcb186f456151e538f876d061e4c"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-46825eb94ec26780", "migration": false}, {"id": "11.0-60ac920933ae9f5f", "cves": [], "html": "<p>\u5141\u8bb8\u5c06 <code>LIMIT</code> \u4f20\u9012\u7ed9\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\uff08Robert Haas\uff0cTom Lane\uff09</p>\n<p>\u8fd9\u4f7f\u5de5\u4f5c\u8fdb\u7a0b\u80fd\u591f\u51cf\u5c11\u8fd4\u56de\u7ed3\u679c\uff0c\u5e76\u4f7f\u7528\u6709\u9488\u5bf9\u6027\u7684\u7d22\u5f15\u626b\u63cf\u3002</p>", "text": "\u5141\u8bb8\u5c06 LIMIT \u4f20\u9012\u7ed9\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\uff08Robert Haas\uff0cTom Lane\uff09 \u8fd9\u4f7f\u5de5\u4f5c\u8fdb\u7a0b\u80fd\u591f\u51cf\u5c11\u8fd4\u56de\u7ed3\u679c\uff0c\u5e76\u4f7f\u7528\u6709\u9488\u5bf9\u6027\u7684\u7d22\u5f15\u626b\u63cf\u3002", "title": "\u5141\u8bb8\u5c06 LIMIT \u4f20\u9012\u7ed9\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.3", "source_hash": "d590d55b923012dc29e2732ed6a6f3942308bea790764414a940b800e5ab8ffd", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["3452dc524"]], "identity_text": "Allow LIMIT to be passed to parallel workers (Robert Haas, Tom Lane) This allows workers to reduce returned results and use targeted index scans.", "commit_aliases": ["3452dc524"], "source_commits": ["3452dc524"], "source_entry_id": "11.0/changes/017", "db_id": "30df37453e20ca98232664b124039f4b", "patch_ids": ["1be8b1adc84325ccba41b724023c2e8b"], "statement_hash": "d0e795a7c3b810f98b7c28a67b1142d1cf0c7d0e112cdee0eaa80a9674afd95e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-60ac920933ae9f5f", "migration": false}, {"id": "11.0-ad59df825403ddc5", "cves": [], "html": "<p>\u5141\u8bb8\u5355\u6b21\u6c42\u503c\u67e5\u8be2\uff08\u4f8b\u5982 <code>WHERE</code> \u5b50\u53e5\u4e2d\u7684\u805a\u5408\u67e5\u8be2\uff09\u4ee5\u53ca\u76ee\u6807\u5217\u8868\u4e2d\u7684\u51fd\u6570\u5e76\u884c\u6267\u884c\uff08Amit Kapila\uff0cRobert Haas\uff09</p>", "text": "\u5141\u8bb8\u5355\u6b21\u6c42\u503c\u67e5\u8be2\uff08\u4f8b\u5982 WHERE \u5b50\u53e5\u4e2d\u7684\u805a\u5408\u67e5\u8be2\uff09\u4ee5\u53ca\u76ee\u6807\u5217\u8868\u4e2d\u7684\u51fd\u6570\u5e76\u884c\u6267\u884c\uff08Amit Kapila\uff0cRobert Haas\uff09", "title": "\u5141\u8bb8\u5355\u6b21\u6c42\u503c\u67e5\u8be2\uff08\u4f8b\u5982 WHERE \u5b50\u53e5\u4e2d\u7684\u805a\u5408\u67e5\u8be2\uff09\u4ee5\u53ca\u76ee\u6807\u5217\u8868\u4e2d\u7684\u51fd\u6570\u5e76\u884c\u6267\u884c", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.3", "source_hash": "26ce97bf6117ae138a57a9824b94dde5bcabad9c72913c97ddce6aea2368fd85", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["11cf92f6e"], ["3f90ec859"], ["e89a71fb4"]], "identity_text": "Allow single-evaluation queries, e.g., WHERE clause aggregate queries, and functions in the target list to be parallelized (Amit Kapila, Robert Haas)", "commit_aliases": ["11cf92f6e", "3f90ec859", "e89a71fb4"], "source_commits": ["11cf92f6e", "3f90ec859", "e89a71fb4"], "source_entry_id": "11.0/changes/018", "db_id": "6921601e548922177857c5d9a863b97e", "patch_ids": ["65f46529ac0e5b9a09541c2a835f00c8", "84107a026ee9a9c573a3d0417c5f2707", "9325816eb6a477aa09aac32dcf9ddab4"], "statement_hash": "090239b014323f30bccaf0ee12de27a755e1aab44aba5cbaa4ad19330bd0eb87", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-ad59df825403ddc5", "migration": false}, {"id": "11.0-d9de68bf35c4aa4e", "cves": [], "html": "<p>\u6dfb\u52a0\u670d\u52a1\u5668\u53c2\u6570 <a href=\"/docs/11/runtime-config-query.html#GUC-PARALLEL-LEADER-PARTICIPATION\"><code>parallel_leader_participation</code></a>\uff0c\u4ee5\u63a7\u5236\u9886\u5bfc\u8005\u662f\u5426\u4e5f\u6267\u884c\u5b50\u8ba1\u5212\uff08Thomas Munro\uff09</p>\n<p>\u9ed8\u8ba4\u542f\u7528\uff0c\u610f\u5473\u7740\u9886\u5bfc\u8005\u5c06\u6267\u884c\u5b50\u8ba1\u5212\u3002</p>", "text": "\u6dfb\u52a0\u670d\u52a1\u5668\u53c2\u6570 parallel_leader_participation\uff0c\u4ee5\u63a7\u5236\u9886\u5bfc\u8005\u662f\u5426\u4e5f\u6267\u884c\u5b50\u8ba1\u5212\uff08Thomas Munro\uff09 \u9ed8\u8ba4\u542f\u7528\uff0c\u610f\u5473\u7740\u9886\u5bfc\u8005\u5c06\u6267\u884c\u5b50\u8ba1\u5212\u3002", "title": "\u6dfb\u52a0\u670d\u52a1\u5668\u53c2\u6570 parallel_leader_participation\uff0c\u4ee5\u63a7\u5236\u9886\u5bfc\u8005\u662f\u5426\u4e5f\u6267\u884c\u5b50\u8ba1\u5212", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.3", "source_hash": "794ce133d5cac0266f8545c6981f9faee1ab00872b7454600b97c200e2df1248", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["e5253fdc4"]], "identity_text": "Add server parameter parallel_leader_participation to control whether the leader also executes subplans (Thomas Munro) The default is enabled, meaning the leader will execute subplans.", "commit_aliases": ["e5253fdc4"], "source_commits": ["e5253fdc4"], "source_entry_id": "11.0/changes/019", "db_id": "b134e0a76a7aee98a1afcac2792b8de4", "patch_ids": ["01e563d1799001dfd99ef9fe35b40c37"], "statement_hash": "b91357664ec5d7f37fb805c30cf11e2b16b3f20107382d65f389037fc723dfc3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-d9de68bf35c4aa4e", "migration": false}, {"id": "11.0-c564e5cd479af39c", "cves": [], "html": "<p>\u5141\u8bb8\u5e76\u884c\u6267\u884c <code>CREATE TABLE ... AS</code>\u3001<code>SELECT INTO</code> \u548c <code>CREATE MATERIALIZED VIEW</code> \u547d\u4ee4\uff08Haribabu Kommi\uff09</p>", "text": "\u5141\u8bb8\u5e76\u884c\u6267\u884c CREATE TABLE ... AS\u3001SELECT INTO \u548c CREATE MATERIALIZED VIEW \u547d\u4ee4\uff08Haribabu Kommi\uff09", "title": "\u5141\u8bb8\u5e76\u884c\u6267\u884c CREATE TABLE ... AS\u3001SELECT INTO \u548c CREATE MATERIALIZED VIEW \u547d\u4ee4", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.3", "source_hash": "b5519faedd277dbf9e180830abb76664eb3480a61b27f0292687f838e5295e35", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["e9baa5e9f"]], "identity_text": "Allow parallelization of commands CREATE TABLE ... AS, SELECT INTO, and CREATE MATERIALIZED VIEW (Haribabu Kommi)", "commit_aliases": ["e9baa5e9f"], "source_commits": ["e9baa5e9f"], "source_entry_id": "11.0/changes/020", "db_id": "ad309561a89639a6aa19395b36c923f2", "patch_ids": ["150f122ba1d6744993080a89f415a61c"], "statement_hash": "94d2055493d8e577193e80e94ff856533fea901202e0835a3454b624c816deb6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-c564e5cd479af39c", "migration": false}, {"id": "11.0-cf28f569b2d5f98b", "cves": [], "html": "<p>\u63d0\u9ad8\u4f7f\u7528\u5927\u91cf\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u65f6\u987a\u5e8f\u626b\u63cf\u7684\u6027\u80fd\uff08David Rowley\uff09</p>", "text": "\u63d0\u9ad8\u4f7f\u7528\u5927\u91cf\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u65f6\u987a\u5e8f\u626b\u63cf\u7684\u6027\u80fd\uff08David Rowley\uff09", "title": "\u63d0\u9ad8\u4f7f\u7528\u5927\u91cf\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u65f6\u987a\u5e8f\u626b\u63cf\u7684\u6027\u80fd", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.3", "source_hash": "c62c76641150bf17c2599909498c957e4fe0906808eae9cb6052570f6ab8e5c7", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["3cda10f41"]], "identity_text": "Improve performance of sequential scans with many parallel workers (David Rowley)", "commit_aliases": ["3cda10f41"], "source_commits": ["3cda10f41"], "source_entry_id": "11.0/changes/021", "db_id": "98bbf7f7cdf8dd1962475e9ab5f9deee", "patch_ids": ["b14f13b397af28878149f0eb50c883c2"], "statement_hash": "bdada06eadb287e076c383460c1ca8494141bd9499a43a5975a407c22f0d8431", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-cf28f569b2d5f98b", "migration": false}, {"id": "11.0-c433ebb3891227c9", "cves": [], "html": "<p>\u5728 <code>EXPLAIN</code> \u4e2d\u6dfb\u52a0\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u6392\u5e8f\u6d3b\u52a8\u7684\u62a5\u544a\uff08Robert Haas\uff0cTom Lane\uff09</p>", "text": "\u5728 EXPLAIN \u4e2d\u6dfb\u52a0\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u6392\u5e8f\u6d3b\u52a8\u7684\u62a5\u544a\uff08Robert Haas\uff0cTom Lane\uff09", "title": "\u5728 EXPLAIN \u4e2d\u6dfb\u52a0\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u6392\u5e8f\u6d3b\u52a8\u7684\u62a5\u544a", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.3", "source_hash": "1c09c7648298d38d4ca1bfc43b8b1d1a524b164df3ca610583e65190d78ff95d", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["bf11e7ee2"]], "identity_text": "Add reporting of parallel workers' sort activity in EXPLAIN (Robert Haas, Tom Lane)", "commit_aliases": ["bf11e7ee2"], "source_commits": ["bf11e7ee2"], "source_entry_id": "11.0/changes/022", "db_id": "ff7af4478826195e22223dc3a5e41588", "patch_ids": ["b15bea951f332f2a4f5f9c2056ed4964"], "statement_hash": "0677e46819b901aba318420833485f71a2163dbef4261549cbee4c578fb60605", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-c433ebb3891227c9", "migration": false}, {"id": "11.0-8954bc2b36315814", "cves": [], "html": "<p>\u5141\u8bb8 B-\u6811\u7d22\u5f15\u5305\u542b\u4e0d\u5c5e\u4e8e\u641c\u7d22\u952e\u6216\u552f\u4e00\u7ea6\u675f\u3001\u4f46\u53ef\u4f9b\u4ec5\u7d22\u5f15\u626b\u63cf\u8bfb\u53d6\u7684\u5217\uff08Anastasia Lubennikova\uff0cAlexander Korotkov\uff0cTeodor Sigaev\uff09</p>\n<p>\u8fd9\u901a\u8fc7 <a href=\"/docs/11/sql-createindex.html\" title=\"CREATE INDEX\"><code>CREATE INDEX</code></a> \u7684\u65b0 <code>INCLUDE</code> \u5b50\u53e5\u542f\u7528\u3002\u5b83\u4fbf\u4e8e\u6784\u5efa\u4f18\u5316\u7279\u5b9a\u67e5\u8be2\u7c7b\u578b\u7684<span>\u201c<span>\u8986\u76d6\u7d22\u5f15</span>\u201d</span>\u3002\u5373\u4f7f\u5217\u7684\u6570\u636e\u7c7b\u578b\u4e0d\u652f\u6301 B-\u6811\uff0c\u4e5f\u53ef\u4ee5\u5c06\u5176\u5305\u542b\u5728\u5185\u3002</p>", "text": "\u5141\u8bb8 B-\u6811\u7d22\u5f15\u5305\u542b\u4e0d\u5c5e\u4e8e\u641c\u7d22\u952e\u6216\u552f\u4e00\u7ea6\u675f\u3001\u4f46\u53ef\u4f9b\u4ec5\u7d22\u5f15\u626b\u63cf\u8bfb\u53d6\u7684\u5217\uff08Anastasia Lubennikova\uff0cAlexander Korotkov\uff0cTeodor Sigaev\uff09 \u8fd9\u901a\u8fc7 CREATE INDEX \u7684\u65b0 INCLUDE \u5b50\u53e5\u542f\u7528\u3002\u5b83\u4fbf\u4e8e\u6784\u5efa\u4f18\u5316\u7279\u5b9a\u67e5\u8be2\u7c7b\u578b\u7684\u201c\u8986\u76d6\u7d22\u5f15\u201d\u3002\u5373\u4f7f\u5217\u7684\u6570\u636e\u7c7b\u578b\u4e0d\u652f\u6301 B-\u6811\uff0c\u4e5f\u53ef\u4ee5\u5c06\u5176\u5305\u542b\u5728\u5185\u3002", "title": "\u5141\u8bb8 B-\u6811\u7d22\u5f15\u5305\u542b\u4e0d\u5c5e\u4e8e\u641c\u7d22\u952e\u6216\u552f\u4e00\u7ea6\u675f\u3001\u4f46\u53ef\u4f9b\u4ec5\u7d22\u5f15\u626b\u63cf\u8bfb\u53d6\u7684\u5217", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.4", "source_hash": "87c127880b7adabebf856b5bdb9f8ba90b4991cb42a650dac1858fb97843fd0f", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["8224de4f4"]], "identity_text": "Allow B-tree indexes to include columns that are not part of the search key or unique constraint, but are available to be read by index-only scans (Anastasia Lubennikova, Alexander Korotkov, Teodor Sigaev) This is enabled by the new INCLUDE clause of CREATE INDEX. It facilitates building covering indexes that optimize specific types of queries. Columns can be included even if their data types don't have B-tree support.", "commit_aliases": ["8224de4f4"], "source_commits": ["8224de4f4"], "source_entry_id": "11.0/changes/023", "db_id": "325771f1f09193edbacc69d41276c27a", "patch_ids": ["bfb5abdd25d6d89590c8f1a81a47ef5c"], "statement_hash": "5195f56fc97b0d06c83c3fa2d21e0adc16582152f35da5063bca358fe67318ea", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-8954bc2b36315814", "migration": false}, {"id": "11.0-4243c6ac83c15c87", "cves": [], "html": "<p>\u63d0\u9ad8\u5355\u8c03\u9012\u589e\u7684\u7d22\u5f15\u63d2\u5165\u7684\u6027\u80fd\uff08Pavan Deolasee\uff0cPeter Geoghegan\uff09</p>", "text": "\u63d0\u9ad8\u5355\u8c03\u9012\u589e\u7684\u7d22\u5f15\u63d2\u5165\u7684\u6027\u80fd\uff08Pavan Deolasee\uff0cPeter Geoghegan\uff09", "title": "\u63d0\u9ad8\u5355\u8c03\u9012\u589e\u7684\u7d22\u5f15\u63d2\u5165\u7684\u6027\u80fd", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.4", "source_hash": "8b797f071f1c8a7e58ddce756a6c4b742b4fb9bba551e89dc80e5ef4482f5181", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["074251db6"], ["2b2727343"]], "identity_text": "Improve performance of monotonically increasing index additions (Pavan Deolasee, Peter Geoghegan)", "commit_aliases": ["074251db6", "2b2727343"], "source_commits": ["074251db6", "2b2727343"], "source_entry_id": "11.0/changes/024", "db_id": "0a2c17b4f262ca2cbf31e08a86f28b64", "patch_ids": ["8291df90338ca33ba8bd74f6ef15f9c4", "96d574c1377b5e0b2212470971aed433"], "statement_hash": "7020dab0076cc612ced27f2276826615f33675938ad21ef3bb11a0805a3f6a54", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-4243c6ac83c15c87", "migration": false}, {"id": "11.0-7d7519739255cf02", "cves": [], "html": "<p>\u63d0\u9ad8 hash \u7d22\u5f15\u626b\u63cf\u7684\u6027\u80fd\uff08Ashutosh Sharma\uff09</p>", "text": "\u63d0\u9ad8 hash \u7d22\u5f15\u626b\u63cf\u7684\u6027\u80fd\uff08Ashutosh Sharma\uff09", "title": "\u63d0\u9ad8 hash \u7d22\u5f15\u626b\u63cf\u7684\u6027\u80fd", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.4", "source_hash": "2e45c1dbbd6985d3e5202b267405f61340b7d7f47064b1a1844c630a9537a22b", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["7c75ef571"]], "identity_text": "Improve performance of hash index scans (Ashutosh Sharma)", "commit_aliases": ["7c75ef571"], "source_commits": ["7c75ef571"], "source_entry_id": "11.0/changes/025", "db_id": "f9beb9582e618a52d28ddab461ed1fe7", "patch_ids": ["390439a03f9f19fbf9aebf5352b4557f"], "statement_hash": "4b62f17e465249d53d3e410f97852643353e94a638947f0a4c4f89f83a64a62b", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-7d7519739255cf02", "migration": false}, {"id": "11.0-3c66e72bb92280c1", "cves": [], "html": "<p>\u4e3a hash\u3001GiST \u548c GIN \u7d22\u5f15\u6dfb\u52a0\u8c13\u8bcd\u9501\u5b9a\uff08Shubham Barai\uff09</p>\n<p>\u8fd9\u964d\u4f4e\u4e86\u53ef\u4e32\u884c\u5316\u6a21\u5f0f\u4e8b\u52a1\u53d1\u751f\u4e32\u884c\u5316\u51b2\u7a81\u7684\u53ef\u80fd\u6027\u3002</p>", "text": "\u4e3a hash\u3001GiST \u548c GIN \u7d22\u5f15\u6dfb\u52a0\u8c13\u8bcd\u9501\u5b9a\uff08Shubham Barai\uff09 \u8fd9\u964d\u4f4e\u4e86\u53ef\u4e32\u884c\u5316\u6a21\u5f0f\u4e8b\u52a1\u53d1\u751f\u4e32\u884c\u5316\u51b2\u7a81\u7684\u53ef\u80fd\u6027\u3002", "title": "\u4e3a hash\u3001GiST \u548c GIN \u7d22\u5f15\u6dfb\u52a0\u8c13\u8bcd\u9501\u5b9a", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.4", "source_hash": "347646bfcfbb4666f75d6b10e9e221d38d8b9c2475a1524b42fd72085228c68a", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["3ad55863e"], ["43d1ed60f"], ["b508a56f2"]], "identity_text": "Add predicate locking for hash, GiST and GIN indexes (Shubham Barai) This reduces the likelihood of serialization conflicts in serializable-mode transactions.", "commit_aliases": ["3ad55863e", "43d1ed60f", "b508a56f2"], "source_commits": ["3ad55863e", "43d1ed60f", "b508a56f2"], "source_entry_id": "11.0/changes/026", "db_id": "56d4ff9224e92787bc5b133c0439a804", "patch_ids": ["51712d8aa268bfd72afe25c8101eeb2c", "cabe231e7f9494b1182875f43b9c5fa1", "f336752de7832a5a32d0e9566bbc1f55"], "statement_hash": "a2a55f03f5bc9d8b2bad0415f9b49e75774ccae0af5cc8270d62a5675ee420f1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-3c66e72bb92280c1", "migration": false}, {"id": "11.0-c69f62d316d9bcda", "cves": [], "html": "<p>\u6dfb\u52a0\u524d\u7f00\u5339\u914d\u64cd\u4f5c\u7b26 <code>text</code> <code>^@</code> <code>text</code>\uff0c\u5e76\u7531 SP-GiST \u652f\u6301\uff08Ildus Kurbangaliev\uff09</p>\n<p>\u8fd9\u7c7b\u4f3c\u4e8e\u914d\u5408 B-\u6811\u7d22\u5f15\u4f7f\u7528 <em><code>var</code></em> <code>LIKE 'word%'</code>\uff0c\u4f46\u6548\u7387\u66f4\u9ad8\u3002</p>", "text": "\u6dfb\u52a0\u524d\u7f00\u5339\u914d\u64cd\u4f5c\u7b26 text ^@ text\uff0c\u5e76\u7531 SP-GiST \u652f\u6301\uff08Ildus Kurbangaliev\uff09 \u8fd9\u7c7b\u4f3c\u4e8e\u914d\u5408 B-\u6811\u7d22\u5f15\u4f7f\u7528 var LIKE 'word%'\uff0c\u4f46\u6548\u7387\u66f4\u9ad8\u3002", "title": "\u6dfb\u52a0\u524d\u7f00\u5339\u914d\u64cd\u4f5c\u7b26 text ^@ text\uff0c\u5e76\u7531 SP-GiST \u652f\u6301", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15 / SP-Gist", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.4.3", "source_hash": "e5975e818d72191abde477f490cea447e153c3636583d66c8d7180bff2d9aee1", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15", "SP-Gist"], "commit_groups": [["710d90da1"]], "identity_text": "Add prefix-match operator text ^@ text, which is supported by SP-GiST (Ildus Kurbangaliev) This is similar to using var LIKE 'word%' with a btree index, but it is more efficient.", "commit_aliases": ["710d90da1"], "source_commits": ["710d90da1"], "source_entry_id": "11.0/changes/027", "db_id": "46320fa8a8deeaaa533d724513600f68", "patch_ids": ["3e3aafa6df61dfbb37d7239e673e5daf"], "statement_hash": "ec9c89c21ae50c83076bc15b97cd2144a8c9fd620064cafdf34f727ceff707bf", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-c69f62d316d9bcda", "migration": false}, {"id": "11.0-dd861e5f42b754c8", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 SP-GiST \u5bf9\u591a\u8fb9\u5f62\u5efa\u7acb\u7d22\u5f15\uff08Nikita Glukhov\uff0cAlexander Korotkov\uff09</p>", "text": "\u5141\u8bb8\u4f7f\u7528 SP-GiST \u5bf9\u591a\u8fb9\u5f62\u5efa\u7acb\u7d22\u5f15\uff08Nikita Glukhov\uff0cAlexander Korotkov\uff09", "title": "\u5141\u8bb8\u4f7f\u7528 SP-GiST \u5bf9\u591a\u8fb9\u5f62\u5efa\u7acb\u7d22\u5f15", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15 / SP-Gist", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.4.3", "source_hash": "4b97263a7e19682c270e260a8efe02c5ba14faa94bddd354aaddca0f2aff51ba", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15", "SP-Gist"], "commit_groups": [["ff963b393"]], "identity_text": "Allow polygons to be indexed with SP-GiST (Nikita Glukhov, Alexander Korotkov)", "commit_aliases": ["ff963b393"], "source_commits": ["ff963b393"], "source_entry_id": "11.0/changes/028", "db_id": "6be9a520a242153b75eebfbba4588589", "patch_ids": ["d495145a3de97e76dd0322c0133acc45"], "statement_hash": "2a543c7819b7fdd499e0f23e17345cd5bcc80f6f4b2afe955c689f400b98ce32", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-dd861e5f42b754c8", "migration": false}, {"id": "11.0-a8c70553230a9d53", "cves": [], "html": "<p>\u5141\u8bb8 SP-GiST \u5bf9\u53f6\u5b50\u952e\u4f7f\u7528\u6709\u635f\u8868\u793a\uff08Teodor Sigaev\uff0cHeikki Linnakangas\uff0cAlexander Korotkov\uff0cNikita Glukhov\uff09</p>", "text": "\u5141\u8bb8 SP-GiST \u5bf9\u53f6\u5b50\u952e\u4f7f\u7528\u6709\u635f\u8868\u793a\uff08Teodor Sigaev\uff0cHeikki Linnakangas\uff0cAlexander Korotkov\uff0cNikita Glukhov\uff09", "title": "\u5141\u8bb8 SP-GiST \u5bf9\u53f6\u5b50\u952e\u4f7f\u7528\u6709\u635f\u8868\u793a", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15 / SP-Gist", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.4.3", "source_hash": "934e662cc299f46f3d66e15d86fedb656e31911d39f1e9c52b5d1804b30864b2", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15", "SP-Gist"], "commit_groups": [["854823fa3"]], "identity_text": "Allow SP-GiST to use lossy representation of leaf keys (Teodor Sigaev, Heikki Linnakangas, Alexander Korotkov, Nikita Glukhov)", "commit_aliases": ["854823fa3"], "source_commits": ["854823fa3"], "source_entry_id": "11.0/changes/029", "db_id": "92b6279f35dba8bb5f148642d5b113e2", "patch_ids": ["8f2ec9b90cb397c84384c01087623f9d"], "statement_hash": "6231f1fbbafb16e4353b03b7bc06d2b364386735502856f50ffe93768b491030", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-a8c70553230a9d53", "migration": false}, {"id": "11.0-29e596088fb86c71", "cves": [], "html": "<p>\u6539\u8fdb\u7edf\u8ba1\u4fe1\u606f\u4e2d\u9ad8\u9891\u503c\u7684\u9009\u62e9\uff08Jeff Janes\uff0cDean Rasheed\uff09</p>\n<p>\u4ee5\u524d\uff0c\u6839\u636e\u67d0\u4e2a\u503c\u76f8\u5bf9\u4e8e\u6240\u6709\u5217\u503c\u7684\u9891\u7387\u6765\u8bc6\u522b\u9ad8\u9891\u503c\uff08<acronym>MCV</acronym>\uff09\u3002\u73b0\u5728\uff0c\u6839\u636e\u5176\u76f8\u5bf9\u4e8e\u975e <acronym>MCV</acronym> \u503c\u7684\u9891\u7387\u9009\u62e9 <acronym>MCV</acronym>\u3002\u8fd9\u63d0\u9ad8\u4e86\u7b97\u6cd5\u5728\u5747\u5300\u5206\u5e03\u548c\u975e\u5747\u5300\u5206\u5e03\u4e0b\u7684\u7a33\u5065\u6027\u3002</p>", "text": "\u6539\u8fdb\u7edf\u8ba1\u4fe1\u606f\u4e2d\u9ad8\u9891\u503c\u7684\u9009\u62e9\uff08Jeff Janes\uff0cDean Rasheed\uff09 \u4ee5\u524d\uff0c\u6839\u636e\u67d0\u4e2a\u503c\u76f8\u5bf9\u4e8e\u6240\u6709\u5217\u503c\u7684\u9891\u7387\u6765\u8bc6\u522b\u9ad8\u9891\u503c\uff08MCV\uff09\u3002\u73b0\u5728\uff0c\u6839\u636e\u5176\u76f8\u5bf9\u4e8e\u975e MCV \u503c\u7684\u9891\u7387\u9009\u62e9 MCV\u3002\u8fd9\u63d0\u9ad8\u4e86\u7b97\u6cd5\u5728\u5747\u5300\u5206\u5e03\u548c\u975e\u5747\u5300\u5206\u5e03\u4e0b\u7684\u7a33\u5065\u6027\u3002", "title": "\u6539\u8fdb\u7edf\u8ba1\u4fe1\u606f\u4e2d\u9ad8\u9891\u503c\u7684\u9009\u62e9", "commits": [], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.5", "source_hash": "10ab43b7e90578617411a30b09731f72b935cdc22732f17e6a9bdbd9a6a18e6f", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["b5db1d93d"]], "identity_text": "Improve selection of the most common values for statistics (Jeff Janes, Dean Rasheed) Previously, the most common values (MCVs) were identified based on their frequency compared to all column values. Now, MCVs are chosen based on their frequency compared to the non-MCV values. This improves the robustness of the algorithm for both uniform and non-uniform distributions.", "commit_aliases": ["b5db1d93d"], "source_commits": ["b5db1d93d"], "source_entry_id": "11.0/changes/030", "db_id": "c77333ec171bc43be04e4dafa9d0c35b", "patch_ids": ["e46d4e93a2e3aacd9a08bb2b6bcb47a3"], "statement_hash": "89dbd93d9935ba3283605c3b4868d0bc6a7739e43d0b237979fa31ba89cf0d12", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-29e596088fb86c71", "migration": false}, {"id": "11.0-ff3b616e2d0ff22c", "cves": [], "html": "<p>\u6539\u8fdb <code>&gt;=</code> \u548c <code>&lt;=</code> \u7684\u9009\u62e9\u7387\u4f30\u7b97\uff08Tom Lane\uff09</p>\n<p>\u4ee5\u524d\uff0c\u9664\u975e\u6bd4\u8f83\u5e38\u91cf\u4e3a <acronym>MCV</acronym>\uff0c\u8fd9\u4e9b\u60c5\u51b5\u5206\u522b\u91c7\u7528\u4e0e <code>&gt;</code> \u548c <code>&lt;</code> \u76f8\u540c\u7684\u9009\u62e9\u7387\u4f30\u7b97\u3002\u6b64\u66f4\u6539\u5bf9\u6d89\u53ca\u5c0f\u8303\u56f4 <code>BETWEEN</code> \u7684\u67e5\u8be2\u5c24\u5176\u6709\u5e2e\u52a9\u3002</p>", "text": "\u6539\u8fdb >= \u548c <= \u7684\u9009\u62e9\u7387\u4f30\u7b97\uff08Tom Lane\uff09 \u4ee5\u524d\uff0c\u9664\u975e\u6bd4\u8f83\u5e38\u91cf\u4e3a MCV\uff0c\u8fd9\u4e9b\u60c5\u51b5\u5206\u522b\u91c7\u7528\u4e0e > \u548c < \u76f8\u540c\u7684\u9009\u62e9\u7387\u4f30\u7b97\u3002\u6b64\u66f4\u6539\u5bf9\u6d89\u53ca\u5c0f\u8303\u56f4 BETWEEN \u7684\u67e5\u8be2\u5c24\u5176\u6709\u5e2e\u52a9\u3002", "title": "\u6539\u8fdb >= \u548c <= \u7684\u9009\u62e9\u7387\u4f30\u7b97", "commits": [], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.5", "source_hash": "090fa160ccb0ca59724d042f1a3c44f53011320b592388f5c45aff2569644dc1", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["7d08ce286"]], "identity_text": "Improve selectivity estimates for >= and <= (Tom Lane) Previously, such cases used the same selectivity estimates as > and <, respectively, unless the comparison constants are MCVs. This change is particularly helpful for queries involving BETWEEN with small ranges.", "commit_aliases": ["7d08ce286"], "source_commits": ["7d08ce286"], "source_entry_id": "11.0/changes/031", "db_id": "0b3334bf981ded75cf45d021f530d940", "patch_ids": ["40b1a8f4b28c2b3736ba00fb0482b532"], "statement_hash": "e7f1a38caa4a012087f9302ef675dd2445064f3cb50d73fea8e04fa7aee33ca0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-ff3b616e2d0ff22c", "migration": false}, {"id": "11.0-51380aad66a7d19a", "cves": [], "html": "<p>\u5728\u7b49\u4ef7\u7684\u60c5\u51b5\u4e0b\uff0c\u5c06 <em><code>var</code></em> <code>=</code> <em><code>var</code></em> \u7b80\u5316\u4e3a <em><code>var</code></em> <code>IS NOT NULL</code>\uff08Tom Lane\uff09</p>\n<p>\u8fd9\u4f1a\u6539\u5584\u9009\u62e9\u7387\u4f30\u7b97\u3002</p>", "text": "\u5728\u7b49\u4ef7\u7684\u60c5\u51b5\u4e0b\uff0c\u5c06 var = var \u7b80\u5316\u4e3a var IS NOT NULL\uff08Tom Lane\uff09 \u8fd9\u4f1a\u6539\u5584\u9009\u62e9\u7387\u4f30\u7b97\u3002", "title": "\u5728\u7b49\u4ef7\u7684\u60c5\u51b5\u4e0b\uff0c\u5c06 var = var \u7b80\u5316\u4e3a var IS NOT NULL", "commits": [], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.5", "source_hash": "0f3f8bf24f025674077e3649a68c2525a73e800523d4da1e2167f9dbff07aafd", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["8ec5429e2"]], "identity_text": "Reduce var = var to var IS NOT NULL where equivalent (Tom Lane) This leads to better selectivity estimates.", "commit_aliases": ["8ec5429e2"], "source_commits": ["8ec5429e2"], "source_entry_id": "11.0/changes/032", "db_id": "f502793100de87c3464c2c49ea723ea0", "patch_ids": ["dacc2d199e6c2e60c0492e312eabfdba"], "statement_hash": "3bb7d6a4177ae8a51bac6fe0c13f693d48b8d778812f8e9244428563253f5625", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-51380aad66a7d19a", "migration": false}, {"id": "11.0-963100a3e2e88fdd", "cves": [], "html": "<p>\u6539\u8fdb\u4f18\u5316\u5668\u5bf9 <code>EXISTS</code> \u548c <code>NOT EXISTS</code> \u67e5\u8be2\u7684\u884c\u6570\u4f30\u7b97\uff08Tom Lane\uff09</p>", "text": "\u6539\u8fdb\u4f18\u5316\u5668\u5bf9 EXISTS \u548c NOT EXISTS \u67e5\u8be2\u7684\u884c\u6570\u4f30\u7b97\uff08Tom Lane\uff09", "title": "\u6539\u8fdb\u4f18\u5316\u5668\u5bf9 EXISTS \u548c NOT EXISTS \u67e5\u8be2\u7684\u884c\u6570\u4f30\u7b97", "commits": [], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.5", "source_hash": "908db9e44d74c344eb305ccdaea254c4e522d2b45c69430f07b9fddbc60a5f3a", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["7ca25b7de"]], "identity_text": "Improve optimizer's row count estimates for EXISTS and NOT EXISTS queries (Tom Lane)", "commit_aliases": ["7ca25b7de"], "source_commits": ["7ca25b7de"], "source_entry_id": "11.0/changes/033", "db_id": "3b77a42da87058878d3f8c2bad1bf641", "patch_ids": ["6e2ea6da93bee89ca8a2c222e89f9171"], "statement_hash": "7ea93b3b1546cb08db73d8001dd171d4995f52fef196b80fb1f91089d1e1c4f4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-963100a3e2e88fdd", "migration": false}, {"id": "11.0-fc2be17608249ca0", "cves": [], "html": "<p>\u4f7f\u4f18\u5316\u5668\u8003\u8651 <code>HAVING</code> \u5b50\u53e5\u7684\u6c42\u503c\u4ee3\u4ef7\u548c\u9009\u62e9\u7387\uff08Tom Lane\uff09</p>", "text": "\u4f7f\u4f18\u5316\u5668\u8003\u8651 HAVING \u5b50\u53e5\u7684\u6c42\u503c\u4ee3\u4ef7\u548c\u9009\u62e9\u7387\uff08Tom Lane\uff09", "title": "\u4f7f\u4f18\u5316\u5668\u8003\u8651 HAVING \u5b50\u53e5\u7684\u6c42\u503c\u4ee3\u4ef7\u548c\u9009\u62e9\u7387", "commits": [], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.5", "source_hash": "891acf201d79c06b5b6bc78dbbdfddc490b08475d6260f4d0c1173aa0c7ec926", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["7b6c07547"]], "identity_text": "Make the optimizer account for evaluation costs and selectivity of HAVING clauses (Tom Lane)", "commit_aliases": ["7b6c07547"], "source_commits": ["7b6c07547"], "source_entry_id": "11.0/changes/034", "db_id": "052751c55c90337df824376b3c705a83", "patch_ids": ["baf0f860793fca5df09360ec5584f58a"], "statement_hash": "e32870aaeefeebb49a20b88ac4468b08be0e48af609f71c3371afb5c47a5766d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-fc2be17608249ca0", "migration": false}, {"id": "11.0-9a54e0f3a332df2b", "cves": [], "html": "<p>\u4e3a\u67e5\u8be2\u8ba1\u5212\u7684\u67d0\u4e9b\u90e8\u5206\u6dfb\u52a0<a href=\"/docs/11/jit.html\" title=\"\u7b2c\u00a032\u00a0\u7ae0\u00a0\u5373\u65f6\u7f16\u8bd1\uff08JIT\uff09\">\u5373\u65f6</a>\uff08<acronym>JIT</acronym>\uff09\u7f16\u8bd1\uff0c\u4ee5\u63d0\u9ad8\u6267\u884c\u901f\u5ea6\uff08Andres Freund\uff09</p>\n<p>\u6b64\u7279\u6027\u8981\u6c42 <span>LLVM</span> \u53ef\u7528\u3002\u76ee\u524d\uff0c\u5373\u4f7f\u6784\u5efa\u652f\u6301\u5b83\uff0c\u9ed8\u8ba4\u4e5f\u4e0d\u542f\u7528\u3002</p>", "text": "\u4e3a\u67e5\u8be2\u8ba1\u5212\u7684\u67d0\u4e9b\u90e8\u5206\u6dfb\u52a0\u5373\u65f6\uff08JIT\uff09\u7f16\u8bd1\uff0c\u4ee5\u63d0\u9ad8\u6267\u884c\u901f\u5ea6\uff08Andres Freund\uff09 \u6b64\u7279\u6027\u8981\u6c42 LLVM \u53ef\u7528\u3002\u76ee\u524d\uff0c\u5373\u4f7f\u6784\u5efa\u652f\u6301\u5b83\uff0c\u9ed8\u8ba4\u4e5f\u4e0d\u542f\u7528\u3002", "title": "\u4e3a\u67e5\u8be2\u8ba1\u5212\u7684\u67d0\u4e9b\u90e8\u5206\u6dfb\u52a0\u5373\u65f6\uff08JIT\uff09\u7f16\u8bd1\uff0c\u4ee5\u63d0\u9ad8\u6267\u884c\u901f\u5ea6", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.6", "source_hash": "7113bf4da653975a08301a40ad892f415ed572c16d58a9889dbec4db6e947376", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["0fdadfb01"], ["32af96b2b"], ["432bb9e04"], ["9370462e9"], ["b96d550eb"], ["cc415a56d"], ["f4f5845b3"]], "identity_text": "Add Just-in-Time (JIT) compilation of some parts of query plans to improve execution speed (Andres Freund) This feature requires LLVM to be available. It is not currently enabled by default, even in builds that support it.", "commit_aliases": ["0fdadfb01", "32af96b2b", "432bb9e04", "9370462e9", "b96d550eb", "cc415a56d", "f4f5845b3"], "source_commits": ["0fdadfb01", "32af96b2b", "432bb9e04", "9370462e9", "b96d550eb", "cc415a56d", "f4f5845b3"], "source_entry_id": "11.0/changes/035", "db_id": "f5aa0e68c7bb86ea988d9629a59e39b7", "patch_ids": ["04a274b866c80eebad3a30af5cbb12e4", "43c5b65c52a6d29a9ca45b1db25bc1bf", "4da261a19858bd649076a90e04ee448d", "4f1617e0f9afec0375f9e30035939be7", "661d5108f639ab722bb541e9841e5edf", "dc124cfb0ef67126a9c06e536b2b9986", "f6fd992546ccbc05f174abb1796e6aa1"], "statement_hash": "cd4ada7658f0e7adb0764a4b0ef5cecd34aa92798c5cf4c93a0dfa5d0c3ad733", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-9a54e0f3a332df2b", "migration": false}, {"id": "11.0-9551bea74772b6d6", "cves": [], "html": "<p>\u5141\u8bb8\u4f4d\u56fe\u626b\u63cf\u5728\u53ef\u80fd\u65f6\u6267\u884c\u4ec5\u7d22\u5f15\u626b\u63cf\uff08Alexander Kuzmenkov\uff09</p>", "text": "\u5141\u8bb8\u4f4d\u56fe\u626b\u63cf\u5728\u53ef\u80fd\u65f6\u6267\u884c\u4ec5\u7d22\u5f15\u626b\u63cf\uff08Alexander Kuzmenkov\uff09", "title": "\u5141\u8bb8\u4f4d\u56fe\u626b\u63cf\u5728\u53ef\u80fd\u65f6\u6267\u884c\u4ec5\u7d22\u5f15\u626b\u63cf", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.6", "source_hash": "eb40b6dd6abde2a00dd8680972cb51da09b06f99a0a284faa3e78f50ba4568d8", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["7c70996eb"]], "identity_text": "Allow bitmap scans to perform index-only scans when possible (Alexander Kuzmenkov)", "commit_aliases": ["7c70996eb"], "source_commits": ["7c70996eb"], "source_entry_id": "11.0/changes/036", "db_id": "cdc84ae14a90b8f8f74e98d7e9f60cbf", "patch_ids": ["14ddb409be3f6465527dcb705962e11d"], "statement_hash": "f0583b530831e72163b7f48bdfdf8b23deefacc92ea563dff9ffae66833c7f7b", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-9551bea74772b6d6", "migration": false}, {"id": "11.0-e8bd201a3430e4da", "cves": [], "html": "<p>\u5728 <code>VACUUM</code> \u671f\u95f4\u66f4\u65b0\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\uff08Claudio Freire\uff09</p>\n<p>\u8fd9\u4f7f\u7a7a\u95f2\u7a7a\u95f4\u80fd\u591f\u66f4\u5feb\u5730\u88ab\u590d\u7528\u3002</p>", "text": "\u5728 VACUUM \u671f\u95f4\u66f4\u65b0\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\uff08Claudio Freire\uff09 \u8fd9\u4f7f\u7a7a\u95f2\u7a7a\u95f4\u80fd\u591f\u66f4\u5feb\u5730\u88ab\u590d\u7528\u3002", "title": "\u5728 VACUUM \u671f\u95f4\u66f4\u65b0\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.6", "source_hash": "5cf5dbc6f367bd7329ffee73b644d9d3f51ec5f11c9fcb816a4c7ca1f4e2852e", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["851a26e26"], ["c79f6df75"]], "identity_text": "Update the free space map during VACUUM (Claudio Freire) This allows free space to be reused more quickly.", "commit_aliases": ["851a26e26", "c79f6df75"], "source_commits": ["851a26e26", "c79f6df75"], "source_entry_id": "11.0/changes/037", "db_id": "79c5cb83f4ceb7751e4b14cecd300b36", "patch_ids": ["263848c0a37e919e865258f46a2ee719", "63ead92f5d0dcc96b6dfa6c5cb86b146"], "statement_hash": "094f6d9fe3db0306f0d79d92de59ca3fd75d1e6470dbc72648e9712ce296d869", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-e8bd201a3430e4da", "migration": false}, {"id": "11.0-4566989b2713b728", "cves": [], "html": "<p>\u5141\u8bb8 <code>VACUUM</code> \u907f\u514d\u4e0d\u5fc5\u8981\u7684\u7d22\u5f15\u626b\u63cf\uff08Masahiko Sawada\uff0cAlexander Korotkov\uff09</p>", "text": "\u5141\u8bb8 VACUUM \u907f\u514d\u4e0d\u5fc5\u8981\u7684\u7d22\u5f15\u626b\u63cf\uff08Masahiko Sawada\uff0cAlexander Korotkov\uff09", "title": "\u5141\u8bb8 VACUUM \u907f\u514d\u4e0d\u5fc5\u8981\u7684\u7d22\u5f15\u626b\u63cf", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.6", "source_hash": "b5468a842be5013fb4bcf4826bf18e468ee3327a70d3828faad143988c72031c", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["857f9c36c"]], "identity_text": "Allow VACUUM to avoid unnecessary index scans (Masahiko Sawada, Alexander Korotkov)", "commit_aliases": ["857f9c36c"], "source_commits": ["857f9c36c"], "source_entry_id": "11.0/changes/038", "db_id": "360eaafec92ed03025911dc26316f168", "patch_ids": ["0ffa80cae94d257eada4c7964cadcd7c"], "statement_hash": "ee96fffa3b2c2dc994bfd7b590983442e111e209ba2b5aed71501b0dd45269a1", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-4566989b2713b728", "migration": false}, {"id": "11.0-7dc6eefe68560eca", "cves": [], "html": "<p>\u63d0\u9ad8\u63d0\u4ea4\u591a\u4e2a\u5e76\u53d1\u4e8b\u52a1\u7684\u6027\u80fd\uff08Amit Kapila\uff09</p>", "text": "\u63d0\u9ad8\u63d0\u4ea4\u591a\u4e2a\u5e76\u53d1\u4e8b\u52a1\u7684\u6027\u80fd\uff08Amit Kapila\uff09", "title": "\u63d0\u9ad8\u63d0\u4ea4\u591a\u4e2a\u5e76\u53d1\u4e8b\u52a1\u7684\u6027\u80fd", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.6", "source_hash": "02afbdcc08010f053e25e805fef6da95c49915ccdc235ebe7c21cfd4e14b8c44", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["baaf272ac"]], "identity_text": "Improve performance of committing multiple concurrent transactions (Amit Kapila)", "commit_aliases": ["baaf272ac"], "source_commits": ["baaf272ac"], "source_entry_id": "11.0/changes/039", "db_id": "36dce2fac3398c608c1fe1a9905e22f1", "patch_ids": ["fb852ad8c1824c2d025dbff3c5b8a500"], "statement_hash": "da412e08e1358a01844d255132284cd3484d5fa33bc99b62ea6e2b860ae621f5", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-7dc6eefe68560eca", "migration": false}, {"id": "11.0-57f0dd08e01ec664", "cves": [], "html": "<p>\u51cf\u5c11\u76ee\u6807\u5217\u8868\u4e2d\u4f7f\u7528\u8fd4\u56de\u96c6\u5408\u51fd\u6570\u7684\u67e5\u8be2\u7684\u5185\u5b58\u7528\u91cf\uff08Andres Freund\uff09</p>", "text": "\u51cf\u5c11\u76ee\u6807\u5217\u8868\u4e2d\u4f7f\u7528\u8fd4\u56de\u96c6\u5408\u51fd\u6570\u7684\u67e5\u8be2\u7684\u5185\u5b58\u7528\u91cf\uff08Andres Freund\uff09", "title": "\u51cf\u5c11\u76ee\u6807\u5217\u8868\u4e2d\u4f7f\u7528\u8fd4\u56de\u96c6\u5408\u51fd\u6570\u7684\u67e5\u8be2\u7684\u5185\u5b58\u7528\u91cf", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.6", "source_hash": "a7aa3d1942a52d0821ec6e5298fec9a9acd7cf0a37297ebcebe9d794bb982e29", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["84ad4b036"]], "identity_text": "Reduce memory usage for queries using set-returning functions in their target lists (Andres Freund)", "commit_aliases": ["84ad4b036"], "source_commits": ["84ad4b036"], "source_entry_id": "11.0/changes/040", "db_id": "3aa21c8b21b62e64afb38c65fb73486f", "patch_ids": ["a6cbdecc9c0c45a47c95dbaa5fc4fcc2"], "statement_hash": "bae35c7905967036eed535a2c3125e2d327250937a3832e02d6aefe9a0ae47f6", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-57f0dd08e01ec664", "migration": false}, {"id": "11.0-0ea9090b12cb0dc1", "cves": [], "html": "<p>\u63d0\u9ad8\u805a\u5408\u8ba1\u7b97\u7684\u901f\u5ea6\uff08Andres Freund\uff09</p>", "text": "\u63d0\u9ad8\u805a\u5408\u8ba1\u7b97\u7684\u901f\u5ea6\uff08Andres Freund\uff09", "title": "\u63d0\u9ad8\u805a\u5408\u8ba1\u7b97\u7684\u901f\u5ea6", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.6", "source_hash": "58dab48812275fbe84b759a84cf96a0ff33877f0f5a22a4640bc4be40235958e", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["69c3936a1"]], "identity_text": "Improve the speed of aggregate computations (Andres Freund)", "commit_aliases": ["69c3936a1"], "source_commits": ["69c3936a1"], "source_entry_id": "11.0/changes/041", "db_id": "991c579f8f8714afaac4570c5441a21a", "patch_ids": ["84624809612700b979c023402b09d3f1"], "statement_hash": "5848429f9dbd27d63af51305d76199d4f0ed81090d48f7f55f64dd8c6c795d77", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-0ea9090b12cb0dc1", "migration": false}, {"id": "11.0-9abd1a0f09dd7155", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/11/postgres-fdw.html\" title=\"F.33.\u00a0postgres_fdw\"><code>postgres_fdw</code></a> \u5c06\u4f7f\u7528\u8fde\u63a5\u7684 <code>UPDATE</code> \u548c <code>DELETE</code> \u4e0b\u63a8\u5230\u5916\u90e8\u670d\u52a1\u5668\uff08Etsuro Fujita\uff09</p>\n<p>\u4ee5\u524d\uff0c\u53ea\u4f1a\u4e0b\u63a8\u4e0d\u542b\u8fde\u63a5\u7684 <code>UPDATE</code> \u548c <code>DELETE</code>\u3002</p>", "text": "\u5141\u8bb8 postgres_fdw \u5c06\u4f7f\u7528\u8fde\u63a5\u7684 UPDATE \u548c DELETE \u4e0b\u63a8\u5230\u5916\u90e8\u670d\u52a1\u5668\uff08Etsuro Fujita\uff09 \u4ee5\u524d\uff0c\u53ea\u4f1a\u4e0b\u63a8\u4e0d\u542b\u8fde\u63a5\u7684 UPDATE \u548c DELETE\u3002", "title": "\u5141\u8bb8 postgres_fdw \u5c06\u4f7f\u7528\u8fde\u63a5\u7684 UPDATE \u548c DELETE \u4e0b\u63a8\u5230\u5916\u90e8\u670d\u52a1\u5668", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.6", "source_hash": "7af6aba3fd3ff098488f18d40cc91ba0e73d821ecdfe62f11a6886a0ac4c57e3", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["1bc0100d2"]], "identity_text": "Allow postgres_fdw to push UPDATEs and DELETEs using joins to foreign servers (Etsuro Fujita) Previously, only non-join UPDATEs and DELETEs were pushed.", "commit_aliases": ["1bc0100d2"], "source_commits": ["1bc0100d2"], "source_entry_id": "11.0/changes/042", "db_id": "f815ff05a510c59f5a6e98584b9a87d3", "patch_ids": ["a8a0d59ad3a814fa06a6a91bd92a1b1e"], "statement_hash": "60c79720aae03ab01ef636c4476335c9ab91393cbdc338cf6978943836db155d", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-9abd1a0f09dd7155", "migration": false}, {"id": "11.0-1ecfce0197316217", "cves": [], "html": "<p>\u6dfb\u52a0\u5bf9 Windows \u4e0a<em>\u5927\u9875</em>\u7684\u652f\u6301\uff08Takayuki Tsunakawa\uff0cThomas Munro\uff09</p>\n<p>\u8fd9\u7531 <a href=\"/docs/11/runtime-config-resource.html#GUC-HUGE-PAGES\">huge_pages</a> \u914d\u7f6e\u53c2\u6570\u63a7\u5236\u3002</p>", "text": "\u6dfb\u52a0\u5bf9 Windows \u4e0a\u5927\u9875\u7684\u652f\u6301\uff08Takayuki Tsunakawa\uff0cThomas Munro\uff09 \u8fd9\u7531 huge_pages \u914d\u7f6e\u53c2\u6570\u63a7\u5236\u3002", "title": "\u6dfb\u52a0\u5bf9 Windows \u4e0a\u5927\u9875\u7684\u652f\u6301", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.6", "source_hash": "b6cfca66a8916570598eb6191a174c0037103df1d7e93ba6b1a62a534161aa3b", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["1cc4f536e"]], "identity_text": "Add support for large pages on Windows (Takayuki Tsunakawa, Thomas Munro) This is controlled by the huge_pages configuration parameter.", "commit_aliases": ["1cc4f536e"], "source_commits": ["1cc4f536e"], "source_entry_id": "11.0/changes/043", "db_id": "f01fb3ea5f5e5114b391d3f3253b246d", "patch_ids": ["11e4d73b483ef111f384ec9213b96db8"], "statement_hash": "97e99e91a4fee7f004238a46669b2ce164ad40eaaee3b5d47f7cbcb51d336dac", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-1ecfce0197316217", "migration": false}, {"id": "11.0-8903e8211b3b1313", "cves": [], "html": "<p>\u5728 <a href=\"/docs/11/runtime-config-statistics.html#RUNTIME-CONFIG-STATISTICS-MONITOR\" title=\"19.9.2.\u00a0\u7edf\u8ba1\u76d1\u63a7\"><code>log_statement_stats</code></a>\u3001<code>log_parser_stats</code>\u3001<code>log_planner_stats</code> \u548c <code>log_executor_stats</code> \u7684\u8f93\u51fa\u4e2d\u663e\u793a\u5185\u5b58\u7528\u91cf\uff08Justin Pryzby\uff0cPeter Eisentraut\uff09</p>", "text": "\u5728 log_statement_stats\u3001log_parser_stats\u3001log_planner_stats \u548c log_executor_stats \u7684\u8f93\u51fa\u4e2d\u663e\u793a\u5185\u5b58\u7528\u91cf\uff08Justin Pryzby\uff0cPeter Eisentraut\uff09", "title": "\u5728 log_statement_stats\u3001log_parser_stats\u3001log_planner_stats \u548c log_executor_stats \u7684\u8f93\u51fa\u4e2d\u663e\u793a\u5185\u5b58\u7528\u91cf", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.7", "source_hash": "64ecae2a3ec998cdcb6525a26d60f1b2e18b28b6bb370aacad52a8ddfeca9421", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["c039ba071"]], "identity_text": "Show memory usage in output from log_statement_stats, log_parser_stats, log_planner_stats, and log_executor_stats (Justin Pryzby, Peter Eisentraut)", "commit_aliases": ["c039ba071"], "source_commits": ["c039ba071"], "source_entry_id": "11.0/changes/044", "db_id": "7dcabb69d1b8dd9c4ea37ec0d94b6d12", "patch_ids": ["c25846230fc69fed24972a078f3a2201"], "statement_hash": "d22122e62af85b058c29fb988f376813ac3a44c55ab15cd99516df4883bfb9bf", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-8903e8211b3b1313", "migration": false}, {"id": "11.0-ac91b62bcdc242b2", "cves": [], "html": "<p>\u6dfb\u52a0 <a href=\"/docs/11/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW\" title=\"\u8868\u00a028.3.\u00a0pg_stat_activity \u89c6\u56fe\"><code>pg_stat_activity</code>.<code>backend_type</code></a> \u5217\uff0c\u4ee5\u663e\u793a\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u7684\u7c7b\u578b\uff08Peter Eisentraut\uff09</p>\n<p>\u8be5\u7c7b\u578b\u5728 <span>ps</span> \u8f93\u51fa\u4e2d\u4e5f\u53ef\u89c1\u3002</p>", "text": "\u6dfb\u52a0 pg_stat_activity.backend_type \u5217\uff0c\u4ee5\u663e\u793a\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u7684\u7c7b\u578b\uff08Peter Eisentraut\uff09 \u8be5\u7c7b\u578b\u5728 ps \u8f93\u51fa\u4e2d\u4e5f\u53ef\u89c1\u3002", "title": "\u6dfb\u52a0 pg_stat_activity.backend_type \u5217\uff0c\u4ee5\u663e\u793a\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u7684\u7c7b\u578b", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.7", "source_hash": "14fccba940dda1c121267fc4000b512603cd920429994468f870242cef74b317", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["5373bc2a0"]], "identity_text": "Add column pg_stat_activity.backend_type to show the type of a background worker (Peter Eisentraut) The type is also visible in ps output.", "commit_aliases": ["5373bc2a0"], "source_commits": ["5373bc2a0"], "source_entry_id": "11.0/changes/045", "db_id": "50ce9aa0b2a355c578fef384489ef45e", "patch_ids": ["2dae9ba379e6b0016d69c23449d9d026"], "statement_hash": "85fbb6a715d941890095670548c2ed66c4964c6cb04d54a44c0ea0b5fa2574cf", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-ac91b62bcdc242b2", "migration": false}, {"id": "11.0-fbb92a78e33433d7", "cves": [], "html": "<p>\u4f7f <a href=\"/docs/11/runtime-config-autovacuum.html#GUC-LOG-AUTOVACUUM-MIN-DURATION\"><code>log_autovacuum_min_duration</code></a> \u8bb0\u5f55\u56e0\u6b63\u88ab\u5e76\u53d1\u5220\u9664\u800c\u8df3\u8fc7\u7684\u8868\uff08Nathan Bossart\uff09</p>", "text": "\u4f7f log_autovacuum_min_duration \u8bb0\u5f55\u56e0\u6b63\u88ab\u5e76\u53d1\u5220\u9664\u800c\u8df3\u8fc7\u7684\u8868\uff08Nathan Bossart\uff09", "title": "\u4f7f log_autovacuum_min_duration \u8bb0\u5f55\u56e0\u6b63\u88ab\u5e76\u53d1\u5220\u9664\u800c\u8df3\u8fc7\u7684\u8868", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.7", "source_hash": "d96daaf8e255bcc0d57bab63add4623a10278f0ca37cb3aa0555f07fec7e8f1f", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["ab6eaee88"]], "identity_text": "Make log_autovacuum_min_duration log skipped tables that are concurrently being dropped (Nathan Bossart)", "commit_aliases": ["ab6eaee88"], "source_commits": ["ab6eaee88"], "source_entry_id": "11.0/changes/046", "db_id": "88e11376873db37860a8283def88c839", "patch_ids": ["89a735098dfe8b0bcc438bf4793d0997"], "statement_hash": "90ba145481ec14835594d2a0c1e729f9304df3343b8eeaa4d7092c35c639013a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-fbb92a78e33433d7", "migration": false}, {"id": "11.0-92a394957d10ead4", "cves": [], "html": "<p>\u6dfb\u52a0\u4e0e\u8868\u7ea6\u675f\u548c\u89e6\u53d1\u5668\u76f8\u5173\u7684 <code>information_schema</code> \u5217\uff08Peter Eisentraut\uff09</p>\n<p>\u5177\u4f53\u800c\u8a00\uff0c<code>triggers</code>.<code>action_order</code>\u3001<code>triggers</code>.<code>action_reference_old_table</code> \u548c <code>triggers</code>.<code>action_reference_new_table</code> \u73b0\u5728\u4f1a\u586b\u5165\u503c\uff0c\u800c\u4ee5\u524d\u59cb\u7ec8\u4e3a\u7a7a\u3002\u6b64\u5916\uff0c<code>table_constraints</code>.<code>enforced</code> \u5217\u73b0\u5728\u5df2\u5b58\u5728\uff0c\u4f46\u5c1a\u672a\u586b\u5165\u6709\u7528\u7684\u503c\u3002</p>", "text": "\u6dfb\u52a0\u4e0e\u8868\u7ea6\u675f\u548c\u89e6\u53d1\u5668\u76f8\u5173\u7684 information_schema \u5217\uff08Peter Eisentraut\uff09 \u5177\u4f53\u800c\u8a00\uff0ctriggers.action_order\u3001triggers.action_reference_old_table \u548c triggers.action_reference_new_table \u73b0\u5728\u4f1a\u586b\u5165\u503c\uff0c\u800c\u4ee5\u524d\u59cb\u7ec8\u4e3a\u7a7a\u3002\u6b64\u5916\uff0ctable_constraints.enforced \u5217\u73b0\u5728\u5df2\u5b58\u5728\uff0c\u4f46\u5c1a\u672a\u586b\u5165\u6709\u7528\u7684\u503c\u3002", "title": "\u6dfb\u52a0\u4e0e\u8868\u7ea6\u675f\u548c\u89e6\u53d1\u5668\u76f8\u5173\u7684 information_schema \u5217", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7 / \u4fe1\u606f\u6a21\u5f0f", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.7.3", "source_hash": "cc450cc8213f864cd5c0790d5bdebf53df55c7a1040bb789197e7803afdaffda", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7", "\u4fe1\u606f\u6a21\u5f0f"], "commit_groups": [["32ff26911"]], "identity_text": "Add information_schema columns related to table constraints and triggers (Peter Eisentraut) Specifically, triggers.action_order, triggers.action_reference_old_table, and triggers.action_reference_new_table are now populated, where before they were always null. Also, table_constraints.enforced now exists but is not yet usefully populated.", "commit_aliases": ["32ff26911"], "source_commits": ["32ff26911"], "source_entry_id": "11.0/changes/047", "db_id": "cf80aa0f9ac6ab113721ddb044aa374d", "patch_ids": ["cbc5472bccfe53c66431a3fd73625c53"], "statement_hash": "a17ecaf69e32ee3595693ac6f1e78626c35e124b67869aeaabded89dbea5be1f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-92a394957d10ead4", "migration": false}, {"id": "11.0-5aca042f327b6142", "cves": [], "html": "<p>\u5141\u8bb8\u670d\u52a1\u5668\u5728 search+bind \u6a21\u5f0f\u4e0b\u4f7f\u7528\u66f4\u590d\u6742\u7684 <a href=\"/docs/11/auth-ldap.html\" title=\"20.10.\u00a0LDAP \u8ba4\u8bc1\"><acronym>LDAP</acronym></a> \u914d\u7f6e\uff08Thomas Munro\uff09</p>\n<p>\u5177\u4f53\u800c\u8a00\uff0c<code>ldapsearchfilter</code> \u5141\u8bb8\u7ec4\u5408 <acronym>LDAP</acronym> \u5c5e\u6027\u8fdb\u884c\u6a21\u5f0f\u5339\u914d\u3002</p>", "text": "\u5141\u8bb8\u670d\u52a1\u5668\u5728 search+bind \u6a21\u5f0f\u4e0b\u4f7f\u7528\u66f4\u590d\u6742\u7684 LDAP \u914d\u7f6e\uff08Thomas Munro\uff09 \u5177\u4f53\u800c\u8a00\uff0cldapsearchfilter \u5141\u8bb8\u7ec4\u5408 LDAP \u5c5e\u6027\u8fdb\u884c\u6a21\u5f0f\u5339\u914d\u3002", "title": "\u5141\u8bb8\u670d\u52a1\u5668\u5728 search+bind \u6a21\u5f0f\u4e0b\u4f7f\u7528\u66f4\u590d\u6742\u7684 LDAP \u914d\u7f6e", "commits": [], "section": "\u670d\u52a1\u5668 / Authentication", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.8", "source_hash": "a4b1deaa0e9d80d3250d3652b701e4e77b40d919f87ab148869c954e63445d05", "section_path": ["\u670d\u52a1\u5668", "Authentication"], "commit_groups": [["83aaac41c"]], "identity_text": "Allow the server to specify more complex LDAP specifications in search+bind mode (Thomas Munro) Specifically, ldapsearchfilter allows pattern matching using combinations of LDAP attributes.", "commit_aliases": ["83aaac41c"], "source_commits": ["83aaac41c"], "source_entry_id": "11.0/changes/048", "db_id": "72437165e1f32f65a6b478fd95d22270", "patch_ids": ["7c27a2d87838ac41c99b47ba05185979"], "statement_hash": "123b50ea60bada2ea580cbd9b1350bd8ba9f8d67566ea0fd411ff164dab6179c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-5aca042f327b6142", "migration": false}, {"id": "11.0-343f785c1d0c7f03", "cves": [], "html": "<p>\u5141\u8bb8 <acronym>LDAP</acronym> \u8ba4\u8bc1\u4f7f\u7528\u52a0\u5bc6\u7684 <acronym>LDAP</acronym>\uff08Thomas Munro\uff09</p>\n<p>\u4ee5\u524d\u5df2\u53ef\u901a\u8fc7 <code>ldaptls=1</code> \u652f\u6301\u57fa\u4e8e <acronym>TLS</acronym> \u7684 <acronym>LDAP</acronym>\u3002\u8fd9\u79cd\u7528\u4e8e\u52a0\u5bc6 <acronym>LDAP</acronym> \u7684\u65b0 <acronym>TLS</acronym> <acronym>LDAP</acronym> \u65b9\u5f0f\uff0c\u901a\u8fc7 <code>ldapscheme=ldaps</code> \u6216 <code>ldapurl=ldaps://</code> \u542f\u7528\u3002</p>", "text": "\u5141\u8bb8 LDAP \u8ba4\u8bc1\u4f7f\u7528\u52a0\u5bc6\u7684 LDAP\uff08Thomas Munro\uff09 \u4ee5\u524d\u5df2\u53ef\u901a\u8fc7 ldaptls=1 \u652f\u6301\u57fa\u4e8e TLS \u7684 LDAP\u3002\u8fd9\u79cd\u7528\u4e8e\u52a0\u5bc6 LDAP \u7684\u65b0 TLS LDAP \u65b9\u5f0f\uff0c\u901a\u8fc7 ldapscheme=ldaps \u6216 ldapurl=ldaps:// \u542f\u7528\u3002", "title": "\u5141\u8bb8 LDAP \u8ba4\u8bc1\u4f7f\u7528\u52a0\u5bc6\u7684 LDAP", "commits": [], "section": "\u670d\u52a1\u5668 / Authentication", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.8", "source_hash": "3a42e9208f95522bb8d3575c4d10b5538ed83859bd7b13419493ba02a6e27f4a", "section_path": ["\u670d\u52a1\u5668", "Authentication"], "commit_groups": [["35c0754fa"], ["3ad2afc2e"]], "identity_text": "Allow LDAP authentication to use encrypted LDAP (Thomas Munro) We already supported LDAP over TLS by using ldaptls=1. This new TLS LDAP method for encrypted LDAP is enabled with ldapscheme=ldaps or ldapurl=ldaps://.", "commit_aliases": ["35c0754fa", "3ad2afc2e"], "source_commits": ["35c0754fa", "3ad2afc2e"], "source_entry_id": "11.0/changes/049", "db_id": "e31102ddd553ae8c026e924c160ca2de", "patch_ids": ["7f792f3c6c305b482aabc29d8d651dae", "af52c47b54f2f733770555d57b1b5863"], "statement_hash": "048d30c49c17c7cc24a7667f8fa8dcf1f4b9a5cb0041d1d9e77c3d174ee62217", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-343f785c1d0c7f03", "migration": false}, {"id": "11.0-e379d9175e17d7bf", "cves": [], "html": "<p>\u6539\u8fdb <acronym>LDAP</acronym> \u9519\u8bef\u7684\u65e5\u5fd7\u8bb0\u5f55\uff08Thomas Munro\uff09</p>", "text": "\u6539\u8fdb LDAP \u9519\u8bef\u7684\u65e5\u5fd7\u8bb0\u5f55\uff08Thomas Munro\uff09", "title": "\u6539\u8fdb LDAP \u9519\u8bef\u7684\u65e5\u5fd7\u8bb0\u5f55", "commits": [], "section": "\u670d\u52a1\u5668 / Authentication", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.8", "source_hash": "ba42ec08339ab64fe9d31d3c817bdaf20c7d8ccfc855404be63bc3a947473a52", "section_path": ["\u670d\u52a1\u5668", "Authentication"], "commit_groups": [["cf1238cd9"]], "identity_text": "Improve logging of LDAP errors (Thomas Munro)", "commit_aliases": ["cf1238cd9"], "source_commits": ["cf1238cd9"], "source_entry_id": "11.0/changes/050", "db_id": "d835fe9c0c6d7625838a8d833f2e30c5", "patch_ids": ["dcdc5233ecc8a2496357e0a0dd8f06c6"], "statement_hash": "ae64df16cae8d6bf31768ae216689854e043231ae9b13136c821d6ecddfaf46b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-e379d9175e17d7bf", "migration": false}, {"id": "11.0-cb345e26b4519c8d", "cves": [], "html": "<p>\u6dfb\u52a0\u5141\u8bb8\u6587\u4ef6\u7cfb\u7edf\u8bbf\u95ee\u7684<a href=\"/docs/11/default-roles.html#DEFAULT-ROLES-TABLE\" title=\"\u8868\u00a021.1.\u00a0\u9ed8\u8ba4\u89d2\u8272\">\u9ed8\u8ba4\u89d2\u8272</a>\uff08Stephen Frost\uff09</p>\n<p>\u5177\u4f53\u6765\u8bf4\uff0c\u65b0\u589e\u89d2\u8272\u662f <code>pg_read_server_files</code>\u3001<code>pg_write_server_files</code> \u548c <code>pg_execute_server_program</code>\u3002\u8fd9\u4e9b\u89d2\u8272\u73b0\u5728\u8fd8\u63a7\u5236\u8c01\u53ef\u4ee5\u4f7f\u7528\u670d\u52a1\u5668\u7aef\u7684 <code>COPY</code> \u548c <a href=\"/docs/11/file-fdw.html\" title=\"F.14.\u00a0file_fdw\"><code>file_fdw</code></a> \u6269\u5c55\u3002\u4ee5\u524d\uff0c\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e9b\u529f\u80fd\uff0c\u73b0\u5728\u9ed8\u8ba4\u884c\u4e3a\u4ecd\u7136\u5982\u6b64\u3002</p>", "text": "\u6dfb\u52a0\u5141\u8bb8\u6587\u4ef6\u7cfb\u7edf\u8bbf\u95ee\u7684\u9ed8\u8ba4\u89d2\u8272\uff08Stephen Frost\uff09 \u5177\u4f53\u6765\u8bf4\uff0c\u65b0\u589e\u89d2\u8272\u662f pg_read_server_files\u3001pg_write_server_files \u548c pg_execute_server_program\u3002\u8fd9\u4e9b\u89d2\u8272\u73b0\u5728\u8fd8\u63a7\u5236\u8c01\u53ef\u4ee5\u4f7f\u7528\u670d\u52a1\u5668\u7aef\u7684 COPY \u548c file_fdw \u6269\u5c55\u3002\u4ee5\u524d\uff0c\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e9b\u529f\u80fd\uff0c\u73b0\u5728\u9ed8\u8ba4\u884c\u4e3a\u4ecd\u7136\u5982\u6b64\u3002", "title": "\u6dfb\u52a0\u5141\u8bb8\u6587\u4ef6\u7cfb\u7edf\u8bbf\u95ee\u7684\u9ed8\u8ba4\u89d2\u8272", "commits": [], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.9", "source_hash": "95ab77073d9dbcc05a6d6e47ec1a5b1b1ebed919a876af45f11c329ebccfd1dc", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["0fdc8495b"], ["da9b580d8"]], "identity_text": "Add default roles that enable file system access (Stephen Frost) Specifically, the new roles are: pg_read_server_files, pg_write_server_files, and pg_execute_server_program. These roles now also control who can use server-side COPY and the file_fdw extension. Previously, only superusers could use these functions, and that is still the default behavior.", "commit_aliases": ["0fdc8495b", "da9b580d8"], "source_commits": ["0fdc8495b", "da9b580d8"], "source_entry_id": "11.0/changes/051", "db_id": "85bdcc58d402a70b786b4dbaa25e9112", "patch_ids": ["b2284d966eee3ea07f814fe4acc65444", "c99685c206c48f557f29180150aff351"], "statement_hash": "87c001eeacc10fdb471734302f10333359437cd738296d57b8e38c7d51fd5512", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-cb345e26b4519c8d", "migration": false}, {"id": "11.0-eef48317025439e3", "cves": [], "html": "<p>\u5141\u8bb8\u901a\u8fc7 <code>GRANT</code>/<code>REVOKE</code> \u6743\u9650\u63a7\u5236\u5bf9\u6587\u4ef6\u7cfb\u7edf\u51fd\u6570\u7684\u8bbf\u95ee\uff0c\u53d6\u4ee3\u8d85\u7ea7\u7528\u6237\u68c0\u67e5\uff08Stephen Frost\uff09</p>\n<p>\u5177\u4f53\u800c\u8a00\uff0c\u4fee\u6539\u4e86\u4ee5\u4e0b\u51fd\u6570\uff1a<a href=\"/docs/11/functions-admin.html#FUNCTIONS-ADMIN-GENFILE-TABLE\" title=\"\u8868\u00a09.88.\u00a0\u901a\u7528\u6587\u4ef6\u8bbf\u95ee\u51fd\u6570\"><code>pg_ls_dir()</code></a>\u3001<code>pg_read_file()</code>\u3001<code>pg_read_binary_file()</code>\u3001<code>pg_stat_file()</code>\u3002</p>", "text": "\u5141\u8bb8\u901a\u8fc7 GRANT/REVOKE \u6743\u9650\u63a7\u5236\u5bf9\u6587\u4ef6\u7cfb\u7edf\u51fd\u6570\u7684\u8bbf\u95ee\uff0c\u53d6\u4ee3\u8d85\u7ea7\u7528\u6237\u68c0\u67e5\uff08Stephen Frost\uff09 \u5177\u4f53\u800c\u8a00\uff0c\u4fee\u6539\u4e86\u4ee5\u4e0b\u51fd\u6570\uff1apg_ls_dir()\u3001pg_read_file()\u3001pg_read_binary_file()\u3001pg_stat_file()\u3002", "title": "\u5141\u8bb8\u901a\u8fc7 GRANT/REVOKE \u6743\u9650\u63a7\u5236\u5bf9\u6587\u4ef6\u7cfb\u7edf\u51fd\u6570\u7684\u8bbf\u95ee\uff0c\u53d6\u4ee3\u8d85\u7ea7\u7528\u6237\u68c0\u67e5", "commits": [], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.9", "source_hash": "a65c6b73288b7b880dedbe59821d5ae9045e2d87088c2c2bc0e9d956af5e19f1", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["e79350fef"]], "identity_text": "Allow access to file system functions to be controlled by GRANT/REVOKE permissions, rather than superuser checks (Stephen Frost) Specifically, these functions were modified: pg_ls_dir(), pg_read_file(), pg_read_binary_file(), pg_stat_file().", "commit_aliases": ["e79350fef"], "source_commits": ["e79350fef"], "source_entry_id": "11.0/changes/052", "db_id": "34d1eed64f84c453bb8312cbc9140641", "patch_ids": ["048c8a6d4d3033f6b8d5fd387fbe3ab1"], "statement_hash": "51a5c14900450660a2b2e01fd036bc6bd1f3cbfd923c4e483cbd1d605c4c2f00", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-eef48317025439e3", "migration": false}, {"id": "11.0-43b08ce9ee77cf87", "cves": [], "html": "<p>\u4f7f\u7528 <code>GRANT</code>/<code>REVOKE</code> \u63a7\u5236\u5bf9 <a href=\"/docs/11/lo-interfaces.html#LO-IMPORT\" title=\"35.3.2.\u00a0\u5bfc\u5165\u4e00\u4e2a\u5927\u5bf9\u8c61\"><code>lo_import()</code></a> \u548c <code>lo_export()</code> \u7684\u8bbf\u95ee\uff08Michael Paquier\uff0cTom Lane\uff09</p>\n<p>\u4ee5\u524d\uff0c\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u83b7\u51c6\u8bbf\u95ee\u8fd9\u4e9b\u51fd\u6570\u3002</p>\n<p>\u7f16\u8bd1\u65f6\u9009\u9879 <code>ALLOW_DANGEROUS_LO_FUNCTIONS</code> \u5df2\u88ab\u79fb\u9664\u3002</p>", "text": "\u4f7f\u7528 GRANT/REVOKE \u63a7\u5236\u5bf9 lo_import() \u548c lo_export() \u7684\u8bbf\u95ee\uff08Michael Paquier\uff0cTom Lane\uff09 \u4ee5\u524d\uff0c\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u83b7\u51c6\u8bbf\u95ee\u8fd9\u4e9b\u51fd\u6570\u3002 \u7f16\u8bd1\u65f6\u9009\u9879 ALLOW_DANGEROUS_LO_FUNCTIONS \u5df2\u88ab\u79fb\u9664\u3002", "title": "\u4f7f\u7528 GRANT/REVOKE \u63a7\u5236\u5bf9 lo_import() \u548c lo_export() \u7684\u8bbf\u95ee", "commits": [], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.9", "source_hash": "625daac310004e879ba11c4bd9eeed72815852ca08c6b64d9110baa3932b77af", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["5ecc0d738"], ["6d776522d"]], "identity_text": "Use GRANT/REVOKE to control access to lo_import() and lo_export() (Michael Paquier, Tom Lane) Previously, only superusers were granted access to these functions. The compile-time option ALLOW_DANGEROUS_LO_FUNCTIONS has been removed.", "commit_aliases": ["5ecc0d738", "6d776522d"], "source_commits": ["5ecc0d738", "6d776522d"], "source_entry_id": "11.0/changes/053", "db_id": "64317dec4095a31874ad8bfffd1b3783", "patch_ids": ["2f492a4642cc93d8877db1a9839f8422", "eedf0c6681cf9bbd404133ffc0f03ee6"], "statement_hash": "e0cf2e7bb8d51667238f48e5e52b8b75d3e546af7734ef077d690510d104dd56", "relations": [{"rule": 2, "type": "related", "target": "0b279c27863f37b234d2c71e90a34f66", "evidence": {"same_day": true, "patch_ids": ["2f492a4642cc93d8877db1a9839f8422"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-43b08ce9ee77cf87", "migration": false}, {"id": "11.0-b7b141f93ce42c76", "cves": [], "html": "<p>\u5728\u963b\u6b62\u4ee5\u975e\u5bc6\u7801\u65b9\u5f0f\u8bbf\u95ee <a href=\"/docs/11/postgres-fdw.html\" title=\"F.33.\u00a0postgres_fdw\"><code>postgres_fdw</code></a> \u8868\u65f6\uff0c\u4f7f\u7528\u89c6\u56fe\u6240\u6709\u8005\u800c\u975e\u4f1a\u8bdd\u6240\u6709\u8005\uff08Robert Haas\uff09</p>\n<p><span>PostgreSQL</span> \u53ea\u5141\u8bb8\u8d85\u7ea7\u7528\u6237\u5728\u4e0d\u4f7f\u7528\u5bc6\u7801\u7684\u60c5\u51b5\u4e0b\u8bbf\u95ee <code>postgres_fdw</code> \u8868\uff0c\u4f8b\u5982\u901a\u8fc7 <code>peer</code> \u8ba4\u8bc1\u3002\u4ee5\u524d\uff0c\u8981\u5141\u8bb8\u6b64\u7c7b\u8bbf\u95ee\uff0c\u4f1a\u8bdd\u6240\u6709\u8005\u5fc5\u987b\u662f\u8d85\u7ea7\u7528\u6237\uff1b\u73b0\u5728\u6539\u4e3a\u68c0\u67e5\u89c6\u56fe\u6240\u6709\u8005\u3002</p>", "text": "\u5728\u963b\u6b62\u4ee5\u975e\u5bc6\u7801\u65b9\u5f0f\u8bbf\u95ee postgres_fdw \u8868\u65f6\uff0c\u4f7f\u7528\u89c6\u56fe\u6240\u6709\u8005\u800c\u975e\u4f1a\u8bdd\u6240\u6709\u8005\uff08Robert Haas\uff09 PostgreSQL \u53ea\u5141\u8bb8\u8d85\u7ea7\u7528\u6237\u5728\u4e0d\u4f7f\u7528\u5bc6\u7801\u7684\u60c5\u51b5\u4e0b\u8bbf\u95ee postgres_fdw \u8868\uff0c\u4f8b\u5982\u901a\u8fc7 peer \u8ba4\u8bc1\u3002\u4ee5\u524d\uff0c\u8981\u5141\u8bb8\u6b64\u7c7b\u8bbf\u95ee\uff0c\u4f1a\u8bdd\u6240\u6709\u8005\u5fc5\u987b\u662f\u8d85\u7ea7\u7528\u6237\uff1b\u73b0\u5728\u6539\u4e3a\u68c0\u67e5\u89c6\u56fe\u6240\u6709\u8005\u3002", "title": "\u5728\u963b\u6b62\u4ee5\u975e\u5bc6\u7801\u65b9\u5f0f\u8bbf\u95ee postgres_fdw \u8868\u65f6\uff0c\u4f7f\u7528\u89c6\u56fe\u6240\u6709\u8005\u800c\u975e\u4f1a\u8bdd\u6240\u6709\u8005", "commits": [], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.9", "source_hash": "d617a30dad4d948433ebc5b591ad047022fce48b9411b04049e32b1b4a91d50d", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["ab3f008a2"]], "identity_text": "Use view owner not session owner when preventing non-password access to postgres_fdw tables (Robert Haas) PostgreSQL only allows superusers to access postgres_fdw tables without passwords, e.g., via peer. Previously, the session owner had to be a superuser to allow such access; now the view owner is checked instead.", "commit_aliases": ["ab3f008a2"], "source_commits": ["ab3f008a2"], "source_entry_id": "11.0/changes/054", "db_id": "2e59df2e588f076ca6157783090eb5ec", "patch_ids": ["64ebc2a165cd0a5f9081a99fc69f0ca2"], "statement_hash": "28a830b2113c7496b5a784770c4ead4699ebe99b0f862c2e12109020264eb31f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-b7b141f93ce42c76", "migration": false}, {"id": "11.0-c1e810f4835245b1", "cves": [], "html": "<p>\u4fee\u590d\u5bf9\u89c6\u56fe\u6267\u884c <code>SELECT FOR UPDATE</code> \u65f6\u65e0\u6548\u7684\u9501\u5b9a\u6743\u9650\u68c0\u67e5\uff08Tom Lane\uff09</p>", "text": "\u4fee\u590d\u5bf9\u89c6\u56fe\u6267\u884c SELECT FOR UPDATE \u65f6\u65e0\u6548\u7684\u9501\u5b9a\u6743\u9650\u68c0\u67e5\uff08Tom Lane\uff09", "title": "\u4fee\u590d\u5bf9\u89c6\u56fe\u6267\u884c SELECT FOR UPDATE \u65f6\u65e0\u6548\u7684\u9501\u5b9a\u6743\u9650\u68c0\u67e5", "commits": [], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "bugfix", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.9", "source_hash": "34fc37020aadaeea60cf066257a3039194807a5d3177bf9b3a4ec03f6d3ad468", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["50c6bb022"]], "identity_text": "Fix invalid locking permission check in SELECT FOR UPDATE on views (Tom Lane)", "commit_aliases": ["50c6bb022"], "source_commits": ["50c6bb022"], "source_entry_id": "11.0/changes/055", "db_id": "0c62ce14098f322927822e44b798037e", "patch_ids": ["54064ad075bc8751bd8417591b9195ac"], "statement_hash": "93c405beb7da8351ff3728369fa0b6c0ce5d4deb25a23dd029e8b1a4b8fcb87d", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=11.0#11.0-c1e810f4835245b1", "migration": false}, {"id": "11.0-0180533cbaacc09a", "cves": [], "html": "<p>\u6dfb\u52a0\u670d\u52a1\u5668\u8bbe\u7f6e <a href=\"/docs/11/runtime-config-connection.html#GUC-SSL-PASSPHRASE-COMMAND\"><code>ssl_passphrase_command</code></a>\uff0c\u4ee5\u5141\u8bb8\u4e3a <acronym>SSL</acronym> \u5bc6\u94a5\u6587\u4ef6\u63d0\u4f9b\u53e3\u4ee4\uff08Peter Eisentraut\uff09</p>\n<p>\u540c\u65f6\u6dfb\u52a0 <a href=\"/docs/11/runtime-config-connection.html#GUC-SSL-PASSPHRASE-COMMAND-SUPPORTS-RELOAD\"><code>ssl_passphrase_command_supports_reload</code></a>\uff0c\u7528\u4e8e\u6307\u5b9a\u670d\u52a1\u5668\u914d\u7f6e\u91cd\u65b0\u52a0\u8f7d\u671f\u95f4\uff0c\u662f\u5426\u5e94\u91cd\u65b0\u52a0\u8f7d <acronym>SSL</acronym> \u914d\u7f6e\u5e76\u8c03\u7528 <code>ssl_passphrase_command</code>\u3002</p>", "text": "\u6dfb\u52a0\u670d\u52a1\u5668\u8bbe\u7f6e ssl_passphrase_command\uff0c\u4ee5\u5141\u8bb8\u4e3a SSL \u5bc6\u94a5\u6587\u4ef6\u63d0\u4f9b\u53e3\u4ee4\uff08Peter Eisentraut\uff09 \u540c\u65f6\u6dfb\u52a0 ssl_passphrase_command_supports_reload\uff0c\u7528\u4e8e\u6307\u5b9a\u670d\u52a1\u5668\u914d\u7f6e\u91cd\u65b0\u52a0\u8f7d\u671f\u95f4\uff0c\u662f\u5426\u5e94\u91cd\u65b0\u52a0\u8f7d SSL \u914d\u7f6e\u5e76\u8c03\u7528 ssl_passphrase_command\u3002", "title": "\u6dfb\u52a0\u670d\u52a1\u5668\u8bbe\u7f6e ssl_passphrase_command\uff0c\u4ee5\u5141\u8bb8\u4e3a SSL \u5bc6\u94a5\u6587\u4ef6\u63d0\u4f9b\u53e3\u4ee4", "commits": [], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.10", "source_hash": "d3778df3f88ce6485b4741b45a9dd1af27f3e94c9d688d4e468dc7f4e145f41f", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["8a3d94252"]], "identity_text": "Add server setting ssl_passphrase_command to allow supplying of the passphrase for SSL key files (Peter Eisentraut) Also add ssl_passphrase_command_supports_reload to specify whether the SSL configuration should be reloaded and ssl_passphrase_command called during a server configuration reload.", "commit_aliases": ["8a3d94252"], "source_commits": ["8a3d94252"], "source_entry_id": "11.0/changes/056", "db_id": "f64e6c3af83ac5540c0680fb03310080", "patch_ids": ["8a61c8906208b6f444a925ba6398b5f2"], "statement_hash": "fe073f5577ea791b20141412bf9c7dcee45b103f6ec0bf492c3c01a5e68faab3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-0180533cbaacc09a", "migration": false}, {"id": "11.0-e106d5d335e15243", "cves": [], "html": "<p>\u6dfb\u52a0\u5b58\u50a8\u53c2\u6570 <a href=\"/docs/11/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS\" title=\"\u5b58\u50a8\u53c2\u6570\"><code>toast_tuple_target</code></a>\uff0c\u4ee5\u63a7\u5236\u5f00\u59cb\u8003\u8651 <acronym>TOAST</acronym> \u5b58\u50a8\u7684\u6700\u5c0f\u5143\u7ec4\u957f\u5ea6\uff08Simon Riggs\uff09</p>\n<p>\u9ed8\u8ba4\u7684 <acronym>TOAST</acronym> \u9608\u503c\u6ca1\u6709\u6539\u53d8\u3002</p>", "text": "\u6dfb\u52a0\u5b58\u50a8\u53c2\u6570 toast_tuple_target\uff0c\u4ee5\u63a7\u5236\u5f00\u59cb\u8003\u8651 TOAST \u5b58\u50a8\u7684\u6700\u5c0f\u5143\u7ec4\u957f\u5ea6\uff08Simon Riggs\uff09 \u9ed8\u8ba4\u7684 TOAST \u9608\u503c\u6ca1\u6709\u6539\u53d8\u3002", "title": "\u6dfb\u52a0\u5b58\u50a8\u53c2\u6570 toast_tuple_target\uff0c\u4ee5\u63a7\u5236\u5f00\u59cb\u8003\u8651 TOAST \u5b58\u50a8\u7684\u6700\u5c0f\u5143\u7ec4\u957f\u5ea6", "commits": [], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.10", "source_hash": "35a464e2aeb91ffb892bb99c2fdb1484274b1e86d619ce65830cfde29bed4f39", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["c2513365a"]], "identity_text": "Add storage parameter toast_tuple_target to control the minimum tuple length before TOAST storage will be considered (Simon Riggs) The default TOAST threshold has not been changed.", "commit_aliases": ["c2513365a"], "source_commits": ["c2513365a"], "source_entry_id": "11.0/changes/057", "db_id": "ace5f27f4a22e60e5e315e523db0d475", "patch_ids": ["f38bc3b70a551b1688d8e728acf7441e"], "statement_hash": "d5dc594bc3fc7340bd7891227b000cc0bcc1b869027a591115a7fb0e8e23c398", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-e106d5d335e15243", "migration": false}, {"id": "11.0-1ae6bab0db83cc2f", "cves": [], "html": "<p>\u5141\u8bb8\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\u6307\u5b9a\u4e0e\u5185\u5b58\u548c\u6587\u4ef6\u5927\u5c0f\u76f8\u5173\u7684\u670d\u52a1\u5668\u9009\u9879\uff08Beena Emerson\uff09</p>\n<p>\u65b0\u589e\u5355\u4f4d\u540e\u7f00\u4e3a <span>\u201c<span>B</span>\u201d</span>\uff0c\u4e0e\u73b0\u6709\u7684 <span>\u201c<span>kB</span>\u201d</span>\u3001<span>\u201c<span>MB</span>\u201d</span>\u3001<span>\u201c<span>GB</span>\u201d</span> \u548c <span>\u201c<span>TB</span>\u201d</span> \u5e76\u7528\u3002</p>", "text": "\u5141\u8bb8\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\u6307\u5b9a\u4e0e\u5185\u5b58\u548c\u6587\u4ef6\u5927\u5c0f\u76f8\u5173\u7684\u670d\u52a1\u5668\u9009\u9879\uff08Beena Emerson\uff09 \u65b0\u589e\u5355\u4f4d\u540e\u7f00\u4e3a \u201cB\u201d\uff0c\u4e0e\u73b0\u6709\u7684 \u201ckB\u201d\u3001\u201cMB\u201d\u3001\u201cGB\u201d \u548c \u201cTB\u201d \u5e76\u7528\u3002", "title": "\u5141\u8bb8\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\u6307\u5b9a\u4e0e\u5185\u5b58\u548c\u6587\u4ef6\u5927\u5c0f\u76f8\u5173\u7684\u670d\u52a1\u5668\u9009\u9879", "commits": [], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.10", "source_hash": "cb52ef7d99025408e5a80f9fd9b3b0e35f32c64a857e0f7869435bbd25a71b29", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["6e7baa322"], ["b06d8e58b"]], "identity_text": "Allow server options related to memory and file sizes to be specified in units of bytes (Beena Emerson) The new unit suffix is B. This is in addition to the existing units kB, MB, GB and TB.", "commit_aliases": ["6e7baa322", "b06d8e58b"], "source_commits": ["6e7baa322", "b06d8e58b"], "source_entry_id": "11.0/changes/058", "db_id": "04aa60ab2b89066ec89bd6c60605739f", "patch_ids": ["9d6582b2063b65dcd591508db87d200b", "deb10772777150c2727b2fb1111e397a"], "statement_hash": "bf40f7571fa9ca8a72e64645abededd51cb9dbc57408ce8c91da5b4d30a04fe0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-1ae6bab0db83cc2f", "migration": false}, {"id": "11.0-1b8986eeb92ea478", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <span>initdb</span> \u671f\u95f4\u8bbe\u7f6e <acronym>WAL</acronym> \u6587\u4ef6\u5927\u5c0f\uff08Beena Emerson\uff09</p>\n<p>\u4ee5\u524d\uff0c16MB \u7684\u9ed8\u8ba4\u503c\u53ea\u80fd\u5728\u7f16\u8bd1\u65f6\u66f4\u6539\u3002</p>", "text": "\u5141\u8bb8\u5728 initdb \u671f\u95f4\u8bbe\u7f6e WAL \u6587\u4ef6\u5927\u5c0f\uff08Beena Emerson\uff09 \u4ee5\u524d\uff0c16MB \u7684\u9ed8\u8ba4\u503c\u53ea\u80fd\u5728\u7f16\u8bd1\u65f6\u66f4\u6539\u3002", "title": "\u5141\u8bb8\u5728 initdb \u671f\u95f4\u8bbe\u7f6e WAL \u6587\u4ef6\u5927\u5c0f", "commits": [], "section": "\u670d\u52a1\u5668 / \u9884\u5199\u5f0f\u65e5\u5fd7\uff08WAL\uff09", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.11", "source_hash": "a4b35c4d9ef913a225d8b16649c7a028a8745439b219f63babe5cc56ef7a410d", "section_path": ["\u670d\u52a1\u5668", "\u9884\u5199\u5f0f\u65e5\u5fd7\uff08WAL\uff09"], "commit_groups": [["fc49e24fa"]], "identity_text": "Allow the WAL file size to be set during initdb (Beena Emerson) Previously, the 16MB default could only be changed at compile time.", "commit_aliases": ["fc49e24fa"], "source_commits": ["fc49e24fa"], "source_entry_id": "11.0/changes/059", "db_id": "47fbfb37e540c4f7c25c4d48495164a6", "patch_ids": ["ee4d6e1f35c15ef4c16cbe190565844b"], "statement_hash": "1a93805137ff3cfed2d7c3a0ebc49e8ec2f0d1870b2808eea2695c68735c8814", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-1b8986eeb92ea478", "migration": false}, {"id": "11.0-18da4a5f1610d3be", "cves": [], "html": "<p>\u4ec5\u4fdd\u7559\u4e00\u4e2a\u68c0\u67e5\u70b9\u5468\u671f\u7684 <acronym>WAL</acronym> \u6570\u636e\uff08Simon Riggs\uff09</p>\n<p>\u4ee5\u524d\uff0c\u4f1a\u4fdd\u7559\u4e24\u4e2a\u68c0\u67e5\u70b9\u5468\u671f\u7684 <acronym>WAL</acronym>\u3002</p>", "text": "\u4ec5\u4fdd\u7559\u4e00\u4e2a\u68c0\u67e5\u70b9\u5468\u671f\u7684 WAL \u6570\u636e\uff08Simon Riggs\uff09 \u4ee5\u524d\uff0c\u4f1a\u4fdd\u7559\u4e24\u4e2a\u68c0\u67e5\u70b9\u5468\u671f\u7684 WAL\u3002", "title": "\u4ec5\u4fdd\u7559\u4e00\u4e2a\u68c0\u67e5\u70b9\u5468\u671f\u7684 WAL \u6570\u636e", "commits": [], "section": "\u670d\u52a1\u5668 / \u9884\u5199\u5f0f\u65e5\u5fd7\uff08WAL\uff09", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.11", "source_hash": "50c9f9b4293446b1347e8322d6f1625f4e563ab6935111083d59bc30509e84de", "section_path": ["\u670d\u52a1\u5668", "\u9884\u5199\u5f0f\u65e5\u5fd7\uff08WAL\uff09"], "commit_groups": [["4b0d28de0"]], "identity_text": "Retain WAL data for only a single checkpoint (Simon Riggs) Previously, WAL was retained for two checkpoints.", "commit_aliases": ["4b0d28de0"], "source_commits": ["4b0d28de0"], "source_entry_id": "11.0/changes/060", "db_id": "3c4e095cf338efc7d6cff054f32a1b69", "patch_ids": ["3f2f66997e3f108a9c73bf448bc219f7"], "statement_hash": "af4dbd2ba0c5566e7873419a170a149c449d50f89532ebbd550f38329bb1e8ca", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-18da4a5f1610d3be", "migration": false}, {"id": "11.0-e5b305e2f5efef96", "cves": [], "html": "<p>\u5c06\u88ab\u5f3a\u5236\u5207\u6362\u7684 <acronym>WAL</acronym> \u6bb5\u6587\u4ef6\u7684\u672a\u4f7f\u7528\u90e8\u5206\u586b\u96f6\uff0c\u4ee5\u63d0\u9ad8\u53ef\u538b\u7f29\u6027\uff08Chapman Flack\uff09</p>", "text": "\u5c06\u88ab\u5f3a\u5236\u5207\u6362\u7684 WAL \u6bb5\u6587\u4ef6\u7684\u672a\u4f7f\u7528\u90e8\u5206\u586b\u96f6\uff0c\u4ee5\u63d0\u9ad8\u53ef\u538b\u7f29\u6027\uff08Chapman Flack\uff09", "title": "\u5c06\u88ab\u5f3a\u5236\u5207\u6362\u7684 WAL \u6bb5\u6587\u4ef6\u7684\u672a\u4f7f\u7528\u90e8\u5206\u586b\u96f6\uff0c\u4ee5\u63d0\u9ad8\u53ef\u538b\u7f29\u6027", "commits": [], "section": "\u670d\u52a1\u5668 / \u9884\u5199\u5f0f\u65e5\u5fd7\uff08WAL\uff09", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.3.11", "source_hash": "1fe7484f03ff0030c53014fc689c2b7c839496546b2b6d1f100be6ef5b1d62ab", "section_path": ["\u670d\u52a1\u5668", "\u9884\u5199\u5f0f\u65e5\u5fd7\uff08WAL\uff09"], "commit_groups": [["4a33bb59d"]], "identity_text": "Fill the unused portion of force-switched WAL segment files with zeros for improved compressibility (Chapman Flack)", "commit_aliases": ["4a33bb59d"], "source_commits": ["4a33bb59d"], "source_entry_id": "11.0/changes/061", "db_id": "4e3acc0d84234a1ec3efd039df3393e4", "patch_ids": ["8fd6fa5958971b4f1660135683d1d71c"], "statement_hash": "7af1a11e9a791a7fd72fdb1ca63c549cee73f7e0277ca37f6ea45c4ecbbf0533", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-e5b305e2f5efef96", "migration": false}, {"id": "11.0-e0cda63716b24a68", "cves": [], "html": "<p>\u4f7f\u7528\u903b\u8f91\u590d\u5236\u65f6\u590d\u5236 <code>TRUNCATE</code> \u64cd\u4f5c\uff08Simon Riggs\uff0cMarco Nenciarini\uff0cPeter Eisentraut\uff09</p>", "text": "\u4f7f\u7528\u903b\u8f91\u590d\u5236\u65f6\u590d\u5236 TRUNCATE \u64cd\u4f5c\uff08Simon Riggs\uff0cMarco Nenciarini\uff0cPeter Eisentraut\uff09", "title": "\u4f7f\u7528\u903b\u8f91\u590d\u5236\u65f6\u590d\u5236 TRUNCATE \u64cd\u4f5c", "commits": [], "section": "\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.4", "source_hash": "25cb4127d8b8e3cc2fb7cac3cb30ef3715ed2d960ec3969000518cdcc867edc4", "section_path": ["\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236"], "commit_groups": [["039eb6e92"], ["5dfd1e5a6"]], "identity_text": "Replicate TRUNCATE activity when using logical replication (Simon Riggs, Marco Nenciarini, Peter Eisentraut)", "commit_aliases": ["039eb6e92", "5dfd1e5a6"], "source_commits": ["039eb6e92", "5dfd1e5a6"], "source_entry_id": "11.0/changes/062", "db_id": "164fa0e9adf445552a7c00a4c8fe4ff1", "patch_ids": ["5de3880bacfbe1672f9c26bc5d16ffab", "eeba644012c423c481f908b61f588aca"], "statement_hash": "8d03bd450fef5a9dc672c93666b8fec72eb4f786fd89982d53d77a51d275e97b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-e0cda63716b24a68", "migration": false}, {"id": "11.0-9715a294f5e6866e", "cves": [], "html": "<p>\u5c06\u9884\u5907\u4e8b\u52a1\u4fe1\u606f\u4f20\u9012\u7ed9\u903b\u8f91\u590d\u5236\u8ba2\u9605\u8005\uff08Nikhil Sontakke\uff0cStas Kelvich\uff09</p>", "text": "\u5c06\u9884\u5907\u4e8b\u52a1\u4fe1\u606f\u4f20\u9012\u7ed9\u903b\u8f91\u590d\u5236\u8ba2\u9605\u8005\uff08Nikhil Sontakke\uff0cStas Kelvich\uff09", "title": "\u5c06\u9884\u5907\u4e8b\u52a1\u4fe1\u606f\u4f20\u9012\u7ed9\u903b\u8f91\u590d\u5236\u8ba2\u9605\u8005", "commits": [], "section": "\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.4", "source_hash": "dc49bbb987a75a0d038856abcbce2adb6ec1c67e109f31ee83310ec95767eab0", "section_path": ["\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236"], "commit_groups": [["1eb6d6527"]], "identity_text": "Pass prepared transaction information to logical replication subscribers (Nikhil Sontakke, Stas Kelvich)", "commit_aliases": ["1eb6d6527"], "source_commits": ["1eb6d6527"], "source_entry_id": "11.0/changes/063", "db_id": "000e84c6a14d505070db1fde381d32d1", "patch_ids": ["2ba325ad80ccae1670c875ef0fd4af0f"], "statement_hash": "673a98baf03e197ddf064444b068b41028b57f3b1508951514933c8e8e019c7e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-9715a294f5e6866e", "migration": false}, {"id": "11.0-670a6a1014286406", "cves": [], "html": "<p>\u4ece\u6d41\u5f0f\u57fa\u7840\u5907\u4efd\u4e2d\u6392\u9664\u4e0d\u8bb0\u5f55 WAL \u7684\u8868\u3001\u4e34\u65f6\u8868\u548c <code>pg_internal.init</code> \u6587\u4ef6\uff08David Steele\uff09</p>\n<p>\u6ca1\u6709\u5fc5\u8981\u590d\u5236\u6b64\u7c7b\u6587\u4ef6\u3002</p>", "text": "\u4ece\u6d41\u5f0f\u57fa\u7840\u5907\u4efd\u4e2d\u6392\u9664\u4e0d\u8bb0\u5f55 WAL \u7684\u8868\u3001\u4e34\u65f6\u8868\u548c pg_internal.init \u6587\u4ef6\uff08David Steele\uff09 \u6ca1\u6709\u5fc5\u8981\u590d\u5236\u6b64\u7c7b\u6587\u4ef6\u3002", "title": "\u4ece\u6d41\u5f0f\u57fa\u7840\u5907\u4efd\u4e2d\u6392\u9664\u4e0d\u8bb0\u5f55 WAL \u7684\u8868\u3001\u4e34\u65f6\u8868\u548c pg_internal.init \u6587\u4ef6", "commits": [], "section": "\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.4", "source_hash": "9178b93090507d43bcfd51ac6be8adb84020ca93413294e0baff628f8ebef3a2", "section_path": ["\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236"], "commit_groups": [["8694cc96b"], ["920a5e500"], ["98267ee83"]], "identity_text": "Exclude unlogged tables, temporary tables, and pg_internal.init files from streaming base backups (David Steele) There is no need to copy such files.", "commit_aliases": ["8694cc96b", "920a5e500", "98267ee83"], "source_commits": ["8694cc96b", "920a5e500", "98267ee83"], "source_entry_id": "11.0/changes/064", "db_id": "3ff82d6fb2b9b7d7c949768a55cc2c64", "patch_ids": ["af9ef3186ec110b08c56cf73eac67d2f", "cf882b1a701bad25e36043c11c518f4e", "f88ea6b39b72b92570f52b22c9b3b017"], "statement_hash": "617b9d4b6fd00f590e792ecd9b54bf4d5fd58ecd9ef5f7e98cd71e97750e1d01", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-670a6a1014286406", "migration": false}, {"id": "11.0-a4ce6d62b997e183", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u6d41\u5f0f\u57fa\u7840\u5907\u4efd\u671f\u95f4\u9a8c\u8bc1\u5806\u9875\u9762\u7684\u6821\u9a8c\u548c\uff08Michael Banck\uff09</p>", "text": "\u5141\u8bb8\u5728\u6d41\u5f0f\u57fa\u7840\u5907\u4efd\u671f\u95f4\u9a8c\u8bc1\u5806\u9875\u9762\u7684\u6821\u9a8c\u548c\uff08Michael Banck\uff09", "title": "\u5141\u8bb8\u5728\u6d41\u5f0f\u57fa\u7840\u5907\u4efd\u671f\u95f4\u9a8c\u8bc1\u5806\u9875\u9762\u7684\u6821\u9a8c\u548c", "commits": [], "section": "\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.4", "source_hash": "43354a3a0759f59c26e71c6c038d2dff6642e6e6c8ad8ce7c5af025d8f2104f3", "section_path": ["\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236"], "commit_groups": [["4eb77d50c"]], "identity_text": "Allow checksums of heap pages to be verified during streaming base backup (Michael Banck)", "commit_aliases": ["4eb77d50c"], "source_commits": ["4eb77d50c"], "source_entry_id": "11.0/changes/065", "db_id": "01df6d05d7b158bfd2b91e2bf4237f07", "patch_ids": ["f8b763beb9b5b162f708472e1eb70b24"], "statement_hash": "a5d71ce1a1f7fa28f7cddd7dec2454b3de7d49fa803c8a655225317978c4fa4c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-a4ce6d62b997e183", "migration": false}, {"id": "11.0-1d01578cd91f097a", "cves": [], "html": "<p>\u5141\u8bb8\u4ee5\u7f16\u7a0b\u65b9\u5f0f\u63a8\u8fdb\u590d\u5236\u69fd\uff0c\u800c\u65e0\u9700\u7531\u8ba2\u9605\u8005\u6d88\u8d39\uff08Petr Jelinek\uff09</p>\n<p>\u8fd9\u4f7f\u590d\u5236\u69fd\u5728\u5185\u5bb9\u65e0\u9700\u88ab\u6d88\u8d39\u65f6\u80fd\u591f\u9ad8\u6548\u63a8\u8fdb\u3002\u76f8\u5e94\u64cd\u4f5c\u901a\u8fc7 <code>pg_replication_slot_advance()</code> \u6267\u884c\u3002</p>", "text": "\u5141\u8bb8\u4ee5\u7f16\u7a0b\u65b9\u5f0f\u63a8\u8fdb\u590d\u5236\u69fd\uff0c\u800c\u65e0\u9700\u7531\u8ba2\u9605\u8005\u6d88\u8d39\uff08Petr Jelinek\uff09 \u8fd9\u4f7f\u590d\u5236\u69fd\u5728\u5185\u5bb9\u65e0\u9700\u88ab\u6d88\u8d39\u65f6\u80fd\u591f\u9ad8\u6548\u63a8\u8fdb\u3002\u76f8\u5e94\u64cd\u4f5c\u901a\u8fc7 pg_replication_slot_advance() \u6267\u884c\u3002", "title": "\u5141\u8bb8\u4ee5\u7f16\u7a0b\u65b9\u5f0f\u63a8\u8fdb\u590d\u5236\u69fd\uff0c\u800c\u65e0\u9700\u7531\u8ba2\u9605\u8005\u6d88\u8d39", "commits": [], "section": "\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.4", "source_hash": "aa666cf32990c0cf34e31b90626a250b5eba1e31468538439a84e6fb86aac274", "section_path": ["\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236"], "commit_groups": [["9c7d06d60"]], "identity_text": "Allow replication slots to be advanced programmatically, rather than be consumed by subscribers (Petr Jelinek) This allows efficient advancement of replication slots when the contents do not need to be consumed. This is performed by pg_replication_slot_advance().", "commit_aliases": ["9c7d06d60"], "source_commits": ["9c7d06d60"], "source_entry_id": "11.0/changes/066", "db_id": "94643a2a0775154a475639a52a5abc5a", "patch_ids": ["a7fd8c3d552a4be04526b2ee42fa6edc"], "statement_hash": "db0f1bb8d06a42c6dc6059a363c88a66c26084e5ddb2191d034b12bb06bce9a2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-1d01578cd91f097a", "migration": false}, {"id": "11.0-db7f25c632db29a4", "cves": [], "html": "<p>\u5411 <a href=\"/docs/11/continuous-archiving.html#BACKUP-LOWLEVEL-BASE-BACKUP\" title=\"25.3.3.\u00a0\u4f7f\u7528\u4f4e\u7ea7 API \u8fdb\u884c\u57fa\u7840\u5907\u4efd\"><code>backup_label</code></a> \u6587\u4ef6\u6dfb\u52a0\u65f6\u95f4\u7ebf\u4fe1\u606f\uff08Michael Paquier\uff09</p>\n<p>\u540c\u65f6\u6dfb\u52a0\u68c0\u67e5\uff0c\u786e\u4fdd <acronym>WAL</acronym> \u65f6\u95f4\u7ebf\u4e0e <code>backup_label</code> \u6587\u4ef6\u7684\u65f6\u95f4\u7ebf\u5339\u914d\u3002</p>", "text": "\u5411 backup_label \u6587\u4ef6\u6dfb\u52a0\u65f6\u95f4\u7ebf\u4fe1\u606f\uff08Michael Paquier\uff09 \u540c\u65f6\u6dfb\u52a0\u68c0\u67e5\uff0c\u786e\u4fdd WAL \u65f6\u95f4\u7ebf\u4e0e backup_label \u6587\u4ef6\u7684\u65f6\u95f4\u7ebf\u5339\u914d\u3002", "title": "\u5411 backup_label \u6587\u4ef6\u6dfb\u52a0\u65f6\u95f4\u7ebf\u4fe1\u606f", "commits": [], "section": "\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.4", "source_hash": "97b3584d8363ff9f6434d2d56edde17cd80e0e86c4efc45a4281debddaf8da89", "section_path": ["\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236"], "commit_groups": [["6271fceb8"]], "identity_text": "Add timeline information to the backup_label file (Michael Paquier) Also add a check that the WAL timeline matches the backup_label file's timeline.", "commit_aliases": ["6271fceb8"], "source_commits": ["6271fceb8"], "source_entry_id": "11.0/changes/067", "db_id": "2d198131b7f807abc638c59b2a16fc72", "patch_ids": ["fdbbc3a012b2f53e9c9fb2db464d6c81"], "statement_hash": "167aa43c1da2759e8266cf7f057de0c9dc1534af0f6a6cdae15d34a9e66899bb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-db7f25c632db29a4", "migration": false}, {"id": "11.0-744066196404d4ac", "cves": [], "html": "<p>\u5411 <code>pg_stat_wal_receiver</code> \u7cfb\u7edf\u89c6\u56fe\u6dfb\u52a0\u4e3b\u673a\u548c\u7aef\u53e3\u8fde\u63a5\u4fe1\u606f\uff08Haribabu Kommi\uff09</p>", "text": "\u5411 pg_stat_wal_receiver \u7cfb\u7edf\u89c6\u56fe\u6dfb\u52a0\u4e3b\u673a\u548c\u7aef\u53e3\u8fde\u63a5\u4fe1\u606f\uff08Haribabu Kommi\uff09", "title": "\u5411 pg_stat_wal_receiver \u7cfb\u7edf\u89c6\u56fe\u6dfb\u52a0\u4e3b\u673a\u548c\u7aef\u53e3\u8fde\u63a5\u4fe1\u606f", "commits": [], "section": "\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.4", "source_hash": "4d60245f5860bfd860c2096d91e8266bd0b727791355712cbfe6007712cf41af", "section_path": ["\u57fa\u7840\u5907\u4efd\u4e0e\u6d41\u590d\u5236"], "commit_groups": [["9a895462d"]], "identity_text": "Add host and port connection information to the pg_stat_wal_receiver system view (Haribabu Kommi)", "commit_aliases": ["9a895462d"], "source_commits": ["9a895462d"], "source_entry_id": "11.0/changes/068", "db_id": "dc062bc3528315fc0e62faa27773981d", "patch_ids": ["8abe5be701e1777a2d6f2aca86827a80"], "statement_hash": "c531e19e287247320f490f7d3fd668cb1fdf849e7efd565be6b9bc61be90febe", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-744066196404d4ac", "migration": false}, {"id": "11.0-1d1b0bb529850c8b", "cves": [], "html": "<p>\u5141\u8bb8 <code>ALTER TABLE</code> \u6dfb\u52a0\u5177\u6709\u975e\u7a7a\u9ed8\u8ba4\u503c\u7684\u5217\uff0c\u800c\u65e0\u9700\u91cd\u5199\u8868\uff08Andrew Dunstan\uff0cSerge Rielau\uff09</p>\n<p>\u9ed8\u8ba4\u503c\u4e3a\u5e38\u91cf\u65f6\u4f1a\u542f\u7528\u6b64\u4f18\u5316\u3002</p>", "text": "\u5141\u8bb8 ALTER TABLE \u6dfb\u52a0\u5177\u6709\u975e\u7a7a\u9ed8\u8ba4\u503c\u7684\u5217\uff0c\u800c\u65e0\u9700\u91cd\u5199\u8868\uff08Andrew Dunstan\uff0cSerge Rielau\uff09 \u9ed8\u8ba4\u503c\u4e3a\u5e38\u91cf\u65f6\u4f1a\u542f\u7528\u6b64\u4f18\u5316\u3002", "title": "\u5141\u8bb8 ALTER TABLE \u6dfb\u52a0\u5177\u6709\u975e\u7a7a\u9ed8\u8ba4\u503c\u7684\u5217\uff0c\u800c\u65e0\u9700\u91cd\u5199\u8868", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.5", "source_hash": "ab9acc3a94dc6e6f2b802a749ca8b7ebe5ed9da9e517844138fb502da921ef62", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["16828d5c0"]], "identity_text": "Allow ALTER TABLE to add a column with a non-null default without doing a table rewrite (Andrew Dunstan, Serge Rielau) This is enabled when the default value is a constant.", "commit_aliases": ["16828d5c0"], "source_commits": ["16828d5c0"], "source_entry_id": "11.0/changes/069", "db_id": "ace512d78734cf5085a3fe9cbd1d25b6", "patch_ids": ["cea7a1fe3222777a2fed9157ac898a65"], "statement_hash": "3fa7b43f1eb4f52baf2d7a121c418f0f9d9a9ffa8edc7f7daf132b5f92096d76", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-1d1b0bb529850c8b", "migration": false}, {"id": "11.0-427b09fb12f0ce8b", "cves": [], "html": "<p>\u5141\u8bb8\u901a\u8fc7\u9501\u5b9a\u5e95\u5c42\u8868\u6765\u9501\u5b9a\u89c6\u56fe\uff08Yugo Nagata\uff09</p>", "text": "\u5141\u8bb8\u901a\u8fc7\u9501\u5b9a\u5e95\u5c42\u8868\u6765\u9501\u5b9a\u89c6\u56fe\uff08Yugo Nagata\uff09", "title": "\u5141\u8bb8\u901a\u8fc7\u9501\u5b9a\u5e95\u5c42\u8868\u6765\u9501\u5b9a\u89c6\u56fe", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.5", "source_hash": "a718af0a0a99ba22d9f3cb076d327b173193f11d6db34ad4509996619007fa99", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["1b26bd408"], ["34c20de4d"]], "identity_text": "Allow views to be locked by locking the underlying tables (Yugo Nagata)", "commit_aliases": ["1b26bd408", "34c20de4d"], "source_commits": ["1b26bd408", "34c20de4d"], "source_entry_id": "11.0/changes/070", "db_id": "378f06d3060eb35779f10e6b19f7eb45", "patch_ids": ["0ac14f284c72a9a43a4f307047dd95d9", "ff4e3e43f9330e79c2d8d139accc0b29"], "statement_hash": "2b58056cab3df82d676457915083bd3da77e51662b112be4266df5e394b51812", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-427b09fb12f0ce8b", "migration": false}, {"id": "11.0-2ef62ec9212372d9", "cves": [], "html": "<p>\u5141\u8bb8 <code>ALTER INDEX</code> \u8bbe\u7f6e\u8868\u8fbe\u5f0f\u7d22\u5f15\u7684\u7edf\u8ba1\u6536\u96c6\u76ee\u6807\uff08Alexander Korotkov\uff0cAdrien Nayrat\uff09</p>\n<p>\u5728 <span>psql</span> \u4e2d\uff0c<code>\\d+</code> \u73b0\u5728\u4f1a\u663e\u793a\u7d22\u5f15\u7684\u7edf\u8ba1\u76ee\u6807\u3002</p>", "text": "\u5141\u8bb8 ALTER INDEX \u8bbe\u7f6e\u8868\u8fbe\u5f0f\u7d22\u5f15\u7684\u7edf\u8ba1\u6536\u96c6\u76ee\u6807\uff08Alexander Korotkov\uff0cAdrien Nayrat\uff09 \u5728 psql \u4e2d\uff0c\\d+ \u73b0\u5728\u4f1a\u663e\u793a\u7d22\u5f15\u7684\u7edf\u8ba1\u76ee\u6807\u3002", "title": "\u5141\u8bb8 ALTER INDEX \u8bbe\u7f6e\u8868\u8fbe\u5f0f\u7d22\u5f15\u7684\u7edf\u8ba1\u6536\u96c6\u76ee\u6807", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.5", "source_hash": "a999420b31b598dd41990ce6ed2bbfa7635c78643bfa8ce2a626b0cf2de88157", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["5b6d13eec"]], "identity_text": "Allow ALTER INDEX to set statistics-gathering targets for expression indexes (Alexander Korotkov, Adrien Nayrat) In psql, \\d+ now shows the statistics target for indexes.", "commit_aliases": ["5b6d13eec"], "source_commits": ["5b6d13eec"], "source_entry_id": "11.0/changes/071", "db_id": "08fbf01c204df9801746485917ab5722", "patch_ids": ["ae0cdad77783bca63369d70fd15ed21e"], "statement_hash": "728e0f1deb38999bc57a33e3235851bdefa5228867d25142987c102a51095fc1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-2ef62ec9212372d9", "migration": false}, {"id": "11.0-efae1bd1025c9b30", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u4e00\u6761 <code>VACUUM</code> \u6216 <code>ANALYZE</code> \u547d\u4ee4\u4e2d\u6307\u5b9a\u591a\u4e2a\u8868\uff08Nathan Bossart\uff09</p>\n<p>\u6b64\u5916\uff0c\u5982\u679c <code>VACUUM</code> \u4e2d\u63d0\u5230\u7684\u4efb\u4f55\u8868\u4f7f\u7528\u4e86\u5217\u5217\u8868\uff0c\u5c31\u5fc5\u987b\u63d0\u4f9b <code>ANALYZE</code> \u5173\u952e\u5b57\uff1b\u4ee5\u524d\uff0c\u6b64\u7c7b\u60c5\u51b5\u4f1a\u9690\u542b\u6267\u884c <code>ANALYZE</code>\u3002</p>", "text": "\u5141\u8bb8\u5728\u4e00\u6761 VACUUM \u6216 ANALYZE \u547d\u4ee4\u4e2d\u6307\u5b9a\u591a\u4e2a\u8868\uff08Nathan Bossart\uff09 \u6b64\u5916\uff0c\u5982\u679c VACUUM \u4e2d\u63d0\u5230\u7684\u4efb\u4f55\u8868\u4f7f\u7528\u4e86\u5217\u5217\u8868\uff0c\u5c31\u5fc5\u987b\u63d0\u4f9b ANALYZE \u5173\u952e\u5b57\uff1b\u4ee5\u524d\uff0c\u6b64\u7c7b\u60c5\u51b5\u4f1a\u9690\u542b\u6267\u884c ANALYZE\u3002", "title": "\u5141\u8bb8\u5728\u4e00\u6761 VACUUM \u6216 ANALYZE \u547d\u4ee4\u4e2d\u6307\u5b9a\u591a\u4e2a\u8868", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.5", "source_hash": "5e254339fe0f66c56f36cc7152f4771a3d269ab347fecef466518db8146c93f9", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["11d8d72c2"]], "identity_text": "Allow multiple tables to be specified in one VACUUM or ANALYZE command (Nathan Bossart) Also, if any table mentioned in VACUUM uses a column list, then the ANALYZE keyword must be supplied; previously, ANALYZE was implied in such cases.", "commit_aliases": ["11d8d72c2"], "source_commits": ["11d8d72c2"], "source_entry_id": "11.0/changes/072", "db_id": "213c175ea8ffac3162f44961c3e59b4e", "patch_ids": ["3c7c8769a33ff3cf87e4b5e8afd653c6"], "statement_hash": "7c69a7020b9a85f28f12f6568f597c81025369ab3191921fa22562f995bd8c45", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-efae1bd1025c9b30", "migration": false}, {"id": "11.0-eeaff879e623c989", "cves": [], "html": "<p>\u4e3a <code>ANALYZE</code> \u6dfb\u52a0\u62ec\u53f7\u5305\u56f4\u7684\u9009\u9879\u8bed\u6cd5\uff08Nathan Bossart\uff09</p>\n<p>\u8fd9\u4e0e <code>VACUUM</code> \u652f\u6301\u7684\u8bed\u6cd5\u7c7b\u4f3c\u3002</p>", "text": "\u4e3a ANALYZE \u6dfb\u52a0\u62ec\u53f7\u5305\u56f4\u7684\u9009\u9879\u8bed\u6cd5\uff08Nathan Bossart\uff09 \u8fd9\u4e0e VACUUM \u652f\u6301\u7684\u8bed\u6cd5\u7c7b\u4f3c\u3002", "title": "\u4e3a ANALYZE \u6dfb\u52a0\u62ec\u53f7\u5305\u56f4\u7684\u9009\u9879\u8bed\u6cd5", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.5", "source_hash": "164982c8296b975f314371c082ee9a1482a1285036c87ddcc412aa4b61343365", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["854dd8cff"]], "identity_text": "Add parenthesized options syntax to ANALYZE (Nathan Bossart) This is similar to the syntax supported by VACUUM.", "commit_aliases": ["854dd8cff"], "source_commits": ["854dd8cff"], "source_entry_id": "11.0/changes/073", "db_id": "e09607130b5178d6cdf4bddd84e5b496", "patch_ids": ["b1cf2f2f882733e528512609874b3aac"], "statement_hash": "f1833745fba1f0b3f86d2ec0d4fbf3017c3ec4fa5b8504e1be238637582d781a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-eeaff879e623c989", "migration": false}, {"id": "11.0-457aecd53b21e744", "cves": [], "html": "<p>\u6dfb\u52a0 <code>CREATE AGGREGATE</code> \u9009\u9879\uff0c\u4ee5\u6307\u5b9a\u805a\u5408\u6700\u7ec8\u51fd\u6570\u7684\u884c\u4e3a\uff08Tom Lane\uff09</p>\n<p>\u8fd9\u6709\u52a9\u4e8e\u4f18\u5316\u7528\u6237\u5b9a\u4e49\u7684\u805a\u5408\u51fd\u6570\uff0c\u5e76\u4f7f\u5176\u80fd\u591f\u7528\u4f5c\u7a97\u53e3\u51fd\u6570\u3002</p>", "text": "\u6dfb\u52a0 CREATE AGGREGATE \u9009\u9879\uff0c\u4ee5\u6307\u5b9a\u805a\u5408\u6700\u7ec8\u51fd\u6570\u7684\u884c\u4e3a\uff08Tom Lane\uff09 \u8fd9\u6709\u52a9\u4e8e\u4f18\u5316\u7528\u6237\u5b9a\u4e49\u7684\u805a\u5408\u51fd\u6570\uff0c\u5e76\u4f7f\u5176\u80fd\u591f\u7528\u4f5c\u7a97\u53e3\u51fd\u6570\u3002", "title": "\u6dfb\u52a0 CREATE AGGREGATE \u9009\u9879\uff0c\u4ee5\u6307\u5b9a\u805a\u5408\u6700\u7ec8\u51fd\u6570\u7684\u884c\u4e3a", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.5", "source_hash": "4f78a0f85dee9a484d4bb3c107bfd03080ecebd91239d9f766191b64f149dfa9", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["4de2d4fba"], ["be0ebb65f"]], "identity_text": "Add CREATE AGGREGATE option to specify the behavior of the aggregate's finalization function (Tom Lane) This is helpful for allowing user-defined aggregate functions to be optimized and to work as window functions.", "commit_aliases": ["4de2d4fba", "be0ebb65f"], "source_commits": ["4de2d4fba", "be0ebb65f"], "source_entry_id": "11.0/changes/074", "db_id": "28b3f7fda0292e912add1c943a7a36bc", "patch_ids": ["1e8ad797a9d1556bd7f2f6b05ca3ec2b", "b71a80b232b7e351f4c1036ef6d403c5"], "statement_hash": "63cadbb561a467935ff1ad72a07f6a0a4cf117c8495caa648fc9df104a28f5a1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-457aecd53b21e744", "migration": false}, {"id": "11.0-2dd97447dd7e278c", "cves": [], "html": "<p>\u5141\u8bb8\u521b\u5efa\u57df\u7684\u6570\u7ec4\uff08Tom Lane\uff09</p>\n<p>\u8fd9\u4e5f\u5141\u8bb8\u5bf9\u57df\u4f7f\u7528 <code>array_agg()</code>\u3002</p>", "text": "\u5141\u8bb8\u521b\u5efa\u57df\u7684\u6570\u7ec4\uff08Tom Lane\uff09 \u8fd9\u4e5f\u5141\u8bb8\u5bf9\u57df\u4f7f\u7528 array_agg()\u3002", "title": "\u5141\u8bb8\u521b\u5efa\u57df\u7684\u6570\u7ec4", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.6", "source_hash": "4d4236d5e84aa1239eac81d7d5324bcb461abd4132b1fb6f243539c73ab58990", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["c12d570fa"]], "identity_text": "Allow the creation of arrays of domains (Tom Lane) This also allows array_agg() to be used on domains.", "commit_aliases": ["c12d570fa"], "source_commits": ["c12d570fa"], "source_entry_id": "11.0/changes/075", "db_id": "32e6fb4d45890c0a29cbdc83127a786a", "patch_ids": ["1d8e7e77c302e7ec7391bb9d39b6fffc"], "statement_hash": "831a23663ffda7a4d1096003aadfae1b0b62142df1920fe9eee1e58c6bfdd91e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-2dd97447dd7e278c", "migration": false}, {"id": "11.0-c85314d190743477", "cves": [], "html": "<p>\u652f\u6301\u57fa\u4e8e\u590d\u5408\u7c7b\u578b\u7684\u57df\uff08Tom Lane\uff09</p>\n<p>\u540c\u65f6\u5141\u8bb8 PL/Perl\u3001PL/Python \u548c PL/Tcl \u5904\u7406\u590d\u5408\u7c7b\u578b\u57df\u7684\u51fd\u6570\u53c2\u6570\u548c\u7ed3\u679c\uff0c\u5e76\u6539\u8fdb PL/Python \u7684\u57df\u5904\u7406\u3002</p>", "text": "\u652f\u6301\u57fa\u4e8e\u590d\u5408\u7c7b\u578b\u7684\u57df\uff08Tom Lane\uff09 \u540c\u65f6\u5141\u8bb8 PL/Perl\u3001PL/Python \u548c PL/Tcl \u5904\u7406\u590d\u5408\u7c7b\u578b\u57df\u7684\u51fd\u6570\u53c2\u6570\u548c\u7ed3\u679c\uff0c\u5e76\u6539\u8fdb PL/Python \u7684\u57df\u5904\u7406\u3002", "title": "\u652f\u6301\u57fa\u4e8e\u590d\u5408\u7c7b\u578b\u7684\u57df", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.6", "source_hash": "a0906d2fe9ca776ec3d672a430c9575e2adb19e499bf46714cafe5148c31155a", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["37a795a60"], ["60651e4cd"], ["687f096ea"], ["820c0305f"]], "identity_text": "Support domains over composite types (Tom Lane) Also allow PL/Perl, PL/Python, and PL/Tcl to handle composite-domain function arguments and results. Also improve PL/Python domain handling.", "commit_aliases": ["37a795a60", "60651e4cd", "687f096ea", "820c0305f"], "source_commits": ["37a795a60", "60651e4cd", "687f096ea", "820c0305f"], "source_entry_id": "11.0/changes/076", "db_id": "a929b9dce201e5448b7104fdb8f9ca52", "patch_ids": ["0199429a370a79ecc83782c7a1802524", "067667940e422ee6ab3fc971f7da687e", "243494c5c925b1ac225a902e971cbcbc", "32f98202db83f109091677492b37b96a"], "statement_hash": "bd778de7e9ae77d4bb0fdafcc086815da2c753347a2afc96999f843667f91741", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-c85314d190743477", "migration": false}, {"id": "11.0-83135c589052bd38", "cves": [], "html": "<p>\u6dfb\u52a0\u4ece <code>JSONB</code> \u6807\u91cf\u5230\u6570\u503c\u548c\u5e03\u5c14\u6570\u636e\u7c7b\u578b\u7684\u7c7b\u578b\u8f6c\u6362\uff08Anastasia Lubennikova\uff09</p>", "text": "\u6dfb\u52a0\u4ece JSONB \u6807\u91cf\u5230\u6570\u503c\u548c\u5e03\u5c14\u6570\u636e\u7c7b\u578b\u7684\u7c7b\u578b\u8f6c\u6362\uff08Anastasia Lubennikova\uff09", "title": "\u6dfb\u52a0\u4ece JSONB \u6807\u91cf\u5230\u6570\u503c\u548c\u5e03\u5c14\u6570\u636e\u7c7b\u578b\u7684\u7c7b\u578b\u8f6c\u6362", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.6", "source_hash": "2bc9f1bf2e18ecbf7c93ad040f6cf514d8e8db9b459fe4e4f590ff44772bdfe3", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["c0cbe00fe"]], "identity_text": "Add casts from JSONB scalars to numeric and boolean data types (Anastasia Lubennikova)", "commit_aliases": ["c0cbe00fe"], "source_commits": ["c0cbe00fe"], "source_entry_id": "11.0/changes/077", "db_id": "f15ce8671923e4ede1d00b4745184fa4", "patch_ids": ["ae65c087435a9fa70bbf6cf9dcf801a9"], "statement_hash": "c9fa1d37a771f1f17c90a4952f2e8d03d3c1fcab7b389c496032dfadcc301102", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-83135c589052bd38", "migration": false}, {"id": "11.0-46045d0c5c5f46e6", "cves": [], "html": "<p>\u6dfb\u52a0 SQL:2011 \u89c4\u5b9a\u7684\u6240\u6709<a href=\"/docs/11/sql-select.html#SQL-WINDOW\" title=\"WINDOW \u5b50\u53e5\">\u7a97\u53e3\u51fd\u6570</a>\u5e27\u9009\u9879\uff08Oliver Ford\uff0cTom Lane\uff09</p>\n<p>\u5177\u4f53\u800c\u8a00\uff0c\u5141\u8bb8 <code>RANGE</code> \u6a21\u5f0f\u4f7f\u7528 <code>PRECEDING</code> \u548c <code>FOLLOWING</code>\uff0c\u9009\u53d6\u5206\u7ec4\u503c\u4f4d\u4e8e\u52a0\u51cf\u6307\u5b9a\u504f\u79fb\u91cf\u8303\u56f4\u5185\u7684\u884c\u3002\u6dfb\u52a0 <code>GROUPS</code> \u6a21\u5f0f\uff0c\u4ee5\u5305\u542b\u524d\u540e\u6307\u5b9a\u6570\u91cf\u7684\u540c\u7b49\u884c\u7ec4\u3002\u540c\u65f6\u6dfb\u52a0\u4e86\u5e27\u6392\u9664\u8bed\u6cd5\u3002</p>", "text": "\u6dfb\u52a0 SQL:2011 \u89c4\u5b9a\u7684\u6240\u6709\u7a97\u53e3\u51fd\u6570\u5e27\u9009\u9879\uff08Oliver Ford\uff0cTom Lane\uff09 \u5177\u4f53\u800c\u8a00\uff0c\u5141\u8bb8 RANGE \u6a21\u5f0f\u4f7f\u7528 PRECEDING \u548c FOLLOWING\uff0c\u9009\u53d6\u5206\u7ec4\u503c\u4f4d\u4e8e\u52a0\u51cf\u6307\u5b9a\u504f\u79fb\u91cf\u8303\u56f4\u5185\u7684\u884c\u3002\u6dfb\u52a0 GROUPS \u6a21\u5f0f\uff0c\u4ee5\u5305\u542b\u524d\u540e\u6307\u5b9a\u6570\u91cf\u7684\u540c\u7b49\u884c\u7ec4\u3002\u540c\u65f6\u6dfb\u52a0\u4e86\u5e27\u6392\u9664\u8bed\u6cd5\u3002", "title": "\u6dfb\u52a0 SQL:2011 \u89c4\u5b9a\u7684\u6240\u6709\u7a97\u53e3\u51fd\u6570\u5e27\u9009\u9879", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.7", "source_hash": "2ea3d66c2850747a9cb8d3f9483e3ffe9d13e8bff25ac5caaf1afb481b515eb7", "section_path": ["\u51fd\u6570"], "commit_groups": [["0a459cec9"], ["8b29e88cd"]], "identity_text": "Add all window function framing options specified by SQL:2011 (Oliver Ford, Tom Lane) Specifically, allow RANGE mode to use PRECEDING and FOLLOWING to select rows having grouping values within plus or minus the specified offset. Add GROUPS mode to include plus or minus the number of peer groups. Frame exclusion syntax was also added.", "commit_aliases": ["0a459cec9", "8b29e88cd"], "source_commits": ["0a459cec9", "8b29e88cd"], "source_entry_id": "11.0/changes/078", "db_id": "bb9d7a4b6dce3d96fd390234653bc70a", "patch_ids": ["20d71601baf9e5175243e91d755d5871", "2c076692cff80bd372c4f8b71c65f9d2"], "statement_hash": "e60f0610ee35dc7903c889238a4fddee9c56b21b6ad55798eba361e7f8ba6da3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-46045d0c5c5f46e6", "migration": false}, {"id": "11.0-eb632f0d54e726b5", "cves": [], "html": "<p>\u6dfb\u52a0 <acronym>SHA-2</acronym> \u7cfb\u5217 hash \u51fd\u6570\uff08Peter Eisentraut\uff09</p>\n<p>\u5177\u4f53\u6dfb\u52a0\u4e86 <a href=\"/docs/11/functions-binarystring.html#FUNCTIONS-BINARYSTRING-OTHER\" title=\"\u8868\u00a09.12.\u00a0\u5176\u4ed6\u4e8c\u8fdb\u5236\u4e32\u51fd\u6570\"><code>sha224()</code></a>\u3001<code>sha256()</code>\u3001<code>sha384()</code> \u548c <code>sha512()</code>\u3002</p>", "text": "\u6dfb\u52a0 SHA-2 \u7cfb\u5217 hash \u51fd\u6570\uff08Peter Eisentraut\uff09 \u5177\u4f53\u6dfb\u52a0\u4e86 sha224()\u3001sha256()\u3001sha384() \u548c sha512()\u3002", "title": "\u6dfb\u52a0 SHA-2 \u7cfb\u5217 hash \u51fd\u6570", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.7", "source_hash": "f543350727dcc7a40ad1013f079a5988e5f90e44b1f4d5f0d3ad5f100310fc06", "section_path": ["\u51fd\u6570"], "commit_groups": [["10cfce34c"]], "identity_text": "Add SHA-2 family of hash functions (Peter Eisentraut) Specifically, sha224(), sha256(), sha384(), sha512() were added.", "commit_aliases": ["10cfce34c"], "source_commits": ["10cfce34c"], "source_entry_id": "11.0/changes/079", "db_id": "c8d6d29b976d71bac97a021e691aebfb", "patch_ids": ["17e3c6819732f8198b21b89d4d62422c"], "statement_hash": "0a79aa493d4885c20799fff34df540fbfebaa6cac6d5747b84a13b80beaa6f34", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-eb632f0d54e726b5", "migration": false}, {"id": "11.0-476b40ab8f88411e", "cves": [], "html": "<p>\u6dfb\u52a0\u5bf9 64 \u4f4d\u975e\u5bc6\u7801\u5b66 hash \u51fd\u6570\u7684\u652f\u6301\uff08Robert Haas\uff0cAmul Sul\uff09</p>", "text": "\u6dfb\u52a0\u5bf9 64 \u4f4d\u975e\u5bc6\u7801\u5b66 hash \u51fd\u6570\u7684\u652f\u6301\uff08Robert Haas\uff0cAmul Sul\uff09", "title": "\u6dfb\u52a0\u5bf9 64 \u4f4d\u975e\u5bc6\u7801\u5b66 hash \u51fd\u6570\u7684\u652f\u6301", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.7", "source_hash": "94fbc570e9870b1cf1a594a84337e5bd4e171490b8492107204670236d7a1847", "section_path": ["\u51fd\u6570"], "commit_groups": [["81c5e46c4"]], "identity_text": "Add support for 64-bit non-cryptographic hash functions (Robert Haas, Amul Sul)", "commit_aliases": ["81c5e46c4"], "source_commits": ["81c5e46c4"], "source_entry_id": "11.0/changes/080", "db_id": "ff64ebfcf14bf447f2efd05d00561849", "patch_ids": ["17130222dbd63f36c1476c5e317600f0"], "statement_hash": "f4a02ff76aa1c37c206f293d495a68200e5e504efec5553e76d0fe8517b56598", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-476b40ab8f88411e", "migration": false}, {"id": "11.0-2389b115d28e1b12", "cves": [], "html": "<p>\u5141\u8bb8 <code>to_char()</code> \u548c <code>to_timestamp()</code> \u4ee5\u5c0f\u65f6\u548c\u5206\u949f\u6307\u5b9a\u65f6\u533a\u76f8\u5bf9\u4e8e <acronym>UTC</acronym> \u7684\u504f\u79fb\u91cf\uff08Nikita Glukhov\uff0cAndrew Dunstan\uff09</p>\n<p>\u8fd9\u901a\u8fc7\u683c\u5f0f\u6307\u5b9a\u7b26 <a href=\"/docs/11/functions-formatting.html#FUNCTIONS-FORMATTING-DATETIME-TABLE\" title=\"\u8868\u00a09.24.\u00a0\u7528\u4e8e\u65e5\u671f/\u65f6\u95f4\u683c\u5f0f\u5316\u7684\u6a21\u677f\u6a21\u5f0f\"><code>TZH</code></a> \u548c <code>TZM</code> \u5b8c\u6210\u3002</p>", "text": "\u5141\u8bb8 to_char() \u548c to_timestamp() \u4ee5\u5c0f\u65f6\u548c\u5206\u949f\u6307\u5b9a\u65f6\u533a\u76f8\u5bf9\u4e8e UTC \u7684\u504f\u79fb\u91cf\uff08Nikita Glukhov\uff0cAndrew Dunstan\uff09 \u8fd9\u901a\u8fc7\u683c\u5f0f\u6307\u5b9a\u7b26 TZH \u548c TZM \u5b8c\u6210\u3002", "title": "\u5141\u8bb8 to_char() \u548c to_timestamp() \u4ee5\u5c0f\u65f6\u548c\u5206\u949f\u6307\u5b9a\u65f6\u533a\u76f8\u5bf9\u4e8e UTC \u7684\u504f\u79fb\u91cf", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.7", "source_hash": "f670d7e15f599bb24811d7dbda90884bcda56a89df3ad06249282167c2fe1596", "section_path": ["\u51fd\u6570"], "commit_groups": [["11b623dd0"]], "identity_text": "Allow to_char() and to_timestamp() to specify the time zone's offset from UTC in hours and minutes (Nikita Glukhov, Andrew Dunstan) This is done with format specifications TZH and TZM.", "commit_aliases": ["11b623dd0"], "source_commits": ["11b623dd0"], "source_entry_id": "11.0/changes/081", "db_id": "65dbd3a84d812175bce5dec152424330", "patch_ids": ["0d5e5f9e697fb66d7e6cdfd20519a2e1"], "statement_hash": "2d7402cfb900b9d44e58cfa11962e2578394741e91615d665f1ccbffdad225e9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-2389b115d28e1b12", "migration": false}, {"id": "11.0-9ec29b4c8c12f446", "cves": [], "html": "<p>\u6dfb\u52a0\u6587\u672c\u68c0\u7d22\u51fd\u6570 <a href=\"/docs/11/functions-textsearch.html#TEXTSEARCH-FUNCTIONS-TABLE\" title=\"\u8868\u00a09.41.\u00a0\u6587\u672c\u68c0\u7d22\u51fd\u6570\"><code>websearch_to_tsquery()</code></a>\uff0c\u652f\u6301\u7c7b\u4f3c\u7f51\u9875\u641c\u7d22\u5f15\u64ce\u6240\u7528\u7684\u67e5\u8be2\u8bed\u6cd5\uff08Victor Drobny\uff0cDmitry Ivanov\uff09</p>", "text": "\u6dfb\u52a0\u6587\u672c\u68c0\u7d22\u51fd\u6570 websearch_to_tsquery()\uff0c\u652f\u6301\u7c7b\u4f3c\u7f51\u9875\u641c\u7d22\u5f15\u64ce\u6240\u7528\u7684\u67e5\u8be2\u8bed\u6cd5\uff08Victor Drobny\uff0cDmitry Ivanov\uff09", "title": "\u6dfb\u52a0\u6587\u672c\u68c0\u7d22\u51fd\u6570 websearch_to_tsquery()\uff0c\u652f\u6301\u7c7b\u4f3c\u7f51\u9875\u641c\u7d22\u5f15\u64ce\u6240\u7528\u7684\u67e5\u8be2\u8bed\u6cd5", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.7", "source_hash": "99cd56ae56717f2ae652b302e02d542fbdea5fee0373cba7e9e5859a6b8c1ad7", "section_path": ["\u51fd\u6570"], "commit_groups": [["1664ae197"]], "identity_text": "Add text search function websearch_to_tsquery() that supports a query syntax similar to that used by web search engines (Victor Drobny, Dmitry Ivanov)", "commit_aliases": ["1664ae197"], "source_commits": ["1664ae197"], "source_entry_id": "11.0/changes/082", "db_id": "0f8913be490fdec87d85bbf5a4ed5b73", "patch_ids": ["0f648b1fa275972673c9ec9ae87755d7"], "statement_hash": "b23b7b2fd8d467329be39aec1e2178a0eeffa03d5f3b3fdec580c36c4a6bad48", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-9ec29b4c8c12f446", "migration": false}, {"id": "11.0-452af6eca9e99175", "cves": [], "html": "<p>\u6dfb\u52a0\u51fd\u6570 <a href=\"/docs/11/functions-textsearch.html#TEXTSEARCH-FUNCTIONS-TABLE\" title=\"\u8868\u00a09.41.\u00a0\u6587\u672c\u68c0\u7d22\u51fd\u6570\"><code>json(b)_to_tsvector()</code></a>\uff0c\u4ee5\u521b\u5efa\u7528\u4e8e\u5339\u914d <code>JSON</code>/<code>JSONB</code> \u503c\u7684\u6587\u672c\u68c0\u7d22\u67e5\u8be2\uff08Dmitry Dolgov\uff09</p>", "text": "\u6dfb\u52a0\u51fd\u6570 json(b)_to_tsvector()\uff0c\u4ee5\u521b\u5efa\u7528\u4e8e\u5339\u914d JSON/JSONB \u503c\u7684\u6587\u672c\u68c0\u7d22\u67e5\u8be2\uff08Dmitry Dolgov\uff09", "title": "\u6dfb\u52a0\u51fd\u6570 json(b)_to_tsvector()\uff0c\u4ee5\u521b\u5efa\u7528\u4e8e\u5339\u914d JSON/JSONB \u503c\u7684\u6587\u672c\u68c0\u7d22\u67e5\u8be2", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.7", "source_hash": "7b3ad9aa54167d08a16f7c58e022d611ce6d0e32abdca63e0e7b52e7cf40de8a", "section_path": ["\u51fd\u6570"], "commit_groups": [["1c1791e00"]], "identity_text": "Add functions json(b)_to_tsvector() to create a text search query for matching JSON/JSONB values (Dmitry Dolgov)", "commit_aliases": ["1c1791e00"], "source_commits": ["1c1791e00"], "source_entry_id": "11.0/changes/083", "db_id": "428be590ba4e61514335442e071ab1aa", "patch_ids": ["af15325ba4741eb7ce94aeaca9e27122"], "statement_hash": "4c6d6c7ee0ab1dd64d6e0f651fd5f5136731f1f6e5d6f7a1de94358e935d22d9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-452af6eca9e99175", "migration": false}, {"id": "11.0-83f3b2d224db9ca3", "cves": [], "html": "<p>\u6dfb\u52a0 SQL \u7ea7\u8fc7\u7a0b\uff0c\u4f7f\u5176\u80fd\u591f\u5f00\u59cb\u5e76\u63d0\u4ea4\u81ea\u5df1\u7684\u4e8b\u52a1\uff08Peter Eisentraut\uff09</p>\n<p>\u5b83\u4eec\u4f7f\u7528\u65b0\u7684 <a href=\"/docs/11/sql-createprocedure.html\" title=\"CREATE PROCEDURE\"><code>CREATE PROCEDURE</code></a> \u547d\u4ee4\u521b\u5efa\uff0c\u5e76\u901a\u8fc7 <a href=\"/docs/11/sql-call.html\" title=\"CALL\"><code>CALL</code></a> \u8c03\u7528\u3002</p>\n<p>\u65b0\u7684 <code>ALTER</code>/<code>DROP ROUTINE</code> \u547d\u4ee4\u5141\u8bb8\u66f4\u6539/\u5220\u9664\u6240\u6709\u4f8b\u7a0b\u7c7b\u5bf9\u8c61\uff0c\u5305\u62ec\u8fc7\u7a0b\u3001\u51fd\u6570\u548c\u805a\u5408\u3002</p>\n<p>\u53e6\u5916\uff0c\u5728 <code>CREATE OPERATOR</code> \u548c <code>CREATE TRIGGER</code> \u4e2d\uff0c\u73b0\u5728\u63a8\u8350\u4f7f\u7528 <code>FUNCTION</code> \u800c\u975e <code>PROCEDURE</code>\uff0c\u56e0\u4e3a\u6240\u5f15\u7528\u7684\u5bf9\u8c61\u5fc5\u987b\u662f\u51fd\u6570\uff0c\u800c\u4e0d\u80fd\u662f\u8fc7\u7a0b\u3002\u4e0d\u8fc7\uff0c\u4e3a\u4fdd\u6301\u517c\u5bb9\uff0c\u4ecd\u7136\u63a5\u53d7\u65e7\u8bed\u6cd5\u3002</p>", "text": "\u6dfb\u52a0 SQL \u7ea7\u8fc7\u7a0b\uff0c\u4f7f\u5176\u80fd\u591f\u5f00\u59cb\u5e76\u63d0\u4ea4\u81ea\u5df1\u7684\u4e8b\u52a1\uff08Peter Eisentraut\uff09 \u5b83\u4eec\u4f7f\u7528\u65b0\u7684 CREATE PROCEDURE \u547d\u4ee4\u521b\u5efa\uff0c\u5e76\u901a\u8fc7 CALL \u8c03\u7528\u3002 \u65b0\u7684 ALTER/DROP ROUTINE \u547d\u4ee4\u5141\u8bb8\u66f4\u6539/\u5220\u9664\u6240\u6709\u4f8b\u7a0b\u7c7b\u5bf9\u8c61\uff0c\u5305\u62ec\u8fc7\u7a0b\u3001\u51fd\u6570\u548c\u805a\u5408\u3002 \u53e6\u5916\uff0c\u5728 CREATE OPERATOR \u548c CREATE TRIGGER \u4e2d\uff0c\u73b0\u5728\u63a8\u8350\u4f7f\u7528 FUNCTION \u800c\u975e PROCEDURE\uff0c\u56e0\u4e3a\u6240\u5f15\u7528\u7684\u5bf9\u8c61\u5fc5\u987b\u662f\u51fd\u6570\uff0c\u800c\u4e0d\u80fd\u662f\u8fc7\u7a0b\u3002\u4e0d\u8fc7\uff0c\u4e3a\u4fdd\u6301\u517c\u5bb9\uff0c\u4ecd\u7136\u63a5\u53d7\u65e7\u8bed\u6cd5\u3002", "title": "\u6dfb\u52a0 SQL \u7ea7\u8fc7\u7a0b\uff0c\u4f7f\u5176\u80fd\u591f\u5f00\u59cb\u5e76\u63d0\u4ea4\u81ea\u5df1\u7684\u4e8b\u52a1", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.8", "source_hash": "7c05597903de0fb25322c8884269c7e466fd3502e1a23be0216b240c7425544f", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00"], "commit_groups": [["33803f67f"], ["76b6aa41f"], ["a8677e3ff"], ["e0dc839e7"], ["e4128ee76"], ["fd4417e8a"]], "identity_text": "Add SQL-level procedures, which can start and commit their own transactions (Peter Eisentraut) They are created with the new CREATE PROCEDURE command and invoked via CALL. The new ALTER/DROP ROUTINE commands allow altering/dropping of all routine-like objects, including procedures, functions, and aggregates. Also, writing FUNCTION is now preferred over writing PROCEDURE in CREATE OPERATOR and CREATE TRIGGER, because the referenced object must be a function not a procedure. However, the old syntax is still accepted for compatibility.", "commit_aliases": ["33803f67f", "76b6aa41f", "a8677e3ff", "e0dc839e7", "e4128ee76", "fd4417e8a"], "source_commits": ["33803f67f", "76b6aa41f", "a8677e3ff", "e0dc839e7", "e4128ee76", "fd4417e8a"], "source_entry_id": "11.0/changes/084", "db_id": "5135771f6cf7bf716878062e41745a72", "patch_ids": ["31d6d75220105a1e70565af477f3d8e5", "5d339e15de5cd848317444f95ab520ff", "7c19eab97b972cfb399d06d0dfdc54b6", "9715922551cfceb62017f5220cb26e13", "df95ad61a3067c6a352cb4b03e0d8055", "e0c100b76f2f555fa3ea47d8758693de"], "statement_hash": "2d709a8e0b93faed1f6defd5bbfb56230210d5ee9850e7ca28cce49f66b95c74", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-83f3b2d224db9ca3", "migration": false}, {"id": "11.0-76f3e7a243847939", "cves": [], "html": "<p>\u4e3a PL/pgSQL\u3001PL/Perl\u3001PL/Python\u3001PL/Tcl \u548c <acronym>SPI</acronym> \u670d\u52a1\u5668\u7aef\u8bed\u8a00\u6dfb\u52a0\u4e8b\u52a1\u63a7\u5236\uff08Peter Eisentraut\uff09</p>\n<p>\u4e8b\u52a1\u63a7\u5236\u4ec5\u53ef\u7528\u4e8e\u4e8b\u52a1\u9876\u5c42\u7684\u8fc7\u7a0b\uff0c\u4ee5\u53ca\u5d4c\u5957\u7684 <code>DO</code> \u548c <code>CALL</code> \u5757\uff1b\u5d4c\u5957\u5c42\u6b21\u4e2d\u53ea\u80fd\u5305\u542b\u5176\u4ed6 <code>DO</code> \u548c <code>CALL</code> \u5757\u3002</p>", "text": "\u4e3a PL/pgSQL\u3001PL/Perl\u3001PL/Python\u3001PL/Tcl \u548c SPI \u670d\u52a1\u5668\u7aef\u8bed\u8a00\u6dfb\u52a0\u4e8b\u52a1\u63a7\u5236\uff08Peter Eisentraut\uff09 \u4e8b\u52a1\u63a7\u5236\u4ec5\u53ef\u7528\u4e8e\u4e8b\u52a1\u9876\u5c42\u7684\u8fc7\u7a0b\uff0c\u4ee5\u53ca\u5d4c\u5957\u7684 DO \u548c CALL \u5757\uff1b\u5d4c\u5957\u5c42\u6b21\u4e2d\u53ea\u80fd\u5305\u542b\u5176\u4ed6 DO \u548c CALL \u5757\u3002", "title": "\u4e3a PL/pgSQL\u3001PL/Perl\u3001PL/Python\u3001PL/Tcl \u548c SPI \u670d\u52a1\u5668\u7aef\u8bed\u8a00\u6dfb\u52a0\u4e8b\u52a1\u63a7\u5236", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.8", "source_hash": "a8213419f3c61f55de82dd9ebb7fe1a05e3d927a9c51f827b08bd8552ac9fe0f", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00"], "commit_groups": [["056a5a3f6"], ["8561e4840"], ["b981275b6"], ["d92bc83c4"]], "identity_text": "Add transaction control to PL/pgSQL, PL/Perl, PL/Python, PL/Tcl, and SPI server-side languages (Peter Eisentraut) Transaction control is only available within top-transaction-level procedures and nested DO and CALL blocks that only contain other DO and CALL blocks.", "commit_aliases": ["056a5a3f6", "8561e4840", "b981275b6", "d92bc83c4"], "source_commits": ["056a5a3f6", "8561e4840", "b981275b6", "d92bc83c4"], "source_entry_id": "11.0/changes/085", "db_id": "ba203c2b17a4e7f1a6b9ec07386edd5a", "patch_ids": ["1dcb12e1817a0fa5a6a85027ea6c5144", "5f076e1aef418d0502951bf81239a5b2", "c8dfdc609d1048080bfe6c02737eaef4", "ee7b2cb499cabc726ce4f4d04a141b07"], "statement_hash": "26839d3d1f04ccbd564d9c3d1bbdd53d95c001271c9f2b35899b1150699f61f2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-76f3e7a243847939", "migration": false}, {"id": "11.0-ed988a0c53da8f53", "cves": [], "html": "<p>\u6dfb\u52a0\u5c06 PL/pgSQL \u590d\u5408\u7c7b\u578b\u53d8\u91cf\u5b9a\u4e49\u4e3a\u975e\u7a7a\u3001\u5e38\u91cf\u6216\u5e26\u521d\u59cb\u503c\u7684\u80fd\u529b\uff08Tom Lane\uff09</p>", "text": "\u6dfb\u52a0\u5c06 PL/pgSQL \u590d\u5408\u7c7b\u578b\u53d8\u91cf\u5b9a\u4e49\u4e3a\u975e\u7a7a\u3001\u5e38\u91cf\u6216\u5e26\u521d\u59cb\u503c\u7684\u80fd\u529b\uff08Tom Lane\uff09", "title": "\u6dfb\u52a0\u5c06 PL/pgSQL \u590d\u5408\u7c7b\u578b\u53d8\u91cf\u5b9a\u4e49\u4e3a\u975e\u7a7a\u3001\u5e38\u91cf\u6216\u5e26\u521d\u59cb\u503c\u7684\u80fd\u529b", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.8", "source_hash": "7d6e07950b825c413df025174cf8ad1ef5fe17de427c46d3b360c861dae2cd46", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00"], "commit_groups": [["f9263006d"]], "identity_text": "Add the ability to define PL/pgSQL composite-type variables as not null, constant, or with initial values (Tom Lane)", "commit_aliases": ["f9263006d"], "source_commits": ["f9263006d"], "source_entry_id": "11.0/changes/086", "db_id": "c743e55abd548e5d1814e204dce1bc90", "patch_ids": ["31928413ec8367c76704d16ecb2a7838"], "statement_hash": "f569e276f072fd72bfd4c385f16b2b3b0c879bdb169c0178b712440ac058f95b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-ed988a0c53da8f53", "migration": false}, {"id": "11.0-9dbe6c91d3f62157", "cves": [], "html": "<p>\u5141\u8bb8 PL/pgSQL \u5904\u7406\u540c\u4e00\u4f1a\u8bdd\u4e2d\u9996\u6b21\u548c\u540e\u7eed\u51fd\u6570\u6267\u884c\u4e4b\u95f4\u53d1\u751f\u7684\u590d\u5408\u7c7b\u578b\uff08\u5982 record\u3001row\uff09\u53d8\u66f4\uff08Tom Lane\uff09</p>\n<p>\u4ee5\u524d\uff0c\u8fd9\u7c7b\u60c5\u51b5\u4f1a\u4ea7\u751f\u9519\u8bef\u3002</p>", "text": "\u5141\u8bb8 PL/pgSQL \u5904\u7406\u540c\u4e00\u4f1a\u8bdd\u4e2d\u9996\u6b21\u548c\u540e\u7eed\u51fd\u6570\u6267\u884c\u4e4b\u95f4\u53d1\u751f\u7684\u590d\u5408\u7c7b\u578b\uff08\u5982 record\u3001row\uff09\u53d8\u66f4\uff08Tom Lane\uff09 \u4ee5\u524d\uff0c\u8fd9\u7c7b\u60c5\u51b5\u4f1a\u4ea7\u751f\u9519\u8bef\u3002", "title": "\u5141\u8bb8 PL/pgSQL \u5904\u7406\u540c\u4e00\u4f1a\u8bdd\u4e2d\u9996\u6b21\u548c\u540e\u7eed\u51fd\u6570\u6267\u884c\u4e4b\u95f4\u53d1\u751f\u7684\u590d\u5408\u7c7b\u578b\uff08\u5982 record\u3001row\uff09\u53d8\u66f4", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.8", "source_hash": "d68a6fec0c4f6c3eb768986d19d0f50095977c3bca932c38aa38bb0786da69ab", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00"], "commit_groups": [["4b93f5799"]], "identity_text": "Allow PL/pgSQL to handle changes to composite types (e.g., record, row) that happen between the first and later function executions in the same session (Tom Lane) Previously, such circumstances generated errors.", "commit_aliases": ["4b93f5799"], "source_commits": ["4b93f5799"], "source_entry_id": "11.0/changes/087", "db_id": "a3362f67b1e652e63b477f8810eafbf7", "patch_ids": ["f114eab24a7e02f5cca2a84c5e3329c7"], "statement_hash": "d1994def39aae02afe1cce17c5c008d2559df4c0a092189349a94ebbed7ea19d", "relations": [{"rule": 2, "type": "related", "target": "3a10a968211dd2f57e469ce081a0fb6d", "evidence": {"same_day": true, "patch_ids": ["f114eab24a7e02f5cca2a84c5e3329c7"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-9dbe6c91d3f62157", "migration": false}, {"id": "11.0-5942580edbb4a235", "cves": [], "html": "<p>\u6dfb\u52a0\u6269\u5c55 <code>jsonb_plpython</code>\uff0c\u4ee5\u5728 <code>JSONB</code> \u548c PL/Python \u7c7b\u578b\u4e4b\u95f4\u8fdb\u884c\u8f6c\u6362\uff08Anthony Bykov\uff09</p>", "text": "\u6dfb\u52a0\u6269\u5c55 jsonb_plpython\uff0c\u4ee5\u5728 JSONB \u548c PL/Python \u7c7b\u578b\u4e4b\u95f4\u8fdb\u884c\u8f6c\u6362\uff08Anthony Bykov\uff09", "title": "\u6dfb\u52a0\u6269\u5c55 jsonb_plpython\uff0c\u4ee5\u5728 JSONB \u548c PL/Python \u7c7b\u578b\u4e4b\u95f4\u8fdb\u884c\u8f6c\u6362", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.8", "source_hash": "274c981766a145b61ab4588071ff6056c907422ebca987281fdd1fc1bc40b253", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00"], "commit_groups": [["3f44e3db7"]], "identity_text": "Add extension jsonb_plpython to transform JSONB to/from PL/Python types (Anthony Bykov)", "commit_aliases": ["3f44e3db7"], "source_commits": ["3f44e3db7"], "source_entry_id": "11.0/changes/088", "db_id": "42acdbe41df391e7f39cbffff6c15c15", "patch_ids": ["49eb8b6cc73b78a726535fb851d097c7"], "statement_hash": "64cc76e2ae239af268932ab3c0b724880b4bcac3abf9e8cfda632220d46c130a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-5942580edbb4a235", "migration": false}, {"id": "11.0-47fb5cbad5e34659", "cves": [], "html": "<p>\u6dfb\u52a0\u6269\u5c55 <code>jsonb_plperl</code>\uff0c\u4ee5\u5728 <code>JSONB</code> \u548c PL/Perl \u7c7b\u578b\u4e4b\u95f4\u8fdb\u884c\u8f6c\u6362\uff08Anthony Bykov\uff09</p>", "text": "\u6dfb\u52a0\u6269\u5c55 jsonb_plperl\uff0c\u4ee5\u5728 JSONB \u548c PL/Perl \u7c7b\u578b\u4e4b\u95f4\u8fdb\u884c\u8f6c\u6362\uff08Anthony Bykov\uff09", "title": "\u6dfb\u52a0\u6269\u5c55 jsonb_plperl\uff0c\u4ee5\u5728 JSONB \u548c PL/Perl \u7c7b\u578b\u4e4b\u95f4\u8fdb\u884c\u8f6c\u6362", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.8", "source_hash": "2a79771704d5dda1d3b1b2200802888f54e86c9907fc3724c032555edb3555be", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00"], "commit_groups": [["341e16618"]], "identity_text": "Add extension jsonb_plperl to transform JSONB to/from PL/Perl types (Anthony Bykov)", "commit_aliases": ["341e16618"], "source_commits": ["341e16618"], "source_entry_id": "11.0/changes/089", "db_id": "9efeda3c8eb4126afae5b7fed04f2d5f", "patch_ids": ["74f7e1d8c7aee54563553171ca6fecd1"], "statement_hash": "d5511c04b8520477ee3c7b839934536f057b85943f2af8b7ab8f58800807ab8c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-47fb5cbad5e34659", "migration": false}, {"id": "11.0-cb35609bb54b653c", "cves": [], "html": "<p>\u66f4\u6539 libpq\uff0c\u4f7f\u5176\u9ed8\u8ba4\u7981\u7528\u538b\u7f29\uff08Peter Eisentraut\uff09</p>\n<p>\u73b0\u4ee3 OpenSSL \u7248\u672c\u5df2\u7981\u7528\u538b\u7f29\uff0c\u56e0\u6b64 libpq \u7684\u8fd9\u4e00\u8bbe\u7f6e\u5bf9\u8fd9\u4e9b\u5e93\u5e76\u65e0\u5f71\u54cd\u3002</p>", "text": "\u66f4\u6539 libpq\uff0c\u4f7f\u5176\u9ed8\u8ba4\u7981\u7528\u538b\u7f29\uff08Peter Eisentraut\uff09 \u73b0\u4ee3 OpenSSL \u7248\u672c\u5df2\u7981\u7528\u538b\u7f29\uff0c\u56e0\u6b64 libpq \u7684\u8fd9\u4e00\u8bbe\u7f6e\u5bf9\u8fd9\u4e9b\u5e93\u5e76\u65e0\u5f71\u54cd\u3002", "title": "\u66f4\u6539 libpq\uff0c\u4f7f\u5176\u9ed8\u8ba4\u7981\u7528\u538b\u7f29", "commits": [], "section": "\u5ba2\u6237\u7aef\u63a5\u53e3", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.9", "source_hash": "8b7c8ea31266553c661c13e94dfdecc01941f01e1058cf911aa06ffc09d27b64", "section_path": ["\u5ba2\u6237\u7aef\u63a5\u53e3"], "commit_groups": [["e3bdb2d92"]], "identity_text": "Change libpq to disable compression by default (Peter Eisentraut) Compression is already disabled in modern OpenSSL versions, so that the libpq setting had no effect with such libraries.", "commit_aliases": ["e3bdb2d92"], "source_commits": ["e3bdb2d92"], "source_entry_id": "11.0/changes/090", "db_id": "ab14123142f2413561276971f9d15d31", "patch_ids": ["2e176b4eccc0a54ea0d5a691b357de75"], "statement_hash": "46b18ff8d5a860ece3b7f81b89c2a17c7dbb59fd5531759c5e1454095ce4483c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-cb35609bb54b653c", "migration": false}, {"id": "11.0-95efd4a0da7cd5d0", "cves": [], "html": "<p>\u4e3a <span>ecpg</span> \u7684 <code>WHENEVER</code> \u8bed\u53e5\u6dfb\u52a0 <code>DO CONTINUE</code> \u9009\u9879\uff08Vinayak Pokale\uff09</p>\n<p>\u8fd9\u4f1a\u751f\u6210 C <code>continue</code> \u8bed\u53e5\uff0c\u5728\u6307\u5b9a\u6761\u4ef6\u53d1\u751f\u65f6\u8fd4\u56de\u6240\u5728\u5faa\u73af\u7684\u9876\u90e8\u3002</p>", "text": "\u4e3a ecpg \u7684 WHENEVER \u8bed\u53e5\u6dfb\u52a0 DO CONTINUE \u9009\u9879\uff08Vinayak Pokale\uff09 \u8fd9\u4f1a\u751f\u6210 C continue \u8bed\u53e5\uff0c\u5728\u6307\u5b9a\u6761\u4ef6\u53d1\u751f\u65f6\u8fd4\u56de\u6240\u5728\u5faa\u73af\u7684\u9876\u90e8\u3002", "title": "\u4e3a ecpg \u7684 WHENEVER \u8bed\u53e5\u6dfb\u52a0 DO CONTINUE \u9009\u9879", "commits": [], "section": "\u5ba2\u6237\u7aef\u63a5\u53e3", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.9", "source_hash": "793e002961b618ca3439ebf81d45d813978dd4e93407ae8c0ae0db9bafd4c7d2", "section_path": ["\u5ba2\u6237\u7aef\u63a5\u53e3"], "commit_groups": [["d22e9d530"]], "identity_text": "Add DO CONTINUE option to ecpg's WHENEVER statement (Vinayak Pokale) This generates a C continue statement, causing a return to the top of the contained loop when the specified condition occurs.", "commit_aliases": ["d22e9d530"], "source_commits": ["d22e9d530"], "source_entry_id": "11.0/changes/091", "db_id": "91eb02b1331b4bc5b9aee073d198dd57", "patch_ids": ["86ea4adc836b749d5111c1c106a0b3c2"], "statement_hash": "141560abb1bde8dfc0b9b27437ef9d0770446d559e8996c3001f84aae01ed0a0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-95efd4a0da7cd5d0", "migration": false}, {"id": "11.0-71c3efcef4f56203", "cves": [], "html": "<p>\u6dfb\u52a0 <span>ecpg</span> \u6a21\u5f0f\uff0c\u4ee5\u542f\u7528 Oracle Pro*C \u98ce\u683c\u7684\u5b57\u7b26\u6570\u7ec4\u5904\u7406\u3002</p>\n<p>\u6b64\u6a21\u5f0f\u901a\u8fc7 <code>-C</code> \u542f\u7528\u3002</p>", "text": "\u6dfb\u52a0 ecpg \u6a21\u5f0f\uff0c\u4ee5\u542f\u7528 Oracle Pro*C \u98ce\u683c\u7684\u5b57\u7b26\u6570\u7ec4\u5904\u7406\u3002 \u6b64\u6a21\u5f0f\u901a\u8fc7 -C \u542f\u7528\u3002", "title": "\u6dfb\u52a0 ecpg \u6a21\u5f0f\uff0c\u4ee5\u542f\u7528 Oracle Pro*C \u98ce\u683c\u7684\u5b57\u7b26\u6570\u7ec4\u5904\u7406\u3002", "commits": [], "section": "\u5ba2\u6237\u7aef\u63a5\u53e3", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.9", "source_hash": "bf6503abc5bd3b774147e66300996e8270183841720ce633313f9a54f4fe4a57", "section_path": ["\u5ba2\u6237\u7aef\u63a5\u53e3"], "commit_groups": [["3b7ab4380"]], "identity_text": "Add an ecpg mode to enable Oracle Pro*C-style handling of char arrays. This mode is enabled with -C.", "commit_aliases": ["3b7ab4380"], "source_commits": ["3b7ab4380"], "source_entry_id": "11.0/changes/092", "db_id": "327952deaebb848c1bc44a8117c12b77", "patch_ids": ["a90a0b7ff176ba322de34a85f573ac4b"], "statement_hash": "f8df18896dfb2161dad9a52090487cae3443cb2ed2bf008c9de75630a7d3a62a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-71c3efcef4f56203", "migration": false}, {"id": "11.0-e516b3b63ffb0dac", "cves": [], "html": "<p>\u6dfb\u52a0 <span>psql</span> \u547d\u4ee4 <code>\\gdesc</code>\uff0c\u4ee5\u663e\u793a\u67e5\u8be2\u7ed3\u679c\u4e2d\u5404\u5217\u7684\u540d\u79f0\u548c\u7c7b\u578b\uff08Pavel Stehule\uff09</p>", "text": "\u6dfb\u52a0 psql \u547d\u4ee4 \\gdesc\uff0c\u4ee5\u663e\u793a\u67e5\u8be2\u7ed3\u679c\u4e2d\u5404\u5217\u7684\u540d\u79f0\u548c\u7c7b\u578b\uff08Pavel Stehule\uff09", "title": "\u6dfb\u52a0 psql \u547d\u4ee4 \\gdesc\uff0c\u4ee5\u663e\u793a\u67e5\u8be2\u7ed3\u679c\u4e2d\u5404\u5217\u7684\u540d\u79f0\u548c\u7c7b\u578b", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.2", "source_hash": "1774464b8dc43a3ba20de9d4e0df8e4482653b16a362d2bbd106117d6c69b86d", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["49ca462eb"]], "identity_text": "Add psql command \\gdesc to display the names and types of the columns in a query result (Pavel Stehule)", "commit_aliases": ["49ca462eb"], "source_commits": ["49ca462eb"], "source_entry_id": "11.0/changes/093", "db_id": "568ab1825d89d8f006ae0a291d78e114", "patch_ids": ["6bd6f9d6d51e15fefe7168f805539151"], "statement_hash": "f2a9ff494c88df7710eb783d1b8eae94e9f974c3ded9cdaa847e8d58ade2192c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-e516b3b63ffb0dac", "migration": false}, {"id": "11.0-0eb556196da811e7", "cves": [], "html": "<p>\u6dfb\u52a0 <span>psql</span> \u53d8\u91cf\uff0c\u4ee5\u62a5\u544a\u67e5\u8be2\u6d3b\u52a8\u548c\u9519\u8bef\uff08Fabien Coelho\uff09</p>\n<p>\u5177\u4f53\u65b0\u589e\u53d8\u91cf\u4e3a <code>ERROR</code>\u3001<code>SQLSTATE</code>\u3001<code>ROW_COUNT</code>\u3001<code>LAST_ERROR_MESSAGE</code> \u548c <code>LAST_ERROR_SQLSTATE</code>\u3002</p>", "text": "\u6dfb\u52a0 psql \u53d8\u91cf\uff0c\u4ee5\u62a5\u544a\u67e5\u8be2\u6d3b\u52a8\u548c\u9519\u8bef\uff08Fabien Coelho\uff09 \u5177\u4f53\u65b0\u589e\u53d8\u91cf\u4e3a ERROR\u3001SQLSTATE\u3001ROW_COUNT\u3001LAST_ERROR_MESSAGE \u548c LAST_ERROR_SQLSTATE\u3002", "title": "\u6dfb\u52a0 psql \u53d8\u91cf\uff0c\u4ee5\u62a5\u544a\u67e5\u8be2\u6d3b\u52a8\u548c\u9519\u8bef", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.2", "source_hash": "bf96aced9940401a3648b97c36654c7e1377587ca21f46c5c236aed4f78aa928", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["69835bc89"]], "identity_text": "Add psql variables to report query activity and errors (Fabien Coelho) Specifically, the new variables are ERROR, SQLSTATE, ROW_COUNT, LAST_ERROR_MESSAGE, and LAST_ERROR_SQLSTATE.", "commit_aliases": ["69835bc89"], "source_commits": ["69835bc89"], "source_entry_id": "11.0/changes/094", "db_id": "cbd12029b79759b801677f1f65cf8589", "patch_ids": ["1c23cad27524b6f652faf1a828c8ceed"], "statement_hash": "85c97fc83da955e60e3279479d4a74f058cd03d64eda29f2fa7c35d3a11d79de", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-0eb556196da811e7", "migration": false}, {"id": "11.0-5d012750bcff5406", "cves": [], "html": "<p>\u5141\u8bb8 <span>psql</span> \u6d4b\u8bd5\u53d8\u91cf\u662f\u5426\u5b58\u5728\uff08Fabien Coelho\uff09</p>\n<p>\u5177\u4f53\u800c\u8a00\uff0c\u8bed\u6cd5 <code>:{?variable_name}</code> \u5141\u8bb8\u5728 <code>\\if</code> \u8bed\u53e5\u4e2d\u6d4b\u8bd5\u53d8\u91cf\u662f\u5426\u5b58\u5728\u3002</p>", "text": "\u5141\u8bb8 psql \u6d4b\u8bd5\u53d8\u91cf\u662f\u5426\u5b58\u5728\uff08Fabien Coelho\uff09 \u5177\u4f53\u800c\u8a00\uff0c\u8bed\u6cd5 :{?variable_name} \u5141\u8bb8\u5728 \\if \u8bed\u53e5\u4e2d\u6d4b\u8bd5\u53d8\u91cf\u662f\u5426\u5b58\u5728\u3002", "title": "\u5141\u8bb8 psql \u6d4b\u8bd5\u53d8\u91cf\u662f\u5426\u5b58\u5728", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.2", "source_hash": "bac0de9f285cbf8f95e1b74588726ff785b65079848a69541be04ed519066cb1", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["d57c7a7c5"]], "identity_text": "Allow psql to test for the existence of a variable (Fabien Coelho) Specifically, the syntax :{?variable_name} allows a variable's existence to be tested in an \\if statement.", "commit_aliases": ["d57c7a7c5"], "source_commits": ["d57c7a7c5"], "source_entry_id": "11.0/changes/095", "db_id": "57c5dd3f44a5990e40e7ebcd2c773768", "patch_ids": ["7a0b347c3143ccc220d09ae4e77f8af9"], "statement_hash": "994de10116ab4464ee620fa52c403e053841ecde6bdf3c3455492928d36c3ac8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-5d012750bcff5406", "migration": false}, {"id": "11.0-2588f8b163cc88d6", "cves": [], "html": "<p>\u5141\u8bb8\u73af\u5883\u53d8\u91cf <code>PSQL_PAGER</code> \u63a7\u5236 <span>psql</span> \u7684\u5206\u9875\u5668\uff08Pavel Stehule\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u7528\u72ec\u7acb\u7684\u73af\u5883\u53d8\u91cf\u6307\u5b9a <span>psql</span> \u7684\u9ed8\u8ba4\u5206\u9875\u5668\uff0c\u5c06\u5176\u4e0e\u5176\u4ed6\u5e94\u7528\u7684\u5206\u9875\u5668\u8bbe\u7f6e\u5206\u5f00\u3002\u5982\u679c\u672a\u8bbe\u7f6e <code>PSQL_PAGER</code>\uff0c\u4ecd\u4f1a\u9075\u5faa <code>PAGER</code>\u3002</p>", "text": "\u5141\u8bb8\u73af\u5883\u53d8\u91cf PSQL_PAGER \u63a7\u5236 psql \u7684\u5206\u9875\u5668\uff08Pavel Stehule\uff09 \u8fd9\u5141\u8bb8\u7528\u72ec\u7acb\u7684\u73af\u5883\u53d8\u91cf\u6307\u5b9a psql \u7684\u9ed8\u8ba4\u5206\u9875\u5668\uff0c\u5c06\u5176\u4e0e\u5176\u4ed6\u5e94\u7528\u7684\u5206\u9875\u5668\u8bbe\u7f6e\u5206\u5f00\u3002\u5982\u679c\u672a\u8bbe\u7f6e PSQL_PAGER\uff0c\u4ecd\u4f1a\u9075\u5faa PAGER\u3002", "title": "\u5141\u8bb8\u73af\u5883\u53d8\u91cf PSQL_PAGER \u63a7\u5236 psql \u7684\u5206\u9875\u5668", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.2", "source_hash": "16bef6fa58e77dcdc68ec5ff62318c1c134241a8cbd5325bb0efb5320d99c737", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["5e8304fdc"]], "identity_text": "Allow environment variable PSQL_PAGER to control psql's pager (Pavel Stehule) This allows psql's default pager to be specified as a separate environment variable from the pager for other applications. PAGER is still honored if PSQL_PAGER is not set.", "commit_aliases": ["5e8304fdc"], "source_commits": ["5e8304fdc"], "source_entry_id": "11.0/changes/096", "db_id": "387bb73fbc59db26be162f0f55b1f416", "patch_ids": ["150ef34f5bb73bbf4d433c4ae517f4d6"], "statement_hash": "58ef6b5666ba6825355264aef6c1883f186feb406260d69852c78c77a6e61ff3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-2588f8b163cc88d6", "migration": false}, {"id": "11.0-d7b77d9c90f87ab8", "cves": [], "html": "<p>\u4f7f psql \u7684 <code>\\d+</code> \u547d\u4ee4\u59cb\u7ec8\u663e\u793a\u8868\u7684\u5206\u533a\u4fe1\u606f\uff08Amit Langote\uff0cAshutosh Bapat\uff09</p>\n<p>\u4ee5\u524d\uff0c\u5982\u679c\u5206\u533a\u8868\u6ca1\u6709\u5206\u533a\uff0c\u5c31\u4e0d\u4f1a\u663e\u793a\u5176\u5206\u533a\u4fe1\u606f\u3002\u73b0\u5728\u8fd8\u4f1a\u6307\u51fa\u54ea\u4e9b\u5206\u533a\u672c\u8eab\u4e5f\u662f\u5206\u533a\u8868\u3002</p>", "text": "\u4f7f psql \u7684 \\d+ \u547d\u4ee4\u59cb\u7ec8\u663e\u793a\u8868\u7684\u5206\u533a\u4fe1\u606f\uff08Amit Langote\uff0cAshutosh Bapat\uff09 \u4ee5\u524d\uff0c\u5982\u679c\u5206\u533a\u8868\u6ca1\u6709\u5206\u533a\uff0c\u5c31\u4e0d\u4f1a\u663e\u793a\u5176\u5206\u533a\u4fe1\u606f\u3002\u73b0\u5728\u8fd8\u4f1a\u6307\u51fa\u54ea\u4e9b\u5206\u533a\u672c\u8eab\u4e5f\u662f\u5206\u533a\u8868\u3002", "title": "\u4f7f psql \u7684 \\d+ \u547d\u4ee4\u59cb\u7ec8\u663e\u793a\u8868\u7684\u5206\u533a\u4fe1\u606f", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.2", "source_hash": "ec6eced2b9ee5c76f4be7245d0cfe270d47bdca45bf074a6e4da386f47b97493", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["05b6ec39d"]], "identity_text": "Make psql's \\d+ command always show the table's partitioning information (Amit Langote, Ashutosh Bapat) Previously, partition information would not be displayed for a partitioned table if it had no partitions. Also indicate which partitions are themselves partitioned.", "commit_aliases": ["05b6ec39d"], "source_commits": ["05b6ec39d"], "source_entry_id": "11.0/changes/097", "db_id": "ddd8a240f034d09cb69e0c7072aabf9d", "patch_ids": ["d7e1c099800b2ba39c455082c9700779"], "statement_hash": "beec64e9ac1cbe7cc263e9e6c9f7b8ff3d9cb011f8099794589c2264749321c3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-d7b77d9c90f87ab8", "migration": false}, {"id": "11.0-19e85f37615ab10b", "cves": [], "html": "<p>\u786e\u4fdd <span>psql</span> \u5728\u63d0\u793a\u8f93\u5165\u5bc6\u7801\u65f6\u663e\u793a\u6b63\u786e\u7684\u7528\u6237\u540d\uff08Tom Lane\uff09</p>\n<p>\u4ee5\u524d\uff0c\u540c\u65f6\u4f7f\u7528 <code>-U</code> \u548c\u5d4c\u5165 <acronym>URI</acronym> \u7684\u7528\u6237\u540d\u4f1a\u5bfc\u81f4\u663e\u793a\u9519\u8bef\u7684\u7528\u6237\u540d\u3002\u53e6\u5916\uff0c\u5728\u6307\u5b9a <code>--password</code> \u65f6\uff0c\u4e0d\u518d\u5728\u5bc6\u7801\u63d0\u793a\u524d\u663e\u793a\u7528\u6237\u540d\u3002</p>", "text": "\u786e\u4fdd psql \u5728\u63d0\u793a\u8f93\u5165\u5bc6\u7801\u65f6\u663e\u793a\u6b63\u786e\u7684\u7528\u6237\u540d\uff08Tom Lane\uff09 \u4ee5\u524d\uff0c\u540c\u65f6\u4f7f\u7528 -U \u548c\u5d4c\u5165 URI \u7684\u7528\u6237\u540d\u4f1a\u5bfc\u81f4\u663e\u793a\u9519\u8bef\u7684\u7528\u6237\u540d\u3002\u53e6\u5916\uff0c\u5728\u6307\u5b9a --password \u65f6\uff0c\u4e0d\u518d\u5728\u5bc6\u7801\u63d0\u793a\u524d\u663e\u793a\u7528\u6237\u540d\u3002", "title": "\u786e\u4fdd psql \u5728\u63d0\u793a\u8f93\u5165\u5bc6\u7801\u65f6\u663e\u793a\u6b63\u786e\u7684\u7528\u6237\u540d", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.2", "source_hash": "3851e392bf011d4ec27c553f473f455f1f567f095b56816b9e8a3b3fd9e18c3b", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["15be27460"]], "identity_text": "Ensure that psql reports the proper user name when prompting for a password (Tom Lane) Previously, combinations of -U and a user name embedded in a URI caused incorrect reporting. Also suppress the user name before the password prompt when --password is specified.", "commit_aliases": ["15be27460"], "source_commits": ["15be27460"], "source_entry_id": "11.0/changes/098", "db_id": "e4716a90aa639758b4d44f3dc612213e", "patch_ids": ["77738ba8aed437819bd7491959778ba0"], "statement_hash": "9bb12d5e97b986d4732cd978a132ac6a539fae622f9a843fbd5c5abfbbc543c6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-19e85f37615ab10b", "migration": false}, {"id": "11.0-7d888e75612e7c75", "cves": [], "html": "<p>\u5728\u6b64\u524d\u6ca1\u6709\u8f93\u5165\u7684\u60c5\u51b5\u4e0b\uff0c\u5141\u8bb8 <code>quit</code> \u548c <code>exit</code> \u9000\u51fa <span>psql</span>\uff08Bruce Momjian\uff09</p>\n<p>\u5f53\u8f93\u5165\u7f13\u51b2\u533a\u975e\u7a7a\uff0c\u800c <code>quit</code> \u548c <code>exit</code> \u5355\u72ec\u51fa\u73b0\u5728\u4e00\u884c\u65f6\uff0c\u4e5f\u4f1a\u8f93\u51fa\u5982\u4f55\u9000\u51fa\u7684\u63d0\u793a\u3002\u4e3a <code>help</code> \u6dfb\u52a0\u7c7b\u4f3c\u63d0\u793a\u3002</p>", "text": "\u5728\u6b64\u524d\u6ca1\u6709\u8f93\u5165\u7684\u60c5\u51b5\u4e0b\uff0c\u5141\u8bb8 quit \u548c exit \u9000\u51fa psql\uff08Bruce Momjian\uff09 \u5f53\u8f93\u5165\u7f13\u51b2\u533a\u975e\u7a7a\uff0c\u800c quit \u548c exit \u5355\u72ec\u51fa\u73b0\u5728\u4e00\u884c\u65f6\uff0c\u4e5f\u4f1a\u8f93\u51fa\u5982\u4f55\u9000\u51fa\u7684\u63d0\u793a\u3002\u4e3a help \u6dfb\u52a0\u7c7b\u4f3c\u63d0\u793a\u3002", "title": "\u5728\u6b64\u524d\u6ca1\u6709\u8f93\u5165\u7684\u60c5\u51b5\u4e0b\uff0c\u5141\u8bb8 quit \u548c exit \u9000\u51fa psql", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.2", "source_hash": "43286ba1f616b9216852d534166241f3c02d3e71fc66ab7bba75cc790b3258e6", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["df9f599bc"]], "identity_text": "Allow quit and exit to exit psql when given with no prior input (Bruce Momjian) Also print hints about how to exit when quit and exit are used alone on a line while the input buffer is not empty. Add a similar hint for help.", "commit_aliases": ["df9f599bc"], "source_commits": ["df9f599bc"], "source_entry_id": "11.0/changes/099", "db_id": "5ddd50866f85a5c43c8bbff8ce5fb96e", "patch_ids": ["c9a907d761431b406796090e463db7df"], "statement_hash": "08bb453874c5b924ba185cb45b62b6bca44df35e56883e8a8a8b6bcb9e11491f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-7d888e75612e7c75", "migration": false}, {"id": "11.0-2621c01b0394e278", "cves": [], "html": "<p>\u5f53 <code>\\q</code> \u5355\u72ec\u8f93\u5165\u5728\u4e00\u884c\u4e0a\u5374\u88ab\u5ffd\u7565\u65f6\uff0c\u8ba9 <span>psql</span> \u63d0\u793a\u4f7f\u7528 control-D\uff08Bruce Momjian\uff09</p>\n<p>\u4f8b\u5982\uff0c\u5728\u5b57\u7b26\u4e32\u5185\u8f93\u5165 <code>\\q</code> \u4e0d\u4f1a\u9000\u51fa\u3002</p>", "text": "\u5f53 \\q \u5355\u72ec\u8f93\u5165\u5728\u4e00\u884c\u4e0a\u5374\u88ab\u5ffd\u7565\u65f6\uff0c\u8ba9 psql \u63d0\u793a\u4f7f\u7528 control-D\uff08Bruce Momjian\uff09 \u4f8b\u5982\uff0c\u5728\u5b57\u7b26\u4e32\u5185\u8f93\u5165 \\q \u4e0d\u4f1a\u9000\u51fa\u3002", "title": "\u5f53 \\q \u5355\u72ec\u8f93\u5165\u5728\u4e00\u884c\u4e0a\u5374\u88ab\u5ffd\u7565\u65f6\uff0c\u8ba9 psql \u63d0\u793a\u4f7f\u7528 control-D", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.2", "source_hash": "1ca6bccfc4b6a11063e33a962324cd732f6d3481cea441625db4b30d917fd2da", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["91389228a"]], "identity_text": "Make psql hint at using control-D when \\q is entered alone on a line but ignored (Bruce Momjian) For example, \\q does not exit when supplied in character strings.", "commit_aliases": ["91389228a"], "source_commits": ["91389228a"], "source_entry_id": "11.0/changes/100", "db_id": "dc5b6fb7a989328a5f7126c102b2693f", "patch_ids": ["a1f3986bb430d801d3ae35e7ead1e130"], "statement_hash": "317ad16c82b17831a6632c9c8649f83affe7b1bd5171f332e1cd1a8d7ce03855", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-2621c01b0394e278", "migration": false}, {"id": "11.0-6090e136c317d2b7", "cves": [], "html": "<p>\u6539\u8fdb <code>ALTER INDEX RESET</code>/<code>SET</code> \u7684 Tab \u8865\u5168\uff08Masahiko Sawada\uff09</p>", "text": "\u6539\u8fdb ALTER INDEX RESET/SET \u7684 Tab \u8865\u5168\uff08Masahiko Sawada\uff09", "title": "\u6539\u8fdb ALTER INDEX RESET/SET \u7684 Tab \u8865\u5168", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.2", "source_hash": "c7756dc1edd472206904ea21252714f37690dd86f6a7111a35a35eca7476d178", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["2b8c94e1b"]], "identity_text": "Improve tab completion for ALTER INDEX RESET/SET (Masahiko Sawada)", "commit_aliases": ["2b8c94e1b"], "source_commits": ["2b8c94e1b"], "source_entry_id": "11.0/changes/101", "db_id": "2f40b444f58c57254698d62a7e9150fd", "patch_ids": ["9c58f08247690c60e029b6f4f90a6dc3"], "statement_hash": "37e9b7a68097ccfcc9185188cfbec94744ec6063bb37c29d1ba937cdf44be140", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-6090e136c317d2b7", "migration": false}, {"id": "11.0-4c8b8ab6925bc14b", "cves": [], "html": "<p>\u6dfb\u52a0\u57fa\u7840\u652f\u6301\uff0c\u4f7f <span>psql</span> \u80fd\u591f\u6839\u636e\u670d\u52a1\u5668\u7248\u672c\u8c03\u6574 Tab \u8865\u5168\u67e5\u8be2\uff08Tom Lane\uff09</p>\n<p>\u4ee5\u524d\uff0c\u5bf9\u65e7\u7248\u670d\u52a1\u5668\u6267\u884c Tab \u8865\u5168\u67e5\u8be2\u53ef\u80fd\u5931\u8d25\u3002</p>", "text": "\u6dfb\u52a0\u57fa\u7840\u652f\u6301\uff0c\u4f7f psql \u80fd\u591f\u6839\u636e\u670d\u52a1\u5668\u7248\u672c\u8c03\u6574 Tab \u8865\u5168\u67e5\u8be2\uff08Tom Lane\uff09 \u4ee5\u524d\uff0c\u5bf9\u65e7\u7248\u670d\u52a1\u5668\u6267\u884c Tab \u8865\u5168\u67e5\u8be2\u53ef\u80fd\u5931\u8d25\u3002", "title": "\u6dfb\u52a0\u57fa\u7840\u652f\u6301\uff0c\u4f7f psql \u80fd\u591f\u6839\u636e\u670d\u52a1\u5668\u7248\u672c\u8c03\u6574 Tab \u8865\u5168\u67e5\u8be2", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.2", "source_hash": "a5798e3ff9afccea76b5c3acb305a938d58bdd611887aba4a371db458e38d6c4", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["722408bcd"]], "identity_text": "Add infrastructure to allow psql to adapt its tab completion queries based on the server version (Tom Lane) Previously, tab completion queries could fail against older servers.", "commit_aliases": ["722408bcd"], "source_commits": ["722408bcd"], "source_entry_id": "11.0/changes/102", "db_id": "d73cc3fa3a9277b3b73a041107e70106", "patch_ids": ["0c3d876ea5142ca54846b4b4a10f23ff"], "statement_hash": "042ce4291bd63660fa7896b9744350dc4341129d4181716ab348e8766d3bca18", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-4c8b8ab6925bc14b", "migration": false}, {"id": "11.0-e34e6672b68952cc", "cves": [], "html": "<p>\u4e3a <span>pgbench</span> \u8868\u8fbe\u5f0f\u6dfb\u52a0\u5bf9 NULL\u3001\u5e03\u5c14\u503c\u4ee5\u53ca\u67d0\u4e9b\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\u7684\u652f\u6301\uff08Fabien Coelho\uff09</p>", "text": "\u4e3a pgbench \u8868\u8fbe\u5f0f\u6dfb\u52a0\u5bf9 NULL\u3001\u5e03\u5c14\u503c\u4ee5\u53ca\u67d0\u4e9b\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\u7684\u652f\u6301\uff08Fabien Coelho\uff09", "title": "\u4e3a pgbench \u8868\u8fbe\u5f0f\u6dfb\u52a0\u5bf9 NULL\u3001\u5e03\u5c14\u503c\u4ee5\u53ca\u67d0\u4e9b\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\u7684\u652f\u6301", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pgbench", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.3", "source_hash": "41ba284f3f76d243280aaff9f0084c2972b4e53266ec1d405d93f6b1017a41ce", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pgbench"], "commit_groups": [["bc7fa0c15"]], "identity_text": "Add pgbench expression support for NULLs, booleans, and some functions and operators (Fabien Coelho)", "commit_aliases": ["bc7fa0c15"], "source_commits": ["bc7fa0c15"], "source_entry_id": "11.0/changes/103", "db_id": "cfa65d518b36a213a88cc8f92b88f355", "patch_ids": ["f678764112d3f53e34e26137a4d40018"], "statement_hash": "e9a92c818aaf876c88bf006316c026821bccac67a2faf9b13b9b078d73c0678d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-e34e6672b68952cc", "migration": false}, {"id": "11.0-f162b7f7f9215d6f", "cves": [], "html": "<p>\u4e3a <span>pgbench</span> \u6dfb\u52a0 <code>\\if</code> \u6761\u4ef6\u652f\u6301\uff08Fabien Coelho\uff09</p>", "text": "\u4e3a pgbench \u6dfb\u52a0 \\if \u6761\u4ef6\u652f\u6301\uff08Fabien Coelho\uff09", "title": "\u4e3a pgbench \u6dfb\u52a0 \\if \u6761\u4ef6\u652f\u6301", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pgbench", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.3", "source_hash": "d18edf3f201876d64fbf283ffd83bce4aeced5490fc034f7703276d01e4dcc9e", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pgbench"], "commit_groups": [["f67b113ac"]], "identity_text": "Add \\if conditional support to pgbench (Fabien Coelho)", "commit_aliases": ["f67b113ac"], "source_commits": ["f67b113ac"], "source_entry_id": "11.0/changes/104", "db_id": "a4912d0dc58d011c2968b31e10201088", "patch_ids": ["8f2fcc47faa962ba3ae44b1bde045f17"], "statement_hash": "53c468880d005cc548c99c2274714784adfd25a8a18c29b44502736972aad8b5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-f162b7f7f9215d6f", "migration": false}, {"id": "11.0-d068da381a6ac978", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <span>pgbench</span> \u53d8\u91cf\u540d\u4e2d\u4f7f\u7528\u975e <acronym>ASCII</acronym> \u5b57\u7b26\uff08Fabien Coelho\uff09</p>", "text": "\u5141\u8bb8\u5728 pgbench \u53d8\u91cf\u540d\u4e2d\u4f7f\u7528\u975e ASCII \u5b57\u7b26\uff08Fabien Coelho\uff09", "title": "\u5141\u8bb8\u5728 pgbench \u53d8\u91cf\u540d\u4e2d\u4f7f\u7528\u975e ASCII \u5b57\u7b26", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pgbench", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.3", "source_hash": "69a59e5fa35a7d954e181bc8e55aea4f46bbc8c43e0864c97c70de554a2aa59e", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pgbench"], "commit_groups": [["9d36a3866"]], "identity_text": "Allow the use of non-ASCII characters in pgbench variable names (Fabien Coelho)", "commit_aliases": ["9d36a3866"], "source_commits": ["9d36a3866"], "source_entry_id": "11.0/changes/105", "db_id": "bb0f6df209355898befb0a1ecd000bd6", "patch_ids": ["0881ff570e19830837c6e7e8bf5df1b4"], "statement_hash": "50562993e22d16dd1d6f31b4cfb5b47023b6097d02d249e21e0ea1ba07ee9cb2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-d068da381a6ac978", "migration": false}, {"id": "11.0-429fe142f3879a71", "cves": [], "html": "<p>\u6dfb\u52a0 <span>pgbench</span> \u9009\u9879 <code>--init-steps</code>\uff0c\u4ee5\u63a7\u5236\u6267\u884c\u54ea\u4e9b\u521d\u59cb\u5316\u6b65\u9aa4\uff08Masahiko Sawada\uff09</p>", "text": "\u6dfb\u52a0 pgbench \u9009\u9879 --init-steps\uff0c\u4ee5\u63a7\u5236\u6267\u884c\u54ea\u4e9b\u521d\u59cb\u5316\u6b65\u9aa4\uff08Masahiko Sawada\uff09", "title": "\u6dfb\u52a0 pgbench \u9009\u9879 --init-steps\uff0c\u4ee5\u63a7\u5236\u6267\u884c\u54ea\u4e9b\u521d\u59cb\u5316\u6b65\u9aa4", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pgbench", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.3", "source_hash": "8c8c6d2fc5c5fdacba54550e2b1985a335ad69dd3e05f9deac3f53d01bd181cb", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pgbench"], "commit_groups": [["591c504fa"]], "identity_text": "Add pgbench option --init-steps to control the initialization steps performed (Masahiko Sawada)", "commit_aliases": ["591c504fa"], "source_commits": ["591c504fa"], "source_entry_id": "11.0/changes/106", "db_id": "f7dd508d1dd6fb5b7c3ca2f6d5f85014", "patch_ids": ["09ba057ecee29d1b5636edd9a63b3714"], "statement_hash": "85b5ab3829010b2dd974ea29d6482dd3914c51ae9dadd790cdc862e107bb7f5f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-429fe142f3879a71", "migration": false}, {"id": "11.0-e22c5be20900d763", "cves": [], "html": "<p>\u4e3a <span>pgbench</span> \u6dfb\u52a0\u8fd1\u4f3c\u670d\u4ece Zipf \u5206\u5e03\u7684\u968f\u673a\u6570\u751f\u6210\u5668\uff08Alik Khilazhev\uff09</p>", "text": "\u4e3a pgbench \u6dfb\u52a0\u8fd1\u4f3c\u670d\u4ece Zipf \u5206\u5e03\u7684\u968f\u673a\u6570\u751f\u6210\u5668\uff08Alik Khilazhev\uff09", "title": "\u4e3a pgbench \u6dfb\u52a0\u8fd1\u4f3c\u670d\u4ece Zipf \u5206\u5e03\u7684\u968f\u673a\u6570\u751f\u6210\u5668", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pgbench", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.3", "source_hash": "87e8768e86e3ceb136565edb6b1c07b808e27e1100eb8e29d99f2c0dd232c666", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pgbench"], "commit_groups": [["1fcd0adeb"]], "identity_text": "Add an approximately Zipfian-distributed random generator to pgbench (Alik Khilazhev)", "commit_aliases": ["1fcd0adeb"], "source_commits": ["1fcd0adeb"], "source_entry_id": "11.0/changes/107", "db_id": "c576e674c678e17e35cbec7c1dc0f5f8", "patch_ids": ["50df856d2fb3e7fd21aef2f17d02e136"], "statement_hash": "d5f7f2deddb1d83f5349378c3fd2a0618546941cad634081203daecf24d3e445", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-e22c5be20900d763", "migration": false}, {"id": "11.0-c23b9d3f534d0a63", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <span>pgbench</span> \u4e2d\u8bbe\u7f6e\u968f\u673a\u79cd\u5b50\uff08Fabien Coelho\uff09</p>", "text": "\u5141\u8bb8\u5728 pgbench \u4e2d\u8bbe\u7f6e\u968f\u673a\u79cd\u5b50\uff08Fabien Coelho\uff09", "title": "\u5141\u8bb8\u5728 pgbench \u4e2d\u8bbe\u7f6e\u968f\u673a\u79cd\u5b50", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pgbench", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.3", "source_hash": "57035472ff139c6e6578c2bc3e854b63185504a958c9407218e5d85498b45257", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pgbench"], "commit_groups": [["64f85894a"]], "identity_text": "Allow the random seed to be set in pgbench (Fabien Coelho)", "commit_aliases": ["64f85894a"], "source_commits": ["64f85894a"], "source_entry_id": "11.0/changes/108", "db_id": "45271260a2db818e3a5fbd5e4fc61371", "patch_ids": ["03d4f513f7fe8d96e42426d3c6e9fc36"], "statement_hash": "043567b7ed20da4e08f7a4c36a62cf0875c0a88984611d1a23616a35a0428e86", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-c23b9d3f534d0a63", "migration": false}, {"id": "11.0-760f2ff680330972", "cves": [], "html": "<p>\u5141\u8bb8 <span>pgbench</span> \u4f7f\u7528 <code>pow()</code> \u548c <code>power()</code> \u6267\u884c\u5e42\u8fd0\u7b97\uff08Ra\u00fal Mar\u00edn Rodr\u00edguez\uff09</p>", "text": "\u5141\u8bb8 pgbench \u4f7f\u7528 pow() \u548c power() \u6267\u884c\u5e42\u8fd0\u7b97\uff08Ra\u00fal Mar\u00edn Rodr\u00edguez\uff09", "title": "\u5141\u8bb8 pgbench \u4f7f\u7528 pow() \u548c power() \u6267\u884c\u5e42\u8fd0\u7b97", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pgbench", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.3", "source_hash": "84e23987bf1348c67e03c842993bddbbe1f233c546e092ae99ebdf2fcfd43f47", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pgbench"], "commit_groups": [["7a727c180"]], "identity_text": "Allow pgbench to do exponentiation with pow() and power() (Ra\u00fal Mar\u00edn Rodr\u00edguez)", "commit_aliases": ["7a727c180"], "source_commits": ["7a727c180"], "source_entry_id": "11.0/changes/109", "db_id": "ebb4a3542c54fafa224a758205635537", "patch_ids": ["c71113edfe9b3b1b6f22dc981688e0b2"], "statement_hash": "91aa2b6b93b3c1f0593d645bbc93a22b14a66eb85ee308255fc738fd409e8954", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-760f2ff680330972", "migration": false}, {"id": "11.0-7253eb9c9335b8d4", "cves": [], "html": "<p>\u4e3a <span>pgbench</span> \u6dfb\u52a0 hash \u51fd\u6570\uff08Ildar Musin\uff09</p>", "text": "\u4e3a pgbench \u6dfb\u52a0 hash \u51fd\u6570\uff08Ildar Musin\uff09", "title": "\u4e3a pgbench \u6dfb\u52a0 hash \u51fd\u6570", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pgbench", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.3", "source_hash": "3785f7ae7a1b86ce8eb9c5c8c842d1b16f304e26a3cbac05d80b8faf0722ce75", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pgbench"], "commit_groups": [["e51a04840"]], "identity_text": "Add hashing functions to pgbench (Ildar Musin)", "commit_aliases": ["e51a04840"], "source_commits": ["e51a04840"], "source_entry_id": "11.0/changes/110", "db_id": "c620d215e9b3e2dc3c7876f99e5e8b97", "patch_ids": ["a431cd372e5bebd56707bc7d847928ea"], "statement_hash": "dcfad91620e5e826d5d4d3613a1e958a6a189ec1230900af619eb97b3daac6af", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-7253eb9c9335b8d4", "migration": false}, {"id": "11.0-4cfd5aadf6132f23", "cves": [], "html": "<p>\u63d0\u9ad8\u4f7f\u7528 <code>--latency-limit</code> \u548c <code>--rate</code> \u65f6 <span>pgbench</span> \u7edf\u8ba1\u4fe1\u606f\u7684\u51c6\u786e\u6027\uff08Fabien Coelho\uff09</p>", "text": "\u63d0\u9ad8\u4f7f\u7528 --latency-limit \u548c --rate \u65f6 pgbench \u7edf\u8ba1\u4fe1\u606f\u7684\u51c6\u786e\u6027\uff08Fabien Coelho\uff09", "title": "\u63d0\u9ad8\u4f7f\u7528 --latency-limit \u548c --rate \u65f6 pgbench \u7edf\u8ba1\u4fe1\u606f\u7684\u51c6\u786e\u6027", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pgbench", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.10.3", "source_hash": "25417f4108e571fd2ad9e5827821cc7a7cf06f31ea8eb617106227d3c1e27271", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pgbench"], "commit_groups": [["16827d442"], ["c23bb6bad"]], "identity_text": "Make pgbench statistics more accurate when using --latency-limit and --rate (Fabien Coelho)", "commit_aliases": ["16827d442", "c23bb6bad"], "source_commits": ["16827d442", "c23bb6bad"], "source_entry_id": "11.0/changes/111", "db_id": "a7a46fb3455983614ec31b8e989b4d1b", "patch_ids": ["733adcea4d17ab1749892561edbeaccd", "91040386f514a52fb33989358a42d749"], "statement_hash": "d79427853df63fef9ff2ae94ae8ecdb8227439b707a01ae058595bcad46679c7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-4cfd5aadf6132f23", "migration": false}, {"id": "11.0-650c2fe424109911", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/11/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a>\u6dfb\u52a0\u521b\u5efa\u547d\u540d\u590d\u5236\u69fd\u7684\u9009\u9879\uff08Michael Banck\uff09</p>\n<p>\u4f7f\u7528 <acronym>WAL</acronym> \u6d41\u5f0f\u65b9\u6cd5\uff08<code>--wal-method=stream</code>\uff09\u65f6\uff0c<code>--create-slot</code> \u9009\u9879\u4f1a\u521b\u5efa\u6307\u5b9a\u540d\u79f0\u7684\u590d\u5236\u69fd\uff08<code>--slot</code>\uff09\u3002</p>", "text": "\u4e3apg_basebackup\u6dfb\u52a0\u521b\u5efa\u547d\u540d\u590d\u5236\u69fd\u7684\u9009\u9879\uff08Michael Banck\uff09 \u4f7f\u7528 WAL \u6d41\u5f0f\u65b9\u6cd5\uff08--wal-method=stream\uff09\u65f6\uff0c--create-slot \u9009\u9879\u4f1a\u521b\u5efa\u6307\u5b9a\u540d\u79f0\u7684\u590d\u5236\u69fd\uff08--slot\uff09\u3002", "title": "\u4e3apg_basebackup\u6dfb\u52a0\u521b\u5efa\u547d\u540d\u590d\u5236\u69fd\u7684\u9009\u9879", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11", "source_hash": "d078b056831b83a97ca6802621f4785248155dc1e03e21ae8967d4fdc814785c", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["3709ca1cf"]], "identity_text": "Add an option to pg_basebackup that creates a named replication slot (Michael Banck) The option --create-slot creates the named replication slot (--slot) when the WAL streaming method (--wal-method=stream) is used.", "commit_aliases": ["3709ca1cf"], "source_commits": ["3709ca1cf"], "source_entry_id": "11.0/changes/112", "db_id": "a0c12a97cd330098b5ad768d0546379b", "patch_ids": ["430a4c7bc0f5554f2457537e4b8243fb"], "statement_hash": "612e2391bcbc689a68d0a834a285daa2aa800ab41a432a300b9f17b6a4364639", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-650c2fe424109911", "migration": false}, {"id": "11.0-6a5f4ebd769df761", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/11/app-initdb.html\" title=\"initdb\"><span>initdb</span></a>\u4e3a\u6570\u636e\u76ee\u5f55\u8bbe\u7f6e\u7ec4\u8bfb\u53d6\u6743\u9650\uff08David Steele\uff09</p>\n<p>\u8fd9\u901a\u8fc7\u65b0\u7684 initdb \u9009\u9879 <code>--allow-group-access</code> \u5b8c\u6210\u3002\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u5728\u8fd0\u884c initdb \u4e4b\u524d\uff0c\u4e3a\u7a7a\u6570\u636e\u76ee\u5f55\u8bbe\u7f6e\u7ec4\u6743\u9650\u3002\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/11/runtime-config-file-locations.html#GUC-DATA-DIRECTORY\"><code>data_directory_mode</code></a> \u5141\u8bb8\u8bfb\u53d6\u6570\u636e\u76ee\u5f55\u7684\u7ec4\u6743\u9650\u3002</p>", "text": "\u5141\u8bb8initdb\u4e3a\u6570\u636e\u76ee\u5f55\u8bbe\u7f6e\u7ec4\u8bfb\u53d6\u6743\u9650\uff08David Steele\uff09 \u8fd9\u901a\u8fc7\u65b0\u7684 initdb \u9009\u9879 --allow-group-access \u5b8c\u6210\u3002\u7ba1\u7406\u5458\u4e5f\u53ef\u4ee5\u5728\u8fd0\u884c initdb \u4e4b\u524d\uff0c\u4e3a\u7a7a\u6570\u636e\u76ee\u5f55\u8bbe\u7f6e\u7ec4\u6743\u9650\u3002\u670d\u52a1\u5668\u53d8\u91cf data_directory_mode \u5141\u8bb8\u8bfb\u53d6\u6570\u636e\u76ee\u5f55\u7684\u7ec4\u6743\u9650\u3002", "title": "\u5141\u8bb8initdb\u4e3a\u6570\u636e\u76ee\u5f55\u8bbe\u7f6e\u7ec4\u8bfb\u53d6\u6743\u9650", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11", "source_hash": "252c3f135e0cad4abcb11dcdeb4a227f32fc7c92a4ba48950d52150a1e3676ea", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["c37b3d08c"]], "identity_text": "Allow initdb to set group read access to the data directory (David Steele) This is accomplished with the new initdb option --allow-group-access. Administrators can also set group permissions on the empty data directory before running initdb. Server variable data_directory_mode allows reading of data directory group permissions.", "commit_aliases": ["c37b3d08c"], "source_commits": ["c37b3d08c"], "source_entry_id": "11.0/changes/113", "db_id": "ceebcc586ee816150c2c66ed85cbbba4", "patch_ids": ["6acc52018c27af56a30a29fda0066895"], "statement_hash": "81de74bed7dc5d9d6603fb6d2c9189edef723448d4ee1c1e5552037b3cf718c8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-6a5f4ebd769df761", "migration": false}, {"id": "11.0-0c1cf717ad3b909e", "cves": [], "html": "<p>\u6dfb\u52a0<a href=\"/docs/11/pgverifychecksums.html\" title=\"pg_verify_checksums\"><span>pg_verify_checksums</span></a>\u5de5\u5177\uff0c\u4ee5\u5728\u79bb\u7ebf\u72b6\u6001\u4e0b\u9a8c\u8bc1\u6570\u636e\u5e93\u6821\u9a8c\u548c\uff08Magnus Hagander\uff09</p>", "text": "\u6dfb\u52a0pg_verify_checksums\u5de5\u5177\uff0c\u4ee5\u5728\u79bb\u7ebf\u72b6\u6001\u4e0b\u9a8c\u8bc1\u6570\u636e\u5e93\u6821\u9a8c\u548c\uff08Magnus Hagander\uff09", "title": "\u6dfb\u52a0pg_verify_checksums\u5de5\u5177\uff0c\u4ee5\u5728\u79bb\u7ebf\u72b6\u6001\u4e0b\u9a8c\u8bc1\u6570\u636e\u5e93\u6821\u9a8c\u548c", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11", "source_hash": "95dd64ab542cfee27d56fbc8ff75696901a456bcd3ce7bf956e297aaa2f9a226", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["1fde38bea"], ["a228cc13a"]], "identity_text": "Add pg_verify_checksums tool to verify database checksums while offline (Magnus Hagander)", "commit_aliases": ["1fde38bea", "a228cc13a"], "source_commits": ["1fde38bea", "a228cc13a"], "source_entry_id": "11.0/changes/114", "db_id": "7bc800b6ddf2404a8af49dadcb85f760", "patch_ids": ["493c868c123954ae362bb49b0c6af372", "6a2ad58e29e69d02b6a5334d5b22bce5"], "statement_hash": "cd09e84a3fe2abc536d67cdb5b0c937939f7d74bde53bd33adaf58b1e5d93ad9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-0c1cf717ad3b909e", "migration": false}, {"id": "11.0-107327c053dabe6f", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/11/app-pgresetwal.html\" title=\"pg_resetwal\"><span>pg_resetwal</span></a>\u901a\u8fc7 <code>--wal-segsize</code> \u66f4\u6539 <acronym>WAL</acronym> \u6bb5\u5927\u5c0f\uff08Nathan Bossart\uff09</p>", "text": "\u5141\u8bb8pg_resetwal\u901a\u8fc7 --wal-segsize \u66f4\u6539 WAL \u6bb5\u5927\u5c0f\uff08Nathan Bossart\uff09", "title": "\u5141\u8bb8pg_resetwal\u901a\u8fc7 --wal-segsize \u66f4\u6539 WAL \u6bb5\u5927\u5c0f", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11", "source_hash": "1d7e01f9a55ac52dbf26df781a07142ea7325e26749f1b2f852415b4951780af", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["bf4a8676c"]], "identity_text": "Allow pg_resetwal to change the WAL segment size via --wal-segsize (Nathan Bossart)", "commit_aliases": ["bf4a8676c"], "source_commits": ["bf4a8676c"], "source_entry_id": "11.0/changes/115", "db_id": "c3688a65af2f14b76f98274cc78851f4", "patch_ids": ["0ec904ca051942c22a5e278c4bbbdd54"], "statement_hash": "fcec33e3235f8ff4e37a6f2e7f7e3acc927452a00cd28271b9e3a074cde1ad94", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-107327c053dabe6f", "migration": false}, {"id": "11.0-bc3db2327b49e6c9", "cves": [], "html": "<p>\u4e3a <span>pg_resetwal</span> \u548c <span>pg_controldata</span> \u6dfb\u52a0\u957f\u9009\u9879\uff08Nathan Bossart\uff0cPeter Eisentraut\uff09</p>", "text": "\u4e3a pg_resetwal \u548c pg_controldata \u6dfb\u52a0\u957f\u9009\u9879\uff08Nathan Bossart\uff0cPeter Eisentraut\uff09", "title": "\u4e3a pg_resetwal \u548c pg_controldata \u6dfb\u52a0\u957f\u9009\u9879", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11", "source_hash": "47cda5e08b88dd2bc9511855ef02d7bcde1b58c9f1f09946fdaf93ad7864530c", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["e22b27f0c"]], "identity_text": "Add long options to pg_resetwal and pg_controldata (Nathan Bossart, Peter Eisentraut)", "commit_aliases": ["e22b27f0c"], "source_commits": ["e22b27f0c"], "source_entry_id": "11.0/changes/116", "db_id": "032dbbc37940357248f8193567e674ab", "patch_ids": ["3ba65b9a6f132e2aa46a0e0982aad992"], "statement_hash": "de6b68ffb2cb31c118a0badc8472afd999544a39c92bb589d14cdf5778c95fd4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-bc3db2327b49e6c9", "migration": false}, {"id": "11.0-347d98e4c8d6a2e7", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/11/app-pgreceivewal.html\" title=\"pg_receivewal\"><span>pg_receivewal</span></a>\u6dfb\u52a0 <code>--no-sync</code> \u9009\u9879\uff0c\u7528\u4e8e\u6d4b\u8bd5\u65f6\u7981\u6b62\u540c\u6b65 <acronym>WAL</acronym> \u5199\u5165\uff08Michael Paquier\uff09</p>", "text": "\u4e3apg_receivewal\u6dfb\u52a0 --no-sync \u9009\u9879\uff0c\u7528\u4e8e\u6d4b\u8bd5\u65f6\u7981\u6b62\u540c\u6b65 WAL \u5199\u5165\uff08Michael Paquier\uff09", "title": "\u4e3apg_receivewal\u6dfb\u52a0 --no-sync \u9009\u9879\uff0c\u7528\u4e8e\u6d4b\u8bd5\u65f6\u7981\u6b62\u540c\u6b65 WAL \u5199\u5165", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11", "source_hash": "7bcea8714c9fcf703d0f3ff93e1b6977b2806d8749f24c473a2e9c0de06248d3", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["5f3971291"]], "identity_text": "Add pg_receivewal option --no-sync to prevent synchronous WAL writes, for testing (Michael Paquier)", "commit_aliases": ["5f3971291"], "source_commits": ["5f3971291"], "source_entry_id": "11.0/changes/117", "db_id": "13f3806e367ef1ad598f35745f83e8b8", "patch_ids": ["410232b5129a36e27a41859397d973ab"], "statement_hash": "1491bcaf51a90b2a4500a71c32001185170c373350264f8a7783325f77787c6c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-347d98e4c8d6a2e7", "migration": false}, {"id": "11.0-8d03c7251840c12e", "cves": [], "html": "<p>\u6dfb\u52a0 <span>pg_receivewal</span> \u9009\u9879 <code>--endpos</code>\uff0c\u4ee5\u6307\u5b9a\u4f55\u65f6\u505c\u6b62\u63a5\u6536 <acronym>WAL</acronym>\uff08Michael Paquier\uff09</p>", "text": "\u6dfb\u52a0 pg_receivewal \u9009\u9879 --endpos\uff0c\u4ee5\u6307\u5b9a\u4f55\u65f6\u505c\u6b62\u63a5\u6536 WAL\uff08Michael Paquier\uff09", "title": "\u6dfb\u52a0 pg_receivewal \u9009\u9879 --endpos\uff0c\u4ee5\u6307\u5b9a\u4f55\u65f6\u505c\u6b62\u63a5\u6536 WAL", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11", "source_hash": "2a3569fdded5147513de96b71170020be0110682de1789e44d9f89f02632e5f4", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["6d9fa5264"]], "identity_text": "Add pg_receivewal option --endpos to specify when WAL receiving should stop (Michael Paquier)", "commit_aliases": ["6d9fa5264"], "source_commits": ["6d9fa5264"], "source_entry_id": "11.0/changes/118", "db_id": "9664ba088f735afaa25a006980ac1be6", "patch_ids": ["6e329c5ac3bab5466479cf5ae6ed2c38"], "statement_hash": "6ac2b54bf7ab77b1a1ab6524f497381a3d0414844a2de9ea3bafdd0806e38720", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-8d03c7251840c12e", "migration": false}, {"id": "11.0-9b92089ed2fee24f", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/11/app-pg-ctl.html\" title=\"pg_ctl\"><span>pg_ctl</span></a>\u5411\u8fdb\u7a0b\u53d1\u9001 <code>SIGKILL</code> \u4fe1\u53f7\uff08Andres Freund\uff09</p>\n<p>\u4ee5\u524d\u56e0\u62c5\u5fc3\u53ef\u80fd\u88ab\u8bef\u7528\u800c\u4e0d\u652f\u6301\u6b64\u529f\u80fd\u3002</p>", "text": "\u5141\u8bb8pg_ctl\u5411\u8fdb\u7a0b\u53d1\u9001 SIGKILL \u4fe1\u53f7\uff08Andres Freund\uff09 \u4ee5\u524d\u56e0\u62c5\u5fc3\u53ef\u80fd\u88ab\u8bef\u7528\u800c\u4e0d\u652f\u6301\u6b64\u529f\u80fd\u3002", "title": "\u5141\u8bb8pg_ctl\u5411\u8fdb\u7a0b\u53d1\u9001 SIGKILL \u4fe1\u53f7", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11", "source_hash": "14a7befffcafd97427bf9194ae669ea045e11739b6ebc814a39daec13e44509a", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["2e83db3ad"]], "identity_text": "Allow pg_ctl to send the SIGKILL signal to processes (Andres Freund) This was previously unsupported due to concerns over possible misuse.", "commit_aliases": ["2e83db3ad"], "source_commits": ["2e83db3ad"], "source_entry_id": "11.0/changes/119", "db_id": "879b7bfac469d8b0819e2423c3427698", "patch_ids": ["7b5cc9dcbb869008d2f5042b03e1a1c4"], "statement_hash": "d613ec4710d919dd19c1d1ec90c05467cf23acaead0071c04777f9f72b306284", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-9b92089ed2fee24f", "migration": false}, {"id": "11.0-9223e70b2770d60b", "cves": [], "html": "<p>\u51cf\u5c11<a href=\"/docs/11/app-pgrewind.html\" title=\"pg_rewind\"><span>pg_rewind</span></a>\u590d\u5236\u7684\u6587\u4ef6\u6570\u91cf\uff08Michael Paquier\uff09</p>", "text": "\u51cf\u5c11pg_rewind\u590d\u5236\u7684\u6587\u4ef6\u6570\u91cf\uff08Michael Paquier\uff09", "title": "\u51cf\u5c11pg_rewind\u590d\u5236\u7684\u6587\u4ef6\u6570\u91cf", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11", "source_hash": "c68a4a15563a4d0424f0c3cdd10549b95c9ae64a68afa2d18c26c67516727d16", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["266b6acb3"]], "identity_text": "Reduce the number of files copied by pg_rewind (Michael Paquier)", "commit_aliases": ["266b6acb3"], "source_commits": ["266b6acb3"], "source_entry_id": "11.0/changes/120", "db_id": "494a3012f8ad23efa3c627cf39818950", "patch_ids": ["f41bfcea710b81a51151e05ecea904d1"], "statement_hash": "a552fbbfdc9cbed77f552bf61232ee99de360c4223c7f99ce0913243d4ae0399", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-9223e70b2770d60b", "migration": false}, {"id": "11.0-d50375570e81e04d", "cves": [], "html": "<p>\u7981\u6b62\u4ee5 <code>root</code> \u8eab\u4efd\u8fd0\u884c <span>pg_rewind</span>\uff08Michael Paquier\uff09</p>", "text": "\u7981\u6b62\u4ee5 root \u8eab\u4efd\u8fd0\u884c pg_rewind\uff08Michael Paquier\uff09", "title": "\u7981\u6b62\u4ee5 root \u8eab\u4efd\u8fd0\u884c pg_rewind", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11", "source_hash": "d80b6bb32ff84c4ba8b127a97d365ae0680044e3692c30ed1b662ded3df9b858", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["5d5aeddab"]], "identity_text": "Prevent pg_rewind from running as root (Michael Paquier)", "commit_aliases": ["5d5aeddab"], "source_commits": ["5d5aeddab"], "source_entry_id": "11.0/changes/121", "db_id": "11a4c0c051427349cda9b1086b1d1e69", "patch_ids": ["2aaa28499fa17c5776ef0805c7f8468f"], "statement_hash": "f8602997ecd95ab5c8f7f39509b34535e63a937eedb6d5ad352dfa1a635ec906", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-d50375570e81e04d", "migration": false}, {"id": "11.0-25c540657674cc25", "cves": [], "html": "<p>\u6dfb\u52a0 <span>pg_dumpall</span> \u9009\u9879 <code>--encoding</code>\uff0c\u4ee5\u63a7\u5236\u8f93\u51fa\u7f16\u7801\uff08Michael Paquier\uff09</p>\n<p><span>pg_dump</span> \u5df2\u6709\u6b64\u9009\u9879\u3002</p>", "text": "\u6dfb\u52a0 pg_dumpall \u9009\u9879 --encoding\uff0c\u4ee5\u63a7\u5236\u8f93\u51fa\u7f16\u7801\uff08Michael Paquier\uff09 pg_dump \u5df2\u6709\u6b64\u9009\u9879\u3002", "title": "\u6dfb\u52a0 pg_dumpall \u9009\u9879 --encoding\uff0c\u4ee5\u63a7\u5236\u8f93\u51fa\u7f16\u7801", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11.3", "source_hash": "7607d71661db12b412d17a4b449175f5dc834359c21292fb11712e46e96e6ac5", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["84be67181"]], "identity_text": "Add pg_dumpall option --encoding to control output encoding (Michael Paquier) pg_dump already had this option.", "commit_aliases": ["84be67181"], "source_commits": ["84be67181"], "source_entry_id": "11.0/changes/122", "db_id": "8a3be6dda64a9c63bbd5d83e04c4fb42", "patch_ids": ["ec4ecedd6ae3ad1a5657e30c466497ca"], "statement_hash": "a1b1a073366d289d12eac1c0b2e44e48415911558a9ee262668621c17f58aad8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-25c540657674cc25", "migration": false}, {"id": "11.0-1159e95875b2f787", "cves": [], "html": "<p>\u6dfb\u52a0 <span>pg_dump</span> \u9009\u9879 <code>--load-via-partition-root</code>\uff0c\u5f3a\u5236\u5c06\u6570\u636e\u52a0\u8f7d\u5230\u5206\u533a\u7684\u6839\u8868\uff0c\u800c\u975e\u539f\u5206\u533a\uff08Rushabh Lathia\uff09</p>\n<p>\u5f53\u52a0\u8f7d\u76ee\u6807\u7cfb\u7edf\u5177\u6709\u4e0d\u540c\u7684\u6392\u5e8f\u89c4\u5219\u5b9a\u4e49\u6216\u5b57\u8282\u5e8f\uff0c\u53ef\u80fd\u9700\u8981\u5c06\u884c\u5b58\u50a8\u5230\u4e0e\u4ee5\u524d\u4e0d\u540c\u7684\u5206\u533a\u65f6\uff0c\u6b64\u9009\u9879\u5f88\u6709\u7528\u3002</p>", "text": "\u6dfb\u52a0 pg_dump \u9009\u9879 --load-via-partition-root\uff0c\u5f3a\u5236\u5c06\u6570\u636e\u52a0\u8f7d\u5230\u5206\u533a\u7684\u6839\u8868\uff0c\u800c\u975e\u539f\u5206\u533a\uff08Rushabh Lathia\uff09 \u5f53\u52a0\u8f7d\u76ee\u6807\u7cfb\u7edf\u5177\u6709\u4e0d\u540c\u7684\u6392\u5e8f\u89c4\u5219\u5b9a\u4e49\u6216\u5b57\u8282\u5e8f\uff0c\u53ef\u80fd\u9700\u8981\u5c06\u884c\u5b58\u50a8\u5230\u4e0e\u4ee5\u524d\u4e0d\u540c\u7684\u5206\u533a\u65f6\uff0c\u6b64\u9009\u9879\u5f88\u6709\u7528\u3002", "title": "\u6dfb\u52a0 pg_dump \u9009\u9879 --load-via-partition-root\uff0c\u5f3a\u5236\u5c06\u6570\u636e\u52a0\u8f7d\u5230\u5206\u533a\u7684\u6839\u8868\uff0c\u800c\u975e\u539f\u5206\u533a", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11.3", "source_hash": "1362f6a9caf76fbf03f21925047fabe3723535e7f8fb06d5e2a6992b0ed2a41b", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["23d7680d0"]], "identity_text": "Add pg_dump option --load-via-partition-root to force loading of data into the partition's root table, rather than the original partition (Rushabh Lathia) This is useful if the system to be loaded to has different collation definitions or endianness, possibly requiring rows to be stored in different partitions than previously.", "commit_aliases": ["23d7680d0"], "source_commits": ["23d7680d0"], "source_entry_id": "11.0/changes/123", "db_id": "d8ce247aa432f1b8c31b6582bd5d701f", "patch_ids": ["361ec601363ea8647143e2bc114d4d6b"], "statement_hash": "56de5be176992f656fdaa53f7c753cc20cc5d621a1be24dafc607cbfe19fc0aa", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-1159e95875b2f787", "migration": false}, {"id": "11.0-8d176c84a545004d", "cves": [], "html": "<p>\u6dfb\u52a0\u7981\u6b62\u8f6c\u50a8\u548c\u6062\u590d\u6570\u636e\u5e93\u5bf9\u8c61\u6ce8\u91ca\u7684\u9009\u9879\uff08Robins Tharakan\uff09</p>\n<p><span>pg_dump</span>\u3001<span>pg_dumpall</span> \u548c <span>pg_restore</span> \u7684\u65b0\u9009\u9879\u4e3a <code>--no-comments</code>\u3002</p>", "text": "\u6dfb\u52a0\u7981\u6b62\u8f6c\u50a8\u548c\u6062\u590d\u6570\u636e\u5e93\u5bf9\u8c61\u6ce8\u91ca\u7684\u9009\u9879\uff08Robins Tharakan\uff09 pg_dump\u3001pg_dumpall \u548c pg_restore \u7684\u65b0\u9009\u9879\u4e3a --no-comments\u3002", "title": "\u6dfb\u52a0\u7981\u6b62\u8f6c\u50a8\u548c\u6062\u590d\u6570\u636e\u5e93\u5bf9\u8c61\u6ce8\u91ca\u7684\u9009\u9879", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.11.3", "source_hash": "2c47b1ccb5e89fbdc63195f1c043857cd4c4b7dec69040c570e186b71132a0d0", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["1368e92e1"]], "identity_text": "Add an option to suppress dumping and restoring database object comments (Robins Tharakan) The new pg_dump, pg_dumpall, and pg_restore option is --no-comments.", "commit_aliases": ["1368e92e1"], "source_commits": ["1368e92e1"], "source_entry_id": "11.0/changes/124", "db_id": "f8b71da06e197023e3d027f3c51fea59", "patch_ids": ["399fbef1314949d74dd4de8dfb969122"], "statement_hash": "1542bc2f63bdf01ca9f4fa8d006c7d46d07846e109846cc867efaaa9fbe78f62", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-8d176c84a545004d", "migration": false}, {"id": "11.0-4d2073085c95c710", "cves": [], "html": "<p>\u4e3a <span>PGXS</span> \u6dfb\u52a0\u5b89\u88c5\u5305\u542b\u6587\u4ef6\u7684\u652f\u6301\uff08Andrew Gierth\uff09</p>\n<p>\u8fd9\u652f\u6301\u521b\u5efa\u4f9d\u8d56\u5176\u4ed6\u6a21\u5757\u7684\u6269\u5c55\u6a21\u5757\u3002\u4ee5\u524d\uff0c\u4f9d\u8d56\u6a21\u5757\u6ca1\u6709\u7b80\u5355\u7684\u65b9\u6cd5\u627e\u5230\u88ab\u5f15\u7528\u6a21\u5757\u7684\u5305\u542b\u6587\u4ef6\u3002\u82e5\u5e72\u5b9a\u4e49\u4e86\u6570\u636e\u7c7b\u578b\u7684\u73b0\u6709 <code>contrib</code> \u6a21\u5757\u5df2\u4f5c\u8c03\u6574\uff0c\u4ee5\u5b89\u88c5\u76f8\u5173\u6587\u4ef6\u3002\u6b64\u5916\uff0cPL/Perl \u548c PL/Python \u73b0\u5728\u4e5f\u4f1a\u5b89\u88c5\u5176\u5305\u542b\u6587\u4ef6\uff0c\u4ee5\u652f\u6301\u521b\u5efa\u8fd9\u4e9b\u8bed\u8a00\u7684\u8f6c\u6362\u6a21\u5757\u3002</p>", "text": "\u4e3a PGXS \u6dfb\u52a0\u5b89\u88c5\u5305\u542b\u6587\u4ef6\u7684\u652f\u6301\uff08Andrew Gierth\uff09 \u8fd9\u652f\u6301\u521b\u5efa\u4f9d\u8d56\u5176\u4ed6\u6a21\u5757\u7684\u6269\u5c55\u6a21\u5757\u3002\u4ee5\u524d\uff0c\u4f9d\u8d56\u6a21\u5757\u6ca1\u6709\u7b80\u5355\u7684\u65b9\u6cd5\u627e\u5230\u88ab\u5f15\u7528\u6a21\u5757\u7684\u5305\u542b\u6587\u4ef6\u3002\u82e5\u5e72\u5b9a\u4e49\u4e86\u6570\u636e\u7c7b\u578b\u7684\u73b0\u6709 contrib \u6a21\u5757\u5df2\u4f5c\u8c03\u6574\uff0c\u4ee5\u5b89\u88c5\u76f8\u5173\u6587\u4ef6\u3002\u6b64\u5916\uff0cPL/Perl \u548c PL/Python \u73b0\u5728\u4e5f\u4f1a\u5b89\u88c5\u5176\u5305\u542b\u6587\u4ef6\uff0c\u4ee5\u652f\u6301\u521b\u5efa\u8fd9\u4e9b\u8bed\u8a00\u7684\u8f6c\u6362\u6a21\u5757\u3002", "title": "\u4e3a PGXS \u6dfb\u52a0\u5b89\u88c5\u5305\u542b\u6587\u4ef6\u7684\u652f\u6301", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "9631a4a5b9ee1519bd33142b062eaf496f441950008cfdc10be2d6aa83049116", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["094ffd684"], ["235526a20"], ["d06eebce5"], ["f1ca5a654"]], "identity_text": "Add PGXS support for installing include files (Andrew Gierth) This supports creating extension modules that depend on other modules. Formerly there was no easy way for the dependent module to find the referenced one's include files. Several existing contrib modules that define data types have been adjusted to install relevant files. Also, PL/Perl and PL/Python now install their include files, to support creation of transform modules for those languages.", "commit_aliases": ["094ffd684", "235526a20", "d06eebce5", "f1ca5a654"], "source_commits": ["094ffd684", "235526a20", "d06eebce5", "f1ca5a654"], "source_entry_id": "11.0/changes/125", "db_id": "df3b752844a957876f98117a141a4d1b", "patch_ids": ["0376d7456cf71f7bc8c3ea3259ac55cf", "03bf60a4bcfddb4aee8754d6f7ceee17", "f80ded311b195e159e77fb306ebfe83c", "faf72fb2e1c934dbc4c9a99144d05f21"], "statement_hash": "fac74fd0ed20cf6e8c2dc2e1b23640bd7a2fe7a0e2b611762cc4a7bbcb791385", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-4d2073085c95c710", "migration": false}, {"id": "11.0-7524903add553d3c", "cves": [], "html": "<p>\u5b89\u88c5 <code>errcodes.txt</code>\uff0c\u4f7f\u6269\u5c55\u53ef\u4ee5\u8bbf\u95ee <span>PostgreSQL</span> \u5df2\u77e5\u7684\u9519\u8bef\u7801\u5217\u8868\uff08Thomas Munro\uff09</p>", "text": "\u5b89\u88c5 errcodes.txt\uff0c\u4f7f\u6269\u5c55\u53ef\u4ee5\u8bbf\u95ee PostgreSQL \u5df2\u77e5\u7684\u9519\u8bef\u7801\u5217\u8868\uff08Thomas Munro\uff09", "title": "\u5b89\u88c5 errcodes.txt\uff0c\u4f7f\u6269\u5c55\u53ef\u4ee5\u8bbf\u95ee PostgreSQL \u5df2\u77e5\u7684\u9519\u8bef\u7801\u5217\u8868", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "0fee07a93a1e74984c41a0bb2b2e2b8b97a28d19131cd909d3457da617265d91", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["1fd869066"]], "identity_text": "Install errcodes.txt to allow extensions to access the list of error codes known to PostgreSQL (Thomas Munro)", "commit_aliases": ["1fd869066"], "source_commits": ["1fd869066"], "source_entry_id": "11.0/changes/126", "db_id": "af8de42a029d75567588d441634d2ea2", "patch_ids": ["86739051b3caac1df6717bf3cf19ce45"], "statement_hash": "f601af79b78c66e70d4c40fcc9bda9c1788ca3ed40da5cbf37840cbc70fc5e57", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-7524903add553d3c", "migration": false}, {"id": "11.0-b8cbf493da6c750f", "cves": [], "html": "<p>\u5c06\u6587\u6863\u8f6c\u6362\u4e3a DocBook <acronym>XML</acronym>\uff08Peter Eisentraut\uff0cAlexander Lakhin\uff0cJ\u00fcrgen Purtz\uff09</p>\n<p>\u4e3a\u4e0e\u65e7\u5206\u652f\u4fdd\u6301\u517c\u5bb9\uff0c\u6587\u4ef6\u540d\u4ecd\u4f7f\u7528 <code>sgml</code> \u6269\u5c55\u540d\u3002</p>", "text": "\u5c06\u6587\u6863\u8f6c\u6362\u4e3a DocBook XML\uff08Peter Eisentraut\uff0cAlexander Lakhin\uff0cJ\u00fcrgen Purtz\uff09 \u4e3a\u4e0e\u65e7\u5206\u652f\u4fdd\u6301\u517c\u5bb9\uff0c\u6587\u4ef6\u540d\u4ecd\u4f7f\u7528 sgml \u6269\u5c55\u540d\u3002", "title": "\u5c06\u6587\u6863\u8f6c\u6362\u4e3a DocBook XML", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "a0cd8258d174fc9e0f5c1270e84009fd723a835ad837ddf202f8d75035a2cba5", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["1c53f612b"], ["1ff01b390"], ["3c49c6fac"], ["c29c57890"]], "identity_text": "Convert documentation to DocBook XML (Peter Eisentraut, Alexander Lakhin, J\u00fcrgen Purtz) The file names still use an sgml extension for compatibility with back branches.", "commit_aliases": ["1c53f612b", "1ff01b390", "3c49c6fac", "c29c57890"], "source_commits": ["1c53f612b", "1ff01b390", "3c49c6fac", "c29c57890"], "source_entry_id": "11.0/changes/127", "db_id": "35d8a2cc37513d9594299871b7c5ad60", "patch_ids": ["0b850f7edb562632fc81009fd4b5c0b8", "70b034b977d67d4f7528a0465a95dce9", "85d64fbf7876df643071a2cc75374df0", "9ef7c6c7692224d1ddd894e98a51e665"], "statement_hash": "11a8abe140c538057a1df0ac32b9e7cecf2739789aadcf3a53bc0f5445161cf7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-b8cbf493da6c750f", "migration": false}, {"id": "11.0-39dbd6327d52dfe2", "cves": [], "html": "<p>\u5728\u9002\u7528\u7684\u5e73\u53f0\uff08\u5373\u5927\u591a\u6570\u5e73\u53f0\uff09\u4e0a\uff0c\u4f7f\u7528 <code>stdbool.h</code> \u5b9a\u4e49 <code>bool</code> \u7c7b\u578b\uff08Peter Eisentraut\uff09</p>\n<p>\u8fd9\u6d88\u9664\u4e86\u9700\u8981\u5305\u542b <code>stdbool.h</code> \u7684\u6269\u5c55\u6a21\u5757\u7684\u4e00\u9879\u7f16\u7801\u9690\u60a3\u3002</p>", "text": "\u5728\u9002\u7528\u7684\u5e73\u53f0\uff08\u5373\u5927\u591a\u6570\u5e73\u53f0\uff09\u4e0a\uff0c\u4f7f\u7528 stdbool.h \u5b9a\u4e49 bool \u7c7b\u578b\uff08Peter Eisentraut\uff09 \u8fd9\u6d88\u9664\u4e86\u9700\u8981\u5305\u542b stdbool.h \u7684\u6269\u5c55\u6a21\u5757\u7684\u4e00\u9879\u7f16\u7801\u9690\u60a3\u3002", "title": "\u5728\u9002\u7528\u7684\u5e73\u53f0\uff08\u5373\u5927\u591a\u6570\u5e73\u53f0\uff09\u4e0a\uff0c\u4f7f\u7528 stdbool.h \u5b9a\u4e49 bool \u7c7b\u578b", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "4ab5af379d48eb280bf2ff69a120b67f1a41e97e51403891fae52635fba8402c", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["6fe25c135"], ["7ba7986fb"], ["9a95a77d9"]], "identity_text": "Use stdbool.h to define type bool on platforms where it's suitable, which is most (Peter Eisentraut) This eliminates a coding hazard for extension modules that need to include stdbool.h.", "commit_aliases": ["6fe25c135", "7ba7986fb", "9a95a77d9"], "source_commits": ["6fe25c135", "7ba7986fb", "9a95a77d9"], "source_entry_id": "11.0/changes/128", "db_id": "486347283d6c5532d16acd16966c9fc6", "patch_ids": ["11ec2556dbd8593cadd4ccab7935edb8", "58e902e4117010276d5f039802279939", "fb5a913fe04fc0e302afd9ee1aad02b9"], "statement_hash": "dea5e3edd82e7a300aadbcac68808af20a6c82e77f42a5edce526f21f33a6b12", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-39dbd6327d52dfe2", "migration": false}, {"id": "11.0-0b66e201928bb0fe", "cves": [], "html": "<p>\u5168\u9762\u8c03\u6574\u521d\u59cb\u7cfb\u7edf\u76ee\u5f55\u5185\u5bb9\u7684\u5b9a\u4e49\u65b9\u5f0f\uff08John Naylor\uff09</p>\n<p>\u521d\u59cb\u6570\u636e\u73b0\u5728\u7528 Perl \u6570\u636e\u7ed3\u6784\u8868\u793a\uff0c\u66f4\u4fbf\u4e8e\u673a\u68b0\u5316\u5904\u7406\u3002</p>", "text": "\u5168\u9762\u8c03\u6574\u521d\u59cb\u7cfb\u7edf\u76ee\u5f55\u5185\u5bb9\u7684\u5b9a\u4e49\u65b9\u5f0f\uff08John Naylor\uff09 \u521d\u59cb\u6570\u636e\u73b0\u5728\u7528 Perl \u6570\u636e\u7ed3\u6784\u8868\u793a\uff0c\u66f4\u4fbf\u4e8e\u673a\u68b0\u5316\u5904\u7406\u3002", "title": "\u5168\u9762\u8c03\u6574\u521d\u59cb\u7cfb\u7edf\u76ee\u5f55\u5185\u5bb9\u7684\u5b9a\u4e49\u65b9\u5f0f", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "89f375702b2376b0f696d72accb1485a6f529ac8f1a8b341daacbec7f2a1b867", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["372728b0d"], ["5372c2c84"], ["55d26ff63"], ["9ffcccdb9"], ["a0854f107"], ["a351679c8"], ["d160882a1"], ["e90d4ddc6"]], "identity_text": "Overhaul the way that initial system catalog contents are defined (John Naylor) The initial data is now represented in Perl data structures, making it much easier to manipulate mechanically.", "commit_aliases": ["372728b0d", "5372c2c84", "55d26ff63", "9ffcccdb9", "a0854f107", "a351679c8", "d160882a1", "e90d4ddc6"], "source_commits": ["372728b0d", "5372c2c84", "55d26ff63", "9ffcccdb9", "a0854f107", "a351679c8", "d160882a1", "e90d4ddc6"], "source_entry_id": "11.0/changes/129", "db_id": "9773a2e3c16865a72cb89ce092d8f44b", "patch_ids": ["0a91fd7eea2bd9374829ba515dab3df0", "146bbe432469b2f8ab4b7b02eedcbe34", "2c15844dbb1f273678cdab191d7db6e8", "3f82aa50c53f911b5d1416fde037ec66", "643e802bb5429fae3bb9303b40c40b93", "720f9c40048efc8c8792b46269335825", "76eaa97376cc029d87cb57484e76f241", "bb35965bdb73e5dba9d3b451e5d4c8c4"], "statement_hash": "9baebafd01c5089c96fbb52e76f777150531e692f67e1bb1661d1d12b65166fe", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-0b66e201928bb0fe", "migration": false}, {"id": "11.0-1e4a2520a235d5ed", "cves": [], "html": "<p>\u7981\u6b62\u6269\u5c55\u521b\u5efa\u63a5\u53d7\u5e26\u5f15\u53f7\u503c\u5217\u8868\u7684\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u53c2\u6570\uff08Tom Lane\uff09</p>\n<p>\u76ee\u524d\u65e0\u6cd5\u652f\u6301\u8fd9\u79cd\u529f\u80fd\uff0c\u56e0\u4e3a\u5728\u52a0\u8f7d\u6269\u5c55\u4e4b\u524d\u5c31\u5fc5\u987b\u77e5\u9053\u8be5\u53c2\u6570\u7684\u8fd9\u4e00\u5c5e\u6027\u3002</p>", "text": "\u7981\u6b62\u6269\u5c55\u521b\u5efa\u63a5\u53d7\u5e26\u5f15\u53f7\u503c\u5217\u8868\u7684\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u53c2\u6570\uff08Tom Lane\uff09 \u76ee\u524d\u65e0\u6cd5\u652f\u6301\u8fd9\u79cd\u529f\u80fd\uff0c\u56e0\u4e3a\u5728\u52a0\u8f7d\u6269\u5c55\u4e4b\u524d\u5c31\u5fc5\u987b\u77e5\u9053\u8be5\u53c2\u6570\u7684\u8fd9\u4e00\u5c5e\u6027\u3002", "title": "\u7981\u6b62\u6269\u5c55\u521b\u5efa\u63a5\u53d7\u5e26\u5f15\u53f7\u503c\u5217\u8868\u7684\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u53c2\u6570", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "3102df18fa840331516ae64a75e8dc100b0068e8fcb1aa385c497b9fe23b7e3d", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["846b5a525"]], "identity_text": "Prevent extensions from creating custom server parameters that take a quoted list of values (Tom Lane) This cannot be supported at present because knowledge of the parameter's property would be required even before the extension is loaded.", "commit_aliases": ["846b5a525"], "source_commits": ["846b5a525"], "source_entry_id": "11.0/changes/130", "db_id": "fa1933de3caaacef029869867e384235", "patch_ids": ["b2dfa83744fece20365ea5ce10500696"], "statement_hash": "de435aafd451f97414aa74df6755ec1a997a9c3b17bf6b70c7c4ca0a76a98e89", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-1e4a2520a235d5ed", "migration": false}, {"id": "11.0-cce6409f88b40e7a", "cves": [], "html": "<p>\u589e\u52a0\u5728\u4f7f\u7528<a href=\"/docs/11/auth-password.html\" title=\"20.5.\u00a0\u5bc6\u7801\u8ba4\u8bc1\"><acronym>SCRAM</acronym></a>\u8ba4\u8bc1\u65f6\u4f7f\u7528\u901a\u9053\u7ed1\u5b9a\u7684\u80fd\u529b\uff08Michael Paquier\uff09</p>\n<p>\u901a\u9053\u7ed1\u5b9a\u65e8\u5728\u9632\u6b62\u4e2d\u95f4\u4eba\u653b\u51fb\uff0c\u4f46\u9664\u975e\u80fd\u591f\u5f3a\u5236\u542f\u7528\u901a\u9053\u7ed1\u5b9a\uff0c\u5426\u5219 <acronym>SCRAM</acronym> \u65e0\u6cd5\u9632\u6b62\u6b64\u7c7b\u653b\u51fb\u3002\u9057\u61be\u7684\u662f\uff0clibpq \u4e2d\u6ca1\u6709\u529e\u6cd5\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u9884\u8ba1\u672a\u6765\u7248\u672c\u7684 libpq\uff0c\u4ee5\u53ca\u4e0d\u57fa\u4e8e libpq \u6784\u5efa\u7684\u63a5\u53e3\uff08\u4f8b\u5982 JDBC\uff09\u5c06\u652f\u6301\u6b64\u529f\u80fd\u3002</p>", "text": "\u589e\u52a0\u5728\u4f7f\u7528SCRAM\u8ba4\u8bc1\u65f6\u4f7f\u7528\u901a\u9053\u7ed1\u5b9a\u7684\u80fd\u529b\uff08Michael Paquier\uff09 \u901a\u9053\u7ed1\u5b9a\u65e8\u5728\u9632\u6b62\u4e2d\u95f4\u4eba\u653b\u51fb\uff0c\u4f46\u9664\u975e\u80fd\u591f\u5f3a\u5236\u542f\u7528\u901a\u9053\u7ed1\u5b9a\uff0c\u5426\u5219 SCRAM \u65e0\u6cd5\u9632\u6b62\u6b64\u7c7b\u653b\u51fb\u3002\u9057\u61be\u7684\u662f\uff0clibpq \u4e2d\u6ca1\u6709\u529e\u6cd5\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u9884\u8ba1\u672a\u6765\u7248\u672c\u7684 libpq\uff0c\u4ee5\u53ca\u4e0d\u57fa\u4e8e libpq \u6784\u5efa\u7684\u63a5\u53e3\uff08\u4f8b\u5982 JDBC\uff09\u5c06\u652f\u6301\u6b64\u529f\u80fd\u3002", "title": "\u589e\u52a0\u5728\u4f7f\u7528SCRAM\u8ba4\u8bc1\u65f6\u4f7f\u7528\u901a\u9053\u7ed1\u5b9a\u7684\u80fd\u529b", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "e9900e57e2ba7a3c7a5cf2db99ecd37d06b9c93d70d24ccb2c564c8ff678fb24", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["4bbf110d2"], ["9288d62bb"], ["d3fb72ea6"]], "identity_text": "Add ability to use channel binding when using SCRAM authentication (Michael Paquier) Channel binding is intended to prevent man-in-the-middle attacks, but SCRAM cannot prevent them unless it can be forced to be active. Unfortunately, there is no way to do that in libpq. Support for it is expected in future versions of libpq and in interfaces not built using libpq, e.g., JDBC.", "commit_aliases": ["4bbf110d2", "9288d62bb", "d3fb72ea6"], "source_commits": ["4bbf110d2", "9288d62bb", "d3fb72ea6"], "source_entry_id": "11.0/changes/131", "db_id": "bff2bbba65a3a78f20ded5b40ad97bcd", "patch_ids": ["58bcf4280be6f33e7af5b0fce5beae4c", "a5a66f394978747f567c44c5f56aee33", "f3f9ce78e54a2f22b140ce58321e5a30"], "statement_hash": "4ac7731ba95956c7ff0cba8389b5a9a073dde6f1c14af05a0d5c47b3b54538f1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-cce6409f88b40e7a", "migration": false}, {"id": "11.0-f90ee171e8da7552", "cves": [], "html": "<p>\u5141\u8bb8\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u8fde\u63a5\u5230\u901a\u5e38\u4e0d\u5141\u8bb8\u8fde\u63a5\u7684\u6570\u636e\u5e93\uff08Magnus Hagander\uff09</p>", "text": "\u5141\u8bb8\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u8fde\u63a5\u5230\u901a\u5e38\u4e0d\u5141\u8bb8\u8fde\u63a5\u7684\u6570\u636e\u5e93\uff08Magnus Hagander\uff09", "title": "\u5141\u8bb8\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u8fde\u63a5\u5230\u901a\u5e38\u4e0d\u5141\u8bb8\u8fde\u63a5\u7684\u6570\u636e\u5e93", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "9c45d8fcc278a3c7b0a0f4ef4b33b3adeb678a0016f2368bc1e5e001c8d53d6a", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["eed1ce72e"]], "identity_text": "Allow background workers to attach to databases that normally disallow connections (Magnus Hagander)", "commit_aliases": ["eed1ce72e"], "source_commits": ["eed1ce72e"], "source_entry_id": "11.0/changes/132", "db_id": "bf4de24dee6e29eead99c6ef51fb51d4", "patch_ids": ["af425665c70b422de85126d33ad9ca7c"], "statement_hash": "b42172728d8c7ea936188af9479aaa827a39f49d295dd0d7c8bfa5e3cd08ab62", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-f90ee171e8da7552", "migration": false}, {"id": "11.0-36580fc2da065a0b", "cves": [], "html": "<p>\u6dfb\u52a0\u5bf9 <span>ARMv8</span> \u4e0a\u786c\u4ef6 <acronym>CRC</acronym> \u8ba1\u7b97\u7684\u652f\u6301\uff08Yuqi Gu\uff0cHeikki Linnakangas\uff0cThomas Munro\uff09</p>", "text": "\u6dfb\u52a0\u5bf9 ARMv8 \u4e0a\u786c\u4ef6 CRC \u8ba1\u7b97\u7684\u652f\u6301\uff08Yuqi Gu\uff0cHeikki Linnakangas\uff0cThomas Munro\uff09", "title": "\u6dfb\u52a0\u5bf9 ARMv8 \u4e0a\u786c\u4ef6 CRC \u8ba1\u7b97\u7684\u652f\u6301", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "9bb529820c80e4bad118d25ca812ada7ed0a23196ab2ebd89da8db11da75dc3a", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["f044d71e3"]], "identity_text": "Add support for hardware CRC calculations on ARMv8 (Yuqi Gu, Heikki Linnakangas, Thomas Munro)", "commit_aliases": ["f044d71e3"], "source_commits": ["f044d71e3"], "source_entry_id": "11.0/changes/133", "db_id": "cb36577d1888cc82e055d4a9a2b50b79", "patch_ids": ["647b77da2e2ae79ae08a85d5bd1918fb"], "statement_hash": "230ddd1801f8486e3fd8f84599fff320addedacf003bc6d2a71c5487e6ca4dc2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-36580fc2da065a0b", "migration": false}, {"id": "11.0-09c3f074623ac070", "cves": [], "html": "<p>\u52a0\u5feb\u6309 OID \u67e5\u627e\u5185\u7f6e\u51fd\u6570\u7684\u901f\u5ea6\uff08Andres Freund\uff09</p>\n<p>\u4ee5\u524d\u7684\u4e8c\u5206\u67e5\u627e\u5df2\u88ab\u67e5\u627e\u6570\u7ec4\u53d6\u4ee3\u3002</p>", "text": "\u52a0\u5feb\u6309 OID \u67e5\u627e\u5185\u7f6e\u51fd\u6570\u7684\u901f\u5ea6\uff08Andres Freund\uff09 \u4ee5\u524d\u7684\u4e8c\u5206\u67e5\u627e\u5df2\u88ab\u67e5\u627e\u6570\u7ec4\u53d6\u4ee3\u3002", "title": "\u52a0\u5feb\u6309 OID \u67e5\u627e\u5185\u7f6e\u51fd\u6570\u7684\u901f\u5ea6", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "1ddf635d514b9be1402b8b86e931de9f5a1834ea84fa21c3bdd5f405d2b7a8d2", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["212e6f34d"]], "identity_text": "Speed up lookups of built-in functions by OID (Andres Freund) The previous binary search has been replaced by a lookup array.", "commit_aliases": ["212e6f34d"], "source_commits": ["212e6f34d"], "source_entry_id": "11.0/changes/134", "db_id": "94ec7e396f8dc999a09f697106c28df6", "patch_ids": ["e6e8c82618c377c8f870b965f7a9e7a5"], "statement_hash": "1b7371d563061a55030a2bdb6f00f1faa018c57f58fbb791e35a278258165c61", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-09c3f074623ac070", "migration": false}, {"id": "11.0-27ff29dcb88bd240", "cves": [], "html": "<p>\u52a0\u5feb\u67e5\u8be2\u7ed3\u679c\u7684\u6784\u5efa\u901f\u5ea6\uff08Andres Freund\uff09</p>", "text": "\u52a0\u5feb\u67e5\u8be2\u7ed3\u679c\u7684\u6784\u5efa\u901f\u5ea6\uff08Andres Freund\uff09", "title": "\u52a0\u5feb\u67e5\u8be2\u7ed3\u679c\u7684\u6784\u5efa\u901f\u5ea6", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "performance", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "009117c5661b9c55dcb3714916c9cb0bf52478dd7c7c3da93f8f069a5ee96b51", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["1de09ad8e"]], "identity_text": "Speed up construction of query results (Andres Freund)", "commit_aliases": ["1de09ad8e"], "source_commits": ["1de09ad8e"], "source_entry_id": "11.0/changes/135", "db_id": "34053cc0896d4a9669457a67246f6e7e", "patch_ids": ["85f4e76a59e9c383cf86e2c7ccbafb4c"], "statement_hash": "1baaa4a1dd11964bc069e855ebcfd74456e27d8f3ca4dbddd461277708fae3e8", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=11.0#11.0-27ff29dcb88bd240", "migration": false}, {"id": "11.0-2d2984315b63ebeb", "cves": [], "html": "<p>\u63d0\u9ad8\u7cfb\u7edf\u7f13\u5b58\u8bbf\u95ee\u901f\u5ea6\uff08Andres Freund\uff09</p>", "text": "\u63d0\u9ad8\u7cfb\u7edf\u7f13\u5b58\u8bbf\u95ee\u901f\u5ea6\uff08Andres Freund\uff09", "title": "\u63d0\u9ad8\u7cfb\u7edf\u7f13\u5b58\u8bbf\u95ee\u901f\u5ea6", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "289e094cea74c24c298cf2c4e9a027dbf564b60c7ef76597ec4c18e422b11b65", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["141fd1b66"]], "identity_text": "Improve speed of access to system caches (Andres Freund)", "commit_aliases": ["141fd1b66"], "source_commits": ["141fd1b66"], "source_entry_id": "11.0/changes/136", "db_id": "530d1c150e18d66aee7af6b58cb4df9e", "patch_ids": ["29d10df3d54f86172861e68229213df5"], "statement_hash": "8b5ecdae4df4f12173450f136078ad967e4e1748ec9ea630c615bf56d915cb80", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-2d2984315b63ebeb", "migration": false}, {"id": "11.0-b88a510b264075ad", "cves": [], "html": "<p>\u6dfb\u52a0\u9488\u5bf9\u987a\u5e8f\u5206\u914d/\u91ca\u653e\u4f18\u5316\u7684\u5206\u4ee3\u5185\u5b58\u5206\u914d\u5668\uff08Tomas Vondra\uff09</p>\n<p>\u8fd9\u51cf\u5c11\u4e86\u903b\u8f91\u89e3\u7801\u7684\u5185\u5b58\u7528\u91cf\u3002</p>", "text": "\u6dfb\u52a0\u9488\u5bf9\u987a\u5e8f\u5206\u914d/\u91ca\u653e\u4f18\u5316\u7684\u5206\u4ee3\u5185\u5b58\u5206\u914d\u5668\uff08Tomas Vondra\uff09 \u8fd9\u51cf\u5c11\u4e86\u903b\u8f91\u89e3\u7801\u7684\u5185\u5b58\u7528\u91cf\u3002", "title": "\u6dfb\u52a0\u9488\u5bf9\u987a\u5e8f\u5206\u914d/\u91ca\u653e\u4f18\u5316\u7684\u5206\u4ee3\u5185\u5b58\u5206\u914d\u5668", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "c14a53537d0af6cde8a251efb074496e1ebb45d22585e58639f74e6b465f3c04", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["a4ccc1cef"]], "identity_text": "Add a generational memory allocator which is optimized for serial allocation/deallocation (Tomas Vondra) This reduces memory usage for logical decoding.", "commit_aliases": ["a4ccc1cef"], "source_commits": ["a4ccc1cef"], "source_entry_id": "11.0/changes/137", "db_id": "9847caa26fee78f3b0a69dfc70e9bf63", "patch_ids": ["434d2d499e2bf454df5e0609073c2a1a"], "statement_hash": "789d55f1fe16c0d086a0320adbbe348ebf397aafbeb1cc1b2b5c2020d38060b9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-b88a510b264075ad", "migration": false}, {"id": "11.0-f9a5db0f36872eac", "cves": [], "html": "<p>\u4f7f <code>VACUUM</code> \u5bf9 <code>pg_class</code>.<code>reltuples</code> \u7684\u8ba1\u7b97\u4e0e <code>ANALYZE</code> \u4e00\u81f4\uff08Tomas Vondra\uff09</p>", "text": "\u4f7f VACUUM \u5bf9 pg_class.reltuples \u7684\u8ba1\u7b97\u4e0e ANALYZE \u4e00\u81f4\uff08Tomas Vondra\uff09", "title": "\u4f7f VACUUM \u5bf9 pg_class.reltuples \u7684\u8ba1\u7b97\u4e0e ANALYZE \u4e00\u81f4", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "6b121e4a418ae18354bcf92f71fe7df04c120af3e94df86ef8c231a3002cf6f5", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["7c91a0364"]], "identity_text": "Make the computation of pg_class.reltuples by VACUUM consistent with its computation by ANALYZE (Tomas Vondra)", "commit_aliases": ["7c91a0364"], "source_commits": ["7c91a0364"], "source_entry_id": "11.0/changes/138", "db_id": "75ef39e2a1e5f1e2fa7899f39f183f89", "patch_ids": ["201d27d53baea195451d9f532ae517d6"], "statement_hash": "c8e56558edf875217d95429d9a630585f8473edc6e9b6f06045ccfdd1f5a0ad0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-f9a5db0f36872eac", "migration": false}, {"id": "11.0-4114b010c72beb16", "cves": [], "html": "<p>\u66f4\u65b0\u4e3a\u4f7f\u7528 <span>perltidy</span> <code>20170521</code> \u7248\uff08Tom Lane\uff0cPeter Eisentraut\uff09</p>", "text": "\u66f4\u65b0\u4e3a\u4f7f\u7528 perltidy 20170521 \u7248\uff08Tom Lane\uff0cPeter Eisentraut\uff09", "title": "\u66f4\u65b0\u4e3a\u4f7f\u7528 perltidy 20170521 \u7248", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.12", "source_hash": "e8d219272cfc1a988fcebd279cfd53803a0ae828f3ae3e826e8b11f23c899504", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["46cda5bf7"], ["a2ada08d4"]], "identity_text": "Update to use perltidy version 20170521 (Tom Lane, Peter Eisentraut)", "commit_aliases": ["46cda5bf7", "a2ada08d4"], "source_commits": ["46cda5bf7", "a2ada08d4"], "source_entry_id": "11.0/changes/139", "db_id": "1822e228a6bd6670b81ec36c715c197b", "patch_ids": ["14276318f7c4402df20bc60e880fbc25", "bcc6408a0de5637e4b3ac0bb9eecd3e9"], "statement_hash": "9cec03802250cebcbf437ee3c133afd35ddb6dd396a4e6bb15fcb3cfeed4aec4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-4114b010c72beb16", "migration": false}, {"id": "11.0-6ba76cb06f0c1bfe", "cves": [], "html": "<p>\u5141\u8bb8\u6269\u5c55 <a href=\"/docs/11/pgprewarm.html\" title=\"F.27.\u00a0pg_prewarm\"><code>pg_prewarm</code></a> \u5728\u542f\u52a8\u65f6\u6062\u590d\u5148\u524d\u7684\u5171\u4eab\u7f13\u51b2\u533a\u5185\u5bb9\uff08Mithun Cy\uff0cRobert Haas\uff09</p>\n<p>\u5b9e\u73b0\u65b9\u5f0f\u662f\u8ba9 <code>pg_prewarm</code> \u5728\u670d\u52a1\u5668\u8fd0\u884c\u671f\u95f4\u4e0d\u65f6\u5730\u3001\u5e76\u5728\u5173\u95ed\u65f6\uff0c\u5c06\u5171\u4eab\u7f13\u51b2\u533a\u7684\u5173\u7cfb\u548c\u5757\u53f7\u6570\u636e\u5b58\u50a8\u5230\u78c1\u76d8\u3002</p>", "text": "\u5141\u8bb8\u6269\u5c55 pg_prewarm \u5728\u542f\u52a8\u65f6\u6062\u590d\u5148\u524d\u7684\u5171\u4eab\u7f13\u51b2\u533a\u5185\u5bb9\uff08Mithun Cy\uff0cRobert Haas\uff09 \u5b9e\u73b0\u65b9\u5f0f\u662f\u8ba9 pg_prewarm \u5728\u670d\u52a1\u5668\u8fd0\u884c\u671f\u95f4\u4e0d\u65f6\u5730\u3001\u5e76\u5728\u5173\u95ed\u65f6\uff0c\u5c06\u5171\u4eab\u7f13\u51b2\u533a\u7684\u5173\u7cfb\u548c\u5757\u53f7\u6570\u636e\u5b58\u50a8\u5230\u78c1\u76d8\u3002", "title": "\u5141\u8bb8\u6269\u5c55 pg_prewarm \u5728\u542f\u52a8\u65f6\u6062\u590d\u5148\u524d\u7684\u5171\u4eab\u7f13\u51b2\u533a\u5185\u5bb9", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.13", "source_hash": "10a681cbbfb3945ddaed6a754f3000403d4484d6dc4b5c3fd85f800c9aaefb97", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["79ccd7cbd"]], "identity_text": "Allow extension pg_prewarm to restore the previous shared buffer contents on startup (Mithun Cy, Robert Haas) This is accomplished by having pg_prewarm store the shared buffers' relation and block number data to disk occasionally during server operation, and at shutdown.", "commit_aliases": ["79ccd7cbd"], "source_commits": ["79ccd7cbd"], "source_entry_id": "11.0/changes/140", "db_id": "6c1433a7e00c9eb30caebd7fbd2ee276", "patch_ids": ["6c8f42aa5d46c2a7e94f757fa83ce295"], "statement_hash": "761e5bdd9b2f783ae29b40481b646b4c49e0b997a206ce3b688f5f69f2e2983a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-6ba76cb06f0c1bfe", "migration": false}, {"id": "11.0-cc30bfc208433050", "cves": [], "html": "<p>\u6dfb\u52a0 <a href=\"/docs/11/pgtrgm.html\" title=\"F.31.\u00a0pg_trgm\"><code>pg_trgm</code></a> \u51fd\u6570 <code>strict_word_similarity()</code>\uff0c\u4ee5\u8ba1\u7b97\u5b8c\u6574\u5355\u8bcd\u7684\u76f8\u4f3c\u5ea6\uff08Alexander Korotkov\uff09</p>\n<p>\u5df2\u6709\u7684 <code>word_similarity()</code> \u51fd\u6570\u4e5f\u7528\u4e8e\u6b64\u76ee\u7684\uff0c\u4f46\u5b83\u7684\u8bbe\u8ba1\u662f\u5bfb\u627e\u5355\u8bcd\u4e2d\u76f8\u4f3c\u7684\u90e8\u5206\uff0c\u800c <code>strict_word_similarity()</code> \u8ba1\u7b97\u7684\u662f\u4e0e\u5b8c\u6574\u5355\u8bcd\u7684\u76f8\u4f3c\u5ea6\u3002</p>", "text": "\u6dfb\u52a0 pg_trgm \u51fd\u6570 strict_word_similarity()\uff0c\u4ee5\u8ba1\u7b97\u5b8c\u6574\u5355\u8bcd\u7684\u76f8\u4f3c\u5ea6\uff08Alexander Korotkov\uff09 \u5df2\u6709\u7684 word_similarity() \u51fd\u6570\u4e5f\u7528\u4e8e\u6b64\u76ee\u7684\uff0c\u4f46\u5b83\u7684\u8bbe\u8ba1\u662f\u5bfb\u627e\u5355\u8bcd\u4e2d\u76f8\u4f3c\u7684\u90e8\u5206\uff0c\u800c strict_word_similarity() \u8ba1\u7b97\u7684\u662f\u4e0e\u5b8c\u6574\u5355\u8bcd\u7684\u76f8\u4f3c\u5ea6\u3002", "title": "\u6dfb\u52a0 pg_trgm \u51fd\u6570 strict_word_similarity()\uff0c\u4ee5\u8ba1\u7b97\u5b8c\u6574\u5355\u8bcd\u7684\u76f8\u4f3c\u5ea6", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.13", "source_hash": "6d23fa5433480140fdb813626bea2e73635e1fb469a74f533bc4cd9770e3bc83", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["be8a7a686"]], "identity_text": "Add pg_trgm function strict_word_similarity() to compute the similarity of whole words (Alexander Korotkov) The function word_similarity() already existed for this purpose, but it was designed to find similar parts of words, while strict_word_similarity() computes the similarity to whole words.", "commit_aliases": ["be8a7a686"], "source_commits": ["be8a7a686"], "source_entry_id": "11.0/changes/141", "db_id": "f1014ce3e43c216b9dcad78da5138a81", "patch_ids": ["0f4b342b8cb93241c23364cdf5c1dda7"], "statement_hash": "151ea6bb2fb9877874d17ece46593f2b4575c2fc5767ad96fc013d3715e67806", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-cc30bfc208433050", "migration": false}, {"id": "11.0-bd18a75150e0b0bf", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/11/btree-gin.html\" title=\"F.6.\u00a0btree_gin\"><code>btree_gin</code></a> \u5bf9 <code>bool</code>\u3001<code>bpchar</code>\u3001<code>name</code> \u548c <code>uuid</code> \u6570\u636e\u7c7b\u578b\u5efa\u7acb\u7d22\u5f15\uff08Matheus Oliveira\uff09</p>", "text": "\u5141\u8bb8 btree_gin \u5bf9 bool\u3001bpchar\u3001name \u548c uuid \u6570\u636e\u7c7b\u578b\u5efa\u7acb\u7d22\u5f15\uff08Matheus Oliveira\uff09", "title": "\u5141\u8bb8 btree_gin \u5bf9 bool\u3001bpchar\u3001name \u548c uuid \u6570\u636e\u7c7b\u578b\u5efa\u7acb\u7d22\u5f15", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.13", "source_hash": "76cd0462b6d8495d46fc6b951d0307febca8e7c496dcfa00ddc67d8ab8f29fea", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["f4cd7102b"]], "identity_text": "Allow btree_gin to index bool, bpchar, name and uuid data types (Matheus Oliveira)", "commit_aliases": ["f4cd7102b"], "source_commits": ["f4cd7102b"], "source_entry_id": "11.0/changes/142", "db_id": "80f872b8ca7bc9afc22bc564bcae5ba2", "patch_ids": ["6b2b72e5e845359fd705b45486be520a"], "statement_hash": "2afac32938ba1f1995e4ec03c7979cd33b05d3b17febc30eed00af21a2ed85c1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-bd18a75150e0b0bf", "migration": false}, {"id": "11.0-6ee94bbf659c5fae", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/11/cube.html\" title=\"F.9.\u00a0cube\"><code>cube</code></a> \u548c <a href=\"/docs/11/seg.html\" title=\"F.34.\u00a0seg\"><code>seg</code></a> \u6269\u5c55\u4f7f\u7528 GiST \u7d22\u5f15\u6267\u884c\u4ec5\u7d22\u5f15\u626b\u63cf\uff08Andrey Borodin\uff09</p>", "text": "\u5141\u8bb8 cube \u548c seg \u6269\u5c55\u4f7f\u7528 GiST \u7d22\u5f15\u6267\u884c\u4ec5\u7d22\u5f15\u626b\u63cf\uff08Andrey Borodin\uff09", "title": "\u5141\u8bb8 cube \u548c seg \u6269\u5c55\u4f7f\u7528 GiST \u7d22\u5f15\u6267\u884c\u4ec5\u7d22\u5f15\u626b\u63cf", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.13", "source_hash": "b42910cc3332b4fabbf3664c49e330f2ecf4282339eb7f4325eb23591dda097d", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["de1d042f5"]], "identity_text": "Allow cube and seg extensions to perform index-only scans using GiST indexes (Andrey Borodin)", "commit_aliases": ["de1d042f5"], "source_commits": ["de1d042f5"], "source_entry_id": "11.0/changes/143", "db_id": "6fcbf080c9e781e9bd1ee58aea808abb", "patch_ids": ["3180dab0deb6c9113e5c77fd3fd94174"], "statement_hash": "c155f5baa195e10315b0fa5df0046f032e52635ecd9b2263557d159b3b72364d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-6ee94bbf659c5fae", "migration": false}, {"id": "11.0-3526e501aee74694", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 <code>~&gt;</code> \u64cd\u4f5c\u7b26\u83b7\u53d6 cube \u5750\u6807\u7684\u8d1f\u503c\uff08Alexander Korotkov\uff09</p>\n<p>\u8fd9\u5bf9\u6309\u964d\u5e8f\u67e5\u627e\u5750\u6807\u7684 KNN-GiST \u641c\u7d22\u5f88\u6709\u7528\u3002</p>", "text": "\u5141\u8bb8\u4f7f\u7528 ~> \u64cd\u4f5c\u7b26\u83b7\u53d6 cube \u5750\u6807\u7684\u8d1f\u503c\uff08Alexander Korotkov\uff09 \u8fd9\u5bf9\u6309\u964d\u5e8f\u67e5\u627e\u5750\u6807\u7684 KNN-GiST \u641c\u7d22\u5f88\u6709\u7528\u3002", "title": "\u5141\u8bb8\u4f7f\u7528 ~> \u64cd\u4f5c\u7b26\u83b7\u53d6 cube \u5750\u6807\u7684\u8d1f\u503c", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.13", "source_hash": "3842508fe0dd5e6a829f4322a069c633f89a1b53f6dea2ab8b1cb00928da2118", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["f50c80dbb"]], "identity_text": "Allow retrieval of negative cube coordinates using the ~> operator (Alexander Korotkov) This is useful for KNN-GiST searches when looking for coordinates in descending order.", "commit_aliases": ["f50c80dbb"], "source_commits": ["f50c80dbb"], "source_entry_id": "11.0/changes/144", "db_id": "d0aa28ed8bdd90ef52a67c9ba53903da", "patch_ids": ["9d1210542967d5503d0d492e58a8c8b2"], "statement_hash": "121932e5d04988888fc75d9f792800af88fcf96b2654665d497a2a053f21253d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-3526e501aee74694", "migration": false}, {"id": "11.0-1a53674dba5aba2b", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/11/unaccent.html\" title=\"F.43.\u00a0unaccent\"><code>unaccent</code></a> \u6269\u5c55\u6dfb\u52a0\u8d8a\u5357\u8bed\u5b57\u6bcd\u5904\u7406\uff08Dang Minh Huong\uff0cMichael Paquier\uff09</p>", "text": "\u4e3a unaccent \u6269\u5c55\u6dfb\u52a0\u8d8a\u5357\u8bed\u5b57\u6bcd\u5904\u7406\uff08Dang Minh Huong\uff0cMichael Paquier\uff09", "title": "\u4e3a unaccent \u6269\u5c55\u6dfb\u52a0\u8d8a\u5357\u8bed\u5b57\u6bcd\u5904\u7406", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.13", "source_hash": "c1c2941e0365790a6aada60bead8aff779349f538a1e18912cef4501f7532046", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["ec0a69e49"]], "identity_text": "Add Vietnamese letter handling to the unaccent extension (Dang Minh Huong, Michael Paquier)", "commit_aliases": ["ec0a69e49"], "source_commits": ["ec0a69e49"], "source_entry_id": "11.0/changes/145", "db_id": "c9b9043c2dae3234a019994ac7e7b2e9", "patch_ids": ["0357944373de665dac91a340dac183e6"], "statement_hash": "93c609692805e4b6b0f88a2fefca67045e7f468c774485cf897e7daed69e9eed", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-1a53674dba5aba2b", "migration": false}, {"id": "11.0-ddac103640158a9b", "cves": [], "html": "<p>\u589e\u5f3a <a href=\"/docs/11/amcheck.html\" title=\"F.2.\u00a0amcheck\"><code>amcheck</code></a>\uff0c\u4ee5\u68c0\u67e5\u6bcf\u4e2a\u5806\u5143\u7ec4\u90fd\u6709\u5bf9\u5e94\u7684\u7d22\u5f15\u6761\u76ee\uff08Peter Geoghegan\uff09</p>", "text": "\u589e\u5f3a amcheck\uff0c\u4ee5\u68c0\u67e5\u6bcf\u4e2a\u5806\u5143\u7ec4\u90fd\u6709\u5bf9\u5e94\u7684\u7d22\u5f15\u6761\u76ee\uff08Peter Geoghegan\uff09", "title": "\u589e\u5f3a amcheck\uff0c\u4ee5\u68c0\u67e5\u6bcf\u4e2a\u5806\u5143\u7ec4\u90fd\u6709\u5bf9\u5e94\u7684\u7d22\u5f15\u6761\u76ee", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.13", "source_hash": "ea79d6f6f0f25157dff7c70d3371dafe4eb5753ca27ea8f0e63d65511620159b", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["7f563c09f"]], "identity_text": "Enhance amcheck to check that each heap tuple has an index entry (Peter Geoghegan)", "commit_aliases": ["7f563c09f"], "source_commits": ["7f563c09f"], "source_entry_id": "11.0/changes/146", "db_id": "c859a8f8c7b738283e9fc94a73ad589a", "patch_ids": ["5a8ed74bb283c971489bc5efdc652e49"], "statement_hash": "8d9c6406a9ce9c93849bc78781e36512e250627ee7a01cd54ea3e817864d2553", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-ddac103640158a9b", "migration": false}, {"id": "11.0-8be6a4ce3c4c67e9", "cves": [], "html": "<p>\u8ba9 <a href=\"/docs/11/contrib.html#ADMINPACK\" title=\"F.1.\u00a0adminpack\"><code>adminpack</code></a> \u4f7f\u7528\u65b0\u7684\u9ed8\u8ba4\u6587\u4ef6\u7cfb\u7edf\u8bbf\u95ee\u89d2\u8272\uff08Stephen Frost\uff09</p>\n<p>\u4ee5\u524d\uff0c\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u53ef\u4ee5\u8c03\u7528 <code>adminpack</code> \u51fd\u6570\uff1b\u73b0\u5728\u6539\u4e3a\u68c0\u67e5\u89d2\u8272\u6743\u9650\u3002</p>", "text": "\u8ba9 adminpack \u4f7f\u7528\u65b0\u7684\u9ed8\u8ba4\u6587\u4ef6\u7cfb\u7edf\u8bbf\u95ee\u89d2\u8272\uff08Stephen Frost\uff09 \u4ee5\u524d\uff0c\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u53ef\u4ee5\u8c03\u7528 adminpack \u51fd\u6570\uff1b\u73b0\u5728\u6539\u4e3a\u68c0\u67e5\u89d2\u8272\u6743\u9650\u3002", "title": "\u8ba9 adminpack \u4f7f\u7528\u65b0\u7684\u9ed8\u8ba4\u6587\u4ef6\u7cfb\u7edf\u8bbf\u95ee\u89d2\u8272", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.13", "source_hash": "897127fdbe06c4acaafbbbf98b41859272d902716ec032351660f43e365d1c7c", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["11523e860"]], "identity_text": "Have adminpack use the new default file system access roles (Stephen Frost) Previously, only superusers could call adminpack functions; now role permissions are checked.", "commit_aliases": ["11523e860"], "source_commits": ["11523e860"], "source_entry_id": "11.0/changes/147", "db_id": "b927f77f6c379e3df3fb9257f14a8557", "patch_ids": ["dc2579f2ac86796bba3e529db6afcab1"], "statement_hash": "7943b40ab57d65245f38ca4a895110576e568eaf67b02ad97466d91bb0c34779", "relations": [{"rule": 2, "type": "related", "target": "9fb362899a6b27f50f661fe029c5b5e3", "evidence": {"same_day": true, "patch_ids": ["dc2579f2ac86796bba3e529db6afcab1"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-8be6a4ce3c4c67e9", "migration": false}, {"id": "11.0-57f95429a7ffa28a", "cves": [], "html": "<p>\u5c06 <code>pg_stat_statement</code> \u7684\u67e5\u8be2 ID \u6269\u4e3a 64 \u4f4d\uff08Robert Haas\uff09</p>\n<p>\u8fd9\u5927\u5e45\u964d\u4f4e\u4e86\u67e5\u8be2 ID hash \u51b2\u7a81\u7684\u6982\u7387\u3002\u67e5\u8be2 ID \u73b0\u5728\u53ef\u80fd\u663e\u793a\u4e3a\u8d1f\u503c\u3002</p>", "text": "\u5c06 pg_stat_statement \u7684\u67e5\u8be2 ID \u6269\u4e3a 64 \u4f4d\uff08Robert Haas\uff09 \u8fd9\u5927\u5e45\u964d\u4f4e\u4e86\u67e5\u8be2 ID hash \u51b2\u7a81\u7684\u6982\u7387\u3002\u67e5\u8be2 ID \u73b0\u5728\u53ef\u80fd\u663e\u793a\u4e3a\u8d1f\u503c\u3002", "title": "\u5c06 pg_stat_statement \u7684\u67e5\u8be2 ID \u6269\u4e3a 64 \u4f4d", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.13", "source_hash": "9aee8b8a48ba3f9d4de3038864f86551f8c515fe2bfed89017de748d246ed8bc", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["cff440d36"]], "identity_text": "Widen pg_stat_statement's query ID to 64 bits (Robert Haas) This greatly reduces the chance of query ID hash collisions. The query ID can now potentially display as a negative value.", "commit_aliases": ["cff440d36"], "source_commits": ["cff440d36"], "source_entry_id": "11.0/changes/148", "db_id": "cfa11fa74eb230e29de71cc99e87ff06", "patch_ids": ["a3899478d8ed23a4dffcb46a113776b9"], "statement_hash": "aae9f267db0da793abb612ab114d96045f9f93bed9b72055f8fb49e00f704363", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-57f95429a7ffa28a", "migration": false}, {"id": "11.0-804effeee98dd043", "cves": [], "html": "<p>\u79fb\u9664\u5df2\u4e0d\u518d\u63a8\u8350\u4f7f\u7528\u7684 <code>contrib/start-scripts/osx</code> \u811a\u672c\uff08\u6539\u7528 <code>contrib/start-scripts/macos</code>\uff09\uff08Tom Lane\uff09</p>", "text": "\u79fb\u9664\u5df2\u4e0d\u518d\u63a8\u8350\u4f7f\u7528\u7684 contrib/start-scripts/osx \u811a\u672c\uff08\u6539\u7528 contrib/start-scripts/macos\uff09\uff08Tom Lane\uff09", "title": "\u79fb\u9664\u5df2\u4e0d\u518d\u63a8\u8350\u4f7f\u7528\u7684 contrib/start-scripts/osx \u811a\u672c\uff08\u6539\u7528 contrib/start-scripts/macos\uff09", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.13", "source_hash": "2803f29a5a24ba22fa5f1ad5923919e5cfc2495e581df4e6444ac65ed41c7349", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["527878635"]], "identity_text": "Remove the contrib/start-scripts/osx scripts since they are no longer recommended (use contrib/start-scripts/macos instead) (Tom Lane)", "commit_aliases": ["527878635"], "source_commits": ["527878635"], "source_entry_id": "11.0/changes/149", "db_id": "7098714ab96ed9bbd5b84dd5378ce13b", "patch_ids": ["460c117d45167b16f66bdc5fab6ad381"], "statement_hash": "dbd04e0da2933bb52ac9f3d54c97e3d1347ecc96f58be10c63f494c178095c5c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-804effeee98dd043", "migration": false}, {"id": "11.0-22667d641801b9d9", "cves": [], "html": "<p>\u79fb\u9664 <code>chkpass</code> \u6269\u5c55\uff08Peter Eisentraut\uff09</p>\n<p>\u6b64\u6269\u5c55\u4e0d\u518d\u88ab\u89c6\u4e3a\u53ef\u7528\u7684\u5b89\u5168\u5de5\u5177\u6216\u7f16\u5199\u6269\u5c55\u7684\u793a\u4f8b\u3002</p>", "text": "\u79fb\u9664 chkpass \u6269\u5c55\uff08Peter Eisentraut\uff09 \u6b64\u6269\u5c55\u4e0d\u518d\u88ab\u89c6\u4e3a\u53ef\u7528\u7684\u5b89\u5168\u5de5\u5177\u6216\u7f16\u5199\u6269\u5c55\u7684\u793a\u4f8b\u3002", "title": "\u79fb\u9664 chkpass \u6269\u5c55", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/11.0/#id-1.11.6.27.5.13", "source_hash": "95299c9f9c2230254234ec626356d19fb8b136d7039caef28751950196c5d868", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["5d3cad564"]], "identity_text": "Remove the chkpass extension (Peter Eisentraut) This extension is no longer considered to be a usable security tool or example of how to write an extension.", "commit_aliases": ["5d3cad564"], "source_commits": ["5d3cad564"], "source_entry_id": "11.0/changes/150", "db_id": "012f7d9145630497084cdbbc91bd1273", "patch_ids": ["553aea83ba19f896ed71e578247646c9"], "statement_hash": "98de147845068f753a2ddc8d6d3457fb327083492cbdc9c4d065e7691423bacf", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=11.0#11.0-22667d641801b9d9", "migration": false}], "initial_entry_count": 170, "migration_html": "<p>\u5bf9\u4e8e\u5e0c\u671b\u4ece\u4efb\u4f55\u5148\u524d\u7248\u672c\u8fc1\u79fb\u6570\u636e\u7684\u7528\u6237\uff0c\u9700\u8981\u4f7f\u7528<a href=\"/docs/11/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a>\u8fdb\u884c\u5bfc\u51fa/\u6062\u590d\uff0c\u6216\u4f7f\u7528<a href=\"/docs/11/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\u7248\u672c\u7684\u4e00\u822c\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1<a href=\"/docs/11/upgrading.html\" title=\"18.6.\u00a0\u5347\u7ea7 PostgreSQL \u96c6\u7c07\">\u7b2c\u00a018.6\u00a0\u8282</a>\u3002</p>\n<p>\u7248\u672c 11 \u5305\u542b\u8bb8\u591a\u53ef\u80fd\u5f71\u54cd\u4e0e\u5148\u524d\u7248\u672c\u517c\u5bb9\u6027\u7684\u53d8\u66f4\u3002\u8bf7\u6ce8\u610f\u4ee5\u4e0b\u4e0d\u517c\u5bb9\u6027\uff1a</p>\n<div>\n</div>", "category_filters": [{"key": "feature", "label": "\u65b0\u529f\u80fd", "count": 134}, {"key": "bugfix", "label": "BUG \u4fee\u590d", "count": 1}, {"key": "security", "label": "\u5b89\u5168\u76f8\u5173", "count": 0}, {"key": "performance", "label": "\u6027\u80fd\u6539\u8fdb", "count": 15}, {"key": "compatibility", "label": "\u517c\u5bb9\u6027\u53d8\u5316", "count": 20}, {"key": "improvement", "label": "\u5176\u4ed6\u6539\u8fdb", "count": 0}], "security_rows": [{"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": "11.22", "fixed_url": "/docs/compare/?release=11.22", "affected": "11", "component": "core server", "mentions": [{"build": "11.22", "version": "11.22", "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=11.22#11.22-682c6fc45a019a5c"}], "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": "11.22", "fixed_url": "/docs/compare/?release=11.22", "affected": "11", "component": "core server", "mentions": [{"build": "11.22", "version": "11.22", "title": "\u68c0\u6d4b\u8ba1\u7b97\u65b0\u6570\u7ec4\u7ef4\u5ea6\u65f6\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=11.22#11.22-54f46ed4e9376414"}], "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": "11.22", "fixed_url": "/docs/compare/?release=11.22", "affected": "11", "component": "core server", "mentions": [{"build": "11.22", "version": "11.22", "title": "\u4fee\u590d DISTINCT \"any\" \u805a\u5408\u51fd\u6570\u4e2d\u5bf9\u672a\u77e5\u7c7b\u578b\u53c2\u6570\u7684\u5904\u7406", "url": "/docs/compare/?release=11.22#11.22-88a15e360ecf1c36"}], "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": "11.21", "fixed_url": "/docs/compare/?release=11.21", "affected": "11", "component": "core server", "mentions": [{"build": "11.21", "version": "11.21", "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=11.21#11.21-8c203e10c4238e92"}], "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": "11.20", "fixed_url": "/docs/compare/?release=11.20", "affected": "11", "component": "core server", "mentions": [{"build": "11.20", "version": "11.20", "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=11.20#11.20-af3fa580e8ec8498"}], "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": "11.20", "fixed_url": "/docs/compare/?release=11.20", "affected": "11", "component": "core server", "mentions": [{"build": "11.20", "version": "11.20", "title": "\u9632\u6b62 CREATE SCHEMA \u7ed5\u8fc7 search_path \u7684\u66f4\u6539", "url": "/docs/compare/?release=11.20#11.20-0e81dd6144dfdd75"}], "evidence": "branch-matrix"}, {"id": "CVE-2022-2625", "title": "Extension scripts replace objects not belonging to the extension", "url": "https://www.postgresql.org/support/security/CVE-2022-2625/", "score": 7.1, "vector": "AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "description": "Some extensions use CREATE OR REPLACE or CREATE IF NOT EXISTS commands. Some don't adhere to the documented rule to target only objects known to be extension members already. An attack requires permission to create non-temporary objects in at least one schema, ability to lure or wait for an administrator to create or update an affected extension in that schema, and ability to lure or wait for a victim to use the object targeted in CREATE OR REPLACE or CREATE IF NOT EXISTS . Given all three prerequisites, the attacker can run arbitrary code as the victim role, which may be a superuser. Known-affected extensions include both PostgreSQL-bundled and non-bundled extensions. PostgreSQL is blocking this attack in the core server, so there's no need to modify individual extensions.\n\nThe PostgreSQL project thanks Sven Klemm for reporting this problem.", "description_language": "en", "fixed": "11.17", "fixed_url": "/docs/compare/?release=11.17", "affected": "11", "component": "core server", "mentions": [{"build": "11.17", "version": "11.17", "title": "\u4e0d\u5141\u8bb8\u6269\u5c55\u811a\u672c\u66ff\u6362\u4e0d\u5c5e\u4e8e\u8be5\u6269\u5c55\u7684\u5df2\u6709\u5bf9\u8c61", "url": "/docs/compare/?release=11.17#11.17-bf326130ed8e047c"}], "evidence": "branch-matrix"}, {"id": "CVE-2022-1552", "title": "Autovacuum, REINDEX, and others omit \"security restricted operation\" sandbox", "url": "https://www.postgresql.org/support/security/CVE-2022-1552/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Autovacuum, REINDEX , CREATE INDEX , REFRESH MATERIALIZED VIEW , CLUSTER , and pg_amcheck made incomplete efforts to operate safely when a privileged user is maintaining another user's objects. Those commands activated relevant protections too late or not at all. An attacker having permission to create non-temp objects in at least one schema could execute arbitrary SQL functions under a superuser identity.\n\nWhile promptly updating PostgreSQL is the best remediation for most users, a user unable to do that can work around the vulnerability by disabling autovacuum, not manually running the above commands, and not restoring from output of the pg_dump command. Performance may degrade quickly under this workaround. VACUUM is safe, and all commands are fine when a trusted user owns the target object.\n\nThe PostgreSQL project thanks Alexander Lakhin for reporting this problem.", "description_language": "en", "fixed": "11.16", "fixed_url": "/docs/compare/?release=11.16", "affected": "11", "component": "core server", "mentions": [{"build": "11.17", "version": "11.17", "title": "\u4fee\u590d CREATE INDEX \u4e2d\u7684\u6743\u9650\u68c0\u67e5", "url": "/docs/compare/?release=11.17#11.17-1163c89b695c334d"}, {"build": "11.16", "version": "11.16", "title": "\u5c06\u66f4\u591a\u64cd\u4f5c\u9650\u5236\u5728\u201c\u5b89\u5168\u53d7\u9650\u64cd\u4f5c\u201d\u6c99\u7bb1\u5185", "url": "/docs/compare/?release=11.16#11.16-cc5eedf7a8bed7a1"}], "evidence": "branch-matrix"}, {"id": "CVE-2021-3677", "title": "Memory disclosure in certain queries", "url": "https://www.postgresql.org/support/security/CVE-2021-3677/", "score": 6.5, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "description": "A purpose-crafted query can read arbitrary bytes of server memory. In the default configuration, any authenticated database user can complete this attack at will. The attack does not require the ability to create objects. If server settings include max_worker_processes=0 , the known versions of this attack are infeasible. However, undiscovered variants of the attack may be independent of that setting.", "description_language": "en", "fixed": "11.13", "fixed_url": "/docs/compare/?release=11.13", "affected": "11", "component": "core server", "mentions": [{"build": "11.13", "version": "11.13", "title": "\u4fee\u590d\u91cd\u590d\u5e94\u7528\u6295\u5f71\u6b65\u9aa4\u65f6\u4ea7\u751f\u9519\u8bef\u8ba1\u5212\u7684\u95ee\u9898", "url": "/docs/compare/?release=11.13#11.13-0d3425ce5072f250"}], "evidence": "branch-matrix"}, {"id": "CVE-2021-3449", "title": "CVE-2021-3449", "url": "https://www.postgresql.org/support/security/CVE-2021-3449/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "", "mentions": [{"build": "11.13", "version": "11.13", "title": "\u66f4\u5f7b\u5e95\u5730\u7981\u6b62 SSL \u91cd\u65b0\u534f\u5546", "url": "/docs/compare/?release=11.13#11.13-2a0347840526e5c1"}], "evidence": "release-note-mention"}, {"id": "CVE-2021-3393", "title": "Partition constraint violation errors leak values of denied columns", "url": "https://www.postgresql.org/support/security/CVE-2021-3393/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "A user having an UPDATE privilege on a partitioned table but lacking the SELECT privilege on some column may be able to acquire denied-column values from an error message. This is similar to CVE-2014-8161 , but the conditions to exploit are more rare.\n\nThe PostgreSQL project thanks Heikki Linnakangas for reporting this problem.", "description_language": "en", "fixed": "11.11", "fixed_url": "/docs/compare/?release=11.11", "affected": "11", "component": "core server", "mentions": [{"build": "11.11", "version": "11.11", "title": "\u4fee\u590d\u8fdd\u53cd\u7ea6\u675f\u7684\u9519\u8bef\u6d88\u606f\u4e2d\u7684\u4fe1\u606f\u6cc4\u6f0f", "url": "/docs/compare/?release=11.11#11.11-f125167e63d4fbbc"}], "evidence": "branch-matrix"}, {"id": "CVE-2021-32029", "title": "Memory disclosure in partitioned-table UPDATE ... RETURNING", "url": "https://www.postgresql.org/support/security/CVE-2021-32029/", "score": 6.5, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "description": "Using an UPDATE ... RETURNING on a purpose-crafted partitioned table, an attacker can read arbitrary bytes of server memory. In the default configuration, any authenticated database user can create prerequisite objects and complete this attack at will. A user lacking the CREATE and TEMPORARY privileges on all databases and the CREATE privilege on all schemas typically cannot use this attack at will.\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "description_language": "en", "fixed": "11.12", "fixed_url": "/docs/compare/?release=11.12", "affected": "11", "component": "core server", "mentions": [{"build": "11.12", "version": "11.12", "title": "\u4fee\u590d\u6d89\u53ca\u8fde\u63a5\u7684\u8de8\u5206\u533a\u66f4\u65b0\u4e2d UPDATE ... RETURNING \u8f93\u51fa\u53ef\u80fd\u8ba1\u7b97\u4e0d\u6b63\u786e\u7684\u95ee\u9898", "url": "/docs/compare/?release=11.12#11.12-b2c64411aebb82c4"}], "evidence": "branch-matrix"}, {"id": "CVE-2021-32028", "title": "Memory disclosure in INSERT ... ON CONFLICT ... DO UPDATE", "url": "https://www.postgresql.org/support/security/CVE-2021-32028/", "score": 6.5, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "description": "Using an INSERT ... ON CONFLICT ... DO UPDATE command on a purpose-crafted table, an attacker can read arbitrary bytes of server memory. In the default configuration, any authenticated database user can create prerequisite objects and complete this attack at will. A user lacking the CREATE and TEMPORARY privileges on all databases and the CREATE privilege on all schemas cannot use this attack at will.\n\nThe PostgreSQL project thanks Andres Freund for reporting this problem.", "description_language": "en", "fixed": "11.12", "fixed_url": "/docs/compare/?release=11.12", "affected": "11", "component": "core server", "mentions": [{"build": "11.12", "version": "11.12", "title": "\u4fee\u590d INSERT ... ON CONFLICT ... UPDATE \u76ee\u6807\u5217\u8868\u4e2d\u5bf9 \u201cjunk\u201d \u5217\u7684\u9519\u8bef\u5904\u7406", "url": "/docs/compare/?release=11.12#11.12-e7be457a4c664006"}], "evidence": "branch-matrix"}, {"id": "CVE-2021-32027", "title": "Buffer overrun from integer overflow in array subscripting calculations", "url": "https://www.postgresql.org/support/security/CVE-2021-32027/", "score": 6.5, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N", "description": "While modifying certain SQL array values, missing bounds checks let authenticated database users write arbitrary bytes to a wide area of server memory.\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "description_language": "en", "fixed": "11.12", "fixed_url": "/docs/compare/?release=11.12", "affected": "11", "component": "core server", "mentions": [{"build": "11.12", "version": "11.12", "title": "\u9632\u6b62\u6570\u7ec4\u4e0b\u6807\u8ba1\u7b97\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=11.12#11.12-b9c1a3a97eb4a245"}], "evidence": "branch-matrix"}, {"id": "CVE-2021-23222", "title": "libpq processes unencrypted bytes from man-in-the-middle", "url": "https://www.postgresql.org/support/security/CVE-2021-23222/", "score": 3.7, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N", "description": "A man-in-the-middle attacker can inject false responses to the client's first few queries, despite the use of SSL certificate verification and encryption.\n\nIf more preconditions hold, the attacker can exfiltrate the client's password or other confidential data that might be transmitted early in a session. The attacker must have a way to trick the client's intended server into making the confidential data accessible to the attacker. A known implementation having that property is a PostgreSQL configuration vulnerable to CVE-2021-23214 . As with any exploitation of CVE-2021-23214 , the server must be using trust authentication with a clientcert requirement or using cert authentication. To disclose a password, the client must be in possession of a password, which is atypical when using an authentication configuration vulnerable to CVE-2021-23214 . The attacker must have some other way to access the server to retrieve the exfiltrated data (a valid, unprivileged login account would be sufficient).\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "description_language": "en", "fixed": "11.14", "fixed_url": "/docs/compare/?release=11.14", "affected": "11", "component": "client", "mentions": [{"build": "11.14", "version": "11.14", "title": "\u4f7f libpq \u5728 SSL \u6216 GSS \u52a0\u5bc6\u63e1\u624b\u540e\u62d2\u7edd\u591a\u4f59\u7684\u6570\u636e", "url": "/docs/compare/?release=11.14#11.14-cba8a84a21202abc"}], "evidence": "branch-matrix"}, {"id": "CVE-2021-23214", "title": "Server processes unencrypted bytes from man-in-the-middle", "url": "https://www.postgresql.org/support/security/CVE-2021-23214/", "score": 8.1, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "description": "When the server is configured to use trust authentication with a clientcert requirement or to use cert authentication, a man-in-the-middle attacker can inject arbitrary SQL queries when a connection is first established, despite the use of SSL certificate verification and encryption. This is similar to CVE-2011-0411 (different product).\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "description_language": "en", "fixed": "11.14", "fixed_url": "/docs/compare/?release=11.14", "affected": "11", "component": "core server", "mentions": [{"build": "11.14", "version": "11.14", "title": "\u4f7f\u670d\u52a1\u5668\u5728 SSL \u6216 GSS \u52a0\u5bc6\u63e1\u624b\u540e\u62d2\u7edd\u591a\u4f59\u7684\u6570\u636e", "url": "/docs/compare/?release=11.14#11.14-5eea6f66c6b5cf3f"}, {"build": "11.14", "version": "11.14", "title": "\u4f7f libpq \u5728 SSL \u6216 GSS \u52a0\u5bc6\u63e1\u624b\u540e\u62d2\u7edd\u591a\u4f59\u7684\u6570\u636e", "url": "/docs/compare/?release=11.14#11.14-cba8a84a21202abc"}], "evidence": "branch-matrix"}, {"id": "CVE-2020-25696", "title": "psql's \\gset allows overwriting specially treated variables", "url": "https://www.postgresql.org/support/security/CVE-2020-25696/", "score": 7.5, "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "The \\gset meta-command, which sets psql variables based on query results, does not distinguish variables that control psql behavior. If an interactive psql session uses \\gset when querying a compromised server, the attacker can execute arbitrary code as the operating system account running psql . Using \\gset with a prefix not found among specially treated variables, e.g. any lowercase string, precludes the attack in an unpatched psql .\n\nThe PostgreSQL project thanks Nick Cleaton for reporting this problem.", "description_language": "en", "fixed": "11.10", "fixed_url": "/docs/compare/?release=11.10", "affected": "11", "component": "client", "mentions": [{"build": "11.10", "version": "11.10", "title": "\u9632\u6b62 psql \u7684 \\gset \u547d\u4ee4\u4fee\u6539\u5177\u6709\u7279\u6b8a\u5904\u7406\u65b9\u5f0f\u7684\u53d8\u91cf", "url": "/docs/compare/?release=11.10#11.10-05f33833ef6a810b"}], "evidence": "branch-matrix"}, {"id": "CVE-2020-25695", "title": "Multiple features escape \"security restricted operation\" sandbox", "url": "https://www.postgresql.org/support/security/CVE-2020-25695/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "An attacker having permission to create non-temporary objects in at least one schema can execute arbitrary SQL functions under the identity of a superuser.\n\nWhile promptly updating PostgreSQL is the best remediation for most users, a user unable to do that can work around the vulnerability by disabling autovacuum and not manually running ANALYZE , CLUSTER , REINDEX , CREATE INDEX , VACUUM FULL , REFRESH MATERIALIZED VIEW , or a restore from output of the pg_dump command. Performance may degrade quickly under this workaround.\n\nVACUUM without the FULL option is safe, and all commands are fine when a trusted user owns the target object.\n\nThe PostgreSQL project thanks Etienne Stalmans for reporting this problem.", "description_language": "en", "fixed": "11.10", "fixed_url": "/docs/compare/?release=11.10", "affected": "11", "component": "core server", "mentions": [{"build": "11.10", "version": "11.10", "title": "\u7981\u6b62\u5728\u7d22\u5f15\u8868\u8fbe\u5f0f\u548c\u7269\u5316\u89c6\u56fe\u67e5\u8be2\u4e2d\u6267\u884c DECLARE CURSOR ... WITH HOLD \u4ee5\u53ca\u89e6\u53d1\u5ef6\u8fdf\u89e6\u53d1\u5668", "url": "/docs/compare/?release=11.10#11.10-30b9a257c6e59de0"}], "evidence": "branch-matrix"}, {"id": "CVE-2020-25694", "title": "Reconnection can downgrade connection security settings", "url": "https://www.postgresql.org/support/security/CVE-2020-25694/", "score": 8.1, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "description": "Many PostgreSQL-provided client applications have options that create additional database connections. Some of those applications reuse only the basic connection parameters (e.g. host , user , port ), dropping others. If this drops a security-relevant parameter (e.g. channel_binding , sslmode , requirepeer , gssencmode ), the attacker has an opportunity to complete a MITM attack or observe cleartext transmission.\n\nAffected applications are clusterdb , pg_dump , pg_restore , psql , reindexdb , and vacuumdb . The vulnerability arises only if one invokes an affected client application with a connection string containing a security-relevant parameter.\n\nThis also fixes how the \\connect command of psql reuses connection parameters, i.e. all non-overridden parameters from a previous connection string now re-used.\n\nThe PostgreSQL project thanks Peter Eisentraut for reporting this problem.", "description_language": "en", "fixed": "11.10", "fixed_url": "/docs/compare/?release=11.10", "affected": "11", "component": "client", "mentions": [{"build": "11.10", "version": "11.10", "title": "\u4fee\u590d pg_dump\u3001pg_restore\u3001clusterdb\u3001reindexdb \u548c vacuumdb \u5bf9\u590d\u6742\u8fde\u63a5\u5b57\u7b26\u4e32\u53c2\u6570\u7684\u4f7f\u7528", "url": "/docs/compare/?release=11.10#11.10-f5695ef1c79fd91e"}, {"build": "11.10", "version": "11.10", "title": "\u5f53 psql \u7684 \\connect \u547d\u4ee4\u590d\u7528\u8fde\u63a5\u53c2\u6570\u65f6\uff0c\u786e\u4fdd\u590d\u7528\u5148\u524d\u8fde\u63a5\u5b57\u7b26\u4e32\u4e2d\u6240\u6709\u672a\u88ab\u8986\u76d6\u7684\u53c2\u6570", "url": "/docs/compare/?release=11.10#11.10-58b05f4e0090a9b5"}], "evidence": "branch-matrix"}, {"id": "CVE-2020-1720", "title": "ALTER ... DEPENDS ON EXTENSION is missing authorization checks.", "url": "https://www.postgresql.org/support/security/CVE-2020-1720/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N", "description": "The ALTER ... DEPENDS ON EXTENSION sub-commands do not perform authorization checks, which can allow an unprivileged user to drop any function, procedure, materialized view, index, or trigger under certain conditions. This attack is possible if an administrator has installed an extension and an unprivileged user can CREATE , or an extension owner either executes DROP EXTENSION predictably or can be convinced to execute DROP EXTENSION .\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "description_language": "en", "fixed": "11.7", "fixed_url": "/docs/compare/?release=11.7", "affected": "11", "component": "core server", "mentions": [{"build": "11.7", "version": "11.7", "title": "\u4e3a ALTER ... DEPENDS ON EXTENSION \u8865\u4e0a\u7f3a\u5931\u7684\u6743\u9650\u68c0\u67e5", "url": "/docs/compare/?release=11.7#11.7-43b06b9c53a094d4"}], "evidence": "branch-matrix"}, {"id": "CVE-2020-14350", "title": "Uncontrolled search path element in CREATE EXTENSION", "url": "https://www.postgresql.org/support/security/CVE-2020-14350/", "score": 7.1, "vector": "AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "description": "When a superuser runs certain CREATE EXTENSION statements, users may be able to execute arbitrary SQL functions under the identity of that superuser. The attacker must have permission to create objects in the new extension's schema or a schema of a prerequisite extension. Not all extensions are vulnerable.\n\nIn addition to correcting the extensions provided with PostgreSQL, the PostgreSQL Global Development Group is issuing guidance for third-party extension authors to secure their own work.\n\nThe PostgreSQL project thanks Andres Freund for reporting this problem.", "description_language": "en", "fixed": "11.9", "fixed_url": "/docs/compare/?release=11.9", "affected": "11", "component": "core server", "mentions": [{"build": "11.9", "version": "11.9", "title": "\u63d0\u9ad8 contrib \u6a21\u5757\u5b89\u88c5\u811a\u672c\u7684\u5b89\u5168\u6027", "url": "/docs/compare/?release=11.9#11.9-3ae0ed313be57173"}], "evidence": "branch-matrix"}, {"id": "CVE-2020-14349", "title": "Uncontrolled search path element in logical replication", "url": "https://www.postgresql.org/support/security/CVE-2020-14349/", "score": 7.5, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "The PostgreSQL search_path setting determines schemas searched for tables, functions, operators, etc. The CVE-2018-1058 fix caused most PostgreSQL-provided client applications to sanitize search_path , but logical replication continued to leave search_path unchanged. Users of a replication publisher or subscriber database can create objects in the public schema and harness them to execute arbitrary SQL functions under the identity running replication, often a superuser. Installations having adopted a documented secure schema usage pattern are not vulnerable.\n\nThe PostgreSQL project thanks Noah Misch for reporting this problem.", "description_language": "en", "fixed": "11.9", "fixed_url": "/docs/compare/?release=11.9", "affected": "11", "component": "core server", "mentions": [{"build": "11.9", "version": "11.9", "title": "\u5728\u903b\u8f91\u590d\u5236 WAL \u53d1\u9001\u8fdb\u7a0b\u548c\u5e94\u7528\u5de5\u4f5c\u8fdb\u7a0b\u4e2d\u8bbe\u7f6e\u5b89\u5168\u7684 search_path", "url": "/docs/compare/?release=11.9#11.9-586f5d2cec25828f"}], "evidence": "branch-matrix"}, {"id": "CVE-2020-10733", "title": "Windows installer runs executables from uncontrolled directories", "url": "https://www.postgresql.org/support/security/CVE-2020-10733/", "score": 6.7, "vector": "AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "description": "The Windows installer for PostgreSQL invokes system-provided executables that do not have fully-qualified paths. Executables in the directory where the installer loads or the current working directory take precedence over the intended executables. An attacker having permission to add files into one of those directories can use this to execute arbitrary code with the installer's administrative rights.\n\nThe PostgreSQL project thanks Hou JingYi (@hjy79425575) for reporting this problem.", "description_language": "en", "fixed": "11.8", "fixed_url": "/docs/compare/?release=11.8", "affected": "11", "component": "packaging", "mentions": [], "evidence": "branch-matrix"}, {"id": "CVE-2019-3466", "title": "pg_ctlcluster script in postgresql-common does not drop privileges when creating socket/statistics temporary directories", "url": "https://www.postgresql.org/support/security/CVE-2019-3466/", "score": 8.4, "vector": "AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:H", "description": "A PostgreSQL superuser could escalate to root using a deficiency in the pg_ctlcluster command. pg_ctlcluster is a utility provided by the \"postgresql-common\" package that is installed with PostgreSQL on Debian and Ubuntu platforms.", "description_language": "en", "fixed": "11.6", "fixed_url": "/docs/compare/?release=11.6", "affected": "11", "component": "packaging", "mentions": [], "evidence": "branch-matrix"}, {"id": "CVE-2019-10211", "title": "Windows installer bundled OpenSSL executes code from unprotected directory", "url": "https://www.postgresql.org/support/security/CVE-2019-10211/", "score": 7.8, "vector": "AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "When the database server or libpq client library initializes SSL, libeay32.dll attempts to read configuration from a hard-coded directory. Typically, the directory does not exist, but any local user could create it and inject configuration. This configuration can direct OpenSSL to load and execute arbitrary code as the user running a PostgreSQL server or client.\n\nMost PostgreSQL client tools and libraries use libpq , and one can encounter this vulnerability by using any of them. This vulnerability is much like CVE-2019-5443 , but it originated independently. One can work around the vulnerability by setting environment variable OPENSSL_CONF to \"NUL:/openssl.cnf\" or any other name that cannot exist as a file.\n\nThe PostgreSQL project thanks Daniel Gustafsson of the curl security team for reporting this problem.", "description_language": "en", "fixed": "11.5", "fixed_url": "/docs/compare/?release=11.5", "affected": "11", "component": "packaging", "mentions": [], "evidence": "branch-matrix"}, {"id": "CVE-2019-10210", "title": "Windows installer writes superuser password to unprotected temporary file", "url": "https://www.postgresql.org/support/security/CVE-2019-10210/", "score": 6.7, "vector": "AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "description": "The EnterpriseDB Windows installer writes a password to a temporary file in its installation directory, creates initial databases, and deletes the file. During those seconds while the file exists, a local attacker can read the PostgreSQL superuser password from the file.\n\nThe PostgreSQL project thanks Noah Misch for reporting this problem.", "description_language": "en", "fixed": "11.5", "fixed_url": "/docs/compare/?release=11.5", "affected": "11", "component": "packaging", "mentions": [], "evidence": "branch-matrix"}, {"id": "CVE-2019-10209", "title": "Memory disclosure in cross-type comparison for hashed subplan", "url": "https://www.postgresql.org/support/security/CVE-2019-10209/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "In a database containing hypothetical, user-defined hash equality operators, an attacker could read arbitrary bytes of server memory. For an attack to become possible, a superuser would need to create unusual operators. It is possible for operators not purpose-crafted for attack to have the properties that enable an attack, but we are not aware of specific examples.\n\nThe PostgreSQL project thanks Andreas Seltenreich for reporting this problem.", "description_language": "en", "fixed": "11.5", "fixed_url": "/docs/compare/?release=11.5", "affected": "11", "component": "core server", "mentions": [{"build": "11.5", "version": "11.5", "title": "\u4fee\u590d\u9700\u8981\u8de8\u7c7b\u578b\u6bd4\u8f83\u7684 hash \u5b50\u8ba1\u5212\u7684\u6267\u884c", "url": "/docs/compare/?release=11.5#11.5-85d110595b45cdff"}], "evidence": "branch-matrix"}, {"id": "CVE-2019-10208", "title": "TYPE in pg_temp executes arbitrary SQL during SECURITY DEFINER execution", "url": "https://www.postgresql.org/support/security/CVE-2019-10208/", "score": 7.5, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Given a suitable SECURITY DEFINER function, an attacker can execute arbitrary SQL under the identity of the function owner. An attack requires EXECUTE permission on the function, which must itself contain a function call having inexact argument type match. For example, length('foo'::varchar) and length('foo') are inexact, while length('foo'::text) is exact.\n\nAs part of exploiting this vulnerability, the attacker uses CREATE DOMAIN to create a type in a pg_temp schema. The attack pattern and fix are similar to that for CVE-2007-2138 .\n\nWriting SECURITY DEFINER functions continues to require following the considerations noted in the documentation:\n\nhttps://www.postgresql.org/docs/current/sql-createfunction.html#SQL-CREATEFUNCTION-SECURITY\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "description_language": "en", "fixed": "11.5", "fixed_url": "/docs/compare/?release=11.5", "affected": "11", "component": "core server", "mentions": [{"build": "11.5", "version": "11.5", "title": "\u4f7f\u7528\u51fd\u6570\u5f0f\u7c7b\u578b\u8f6c\u6362\u8bed\u6cd5\u8f6c\u6362\u4e3a\u4e34\u65f6\u7c7b\u578b\u65f6\uff0c\u8981\u6c42\u4f7f\u7528\u6a21\u5f0f\u9650\u5b9a", "url": "/docs/compare/?release=11.5#11.5-8f9963118448ea50"}], "evidence": "branch-matrix"}, {"id": "CVE-2019-10164", "title": "Stack-based buffer overflow via setting a password", "url": "https://www.postgresql.org/support/security/CVE-2019-10164/", "score": 7.5, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "An authenticated user could create a stack-based buffer overflow by changing their own password to a purpose-crafted value. In addition to the ability to crash the PostgreSQL server, this could be further exploited to execute arbitrary code as the PostgreSQL operating system account.\n\nAdditionally, a rogue server could send a specifically crafted message during the SCRAM authentication process and cause a libpq-enabled client to either crash or execute arbitrary code as the client's operating system account.\n\nThis issue is fixed by upgrading and restarting your PostgreSQL server as well as your libpq installations.\n\nThe PostgreSQL Project thanks Alexander Lakhin for reporting this problem.", "description_language": "en", "fixed": "11.4", "fixed_url": "/docs/compare/?release=11.4", "affected": "11", "component": "core server", "mentions": [{"build": "11.4", "version": "11.4", "title": "\u4fee\u590d SCRAM \u9a8c\u8bc1\u4fe1\u606f\u89e3\u6790\u4e2d\u7684\u7f13\u51b2\u533a\u6ea2\u51fa\u9690\u60a3", "url": "/docs/compare/?release=11.4#11.4-12c9b7fb1b5b9b81"}], "evidence": "branch-matrix"}, {"id": "CVE-2019-10130", "title": "Selectivity estimators bypass row security policies", "url": "https://www.postgresql.org/support/security/CVE-2019-10130/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "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 able to execute SQL queries with permissions to read a given column could craft a leaky operator that could read whatever data had been sampled from that column. If this happened to include values from rows that the user is forbidden to see by a row security policy, the user could effectively bypass the policy. This is fixed by only allowing a non-leakproof operator to use this data if there are no relevant row security policies for the table.\n\nThe PostgreSQL project thanks Dean Rasheed for reporting this problem.", "description_language": "en", "fixed": "11.3", "fixed_url": "/docs/compare/?release=11.3", "affected": "11", "component": "core server", "mentions": [{"build": "11.3", "version": "11.3", "title": "\u9632\u6b62\u901a\u8fc7\u9009\u62e9\u7387\u4f30\u8ba1\u5668\u7ed5\u8fc7\u884c\u7ea7\u5b89\u5168\u7b56\u7565", "url": "/docs/compare/?release=11.3#11.3-35d4445257f1090d"}], "evidence": "branch-matrix"}, {"id": "CVE-2019-10129", "title": "Memory disclosure in partition routing", "url": "https://www.postgresql.org/support/security/CVE-2019-10129/", "score": 6.5, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "description": "Prior to this release, a user running PostgreSQL 11 can read arbitrary bytes of server memory by executing a purpose-crafted INSERT statement to a partitioned table.", "description_language": "en", "fixed": "11.3", "fixed_url": "/docs/compare/?release=11.3", "affected": "11", "component": "core server", "mentions": [{"build": "11.3", "version": "11.3", "title": "\u907f\u514d\u62a5\u544a\u5206\u533a\u8def\u7531\u9519\u8bef\u65f6\u8bbf\u95ee\u5df2\u91ca\u653e\u7684\u5185\u5b58", "url": "/docs/compare/?release=11.3#11.3-548efb7f6f0895e6"}], "evidence": "branch-matrix"}, {"id": "CVE-2019-10128", "title": "EnterpriseDB Windows installer does not clear permissive ACL entries", "url": "https://www.postgresql.org/support/security/CVE-2019-10128/", "score": 7.0, "vector": "AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Due to both the EnterpriseDB and BigSQL Windows installers not locking down the permissions of the PostgreSQL binary installation directory and the data directory, an unprivileged Windows user account and an unprivileged PostgreSQL account could cause the PostgreSQL service account to execute arbitrary code.\n\nThis vulnerability is present in all supported versions of PostgreSQL for these installers, and possibly exists in older versions. Both sets of installers have fixed the permissions for these directories for both new and existing installations. If you have installed PostgreSQL on Windows using other methods, we advise that you check that your PostgreSQL binary directories are writable only to trusted users and that your data directories are only accessible to trusted users.\n\nThe PostgreSQL project thanks Conner Jones for reporting this problem.", "description_language": "en", "fixed": "11.3", "fixed_url": "/docs/compare/?release=11.3", "affected": "11", "component": "packaging", "mentions": [], "evidence": "branch-matrix"}, {"id": "CVE-2019-10127", "title": "BigSQL Windows installer does not clear permissive ACL entries.", "url": "https://www.postgresql.org/support/security/CVE-2019-10127/", "score": 7.0, "vector": "AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Due to both the EnterpriseDB and BigSQL Windows installers not locking down the permissions of the PostgreSQL binary installation directory and the data directory, an unprivileged Windows user account and an unprivileged PostgreSQL account could cause the PostgreSQL service account to execute arbitrary code.\n\nThis vulnerability is present in all supported versions of PostgreSQL for these installers, and possibly exists in older versions. Both sets of installers have fixed the permissions for these directories for both new and existing installations. If you have installed PostgreSQL on Windows using other methods, we advise that you check that your PostgreSQL binary directories are writable only to trusted users and that your data directories are only accessible to trusted users.\n\nThe PostgreSQL project thanks Conner Jones for reporting this problem.", "description_language": "en", "fixed": "11.3", "fixed_url": "/docs/compare/?release=11.3", "affected": "11", "component": "packaging", "mentions": [], "evidence": "branch-matrix"}, {"id": "CVE-2018-16850", "title": "SQL injection in pg_upgrade and pg_dump, via CREATE TRIGGER ... REFERENCING.", "url": "https://www.postgresql.org/support/security/CVE-2018-16850/", "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": "11.1", "fixed_url": "/docs/compare/?release=11.1", "affected": "11", "component": "core server", "mentions": [{"build": "11.1", "version": "11.1", "title": "\u786e\u4fdd pg_dump \u8f93\u51fa CREATE TRIGGER ... REFERENCING \u547d\u4ee4\u65f6\uff0c\u6b63\u786e\u5904\u7406\u8fc7\u6e21\u8868\u540d\u79f0\u7684\u5f15\u53f7", "url": "/docs/compare/?release=11.1#11.1-e615412428ea2e36"}], "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": "11.9", "version": "11.9", "title": "\u5728\u903b\u8f91\u590d\u5236 WAL \u53d1\u9001\u8fdb\u7a0b\u548c\u5e94\u7528\u5de5\u4f5c\u8fdb\u7a0b\u4e2d\u8bbe\u7f6e\u5b89\u5168\u7684 search_path", "url": "/docs/compare/?release=11.9#11.9-586f5d2cec25828f"}, {"build": "11.9", "version": "11.9", "title": "\u63d0\u9ad8 contrib \u6a21\u5757\u5b89\u88c5\u811a\u672c\u7684\u5b89\u5168\u6027", "url": "/docs/compare/?release=11.9#11.9-3ae0ed313be57173"}], "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": "11.7", "version": "11.7", "title": "\u5982\u679c\u7528\u6237\u80fd\u591f\u8bfb\u53d6\u67e5\u8be2\u4e2d\u5b9e\u9645\u6307\u5b9a\u7684\u8868\u7684\u76f8\u5e94\u5217\uff0c\u5219\u5141\u8bb8\u89c4\u5212\u5668\u5bf9\u5b50\u8868\u7edf\u8ba1\u4fe1\u606f\u5e94\u7528\u53ef\u80fd\u6cc4\u6f0f\u4fe1\u606f\u7684\u6d4b\u8bd5", "url": "/docs/compare/?release=11.7#11.7-d315236a90e042ca"}, {"build": "11.3", "version": "11.3", "title": "\u9632\u6b62\u901a\u8fc7\u9009\u62e9\u7387\u4f30\u8ba1\u5668\u7ed5\u8fc7\u884c\u7ea7\u5b89\u5168\u7b56\u7565", "url": "/docs/compare/?release=11.3#11.3-35d4445257f1090d"}], "evidence": "release-note-mention"}, {"id": "CVE-2007-2138", "title": "A vulnerability involving insecure search_path settings allows unprivileged users to gain the SQL privileges of the owner of any SECURITY DEFINER function they are allowed to call. Securing such a function requires both a software update and changes to the function definition.", "url": "https://www.postgresql.org/support/security/CVE-2007-2138/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "", "mentions": [{"build": "11.5", "version": "11.5", "title": "\u4f7f\u7528\u51fd\u6570\u5f0f\u7c7b\u578b\u8f6c\u6362\u8bed\u6cd5\u8f6c\u6362\u4e3a\u4e34\u65f6\u7c7b\u578b\u65f6\uff0c\u8981\u6c42\u4f7f\u7528\u6a21\u5f0f\u9650\u5b9a", "url": "/docs/compare/?release=11.5#11.5-8f9963118448ea50"}], "evidence": "release-note-mention"}, {"id": "CVE-2006-2313", "title": "An attacker able to submit crafted strings to an application that will embed those strings in SQL commands can use invalidly-encoded multibyte characters to bypass standard string-escaping methods, resulting in possible SQL injection.", "url": "https://www.postgresql.org/support/security/CVE-2006-2313/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "", "mentions": [{"build": "11.13", "version": "11.13", "title": "\u5728 psql \u548c\u5176\u4ed6\u5ba2\u6237\u7aef\u7a0b\u5e8f\u4e2d\uff0c\u907f\u514d\u5904\u7406\u7f16\u7801\u65e0\u6548\u7684\u6570\u636e\u65f6\u8d8a\u8fc7\u5b57\u7b26\u4e32\u672b\u5c3e", "url": "/docs/compare/?release=11.13#11.13-d8f4d1a948a0569a"}], "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": 14233503, "url": "/files/documentation/pdf/11/postgresql-11-A4.pdf"}, {"label": "US Letter PDF", "bytes": 14222535, "url": "/files/documentation/pdf/11/postgresql-11-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": ""}]}