{"format": 1, "version": {"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"}, "releases": [{"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}, {"version": "10.22", "build": "10.22", "status": "stable", "date": "2022-08-11", "source_as_of": "", "url": "/docs/compare/?release=10.22", "manual_url": "/docs/10/release-10-22.html", "source_url": "/docs/release/10.22/", "entry_count": 34, "categories": {"security": 2, "bugfix": 11, "improvement": 21}, "compatibility_count": 0, "cves": ["CVE-2022-1552", "CVE-2022-2625"], "cve_count": 2}, {"version": "10.21", "build": "10.21", "status": "stable", "date": "2022-05-12", "source_as_of": "", "url": "/docs/compare/?release=10.21", "manual_url": "/docs/10/release-10-21.html", "source_url": "/docs/release/10.21/", "entry_count": 29, "categories": {"security": 1, "improvement": 14, "bugfix": 14}, "compatibility_count": 0, "cves": ["CVE-2022-1552"], "cve_count": 1}, {"version": "10.20", "build": "10.20", "status": "stable", "date": "2022-02-10", "source_as_of": "", "url": "/docs/compare/?release=10.20", "manual_url": "/docs/10/release-10-20.html", "source_url": "/docs/release/10.20/", "entry_count": 28, "categories": {"bugfix": 13, "improvement": 15}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "10.19", "build": "10.19", "status": "stable", "date": "2021-11-11", "source_as_of": "", "url": "/docs/compare/?release=10.19", "manual_url": "/docs/10/release-10-19.html", "source_url": "/docs/release/10.19/", "entry_count": 50, "categories": {"security": 2, "bugfix": 21, "improvement": 26, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2021-23214", "CVE-2021-23222"], "cve_count": 2}, {"version": "10.18", "build": "10.18", "status": "stable", "date": "2021-08-12", "source_as_of": "", "url": "/docs/compare/?release=10.18", "manual_url": "/docs/10/release-10-18.html", "source_url": "/docs/release/10.18/", "entry_count": 52, "categories": {"security": 2, "improvement": 32, "bugfix": 17, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2006-2313", "CVE-2021-3449"], "cve_count": 2}, {"version": "10.17", "build": "10.17", "status": "stable", "date": "2021-05-13", "source_as_of": "", "url": "/docs/compare/?release=10.17", "manual_url": "/docs/10/release-10-17.html", "source_url": "/docs/release/10.17/", "entry_count": 30, "categories": {"security": 2, "improvement": 13, "bugfix": 15}, "compatibility_count": 0, "cves": ["CVE-2021-32027", "CVE-2021-32028"], "cve_count": 2}, {"version": "10.16", "build": "10.16", "status": "stable", "date": "2021-02-11", "source_as_of": "", "url": "/docs/compare/?release=10.16", "manual_url": "/docs/10/release-10-16.html", "source_url": "/docs/release/10.16/", "entry_count": 40, "categories": {"bugfix": 18, "improvement": 22}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "10.15", "build": "10.15", "status": "stable", "date": "2020-11-12", "source_as_of": "", "url": "/docs/compare/?release=10.15", "manual_url": "/docs/10/release-10-15.html", "source_url": "/docs/release/10.15/", "entry_count": 40, "categories": {"security": 4, "improvement": 22, "bugfix": 14}, "compatibility_count": 0, "cves": ["CVE-2020-25694", "CVE-2020-25695", "CVE-2020-25696"], "cve_count": 3}, {"version": "10.14", "build": "10.14", "status": "stable", "date": "2020-08-13", "source_as_of": "", "url": "/docs/compare/?release=10.14", "manual_url": "/docs/10/release-10-14.html", "source_url": "/docs/release/10.14/", "entry_count": 35, "categories": {"security": 2, "bugfix": 17, "improvement": 16}, "compatibility_count": 0, "cves": ["CVE-2018-1058", "CVE-2020-14349", "CVE-2020-14350"], "cve_count": 3}, {"version": "10.13", "build": "10.13", "status": "stable", "date": "2020-05-14", "source_as_of": "", "url": "/docs/compare/?release=10.13", "manual_url": "/docs/10/release-10-13.html", "source_url": "/docs/release/10.13/", "entry_count": 45, "categories": {"improvement": 26, "bugfix": 19}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "10.12", "build": "10.12", "status": "stable", "date": "2020-02-13", "source_as_of": "", "url": "/docs/compare/?release=10.12", "manual_url": "/docs/10/release-10-12.html", "source_url": "/docs/release/10.12/", "entry_count": 46, "categories": {"security": 1, "bugfix": 24, "improvement": 20, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2020-1720"], "cve_count": 1}, {"version": "10.11", "build": "10.11", "status": "stable", "date": "2019-11-14", "source_as_of": "", "url": "/docs/compare/?release=10.11", "manual_url": "/docs/10/release-10-11.html", "source_url": "/docs/release/10.11/", "entry_count": 59, "categories": {"bugfix": 26, "improvement": 33}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "10.10", "build": "10.10", "status": "stable", "date": "2019-08-08", "source_as_of": "", "url": "/docs/compare/?release=10.10", "manual_url": "/docs/10/release-10-10.html", "source_url": "/docs/release/10.10/", "entry_count": 31, "categories": {"security": 1, "bugfix": 13, "improvement": 17}, "compatibility_count": 0, "cves": ["CVE-2007-2138", "CVE-2019-10208"], "cve_count": 2}, {"version": "10.9", "build": "10.9", "status": "stable", "date": "2019-06-20", "source_as_of": "", "url": "/docs/compare/?release=10.9", "manual_url": "/docs/10/release-10-9.html", "source_url": "/docs/release/10.9/", "entry_count": 22, "categories": {"security": 1, "bugfix": 13, "improvement": 8}, "compatibility_count": 0, "cves": ["CVE-2019-10164"], "cve_count": 1}, {"version": "10.8", "build": "10.8", "status": "stable", "date": "2019-05-09", "source_as_of": "", "url": "/docs/compare/?release=10.8", "manual_url": "/docs/10/release-10-8.html", "source_url": "/docs/release/10.8/", "entry_count": 43, "categories": {"security": 1, "bugfix": 27, "improvement": 14, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2017-7484", "CVE-2019-10130"], "cve_count": 2}, {"version": "10.7", "build": "10.7", "status": "stable", "date": "2019-02-14", "source_as_of": "", "url": "/docs/compare/?release=10.7", "manual_url": "/docs/10/release-10-7.html", "source_url": "/docs/release/10.7/", "entry_count": 54, "categories": {"bugfix": 26, "improvement": 28}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "10.6", "build": "10.6", "status": "stable", "date": "2018-11-08", "source_as_of": "", "url": "/docs/compare/?release=10.6", "manual_url": "/docs/10/release-10-6.html", "source_url": "/docs/release/10.6/", "entry_count": 71, "categories": {"security": 1, "bugfix": 34, "improvement": 36}, "compatibility_count": 0, "cves": ["CVE-2018-16850"], "cve_count": 1}, {"version": "10.5", "build": "10.5", "status": "stable", "date": "2018-08-09", "source_as_of": "", "url": "/docs/compare/?release=10.5", "manual_url": "/docs/10/release-10-5.html", "source_url": "/docs/release/10.5/", "entry_count": 47, "categories": {"security": 2, "improvement": 21, "bugfix": 22, "performance": 2}, "compatibility_count": 0, "cves": ["CVE-2018-10915", "CVE-2018-10925"], "cve_count": 2}, {"version": "10.4", "build": "10.4", "status": "stable", "date": "2018-05-10", "source_as_of": "", "url": "/docs/compare/?release=10.4", "manual_url": "/docs/10/release-10-4.html", "source_url": "/docs/release/10.4/", "entry_count": 53, "categories": {"security": 1, "bugfix": 30, "improvement": 22}, "compatibility_count": 0, "cves": ["CVE-2018-1115"], "cve_count": 1}, {"version": "10.3", "build": "10.3", "status": "stable", "date": "2018-03-01", "source_as_of": "", "url": "/docs/compare/?release=10.3", "manual_url": "/docs/10/release-10-3.html", "source_url": "/docs/release/10.3/", "entry_count": 11, "categories": {"security": 2, "improvement": 3, "bugfix": 6}, "compatibility_count": 0, "cves": ["CVE-2018-1058"], "cve_count": 1}, {"version": "10.2", "build": "10.2", "status": "stable", "date": "2018-02-08", "source_as_of": "", "url": "/docs/compare/?release=10.2", "manual_url": "/docs/10/release-10-2.html", "source_url": "/docs/release/10.2/", "entry_count": 65, "categories": {"security": 2, "bugfix": 33, "improvement": 30}, "compatibility_count": 0, "cves": ["CVE-2018-1052", "CVE-2018-1053"], "cve_count": 2}, {"version": "10.1", "build": "10.1", "status": "stable", "date": "2017-11-09", "source_as_of": "", "url": "/docs/compare/?release=10.1", "manual_url": "/docs/10/release-10-1.html", "source_url": "/docs/release/10.1/", "entry_count": 37, "categories": {"security": 3, "bugfix": 18, "improvement": 16}, "compatibility_count": 0, "cves": ["CVE-2017-12172", "CVE-2017-15098", "CVE-2017-15099"], "cve_count": 3}, {"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}], "initial_entries": [{"id": "10.0-6d840e8773b48bcf", "cves": [], "html": "<p>\u4f7f\u7528 <span>pg_upgrade</span> \u4ece\u4efb\u4f55\u5148\u524d\u7684 <span>PostgreSQL</span> \u5927\u7248\u672c\u5347\u7ea7\u540e\uff0c\u5fc5\u987b\u91cd\u5efa hash \u7d22\u5f15\uff08Mithun Cy\uff0cRobert Haas\uff0cAmit Kapila\uff09</p>\n<p>hash \u7d22\u5f15\u7684\u91cd\u5927\u6539\u8fdb\u4f7f\u8fd9\u4e00\u8981\u6c42\u6210\u4e3a\u5fc5\u8981\u3002<span>pg_upgrade</span> \u4f1a\u521b\u5efa\u4e00\u4e2a\u811a\u672c\u6765\u534f\u52a9\u5b8c\u6210\u6b64\u64cd\u4f5c\u3002</p>", "text": "\u4f7f\u7528 pg_upgrade \u4ece\u4efb\u4f55\u5148\u524d\u7684 PostgreSQL \u5927\u7248\u672c\u5347\u7ea7\u540e\uff0c\u5fc5\u987b\u91cd\u5efa hash \u7d22\u5f15\uff08Mithun Cy\uff0cRobert Haas\uff0cAmit Kapila\uff09 hash \u7d22\u5f15\u7684\u91cd\u5927\u6539\u8fdb\u4f7f\u8fd9\u4e00\u8981\u6c42\u6210\u4e3a\u5fc5\u8981\u3002pg_upgrade \u4f1a\u521b\u5efa\u4e00\u4e2a\u811a\u672c\u6765\u534f\u52a9\u5b8c\u6210\u6b64\u64cd\u4f5c\u3002", "title": "\u4f7f\u7528 pg_upgrade \u4ece\u4efb\u4f55\u5148\u524d\u7684 PostgreSQL \u5927\u7248\u672c\u5347\u7ea7\u540e\uff0c\u5fc5\u987b\u91cd\u5efa hash \u7d22\u5f15", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "979cd752f8f4fc06fd9ae5eb92d7adcfbf373ba63388989ff024eea414a78f2c", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["620b49a16"], ["a95410e2e"], ["ea69a0dea"]], "identity_text": "Hash indexes must be rebuilt after pg_upgrade-ing from any previous major PostgreSQL version (Mithun Cy, Robert Haas, Amit Kapila) Major hash index improvements necessitated this requirement. pg_upgrade will create a script to assist with this.", "commit_aliases": ["620b49a16", "a95410e2e", "ea69a0dea"], "source_commits": ["620b49a16", "a95410e2e", "ea69a0dea"], "source_entry_id": "10.0/migration/001", "db_id": "a160d4c3b43ec4e671044c3176ac1458", "patch_ids": ["075f3ebb20a2eda8014f73811801ac39", "a97771610174f839f70cdb13dca22ba7", "cf52f7bc92da3e9c0404fc6b0887717c"], "statement_hash": "969273d87717dca7d30875343075baf2c6bcef69cb275fc4242620f76180075e", "relations": [{"rule": 2, "type": "related", "target": "1b1b0c796b5562126f6326ed5ed1fffe", "evidence": {"same_day": true, "patch_ids": ["075f3ebb20a2eda8014f73811801ac39", "cf52f7bc92da3e9c0404fc6b0887717c"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-6d840e8773b48bcf", "migration": true}, {"id": "10.0-5de7c7e2839ed982", "cves": [], "html": "<p>\u5c06\u9884\u5199\u5f0f\u65e5\u5fd7\u76ee\u5f55 <code>pg_xlog</code> \u91cd\u547d\u540d\u4e3a <a href=\"/docs/10/wal.html\" title=\"\u7b2c\u00a030\u00a0\u7ae0\u00a0\u53ef\u9760\u6027\u4e0e\u9884\u5199\u5f0f\u65e5\u5fd7\"><code>pg_wal</code></a>\uff0c\u5c06\u4e8b\u52a1\u72b6\u6001\u76ee\u5f55 <code>pg_clog</code> \u91cd\u547d\u540d\u4e3a <code>pg_xact</code>\uff08Michael Paquier\uff09</p>\n<p>\u7528\u6237\u6709\u65f6\u4f1a\u8bef\u4ee5\u4e3a\u8fd9\u4e9b\u76ee\u5f55\u53ea\u5305\u542b\u65e0\u5173\u7d27\u8981\u7684\u65e5\u5fd7\u6587\u4ef6\uff0c\u8fdb\u800c\u624b\u52a8\u5220\u9664\u9884\u5199\u5f0f\u65e5\u5fd7\u6587\u4ef6\u6216\u4e8b\u52a1\u72b6\u6001\u6587\u4ef6\uff0c\u9020\u6210\u65e0\u6cd5\u6062\u590d\u7684\u6570\u636e\u4e22\u5931\u3002\u8fd9\u4e9b\u540d\u79f0\u7684\u4fee\u6539\u65e8\u5728\u51cf\u5c11\u4eca\u540e\u53d1\u751f\u6b64\u7c7b\u9519\u8bef\u3002</p>", "text": "\u5c06\u9884\u5199\u5f0f\u65e5\u5fd7\u76ee\u5f55 pg_xlog \u91cd\u547d\u540d\u4e3a pg_wal\uff0c\u5c06\u4e8b\u52a1\u72b6\u6001\u76ee\u5f55 pg_clog \u91cd\u547d\u540d\u4e3a pg_xact\uff08Michael Paquier\uff09 \u7528\u6237\u6709\u65f6\u4f1a\u8bef\u4ee5\u4e3a\u8fd9\u4e9b\u76ee\u5f55\u53ea\u5305\u542b\u65e0\u5173\u7d27\u8981\u7684\u65e5\u5fd7\u6587\u4ef6\uff0c\u8fdb\u800c\u624b\u52a8\u5220\u9664\u9884\u5199\u5f0f\u65e5\u5fd7\u6587\u4ef6\u6216\u4e8b\u52a1\u72b6\u6001\u6587\u4ef6\uff0c\u9020\u6210\u65e0\u6cd5\u6062\u590d\u7684\u6570\u636e\u4e22\u5931\u3002\u8fd9\u4e9b\u540d\u79f0\u7684\u4fee\u6539\u65e8\u5728\u51cf\u5c11\u4eca\u540e\u53d1\u751f\u6b64\u7c7b\u9519\u8bef\u3002", "title": "\u5c06\u9884\u5199\u5f0f\u65e5\u5fd7\u76ee\u5f55 pg_xlog \u91cd\u547d\u540d\u4e3a pg_wal\uff0c\u5c06\u4e8b\u52a1\u72b6\u6001\u76ee\u5f55 pg_clog \u91cd\u547d\u540d\u4e3a pg_xact", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "af9ee2b3d2278d7550a9621f7841769259578e44d733b4d47f29de86fb08e522", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["88e66d193"], ["f82ec32ac"]], "identity_text": "Rename write-ahead log directory pg_xlog to pg_wal, and rename transaction status directory pg_clog to pg_xact (Michael Paquier) Users have occasionally thought that these directories contained only inessential log files, and proceeded to remove write-ahead log files or transaction status files manually, causing irrecoverable data loss. These name changes are intended to discourage such errors in future.", "commit_aliases": ["88e66d193", "f82ec32ac"], "source_commits": ["88e66d193", "f82ec32ac"], "source_entry_id": "10.0/migration/002", "db_id": "80285bd02246ccce799ef0363b672bcc", "patch_ids": ["d84e8e8f606e3e51f78f2181a479d742", "f93606131cb1e0a019c5b3f5c7532feb"], "statement_hash": "ec76b024b34c1e50ceda2ce53bad68b37a0edfeed2ef948cf3e48222bc181b3f", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-5de7c7e2839ed982", "migration": true}, {"id": "10.0-2117f774f077ec2c", "cves": [], "html": "<p>\u91cd\u547d\u540d\u540d\u79f0\u4e2d\u5f15\u7528 <span>\u201c<span>xlog</span>\u201d</span> \u7684 <acronym>SQL</acronym> \u51fd\u6570\u3001\u5de5\u5177\u548c\u9009\u9879\uff0c\u6539\u7528 <span>\u201c<span>wal</span>\u201d</span>\uff08Robert Haas\uff09</p>\n<p>\u4f8b\u5982\uff0c<code>pg_switch_xlog()</code> \u6539\u4e3a <code>pg_switch_wal()</code>\uff0c<span>pg_receivexlog</span> \u6539\u4e3a <span>pg_receivewal</span>\uff0c<code>--xlogdir</code> \u6539\u4e3a <code>--waldir</code>\u3002\u8fd9\u662f\u4e3a\u4e86\u4e0e <code>pg_xlog</code> \u76ee\u5f55\u540d\u7684\u53d8\u66f4\u4fdd\u6301\u4e00\u81f4\uff1b\u603b\u4f53\u800c\u8a00\uff0c\u6240\u6709\u9762\u5411\u7528\u6237\u7684\u4f4d\u7f6e\u90fd\u4e0d\u518d\u4f7f\u7528 <span>\u201c<span>xlog</span>\u201d</span> \u8fd9\u4e00\u672f\u8bed\u3002</p>", "text": "\u91cd\u547d\u540d\u540d\u79f0\u4e2d\u5f15\u7528 \u201cxlog\u201d \u7684 SQL \u51fd\u6570\u3001\u5de5\u5177\u548c\u9009\u9879\uff0c\u6539\u7528 \u201cwal\u201d\uff08Robert Haas\uff09 \u4f8b\u5982\uff0cpg_switch_xlog() \u6539\u4e3a pg_switch_wal()\uff0cpg_receivexlog \u6539\u4e3a pg_receivewal\uff0c--xlogdir \u6539\u4e3a --waldir\u3002\u8fd9\u662f\u4e3a\u4e86\u4e0e pg_xlog \u76ee\u5f55\u540d\u7684\u53d8\u66f4\u4fdd\u6301\u4e00\u81f4\uff1b\u603b\u4f53\u800c\u8a00\uff0c\u6240\u6709\u9762\u5411\u7528\u6237\u7684\u4f4d\u7f6e\u90fd\u4e0d\u518d\u4f7f\u7528 \u201cxlog\u201d \u8fd9\u4e00\u672f\u8bed\u3002", "title": "\u91cd\u547d\u540d\u540d\u79f0\u4e2d\u5f15\u7528 \u201cxlog\u201d \u7684 SQL \u51fd\u6570\u3001\u5de5\u5177\u548c\u9009\u9879\uff0c\u6539\u7528 \u201cwal\u201d", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "c4c428d93e92078d48f5da2f4fadfe752783c1b7355bc4baa1eeb7515596a8b1", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["0dfa89ba2"], ["62e8b3875"], ["806091c96"], ["85c11324c"]], "identity_text": "Rename SQL functions, tools, and options that reference xlog to wal (Robert Haas) For example, pg_switch_xlog() becomes pg_switch_wal(), pg_receivexlog becomes pg_receivewal, and --xlogdir becomes --waldir. This is for consistency with the change of the pg_xlog directory name; in general, the xlog terminology is no longer used in any user-facing places.", "commit_aliases": ["0dfa89ba2", "62e8b3875", "806091c96", "85c11324c"], "source_commits": ["0dfa89ba2", "62e8b3875", "806091c96", "85c11324c"], "source_entry_id": "10.0/migration/003", "db_id": "f81b235fd974a45e97dce4c71daf943f", "patch_ids": ["6a4d6b020922a3a887ea412cc3682599", "9eb77ae95f5e7e827015a438c271c6be", "ba626d839bd9a2ed87290e2758dfae8a", "f09a894784bf6aa7890547a380d4374c"], "statement_hash": "8c8f22793476d0398db4e84e1220ae39641b2bd3861c76152f4d514e518c1f41", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-2117f774f077ec2c", "migration": true}, {"id": "10.0-5073462f4958ca08", "cves": [], "html": "<p>\u91cd\u547d\u540d\u4e0e <acronym>WAL</acronym> \u76f8\u5173\u7684\u51fd\u6570\u548c\u89c6\u56fe\uff0c\u4f7f\u7528 <code>lsn</code> \u4ee3\u66ff <code>location</code>\uff08David Rowley\uff09</p>\n<p>\u4ee5\u524d\uff0c\u8fd9\u4e24\u79cd\u672f\u8bed\u7684\u4f7f\u7528\u5e76\u4e0d\u4e00\u81f4\u3002</p>", "text": "\u91cd\u547d\u540d\u4e0e WAL \u76f8\u5173\u7684\u51fd\u6570\u548c\u89c6\u56fe\uff0c\u4f7f\u7528 lsn \u4ee3\u66ff location\uff08David Rowley\uff09 \u4ee5\u524d\uff0c\u8fd9\u4e24\u79cd\u672f\u8bed\u7684\u4f7f\u7528\u5e76\u4e0d\u4e00\u81f4\u3002", "title": "\u91cd\u547d\u540d\u4e0e WAL \u76f8\u5173\u7684\u51fd\u6570\u548c\u89c6\u56fe\uff0c\u4f7f\u7528 lsn \u4ee3\u66ff location", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "17daf2d5977844d28ed5fe857912f3fa1b77b45529e16795c9affd1449833d42", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["d10c626de"]], "identity_text": "Rename WAL-related functions and views to use lsn instead of location (David Rowley) There was previously an inconsistent mixture of the two terminologies.", "commit_aliases": ["d10c626de"], "source_commits": ["d10c626de"], "source_entry_id": "10.0/migration/004", "db_id": "68e45165420d584126ae831afc42c08f", "patch_ids": ["1aeece2c2dce8568ac68eb8a4d85586d"], "statement_hash": "005c8de951edcc16c5d18e1b4b864979fe39b0b3e6d8a6465eedb1f1c575886e", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-5073462f4958ca08", "migration": true}, {"id": "10.0-29b998a777d54533", "cves": [], "html": "<p>\u66f4\u6539\u67e5\u8be2 <code>SELECT</code> \u5217\u8868\u4e2d\u96c6\u5408\u8fd4\u56de\u51fd\u6570\u7684\u5b9e\u73b0\uff08Andres Freund\uff09</p>\n<p>\u73b0\u5728\uff0c\u96c6\u5408\u8fd4\u56de\u51fd\u6570\u4f1a\u5728 <code>SELECT</code> \u5217\u8868\u4e2d\u7684\u6807\u91cf\u8868\u8fbe\u5f0f\u6c42\u503c\u4e4b\u524d\u6c42\u503c\uff0c\u6548\u679c\u7c7b\u4f3c\u4e8e\u5c06\u5b83\u4eec\u653e\u5728 <code>LATERAL FROM</code> \u5b50\u53e5\u9879\u4e2d\u3002\u8fd9\u4f7f\u5b58\u5728\u591a\u4e2a\u96c6\u5408\u8fd4\u56de\u51fd\u6570\u65f6\u7684\u8bed\u4e49\u66f4\u5408\u7406\u3002\u5982\u679c\u5b83\u4eec\u8fd4\u56de\u7684\u884c\u6570\u4e0d\u540c\uff0c\u4f1a\u901a\u8fc7\u8865\u5145\u7a7a\u503c\u5c06\u8f83\u77ed\u7684\u7ed3\u679c\u6269\u5c55\u5230\u6700\u957f\u7ed3\u679c\u7684\u957f\u5ea6\u3002\u4ee5\u524d\uff0c\u5404\u4e2a\u7ed3\u679c\u4f1a\u5faa\u73af\u4ea7\u751f\uff0c\u76f4\u5230\u5b83\u4eec\u540c\u65f6\u7ed3\u675f\uff0c\u4ea7\u751f\u7684\u884c\u6570\u7b49\u4e8e\u5404\u51fd\u6570\u5468\u671f\u7684\u6700\u5c0f\u516c\u500d\u6570\u3002\u6b64\u5916\uff0c\u73b0\u5728\u7981\u6b62\u5728 <code>CASE</code> \u548c <code>COALESCE</code> \u7ed3\u6784\u5185\u4f7f\u7528\u96c6\u5408\u8fd4\u56de\u51fd\u6570\u3002\u66f4\u591a\u4fe1\u606f\u53c2\u89c1<a href=\"/docs/10/xfunc-sql.html#XFUNC-SQL-FUNCTIONS-RETURNING-SET\" title=\"37.4.8.\u00a0\u8fd4\u56de\u96c6\u5408\u7684SQL\u51fd\u6570\">\u7b2c\u00a037.4.8\u00a0\u8282</a>\u3002</p>", "text": "\u66f4\u6539\u67e5\u8be2 SELECT \u5217\u8868\u4e2d\u96c6\u5408\u8fd4\u56de\u51fd\u6570\u7684\u5b9e\u73b0\uff08Andres Freund\uff09 \u73b0\u5728\uff0c\u96c6\u5408\u8fd4\u56de\u51fd\u6570\u4f1a\u5728 SELECT \u5217\u8868\u4e2d\u7684\u6807\u91cf\u8868\u8fbe\u5f0f\u6c42\u503c\u4e4b\u524d\u6c42\u503c\uff0c\u6548\u679c\u7c7b\u4f3c\u4e8e\u5c06\u5b83\u4eec\u653e\u5728 LATERAL FROM \u5b50\u53e5\u9879\u4e2d\u3002\u8fd9\u4f7f\u5b58\u5728\u591a\u4e2a\u96c6\u5408\u8fd4\u56de\u51fd\u6570\u65f6\u7684\u8bed\u4e49\u66f4\u5408\u7406\u3002\u5982\u679c\u5b83\u4eec\u8fd4\u56de\u7684\u884c\u6570\u4e0d\u540c\uff0c\u4f1a\u901a\u8fc7\u8865\u5145\u7a7a\u503c\u5c06\u8f83\u77ed\u7684\u7ed3\u679c\u6269\u5c55\u5230\u6700\u957f\u7ed3\u679c\u7684\u957f\u5ea6\u3002\u4ee5\u524d\uff0c\u5404\u4e2a\u7ed3\u679c\u4f1a\u5faa\u73af\u4ea7\u751f\uff0c\u76f4\u5230\u5b83\u4eec\u540c\u65f6\u7ed3\u675f\uff0c\u4ea7\u751f\u7684\u884c\u6570\u7b49\u4e8e\u5404\u51fd\u6570\u5468\u671f\u7684\u6700\u5c0f\u516c\u500d\u6570\u3002\u6b64\u5916\uff0c\u73b0\u5728\u7981\u6b62\u5728 CASE \u548c COALESCE \u7ed3\u6784\u5185\u4f7f\u7528\u96c6\u5408\u8fd4\u56de\u51fd\u6570\u3002\u66f4\u591a\u4fe1\u606f\u53c2\u89c1\u7b2c 37.4.8 \u8282\u3002", "title": "\u66f4\u6539\u67e5\u8be2 SELECT \u5217\u8868\u4e2d\u96c6\u5408\u8fd4\u56de\u51fd\u6570\u7684\u5b9e\u73b0", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "bb136de4facba5029c9d4b6528158e1aeda2f4d7ecbdd71359d5c6747d1a94f9", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["0436f6bde"], ["69f4b9c85"], ["d43a619c6"], ["f13a1277a"]], "identity_text": "Change the implementation of set-returning functions appearing in a query's SELECT list (Andres Freund) Set-returning functions are now evaluated before evaluation of scalar expressions in the SELECT list, much as though they had been placed in a LATERAL FROM-clause item. This allows saner semantics for cases where multiple set-returning functions are present. If they return different numbers of rows, the shorter results are extended to match the longest result by adding nulls. Previously the results were cycled until they all terminated at the same time, producing a number of rows equal to the least common multiple of the functions' periods. In addition, set-returning functions are now disallowed within CASE and COALESCE constructs. For more information see xfunc-sql-functions-returning-set .", "commit_aliases": ["0436f6bde", "69f4b9c85", "d43a619c6", "f13a1277a"], "source_commits": ["0436f6bde", "69f4b9c85", "d43a619c6", "f13a1277a"], "source_entry_id": "10.0/migration/005", "db_id": "23e81de3f2d06b2bd95d2c86ad5b36d2", "patch_ids": ["07c35ecbc88a619c2fbc8482992831c2", "32917686c9706fdccf5c8db8b215e42b", "63d3894886876aef59f30afd270d8764", "7352d8415df57ef931ad4240504b521c"], "statement_hash": "fe3da8cd949a1c3f369a58b5f6bfd555df52aefb5ef1f3b21ac1c19d681be8f9", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-29b998a777d54533", "migration": true}, {"id": "10.0-393cdb7d8c98cfc6", "cves": [], "html": "<p>\u5728 <code>UPDATE ... SET (<em><code>column_list</code></em>) = <em><code>row_constructor</code></em></code> \u4e2d\u4f7f\u7528\u6807\u51c6\u884c\u6784\u9020\u5668\u8bed\u6cd5\uff08Tom Lane\uff09</p>\n<p>\u73b0\u5728\uff0c<em><code>row_constructor</code></em> \u53ef\u4ee5\u4ee5\u5173\u952e\u5b57 <code>ROW</code> \u5f00\u5934\uff1b\u4ee5\u524d\u5fc5\u987b\u7701\u7565\u8be5\u5173\u952e\u5b57\u3002\u5982\u679c <em><code>column_list</code></em> \u4e2d\u53ea\u6709\u4e00\u4e2a\u5217\u540d\uff0c\u5219 <em><code>row_constructor</code></em> \u73b0\u5728\u5fc5\u987b\u4f7f\u7528 <code>ROW</code> \u5173\u952e\u5b57\uff0c\u5426\u5219\u5b83\u5c31\u4e0d\u662f\u6709\u6548\u7684\u884c\u6784\u9020\u5668\uff0c\u800c\u53ea\u662f\u5e26\u62ec\u53f7\u7684\u8868\u8fbe\u5f0f\u3002\u6b64\u5916\uff0c<em><code>row_constructor</code></em> \u5185\u51fa\u73b0\u7684 <code><em><code>table_name</code></em>.*</code> \u73b0\u5728\u4f1a\u5c55\u5f00\u4e3a\u591a\u5217\uff0c\u4e0e <em><code>row_constructor</code></em> \u5728\u5176\u4ed6\u573a\u666f\u4e2d\u7684\u7528\u6cd5\u4e00\u81f4\u3002</p>", "text": "\u5728 UPDATE ... SET (column_list) = row_constructor \u4e2d\u4f7f\u7528\u6807\u51c6\u884c\u6784\u9020\u5668\u8bed\u6cd5\uff08Tom Lane\uff09 \u73b0\u5728\uff0crow_constructor \u53ef\u4ee5\u4ee5\u5173\u952e\u5b57 ROW \u5f00\u5934\uff1b\u4ee5\u524d\u5fc5\u987b\u7701\u7565\u8be5\u5173\u952e\u5b57\u3002\u5982\u679c column_list \u4e2d\u53ea\u6709\u4e00\u4e2a\u5217\u540d\uff0c\u5219 row_constructor \u73b0\u5728\u5fc5\u987b\u4f7f\u7528 ROW \u5173\u952e\u5b57\uff0c\u5426\u5219\u5b83\u5c31\u4e0d\u662f\u6709\u6548\u7684\u884c\u6784\u9020\u5668\uff0c\u800c\u53ea\u662f\u5e26\u62ec\u53f7\u7684\u8868\u8fbe\u5f0f\u3002\u6b64\u5916\uff0crow_constructor \u5185\u51fa\u73b0\u7684 table_name.* \u73b0\u5728\u4f1a\u5c55\u5f00\u4e3a\u591a\u5217\uff0c\u4e0e row_constructor \u5728\u5176\u4ed6\u573a\u666f\u4e2d\u7684\u7528\u6cd5\u4e00\u81f4\u3002", "title": "\u5728 UPDATE ... SET (column_list) = row_constructor \u4e2d\u4f7f\u7528\u6807\u51c6\u884c\u6784\u9020\u5668\u8bed\u6cd5", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "33ccc5a154f771784f36ba351506c14d35799245a7a71972c7ee54a8fe4d6293", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["906bfcad7"]], "identity_text": "Use standard row constructor syntax in UPDATE ... SET (column_list) = row_constructor (Tom Lane) The row_constructor can now begin with the keyword ROW; previously that had to be omitted. If just one column name appears in the column_list, then the row_constructor now must use the ROW keyword, since otherwise it is not a valid row constructor but just a parenthesized expression. Also, an occurrence of table_name.* within the row_constructor is now expanded into multiple columns, as occurs in other uses of row_constructors.", "commit_aliases": ["906bfcad7"], "source_commits": ["906bfcad7"], "source_entry_id": "10.0/migration/006", "db_id": "a498a1b4841b05650f1acb09c9006c64", "patch_ids": ["3a968bb770d24690a69ff5e83154e464"], "statement_hash": "4ae4fb49cc99d07123e4f0966a2be6b676628f76f02a9bb8d86f0b79c2e42d30", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-393cdb7d8c98cfc6", "migration": true}, {"id": "10.0-17147a94ff949ab6", "cves": [], "html": "<p>\u5f53 <code>ALTER TABLE ... ADD PRIMARY KEY</code> \u5c06\u5217\u6807\u8bb0\u4e3a <code>NOT NULL</code> \u65f6\uff0c\u6b64\u53d8\u66f4\u73b0\u5728\u4e5f\u4f1a\u4f20\u64ad\u5230\u7ee7\u627f\u5b50\u8868\uff08Michael Paquier\uff09</p>", "text": "\u5f53 ALTER TABLE ... ADD PRIMARY KEY \u5c06\u5217\u6807\u8bb0\u4e3a NOT NULL \u65f6\uff0c\u6b64\u53d8\u66f4\u73b0\u5728\u4e5f\u4f1a\u4f20\u64ad\u5230\u7ee7\u627f\u5b50\u8868\uff08Michael Paquier\uff09", "title": "\u5f53 ALTER TABLE ... ADD PRIMARY KEY \u5c06\u5217\u6807\u8bb0\u4e3a NOT NULL \u65f6\uff0c\u6b64\u53d8\u66f4\u73b0\u5728\u4e5f\u4f1a\u4f20\u64ad\u5230\u7ee7\u627f\u5b50\u8868", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "ab46d8e1fc2f90d077237c1323ee5fb5c245eec43e7cdcbc9ca1a3761bd6cb02", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["c30f1770a"]], "identity_text": "When ALTER TABLE ... ADD PRIMARY KEY marks columns NOT NULL, that change now propagates to inheritance child tables as well (Michael Paquier)", "commit_aliases": ["c30f1770a"], "source_commits": ["c30f1770a"], "source_entry_id": "10.0/migration/007", "db_id": "f826d00cf37c0e2378b8e4e0e4127667", "patch_ids": ["671babdafa42647967723d2e4906d9b5"], "statement_hash": "29cb1595dbaca8e7b34496ec97f0c1db2cebf19a7081e8ef32c8554e0b6cf1f0", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-17147a94ff949ab6", "migration": true}, {"id": "10.0-e9a11f32fba2d59e", "cves": [], "html": "<p>\u9632\u6b62\u8bed\u53e5\u7ea7\u89e6\u53d1\u5668\u5728\u6bcf\u6761\u8bed\u53e5\u4e2d\u89e6\u53d1\u591a\u6b21\uff08Tom Lane\uff09</p>\n<p>\u5982\u679c\u53ef\u5199 CTE \u66f4\u65b0\u7684\u8868\u4e5f\u88ab\u5305\u542b\u5b83\u7684\u8bed\u53e5\u6216\u53e6\u4e00\u4e2a\u53ef\u5199 CTE \u66f4\u65b0\uff0c<code>BEFORE STATEMENT</code> \u6216 <code>AFTER STATEMENT</code> \u89e6\u53d1\u5668\u5c31\u4f1a\u89e6\u53d1\u591a\u6b21\u3002\u6b64\u5916\uff0c\u5982\u679c\u53d7\u5916\u952e\u5b9e\u65bd\u52a8\u4f5c\uff08\u5982 <code>ON DELETE CASCADE</code>\uff09\u5f71\u54cd\u7684\u8868\u4e0a\u5b58\u5728\u8bed\u53e5\u7ea7\u89e6\u53d1\u5668\uff0c\u5b83\u4eec\u53ef\u80fd\u5728\u6bcf\u6761\u5916\u5c42 SQL \u8bed\u53e5\u4e2d\u89e6\u53d1\u591a\u6b21\u3002\u8fd9\u8fdd\u53cd SQL \u6807\u51c6\uff0c\u56e0\u6b64\u4e88\u4ee5\u66f4\u6539\u3002</p>", "text": "\u9632\u6b62\u8bed\u53e5\u7ea7\u89e6\u53d1\u5668\u5728\u6bcf\u6761\u8bed\u53e5\u4e2d\u89e6\u53d1\u591a\u6b21\uff08Tom Lane\uff09 \u5982\u679c\u53ef\u5199 CTE \u66f4\u65b0\u7684\u8868\u4e5f\u88ab\u5305\u542b\u5b83\u7684\u8bed\u53e5\u6216\u53e6\u4e00\u4e2a\u53ef\u5199 CTE \u66f4\u65b0\uff0cBEFORE STATEMENT \u6216 AFTER STATEMENT \u89e6\u53d1\u5668\u5c31\u4f1a\u89e6\u53d1\u591a\u6b21\u3002\u6b64\u5916\uff0c\u5982\u679c\u53d7\u5916\u952e\u5b9e\u65bd\u52a8\u4f5c\uff08\u5982 ON DELETE CASCADE\uff09\u5f71\u54cd\u7684\u8868\u4e0a\u5b58\u5728\u8bed\u53e5\u7ea7\u89e6\u53d1\u5668\uff0c\u5b83\u4eec\u53ef\u80fd\u5728\u6bcf\u6761\u5916\u5c42 SQL \u8bed\u53e5\u4e2d\u89e6\u53d1\u591a\u6b21\u3002\u8fd9\u8fdd\u53cd SQL \u6807\u51c6\uff0c\u56e0\u6b64\u4e88\u4ee5\u66f4\u6539\u3002", "title": "\u9632\u6b62\u8bed\u53e5\u7ea7\u89e6\u53d1\u5668\u5728\u6bcf\u6761\u8bed\u53e5\u4e2d\u89e6\u53d1\u591a\u6b21", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "719038a164abfcc20ab22db979b15459926a2c90cde090d25ca13638dd6829db", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["54d4d0ff6"], ["5cc234931"]], "identity_text": "Prevent statement-level triggers from firing more than once per statement (Tom Lane) Cases involving writable CTEs updating the same table updated by the containing statement, or by another writable CTE, fired BEFORE STATEMENT or AFTER STATEMENT triggers more than once. Also, if there were statement-level triggers on a table affected by a foreign key enforcement action (such as ON DELETE CASCADE), they could fire more than once per outer SQL statement. This is contrary to the SQL standard, so change it.", "commit_aliases": ["54d4d0ff6", "5cc234931"], "source_commits": ["54d4d0ff6", "5cc234931"], "source_entry_id": "10.0/migration/008", "db_id": "18c9845b9c3de16f35f82dd212309209", "patch_ids": ["858538d96ec7c701a4e322c69cc3d229", "a9f553e00c3cab464383af8d9dced430"], "statement_hash": "a1884de8797eb1cd0b90a4cbb4c2bfc17ac5bf24e52b62c5d977f5407a46586a", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-e9a11f32fba2d59e", "migration": true}, {"id": "10.0-fefc93268b3da86d", "cves": [], "html": "<p>\u5c06\u5e8f\u5217\u7684\u5143\u6570\u636e\u5b57\u6bb5\u79fb\u5165\u65b0\u7684 <a href=\"/docs/10/catalog-pg-sequence.html\" title=\"51.46.\u00a0pg_sequence\"><code>pg_sequence</code></a> \u7cfb\u7edf\u76ee\u5f55\uff08Peter Eisentraut\uff09</p>\n<p>\u5e8f\u5217\u5173\u7cfb\u73b0\u5728\u53ea\u5b58\u50a8 <code>nextval()</code> \u53ef\u4ee5\u4fee\u6539\u7684\u5b57\u6bb5\uff0c\u5373 <code>last_value</code>\u3001<code>log_cnt</code> \u548c <code>is_called</code>\u3002\u8d77\u59cb\u503c\u548c\u589e\u91cf\u7b49\u5176\u4ed6\u5e8f\u5217\u5c5e\u6027\u4fdd\u5b58\u5728 <code>pg_sequence</code> \u76ee\u5f55\u7684\u5bf9\u5e94\u884c\u4e2d\u3002<code>ALTER SEQUENCE</code> \u7684\u66f4\u65b0\u73b0\u5728\u5b8c\u5168\u5177\u6709\u4e8b\u52a1\u6027\uff0c\u8fd9\u610f\u5473\u7740\u5e8f\u5217\u4f1a\u88ab\u9501\u5b9a\u5230\u63d0\u4ea4\u4e3a\u6b62\u3002<code>nextval()</code> \u548c <code>setval()</code> \u51fd\u6570\u4ecd\u7136\u4e0d\u5177\u6709\u4e8b\u52a1\u6027\u3002</p>\n<p>\u6b64\u9879\u4fee\u6539\u5f15\u5165\u7684\u4e3b\u8981\u4e0d\u517c\u5bb9\u4e4b\u5904\u5728\u4e8e\uff0c\u4ece\u5e8f\u5217\u5173\u7cfb\u4e2d\u67e5\u8be2\u65f6\uff0c\u73b0\u5728\u53ea\u4f1a\u8fd4\u56de\u4e0a\u8ff0\u4e09\u4e2a\u5b57\u6bb5\u3002\u8981\u83b7\u53d6\u5e8f\u5217\u7684\u5176\u4ed6\u5c5e\u6027\uff0c\u5e94\u7528\u5fc5\u987b\u67e5\u8be2 <code>pg_sequence</code>\u3002\u65b0\u7684\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/10/view-pg-sequences.html\" title=\"51.84.\u00a0pg_sequences\"><code>pg_sequences</code></a> \u4e5f\u53ef\u7528\u4e8e\u6b64\u76ee\u7684\uff1b\u5b83\u63d0\u4f9b\u7684\u5217\u540d\u4e0e\u73b0\u6709\u4ee3\u7801\u66f4\u4e3a\u517c\u5bb9\u3002</p>\n<p>\u6b64\u5916\uff0c\u4e3a <code>SERIAL</code> \u5217\u521b\u5efa\u7684\u5e8f\u5217\u73b0\u5728\u751f\u6210 32 \u4f4d\u6b63\u503c\uff0c\u800c\u4ee5\u524d\u7684\u7248\u672c\u751f\u6210 64 \u4f4d\u503c\u3002\u5982\u679c\u8fd9\u4e9b\u503c\u53ea\u5b58\u50a8\u5728\u5217\u4e2d\uff0c\u5219\u6ca1\u6709\u53ef\u89c1\u5f71\u54cd\u3002</p>\n<p><span>psql</span> \u7684 <code>\\d</code> \u547d\u4ee4\u9488\u5bf9\u5e8f\u5217\u7684\u8f93\u51fa\u4e5f\u7ecf\u8fc7\u4e86\u91cd\u65b0\u8bbe\u8ba1\u3002</p>", "text": "\u5c06\u5e8f\u5217\u7684\u5143\u6570\u636e\u5b57\u6bb5\u79fb\u5165\u65b0\u7684 pg_sequence \u7cfb\u7edf\u76ee\u5f55\uff08Peter Eisentraut\uff09 \u5e8f\u5217\u5173\u7cfb\u73b0\u5728\u53ea\u5b58\u50a8 nextval() \u53ef\u4ee5\u4fee\u6539\u7684\u5b57\u6bb5\uff0c\u5373 last_value\u3001log_cnt \u548c is_called\u3002\u8d77\u59cb\u503c\u548c\u589e\u91cf\u7b49\u5176\u4ed6\u5e8f\u5217\u5c5e\u6027\u4fdd\u5b58\u5728 pg_sequence \u76ee\u5f55\u7684\u5bf9\u5e94\u884c\u4e2d\u3002ALTER SEQUENCE \u7684\u66f4\u65b0\u73b0\u5728\u5b8c\u5168\u5177\u6709\u4e8b\u52a1\u6027\uff0c\u8fd9\u610f\u5473\u7740\u5e8f\u5217\u4f1a\u88ab\u9501\u5b9a\u5230\u63d0\u4ea4\u4e3a\u6b62\u3002nextval() \u548c setval() \u51fd\u6570\u4ecd\u7136\u4e0d\u5177\u6709\u4e8b\u52a1\u6027\u3002 \u6b64\u9879\u4fee\u6539\u5f15\u5165\u7684\u4e3b\u8981\u4e0d\u517c\u5bb9\u4e4b\u5904\u5728\u4e8e\uff0c\u4ece\u5e8f\u5217\u5173\u7cfb\u4e2d\u67e5\u8be2\u65f6\uff0c\u73b0\u5728\u53ea\u4f1a\u8fd4\u56de\u4e0a\u8ff0\u4e09\u4e2a\u5b57\u6bb5\u3002\u8981\u83b7\u53d6\u5e8f\u5217\u7684\u5176\u4ed6\u5c5e\u6027\uff0c\u5e94\u7528\u5fc5\u987b\u67e5\u8be2 pg_sequence\u3002\u65b0\u7684\u7cfb\u7edf\u89c6\u56fe pg_sequences \u4e5f\u53ef\u7528\u4e8e\u6b64\u76ee\u7684\uff1b\u5b83\u63d0\u4f9b\u7684\u5217\u540d\u4e0e\u73b0\u6709\u4ee3\u7801\u66f4\u4e3a\u517c\u5bb9\u3002 \u6b64\u5916\uff0c\u4e3a SERIAL \u5217\u521b\u5efa\u7684\u5e8f\u5217\u73b0\u5728\u751f\u6210 32 \u4f4d\u6b63\u503c\uff0c\u800c\u4ee5\u524d\u7684\u7248\u672c\u751f\u6210 64 \u4f4d\u503c\u3002\u5982\u679c\u8fd9\u4e9b\u503c\u53ea\u5b58\u50a8\u5728\u5217\u4e2d\uff0c\u5219\u6ca1\u6709\u53ef\u89c1\u5f71\u54cd\u3002 psql \u7684 \\d \u547d\u4ee4\u9488\u5bf9\u5e8f\u5217\u7684\u8f93\u51fa\u4e5f\u7ecf\u8fc7\u4e86\u91cd\u65b0\u8bbe\u8ba1\u3002", "title": "\u5c06\u5e8f\u5217\u7684\u5143\u6570\u636e\u5b57\u6bb5\u79fb\u5165\u65b0\u7684 pg_sequence \u7cfb\u7edf\u76ee\u5f55", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "0282bb771f2ed05149f275f325db0bba21610f61f56803ebfff481e8a47d8f39", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["1753b1b02"], ["3d79013b9"], ["5cc5987ce"], ["67dc4ccbb"], ["f8dc1985f"]], "identity_text": "Move sequences' metadata fields into a new pg_sequence system catalog (Peter Eisentraut) A sequence relation now stores only the fields that can be modified by nextval(), that is last_value, log_cnt, and is_called. Other sequence properties, such as the starting value and increment, are kept in a corresponding row of the pg_sequence catalog. ALTER SEQUENCE updates are now fully transactional, implying that the sequence is locked until commit. The nextval() and setval() functions remain nontransactional. The main incompatibility introduced by this change is that selecting from a sequence relation now returns only the three fields named above. To obtain the sequence's other properties, applications must look into pg_sequence. The new system view pg_sequences can also be used for this purpose; it provides column names that are more compatible with existing code. Also, sequences created for SERIAL columns now generate positive 32-bit wide values, whereas previous versions generated 64-bit wide values. This has no visible effect if the values are only stored in a column. The output of psql's \\d command for a sequence has been redesigned, too.", "commit_aliases": ["1753b1b02", "3d79013b9", "5cc5987ce", "67dc4ccbb", "f8dc1985f"], "source_commits": ["1753b1b02", "3d79013b9", "5cc5987ce", "67dc4ccbb", "f8dc1985f"], "source_entry_id": "10.0/migration/009", "db_id": "dd41702c3847680a92fcab950d0c16f5", "patch_ids": ["116b00fc7be48e2eb9357b6612cae1fc", "224dec8a86f73bcdd6b319043f9cda8e", "920b144b3a063c740306ad0908e4cf09", "bb86641bbf189bb28b156cc93fafb0eb", "c10123d47ed43b2f50d32b9946032423"], "statement_hash": "d3c91393d9d3d2d58fbad84dc9c619ea2fbabfcc392148614a0b1049ed5a3ae0", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-fefc93268b3da86d", "migration": true}, {"id": "10.0-e16e813c968e72ec", "cves": [], "html": "<p>\u4f7f <span><a href=\"/docs/10/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a></span> \u9ed8\u8ba4\u4ee5\u6d41\u65b9\u5f0f\u4f20\u8f93\u6062\u590d\u5907\u4efd\u6240\u9700\u7684 <acronym>WAL</acronym>\uff08Magnus Hagander\uff09</p>\n<p>\u8fd9\u5c06 <span>pg_basebackup</span> \u7684 <code>-X</code>/<code>--wal-method</code> \u9ed8\u8ba4\u503c\u6539\u4e3a <code>stream</code>\u3002\u65b0\u589e\u9009\u9879\u503c <code>none</code>\uff0c\u7528\u4e8e\u590d\u73b0\u65e7\u884c\u4e3a\u3002<span>pg_basebackup</span> \u7684 <code>-x</code> \u9009\u9879\u5df2\u79fb\u9664\uff08\u8bf7\u6539\u7528 <code>-X fetch</code>\uff09\u3002</p>", "text": "\u4f7f pg_basebackup \u9ed8\u8ba4\u4ee5\u6d41\u65b9\u5f0f\u4f20\u8f93\u6062\u590d\u5907\u4efd\u6240\u9700\u7684 WAL\uff08Magnus Hagander\uff09 \u8fd9\u5c06 pg_basebackup \u7684 -X/--wal-method \u9ed8\u8ba4\u503c\u6539\u4e3a stream\u3002\u65b0\u589e\u9009\u9879\u503c none\uff0c\u7528\u4e8e\u590d\u73b0\u65e7\u884c\u4e3a\u3002pg_basebackup \u7684 -x \u9009\u9879\u5df2\u79fb\u9664\uff08\u8bf7\u6539\u7528 -X fetch\uff09\u3002", "title": "\u4f7f pg_basebackup \u9ed8\u8ba4\u4ee5\u6d41\u65b9\u5f0f\u4f20\u8f93\u6062\u590d\u5907\u4efd\u6240\u9700\u7684 WAL", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "977103b87ca404136d9101051adbb947a1b7ad8894474539622f59bbcba730cb", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["9a4d51077"]], "identity_text": "Make app-pgbasebackup stream the WAL needed to restore the backup by default (Magnus Hagander) This changes pg_basebackup's -X/--wal-method default to stream. An option value none has been added to reproduce the old behavior. The pg_basebackup option -x has been removed (instead, use -X fetch).", "commit_aliases": ["9a4d51077"], "source_commits": ["9a4d51077"], "source_entry_id": "10.0/migration/010", "db_id": "e4e1aaedeb708ca9dff18820ca2a1ac7", "patch_ids": ["6af90247d7d493799c808fb7275bbf31"], "statement_hash": "b50ba9e747a8daf33407616179876a987916e087fa5bb8dac8d5b16858b090d4", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-e16e813c968e72ec", "migration": true}, {"id": "10.0-3d650c3979801ef0", "cves": [], "html": "<p>\u66f4\u6539\u903b\u8f91\u590d\u5236\u4f7f\u7528 <a href=\"/docs/10/client-authentication.html#AUTH-PG-HBA-CONF\" title=\"20.1.\u00a0pg_hba.conf \u6587\u4ef6\"><code>pg_hba.conf</code></a> \u7684\u65b9\u5f0f\uff08Peter Eisentraut\uff09</p>\n<p>\u5728\u4ee5\u524d\u7684\u7248\u672c\u4e2d\uff0c\u903b\u8f91\u590d\u5236\u8fde\u63a5\u8981\u6c42\u6570\u636e\u5e93\u5217\u4f7f\u7528 <code>replication</code> \u5173\u952e\u5b57\u3002\u4ece\u6b64\u7248\u672c\u8d77\uff0c\u903b\u8f91\u590d\u5236\u5339\u914d\u5305\u542b\u6570\u636e\u5e93\u540d\u6216 <code>all</code> \u7b49\u5173\u952e\u5b57\u7684\u666e\u901a\u6761\u76ee\u3002\u7269\u7406\u590d\u5236\u7ee7\u7eed\u4f7f\u7528 <code>replication</code> \u5173\u952e\u5b57\u3002\u7531\u4e8e\u5185\u7f6e\u903b\u8f91\u590d\u5236\u662f\u6b64\u7248\u672c\u7684\u65b0\u529f\u80fd\uff0c\u8fd9\u9879\u53d8\u66f4\u53ea\u5f71\u54cd\u7b2c\u4e09\u65b9\u903b\u8f91\u590d\u5236\u63d2\u4ef6\u7684\u7528\u6237\u3002</p>", "text": "\u66f4\u6539\u903b\u8f91\u590d\u5236\u4f7f\u7528 pg_hba.conf \u7684\u65b9\u5f0f\uff08Peter Eisentraut\uff09 \u5728\u4ee5\u524d\u7684\u7248\u672c\u4e2d\uff0c\u903b\u8f91\u590d\u5236\u8fde\u63a5\u8981\u6c42\u6570\u636e\u5e93\u5217\u4f7f\u7528 replication \u5173\u952e\u5b57\u3002\u4ece\u6b64\u7248\u672c\u8d77\uff0c\u903b\u8f91\u590d\u5236\u5339\u914d\u5305\u542b\u6570\u636e\u5e93\u540d\u6216 all \u7b49\u5173\u952e\u5b57\u7684\u666e\u901a\u6761\u76ee\u3002\u7269\u7406\u590d\u5236\u7ee7\u7eed\u4f7f\u7528 replication \u5173\u952e\u5b57\u3002\u7531\u4e8e\u5185\u7f6e\u903b\u8f91\u590d\u5236\u662f\u6b64\u7248\u672c\u7684\u65b0\u529f\u80fd\uff0c\u8fd9\u9879\u53d8\u66f4\u53ea\u5f71\u54cd\u7b2c\u4e09\u65b9\u903b\u8f91\u590d\u5236\u63d2\u4ef6\u7684\u7528\u6237\u3002", "title": "\u66f4\u6539\u903b\u8f91\u590d\u5236\u4f7f\u7528 pg_hba.conf \u7684\u65b9\u5f0f", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "c0f2a8a2376eca67049c72bd5534997fb57d165b074faec2f1fa3c17f8eaf741", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["8df9bd0b4"]], "identity_text": "Change how logical replication uses pg_hba.conf (Peter Eisentraut) In previous releases, a logical replication connection required the replication keyword in the database column. As of this release, logical replication matches a normal entry with a database name or keywords such as all. Physical replication continues to use the replication keyword. Since built-in logical replication is new in this release, this change only affects users of third-party logical replication plugins.", "commit_aliases": ["8df9bd0b4"], "source_commits": ["8df9bd0b4"], "source_entry_id": "10.0/migration/011", "db_id": "fc50fa201937fa41784438e5899a6577", "patch_ids": ["181abd18dd69d9d51b643ae3e27fdc10"], "statement_hash": "e2c8976e6c781abc3b09a81bfec73aa95aecd00f5844fabce38c06a3a8122c37", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-3d650c3979801ef0", "migration": true}, {"id": "10.0-9effd4a59945c911", "cves": [], "html": "<p>\u4f7f\u6240\u6709 <span><a href=\"/docs/10/app-pg-ctl.html\" title=\"pg_ctl\"><span><span>pg_ctl</span></span></a></span> \u52a8\u4f5c\u9ed8\u8ba4\u7b49\u5f85\u5b8c\u6210\uff08Peter Eisentraut\uff09</p>\n<p>\u4ee5\u524d\uff0c\u67d0\u4e9b <span>pg_ctl</span> \u52a8\u4f5c\u4e0d\u4f1a\u7b49\u5f85\u5b8c\u6210\uff0c\u9700\u8981\u4f7f\u7528 <code>-w</code> \u624d\u4f1a\u7b49\u5f85\u3002</p>", "text": "\u4f7f\u6240\u6709 pg_ctl \u52a8\u4f5c\u9ed8\u8ba4\u7b49\u5f85\u5b8c\u6210\uff08Peter Eisentraut\uff09 \u4ee5\u524d\uff0c\u67d0\u4e9b pg_ctl \u52a8\u4f5c\u4e0d\u4f1a\u7b49\u5f85\u5b8c\u6210\uff0c\u9700\u8981\u4f7f\u7528 -w \u624d\u4f1a\u7b49\u5f85\u3002", "title": "\u4f7f\u6240\u6709 pg_ctl \u52a8\u4f5c\u9ed8\u8ba4\u7b49\u5f85\u5b8c\u6210", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "76fec4fbe33702d0fbec5cc4a4c9b38de30ab7d6dbb077ddfb99f30960932bfc", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["05cd12ed5"]], "identity_text": "Make all app-pg-ctl actions wait for completion by default (Peter Eisentraut) Previously some pg_ctl actions didn't wait for completion, and required the use of -w to do so.", "commit_aliases": ["05cd12ed5"], "source_commits": ["05cd12ed5"], "source_entry_id": "10.0/migration/012", "db_id": "c2c340640a04b565f2b12007a1d4310c", "patch_ids": ["8742d5ebcc96fd2c94e5657af74aac57"], "statement_hash": "708c2d00bb7c91175ffeda8740ef89938ce6c4e9f5486c77df4759fe4cdbc27a", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-9effd4a59945c911", "migration": true}, {"id": "10.0-1bb99e655d1e45d6", "cves": [], "html": "<p>\u5c06\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/10/runtime-config-logging.html#GUC-LOG-DIRECTORY\">log_directory</a>\u7684\u9ed8\u8ba4\u503c\u4ece <code>pg_log</code> \u6539\u4e3a <code>log</code>\uff08Andreas Karlsson\uff09</p>", "text": "\u5c06\u670d\u52a1\u5668\u53c2\u6570log_directory\u7684\u9ed8\u8ba4\u503c\u4ece pg_log \u6539\u4e3a log\uff08Andreas Karlsson\uff09", "title": "\u5c06\u670d\u52a1\u5668\u53c2\u6570log_directory\u7684\u9ed8\u8ba4\u503c\u4ece pg_log \u6539\u4e3a log", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "c1bacb273321c7059decb351c6ea79684bde503289ab77c1acdb5794968fc653", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["3371e4d9b"]], "identity_text": "Change the default value of the guc-log-directory server parameter from pg_log to log (Andreas Karlsson)", "commit_aliases": ["3371e4d9b"], "source_commits": ["3371e4d9b"], "source_entry_id": "10.0/migration/013", "db_id": "a82804e8051ed2a71014eb98c4294364", "patch_ids": ["37f28a0c55accfa32e569fd84f7bf7cc"], "statement_hash": "a649be2dcc3cab26dead1be05050a88479c7bd57bbaf9a1adc106d602acae996", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-1bb99e655d1e45d6", "migration": true}, {"id": "10.0-45dd1edff31f5174", "cves": [], "html": "<p>\u589e\u52a0\u914d\u7f6e\u9009\u9879<a href=\"/docs/10/runtime-config-connection.html#GUC-SSL-DH-PARAMS-FILE\">ssl_dh_params_file</a>\uff0c\u7528\u4e8e\u6307\u5b9a\u81ea\u5b9a\u4e49 OpenSSL DH \u53c2\u6570\u7684\u6587\u4ef6\u540d\uff08Heikki Linnakangas\uff09</p>\n<p>\u8fd9\u53d6\u4ee3\u4e86\u786c\u7f16\u7801\u4e14\u672a\u8bb0\u5f55\u5728\u6587\u6863\u4e2d\u7684\u6587\u4ef6\u540d <code>dh1024.pem</code>\u3002\u6ce8\u610f\uff0c\u9ed8\u8ba4\u4e0d\u518d\u68c0\u67e5 <code>dh1024.pem</code>\uff1b\u5982\u679c\u8981\u4f7f\u7528\u81ea\u5b9a\u4e49 DH \u53c2\u6570\uff0c\u5fc5\u987b\u8bbe\u7f6e\u6b64\u9009\u9879\u3002</p>", "text": "\u589e\u52a0\u914d\u7f6e\u9009\u9879ssl_dh_params_file\uff0c\u7528\u4e8e\u6307\u5b9a\u81ea\u5b9a\u4e49 OpenSSL DH \u53c2\u6570\u7684\u6587\u4ef6\u540d\uff08Heikki Linnakangas\uff09 \u8fd9\u53d6\u4ee3\u4e86\u786c\u7f16\u7801\u4e14\u672a\u8bb0\u5f55\u5728\u6587\u6863\u4e2d\u7684\u6587\u4ef6\u540d dh1024.pem\u3002\u6ce8\u610f\uff0c\u9ed8\u8ba4\u4e0d\u518d\u68c0\u67e5 dh1024.pem\uff1b\u5982\u679c\u8981\u4f7f\u7528\u81ea\u5b9a\u4e49 DH \u53c2\u6570\uff0c\u5fc5\u987b\u8bbe\u7f6e\u6b64\u9009\u9879\u3002", "title": "\u589e\u52a0\u914d\u7f6e\u9009\u9879ssl_dh_params_file\uff0c\u7528\u4e8e\u6307\u5b9a\u81ea\u5b9a\u4e49 OpenSSL DH \u53c2\u6570\u7684\u6587\u4ef6\u540d", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "82e95e6df822c4f1fe517e93858014273e393ea5cd9138d7c6bec3da5bd263d0", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["c0a15e07c"]], "identity_text": "Add configuration option guc-ssl-dh-params-file to specify file name for custom OpenSSL DH parameters (Heikki Linnakangas) This replaces the hardcoded, undocumented file name dh1024.pem. Note that dh1024.pem is no longer examined by default; you must set this option if you want to use custom DH parameters.", "commit_aliases": ["c0a15e07c"], "source_commits": ["c0a15e07c"], "source_entry_id": "10.0/migration/014", "db_id": "92da656075bacfc60d42e80c9be765ad", "patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"], "statement_hash": "11eba38c8240e4e56545836b9da6f8994bf4787ad02d781846700e8a94e5a2a3", "relations": [{"rule": 2, "type": "related", "target": "cb4b77c0c00d68dc5c60c6499749f9e6", "evidence": {"same_day": true, "patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"], "ambiguous_patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-45dd1edff31f5174", "migration": true}, {"id": "10.0-bed1fd14dd10b139", "cves": [], "html": "<p>\u5c06 OpenSSL \u4e34\u65f6 DH \u5bc6\u7801\u5957\u4ef6\u4f7f\u7528\u7684\u9ed8\u8ba4 DH \u53c2\u6570\u957f\u5ea6\u589e\u52a0\u5230 2048 \u4f4d\uff08Heikki Linnakangas\uff09</p>\n<p>\u7f16\u8bd1\u5185\u7f6e\u7684 DH \u53c2\u6570\u957f\u5ea6\u5df2\u4ece 1024 \u4f4d\u589e\u52a0\u5230 2048 \u4f4d\uff0c\u4f7f DH \u5bc6\u94a5\u4ea4\u6362\u66f4\u80fd\u62b5\u5fa1\u66b4\u529b\u653b\u51fb\u3002\u4f46\u662f\uff0c\u67d0\u4e9b\u65e7 SSL \u5b9e\u73b0\uff0c\u5c24\u5176\u662f Java Runtime Environment 6 \u7684\u67d0\u4e9b\u4fee\u8ba2\u7248\uff0c\u4e0d\u63a5\u53d7\u8d85\u8fc7 1024 \u4f4d\u7684 DH \u53c2\u6570\uff0c\u56e0\u6b64\u65e0\u6cd5\u901a\u8fc7 SSL \u8fde\u63a5\u3002\u5982\u679c\u5fc5\u987b\u652f\u6301\u6b64\u7c7b\u65e7\u5ba2\u6237\u7aef\uff0c\u53ef\u4ee5\u4f7f\u7528\u81ea\u5b9a\u4e49\u7684 1024 \u4f4d DH \u53c2\u6570\u4ee3\u66ff\u7f16\u8bd1\u5185\u7f6e\u7684\u9ed8\u8ba4\u503c\u3002\u53c2\u89c1<a href=\"/docs/10/runtime-config-connection.html#GUC-SSL-DH-PARAMS-FILE\">ssl_dh_params_file</a>\u3002</p>", "text": "\u5c06 OpenSSL \u4e34\u65f6 DH \u5bc6\u7801\u5957\u4ef6\u4f7f\u7528\u7684\u9ed8\u8ba4 DH \u53c2\u6570\u957f\u5ea6\u589e\u52a0\u5230 2048 \u4f4d\uff08Heikki Linnakangas\uff09 \u7f16\u8bd1\u5185\u7f6e\u7684 DH \u53c2\u6570\u957f\u5ea6\u5df2\u4ece 1024 \u4f4d\u589e\u52a0\u5230 2048 \u4f4d\uff0c\u4f7f DH \u5bc6\u94a5\u4ea4\u6362\u66f4\u80fd\u62b5\u5fa1\u66b4\u529b\u653b\u51fb\u3002\u4f46\u662f\uff0c\u67d0\u4e9b\u65e7 SSL \u5b9e\u73b0\uff0c\u5c24\u5176\u662f Java Runtime Environment 6 \u7684\u67d0\u4e9b\u4fee\u8ba2\u7248\uff0c\u4e0d\u63a5\u53d7\u8d85\u8fc7 1024 \u4f4d\u7684 DH \u53c2\u6570\uff0c\u56e0\u6b64\u65e0\u6cd5\u901a\u8fc7 SSL \u8fde\u63a5\u3002\u5982\u679c\u5fc5\u987b\u652f\u6301\u6b64\u7c7b\u65e7\u5ba2\u6237\u7aef\uff0c\u53ef\u4ee5\u4f7f\u7528\u81ea\u5b9a\u4e49\u7684 1024 \u4f4d DH \u53c2\u6570\u4ee3\u66ff\u7f16\u8bd1\u5185\u7f6e\u7684\u9ed8\u8ba4\u503c\u3002\u53c2\u89c1ssl_dh_params_file\u3002", "title": "\u5c06 OpenSSL \u4e34\u65f6 DH \u5bc6\u7801\u5957\u4ef6\u4f7f\u7528\u7684\u9ed8\u8ba4 DH \u53c2\u6570\u957f\u5ea6\u589e\u52a0\u5230 2048 \u4f4d", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "58b5c87af94ac7222fc7115d44e0e36e58185075862627c50c5bf96e795b335d", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["c0a15e07c"]], "identity_text": "Increase the size of the default DH parameters used for OpenSSL ephemeral DH ciphers to 2048 bits (Heikki Linnakangas) The size of the compiled-in DH parameters has been increased from 1024 to 2048 bits, making DH key exchange more resistant to brute-force attacks. However, some old SSL implementations, notably some revisions of Java Runtime Environment version 6, will not accept DH parameters longer than 1024 bits, and hence will not be able to connect over SSL. If it's necessary to support such old clients, you can use custom 1024-bit DH parameters instead of the compiled-in defaults. See guc-ssl-dh-params-file .", "commit_aliases": ["c0a15e07c"], "source_commits": ["c0a15e07c"], "source_entry_id": "10.0/migration/015", "db_id": "cb4b77c0c00d68dc5c60c6499749f9e6", "patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"], "statement_hash": "5f7b7806962b7d912b887a0b2bc336d92d63dd637eef011338ae618a2652c257", "relations": [{"rule": 2, "type": "related", "target": "92da656075bacfc60d42e80c9be765ad", "evidence": {"same_day": true, "patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"], "ambiguous_patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-bed1fd14dd10b139", "migration": true}, {"id": "10.0-5c5adbe0cf0957c1", "cves": [], "html": "<p>\u79fb\u9664\u5728\u670d\u52a1\u5668\u4e0a\u5b58\u50a8\u672a\u52a0\u5bc6\u5bc6\u7801\u7684\u80fd\u529b\uff08Heikki Linnakangas\uff09</p>\n<p>\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/10/runtime-config-connection.html#GUC-PASSWORD-ENCRYPTION\">password_encryption</a>\u4e0d\u518d\u652f\u6301 <code>off</code> \u6216 <code>plain</code>\u3002<code>CREATE/ALTER USER ... PASSWORD</code> \u4e0d\u518d\u652f\u6301 <code>UNENCRYPTED</code> \u9009\u9879\u3002\u540c\u6837\uff0c<span>createuser</span> \u7684 <code>--unencrypted</code> \u9009\u9879\u4e5f\u5df2\u79fb\u9664\u3002\u4ece\u65e7\u7248\u672c\u8fc1\u79fb\u6765\u7684\u672a\u52a0\u5bc6\u5bc6\u7801\u5728\u6b64\u7248\u672c\u4e2d\u4f1a\u4ee5\u52a0\u5bc6\u5f62\u5f0f\u5b58\u50a8\u3002<code>password_encryption</code> \u7684\u9ed8\u8ba4\u8bbe\u7f6e\u4ecd\u4e3a <code>md5</code>\u3002</p>", "text": "\u79fb\u9664\u5728\u670d\u52a1\u5668\u4e0a\u5b58\u50a8\u672a\u52a0\u5bc6\u5bc6\u7801\u7684\u80fd\u529b\uff08Heikki Linnakangas\uff09 \u670d\u52a1\u5668\u53c2\u6570password_encryption\u4e0d\u518d\u652f\u6301 off \u6216 plain\u3002CREATE/ALTER USER ... PASSWORD \u4e0d\u518d\u652f\u6301 UNENCRYPTED \u9009\u9879\u3002\u540c\u6837\uff0ccreateuser \u7684 --unencrypted \u9009\u9879\u4e5f\u5df2\u79fb\u9664\u3002\u4ece\u65e7\u7248\u672c\u8fc1\u79fb\u6765\u7684\u672a\u52a0\u5bc6\u5bc6\u7801\u5728\u6b64\u7248\u672c\u4e2d\u4f1a\u4ee5\u52a0\u5bc6\u5f62\u5f0f\u5b58\u50a8\u3002password_encryption \u7684\u9ed8\u8ba4\u8bbe\u7f6e\u4ecd\u4e3a md5\u3002", "title": "\u79fb\u9664\u5728\u670d\u52a1\u5668\u4e0a\u5b58\u50a8\u672a\u52a0\u5bc6\u5bc6\u7801\u7684\u80fd\u529b", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "07bcc3be3942a0c58e45c75a68e8805f210c3e67438a5585612edbb9d6b59228", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["eb61136dc"]], "identity_text": "Remove the ability to store unencrypted passwords on the server (Heikki Linnakangas) The guc-password-encryption server parameter no longer supports off or plain. The UNENCRYPTED option is no longer supported in CREATE/ALTER USER ... PASSWORD. Similarly, the --unencrypted option has been removed from createuser. Unencrypted passwords migrated from older versions will be stored encrypted in this release. The default setting for password_encryption is still md5.", "commit_aliases": ["eb61136dc"], "source_commits": ["eb61136dc"], "source_entry_id": "10.0/migration/016", "db_id": "ae5091d888e8abcf3e67d075f31d5ff9", "patch_ids": ["984ee769d3a3da2239dbe06c1b681fba"], "statement_hash": "9631054ddd13bf20676a20f398b2ba61395d6831cd2295d3338972994aa673af", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-5c5adbe0cf0957c1", "migration": true}, {"id": "10.0-aede6ec94734e20d", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/10/runtime-config-query.html#GUC-MIN-PARALLEL-TABLE-SCAN-SIZE\">min_parallel_table_scan_size</a>\u548c<a href=\"/docs/10/runtime-config-query.html#GUC-MIN-PARALLEL-INDEX-SCAN-SIZE\">min_parallel_index_scan_size</a>\uff0c\u7528\u4e8e\u63a7\u5236\u5e76\u884c\u67e5\u8be2\uff08Amit Kapila\uff0cRobert Haas\uff09</p>\n<p>\u8fd9\u4e24\u4e2a\u53c2\u6570\u53d6\u4ee3\u4e86\u88ab\u8ba4\u4e3a\u8fc7\u4e8e\u7b3c\u7edf\u7684 <code>min_parallel_relation_size</code>\u3002</p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570min_parallel_table_scan_size\u548cmin_parallel_index_scan_size\uff0c\u7528\u4e8e\u63a7\u5236\u5e76\u884c\u67e5\u8be2\uff08Amit Kapila\uff0cRobert Haas\uff09 \u8fd9\u4e24\u4e2a\u53c2\u6570\u53d6\u4ee3\u4e86\u88ab\u8ba4\u4e3a\u8fc7\u4e8e\u7b3c\u7edf\u7684 min_parallel_relation_size\u3002", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570min_parallel_table_scan_size\u548cmin_parallel_index_scan_size\uff0c\u7528\u4e8e\u63a7\u5236\u5e76\u884c\u67e5\u8be2", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "c58a15c632d0672c56f8b91e35c0089a2ec3bc937b101dff2dd702e440911d83", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["51ee6f316"]], "identity_text": "Add guc-min-parallel-table-scan-size and guc-min-parallel-index-scan-size server parameters to control parallel queries (Amit Kapila, Robert Haas) These replace min_parallel_relation_size, which was found to be too generic.", "commit_aliases": ["51ee6f316"], "source_commits": ["51ee6f316"], "source_entry_id": "10.0/migration/017", "db_id": "2014daef72608512bcc40924fed33d70", "patch_ids": ["89f8382cd9f3382c58c2a0ba4a206e2f"], "statement_hash": "e4408274fddd1fe1da91825f4ade7824cdc25b78982f101003ff9241e1566f3f", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-aede6ec94734e20d", "migration": true}, {"id": "10.0-96fc850580f6bf52", "cves": [], "html": "<p>\u4e0d\u518d\u5c06<a href=\"/docs/10/runtime-config-client.html#GUC-SHARED-PRELOAD-LIBRARIES\">shared_preload_libraries</a>\u53ca\u76f8\u5173\u670d\u52a1\u5668\u53c2\u6570\u4e2d\u672a\u52a0\u5f15\u53f7\u7684\u6587\u672c\u8f6c\u4e3a\u5c0f\u5199\uff08QL Zhuo\uff09</p>\n<p>\u8fd9\u4e9b\u8bbe\u7f6e\u5b9e\u9645\u4e0a\u662f\u6587\u4ef6\u540d\u5217\u8868\uff0c\u4f46\u4ee5\u524d\u88ab\u5f53\u4f5c SQL \u6807\u8bc6\u7b26\u5217\u8868\u5904\u7406\uff0c\u800c\u4e24\u8005\u7684\u89e3\u6790\u89c4\u5219\u4e0d\u540c\u3002</p>", "text": "\u4e0d\u518d\u5c06shared_preload_libraries\u53ca\u76f8\u5173\u670d\u52a1\u5668\u53c2\u6570\u4e2d\u672a\u52a0\u5f15\u53f7\u7684\u6587\u672c\u8f6c\u4e3a\u5c0f\u5199\uff08QL Zhuo\uff09 \u8fd9\u4e9b\u8bbe\u7f6e\u5b9e\u9645\u4e0a\u662f\u6587\u4ef6\u540d\u5217\u8868\uff0c\u4f46\u4ee5\u524d\u88ab\u5f53\u4f5c SQL \u6807\u8bc6\u7b26\u5217\u8868\u5904\u7406\uff0c\u800c\u4e24\u8005\u7684\u89e3\u6790\u89c4\u5219\u4e0d\u540c\u3002", "title": "\u4e0d\u518d\u5c06shared_preload_libraries\u53ca\u76f8\u5173\u670d\u52a1\u5668\u53c2\u6570\u4e2d\u672a\u52a0\u5f15\u53f7\u7684\u6587\u672c\u8f6c\u4e3a\u5c0f\u5199", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "2d305be34bd817d98860e4181f751d1f25a848098fc1bc46d03a1117bc8c5590", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["a69dfe5f4"]], "identity_text": "Don't downcase unquoted text within guc-shared-preload-libraries and related server parameters (QL Zhuo) These settings are really lists of file names, but they were previously treated as lists of SQL identifiers, which have different parsing rules.", "commit_aliases": ["a69dfe5f4"], "source_commits": ["a69dfe5f4"], "source_entry_id": "10.0/migration/018", "db_id": "1495fd1294e2eaf1c7d96962eb161685", "patch_ids": ["c80615a1a8fcd843532f029ed9d71948"], "statement_hash": "8b0039defc13dc8f300ae0c59b029326a2bbdeee25aa5a6a3662140c7a467204", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-96fc850580f6bf52", "migration": true}, {"id": "10.0-efda2036c2acb51c", "cves": [], "html": "<p>\u79fb\u9664\u670d\u52a1\u5668\u53c2\u6570 <code>sql_inheritance</code>\uff08Robert Haas\uff09</p>\n<p>\u5c06\u6b64\u8bbe\u7f6e\u6539\u4e3a\u975e\u9ed8\u8ba4\u503c\uff0c\u4f1a\u4f7f\u5f15\u7528\u7236\u8868\u7684\u67e5\u8be2\u4e0d\u5305\u542b\u5b50\u8868\u3002\u4f46\u662f\uff0c<acronym>SQL</acronym> \u6807\u51c6\u8981\u6c42\u5305\u542b\u5b50\u8868\uff0c\u800c\u4e14\u8fd9\u4ece <span>PostgreSQL</span> 7.1 \u8d77\u5c31\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002</p>", "text": "\u79fb\u9664\u670d\u52a1\u5668\u53c2\u6570 sql_inheritance\uff08Robert Haas\uff09 \u5c06\u6b64\u8bbe\u7f6e\u6539\u4e3a\u975e\u9ed8\u8ba4\u503c\uff0c\u4f1a\u4f7f\u5f15\u7528\u7236\u8868\u7684\u67e5\u8be2\u4e0d\u5305\u542b\u5b50\u8868\u3002\u4f46\u662f\uff0cSQL \u6807\u51c6\u8981\u6c42\u5305\u542b\u5b50\u8868\uff0c\u800c\u4e14\u8fd9\u4ece PostgreSQL 7.1 \u8d77\u5c31\u662f\u9ed8\u8ba4\u884c\u4e3a\u3002", "title": "\u79fb\u9664\u670d\u52a1\u5668\u53c2\u6570 sql_inheritance", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "01afcd02f477b1cb68e0705fcd92caf61289634b4b01674a58480e2610628dee", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["e13486eba"]], "identity_text": "Remove sql_inheritance server parameter (Robert Haas) Changing this setting from the default value caused queries referencing parent tables to not include child tables. The SQL standard requires them to be included, however, and this has been the default since PostgreSQL 7.1.", "commit_aliases": ["e13486eba"], "source_commits": ["e13486eba"], "source_entry_id": "10.0/migration/019", "db_id": "fb3d9e8678d88063b0a5aa96665191df", "patch_ids": ["9173ac91ac70cc43d9154f66d12a0b8a"], "statement_hash": "9faabd6f20e000bcc67bfd37dd505760ad8828c8bbf602d41dd574c06c400427", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-efda2036c2acb51c", "migration": true}, {"id": "10.0-6117baac95baeebe", "cves": [], "html": "<p>\u5141\u8bb8\u5c06\u591a\u7ef4\u6570\u7ec4\u4f20\u7ed9 PL/Python \u51fd\u6570\uff0c\u5e76\u4ee5\u5d4c\u5957 Python \u5217\u8868\u5f62\u5f0f\u8fd4\u56de\uff08Alexey Grishchenko\uff0cDave Cramer\uff0cHeikki Linnakangas\uff09</p>\n<p>\u6b64\u529f\u80fd\u9700\u8981\u5bf9 PL/Python \u4e2d\u590d\u5408\u7c7b\u578b\u6570\u7ec4\u7684\u5904\u7406\u8fdb\u884c\u4e00\u9879\u4e0d\u5411\u540e\u517c\u5bb9\u7684\u66f4\u6539\u3002\u4ee5\u524d\uff0c\u53ef\u4ee5\u901a\u8fc7\u7f16\u5199\u5982 <code>[[col1, col2], [col1, col2]]</code> \u7684\u5f62\u5f0f\u8fd4\u56de\u590d\u5408\u503c\u6570\u7ec4\uff1b\u4f46\u73b0\u5728\u8fd9\u4f1a\u88ab\u89e3\u91ca\u4e3a\u4e8c\u7ef4\u6570\u7ec4\u3002\u4e3a\u6d88\u9664\u6b67\u4e49\uff0c\u6570\u7ec4\u4e2d\u7684\u590d\u5408\u7c7b\u578b\u73b0\u5728\u5fc5\u987b\u5199\u6210 Python \u5143\u7ec4\uff0c\u4e0d\u80fd\u5199\u6210\u5217\u8868\uff1b\u4e5f\u5c31\u662f\u8bf4\uff0c\u5e94\u6539\u4e3a <code>[(col1, col2), (col1, col2)]</code>\u3002</p>", "text": "\u5141\u8bb8\u5c06\u591a\u7ef4\u6570\u7ec4\u4f20\u7ed9 PL/Python \u51fd\u6570\uff0c\u5e76\u4ee5\u5d4c\u5957 Python \u5217\u8868\u5f62\u5f0f\u8fd4\u56de\uff08Alexey Grishchenko\uff0cDave Cramer\uff0cHeikki Linnakangas\uff09 \u6b64\u529f\u80fd\u9700\u8981\u5bf9 PL/Python \u4e2d\u590d\u5408\u7c7b\u578b\u6570\u7ec4\u7684\u5904\u7406\u8fdb\u884c\u4e00\u9879\u4e0d\u5411\u540e\u517c\u5bb9\u7684\u66f4\u6539\u3002\u4ee5\u524d\uff0c\u53ef\u4ee5\u901a\u8fc7\u7f16\u5199\u5982 [[col1, col2], [col1, col2]] \u7684\u5f62\u5f0f\u8fd4\u56de\u590d\u5408\u503c\u6570\u7ec4\uff1b\u4f46\u73b0\u5728\u8fd9\u4f1a\u88ab\u89e3\u91ca\u4e3a\u4e8c\u7ef4\u6570\u7ec4\u3002\u4e3a\u6d88\u9664\u6b67\u4e49\uff0c\u6570\u7ec4\u4e2d\u7684\u590d\u5408\u7c7b\u578b\u73b0\u5728\u5fc5\u987b\u5199\u6210 Python \u5143\u7ec4\uff0c\u4e0d\u80fd\u5199\u6210\u5217\u8868\uff1b\u4e5f\u5c31\u662f\u8bf4\uff0c\u5e94\u6539\u4e3a [(col1, col2), (col1, col2)]\u3002", "title": "\u5141\u8bb8\u5c06\u591a\u7ef4\u6570\u7ec4\u4f20\u7ed9 PL/Python \u51fd\u6570\uff0c\u5e76\u4ee5\u5d4c\u5957 Python \u5217\u8868\u5f62\u5f0f\u8fd4\u56de", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "785e3325eadb6141cd97cbedfae3b3170e7178cd9c14b82744833816d189ab42", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["94aceed31"], ["cfd9c87a5"]], "identity_text": "Allow multi-dimensional arrays to be passed into PL/Python functions, and returned as nested Python lists (Alexey Grishchenko, Dave Cramer, Heikki Linnakangas) This feature requires a backwards-incompatible change to the handling of arrays of composite types in PL/Python. Previously, you could return an array of composite values by writing, e.g., [[col1, col2], [col1, col2]]; but now that is interpreted as a two-dimensional array. Composite types in arrays must now be written as Python tuples, not lists, to resolve the ambiguity; that is, write [(col1, col2), (col1, col2)] instead.", "commit_aliases": ["94aceed31", "cfd9c87a5"], "source_commits": ["94aceed31", "cfd9c87a5"], "source_entry_id": "10.0/migration/020", "db_id": "5eac8746e54ce1b1f317549002c73bcb", "patch_ids": ["27291e04a761e864923585cff8d47be7", "dbcc7cdcd6319af9b685de73dc28812a"], "statement_hash": "572721fa7d9ad800304f04e7d5fed9b36679dbffc70e3a97482a24fbb44e6563", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-6117baac95baeebe", "migration": true}, {"id": "10.0-e455efa7d9e281f6", "cves": [], "html": "<p>\u79fb\u9664 PL/Tcl \u7684<span>\u201c<span>\u6a21\u5757</span>\u201d</span>\u81ea\u52a8\u52a0\u8f7d\u529f\u80fd\uff08Tom Lane\uff09</p>\n<p>\u6b64\u529f\u80fd\u5df2\u7531\u65b0\u7684\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/10/pltcl-config.html#GUC-PLTCL-START-PROC\">pltcl.start_proc</a>\u548c<a href=\"/docs/10/pltcl-config.html#GUC-PLTCLU-START-PROC\">pltclu.start_proc</a>\u53d6\u4ee3\uff0c\u5b83\u4eec\u66f4\u6613\u4f7f\u7528\uff0c\u4e5f\u66f4\u7c7b\u4f3c\u4e8e\u5176\u4ed6 PL \u63d0\u4f9b\u7684\u529f\u80fd\u3002</p>", "text": "\u79fb\u9664 PL/Tcl \u7684\u201c\u6a21\u5757\u201d\u81ea\u52a8\u52a0\u8f7d\u529f\u80fd\uff08Tom Lane\uff09 \u6b64\u529f\u80fd\u5df2\u7531\u65b0\u7684\u670d\u52a1\u5668\u53c2\u6570pltcl.start_proc\u548cpltclu.start_proc\u53d6\u4ee3\uff0c\u5b83\u4eec\u66f4\u6613\u4f7f\u7528\uff0c\u4e5f\u66f4\u7c7b\u4f3c\u4e8e\u5176\u4ed6 PL \u63d0\u4f9b\u7684\u529f\u80fd\u3002", "title": "\u79fb\u9664 PL/Tcl \u7684\u201c\u6a21\u5757\u201d\u81ea\u52a8\u52a0\u8f7d\u529f\u80fd", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "e13cd151c725d5b868b83caa789349df9a1efd06c4ab7d5069306ec19bb72a82", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["817f2a586"]], "identity_text": "Remove PL/Tcl's module auto-loading facility (Tom Lane) This functionality has been replaced by new server parameters guc-pltcl-start-proc and guc-pltclu-start-proc , which are easier to use and more similar to features available in other PLs.", "commit_aliases": ["817f2a586"], "source_commits": ["817f2a586"], "source_entry_id": "10.0/migration/021", "db_id": "c03c95ce7eeffbec000f259934fb41cb", "patch_ids": ["88c13146b3a3fed017d68203071cfd78"], "statement_hash": "d81330d7d891ef5d0c6f2120e954c4995909f20d4246a53270cf088c2ef10028", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-e455efa7d9e281f6", "migration": true}, {"id": "10.0-87b411efc8d21dee", "cves": [], "html": "<p>\u79fb\u9664 <span>pg_dump</span>/<span>pg_dumpall</span> \u5bf9\u4ece 8.0 \u4e4b\u524d\u7684\u670d\u52a1\u5668\u8f6c\u50a8\u7684\u652f\u6301\uff08Tom Lane\uff09</p>\n<p>\u9700\u8981\u4ece 8.0 \u4e4b\u524d\u7684\u670d\u52a1\u5668\u8f6c\u50a8\u7684\u7528\u6237\uff0c\u5fc5\u987b\u4f7f\u7528 <span>PostgreSQL</span> 9.6 \u6216\u66f4\u65e9\u7248\u672c\u7684\u8f6c\u50a8\u7a0b\u5e8f\u3002\u751f\u6210\u7684\u8f93\u51fa\u4ecd\u5e94\u80fd\u6210\u529f\u8f7d\u5165\u8f83\u65b0\u7684\u670d\u52a1\u5668\u3002</p>", "text": "\u79fb\u9664 pg_dump/pg_dumpall \u5bf9\u4ece 8.0 \u4e4b\u524d\u7684\u670d\u52a1\u5668\u8f6c\u50a8\u7684\u652f\u6301\uff08Tom Lane\uff09 \u9700\u8981\u4ece 8.0 \u4e4b\u524d\u7684\u670d\u52a1\u5668\u8f6c\u50a8\u7684\u7528\u6237\uff0c\u5fc5\u987b\u4f7f\u7528 PostgreSQL 9.6 \u6216\u66f4\u65e9\u7248\u672c\u7684\u8f6c\u50a8\u7a0b\u5e8f\u3002\u751f\u6210\u7684\u8f93\u51fa\u4ecd\u5e94\u80fd\u6210\u529f\u8f7d\u5165\u8f83\u65b0\u7684\u670d\u52a1\u5668\u3002", "title": "\u79fb\u9664 pg_dump/pg_dumpall \u5bf9\u4ece 8.0 \u4e4b\u524d\u7684\u670d\u52a1\u5668\u8f6c\u50a8\u7684\u652f\u6301", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "f44eac09b3da8b09d769aea99964e1fa5cf562f620ad44579ebd31f4d9c10b43", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["64f3524e2"]], "identity_text": "Remove pg_dump/pg_dumpall support for dumping from pre-8.0 servers (Tom Lane) Users needing to dump from pre-8.0 servers will need to use dump programs from PostgreSQL 9.6 or earlier. The resulting output should still load successfully into newer servers.", "commit_aliases": ["64f3524e2"], "source_commits": ["64f3524e2"], "source_entry_id": "10.0/migration/022", "db_id": "e708375dd11b40d794cf3d160c742442", "patch_ids": ["4bf913a8c9b3b7dccf9a8b26fe84716a"], "statement_hash": "b5e18ae8f8be6a536856eb0587d270b4488d734ad26ab96d62c076dcbaa38f5d", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-87b411efc8d21dee", "migration": true}, {"id": "10.0-7d62a7bc40334ceb", "cves": [], "html": "<p>\u79fb\u9664\u5bf9\u6d6e\u70b9\u65f6\u95f4\u6233\u548c\u65f6\u95f4\u95f4\u9694\u7684\u652f\u6301\uff08Tom Lane\uff09</p>\n<p>\u8fd9\u79fb\u9664\u4e86 configure \u7684 <code>--disable-integer-datetimes</code> \u9009\u9879\u3002\u6d6e\u70b9\u65f6\u95f4\u6233\u7684\u4f18\u52bf\u5f88\u5c11\uff0c\u800c\u4e14\u4ece <span>PostgreSQL</span> 8.3 \u8d77\u5c31\u4e0d\u518d\u662f\u9ed8\u8ba4\u9009\u62e9\u3002</p>", "text": "\u79fb\u9664\u5bf9\u6d6e\u70b9\u65f6\u95f4\u6233\u548c\u65f6\u95f4\u95f4\u9694\u7684\u652f\u6301\uff08Tom Lane\uff09 \u8fd9\u79fb\u9664\u4e86 configure \u7684 --disable-integer-datetimes \u9009\u9879\u3002\u6d6e\u70b9\u65f6\u95f4\u6233\u7684\u4f18\u52bf\u5f88\u5c11\uff0c\u800c\u4e14\u4ece PostgreSQL 8.3 \u8d77\u5c31\u4e0d\u518d\u662f\u9ed8\u8ba4\u9009\u62e9\u3002", "title": "\u79fb\u9664\u5bf9\u6d6e\u70b9\u65f6\u95f4\u6233\u548c\u65f6\u95f4\u95f4\u9694\u7684\u652f\u6301", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "184817742b2f43745675c3698b80a2295b14130f814eac6dd9b4ca9dd55c9ad7", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["b6aa17e0a"]], "identity_text": "Remove support for floating-point timestamps and intervals (Tom Lane) This removes configure's --disable-integer-datetimes option. Floating-point timestamps have few advantages and have not been the default since PostgreSQL 8.3.", "commit_aliases": ["b6aa17e0a"], "source_commits": ["b6aa17e0a"], "source_entry_id": "10.0/migration/023", "db_id": "ccf635738f2ab4a30bbc7372b94801c3", "patch_ids": ["7b3c1b79a653fc9d73554d3ef13a135e"], "statement_hash": "da4d8ae63499da25faed163cad71abc3bf3580c5e9906daba58ad79f71b36ee5", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-7d62a7bc40334ceb", "migration": true}, {"id": "10.0-f46c258225255d45", "cves": [], "html": "<p>\u79fb\u9664\u670d\u52a1\u5668\u5bf9\u5ba2\u6237\u7aef/\u670d\u52a1\u5668\u534f\u8bae 1.0 \u7248\u7684\u652f\u6301\uff08Tom Lane\uff09</p>\n<p>\u4ece <span>PostgreSQL</span> 6.3 \u8d77\uff0c\u5ba2\u6237\u7aef\u5c31\u4e0d\u518d\u652f\u6301\u6b64\u534f\u8bae\u3002</p>", "text": "\u79fb\u9664\u670d\u52a1\u5668\u5bf9\u5ba2\u6237\u7aef/\u670d\u52a1\u5668\u534f\u8bae 1.0 \u7248\u7684\u652f\u6301\uff08Tom Lane\uff09 \u4ece PostgreSQL 6.3 \u8d77\uff0c\u5ba2\u6237\u7aef\u5c31\u4e0d\u518d\u652f\u6301\u6b64\u534f\u8bae\u3002", "title": "\u79fb\u9664\u670d\u52a1\u5668\u5bf9\u5ba2\u6237\u7aef/\u670d\u52a1\u5668\u534f\u8bae 1.0 \u7248\u7684\u652f\u6301", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "e3f4ada2e62c24e2dd443018f1c17663677dcbcd2eced79cc79dd028555ef2ae", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["2f1eaf87e"]], "identity_text": "Remove server support for client/server protocol version 1.0 (Tom Lane) This protocol hasn't had client support since PostgreSQL 6.3.", "commit_aliases": ["2f1eaf87e"], "source_commits": ["2f1eaf87e"], "source_entry_id": "10.0/migration/024", "db_id": "81eef6f0aba869c9a7f8a5e9ee8dc63c", "patch_ids": ["d1cceb8cddc1ba06b7c79817163dcb8b"], "statement_hash": "7f5f76e19023fd7318e02469fc450323c7edc092d17b9e126962d6042aaaf562", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-f46c258225255d45", "migration": true}, {"id": "10.0-9a792b59008fbee8", "cves": [], "html": "<p>\u79fb\u9664 <code>contrib/tsearch2</code> \u6a21\u5757\uff08Robert Haas\uff09</p>\n<p>\u6b64\u6a21\u5757\u7528\u4e8e\u517c\u5bb9 <span>PostgreSQL</span> 8.3 \u4e4b\u524d\u7684\u53d1\u884c\u7248\u6240\u9644\u5e26\u7684\u5168\u6587\u68c0\u7d22\u7248\u672c\u3002</p>", "text": "\u79fb\u9664 contrib/tsearch2 \u6a21\u5757\uff08Robert Haas\uff09 \u6b64\u6a21\u5757\u7528\u4e8e\u517c\u5bb9 PostgreSQL 8.3 \u4e4b\u524d\u7684\u53d1\u884c\u7248\u6240\u9644\u5e26\u7684\u5168\u6587\u68c0\u7d22\u7248\u672c\u3002", "title": "\u79fb\u9664 contrib/tsearch2 \u6a21\u5757", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "5b293fe710a47e88f1d1b6b86f6b0cf588303e6d141a12e0c0cd07d53719ac28", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["7ada2d31f"]], "identity_text": "Remove contrib/tsearch2 module (Robert Haas) This module provided compatibility with the version of full text search that shipped in pre-8.3 PostgreSQL releases.", "commit_aliases": ["7ada2d31f"], "source_commits": ["7ada2d31f"], "source_entry_id": "10.0/migration/025", "db_id": "1a05147655c1210ec375bd2f9c02d1c9", "patch_ids": ["932b2c5e290267a22f18b1876e10ed18"], "statement_hash": "210ffe3563bf7de960c87e330df5a3634dd53e7cb340cb8172394e93657df03e", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-9a792b59008fbee8", "migration": true}, {"id": "10.0-acbea595b991352a", "cves": [], "html": "<p>\u79fb\u9664 <span>createlang</span> \u548c <span>droplang</span> \u547d\u4ee4\u884c\u5e94\u7528\u7a0b\u5e8f\uff08Peter Eisentraut\uff09</p>\n<p>\u5b83\u4eec\u4ece <span>PostgreSQL</span> 9.1 \u8d77\u5c31\u5df2\u5f03\u7528\u3002\u8bf7\u6539\u4e3a\u76f4\u63a5\u4f7f\u7528 <code>CREATE EXTENSION</code> \u548c <code>DROP EXTENSION</code>\u3002</p>", "text": "\u79fb\u9664 createlang \u548c droplang \u547d\u4ee4\u884c\u5e94\u7528\u7a0b\u5e8f\uff08Peter Eisentraut\uff09 \u5b83\u4eec\u4ece PostgreSQL 9.1 \u8d77\u5c31\u5df2\u5f03\u7528\u3002\u8bf7\u6539\u4e3a\u76f4\u63a5\u4f7f\u7528 CREATE EXTENSION \u548c DROP EXTENSION\u3002", "title": "\u79fb\u9664 createlang \u548c droplang \u547d\u4ee4\u884c\u5e94\u7528\u7a0b\u5e8f", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "287a432b197d685afb3eb49989b8717931cc846c6d6f2138c58f9e989c22c015", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["50c956add"]], "identity_text": "Remove createlang and droplang command-line applications (Peter Eisentraut) These had been deprecated since PostgreSQL 9.1. Instead, use CREATE EXTENSION and DROP EXTENSION directly.", "commit_aliases": ["50c956add"], "source_commits": ["50c956add"], "source_entry_id": "10.0/migration/026", "db_id": "be4162b3a2d32740af313594f0e1ceb7", "patch_ids": ["f00537f444f4a958e999e40e8a61f843"], "statement_hash": "ef1f41b24d6820f6e98884594ff9ae909f7f09f7cdd940a6c8e874d497e42a66", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-acbea595b991352a", "migration": true}, {"id": "10.0-3c1792b189304a7f", "cves": [], "html": "<p>\u79fb\u9664\u5bf9\u7248\u672c 0 \u51fd\u6570\u8c03\u7528\u7ea6\u5b9a\u7684\u652f\u6301\uff08Andres Freund\uff09</p>\n<p>\u63d0\u4f9b C \u7f16\u5199\u51fd\u6570\u7684\u6269\u5c55\u73b0\u5728\u5fc5\u987b\u9075\u5faa\u7248\u672c 1 \u8c03\u7528\u7ea6\u5b9a\u3002\u7248\u672c 0 \u4ece 2001 \u5e74\u8d77\u5c31\u5df2\u5f03\u7528\u3002</p>", "text": "\u79fb\u9664\u5bf9\u7248\u672c 0 \u51fd\u6570\u8c03\u7528\u7ea6\u5b9a\u7684\u652f\u6301\uff08Andres Freund\uff09 \u63d0\u4f9b C \u7f16\u5199\u51fd\u6570\u7684\u6269\u5c55\u73b0\u5728\u5fc5\u987b\u9075\u5faa\u7248\u672c 1 \u8c03\u7528\u7ea6\u5b9a\u3002\u7248\u672c 0 \u4ece 2001 \u5e74\u8d77\u5c31\u5df2\u5f03\u7528\u3002", "title": "\u79fb\u9664\u5bf9\u7248\u672c 0 \u51fd\u6570\u8c03\u7528\u7ea6\u5b9a\u7684\u652f\u6301", "commits": [], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "46b749c3477f25c73996e92b83370336f8e2d3bde60f30f3613ec4a4f77f049a", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["5ded4bd21"]], "identity_text": "Remove support for version-0 function calling conventions (Andres Freund) Extensions providing C-coded functions must now conform to version 1 calling conventions. Version 0 has been deprecated since 2001.", "commit_aliases": ["5ded4bd21"], "source_commits": ["5ded4bd21"], "source_entry_id": "10.0/migration/027", "db_id": "b5f209d771b4c1a1723ede502a54fd8d", "patch_ids": ["5babd72dcf17ae40b9fb5270462511a0"], "statement_hash": "d639fe62b1f2a136d0870bb65a945f583a53c42e9df3d4ee34f6d6e43bf59417", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=10.0#10.0-3c1792b189304a7f", "migration": true}, {"id": "10.0-4d4078de951b3744", "cves": [], "html": "<p>\u652f\u6301\u5e76\u884c B-\u6811\u7d22\u5f15\u626b\u63cf\uff08Rahila Syed\uff0cAmit Kapila\uff0cRobert Haas\uff0cRafia Sabih\uff09</p>\n<p>\u6b64\u53d8\u66f4\u5141\u8bb8\u4e0d\u540c\u7684\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u641c\u7d22 B-\u6811\u7d22\u5f15\u9875\u3002</p>", "text": "\u652f\u6301\u5e76\u884c B-\u6811\u7d22\u5f15\u626b\u63cf\uff08Rahila Syed\uff0cAmit Kapila\uff0cRobert Haas\uff0cRafia Sabih\uff09 \u6b64\u53d8\u66f4\u5141\u8bb8\u4e0d\u540c\u7684\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u641c\u7d22 B-\u6811\u7d22\u5f15\u9875\u3002", "title": "\u652f\u6301\u5e76\u884c B-\u6811\u7d22\u5f15\u626b\u63cf", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "aca557d3d1e58e26007b2b527cdaf5ecf6e6e800ce4f5b47d9cdc23aaaa405c5", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["0414b26ba"], ["5262f7a4f"], ["569174f1b"]], "identity_text": "Support parallel B-tree index scans (Rahila Syed, Amit Kapila, Robert Haas, Rafia Sabih) This change allows B-tree index pages to be searched by separate parallel workers.", "commit_aliases": ["0414b26ba", "5262f7a4f", "569174f1b"], "source_commits": ["0414b26ba", "5262f7a4f", "569174f1b"], "source_entry_id": "10.0/changes/001", "db_id": "682a5f9ecb4d0cdec4897c75626bfea3", "patch_ids": ["91fa2069512023818d14b0b319798fe9", "e3a26acf4fde7eee6bc7b5bc4d248fd9", "f7a7da66874b982f8eb549f21d6baf90"], "statement_hash": "22b451f44222b3a7f7d792a96897b8e0770d6221cd7c2d99dae5704d355247f4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-4d4078de951b3744", "migration": false}, {"id": "10.0-b915731735ecfee8", "cves": [], "html": "<p>\u652f\u6301\u5e76\u884c\u4f4d\u56fe\u5806\u626b\u63cf\uff08Dilip Kumar\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u5355\u6b21\u7d22\u5f15\u626b\u63cf\u6d3e\u53d1\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u6765\u5904\u7406\u5806\u7684\u4e0d\u540c\u533a\u57df\u3002</p>", "text": "\u652f\u6301\u5e76\u884c\u4f4d\u56fe\u5806\u626b\u63cf\uff08Dilip Kumar\uff09 \u8fd9\u5141\u8bb8\u5355\u6b21\u7d22\u5f15\u626b\u63cf\u6d3e\u53d1\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u6765\u5904\u7406\u5806\u7684\u4e0d\u540c\u533a\u57df\u3002", "title": "\u652f\u6301\u5e76\u884c\u4f4d\u56fe\u5806\u626b\u63cf", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "55b2bcad1979307015f5253a26c37c34039b21595d33597ebadfadbec1a60f8e", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["98e6e8904"], ["f35742ccb"]], "identity_text": "Support parallel bitmap heap scans (Dilip Kumar) This allows a single index scan to dispatch parallel workers to process different areas of the heap.", "commit_aliases": ["98e6e8904", "f35742ccb"], "source_commits": ["98e6e8904", "f35742ccb"], "source_entry_id": "10.0/changes/002", "db_id": "24fc5d0e51366f41e7f5e9922b8b5161", "patch_ids": ["629cf981d25684e5b147651f28b4c8e1", "6d957af0268dd9dfa2017b2d1c50e309"], "statement_hash": "eaa8b0fa7bd3eef5069cc71123c2ec79f39a5fc91838e44755055c5fac9e4250", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-b915731735ecfee8", "migration": false}, {"id": "10.0-f06e782634267906", "cves": [], "html": "<p>\u5141\u8bb8\u5e76\u884c\u6267\u884c\u5f52\u5e76\u8fde\u63a5\uff08Dilip Kumar\uff09</p>", "text": "\u5141\u8bb8\u5e76\u884c\u6267\u884c\u5f52\u5e76\u8fde\u63a5\uff08Dilip Kumar\uff09", "title": "\u5141\u8bb8\u5e76\u884c\u6267\u884c\u5f52\u5e76\u8fde\u63a5", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "9cdd92a093863975baaa75e4068354ceafac2fdedb9c1258afe5c58a0ba0da1e", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["3bc7dafa9"]], "identity_text": "Allow merge joins to be performed in parallel (Dilip Kumar)", "commit_aliases": ["3bc7dafa9"], "source_commits": ["3bc7dafa9"], "source_entry_id": "10.0/changes/003", "db_id": "c784e80ec5ff24465e15248f04a333c9", "patch_ids": ["7e68bf93dfa9618dc3fab75d8c1a3f07"], "statement_hash": "2d6e4b80ed0db4d3069c57fddab64c5616f6b89e25ca82c337515b66054a0a7f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-f06e782634267906", "migration": false}, {"id": "10.0-ff90184b80ba02aa", "cves": [], "html": "<p>\u5141\u8bb8\u5e76\u884c\u8fd0\u884c\u975e\u76f8\u5173\u5b50\u67e5\u8be2\uff08Amit Kapila\uff09</p>", "text": "\u5141\u8bb8\u5e76\u884c\u8fd0\u884c\u975e\u76f8\u5173\u5b50\u67e5\u8be2\uff08Amit Kapila\uff09", "title": "\u5141\u8bb8\u5e76\u884c\u8fd0\u884c\u975e\u76f8\u5173\u5b50\u67e5\u8be2", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "a610d55a792b25a3ffbd43a7ac84828eac5f4e02a0c4d85f5a3d8ba7eaa03b3c", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["5e6d8d2bb"]], "identity_text": "Allow non-correlated subqueries to be run in parallel (Amit Kapila)", "commit_aliases": ["5e6d8d2bb"], "source_commits": ["5e6d8d2bb"], "source_entry_id": "10.0/changes/004", "db_id": "e9d1c67ac3574d856f78446e579303c2", "patch_ids": ["849a1f5fd1b872e61dc71e18e4f9740b"], "statement_hash": "429f823fa1d5f284d176d32c6deed87d5301d11020e9f3e296e7fa23149d317a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-ff90184b80ba02aa", "migration": false}, {"id": "10.0-0028cdf8dab61926", "cves": [], "html": "<p>\u6539\u8fdb\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u8fd4\u56de\u9884\u6392\u5e8f\u6570\u636e\u7684\u80fd\u529b\uff08Rushabh Lathia\uff09</p>", "text": "\u6539\u8fdb\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u8fd4\u56de\u9884\u6392\u5e8f\u6570\u636e\u7684\u80fd\u529b\uff08Rushabh Lathia\uff09", "title": "\u6539\u8fdb\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u8fd4\u56de\u9884\u6392\u5e8f\u6570\u636e\u7684\u80fd\u529b", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "d09bfe1793536fd49f50aba5cb1149a2eaaff0c86f0bff40d45b8ae96a818242", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["355d3993c"]], "identity_text": "Improve ability of parallel workers to return pre-sorted data (Rushabh Lathia)", "commit_aliases": ["355d3993c"], "source_commits": ["355d3993c"], "source_entry_id": "10.0/changes/005", "db_id": "4c208a7743c924b79735347e1d426e8e", "patch_ids": ["509ec37077cec958eb5520e625d52052"], "statement_hash": "ffe5e05bbd6a0c40c4044d2b982561389a3d3bd8b1d7f3ea1d1ce0e74d0dcd9f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-0028cdf8dab61926", "migration": false}, {"id": "10.0-cd5931628e67992b", "cves": [], "html": "<p>\u6269\u5927\u8fc7\u7a0b\u8bed\u8a00\u51fd\u6570\u4e2d\u5e76\u884c\u67e5\u8be2\u7684\u4f7f\u7528\u8303\u56f4\uff08Robert Haas\uff0cRafia Sabih\uff09</p>", "text": "\u6269\u5927\u8fc7\u7a0b\u8bed\u8a00\u51fd\u6570\u4e2d\u5e76\u884c\u67e5\u8be2\u7684\u4f7f\u7528\u8303\u56f4\uff08Robert Haas\uff0cRafia Sabih\uff09", "title": "\u6269\u5927\u8fc7\u7a0b\u8bed\u8a00\u51fd\u6570\u4e2d\u5e76\u884c\u67e5\u8be2\u7684\u4f7f\u7528\u8303\u56f4", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "cf90018ade9f526b1660ab80f9829a58aab33ccd717b3bff1bff289f4df76e12", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["61c2e1a95"]], "identity_text": "Increase parallel query usage in procedural language functions (Robert Haas, Rafia Sabih)", "commit_aliases": ["61c2e1a95"], "source_commits": ["61c2e1a95"], "source_entry_id": "10.0/changes/006", "db_id": "c1ec4c90e1a33730fb117f91889e5d56", "patch_ids": ["78de1520fd1f32695c2ac39a44a45312"], "statement_hash": "331ac2a0ce4746c37ac7d206c3c29b1dd129805a494751cb961f8fde3fd6c611", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-cd5931628e67992b", "migration": false}, {"id": "10.0-b59ed5e99a7d7872", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/10/runtime-config-resource.html#GUC-MAX-PARALLEL-WORKERS\">max_parallel_workers</a>\uff0c\u7528\u4e8e\u9650\u5236\u53ef\u7528\u4e8e\u67e5\u8be2\u5e76\u884c\u5904\u7406\u7684\u5de5\u4f5c\u8fdb\u7a0b\u6570\u91cf\uff08Julien Rouhaud\uff09</p>\n<p>\u53ef\u4ee5\u5c06\u6b64\u53c2\u6570\u8bbe\u4e3a\u4f4e\u4e8e<a href=\"/docs/10/runtime-config-resource.html#GUC-MAX-WORKER-PROCESSES\">max_worker_processes</a>\u7684\u503c\uff0c\u4e3a\u5e76\u884c\u67e5\u8be2\u4ee5\u5916\u7684\u7528\u9014\u9884\u7559\u5de5\u4f5c\u8fdb\u7a0b\u3002</p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570max_parallel_workers\uff0c\u7528\u4e8e\u9650\u5236\u53ef\u7528\u4e8e\u67e5\u8be2\u5e76\u884c\u5904\u7406\u7684\u5de5\u4f5c\u8fdb\u7a0b\u6570\u91cf\uff08Julien Rouhaud\uff09 \u53ef\u4ee5\u5c06\u6b64\u53c2\u6570\u8bbe\u4e3a\u4f4e\u4e8emax_worker_processes\u7684\u503c\uff0c\u4e3a\u5e76\u884c\u67e5\u8be2\u4ee5\u5916\u7684\u7528\u9014\u9884\u7559\u5de5\u4f5c\u8fdb\u7a0b\u3002", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570max_parallel_workers\uff0c\u7528\u4e8e\u9650\u5236\u53ef\u7528\u4e8e\u67e5\u8be2\u5e76\u884c\u5904\u7406\u7684\u5de5\u4f5c\u8fdb\u7a0b\u6570\u91cf", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "7ae2c509b0d6dd29c37593531f0060e57681dd5167df8a3c5e48260c95f38fde", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [["2b959d495"], ["b460f5d66"]], "identity_text": "Add guc-max-parallel-workers server parameter to limit the number of worker processes that can be used for query parallelism (Julien Rouhaud) This parameter can be set lower than guc-max-worker-processes to reserve worker processes for purposes other than parallel queries.", "commit_aliases": ["2b959d495", "b460f5d66"], "source_commits": ["2b959d495", "b460f5d66"], "source_entry_id": "10.0/changes/007", "db_id": "abbd9ebe7d3a67e869eeee738c83311d", "patch_ids": ["36f84726e5753a84dfb5a09853b0630a", "df4cbddc4deffc229b293ac854537194"], "statement_hash": "e2f8f1f1dafe2a68f02fbb049caa9c1c255ba54f3deda2f6c1182bc172751dfb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-b59ed5e99a7d7872", "migration": false}, {"id": "10.0-f396054a52e87b4c", "cves": [], "html": "<p>\u5c06<a href=\"/docs/10/runtime-config-resource.html#GUC-MAX-PARALLEL-WORKERS-PER-GATHER\">max_parallel_workers_per_gather</a>\u7684\u9ed8\u8ba4\u8bbe\u7f6e\u6539\u4e3a <code>2</code>\uff0c\u4ee5\u9ed8\u8ba4\u542f\u7528\u5e76\u884c\u5904\u7406\u3002</p>", "text": "\u5c06max_parallel_workers_per_gather\u7684\u9ed8\u8ba4\u8bbe\u7f6e\u6539\u4e3a 2\uff0c\u4ee5\u9ed8\u8ba4\u542f\u7528\u5e76\u884c\u5904\u7406\u3002", "title": "\u5c06max_parallel_workers_per_gather\u7684\u9ed8\u8ba4\u8bbe\u7f6e\u6539\u4e3a 2\uff0c\u4ee5\u9ed8\u8ba4\u542f\u7528\u5e76\u884c\u5904\u7406\u3002", "commits": [], "section": "\u670d\u52a1\u5668 / \u5e76\u884c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "d60078ced0656b7dfcb792f54c97ce878331e9a4170a4b9dc04da27ea70777e6", "section_path": ["\u670d\u52a1\u5668", "\u5e76\u884c\u67e5\u8be2"], "commit_groups": [], "identity_text": "Enable parallelism by default by changing the default setting of guc-max-parallel-workers-per-gather to 2.", "commit_aliases": [], "source_commits": [], "source_entry_id": "10.0/changes/008", "db_id": "bf94f9b3b11e513d41c36f18b78c4803", "patch_ids": [], "statement_hash": "8f713efa0b4f6efeb065ab00bb6aad1aee7ef7ed2f64c8c0a5738d358a44d862", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-f396054a52e87b4c", "migration": false}, {"id": "10.0-421f050f7ced042c", "cves": [], "html": "<p>\u4e3a hash \u7d22\u5f15\u589e\u52a0\u9884\u5199\u5f0f\u65e5\u5fd7\u652f\u6301\uff08Amit Kapila\uff09</p>\n<p>\u8fd9\u4f7f hash \u7d22\u5f15\u80fd\u591f\u5b89\u5168\u5e94\u5bf9\u5d29\u6e83\u5e76\u652f\u6301\u590d\u5236\u3002\u4ee5\u524d\u5173\u4e8e\u5176\u4f7f\u7528\u7684\u8b66\u544a\u6d88\u606f\u5df2\u79fb\u9664\u3002</p>", "text": "\u4e3a hash \u7d22\u5f15\u589e\u52a0\u9884\u5199\u5f0f\u65e5\u5fd7\u652f\u6301\uff08Amit Kapila\uff09 \u8fd9\u4f7f hash \u7d22\u5f15\u80fd\u591f\u5b89\u5168\u5e94\u5bf9\u5d29\u6e83\u5e76\u652f\u6301\u590d\u5236\u3002\u4ee5\u524d\u5173\u4e8e\u5176\u4f7f\u7528\u7684\u8b66\u544a\u6d88\u606f\u5df2\u79fb\u9664\u3002", "title": "\u4e3a hash \u7d22\u5f15\u589e\u52a0\u9884\u5199\u5f0f\u65e5\u5fd7\u652f\u6301", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "fa617020316b9a307c6fde153beb850621e2c84a30491f530bca45ce2af31e58", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["30df93f69"], ["b0f18cb77"], ["c11453ce0"]], "identity_text": "Add write-ahead logging support to hash indexes (Amit Kapila) This makes hash indexes crash-safe and replicatable. The former warning message about their use is removed.", "commit_aliases": ["30df93f69", "b0f18cb77", "c11453ce0"], "source_commits": ["30df93f69", "b0f18cb77", "c11453ce0"], "source_entry_id": "10.0/changes/009", "db_id": "f6dd7d3a8bef90162e03c2d3e4e1e3a6", "patch_ids": ["1d965afca76234dfc985f8724bc6bcd5", "361abac0f8366db26c3ede435bd5e0ae", "c20c623ba1ad76fa2063d54dc3106115"], "statement_hash": "560804e59867b934dd1cafe40d85040a057e6e042d033f8cd36612ab37d2b026", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-421f050f7ced042c", "migration": false}, {"id": "10.0-c9bb65823060211b", "cves": [], "html": "<p>\u63d0\u5347 hash \u7d22\u5f15\u6027\u80fd\uff08Amit Kapila\uff0cMithun Cy\uff0cAshutosh Sharma\uff09</p>", "text": "\u63d0\u5347 hash \u7d22\u5f15\u6027\u80fd\uff08Amit Kapila\uff0cMithun Cy\uff0cAshutosh Sharma\uff09", "title": "\u63d0\u5347 hash \u7d22\u5f15\u6027\u80fd", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "646efed697bd84978d9f2442b234aa264931974436a5ab5faac8a4fbfa3a4baa", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["293e24e50"], ["620b49a16"], ["6977b8b7f"], ["6d46f4783"], ["ea69a0dea"]], "identity_text": "Improve hash index performance (Amit Kapila, Mithun Cy, Ashutosh Sharma)", "commit_aliases": ["293e24e50", "620b49a16", "6977b8b7f", "6d46f4783", "ea69a0dea"], "source_commits": ["293e24e50", "620b49a16", "6977b8b7f", "6d46f4783", "ea69a0dea"], "source_entry_id": "10.0/changes/010", "db_id": "1b1b0c796b5562126f6326ed5ed1fffe", "patch_ids": ["075f3ebb20a2eda8014f73811801ac39", "160ea01bcb9075d2469e9e7ffd94ff3f", "6759c40a077528852e7807d924b9b54b", "a9f874a6334070b7da10b1c5f7984550", "cf52f7bc92da3e9c0404fc6b0887717c"], "statement_hash": "4a873900b374f5c1632882dfe33ca1d3db459e6daf6be3e5862bf0f171c4007a", "relations": [{"rule": 2, "type": "related", "target": "a160d4c3b43ec4e671044c3176ac1458", "evidence": {"same_day": true, "patch_ids": ["075f3ebb20a2eda8014f73811801ac39", "cf52f7bc92da3e9c0404fc6b0887717c"]}}], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=10.0#10.0-c9bb65823060211b", "migration": false}, {"id": "10.0-d8b2a4a88c1d45a6", "cves": [], "html": "<p>\u4e3a <code>INET</code> \u548c <code>CIDR</code> \u6570\u636e\u7c7b\u578b\u589e\u52a0 <acronym>SP-GiST</acronym> \u7d22\u5f15\u652f\u6301\uff08Emre Hasegeli\uff09</p>", "text": "\u4e3a INET \u548c CIDR \u6570\u636e\u7c7b\u578b\u589e\u52a0 SP-GiST \u7d22\u5f15\u652f\u6301\uff08Emre Hasegeli\uff09", "title": "\u4e3a INET \u548c CIDR \u6570\u636e\u7c7b\u578b\u589e\u52a0 SP-GiST \u7d22\u5f15\u652f\u6301", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "c90888565a18bb0fff28a400dbe860065de94b6118661fccfd373d540ac272c9", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["77e290682"]], "identity_text": "Add SP-GiST index support for INET and CIDR data types (Emre Hasegeli)", "commit_aliases": ["77e290682"], "source_commits": ["77e290682"], "source_entry_id": "10.0/changes/011", "db_id": "ede70380413eff1e9696ad3265e7dd51", "patch_ids": ["d79365033970da3247bfa6a4f87b6efe"], "statement_hash": "c4b9443fa0d79a2ae17e17da9c2c0a84ed135ed115ae64d2f979af3ad089b6db", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d8b2a4a88c1d45a6", "migration": false}, {"id": "10.0-aef4246c965f2936", "cves": [], "html": "<p>\u589e\u52a0\u4e00\u4e2a\u9009\u9879\uff0c\u5141\u8bb8\u66f4\u79ef\u6781\u5730\u751f\u6210 <acronym>BRIN</acronym> \u7d22\u5f15\u6458\u8981\uff08\u00c1lvaro Herrera\uff09</p>\n<p>\u65b0\u589e\u7684 <a href=\"/docs/10/sql-createindex.html\" title=\"CREATE INDEX\"><code>CREATE INDEX</code></a> \u9009\u9879\u53ef\u5728\u521b\u5efa\u65b0\u9875\u8303\u56f4\u65f6\uff0c\u81ea\u52a8\u4e3a\u524d\u4e00\u4e2a <acronym>BRIN</acronym> \u9875\u8303\u56f4\u751f\u6210\u6458\u8981\u3002</p>", "text": "\u589e\u52a0\u4e00\u4e2a\u9009\u9879\uff0c\u5141\u8bb8\u66f4\u79ef\u6781\u5730\u751f\u6210 BRIN \u7d22\u5f15\u6458\u8981\uff08\u00c1lvaro Herrera\uff09 \u65b0\u589e\u7684 CREATE INDEX \u9009\u9879\u53ef\u5728\u521b\u5efa\u65b0\u9875\u8303\u56f4\u65f6\uff0c\u81ea\u52a8\u4e3a\u524d\u4e00\u4e2a BRIN \u9875\u8303\u56f4\u751f\u6210\u6458\u8981\u3002", "title": "\u589e\u52a0\u4e00\u4e2a\u9009\u9879\uff0c\u5141\u8bb8\u66f4\u79ef\u6781\u5730\u751f\u6210 BRIN \u7d22\u5f15\u6458\u8981", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "7a0e15c4d27bbdf7ac501e1ae7d09b38eab98cb702f96cc67bd4f636ee4a295b", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["7526e1022"]], "identity_text": "Add option to allow BRIN index summarization to happen more aggressively (\u00c1lvaro Herrera) A new CREATE INDEX option enables auto-summarization of the previous BRIN page range when a new page range is created.", "commit_aliases": ["7526e1022"], "source_commits": ["7526e1022"], "source_entry_id": "10.0/changes/012", "db_id": "ed84374b5ff4ce92fb6f4c352020052a", "patch_ids": ["5b2710e6ce0eb3b0fec898971faa8855"], "statement_hash": "6cb83522bd22c676dcae5f98c458c3682df138f32b83b6ee407f3b5ed4fafe12", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-aef4246c965f2936", "migration": false}, {"id": "10.0-1f5accb7dcd9a8e9", "cves": [], "html": "<p>\u589e\u52a0\u7528\u4e8e\u79fb\u9664\u548c\u91cd\u65b0\u6dfb\u52a0 <acronym>BRIN</acronym> \u7d22\u5f15\u8303\u56f4\u7684 <acronym>BRIN</acronym> \u6458\u8981\u7684\u51fd\u6570\uff08\u00c1lvaro Herrera\uff09</p>\n<p>\u65b0\u7684 <acronym>SQL</acronym> \u51fd\u6570 <a href=\"/docs/10/functions-admin.html#FUNCTIONS-ADMIN-INDEX-TABLE\" title=\"\u8868\u00a09.87.\u00a0\u7d22\u5f15\u7ef4\u62a4\u51fd\u6570\"><code>brin_summarize_range()</code></a> \u66f4\u65b0\u6307\u5b9a\u8303\u56f4\u7684 <acronym>BRIN</acronym> \u7d22\u5f15\u6458\u8981\uff0c\u800c <code>brin_desummarize_range()</code> \u5c06\u5176\u79fb\u9664\u3002\u8fd9\u6709\u52a9\u4e8e\u66f4\u65b0\u56e0 <code>UPDATE</code> \u548c <code>DELETE</code> \u800c\u7f29\u5c0f\u7684\u8303\u56f4\u7684\u6458\u8981\u3002</p>", "text": "\u589e\u52a0\u7528\u4e8e\u79fb\u9664\u548c\u91cd\u65b0\u6dfb\u52a0 BRIN \u7d22\u5f15\u8303\u56f4\u7684 BRIN \u6458\u8981\u7684\u51fd\u6570\uff08\u00c1lvaro Herrera\uff09 \u65b0\u7684 SQL \u51fd\u6570 brin_summarize_range() \u66f4\u65b0\u6307\u5b9a\u8303\u56f4\u7684 BRIN \u7d22\u5f15\u6458\u8981\uff0c\u800c brin_desummarize_range() \u5c06\u5176\u79fb\u9664\u3002\u8fd9\u6709\u52a9\u4e8e\u66f4\u65b0\u56e0 UPDATE \u548c DELETE \u800c\u7f29\u5c0f\u7684\u8303\u56f4\u7684\u6458\u8981\u3002", "title": "\u589e\u52a0\u7528\u4e8e\u79fb\u9664\u548c\u91cd\u65b0\u6dfb\u52a0 BRIN \u7d22\u5f15\u8303\u56f4\u7684 BRIN \u6458\u8981\u7684\u51fd\u6570", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "e81e86f272d792acc3cf3ded8bbdf165c3338e7b5367e6b8e8b2e9c17ba1f647", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["c655899ba"]], "identity_text": "Add functions to remove and re-add BRIN summarization for BRIN index ranges (\u00c1lvaro Herrera) The new SQL function brin_summarize_range() updates BRIN index summarization for a specified range and brin_desummarize_range() removes it. This is helpful to update summarization of a range that is now smaller due to UPDATEs and DELETEs.", "commit_aliases": ["c655899ba"], "source_commits": ["c655899ba"], "source_entry_id": "10.0/changes/013", "db_id": "3ac3aac6e2a0f510fb9d25fd469f39f7", "patch_ids": ["46f2d7a2e3f3e9b9e691406c66cb7d4c"], "statement_hash": "7b9b328762e884175b146a6bee4ffb6e49eced27e70ee078cf38bb9226d8dcf4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-1f5accb7dcd9a8e9", "migration": false}, {"id": "10.0-b7174afe81e1eb5d", "cves": [], "html": "<p>\u63d0\u9ad8\u5224\u65ad <acronym>BRIN</acronym> \u7d22\u5f15\u626b\u63cf\u662f\u5426\u6709\u76ca\u7684\u51c6\u786e\u6027\uff08David Rowley\uff0cEmre Hasegeli\uff09</p>", "text": "\u63d0\u9ad8\u5224\u65ad BRIN \u7d22\u5f15\u626b\u63cf\u662f\u5426\u6709\u76ca\u7684\u51c6\u786e\u6027\uff08David Rowley\uff0cEmre Hasegeli\uff09", "title": "\u63d0\u9ad8\u5224\u65ad BRIN \u7d22\u5f15\u626b\u63cf\u662f\u5426\u6709\u76ca\u7684\u51c6\u786e\u6027", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "38623bd18943c31c88e3c0644817754ba52fa4a0eaa49ba07862adfa48fd7a13", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["7e534adcd"]], "identity_text": "Improve accuracy in determining if a BRIN index scan is beneficial (David Rowley, Emre Hasegeli)", "commit_aliases": ["7e534adcd"], "source_commits": ["7e534adcd"], "source_entry_id": "10.0/changes/014", "db_id": "4a3a9681e4de32eff50a6844b84d1f3d", "patch_ids": ["38c076e6a2a1c68b83549d69fdfe6046"], "statement_hash": "4697ce18a739f6b66fbe3ea4e30d5845b230be125772b75978c9fb392932e4eb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-b7174afe81e1eb5d", "migration": false}, {"id": "10.0-55f1489518a7869e", "cves": [], "html": "<p>\u901a\u8fc7\u66f4\u6709\u6548\u5730\u590d\u7528\u7d22\u5f15\u7a7a\u95f4\uff0c\u52a0\u5feb <acronym>GiST</acronym> \u7684\u63d2\u5165\u548c\u66f4\u65b0\uff08Andrey Borodin\uff09</p>", "text": "\u901a\u8fc7\u66f4\u6709\u6548\u5730\u590d\u7528\u7d22\u5f15\u7a7a\u95f4\uff0c\u52a0\u5feb GiST \u7684\u63d2\u5165\u548c\u66f4\u65b0\uff08Andrey Borodin\uff09", "title": "\u901a\u8fc7\u66f4\u6709\u6548\u5730\u590d\u7528\u7d22\u5f15\u7a7a\u95f4\uff0c\u52a0\u5feb GiST \u7684\u63d2\u5165\u548c\u66f4\u65b0", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "873e1fae304b71cdaa7d7d3133f08f9f5f71bfb6d37ebee9338a92519b7a46d1", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["b1328d78f"]], "identity_text": "Allow faster GiST inserts and updates by reusing index space more efficiently (Andrey Borodin)", "commit_aliases": ["b1328d78f"], "source_commits": ["b1328d78f"], "source_entry_id": "10.0/changes/015", "db_id": "72c2c504d2cad357bfa42c1a57aeec03", "patch_ids": ["958af0fa41b150f1937d368cd9bd5dd7"], "statement_hash": "1efd64b4e1c6f919ab916c249d45b239626c584700a628bb3360ea4c3cef3199", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=10.0#10.0-55f1489518a7869e", "migration": false}, {"id": "10.0-de8060061e023445", "cves": [], "html": "<p>\u51cf\u5c11\u6e05\u7406 <acronym>GIN</acronym> \u7d22\u5f15\u671f\u95f4\u7684\u9875\u9501\u5b9a\uff08Andrey Borodin\uff09</p>", "text": "\u51cf\u5c11\u6e05\u7406 GIN \u7d22\u5f15\u671f\u95f4\u7684\u9875\u9501\u5b9a\uff08Andrey Borodin\uff09", "title": "\u51cf\u5c11\u6e05\u7406 GIN \u7d22\u5f15\u671f\u95f4\u7684\u9875\u9501\u5b9a", "commits": [], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "54234c0421590e825056630e0e51e79bec4f242af70ee5144c1452e68be025fd", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["218f51584"]], "identity_text": "Reduce page locking during vacuuming of GIN indexes (Andrey Borodin)", "commit_aliases": ["218f51584"], "source_commits": ["218f51584"], "source_entry_id": "10.0/changes/016", "db_id": "cf69d56def03ed14755fd31def0e340e", "patch_ids": ["af5a4f84bd504729b8d5553c5738666c"], "statement_hash": "feb3878a230e43b5012884158962e33eb28eb30945219a110608f2b9bce84e2c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-de8060061e023445", "migration": false}, {"id": "10.0-baa5ff88603ee286", "cves": [], "html": "<p>\u51cf\u5c11\u66f4\u6539\u8868\u53c2\u6570\u6240\u9700\u7684\u9501\u5b9a\uff08Simon Riggs\uff0cFabr\u00edzio Mello\uff09</p>\n<p>\u4f8b\u5982\uff0c\u73b0\u5728\u53ef\u4ee5\u4f7f\u7528\u66f4\u8f7b\u91cf\u7684\u9501\u6765\u66f4\u6539\u8868\u7684<a href=\"/docs/10/runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY\">effective_io_concurrency</a>\u8bbe\u7f6e\u3002</p>", "text": "\u51cf\u5c11\u66f4\u6539\u8868\u53c2\u6570\u6240\u9700\u7684\u9501\u5b9a\uff08Simon Riggs\uff0cFabr\u00edzio Mello\uff09 \u4f8b\u5982\uff0c\u73b0\u5728\u53ef\u4ee5\u4f7f\u7528\u66f4\u8f7b\u91cf\u7684\u9501\u6765\u66f4\u6539\u8868\u7684effective_io_concurrency\u8bbe\u7f6e\u3002", "title": "\u51cf\u5c11\u66f4\u6539\u8868\u53c2\u6570\u6240\u9700\u7684\u9501\u5b9a", "commits": [], "section": "\u670d\u52a1\u5668 / \u9501\u5b9a", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.4", "source_hash": "91ab7a497fc5770163a3a945e5773e800c8e7a32ffd2da0041ec494a3ebf0559", "section_path": ["\u670d\u52a1\u5668", "\u9501\u5b9a"], "commit_groups": [["21d4e2e20"], ["68ea2b7f9"]], "identity_text": "Reduce locking required to change table parameters (Simon Riggs, Fabr\u00edzio Mello) For example, changing a table's guc-effective-io-concurrency setting can now be done with a more lightweight lock.", "commit_aliases": ["21d4e2e20", "68ea2b7f9"], "source_commits": ["21d4e2e20", "68ea2b7f9"], "source_entry_id": "10.0/changes/017", "db_id": "03e8ed29f7925f4b75f852de9ecac106", "patch_ids": ["0362c70ef060a8323099d6f91c42b444", "d778ac864ec469991b691e09935a25b0"], "statement_hash": "a88b00fc4ab215877dfbc9078872b452a425181d9a8469401118815d6103ef15", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-baa5ff88603ee286", "migration": false}, {"id": "10.0-1a360e0784434cbb", "cves": [], "html": "<p>\u5141\u8bb8\u8c03\u6574\u8c13\u8bcd\u9501\u5347\u7ea7\u9608\u503c\uff08Dagfinn Ilmari Manns\u00e5ker\uff09</p>\n<p>\u73b0\u5728\u53ef\u4ee5\u901a\u8fc7\u4e24\u4e2a\u65b0\u7684\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/10/runtime-config-locks.html#GUC-MAX-PRED-LOCKS-PER-RELATION\">max_pred_locks_per_relation</a>\u548c<a href=\"/docs/10/runtime-config-locks.html#GUC-MAX-PRED-LOCKS-PER-PAGE\">max_pred_locks_per_page</a>\u63a7\u5236\u9501\u5347\u7ea7\u3002</p>", "text": "\u5141\u8bb8\u8c03\u6574\u8c13\u8bcd\u9501\u5347\u7ea7\u9608\u503c\uff08Dagfinn Ilmari Manns\u00e5ker\uff09 \u73b0\u5728\u53ef\u4ee5\u901a\u8fc7\u4e24\u4e2a\u65b0\u7684\u670d\u52a1\u5668\u53c2\u6570max_pred_locks_per_relation\u548cmax_pred_locks_per_page\u63a7\u5236\u9501\u5347\u7ea7\u3002", "title": "\u5141\u8bb8\u8c03\u6574\u8c13\u8bcd\u9501\u5347\u7ea7\u9608\u503c", "commits": [], "section": "\u670d\u52a1\u5668 / \u9501\u5b9a", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.4", "source_hash": "1b164abf1c1c1a7263268b6d9468c9258294c14fbf95f8399d6c1d96d153912e", "section_path": ["\u670d\u52a1\u5668", "\u9501\u5b9a"], "commit_groups": [["c63172d60"]], "identity_text": "Allow tuning of predicate lock promotion thresholds (Dagfinn Ilmari Manns\u00e5ker) Lock promotion can now be controlled through two new server parameters, guc-max-pred-locks-per-relation and guc-max-pred-locks-per-page .", "commit_aliases": ["c63172d60"], "source_commits": ["c63172d60"], "source_entry_id": "10.0/changes/018", "db_id": "f2a62da54906e93a244338a9f1df3037", "patch_ids": ["55bcf78b0fa537d7fd1325d7279409cd"], "statement_hash": "5f4f7e007595f1d08973f2b118f76f5beefc7d6474e826547b45b274c5b2d5e7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-1a360e0784434cbb", "migration": false}, {"id": "10.0-1417ce2d9eb52b9a", "cves": [], "html": "<p>\u589e\u52a0\u591a\u5217\u4f18\u5316\u5668\u7edf\u8ba1\u4fe1\u606f\uff0c\u7528\u4e8e\u8ba1\u7b97\u76f8\u5173\u6bd4\u7387\u548c\u4e0d\u540c\u503c\u6570\u91cf\uff08Tomas Vondra\uff0cDavid Rowley\uff0c\u00c1lvaro Herrera\uff09</p>\n<p>\u65b0\u547d\u4ee4\u5305\u62ec <a href=\"/docs/10/sql-createstatistics.html\" title=\"CREATE STATISTICS\"><code>CREATE STATISTICS</code></a>\u3001<a href=\"/docs/10/sql-alterstatistics.html\" title=\"ALTER STATISTICS\"><code>ALTER STATISTICS</code></a> \u548c <a href=\"/docs/10/sql-dropstatistics.html\" title=\"DROP STATISTICS\"><code>DROP STATISTICS</code></a>\u3002\u6b64\u529f\u80fd\u6709\u52a9\u4e8e\u4f30\u7b97\u67e5\u8be2\u5185\u5b58\u7528\u91cf\uff0c\u4ee5\u53ca\u7ec4\u5408\u5404\u5217\u7684\u7edf\u8ba1\u4fe1\u606f\u3002</p>", "text": "\u589e\u52a0\u591a\u5217\u4f18\u5316\u5668\u7edf\u8ba1\u4fe1\u606f\uff0c\u7528\u4e8e\u8ba1\u7b97\u76f8\u5173\u6bd4\u7387\u548c\u4e0d\u540c\u503c\u6570\u91cf\uff08Tomas Vondra\uff0cDavid Rowley\uff0c\u00c1lvaro Herrera\uff09 \u65b0\u547d\u4ee4\u5305\u62ec CREATE STATISTICS\u3001ALTER STATISTICS \u548c DROP STATISTICS\u3002\u6b64\u529f\u80fd\u6709\u52a9\u4e8e\u4f30\u7b97\u67e5\u8be2\u5185\u5b58\u7528\u91cf\uff0c\u4ee5\u53ca\u7ec4\u5408\u5404\u5217\u7684\u7edf\u8ba1\u4fe1\u606f\u3002", "title": "\u589e\u52a0\u591a\u5217\u4f18\u5316\u5668\u7edf\u8ba1\u4fe1\u606f\uff0c\u7528\u4e8e\u8ba1\u7b97\u76f8\u5173\u6bd4\u7387\u548c\u4e0d\u540c\u503c\u6570\u91cf", "commits": [], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.5", "source_hash": "3ecc2991f68d04f65fd0098bfb5a258ec6049b29799d0646f640853c5a3e7020", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["2686ee1b7"], ["7b504eb28"], ["bc085205c"]], "identity_text": "Add multi-column optimizer statistics to compute the correlation ratio and number of distinct values (Tomas Vondra, David Rowley, \u00c1lvaro Herrera) New commands are CREATE STATISTICS, ALTER STATISTICS, and DROP STATISTICS. This feature is helpful in estimating query memory usage and when combining the statistics from individual columns.", "commit_aliases": ["2686ee1b7", "7b504eb28", "bc085205c"], "source_commits": ["2686ee1b7", "7b504eb28", "bc085205c"], "source_entry_id": "10.0/changes/019", "db_id": "95c45126496ccbc42e992037b2e36f79", "patch_ids": ["071d28abee56578c9ac9a9abe84bba82", "2d2186bb154a4a94e0a5c995f4d9401c", "48660e4757d3fc4de1727ad1a855cdec"], "statement_hash": "014f8ca929ae1364460b00003f203b0fe24eb6f5b9f5357b4e01b7e8d90bea2d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-1417ce2d9eb52b9a", "migration": false}, {"id": "10.0-462a642f28f2109c", "cves": [], "html": "<p>\u63d0\u9ad8\u53d7\u884c\u7ea7\u5b89\u5168\u9650\u5236\u5f71\u54cd\u7684\u67e5\u8be2\u7684\u6027\u80fd\uff08Tom Lane\uff09</p>\n<p>\u4f18\u5316\u5668\u73b0\u5728\u66f4\u6e05\u695a\u53ef\u4ee5\u5c06 RLS \u8fc7\u6ee4\u6761\u4ef6\u653e\u5728\u4f55\u5904\uff0c\u4ece\u800c\u5728\u5b89\u5168\u5b9e\u65bd RLS \u6761\u4ef6\u7684\u540c\u65f6\u751f\u6210\u66f4\u597d\u7684\u8ba1\u5212\u3002</p>", "text": "\u63d0\u9ad8\u53d7\u884c\u7ea7\u5b89\u5168\u9650\u5236\u5f71\u54cd\u7684\u67e5\u8be2\u7684\u6027\u80fd\uff08Tom Lane\uff09 \u4f18\u5316\u5668\u73b0\u5728\u66f4\u6e05\u695a\u53ef\u4ee5\u5c06 RLS \u8fc7\u6ee4\u6761\u4ef6\u653e\u5728\u4f55\u5904\uff0c\u4ece\u800c\u5728\u5b89\u5168\u5b9e\u65bd RLS \u6761\u4ef6\u7684\u540c\u65f6\u751f\u6210\u66f4\u597d\u7684\u8ba1\u5212\u3002", "title": "\u63d0\u9ad8\u53d7\u884c\u7ea7\u5b89\u5168\u9650\u5236\u5f71\u54cd\u7684\u67e5\u8be2\u7684\u6027\u80fd", "commits": [], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.5", "source_hash": "63087745028303bed5708851010959a235822d06b5b2ad1a44b30dd43ceb4d3a", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["215b43cdc"]], "identity_text": "Improve performance of queries affected by row-level security restrictions (Tom Lane) The optimizer now has more knowledge about where it can place RLS filter conditions, allowing better plans to be generated while still enforcing the RLS conditions safely.", "commit_aliases": ["215b43cdc"], "source_commits": ["215b43cdc"], "source_entry_id": "10.0/changes/020", "db_id": "aedc755a19871b47cb5166ba00e27e27", "patch_ids": ["46a4422734002802265df47eeea0d0fb"], "statement_hash": "314e46d8b05aeb6c02502a43a7d599456722fdc05f1f4eb1eea50e573bb25bb8", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=10.0#10.0-462a642f28f2109c", "migration": false}, {"id": "10.0-90bb4ad676212d6f", "cves": [], "html": "<p>\u52a0\u5feb\u4f7f\u7528 <code>numeric</code> \u7c7b\u578b\u7b97\u672f\u8ba1\u7b97\u7d2f\u8ba1\u548c\u7684\u805a\u5408\u51fd\u6570\uff0c\u5305\u62ec <code>SUM()</code>\u3001<code>AVG()</code> \u548c <code>STDDEV()</code> \u7684\u67d0\u4e9b\u53d8\u4f53\uff08Heikki Linnakangas\uff09</p>", "text": "\u52a0\u5feb\u4f7f\u7528 numeric \u7c7b\u578b\u7b97\u672f\u8ba1\u7b97\u7d2f\u8ba1\u548c\u7684\u805a\u5408\u51fd\u6570\uff0c\u5305\u62ec SUM()\u3001AVG() \u548c STDDEV() \u7684\u67d0\u4e9b\u53d8\u4f53\uff08Heikki Linnakangas\uff09", "title": "\u52a0\u5feb\u4f7f\u7528 numeric \u7c7b\u578b\u7b97\u672f\u8ba1\u7b97\u7d2f\u8ba1\u548c\u7684\u805a\u5408\u51fd\u6570\uff0c\u5305\u62ec SUM()\u3001AVG() \u548c STDDEV() \u7684\u67d0\u4e9b\u53d8\u4f53", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "388bfef76ad2e6df1d381fdace328bd03cc06271110cf941d93c6651e4c8b071", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["9cca11c91"]], "identity_text": "Speed up aggregate functions that calculate a running sum using numeric-type arithmetic, including some variants of SUM(), AVG(), and STDDEV() (Heikki Linnakangas)", "commit_aliases": ["9cca11c91"], "source_commits": ["9cca11c91"], "source_entry_id": "10.0/changes/021", "db_id": "22f77a8b9b12088b50c002a2dcacb437", "patch_ids": ["c48dc50a58961e755fcbf82e98b4f7d8"], "statement_hash": "02621dba2511c773dc02c378a362aee7931b98b0b08b521fc043746ade161f1c", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=10.0#10.0-90bb4ad676212d6f", "migration": false}, {"id": "10.0-58b9113597549532", "cves": [], "html": "<p>\u901a\u8fc7\u4f7f\u7528\u57fa\u6570\u6811\u63d0\u5347\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\u6027\u80fd\uff08Kyotaro Horiguchi\uff0cHeikki Linnakangas\uff09</p>", "text": "\u901a\u8fc7\u4f7f\u7528\u57fa\u6570\u6811\u63d0\u5347\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\u6027\u80fd\uff08Kyotaro Horiguchi\uff0cHeikki Linnakangas\uff09", "title": "\u901a\u8fc7\u4f7f\u7528\u57fa\u6570\u6811\u63d0\u5347\u5b57\u7b26\u7f16\u7801\u8f6c\u6362\u6027\u80fd", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "d5ab19d5e750c79efa4a97073df0229f0c4de02cfb0bedec8302b4c3e11dee67", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["aeed17d00"]], "identity_text": "Improve performance of character encoding conversions by using radix trees (Kyotaro Horiguchi, Heikki Linnakangas)", "commit_aliases": ["aeed17d00"], "source_commits": ["aeed17d00"], "source_entry_id": "10.0/changes/022", "db_id": "c645b71861ca967a72c8abf674da258d", "patch_ids": ["185e9a021cca9226f2cf50bfc0ac993f"], "statement_hash": "6b98766abfd66058dc51b50da6f729ec3719981f995060188b50a283a9dd29f4", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=10.0#10.0-58b9113597549532", "migration": false}, {"id": "10.0-44b476d6db1e177c", "cves": [], "html": "<p>\u964d\u4f4e\u67e5\u8be2\u6267\u884c\u671f\u95f4\u7684\u8868\u8fbe\u5f0f\u6c42\u503c\u5f00\u9500\u548c\u8ba1\u5212\u8282\u70b9\u8c03\u7528\u5f00\u9500\uff08Andres Freund\uff09</p>\n<p>\u8fd9\u5bf9\u4e8e\u5904\u7406\u5927\u91cf\u884c\u7684\u67e5\u8be2\u5c24\u5176\u6709\u5e2e\u52a9\u3002</p>", "text": "\u964d\u4f4e\u67e5\u8be2\u6267\u884c\u671f\u95f4\u7684\u8868\u8fbe\u5f0f\u6c42\u503c\u5f00\u9500\u548c\u8ba1\u5212\u8282\u70b9\u8c03\u7528\u5f00\u9500\uff08Andres Freund\uff09 \u8fd9\u5bf9\u4e8e\u5904\u7406\u5927\u91cf\u884c\u7684\u67e5\u8be2\u5c24\u5176\u6709\u5e2e\u52a9\u3002", "title": "\u964d\u4f4e\u67e5\u8be2\u6267\u884c\u671f\u95f4\u7684\u8868\u8fbe\u5f0f\u6c42\u503c\u5f00\u9500\u548c\u8ba1\u5212\u8282\u70b9\u8c03\u7528\u5f00\u9500", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "5aded6e9fe95f159d390c23cf60f5939626bb4f3e8ed4d9d846b18abbef08336", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["b8d7f053c"], ["cc9f08b6b"]], "identity_text": "Reduce expression evaluation overhead during query execution, as well as plan node calling overhead (Andres Freund) This is particularly helpful for queries that process many rows.", "commit_aliases": ["b8d7f053c", "cc9f08b6b"], "source_commits": ["b8d7f053c", "cc9f08b6b"], "source_entry_id": "10.0/changes/023", "db_id": "37ec3e16410b3679e8ec302bf54ec3f9", "patch_ids": ["6972bf8f12429a286990b6d6b79b6d05", "c583553efe8cc6ed3441f8448744f770"], "statement_hash": "31f4b0068b97a365bf20839668498a509e0df7b6c4082f5c07f7ca0a3ad772a8", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=10.0#10.0-44b476d6db1e177c", "migration": false}, {"id": "10.0-c32b449ec864ad76", "cves": [], "html": "<p>\u5141\u8bb8\u5bf9\u5206\u7ec4\u96c6\u4f7f\u7528 hash \u805a\u5408\uff08Andrew Gierth\uff09</p>", "text": "\u5141\u8bb8\u5bf9\u5206\u7ec4\u96c6\u4f7f\u7528 hash \u805a\u5408\uff08Andrew Gierth\uff09", "title": "\u5141\u8bb8\u5bf9\u5206\u7ec4\u96c6\u4f7f\u7528 hash \u805a\u5408", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "c2b08341f19ef757cad75fdfa47ea562a2ff62339aab26d6c6080de43ab946bb", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["b5635948a"]], "identity_text": "Allow hashed aggregation to be used with grouping sets (Andrew Gierth)", "commit_aliases": ["b5635948a"], "source_commits": ["b5635948a"], "source_entry_id": "10.0/changes/024", "db_id": "462fa1732b982d6224435709bbab7cd8", "patch_ids": ["5df792cd132af1166945ad18f97760c8"], "statement_hash": "2bb7751c8e9e4ebcca9a50fb1dca0205f9b5808245d9bac5b19be88907614ec8", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=10.0#10.0-c32b449ec864ad76", "migration": false}, {"id": "10.0-4ded7b62fb3d04ee", "cves": [], "html": "<p>\u5229\u7528\u552f\u4e00\u6027\u4fdd\u8bc1\u4f18\u5316\u67d0\u4e9b\u8fde\u63a5\u7c7b\u578b\uff08David Rowley\uff09</p>", "text": "\u5229\u7528\u552f\u4e00\u6027\u4fdd\u8bc1\u4f18\u5316\u67d0\u4e9b\u8fde\u63a5\u7c7b\u578b\uff08David Rowley\uff09", "title": "\u5229\u7528\u552f\u4e00\u6027\u4fdd\u8bc1\u4f18\u5316\u67d0\u4e9b\u8fde\u63a5\u7c7b\u578b", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "4c74193b31f377f1f61a3c8c2175236a6d1ef1e4b7bfe77f7261592576a0a96a", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["23886581b"], ["9c7f5229a"]], "identity_text": "Use uniqueness guarantees to optimize certain join types (David Rowley)", "commit_aliases": ["23886581b", "9c7f5229a"], "source_commits": ["23886581b", "9c7f5229a"], "source_entry_id": "10.0/changes/025", "db_id": "a497fd0779d1413d9e58d39c3a4efda8", "patch_ids": ["3a88d4439de16075a5e21a2ec2734b4b", "cb899a40b67185d81457c2b38164d79e"], "statement_hash": "6654469be140987fa0bacdc94b993b4dff5f1de14d2fc2834502dfdfc09121a3", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=10.0#10.0-4ded7b62fb3d04ee", "migration": false}, {"id": "10.0-11b136d11f0f1788", "cves": [], "html": "<p>\u63d0\u5347 <code>macaddr</code> \u6570\u636e\u7c7b\u578b\u7684\u6392\u5e8f\u6027\u80fd\uff08Brandur Leach\uff09</p>", "text": "\u63d0\u5347 macaddr \u6570\u636e\u7c7b\u578b\u7684\u6392\u5e8f\u6027\u80fd\uff08Brandur Leach\uff09", "title": "\u63d0\u5347 macaddr \u6570\u636e\u7c7b\u578b\u7684\u6392\u5e8f\u6027\u80fd", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "ee0e704b4bcc30b1925adbfe690aff5a0cf5187d5cddbabba49bbfdd8bb7efe5", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["f90d23d0c"]], "identity_text": "Improve sort performance of the macaddr data type (Brandur Leach)", "commit_aliases": ["f90d23d0c"], "source_commits": ["f90d23d0c"], "source_entry_id": "10.0/changes/026", "db_id": "39c690edaa071e1e7a7305ad5128b67c", "patch_ids": ["7ea9c225d9fcabcb590eec394f63e593"], "statement_hash": "e33934eec2e7f5b578d7d3212fb8cc6e8be888b8fe421a58c38d42e7b4141c46", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=10.0#10.0-11b136d11f0f1788", "migration": false}, {"id": "10.0-e3e64c2eb60c7d8d", "cves": [], "html": "<p>\u51cf\u5c11\u5f15\u7528\u6570\u5343\u4e2a\u5173\u7cfb\u7684\u4f1a\u8bdd\u4e2d\u7684\u7edf\u8ba1\u4fe1\u606f\u8ddf\u8e2a\u5f00\u9500\uff08Aleksander Alekseev\uff09</p>", "text": "\u51cf\u5c11\u5f15\u7528\u6570\u5343\u4e2a\u5173\u7cfb\u7684\u4f1a\u8bdd\u4e2d\u7684\u7edf\u8ba1\u4fe1\u606f\u8ddf\u8e2a\u5f00\u9500\uff08Aleksander Alekseev\uff09", "title": "\u51cf\u5c11\u5f15\u7528\u6570\u5343\u4e2a\u5173\u7cfb\u7684\u4f1a\u8bdd\u4e2d\u7684\u7edf\u8ba1\u4fe1\u606f\u8ddf\u8e2a\u5f00\u9500", "commits": [], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "8f42cb8829b0375e0aaad5cda279df5896c09c29558121d70e61921e24385492", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["090010f2e"]], "identity_text": "Reduce statistics tracking overhead in sessions that reference many thousands of relations (Aleksander Alekseev)", "commit_aliases": ["090010f2e"], "source_commits": ["090010f2e"], "source_entry_id": "10.0/changes/027", "db_id": "1c8079c8d371eb57ce2f3d1d6cc62bb6", "patch_ids": ["6cab17a8be470f60e10b85a56008788b"], "statement_hash": "93f5fffd6c920bbffef5a853de79b95d24f970f71db7e006be9b73a29028e7e2", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=10.0#10.0-e3e64c2eb60c7d8d", "migration": false}, {"id": "10.0-5f571490ca628b93", "cves": [], "html": "<p>\u5141\u8bb8\u663e\u5f0f\u63a7\u5236 <a href=\"/docs/10/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN</code></a> \u662f\u5426\u663e\u793a\u89c4\u5212\u548c\u6267\u884c\u65f6\u95f4\uff08Ashutosh Bapat\uff09</p>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c<code>EXPLAIN ANALYZE</code> \u4f1a\u663e\u793a\u89c4\u5212\u548c\u6267\u884c\u65f6\u95f4\uff0c\u5176\u4ed6\u60c5\u51b5\u4e0b\u5219\u4e0d\u663e\u793a\u3002\u65b0\u7684 <code>EXPLAIN</code> \u9009\u9879 <code>SUMMARY</code> \u5141\u8bb8\u663e\u5f0f\u63a7\u5236\u8fd9\u4e00\u884c\u4e3a\u3002</p>", "text": "\u5141\u8bb8\u663e\u5f0f\u63a7\u5236 EXPLAIN \u662f\u5426\u663e\u793a\u89c4\u5212\u548c\u6267\u884c\u65f6\u95f4\uff08Ashutosh Bapat\uff09 \u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cEXPLAIN ANALYZE \u4f1a\u663e\u793a\u89c4\u5212\u548c\u6267\u884c\u65f6\u95f4\uff0c\u5176\u4ed6\u60c5\u51b5\u4e0b\u5219\u4e0d\u663e\u793a\u3002\u65b0\u7684 EXPLAIN \u9009\u9879 SUMMARY \u5141\u8bb8\u663e\u5f0f\u63a7\u5236\u8fd9\u4e00\u884c\u4e3a\u3002", "title": "\u5141\u8bb8\u663e\u5f0f\u63a7\u5236 EXPLAIN \u662f\u5426\u663e\u793a\u89c4\u5212\u548c\u6267\u884c\u65f6\u95f4", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7", "source_hash": "ea584d87af6b8e5364fe81e7b3f8a8cb06f1e9f4d0291281074ad30e2b8afc76", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["f9b1a0dd4"]], "identity_text": "Allow explicit control over EXPLAIN's display of planning and execution time (Ashutosh Bapat) By default planning and execution time are displayed by EXPLAIN ANALYZE and are not displayed in other cases. The new EXPLAIN option SUMMARY allows explicit control of this.", "commit_aliases": ["f9b1a0dd4"], "source_commits": ["f9b1a0dd4"], "source_entry_id": "10.0/changes/028", "db_id": "28d39e9160b8d768e68a3a4cc128bc68", "patch_ids": ["2f39a1b612c53848ca1f862ccaaadd4b"], "statement_hash": "5fbd93e1bf5cdc2a63e9136c89d98b723a2037ed17ca95db05522aaf54301d76", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-5f571490ca628b93", "migration": false}, {"id": "10.0-cbb5e38245a3abea", "cves": [], "html": "<p>\u589e\u52a0\u9ed8\u8ba4\u76d1\u63a7\u89d2\u8272\uff08Dave Page\uff09</p>\n<p>\u65b0\u89d2\u8272 <code>pg_monitor</code>\u3001<code>pg_read_all_settings</code>\u3001<code>pg_read_all_stats</code> \u548c <code>pg_stat_scan_tables</code> \u53ef\u4ee5\u7b80\u5316\u6743\u9650\u914d\u7f6e\u3002</p>", "text": "\u589e\u52a0\u9ed8\u8ba4\u76d1\u63a7\u89d2\u8272\uff08Dave Page\uff09 \u65b0\u89d2\u8272 pg_monitor\u3001pg_read_all_settings\u3001pg_read_all_stats \u548c pg_stat_scan_tables \u53ef\u4ee5\u7b80\u5316\u6743\u9650\u914d\u7f6e\u3002", "title": "\u589e\u52a0\u9ed8\u8ba4\u76d1\u63a7\u89d2\u8272", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7", "source_hash": "be247921782ba0e7291a2fd8772e0c531053e0be754149fb681ab8191b5f147a", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["25fff4079"]], "identity_text": "Add default monitoring roles (Dave Page) New roles pg_monitor, pg_read_all_settings, pg_read_all_stats, and pg_stat_scan_tables allow simplified permission configuration.", "commit_aliases": ["25fff4079"], "source_commits": ["25fff4079"], "source_entry_id": "10.0/changes/029", "db_id": "03c8c16633bfa3315cb7603e836e7926", "patch_ids": ["322acabb1b3a98d246d2337a8920beb5"], "statement_hash": "8eefc221d6eaff31471c52fca0d85037602cae0fc92a246f126815aa269104b8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-cbb5e38245a3abea", "migration": false}, {"id": "10.0-0bb28791af46d99b", "cves": [], "html": "<p>\u5728 <a href=\"/docs/10/sql-refreshmaterializedview.html\" title=\"REFRESH MATERIALIZED VIEW\"><code>REFRESH MATERIALIZED VIEW</code></a> \u671f\u95f4\u6b63\u786e\u66f4\u65b0\u7edf\u8ba1\u4fe1\u606f\u6536\u96c6\u5668\uff08Jim Mlodgenski\uff09</p>", "text": "\u5728 REFRESH MATERIALIZED VIEW \u671f\u95f4\u6b63\u786e\u66f4\u65b0\u7edf\u8ba1\u4fe1\u606f\u6536\u96c6\u5668\uff08Jim Mlodgenski\uff09", "title": "\u5728 REFRESH MATERIALIZED VIEW \u671f\u95f4\u6b63\u786e\u66f4\u65b0\u7edf\u8ba1\u4fe1\u606f\u6536\u96c6\u5668", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7", "source_hash": "97fe3f8b3e07930bb7e9d58904a340f2e76229d2c8f447aa08c16e3c63541b5d", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["17f8ffa1e"]], "identity_text": "Properly update the statistics collector during REFRESH MATERIALIZED VIEW (Jim Mlodgenski)", "commit_aliases": ["17f8ffa1e"], "source_commits": ["17f8ffa1e"], "source_entry_id": "10.0/changes/030", "db_id": "4e700e64245bfb6ff8551c913b9f4edc", "patch_ids": ["677dbcde628c3cafeccb6ffba5d3d81e"], "statement_hash": "8e7297999574218d60a7ba546bafeb3570ae76c6fab38f8403630a884df50b23", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-0bb28791af46d99b", "migration": false}, {"id": "10.0-deba8276678cf2c8", "cves": [], "html": "<p>\u66f4\u6539<a href=\"/docs/10/runtime-config-logging.html#GUC-LOG-LINE-PREFIX\">log_line_prefix</a>\u7684\u9ed8\u8ba4\u503c\uff0c\u4f7f postmaster \u65e5\u5fd7\u8f93\u51fa\u7684\u6bcf\u4e00\u884c\u90fd\u5305\u542b\u5f53\u524d\u65f6\u95f4\u6233\uff08\u542b\u6beb\u79d2\uff09\u548c\u8fdb\u7a0b ID\uff08Christoph Berg\uff09</p>\n<p>\u4ee5\u524d\u7684\u9ed8\u8ba4\u503c\u662f\u7a7a\u524d\u7f00\u3002</p>", "text": "\u66f4\u6539log_line_prefix\u7684\u9ed8\u8ba4\u503c\uff0c\u4f7f postmaster \u65e5\u5fd7\u8f93\u51fa\u7684\u6bcf\u4e00\u884c\u90fd\u5305\u542b\u5f53\u524d\u65f6\u95f4\u6233\uff08\u542b\u6beb\u79d2\uff09\u548c\u8fdb\u7a0b ID\uff08Christoph Berg\uff09 \u4ee5\u524d\u7684\u9ed8\u8ba4\u503c\u662f\u7a7a\u524d\u7f00\u3002", "title": "\u66f4\u6539log_line_prefix\u7684\u9ed8\u8ba4\u503c\uff0c\u4f7f postmaster \u65e5\u5fd7\u8f93\u51fa\u7684\u6bcf\u4e00\u884c\u90fd\u5305\u542b\u5f53\u524d\u65f6\u95f4\u6233\uff08\u542b\u6beb\u79d2\uff09\u548c\u8fdb\u7a0b ID", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7 / Logging", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.3", "source_hash": "430530b779b749f39d390dc37eee0a6f2c90912e97fab5109eac4390988c03a7", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7", "Logging"], "commit_groups": [["7d3235ba4"]], "identity_text": "Change the default value of guc-log-line-prefix to include current timestamp (with milliseconds) and the process ID in each line of postmaster log output (Christoph Berg) The previous default was an empty prefix.", "commit_aliases": ["7d3235ba4"], "source_commits": ["7d3235ba4"], "source_entry_id": "10.0/changes/031", "db_id": "4ba3f50ad7bca656896e9b0bf0e9b1e1", "patch_ids": ["cc34968670c26fa85eb9f19b550a7fea"], "statement_hash": "10ce51fdd7c68cd9b2a6f256ec140ba623bcca630a8ed9696bc59e6b34ff9f35", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-deba8276678cf2c8", "migration": false}, {"id": "10.0-453d73d82501c213", "cves": [], "html": "<p>\u589e\u52a0\u8fd4\u56de\u65e5\u5fd7\u548c <acronym>WAL</acronym> \u76ee\u5f55\u5185\u5bb9\u7684\u51fd\u6570\uff08Dave Page\uff09</p>\n<p>\u65b0\u589e\u51fd\u6570\u4e3a <a href=\"/docs/10/functions-admin.html#FUNCTIONS-ADMIN-GENFILE-TABLE\" title=\"\u8868\u00a09.88.\u00a0\u901a\u7528\u6587\u4ef6\u8bbf\u95ee\u51fd\u6570\"><code>pg_ls_logdir()</code></a> \u548c <a href=\"/docs/10/functions-admin.html#FUNCTIONS-ADMIN-GENFILE-TABLE\" title=\"\u8868\u00a09.88.\u00a0\u901a\u7528\u6587\u4ef6\u8bbf\u95ee\u51fd\u6570\"><code>pg_ls_waldir()</code></a>\uff0c\u62e5\u6709\u9002\u5f53\u6743\u9650\u7684\u975e\u8d85\u7ea7\u7528\u6237\u4e5f\u53ef\u4ee5\u6267\u884c\u5b83\u4eec\u3002</p>", "text": "\u589e\u52a0\u8fd4\u56de\u65e5\u5fd7\u548c WAL \u76ee\u5f55\u5185\u5bb9\u7684\u51fd\u6570\uff08Dave Page\uff09 \u65b0\u589e\u51fd\u6570\u4e3a pg_ls_logdir() \u548c pg_ls_waldir()\uff0c\u62e5\u6709\u9002\u5f53\u6743\u9650\u7684\u975e\u8d85\u7ea7\u7528\u6237\u4e5f\u53ef\u4ee5\u6267\u884c\u5b83\u4eec\u3002", "title": "\u589e\u52a0\u8fd4\u56de\u65e5\u5fd7\u548c WAL \u76ee\u5f55\u5185\u5bb9\u7684\u51fd\u6570", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7 / Logging", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.3", "source_hash": "aa69b5a03ec55b09e9c016e63b3730841d1392163dd5e2c0dfe2b505851ebe3a", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7", "Logging"], "commit_groups": [["befd73c50"]], "identity_text": "Add functions to return the log and WAL directory contents (Dave Page) The new functions are pg_ls_logdir() and pg_ls_waldir() and can be executed by non-superusers with the proper permissions.", "commit_aliases": ["befd73c50"], "source_commits": ["befd73c50"], "source_entry_id": "10.0/changes/032", "db_id": "2ef8a56bbdfe29d66b2d06d90a6910a9", "patch_ids": ["60cc3a85547bfd10b3530d8e2dc4b3ed"], "statement_hash": "740c9ab225c178b54c9e1202f634e38793d06b2096a52eb643f191d0f23e3972", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-453d73d82501c213", "migration": false}, {"id": "10.0-f6b39ca676d79669", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/10/functions-info.html#FUNCTIONS-INFO-SESSION-TABLE\" title=\"\u8868\u00a09.60.\u00a0\u4f1a\u8bdd\u4fe1\u606f\u51fd\u6570\"><code>pg_current_logfile()</code></a>\uff0c\u7528\u4e8e\u8bfb\u53d6\u65e5\u5fd7\u6536\u96c6\u5668\u5f53\u524d\u7684 stderr \u548c csvlog \u8f93\u51fa\u6587\u4ef6\u540d\uff08Gilles Darold\uff09</p>", "text": "\u589e\u52a0\u51fd\u6570 pg_current_logfile()\uff0c\u7528\u4e8e\u8bfb\u53d6\u65e5\u5fd7\u6536\u96c6\u5668\u5f53\u524d\u7684 stderr \u548c csvlog \u8f93\u51fa\u6587\u4ef6\u540d\uff08Gilles Darold\uff09", "title": "\u589e\u52a0\u51fd\u6570 pg_current_logfile()\uff0c\u7528\u4e8e\u8bfb\u53d6\u65e5\u5fd7\u6536\u96c6\u5668\u5f53\u524d\u7684 stderr \u548c csvlog \u8f93\u51fa\u6587\u4ef6\u540d", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7 / Logging", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.3", "source_hash": "28b4a64c3794bd7744515c7c859c0407f6b91ba771fbc25af6ed9368d0338247", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7", "Logging"], "commit_groups": [["19dc233c3"]], "identity_text": "Add function pg_current_logfile() to read logging collector's current stderr and csvlog output file names (Gilles Darold)", "commit_aliases": ["19dc233c3"], "source_commits": ["19dc233c3"], "source_entry_id": "10.0/changes/033", "db_id": "9da464dfa9df487bebc304dfbe1ef017", "patch_ids": ["37643f739d9ce10ed98e64646bd0e9c6"], "statement_hash": "a6318c5075ab3f4cb8eb03609b0cd764ca472fa6c55359cd35522e25cbd220a7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-f6b39ca676d79669", "migration": false}, {"id": "10.0-2c649ea91f35a514", "cves": [], "html": "<p>\u5728 postmaster \u542f\u52a8\u671f\u95f4\uff0c\u5728\u670d\u52a1\u5668\u65e5\u5fd7\u4e2d\u62a5\u544a\u6bcf\u4e2a\u76d1\u542c\u5957\u63a5\u5b57\u7684\u5730\u5740\u548c\u7aef\u53e3\u53f7\uff08Tom Lane\uff09</p>\n<p>\u6b64\u5916\uff0c\u5728\u8bb0\u5f55\u7ed1\u5b9a\u76d1\u542c\u5957\u63a5\u5b57\u5931\u8d25\u65f6\uff0c\u5305\u542b\u5c1d\u8bd5\u7ed1\u5b9a\u7684\u5177\u4f53\u5730\u5740\u3002</p>", "text": "\u5728 postmaster \u542f\u52a8\u671f\u95f4\uff0c\u5728\u670d\u52a1\u5668\u65e5\u5fd7\u4e2d\u62a5\u544a\u6bcf\u4e2a\u76d1\u542c\u5957\u63a5\u5b57\u7684\u5730\u5740\u548c\u7aef\u53e3\u53f7\uff08Tom Lane\uff09 \u6b64\u5916\uff0c\u5728\u8bb0\u5f55\u7ed1\u5b9a\u76d1\u542c\u5957\u63a5\u5b57\u5931\u8d25\u65f6\uff0c\u5305\u542b\u5c1d\u8bd5\u7ed1\u5b9a\u7684\u5177\u4f53\u5730\u5740\u3002", "title": "\u5728 postmaster \u542f\u52a8\u671f\u95f4\uff0c\u5728\u670d\u52a1\u5668\u65e5\u5fd7\u4e2d\u62a5\u544a\u6bcf\u4e2a\u76d1\u542c\u5957\u63a5\u5b57\u7684\u5730\u5740\u548c\u7aef\u53e3\u53f7", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7 / Logging", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.3", "source_hash": "d9c6f9c9dedb546ff579dbaeabf9516157b0b8d5f301d0a994ae1b67e50517cd", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7", "Logging"], "commit_groups": [["2b32ac2a5"], ["f9dfa5c97"]], "identity_text": "Report the address and port number of each listening socket in the server log during postmaster startup (Tom Lane) Also, when logging failure to bind a listening socket, include the specific address we attempted to bind to.", "commit_aliases": ["2b32ac2a5", "f9dfa5c97"], "source_commits": ["2b32ac2a5", "f9dfa5c97"], "source_entry_id": "10.0/changes/034", "db_id": "271e0aed53552f19193ecc8e7e8bf126", "patch_ids": ["463233a146b24b5e51cf7e4a2ce16960", "d37ecd73caa8793d2ba533432e8910de"], "statement_hash": "992ddb3eb6b0cfbd74f88dabb38811adc178df61a93bd16814a3961270354d57", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-2c649ea91f35a514", "migration": false}, {"id": "10.0-325ca7795c78de75", "cves": [], "html": "<p>\u51cf\u5c11\u5173\u4e8e\u542f\u52a8\u5668\u5b50\u8fdb\u7a0b\u542f\u52a8\u548c\u505c\u6b62\u7684\u5197\u4f59\u65e5\u5fd7\uff08Tom Lane\uff09</p>\n<p>\u8fd9\u4e9b\u6d88\u606f\u73b0\u5728\u4f7f\u7528 <code>DEBUG1</code> \u7ea7\u522b\u3002</p>", "text": "\u51cf\u5c11\u5173\u4e8e\u542f\u52a8\u5668\u5b50\u8fdb\u7a0b\u542f\u52a8\u548c\u505c\u6b62\u7684\u5197\u4f59\u65e5\u5fd7\uff08Tom Lane\uff09 \u8fd9\u4e9b\u6d88\u606f\u73b0\u5728\u4f7f\u7528 DEBUG1 \u7ea7\u522b\u3002", "title": "\u51cf\u5c11\u5173\u4e8e\u542f\u52a8\u5668\u5b50\u8fdb\u7a0b\u542f\u52a8\u548c\u505c\u6b62\u7684\u5197\u4f59\u65e5\u5fd7", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7 / Logging", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.3", "source_hash": "00fbc30c5273be84d7dbc524546c5c9857c1097d4ee2fe6a67fddc109789052a", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7", "Logging"], "commit_groups": [["6ec4c8584"]], "identity_text": "Reduce log chatter about the starting and stopping of launcher subprocesses (Tom Lane) These are now DEBUG1-level messages.", "commit_aliases": ["6ec4c8584"], "source_commits": ["6ec4c8584"], "source_entry_id": "10.0/changes/035", "db_id": "49384d2a2bacddcbd689034617da0a88", "patch_ids": ["e20103074d616d1b871518dcdc8996a4"], "statement_hash": "ff045df64422f018f29bade3d44282002a90f24e870c1c8d5cb8fc4b1dcca238", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-325ca7795c78de75", "migration": false}, {"id": "10.0-9421fc32b98dfa1d", "cves": [], "html": "<p>\u51cf\u5c11<a href=\"/docs/10/runtime-config-logging.html#GUC-LOG-MIN-MESSAGES\">log_min_messages</a>\u6240\u63a7\u5236\u7684\u8f83\u4f4e\u7f16\u53f7\u8c03\u8bd5\u7ea7\u522b\u7684\u6d88\u606f\u8be6\u7ec6\u7a0b\u5ea6\uff08Robert Haas\uff09</p>\n<p>\u8fd9\u4e5f\u6539\u53d8\u4e86<a href=\"/docs/10/runtime-config-client.html#GUC-CLIENT-MIN-MESSAGES\">client_min_messages</a>\u5404\u8c03\u8bd5\u7ea7\u522b\u7684\u8be6\u7ec6\u7a0b\u5ea6\u3002</p>", "text": "\u51cf\u5c11log_min_messages\u6240\u63a7\u5236\u7684\u8f83\u4f4e\u7f16\u53f7\u8c03\u8bd5\u7ea7\u522b\u7684\u6d88\u606f\u8be6\u7ec6\u7a0b\u5ea6\uff08Robert Haas\uff09 \u8fd9\u4e5f\u6539\u53d8\u4e86client_min_messages\u5404\u8c03\u8bd5\u7ea7\u522b\u7684\u8be6\u7ec6\u7a0b\u5ea6\u3002", "title": "\u51cf\u5c11log_min_messages\u6240\u63a7\u5236\u7684\u8f83\u4f4e\u7f16\u53f7\u8c03\u8bd5\u7ea7\u522b\u7684\u6d88\u606f\u8be6\u7ec6\u7a0b\u5ea6", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7 / Logging", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.3", "source_hash": "df4e904359840948cf53906f5168fa3005017c1ae2572d893a949793650a7569", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7", "Logging"], "commit_groups": [["a43f1939d"]], "identity_text": "Reduce message verbosity of lower-numbered debug levels controlled by guc-log-min-messages (Robert Haas) This also changes the verbosity of guc-client-min-messages debug levels.", "commit_aliases": ["a43f1939d"], "source_commits": ["a43f1939d"], "source_entry_id": "10.0/changes/036", "db_id": "c4d01ad319a06db439ae0411c31e7c7b", "patch_ids": ["5867378bd43df64dd898d6670e3791aa"], "statement_hash": "ef8d0ea82aae09f3f1f4871c1b664d7896086ccb80d4c22711d94a8af3a7a588", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-9421fc32b98dfa1d", "migration": false}, {"id": "10.0-8cf9069caac6bd87", "cves": [], "html": "<p>\u589e\u52a0 <code>pg_stat_activity</code> \u5bf9\u5e95\u5c42\u7b49\u5f85\u72b6\u6001\u7684\u62a5\u544a\uff08Michael Paquier\uff0cRobert Haas\uff0cRushabh Lathia\uff09</p>\n<p>\u6b64\u53d8\u66f4\u5141\u8bb8\u62a5\u544a\u5927\u91cf\u5e95\u5c42\u7b49\u5f85\u6761\u4ef6\uff0c\u5305\u62ec\u9501\u5b58\u5668\u7b49\u5f85\u3001\u6587\u4ef6\u8bfb\u53d6/\u5199\u5165/fsync\u3001\u5ba2\u6237\u7aef\u8bfb\u53d6/\u5199\u5165\u4ee5\u53ca\u540c\u6b65\u590d\u5236\u3002</p>", "text": "\u589e\u52a0 pg_stat_activity \u5bf9\u5e95\u5c42\u7b49\u5f85\u72b6\u6001\u7684\u62a5\u544a\uff08Michael Paquier\uff0cRobert Haas\uff0cRushabh Lathia\uff09 \u6b64\u53d8\u66f4\u5141\u8bb8\u62a5\u544a\u5927\u91cf\u5e95\u5c42\u7b49\u5f85\u6761\u4ef6\uff0c\u5305\u62ec\u9501\u5b58\u5668\u7b49\u5f85\u3001\u6587\u4ef6\u8bfb\u53d6/\u5199\u5165/fsync\u3001\u5ba2\u6237\u7aef\u8bfb\u53d6/\u5199\u5165\u4ee5\u53ca\u540c\u6b65\u590d\u5236\u3002", "title": "\u589e\u52a0 pg_stat_activity \u5bf9\u5e95\u5c42\u7b49\u5f85\u72b6\u6001\u7684\u62a5\u544a", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7 / pg_stat_activity", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.4", "source_hash": "5ff4e17d8556018318958e0e0683c0e505afedeb5025d70cca75945b04e39374", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7", "pg_stat_activity"], "commit_groups": [["249cf070e"], ["6f3bd98eb"]], "identity_text": "Add pg_stat_activity reporting of low-level wait states (Michael Paquier, Robert Haas, Rushabh Lathia) This change enables reporting of numerous low-level wait conditions, including latch waits, file reads/writes/fsyncs, client reads/writes, and synchronous replication.", "commit_aliases": ["249cf070e", "6f3bd98eb"], "source_commits": ["249cf070e", "6f3bd98eb"], "source_entry_id": "10.0/changes/037", "db_id": "548d61363ef43e9e7d3300b8c0a296aa", "patch_ids": ["95c8a1fef2d53841fc467b6975fcd271", "e2fcec9826192788006bf9c5069eccdc"], "statement_hash": "f9ad28b2e7fe93e93ccbd6fae1e42e388478d76063c504772673ceda2f95ca01", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-8cf9069caac6bd87", "migration": false}, {"id": "10.0-cbc6aca89cf30037", "cves": [], "html": "<p>\u5728 <code>pg_stat_activity</code> \u4e2d\u663e\u793a\u8f85\u52a9\u8fdb\u7a0b\u3001\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u548c WAL \u53d1\u9001\u8fdb\u7a0b\u8fdb\u7a0b\uff08Kuntal Ghosh\uff0cMichael Paquier\uff09</p>\n<p>\u8fd9\u7b80\u5316\u4e86\u76d1\u63a7\u3002\u65b0\u5217 <code>backend_type</code> \u7528\u4e8e\u6807\u8bc6\u8fdb\u7a0b\u7c7b\u578b\u3002</p>", "text": "\u5728 pg_stat_activity \u4e2d\u663e\u793a\u8f85\u52a9\u8fdb\u7a0b\u3001\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u548c WAL \u53d1\u9001\u8fdb\u7a0b\u8fdb\u7a0b\uff08Kuntal Ghosh\uff0cMichael Paquier\uff09 \u8fd9\u7b80\u5316\u4e86\u76d1\u63a7\u3002\u65b0\u5217 backend_type \u7528\u4e8e\u6807\u8bc6\u8fdb\u7a0b\u7c7b\u578b\u3002", "title": "\u5728 pg_stat_activity \u4e2d\u663e\u793a\u8f85\u52a9\u8fdb\u7a0b\u3001\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u548c WAL \u53d1\u9001\u8fdb\u7a0b\u8fdb\u7a0b", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7 / pg_stat_activity", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.4", "source_hash": "cd28682d81494648d81055c6c9ca93e431f0a39e44feb1f6766dd3b4995c91be", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7", "pg_stat_activity"], "commit_groups": [["fc3d4a44e"], ["fc70a4b0d"]], "identity_text": "Show auxiliary processes, background workers, and walsender processes in pg_stat_activity (Kuntal Ghosh, Michael Paquier) This simplifies monitoring. A new column backend_type identifies the process type.", "commit_aliases": ["fc3d4a44e", "fc70a4b0d"], "source_commits": ["fc3d4a44e", "fc70a4b0d"], "source_entry_id": "10.0/changes/038", "db_id": "f9c06fb49bc9d2c71a891320481ccab1", "patch_ids": ["3fd3d7e5eab9f66890e41e8d8c1ef33c", "9bf2ec9c4496d4be5be2596ded2e953e"], "statement_hash": "e983983774262384bc72aa0c32a3dc52d360f459d5d7de465b24c3c21e9e6222", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-cbc6aca89cf30037", "migration": false}, {"id": "10.0-456bcf3e1a4266ed", "cves": [], "html": "<p>\u5141\u8bb8 <code>pg_stat_activity</code> \u663e\u793a\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u6b63\u5728\u6267\u884c\u7684 SQL \u67e5\u8be2\uff08Rafia Sabih\uff09</p>", "text": "\u5141\u8bb8 pg_stat_activity \u663e\u793a\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u6b63\u5728\u6267\u884c\u7684 SQL \u67e5\u8be2\uff08Rafia Sabih\uff09", "title": "\u5141\u8bb8 pg_stat_activity \u663e\u793a\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u6b63\u5728\u6267\u884c\u7684 SQL \u67e5\u8be2", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7 / pg_stat_activity", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.4", "source_hash": "86bb2e446219b8067f2f20d85556c2b66a1450f0af7cb4485ddab45d722252c4", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7", "pg_stat_activity"], "commit_groups": [["4c728f382"]], "identity_text": "Allow pg_stat_activity to show the SQL query being executed by parallel workers (Rafia Sabih)", "commit_aliases": ["4c728f382"], "source_commits": ["4c728f382"], "source_entry_id": "10.0/changes/039", "db_id": "5f5529657995d22acc28bd78dc4ac127", "patch_ids": ["e19a1283779506ba3b95cb3caf707b26"], "statement_hash": "53d66b5d97c8fca3c12635cee633eca6889a199a77e4a475c7d05866da6ec2fd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-456bcf3e1a4266ed", "migration": false}, {"id": "10.0-a7e013889423fa21", "cves": [], "html": "<p>\u5c06 <code>pg_stat_activity</code>.<code>wait_event_type</code> \u7684\u503c <code>LWLockTranche</code> \u548c <code>LWLockNamed</code> \u91cd\u547d\u540d\u4e3a <code>LWLock</code>\uff08Robert Haas\uff09</p>\n<p>\u8fd9\u4f7f\u8f93\u51fa\u66f4\u4e00\u81f4\u3002</p>", "text": "\u5c06 pg_stat_activity.wait_event_type \u7684\u503c LWLockTranche \u548c LWLockNamed \u91cd\u547d\u540d\u4e3a LWLock\uff08Robert Haas\uff09 \u8fd9\u4f7f\u8f93\u51fa\u66f4\u4e00\u81f4\u3002", "title": "\u5c06 pg_stat_activity.wait_event_type \u7684\u503c LWLockTranche \u548c LWLockNamed \u91cd\u547d\u540d\u4e3a LWLock", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7 / pg_stat_activity", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.4", "source_hash": "b4aa3fd82344e64b9f92bd4d7e700f520be7a8351d13375ec0c232776da6dddd", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7", "pg_stat_activity"], "commit_groups": [["3761fe3c2"]], "identity_text": "Rename pg_stat_activity.wait_event_type values LWLockTranche and LWLockNamed to LWLock (Robert Haas) This makes the output more consistent.", "commit_aliases": ["3761fe3c2"], "source_commits": ["3761fe3c2"], "source_entry_id": "10.0/changes/040", "db_id": "f59ec4da0ca69e48f492dc00cf6f1d9e", "patch_ids": ["ec668b12c66ff7f67c918dd7fb4c6a77"], "statement_hash": "fdcf1edb08069f73db9f25970f7a5931255b6bcb898d10573b8028e18742f65a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-a7e013889423fa21", "migration": false}, {"id": "10.0-c3bafcfd09d28f3d", "cves": [], "html": "<p>\u589e\u52a0\u5bf9\u4f7f\u7528 <a href=\"/docs/10/auth-methods.html#AUTH-PASSWORD\" title=\"20.3.2.\u00a0\u5bc6\u7801\u8ba4\u8bc1\">SCRAM-SHA-256</a> \u534f\u5546\u548c\u5b58\u50a8\u5bc6\u7801\u7684\u652f\u6301\uff08Michael Paquier\uff0cHeikki Linnakangas\uff09</p>\n<p>\u8fd9\u6bd4\u73b0\u6709\u7684 <code>md5</code> \u534f\u5546\u548c\u5b58\u50a8\u65b9\u5f0f\u66f4\u5b89\u5168\u3002</p>", "text": "\u589e\u52a0\u5bf9\u4f7f\u7528 SCRAM-SHA-256 \u534f\u5546\u548c\u5b58\u50a8\u5bc6\u7801\u7684\u652f\u6301\uff08Michael Paquier\uff0cHeikki Linnakangas\uff09 \u8fd9\u6bd4\u73b0\u6709\u7684 md5 \u534f\u5546\u548c\u5b58\u50a8\u65b9\u5f0f\u66f4\u5b89\u5168\u3002", "title": "\u589e\u52a0\u5bf9\u4f7f\u7528 SCRAM-SHA-256 \u534f\u5546\u548c\u5b58\u50a8\u5bc6\u7801\u7684\u652f\u6301", "commits": [], "section": "\u670d\u52a1\u5668 / Authentication", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.8", "source_hash": "93ecc476821b9bd01a834ba181a5aa6d0a6643d0901e73f5af61a8d938d693be", "section_path": ["\u670d\u52a1\u5668", "Authentication"], "commit_groups": [["60f11b87a"], ["7ac955b34"], ["818fd4a67"], ["c727f120f"]], "identity_text": "Add SCRAM-SHA-256 support for password negotiation and storage (Michael Paquier, Heikki Linnakangas) This provides better security than the existing md5 negotiation and storage method.", "commit_aliases": ["60f11b87a", "7ac955b34", "818fd4a67", "c727f120f"], "source_commits": ["60f11b87a", "7ac955b34", "818fd4a67", "c727f120f"], "source_entry_id": "10.0/changes/041", "db_id": "5955cc2527979659e2abd0a8137f68e0", "patch_ids": ["193cf0a9c3b958595f86fa8f6288bfdb", "4467fdbca396e7fad000b231f4e93949", "5ac56d614016e98da18579d79541bad7", "5e0a4837ab27fad1974e9ac383fe9890"], "statement_hash": "eb75de471634a3165ca13066db38a2bb6ba77cca0945c31bb1524d78d979e660", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-c3bafcfd09d28f3d", "migration": false}, {"id": "10.0-cd00f8023660487b", "cves": [], "html": "<p>\u5c06\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/10/runtime-config-connection.html#GUC-PASSWORD-ENCRYPTION\">password_encryption</a>\u4ece <code>boolean</code> \u6539\u4e3a <code>enum</code>\uff08Michael Paquier\uff09</p>\n<p>\u8fd9\u662f\u652f\u6301\u66f4\u591a\u5bc6\u7801 hash \u9009\u9879\u6240\u5fc5\u9700\u7684\u3002</p>", "text": "\u5c06\u670d\u52a1\u5668\u53c2\u6570password_encryption\u4ece boolean \u6539\u4e3a enum\uff08Michael Paquier\uff09 \u8fd9\u662f\u652f\u6301\u66f4\u591a\u5bc6\u7801 hash \u9009\u9879\u6240\u5fc5\u9700\u7684\u3002", "title": "\u5c06\u670d\u52a1\u5668\u53c2\u6570password_encryption\u4ece boolean \u6539\u4e3a enum", "commits": [], "section": "\u670d\u52a1\u5668 / Authentication", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.8", "source_hash": "b996f7f4b951b2199d49b484d7cb76c3630253bdd52981c2cb034a05b43f6dcf", "section_path": ["\u670d\u52a1\u5668", "Authentication"], "commit_groups": [["babe05bc2"]], "identity_text": "Change the guc-password-encryption server parameter from boolean to enum (Michael Paquier) This was necessary to support additional password hashing options.", "commit_aliases": ["babe05bc2"], "source_commits": ["babe05bc2"], "source_entry_id": "10.0/changes/042", "db_id": "afa263671dbc0306e1d8e88bc4015fc2", "patch_ids": ["abb74703914df8bd8d9e5393b60bc3d9"], "statement_hash": "7f1ce92d72b66ecfad551ff7220b5c6f1ca42cddc103609a5b53b0cf75b4189f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-cd00f8023660487b", "migration": false}, {"id": "10.0-b9869e851a98bec0", "cves": [], "html": "<p>\u589e\u52a0\u89c6\u56fe <a href=\"/docs/10/view-pg-hba-file-rules.html\" title=\"51.71.\u00a0pg_hba_file_rules\"><code>pg_hba_file_rules</code></a>\uff0c\u7528\u4e8e\u663e\u793a <code>pg_hba.conf</code> \u7684\u5185\u5bb9\uff08Haribabu Kommi\uff09</p>\n<p>\u5b83\u663e\u793a\u7684\u662f\u6587\u4ef6\u5185\u5bb9\uff0c\u800c\u975e\u5f53\u524d\u751f\u6548\u7684\u8bbe\u7f6e\u3002</p>", "text": "\u589e\u52a0\u89c6\u56fe pg_hba_file_rules\uff0c\u7528\u4e8e\u663e\u793a pg_hba.conf \u7684\u5185\u5bb9\uff08Haribabu Kommi\uff09 \u5b83\u663e\u793a\u7684\u662f\u6587\u4ef6\u5185\u5bb9\uff0c\u800c\u975e\u5f53\u524d\u751f\u6548\u7684\u8bbe\u7f6e\u3002", "title": "\u589e\u52a0\u89c6\u56fe pg_hba_file_rules\uff0c\u7528\u4e8e\u663e\u793a pg_hba.conf \u7684\u5185\u5bb9", "commits": [], "section": "\u670d\u52a1\u5668 / Authentication", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.8", "source_hash": "f005ec6553290cabb809a2b288a7583908c42eb587889f913c6c59c529e1e3df", "section_path": ["\u670d\u52a1\u5668", "Authentication"], "commit_groups": [["de16ab723"]], "identity_text": "Add view pg_hba_file_rules to display the contents of pg_hba.conf (Haribabu Kommi) This shows the file contents, not the currently active settings.", "commit_aliases": ["de16ab723"], "source_commits": ["de16ab723"], "source_entry_id": "10.0/changes/043", "db_id": "a133c968c922bc702ba42065038ca89f", "patch_ids": ["44e5d255d321296cbde553fb62d692b9"], "statement_hash": "493c791e8e96266151f710342beff6199a2fffd0f3aba7a309a34462e6866cf8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-b9869e851a98bec0", "migration": false}, {"id": "10.0-ed80a9b526bc7a81", "cves": [], "html": "<p>\u652f\u6301\u591a\u4e2a <acronym>RADIUS</acronym> \u670d\u52a1\u5668\uff08Magnus Hagander\uff09</p>\n<p>\u6240\u6709\u4e0e <acronym>RADIUS</acronym> \u76f8\u5173\u7684\u53c2\u6570\u73b0\u5728\u90fd\u4f7f\u7528\u590d\u6570\u5f62\u5f0f\uff0c\u5e76\u652f\u6301\u4ee5\u9017\u53f7\u5206\u9694\u7684\u670d\u52a1\u5668\u5217\u8868\u3002</p>", "text": "\u652f\u6301\u591a\u4e2a RADIUS \u670d\u52a1\u5668\uff08Magnus Hagander\uff09 \u6240\u6709\u4e0e RADIUS \u76f8\u5173\u7684\u53c2\u6570\u73b0\u5728\u90fd\u4f7f\u7528\u590d\u6570\u5f62\u5f0f\uff0c\u5e76\u652f\u6301\u4ee5\u9017\u53f7\u5206\u9694\u7684\u670d\u52a1\u5668\u5217\u8868\u3002", "title": "\u652f\u6301\u591a\u4e2a RADIUS \u670d\u52a1\u5668", "commits": [], "section": "\u670d\u52a1\u5668 / Authentication", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.8", "source_hash": "0c03f11738b6648834426e56eed507bc21189c7ec16c3b5ba9a0e151d15d47cd", "section_path": ["\u670d\u52a1\u5668", "Authentication"], "commit_groups": [["6b76f1bb5"]], "identity_text": "Support multiple RADIUS servers (Magnus Hagander) All the RADIUS related parameters are now plural and support a comma-separated list of servers.", "commit_aliases": ["6b76f1bb5"], "source_commits": ["6b76f1bb5"], "source_entry_id": "10.0/changes/044", "db_id": "ef402842881f2e52be7128c86e6153b8", "patch_ids": ["398995d71c255838efc9a3f83849d48e"], "statement_hash": "a877a2a65bc61475f09aaac8cc1e5fe999dcb07fe1478d61897e6106787f3518", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-ed80a9b526bc7a81", "migration": false}, {"id": "10.0-fb9103c24bb22f93", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u65f6\u66f4\u65b0 <acronym>SSL</acronym> \u914d\u7f6e\uff08Andreas Karlsson\uff0cTom Lane\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u901a\u8fc7\u4f7f\u7528 <code>pg_ctl reload</code>\u3001<code>SELECT pg_reload_conf()</code> \u6216\u53d1\u9001 <code>SIGHUP</code> \u4fe1\u53f7\u6765\u91cd\u65b0\u914d\u7f6e <acronym>SSL</acronym>\uff0c\u65e0\u9700\u91cd\u542f\u670d\u52a1\u5668\u3002\u4f46\u662f\uff0c\u5982\u679c\u670d\u52a1\u5668\u7684 <acronym>SSL</acronym> \u5bc6\u94a5\u9700\u8981\u53e3\u4ee4\uff0c\u5219\u65e0\u6cd5\u91cd\u65b0\u52a0\u8f7d <acronym>SSL</acronym> \u914d\u7f6e\uff0c\u56e0\u4e3a\u65e0\u6cd5\u518d\u6b21\u63d0\u793a\u8f93\u5165\u53e3\u4ee4\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u539f\u59cb\u914d\u7f6e\u4f1a\u5728 postmaster \u7684\u6574\u4e2a\u751f\u547d\u5468\u671f\u5185\u751f\u6548\u3002</p>", "text": "\u5141\u8bb8\u5728\u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u65f6\u66f4\u65b0 SSL \u914d\u7f6e\uff08Andreas Karlsson\uff0cTom Lane\uff09 \u8fd9\u5141\u8bb8\u901a\u8fc7\u4f7f\u7528 pg_ctl reload\u3001SELECT pg_reload_conf() \u6216\u53d1\u9001 SIGHUP \u4fe1\u53f7\u6765\u91cd\u65b0\u914d\u7f6e SSL\uff0c\u65e0\u9700\u91cd\u542f\u670d\u52a1\u5668\u3002\u4f46\u662f\uff0c\u5982\u679c\u670d\u52a1\u5668\u7684 SSL \u5bc6\u94a5\u9700\u8981\u53e3\u4ee4\uff0c\u5219\u65e0\u6cd5\u91cd\u65b0\u52a0\u8f7d SSL \u914d\u7f6e\uff0c\u56e0\u4e3a\u65e0\u6cd5\u518d\u6b21\u63d0\u793a\u8f93\u5165\u53e3\u4ee4\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u539f\u59cb\u914d\u7f6e\u4f1a\u5728 postmaster \u7684\u6574\u4e2a\u751f\u547d\u5468\u671f\u5185\u751f\u6548\u3002", "title": "\u5141\u8bb8\u5728\u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u65f6\u66f4\u65b0 SSL \u914d\u7f6e", "commits": [], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.9", "source_hash": "a75f9d8b40b68cfd5f45bec6d16378ff2d95a7cd62c74fbcd029c4ed8b67aeb3", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["1e942c747"], ["6667d9a6d"], ["de41869b6"]], "identity_text": "Allow SSL configuration to be updated during configuration reload (Andreas Karlsson, Tom Lane) This allows SSL to be reconfigured without a server restart, by using pg_ctl reload, SELECT pg_reload_conf(), or sending a SIGHUP signal. However, reloading the SSL configuration does not work if the server's SSL key requires a passphrase, as there is no way to re-prompt for the passphrase. The original configuration will apply for the life of the postmaster in that case.", "commit_aliases": ["1e942c747", "6667d9a6d", "de41869b6"], "source_commits": ["1e942c747", "6667d9a6d", "de41869b6"], "source_entry_id": "10.0/changes/045", "db_id": "d29ffe1d897861185d7a36db7e188ffc", "patch_ids": ["3889623a540b88d17fb2cdd5e2b2de4d", "9a1efe2fdd9a4fedb0a1b35efc6cbd95", "be9d67ea16cba709d3da41959250b7b2"], "statement_hash": "1d1ce22ac013f66fa80903805eb96f94faa6b33e026fe1dc05ef9df9af472a47", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-fb9103c24bb22f93", "migration": false}, {"id": "10.0-fb542c8ddeef9df8", "cves": [], "html": "<p>\u4f7f<a href=\"/docs/10/runtime-config-resource.html#GUC-BGWRITER-LRU-MAXPAGES\">bgwriter_lru_maxpages</a>\u7684\u6700\u5927\u503c\u5b9e\u9645\u4e0a\u4e0d\u518d\u53d7\u9650\uff08Jim Nasby\uff09</p>", "text": "\u4f7fbgwriter_lru_maxpages\u7684\u6700\u5927\u503c\u5b9e\u9645\u4e0a\u4e0d\u518d\u53d7\u9650\uff08Jim Nasby\uff09", "title": "\u4f7fbgwriter_lru_maxpages\u7684\u6700\u5927\u503c\u5b9e\u9645\u4e0a\u4e0d\u518d\u53d7\u9650", "commits": [], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.9", "source_hash": "6c426f9c83e8a983b71116d32bb416dbd8026fd8e76e61bc459410fb79be3471", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["14ca9abfb"]], "identity_text": "Make the maximum value of guc-bgwriter-lru-maxpages effectively unlimited (Jim Nasby)", "commit_aliases": ["14ca9abfb"], "source_commits": ["14ca9abfb"], "source_entry_id": "10.0/changes/046", "db_id": "d0181024ec9a4f1edad33804ec164b30", "patch_ids": ["0cfacdeb65fad0038089c8dc0a3cf879"], "statement_hash": "7fd162546a7727735abb8008b372b7f5df3170f5d5b3ffabd9f1db8aea3edc64", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-fb542c8ddeef9df8", "migration": false}, {"id": "10.0-0c12f0ab0020d1cf", "cves": [], "html": "<p>\u521b\u5efa\u6587\u4ef6\u6216\u89e3\u9664\u6587\u4ef6\u94fe\u63a5\u540e\uff0c\u5bf9\u5176\u7236\u76ee\u5f55\u6267\u884c fsync\uff08Michael Paquier\uff09</p>\n<p>\u8fd9\u964d\u4f4e\u4e86\u65ad\u7535\u540e\u4e22\u5931\u6570\u636e\u7684\u98ce\u9669\u3002</p>", "text": "\u521b\u5efa\u6587\u4ef6\u6216\u89e3\u9664\u6587\u4ef6\u94fe\u63a5\u540e\uff0c\u5bf9\u5176\u7236\u76ee\u5f55\u6267\u884c fsync\uff08Michael Paquier\uff09 \u8fd9\u964d\u4f4e\u4e86\u65ad\u7535\u540e\u4e22\u5931\u6570\u636e\u7684\u98ce\u9669\u3002", "title": "\u521b\u5efa\u6587\u4ef6\u6216\u89e3\u9664\u6587\u4ef6\u94fe\u63a5\u540e\uff0c\u5bf9\u5176\u7236\u76ee\u5f55\u6267\u884c fsync", "commits": [], "section": "\u670d\u52a1\u5668 / \u53ef\u9760\u6027", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.10", "source_hash": "7de32df7489edd361c1eecd079afe7243172fd9cb25fd7f8b92ecb5b326f65ba", "section_path": ["\u670d\u52a1\u5668", "\u53ef\u9760\u6027"], "commit_groups": [["1b02be21f"]], "identity_text": "After creating or unlinking files, perform an fsync on their parent directory (Michael Paquier) This reduces the risk of data loss after a power failure.", "commit_aliases": ["1b02be21f"], "source_commits": ["1b02be21f"], "source_entry_id": "10.0/changes/047", "db_id": "8fed6acbfe05ef12435a27b0ab7c8ded", "patch_ids": ["89bb2ac8b09908cfe5eec222d8b8cfcf"], "statement_hash": "5c404d40efb7231cc67fc2a2249db5c257a0132b3becca6d799f8b47ebcab782", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-0c12f0ab0020d1cf", "migration": false}, {"id": "10.0-e3610f6d3281fc9a", "cves": [], "html": "<p>\u9632\u6b62\u5728\u5176\u4ed6\u65b9\u9762\u5904\u4e8e\u7a7a\u95f2\u72b6\u6001\u7684\u7cfb\u7edf\u4e0a\u6267\u884c\u4e0d\u5fc5\u8981\u7684\u68c0\u67e5\u70b9\u548c <acronym>WAL</acronym> \u5f52\u6863\uff08Michael Paquier\uff09</p>", "text": "\u9632\u6b62\u5728\u5176\u4ed6\u65b9\u9762\u5904\u4e8e\u7a7a\u95f2\u72b6\u6001\u7684\u7cfb\u7edf\u4e0a\u6267\u884c\u4e0d\u5fc5\u8981\u7684\u68c0\u67e5\u70b9\u548c WAL \u5f52\u6863\uff08Michael Paquier\uff09", "title": "\u9632\u6b62\u5728\u5176\u4ed6\u65b9\u9762\u5904\u4e8e\u7a7a\u95f2\u72b6\u6001\u7684\u7cfb\u7edf\u4e0a\u6267\u884c\u4e0d\u5fc5\u8981\u7684\u68c0\u67e5\u70b9\u548c WAL \u5f52\u6863", "commits": [], "section": "\u670d\u52a1\u5668 / \u53ef\u9760\u6027 / \u9884\u5199\u5f0f\u65e5\u5fd7\uff08WAL\uff09", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.10.3", "source_hash": "8f66f95c00cf87924a004fe24299c5a84715e5544a795512373727485e1a32a7", "section_path": ["\u670d\u52a1\u5668", "\u53ef\u9760\u6027", "\u9884\u5199\u5f0f\u65e5\u5fd7\uff08WAL\uff09"], "commit_groups": [["6ef2eba3f"]], "identity_text": "Prevent unnecessary checkpoints and WAL archiving on otherwise-idle systems (Michael Paquier)", "commit_aliases": ["6ef2eba3f"], "source_commits": ["6ef2eba3f"], "source_entry_id": "10.0/changes/048", "db_id": "c1edf67502edb4aede9d2b3347b0ec95", "patch_ids": ["f48c31ad65a7f11a438c2974a0536592"], "statement_hash": "d9bdd702fdc51105f7373d18ffb8bdcf4b53ec0b0cc71485e0f5a1912a1cbdf4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-e3610f6d3281fc9a", "migration": false}, {"id": "10.0-2be9cd705b3e6f1f", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/10/runtime-config-developer.html#GUC-WAL-CONSISTENCY-CHECKING\">wal_consistency_checking</a>\uff0c\u7528\u4e8e\u5411 <acronym>WAL</acronym> \u6dfb\u52a0\u53ef\u5728\u5907\u5e93\u4e0a\u8fdb\u884c\u5408\u7406\u6027\u68c0\u67e5\u7684\u8be6\u7ec6\u4fe1\u606f\uff08Kuntal Ghosh\uff0cRobert Haas\uff09</p>\n<p>\u4efb\u4f55\u5408\u7406\u6027\u68c0\u67e5\u5931\u8d25\u90fd\u4f1a\u5728\u5907\u5e93\u4e0a\u4ea7\u751f\u81f4\u547d\u9519\u8bef\u3002</p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570wal_consistency_checking\uff0c\u7528\u4e8e\u5411 WAL \u6dfb\u52a0\u53ef\u5728\u5907\u5e93\u4e0a\u8fdb\u884c\u5408\u7406\u6027\u68c0\u67e5\u7684\u8be6\u7ec6\u4fe1\u606f\uff08Kuntal Ghosh\uff0cRobert Haas\uff09 \u4efb\u4f55\u5408\u7406\u6027\u68c0\u67e5\u5931\u8d25\u90fd\u4f1a\u5728\u5907\u5e93\u4e0a\u4ea7\u751f\u81f4\u547d\u9519\u8bef\u3002", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570wal_consistency_checking\uff0c\u7528\u4e8e\u5411 WAL \u6dfb\u52a0\u53ef\u5728\u5907\u5e93\u4e0a\u8fdb\u884c\u5408\u7406\u6027\u68c0\u67e5\u7684\u8be6\u7ec6\u4fe1\u606f", "commits": [], "section": "\u670d\u52a1\u5668 / \u53ef\u9760\u6027 / \u9884\u5199\u5f0f\u65e5\u5fd7\uff08WAL\uff09", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.10.3", "source_hash": "d01988da1ae8d1e138d03262c003b98f92865cbedf946fed29870ab3a82d00c4", "section_path": ["\u670d\u52a1\u5668", "\u53ef\u9760\u6027", "\u9884\u5199\u5f0f\u65e5\u5fd7\uff08WAL\uff09"], "commit_groups": [["a507b8690"], ["bb4a39637"]], "identity_text": "Add guc-wal-consistency-checking server parameter to add details to WAL that can be sanity-checked on the standby (Kuntal Ghosh, Robert Haas) Any sanity-check failure generates a fatal error on the standby.", "commit_aliases": ["a507b8690", "bb4a39637"], "source_commits": ["a507b8690", "bb4a39637"], "source_entry_id": "10.0/changes/049", "db_id": "4bd9e1fe8f926b6fc20518c6dc3080b1", "patch_ids": ["0bd78eb8733a86695381e9a5b1b24957", "537ad465a78225b3d14bc9986ad98a52"], "statement_hash": "b2b57a7f4c75e4e522b3517745ffb0932ec4eef1ec7a363a81859171387ffcc1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-2be9cd705b3e6f1f", "migration": false}, {"id": "10.0-92fe5a5a5dcf9c9d", "cves": [], "html": "<p>\u5c06\u53ef\u914d\u7f6e\u7684\u6700\u5927 <acronym>WAL</acronym> \u6bb5\u5927\u5c0f\u589e\u52a0\u5230 1 GB\uff08Beena Emerson\uff09</p>\n<p>\u8f83\u5927\u7684 <acronym>WAL</acronym> \u6bb5\u53ef\u4ee5\u51cf\u5c11<a href=\"/docs/10/runtime-config-wal.html#GUC-ARCHIVE-COMMAND\">archive_command</a>\u8c03\u7528\u6b21\u6570\uff0c\u4ee5\u53ca\u9700\u8981\u7ba1\u7406\u7684 <acronym>WAL</acronym> \u6587\u4ef6\u6570\u91cf\u3002</p>", "text": "\u5c06\u53ef\u914d\u7f6e\u7684\u6700\u5927 WAL \u6bb5\u5927\u5c0f\u589e\u52a0\u5230 1 GB\uff08Beena Emerson\uff09 \u8f83\u5927\u7684 WAL \u6bb5\u53ef\u4ee5\u51cf\u5c11archive_command\u8c03\u7528\u6b21\u6570\uff0c\u4ee5\u53ca\u9700\u8981\u7ba1\u7406\u7684 WAL \u6587\u4ef6\u6570\u91cf\u3002", "title": "\u5c06\u53ef\u914d\u7f6e\u7684\u6700\u5927 WAL \u6bb5\u5927\u5c0f\u589e\u52a0\u5230 1 GB", "commits": [], "section": "\u670d\u52a1\u5668 / \u53ef\u9760\u6027 / \u9884\u5199\u5f0f\u65e5\u5fd7\uff08WAL\uff09", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.10.3", "source_hash": "ffaff3176ba6966287b903cf06f54b13599e82bdbd1061a038f7e4cb92638a96", "section_path": ["\u670d\u52a1\u5668", "\u53ef\u9760\u6027", "\u9884\u5199\u5f0f\u65e5\u5fd7\uff08WAL\uff09"], "commit_groups": [["00b6b6feb"]], "identity_text": "Increase the maximum configurable WAL segment size to one gigabyte (Beena Emerson) A larger WAL segment size allows for fewer guc-archive-command invocations and fewer WAL files to manage.", "commit_aliases": ["00b6b6feb"], "source_commits": ["00b6b6feb"], "source_entry_id": "10.0/changes/050", "db_id": "9fd24a9439f4f6d2094f14222d345f3b", "patch_ids": ["f5a2f823013247b008b9bdd7a231b654"], "statement_hash": "cec98edf71c2e5c03ae4f899f9c87357bda6939b413a19f1c42c38e2ee3d8536", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-92fe5a5a5dcf9c9d", "migration": false}, {"id": "10.0-1d9c5c383a33fa3d", "cves": [], "html": "<p>\u589e\u52a0\u5c06\u8868<a href=\"/docs/10/logical-replication.html\" title=\"\u7b2c\u00a031\u00a0\u7ae0\u00a0\u903b\u8f91\u590d\u5236\">\u903b\u8f91\u590d\u5236</a>\u5230\u5907\u5e93\u7684\u80fd\u529b\uff08Petr Jelinek\uff09</p>\n<p>\u903b\u8f91\u590d\u5236\u6bd4\u7269\u7406\u590d\u5236\u66f4\u7075\u6d3b\uff0c\u5305\u62ec\u5728\u4e0d\u540c <span>PostgreSQL</span> \u5927\u7248\u672c\u4e4b\u95f4\u590d\u5236\u4ee5\u53ca\u9009\u62e9\u6027\u590d\u5236\u3002</p>", "text": "\u589e\u52a0\u5c06\u8868\u903b\u8f91\u590d\u5236\u5230\u5907\u5e93\u7684\u80fd\u529b\uff08Petr Jelinek\uff09 \u903b\u8f91\u590d\u5236\u6bd4\u7269\u7406\u590d\u5236\u66f4\u7075\u6d3b\uff0c\u5305\u62ec\u5728\u4e0d\u540c PostgreSQL \u5927\u7248\u672c\u4e4b\u95f4\u590d\u5236\u4ee5\u53ca\u9009\u62e9\u6027\u590d\u5236\u3002", "title": "\u589e\u52a0\u5c06\u8868\u903b\u8f91\u590d\u5236\u5230\u5907\u5e93\u7684\u80fd\u529b", "commits": [], "section": "\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "1bdb86037bc318143094d15587265e1e9fcf4380b1084c3613e527d1bd9f03b9", "section_path": ["\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["665d1fad9"], ["7c4f52409"], ["ff7bce174"]], "identity_text": "Add the ability to logically replicate tables to standby servers (Petr Jelinek) Logical replication allows more flexibility than physical replication does, including replication between different major versions of PostgreSQL and selective replication.", "commit_aliases": ["665d1fad9", "7c4f52409", "ff7bce174"], "source_commits": ["665d1fad9", "7c4f52409", "ff7bce174"], "source_entry_id": "10.0/changes/051", "db_id": "8d5c9b1007a1e351a1af663db823583c", "patch_ids": ["4eca6a9f36394470a86009ce54223f8d", "8113e89894f6095931263bf7098c1110", "949507c79af3f30c367f628ab83d5fdd"], "statement_hash": "7cd538c62bc7e58a29dc48b42cd9e002ff58a17d00cf43f5f9e04c6cf1ce1fd3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-1d9c5c383a33fa3d", "migration": false}, {"id": "10.0-23126d8763c5cbd6", "cves": [], "html": "<p>\u5141\u8bb8\u7b49\u5f85\u5907\u5e93\u7684\u63d0\u4ea4\u786e\u8ba4\uff0c\u800c\u4e0d\u53d7\u5176\u5728<a href=\"/docs/10/runtime-config-replication.html#GUC-SYNCHRONOUS-STANDBY-NAMES\">synchronous_standby_names</a>\u4e2d\u51fa\u73b0\u987a\u5e8f\u7684\u5f71\u54cd\uff08Masahiko Sawada\uff09</p>\n<p>\u4ee5\u524d\uff0c\u670d\u52a1\u5668\u59cb\u7ec8\u7b49\u5f85 <code>synchronous_standby_names</code> \u4e2d\u6700\u5148\u51fa\u73b0\u7684\u6d3b\u52a8\u5907\u5e93\u3002\u65b0\u7684 <code>synchronous_standby_names</code> \u5173\u952e\u5b57 <code>ANY</code> \u5141\u8bb8\u7b49\u5f85\u4efb\u610f\u6307\u5b9a\u6570\u91cf\u7684\u5907\u5e93\uff0c\u800c\u4e0d\u8003\u8651\u5176\u6392\u5217\u987a\u5e8f\u3002\u8fd9\u79f0\u4e3a\u6cd5\u5b9a\u4eba\u6570\u63d0\u4ea4\u3002</p>", "text": "\u5141\u8bb8\u7b49\u5f85\u5907\u5e93\u7684\u63d0\u4ea4\u786e\u8ba4\uff0c\u800c\u4e0d\u53d7\u5176\u5728synchronous_standby_names\u4e2d\u51fa\u73b0\u987a\u5e8f\u7684\u5f71\u54cd\uff08Masahiko Sawada\uff09 \u4ee5\u524d\uff0c\u670d\u52a1\u5668\u59cb\u7ec8\u7b49\u5f85 synchronous_standby_names \u4e2d\u6700\u5148\u51fa\u73b0\u7684\u6d3b\u52a8\u5907\u5e93\u3002\u65b0\u7684 synchronous_standby_names \u5173\u952e\u5b57 ANY \u5141\u8bb8\u7b49\u5f85\u4efb\u610f\u6307\u5b9a\u6570\u91cf\u7684\u5907\u5e93\uff0c\u800c\u4e0d\u8003\u8651\u5176\u6392\u5217\u987a\u5e8f\u3002\u8fd9\u79f0\u4e3a\u6cd5\u5b9a\u4eba\u6570\u63d0\u4ea4\u3002", "title": "\u5141\u8bb8\u7b49\u5f85\u5907\u5e93\u7684\u63d0\u4ea4\u786e\u8ba4\uff0c\u800c\u4e0d\u53d7\u5176\u5728synchronous_standby_names\u4e2d\u51fa\u73b0\u987a\u5e8f\u7684\u5f71\u54cd", "commits": [], "section": "\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "1dc8cd3542cb59b89fbe79c092b6f08aea1cb0c1e69f5a5ba68b5fe85d6a2d0b", "section_path": ["\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["3901fd70c"]], "identity_text": "Allow waiting for commit acknowledgment from standby servers irrespective of the order they appear in guc-synchronous-standby-names (Masahiko Sawada) Previously the server always waited for the active standbys that appeared first in synchronous_standby_names. The new synchronous_standby_names keyword ANY allows waiting for any number of standbys irrespective of their ordering. This is known as quorum commit.", "commit_aliases": ["3901fd70c"], "source_commits": ["3901fd70c"], "source_entry_id": "10.0/changes/052", "db_id": "ab01506adbc7954f53301856aef227b7", "patch_ids": ["9aab90d268df64616916d6e10c0a9311"], "statement_hash": "669684aeb70c918ad46c8d3a00ad3b262e9fc6b8abbf4b1a75c7ba8418766370", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-23126d8763c5cbd6", "migration": false}, {"id": "10.0-facf813e08a342d5", "cves": [], "html": "<p>\u51cf\u5c11\u6267\u884c\u6d41\u5f0f\u5907\u4efd\u548c\u590d\u5236\u6240\u9700\u7684\u914d\u7f6e\u53d8\u66f4\uff08Magnus Hagander\uff0cDang Minh Huong\uff09</p>\n<p>\u5177\u4f53\u800c\u8a00\uff0c\u66f4\u6539\u4e86<a href=\"/docs/10/runtime-config-wal.html#GUC-WAL-LEVEL\">wal_level</a>\u3001<a href=\"/docs/10/runtime-config-replication.html#GUC-MAX-WAL-SENDERS\">max_wal_senders</a>\u3001<a href=\"/docs/10/runtime-config-replication.html#GUC-MAX-REPLICATION-SLOTS\">max_replication_slots</a>\u548c<a href=\"/docs/10/runtime-config-replication.html#GUC-HOT-STANDBY\">hot_standby</a>\u7684\u9ed8\u8ba4\u503c\uff0c\u4f7f\u5176\u5f00\u7bb1\u5373\u53ef\u7528\u4e8e\u8fd9\u4e9b\u573a\u666f\u3002</p>", "text": "\u51cf\u5c11\u6267\u884c\u6d41\u5f0f\u5907\u4efd\u548c\u590d\u5236\u6240\u9700\u7684\u914d\u7f6e\u53d8\u66f4\uff08Magnus Hagander\uff0cDang Minh Huong\uff09 \u5177\u4f53\u800c\u8a00\uff0c\u66f4\u6539\u4e86wal_level\u3001max_wal_senders\u3001max_replication_slots\u548chot_standby\u7684\u9ed8\u8ba4\u503c\uff0c\u4f7f\u5176\u5f00\u7bb1\u5373\u53ef\u7528\u4e8e\u8fd9\u4e9b\u573a\u666f\u3002", "title": "\u51cf\u5c11\u6267\u884c\u6d41\u5f0f\u5907\u4efd\u548c\u590d\u5236\u6240\u9700\u7684\u914d\u7f6e\u53d8\u66f4", "commits": [], "section": "\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "d3634dccf2785ef8a802bc41559cea4f4769a6deb07d6e9790b829d4bf4238cc", "section_path": ["\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["34fc61673"], ["f6d6d2920"]], "identity_text": "Reduce configuration changes necessary to perform streaming backup and replication (Magnus Hagander, Dang Minh Huong) Specifically, the defaults were changed for guc-wal-level , guc-max-wal-senders , guc-max-replication-slots , and guc-hot-standby to make them suitable for these usages out-of-the-box.", "commit_aliases": ["34fc61673", "f6d6d2920"], "source_commits": ["34fc61673", "f6d6d2920"], "source_entry_id": "10.0/changes/053", "db_id": "67d90388012baa145d263d45eb7790f2", "patch_ids": ["b83866010e871eb381fcdcf31e89ba20", "e62eb5fbd5fad22e130cb6c120efcf4d"], "statement_hash": "23d398d442a929d5ee5da45afd1d9af0cc976ce5f54bbe9e8eeb239f373dbf65", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-facf813e08a342d5", "migration": false}, {"id": "10.0-34d5ebb1bcd570a5", "cves": [], "html": "<p>\u5728 <a href=\"/docs/10/client-authentication.html#AUTH-PG-HBA-CONF\" title=\"20.1.\u00a0pg_hba.conf \u6587\u4ef6\"><code>pg_hba.conf</code></a> \u4e2d\u9ed8\u8ba4\u542f\u7528\u6765\u81ea localhost \u8fde\u63a5\u7684\u590d\u5236\uff08Michael Paquier\uff09</p>\n<p>\u4ee5\u524d\uff0c<code>pg_hba.conf</code> \u4e2d\u7684\u590d\u5236\u8fde\u63a5\u884c\u9ed8\u8ba4\u88ab\u6ce8\u91ca\u6389\u3002\u8fd9\u5bf9\u4e8e <span><a href=\"/docs/10/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a></span> \u5c24\u5176\u6709\u7528\u3002</p>", "text": "\u5728 pg_hba.conf \u4e2d\u9ed8\u8ba4\u542f\u7528\u6765\u81ea localhost \u8fde\u63a5\u7684\u590d\u5236\uff08Michael Paquier\uff09 \u4ee5\u524d\uff0cpg_hba.conf \u4e2d\u7684\u590d\u5236\u8fde\u63a5\u884c\u9ed8\u8ba4\u88ab\u6ce8\u91ca\u6389\u3002\u8fd9\u5bf9\u4e8e pg_basebackup \u5c24\u5176\u6709\u7528\u3002", "title": "\u5728 pg_hba.conf \u4e2d\u9ed8\u8ba4\u542f\u7528\u6765\u81ea localhost \u8fde\u63a5\u7684\u590d\u5236", "commits": [], "section": "\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "324083adcb6a065adac020ce1c8b6543fdccbf36a8ebd3dd9f3f0f018c2324c6", "section_path": ["\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["be37c2120"]], "identity_text": "Enable replication from localhost connections by default in pg_hba.conf (Michael Paquier) Previously pg_hba.conf's replication connection lines were commented out by default. This is particularly useful for app-pgbasebackup .", "commit_aliases": ["be37c2120"], "source_commits": ["be37c2120"], "source_entry_id": "10.0/changes/054", "db_id": "10e0128b3b9224ccfe673d831064775c", "patch_ids": ["5c00e6c95252edb590914ebdd6125e95"], "statement_hash": "0c44efa00fafadaee43159099db0de1681bd6bfa75e2111afdfb9f510a0db89c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-34d5ebb1bcd570a5", "migration": false}, {"id": "10.0-43b5d586c3287504", "cves": [], "html": "<p>\u5411 <a href=\"/docs/10/monitoring-stats.html#PG-STAT-REPLICATION-VIEW\" title=\"\u8868\u00a028.5.\u00a0pg_stat_replication \u89c6\u56fe\"><code>pg_stat_replication</code></a> \u6dfb\u52a0\u5217\uff0c\u4ee5\u62a5\u544a\u590d\u5236\u5ef6\u8fdf\u65f6\u95f4\uff08Thomas Munro\uff09</p>\n<p>\u65b0\u5217\u4e3a <code>write_lag</code>\u3001<code>flush_lag</code> \u548c <code>replay_lag</code>\u3002</p>", "text": "\u5411 pg_stat_replication \u6dfb\u52a0\u5217\uff0c\u4ee5\u62a5\u544a\u590d\u5236\u5ef6\u8fdf\u65f6\u95f4\uff08Thomas Munro\uff09 \u65b0\u5217\u4e3a write_lag\u3001flush_lag \u548c replay_lag\u3002", "title": "\u5411 pg_stat_replication \u6dfb\u52a0\u5217\uff0c\u4ee5\u62a5\u544a\u590d\u5236\u5ef6\u8fdf\u65f6\u95f4", "commits": [], "section": "\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "41dc5e1d0da2a7623d4ecbf6900458a832949ab12498cd9d4ee873cd2fa8d4a2", "section_path": ["\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["6912acc04"]], "identity_text": "Add columns to pg_stat_replication to report replication delay times (Thomas Munro) The new columns are write_lag, flush_lag, and replay_lag.", "commit_aliases": ["6912acc04"], "source_commits": ["6912acc04"], "source_entry_id": "10.0/changes/055", "db_id": "b184bc39ce8893ba709e2ba618eedd06", "patch_ids": ["08f18930d032674c4f2662a12a875481"], "statement_hash": "30509ec6f0d90daadb0da8f0b19d810cbfd61d2cc51f476d30ea3cf5defb60a1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-43b5d586c3287504", "migration": false}, {"id": "10.0-49f3361a42424615", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <a href=\"/docs/10/recovery-config.html\" title=\"\u7b2c\u00a027\u00a0\u7ae0\u00a0\u6062\u590d\u914d\u7f6e\"><code>recovery.conf</code></a> \u4e2d\u6309\u65e5\u5fd7\u5e8f\u5217\u53f7\uff08<acronym>LSN</acronym>\uff09\u6307\u5b9a\u6062\u590d\u505c\u6b62\u70b9\uff08Michael Paquier\uff09</p>\n<p>\u4ee5\u524d\uff0c\u53ea\u80fd\u6309\u65f6\u95f4\u6233\u6216 XID \u9009\u62e9\u505c\u6b62\u70b9\u3002</p>", "text": "\u5141\u8bb8\u5728 recovery.conf \u4e2d\u6309\u65e5\u5fd7\u5e8f\u5217\u53f7\uff08LSN\uff09\u6307\u5b9a\u6062\u590d\u505c\u6b62\u70b9\uff08Michael Paquier\uff09 \u4ee5\u524d\uff0c\u53ea\u80fd\u6309\u65f6\u95f4\u6233\u6216 XID \u9009\u62e9\u505c\u6b62\u70b9\u3002", "title": "\u5141\u8bb8\u5728 recovery.conf \u4e2d\u6309\u65e5\u5fd7\u5e8f\u5217\u53f7\uff08LSN\uff09\u6307\u5b9a\u6062\u590d\u505c\u6b62\u70b9", "commits": [], "section": "\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "2815edcf421ed51fb957d4d3d6ee6f275c011b004376b6a6d76ab5f0d7f1b9c3", "section_path": ["\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["35250b6ad"]], "identity_text": "Allow specification of the recovery stopping point by Log Sequence Number (LSN) in recovery.conf (Michael Paquier) Previously the stopping point could only be selected by timestamp or XID.", "commit_aliases": ["35250b6ad"], "source_commits": ["35250b6ad"], "source_entry_id": "10.0/changes/056", "db_id": "d6aad2f763b159e65a7887cd2c4b49c9", "patch_ids": ["7d0400fa87e53e4484c0f9d39f4d9988"], "statement_hash": "f248486f70b3f3fa457fddcd45bbc3b43a12f70c723ee0a82aec4b66748989ac", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-49f3361a42424615", "migration": false}, {"id": "10.0-51b922cbba1f872e", "cves": [], "html": "<p>\u5141\u8bb8\u7528\u6237\u7981\u7528 <a href=\"/docs/10/functions-admin.html\" title=\"9.26.\u00a0\u7cfb\u7edf\u7ba1\u7406\u51fd\u6570\"><code>pg_stop_backup()</code></a> \u7b49\u5f85\u6240\u6709 <acronym>WAL</acronym> \u5b8c\u6210\u5f52\u6863\u7684\u884c\u4e3a\uff08David Steele\uff09</p>\n<p><code>pg_stop_backup()</code> \u7684\u53ef\u9009\u7b2c\u4e8c\u53c2\u6570\u63a7\u5236\u8fd9\u4e00\u884c\u4e3a\u3002</p>", "text": "\u5141\u8bb8\u7528\u6237\u7981\u7528 pg_stop_backup() \u7b49\u5f85\u6240\u6709 WAL \u5b8c\u6210\u5f52\u6863\u7684\u884c\u4e3a\uff08David Steele\uff09 pg_stop_backup() \u7684\u53ef\u9009\u7b2c\u4e8c\u53c2\u6570\u63a7\u5236\u8fd9\u4e00\u884c\u4e3a\u3002", "title": "\u5141\u8bb8\u7528\u6237\u7981\u7528 pg_stop_backup() \u7b49\u5f85\u6240\u6709 WAL \u5b8c\u6210\u5f52\u6863\u7684\u884c\u4e3a", "commits": [], "section": "\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "63b4b23423268e1eb5f623d3a87a83807c3751301a0aa5c182029fdeab2208ab", "section_path": ["\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["017e4f258"], ["52f8a59dd"]], "identity_text": "Allow users to disable pg_stop_backup()'s waiting for all WAL to be archived (David Steele) An optional second argument to pg_stop_backup() controls that behavior.", "commit_aliases": ["017e4f258", "52f8a59dd"], "source_commits": ["017e4f258", "52f8a59dd"], "source_entry_id": "10.0/changes/057", "db_id": "c99d5cec2616fcacb3a4e8d2e1a47f23", "patch_ids": ["26ac9de2f76cd62af80ddab9108c19c7", "5aae4302a655cb1ba7d31efe8bc0191c"], "statement_hash": "21c73b743c58479a5a9e4c73ef373fae08b54dd622674b62136a3fee4c772cf6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-51b922cbba1f872e", "migration": false}, {"id": "10.0-105a865bd8ef7ac4", "cves": [], "html": "<p>\u5141\u8bb8\u521b\u5efa<a href=\"/docs/10/functions-admin.html#FUNCTIONS-REPLICATION-TABLE\" title=\"\u8868\u00a09.83.\u00a0\u590d\u5236 SQL \u51fd\u6570\">\u4e34\u65f6\u590d\u5236\u69fd</a>\uff08Petr Jelinek\uff09</p>\n<p>\u4e34\u65f6\u69fd\u4f1a\u5728\u4f1a\u8bdd\u9000\u51fa\u6216\u51fa\u9519\u65f6\u81ea\u52a8\u79fb\u9664\u3002</p>", "text": "\u5141\u8bb8\u521b\u5efa\u4e34\u65f6\u590d\u5236\u69fd\uff08Petr Jelinek\uff09 \u4e34\u65f6\u69fd\u4f1a\u5728\u4f1a\u8bdd\u9000\u51fa\u6216\u51fa\u9519\u65f6\u81ea\u52a8\u79fb\u9664\u3002", "title": "\u5141\u8bb8\u521b\u5efa\u4e34\u65f6\u590d\u5236\u69fd", "commits": [], "section": "\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "a67867bae863ed84d21ca94229f1b08fce3661ab3cb1c8ba3d786e27d408fc61", "section_path": ["\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["a924c327e"]], "identity_text": "Allow creation of temporary replication slots (Petr Jelinek) Temporary slots are automatically removed on session exit or error.", "commit_aliases": ["a924c327e"], "source_commits": ["a924c327e"], "source_entry_id": "10.0/changes/058", "db_id": "94d63f267644c5550a4fb34179113407", "patch_ids": ["d5ca53ea829b0433d245a027c96795bd"], "statement_hash": "8d8d325f39d1180484d4b07bf2b8183c820cb51efd0886380d75e0a970f34803", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-105a865bd8ef7ac4", "migration": false}, {"id": "10.0-71869a11c42be512", "cves": [], "html": "<p>\u901a\u8fc7\u66f4\u597d\u5730\u8ddf\u8e2a\u8bbf\u95ee\u6392\u4ed6\u9501\uff0c\u63d0\u5347\u70ed\u5907\u91cd\u653e\u6027\u80fd\uff08Simon Riggs\uff0cDavid Rowley\uff09</p>", "text": "\u901a\u8fc7\u66f4\u597d\u5730\u8ddf\u8e2a\u8bbf\u95ee\u6392\u4ed6\u9501\uff0c\u63d0\u5347\u70ed\u5907\u91cd\u653e\u6027\u80fd\uff08Simon Riggs\uff0cDavid Rowley\uff09", "title": "\u901a\u8fc7\u66f4\u597d\u5730\u8ddf\u8e2a\u8bbf\u95ee\u6392\u4ed6\u9501\uff0c\u63d0\u5347\u70ed\u5907\u91cd\u653e\u6027\u80fd", "commits": [], "section": "\u590d\u5236\u4e0e\u6062\u590d", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "2fac1f6616f3b9e3ab4661e2db7fd219e7500c215606370cb552f6a97818671a", "section_path": ["\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["9b013dc23"]], "identity_text": "Improve performance of hot standby replay with better tracking of Access Exclusive locks (Simon Riggs, David Rowley)", "commit_aliases": ["9b013dc23"], "source_commits": ["9b013dc23"], "source_entry_id": "10.0/changes/059", "db_id": "88bbe6e6e6d7a54a9f119813e0196fe1", "patch_ids": ["4d856039f05b57199360f11dcdc4ebf6"], "statement_hash": "5cac060c135c7ee57dbdf57f581799d1dca505c84afa9d86823f5219753397b2", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=10.0#10.0-71869a11c42be512", "migration": false}, {"id": "10.0-c08ac60e12a289d0", "cves": [], "html": "<p>\u63d0\u5347\u4e24\u9636\u6bb5\u63d0\u4ea4\u6062\u590d\u6027\u80fd\uff08Stas Kelvich\uff0cNikhil Sontakke\uff0cMichael Paquier\uff09</p>", "text": "\u63d0\u5347\u4e24\u9636\u6bb5\u63d0\u4ea4\u6062\u590d\u6027\u80fd\uff08Stas Kelvich\uff0cNikhil Sontakke\uff0cMichael Paquier\uff09", "title": "\u63d0\u5347\u4e24\u9636\u6bb5\u63d0\u4ea4\u6062\u590d\u6027\u80fd", "commits": [], "section": "\u590d\u5236\u4e0e\u6062\u590d", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "094a02cfffc6c75f2bb0f6d2f8fff998eaf5119ae119dfe739f0dafd869a5cdb", "section_path": ["\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["728bd991c"]], "identity_text": "Speed up two-phase commit recovery performance (Stas Kelvich, Nikhil Sontakke, Michael Paquier)", "commit_aliases": ["728bd991c"], "source_commits": ["728bd991c"], "source_entry_id": "10.0/changes/060", "db_id": "e62db3557fadcb3ee908fa7de4be4572", "patch_ids": ["855c0c93dc38e0e721302335a849e5ea"], "statement_hash": "02d70c318ea3c974e16da864d95ccb7491e8fe1508c8eaf85575f5ca6adf9f06", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=10.0#10.0-c08ac60e12a289d0", "migration": false}, {"id": "10.0-c9772da1ca868ce3", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/10/functions-xml.html#FUNCTIONS-XML-PROCESSING-XMLTABLE\" title=\"9.14.3.3.\u00a0xmltable\"><code>XMLTABLE</code></a> \u51fd\u6570\uff0c\u5c06 <code>XML</code> \u683c\u5f0f\u7684\u6570\u636e\u8f6c\u6362\u4e3a\u884c\u96c6\uff08Pavel Stehule\uff0c\u00c1lvaro Herrera\uff09</p>", "text": "\u589e\u52a0 XMLTABLE \u51fd\u6570\uff0c\u5c06 XML \u683c\u5f0f\u7684\u6570\u636e\u8f6c\u6362\u4e3a\u884c\u96c6\uff08Pavel Stehule\uff0c\u00c1lvaro Herrera\uff09", "title": "\u589e\u52a0 XMLTABLE \u51fd\u6570\uff0c\u5c06 XML \u683c\u5f0f\u7684\u6570\u636e\u8f6c\u6362\u4e3a\u884c\u96c6", "commits": [], "section": "\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.5", "source_hash": "298a389d6699d144a0c8e43d358579add2d883c1408b3dc408db2cebe0915285", "section_path": ["\u67e5\u8be2"], "commit_groups": [["fcec6caaf"]], "identity_text": "Add XMLTABLE function that converts XML-formatted data into a row set (Pavel Stehule, \u00c1lvaro Herrera)", "commit_aliases": ["fcec6caaf"], "source_commits": ["fcec6caaf"], "source_entry_id": "10.0/changes/061", "db_id": "21e2cf622340600c752c44ef69a83c14", "patch_ids": ["423a834021e69b3e394e60805cb86308"], "statement_hash": "2814236b2184932bcd0d24b4e72328507682b8566e903b70bf7aeab66b3ee22c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-c9772da1ca868ce3", "migration": false}, {"id": "10.0-73344f1e0a5dedfd", "cves": [], "html": "<p>\u4fee\u590d\u6b63\u5219\u8868\u8fbe\u5f0f\u5bf9\u8f83\u5927\u5b57\u7b26\u7801\u7684\u5b57\u7b26\u7c7b\u5904\u7406\uff0c\u5c24\u5176\u662f <code>U+7FF</code> \u4ee5\u4e0a\u7684 Unicode \u5b57\u7b26\uff08Tom Lane\uff09</p>\n<p>\u4ee5\u524d\uff0c\u8fd9\u7c7b\u5b57\u7b26\u4ece\u4e0d\u4f1a\u88ab\u8bc6\u522b\u4e3a\u5c5e\u4e8e <code>[[:alpha:]]</code> \u7b49\u4f9d\u8d56\u533a\u57df\u8bbe\u7f6e\u7684\u5b57\u7b26\u7c7b\u3002</p>", "text": "\u4fee\u590d\u6b63\u5219\u8868\u8fbe\u5f0f\u5bf9\u8f83\u5927\u5b57\u7b26\u7801\u7684\u5b57\u7b26\u7c7b\u5904\u7406\uff0c\u5c24\u5176\u662f U+7FF \u4ee5\u4e0a\u7684 Unicode \u5b57\u7b26\uff08Tom Lane\uff09 \u4ee5\u524d\uff0c\u8fd9\u7c7b\u5b57\u7b26\u4ece\u4e0d\u4f1a\u88ab\u8bc6\u522b\u4e3a\u5c5e\u4e8e [[:alpha:]] \u7b49\u4f9d\u8d56\u533a\u57df\u8bbe\u7f6e\u7684\u5b57\u7b26\u7c7b\u3002", "title": "\u4fee\u590d\u6b63\u5219\u8868\u8fbe\u5f0f\u5bf9\u8f83\u5927\u5b57\u7b26\u7801\u7684\u5b57\u7b26\u7c7b\u5904\u7406\uff0c\u5c24\u5176\u662f U+7FF \u4ee5\u4e0a\u7684 Unicode \u5b57\u7b26", "commits": [], "section": "\u67e5\u8be2", "category": "bugfix", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.5", "source_hash": "231685b806dae0cdf5baa94d14fa85f35d339eb099794894c7842cdb8d204a51", "section_path": ["\u67e5\u8be2"], "commit_groups": [["c54159d44"]], "identity_text": "Fix regular expressions' character class handling for large character codes, particularly Unicode characters above U+7FF (Tom Lane) Previously, such characters were never recognized as belonging to locale-dependent character classes such as [[:alpha:]].", "commit_aliases": ["c54159d44"], "source_commits": ["c54159d44"], "source_entry_id": "10.0/changes/062", "db_id": "214edfd3295202eba001c16a72569d46", "patch_ids": ["8fe5748caeee429e6ec7f4a676697e1b"], "statement_hash": "d3e8f8d6789e73ec9682bd637c8da24933468b2a0e2f5bfa1492e31eb8e5417b", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=10.0#10.0-73344f1e0a5dedfd", "migration": false}, {"id": "10.0-c371358fa55a0e03", "cves": [], "html": "<p>\u589e\u52a0\u8868<a href=\"/docs/10/sql-createtable.html#SQL-CREATETABLE-PARTITION\">\u5206\u533a\u8bed\u6cd5</a>\uff0c\u81ea\u52a8\u521b\u5efa\u5206\u533a\u7ea6\u675f\uff0c\u5e76\u5904\u7406\u5143\u7ec4\u63d2\u5165\u548c\u66f4\u65b0\u7684\u8def\u7531\uff08Amit Langote\uff09</p>\n<p>\u8be5\u8bed\u6cd5\u652f\u6301\u8303\u56f4\u5206\u533a\u548c\u5217\u8868\u5206\u533a\u3002</p>", "text": "\u589e\u52a0\u8868\u5206\u533a\u8bed\u6cd5\uff0c\u81ea\u52a8\u521b\u5efa\u5206\u533a\u7ea6\u675f\uff0c\u5e76\u5904\u7406\u5143\u7ec4\u63d2\u5165\u548c\u66f4\u65b0\u7684\u8def\u7531\uff08Amit Langote\uff09 \u8be5\u8bed\u6cd5\u652f\u6301\u8303\u56f4\u5206\u533a\u548c\u5217\u8868\u5206\u533a\u3002", "title": "\u589e\u52a0\u8868\u5206\u533a\u8bed\u6cd5\uff0c\u81ea\u52a8\u521b\u5efa\u5206\u533a\u7ea6\u675f\uff0c\u5e76\u5904\u7406\u5143\u7ec4\u63d2\u5165\u548c\u66f4\u65b0\u7684\u8def\u7531", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "94d8858175f00905c9d3674000e0ab563d7df4de6468d33020421e857c482b9c", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["f0e44751d"]], "identity_text": "Add table partitioning syntax that automatically creates partition constraints and handles routing of tuple insertions and updates (Amit Langote) The syntax supports range and list partitioning.", "commit_aliases": ["f0e44751d"], "source_commits": ["f0e44751d"], "source_entry_id": "10.0/changes/063", "db_id": "000057305b6d8458507f09c26fffd339", "patch_ids": ["2bf171efca6b83c614abb12f5bd60e5b"], "statement_hash": "e6f014871affdecd51e5f21cf376222be26826e3fc03e3b464de957394eb3724", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-c371358fa55a0e03", "migration": false}, {"id": "10.0-1a4f0ddcaae34961", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/10/sql-createtrigger.html\" title=\"CREATE TRIGGER\"><code>AFTER</code> \u89e6\u53d1\u5668</a>\u7684\u8fc7\u6e21\u8868\uff0c\u4ee5\u8bb0\u5f55\u5df2\u53d8\u66f4\u7684\u884c\uff08Kevin Grittner\uff0cThomas Munro\uff09</p>\n<p>\u4f7f\u7528\u670d\u52a1\u5668\u7aef\u8bed\u8a00\u7f16\u5199\u7684\u89e6\u53d1\u5668\u53ef\u4ee5\u8bbf\u95ee\u8fc7\u6e21\u8868\u3002</p>", "text": "\u589e\u52a0 AFTER \u89e6\u53d1\u5668\u7684\u8fc7\u6e21\u8868\uff0c\u4ee5\u8bb0\u5f55\u5df2\u53d8\u66f4\u7684\u884c\uff08Kevin Grittner\uff0cThomas Munro\uff09 \u4f7f\u7528\u670d\u52a1\u5668\u7aef\u8bed\u8a00\u7f16\u5199\u7684\u89e6\u53d1\u5668\u53ef\u4ee5\u8bbf\u95ee\u8fc7\u6e21\u8868\u3002", "title": "\u589e\u52a0 AFTER \u89e6\u53d1\u5668\u7684\u8fc7\u6e21\u8868\uff0c\u4ee5\u8bb0\u5f55\u5df2\u53d8\u66f4\u7684\u884c", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "834dedfaacca547b9c5623065cdd74918520d15a6eecb0697bb7156e7a039f9e", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["597027163"], ["5ebeb579b"], ["8c48375e5"]], "identity_text": "Add AFTER trigger transition tables to record changed rows (Kevin Grittner, Thomas Munro) Transition tables are accessible from triggers written in server-side languages.", "commit_aliases": ["597027163", "5ebeb579b", "8c48375e5"], "source_commits": ["597027163", "5ebeb579b", "8c48375e5"], "source_entry_id": "10.0/changes/064", "db_id": "de0d9af502d9e1e6d87e711d28a2f042", "patch_ids": ["09466e2798704d0757aecf9fb54b94a2", "bd09118edd8189fcb8d416683119d3f9", "d984a09ea62a00b46e43afe97c645165"], "statement_hash": "38e9e2985f53a4c167d53ae0073e13f157f08a37e2051da83812a01d3d18e94c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-1a4f0ddcaae34961", "migration": false}, {"id": "10.0-d7fff36608094969", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528<a href=\"/docs/10/sql-createpolicy.html\" title=\"CREATE POLICY\">\u9650\u5236\u6027\u884c\u7ea7\u5b89\u5168\u7b56\u7565</a>\uff08Stephen Frost\uff09</p>\n<p>\u4ee5\u524d\uff0c\u6240\u6709\u5b89\u5168\u7b56\u7565\u90fd\u662f\u5bbd\u677e\u7684\uff0c\u53ea\u8981\u4efb\u610f\u7b56\u7565\u5339\u914d\u5c31\u5141\u8bb8\u8bbf\u95ee\u3002\u9650\u5236\u6027\u7b56\u7565\u5219\u5fc5\u987b\u5339\u914d\u624d\u4f1a\u6388\u4e88\u8bbf\u95ee\u6743\u9650\u3002\u8fd9\u4e24\u7c7b\u7b56\u7565\u53ef\u4ee5\u7ec4\u5408\u4f7f\u7528\u3002</p>", "text": "\u5141\u8bb8\u4f7f\u7528\u9650\u5236\u6027\u884c\u7ea7\u5b89\u5168\u7b56\u7565\uff08Stephen Frost\uff09 \u4ee5\u524d\uff0c\u6240\u6709\u5b89\u5168\u7b56\u7565\u90fd\u662f\u5bbd\u677e\u7684\uff0c\u53ea\u8981\u4efb\u610f\u7b56\u7565\u5339\u914d\u5c31\u5141\u8bb8\u8bbf\u95ee\u3002\u9650\u5236\u6027\u7b56\u7565\u5219\u5fc5\u987b\u5339\u914d\u624d\u4f1a\u6388\u4e88\u8bbf\u95ee\u6743\u9650\u3002\u8fd9\u4e24\u7c7b\u7b56\u7565\u53ef\u4ee5\u7ec4\u5408\u4f7f\u7528\u3002", "title": "\u5141\u8bb8\u4f7f\u7528\u9650\u5236\u6027\u884c\u7ea7\u5b89\u5168\u7b56\u7565", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "20ad2dc5b93616be835c2ebc1e74e3a483caf830be97c14ed18e764c8393df66", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["093129c9d"]], "identity_text": "Allow restrictive row-level security policies (Stephen Frost) Previously all security policies were permissive, meaning that any matching policy allowed access. A restrictive policy must match for access to be granted. These policy types can be combined.", "commit_aliases": ["093129c9d"], "source_commits": ["093129c9d"], "source_entry_id": "10.0/changes/065", "db_id": "11b96674a66e357c060e1dcc5e253b7b", "patch_ids": ["f8296a929e01c4303a2ddef9913af095"], "statement_hash": "190ca66f06b4064549fe003257b36cb1c8f60d7a632f550709198255cc4d7a36", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d7fff36608094969", "migration": false}, {"id": "10.0-95f3f05fb612c730", "cves": [], "html": "<p>\u521b\u5efa\u5916\u952e\u7ea6\u675f\u65f6\uff0c\u53ea\u68c0\u67e5\u88ab\u5f15\u7528\u8868\u4e0a\u7684 <code>REFERENCES</code> \u6743\u9650\uff08Tom Lane\uff09</p>\n<p>\u4ee5\u524d\uff0c\u8fd8\u8981\u6c42\u5f15\u7528\u8868\u4e0a\u7684 <code>REFERENCES</code> \u6743\u9650\u3002\u8fd9\u4f3c\u4e4e\u6e90\u4e8e\u5bf9 SQL \u6807\u51c6\u7684\u8bef\u8bfb\u3002\u7531\u4e8e\u521b\u5efa\u5916\u952e\u7ea6\u675f\uff08\u6216\u4efb\u4f55\u5176\u4ed6\u7c7b\u578b\u7684\u7ea6\u675f\uff09\u9700\u8981\u62e5\u6709\u88ab\u7ea6\u675f\u7684\u8868\uff0c\u989d\u5916\u8981\u6c42 <code>REFERENCES</code> \u6743\u9650\u4f3c\u4e4e\u6beb\u65e0\u610f\u4e49\u3002</p>", "text": "\u521b\u5efa\u5916\u952e\u7ea6\u675f\u65f6\uff0c\u53ea\u68c0\u67e5\u88ab\u5f15\u7528\u8868\u4e0a\u7684 REFERENCES \u6743\u9650\uff08Tom Lane\uff09 \u4ee5\u524d\uff0c\u8fd8\u8981\u6c42\u5f15\u7528\u8868\u4e0a\u7684 REFERENCES \u6743\u9650\u3002\u8fd9\u4f3c\u4e4e\u6e90\u4e8e\u5bf9 SQL \u6807\u51c6\u7684\u8bef\u8bfb\u3002\u7531\u4e8e\u521b\u5efa\u5916\u952e\u7ea6\u675f\uff08\u6216\u4efb\u4f55\u5176\u4ed6\u7c7b\u578b\u7684\u7ea6\u675f\uff09\u9700\u8981\u62e5\u6709\u88ab\u7ea6\u675f\u7684\u8868\uff0c\u989d\u5916\u8981\u6c42 REFERENCES \u6743\u9650\u4f3c\u4e4e\u6beb\u65e0\u610f\u4e49\u3002", "title": "\u521b\u5efa\u5916\u952e\u7ea6\u675f\u65f6\uff0c\u53ea\u68c0\u67e5\u88ab\u5f15\u7528\u8868\u4e0a\u7684 REFERENCES \u6743\u9650", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "2a9163df4dfc39ab7330f276f320bc3725d3b4143a5ed585c5b6449aaf550e0f", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["64d4da511"]], "identity_text": "When creating a foreign-key constraint, check for REFERENCES permission on only the referenced table (Tom Lane) Previously REFERENCES permission on the referencing table was also required. This appears to have stemmed from a misreading of the SQL standard. Since creating a foreign key (or any other type of) constraint requires ownership privilege on the constrained table, additionally requiring REFERENCES permission seems rather pointless.", "commit_aliases": ["64d4da511"], "source_commits": ["64d4da511"], "source_entry_id": "10.0/changes/066", "db_id": "810355995f0340ff303685086550013c", "patch_ids": ["df2c78f2bf6b8367fac34f1caae67ff3"], "statement_hash": "4887b81173c2f616178881ba70594218ef0186a5b4e48e486e3259042a8a4af3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-95f3f05fb612c730", "migration": false}, {"id": "10.0-0a6eff6385b63bd1", "cves": [], "html": "<p>\u5141\u8bb8\u4e3a\u6a21\u5f0f\u8bbe\u7f6e<a href=\"/docs/10/sql-alterdefaultprivileges.html\" title=\"ALTER DEFAULT PRIVILEGES\">\u9ed8\u8ba4\u6743\u9650</a>\uff08Matheus Oliveira\uff09</p>\n<p>\u8fd9\u901a\u8fc7 <code>ALTER DEFAULT PRIVILEGES</code> \u547d\u4ee4\u5b8c\u6210\u3002</p>", "text": "\u5141\u8bb8\u4e3a\u6a21\u5f0f\u8bbe\u7f6e\u9ed8\u8ba4\u6743\u9650\uff08Matheus Oliveira\uff09 \u8fd9\u901a\u8fc7 ALTER DEFAULT PRIVILEGES \u547d\u4ee4\u5b8c\u6210\u3002", "title": "\u5141\u8bb8\u4e3a\u6a21\u5f0f\u8bbe\u7f6e\u9ed8\u8ba4\u6743\u9650", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "69fdfa5bde157f6deb96f81f3b5256c689a209929de3aa91a7cb022f62fe870b", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["ab89e465c"]], "identity_text": "Allow default permissions on schemas (Matheus Oliveira) This is done using the ALTER DEFAULT PRIVILEGES command.", "commit_aliases": ["ab89e465c"], "source_commits": ["ab89e465c"], "source_entry_id": "10.0/changes/067", "db_id": "7ff733fe8ed74bc848dee8d58fdf7aa4", "patch_ids": ["97c4cc78fde6b7f27e6ec37dc8feb549"], "statement_hash": "bf1ee5162c6cc56d492171e025c236af48189679ba9e1d3f06eea9f420ca9cd3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-0a6eff6385b63bd1", "migration": false}, {"id": "10.0-65a3c2c0a929a92f", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/10/sql-createsequence.html\" title=\"CREATE SEQUENCE\"><code>CREATE SEQUENCE AS</code></a> \u547d\u4ee4\uff0c\u7528\u4e8e\u521b\u5efa\u4e0e\u67d0\u4e2a\u6574\u6570\u6570\u636e\u7c7b\u578b\u5339\u914d\u7684\u5e8f\u5217\uff08Peter Eisentraut\uff09</p>\n<p>\u8fd9\u7b80\u5316\u4e86\u521b\u5efa\u4e0e\u57fa\u7840\u5217\u53d6\u503c\u8303\u56f4\u5339\u914d\u7684\u5e8f\u5217\u3002</p>", "text": "\u589e\u52a0 CREATE SEQUENCE AS \u547d\u4ee4\uff0c\u7528\u4e8e\u521b\u5efa\u4e0e\u67d0\u4e2a\u6574\u6570\u6570\u636e\u7c7b\u578b\u5339\u914d\u7684\u5e8f\u5217\uff08Peter Eisentraut\uff09 \u8fd9\u7b80\u5316\u4e86\u521b\u5efa\u4e0e\u57fa\u7840\u5217\u53d6\u503c\u8303\u56f4\u5339\u914d\u7684\u5e8f\u5217\u3002", "title": "\u589e\u52a0 CREATE SEQUENCE AS \u547d\u4ee4\uff0c\u7528\u4e8e\u521b\u5efa\u4e0e\u67d0\u4e2a\u6574\u6570\u6570\u636e\u7c7b\u578b\u5339\u914d\u7684\u5e8f\u5217", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "dbb699bf2f589350eb074b3c495e11b3a59e7e9001bd1d4b3a618bd053608abf", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["2ea5b06c7"]], "identity_text": "Add CREATE SEQUENCE AS command to create a sequence matching an integer data type (Peter Eisentraut) This simplifies the creation of sequences matching the range of base columns.", "commit_aliases": ["2ea5b06c7"], "source_commits": ["2ea5b06c7"], "source_entry_id": "10.0/changes/068", "db_id": "7d19b7716e47e8fa920af0dae46ddb4d", "patch_ids": ["cacf93b55aeda4f5f523fbc43dbd30cf"], "statement_hash": "23c49e912e34ad5a64b6aefdb1a356a6b2589f2cbe9779f3e75b515e383e16ec", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-65a3c2c0a929a92f", "migration": false}, {"id": "10.0-222041a7ca925162", "cves": [], "html": "<p>\u5141\u8bb8\u5bf9\u5177\u6709 <code>INSTEAD INSERT</code> \u89e6\u53d1\u5668\u7684\u89c6\u56fe\u6267\u884c <code>COPY <em><code>view</code></em> FROM <em><code>source</code></em></code>\uff08Haribabu Kommi\uff09</p>\n<p>\u8fd9\u4e9b\u89e6\u53d1\u5668\u4f1a\u63a5\u6536 <code>COPY</code> \u8bfb\u53d6\u7684\u6570\u636e\u884c\u3002</p>", "text": "\u5141\u8bb8\u5bf9\u5177\u6709 INSTEAD INSERT \u89e6\u53d1\u5668\u7684\u89c6\u56fe\u6267\u884c COPY view FROM source\uff08Haribabu Kommi\uff09 \u8fd9\u4e9b\u89e6\u53d1\u5668\u4f1a\u63a5\u6536 COPY \u8bfb\u53d6\u7684\u6570\u636e\u884c\u3002", "title": "\u5141\u8bb8\u5bf9\u5177\u6709 INSTEAD INSERT \u89e6\u53d1\u5668\u7684\u89c6\u56fe\u6267\u884c COPY view FROM source", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "4044b10ed9a060cf84a1984be5d44591259f68c9ebd4b19aa26da033d00bc223", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["279c439c7"]], "identity_text": "Allow COPY view FROM source on views with INSTEAD INSERT triggers (Haribabu Kommi) The triggers are fed the data rows read by COPY.", "commit_aliases": ["279c439c7"], "source_commits": ["279c439c7"], "source_entry_id": "10.0/changes/069", "db_id": "794e8aeb952655498d6ded9423310a74", "patch_ids": ["6399b2c75633b061840f609410a65c6e"], "statement_hash": "3f2fc9badecc9a1ce693c79a398f3b099a03d746344c94c23a78d207c3d7242b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-222041a7ca925162", "migration": false}, {"id": "10.0-41b6c62209fee7b2", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <acronym>DDL</acronym> \u547d\u4ee4\u4e2d\u6307\u5b9a\u4e0d\u5e26\u53c2\u6570\u7684\u51fd\u6570\u540d\uff0c\u524d\u63d0\u662f\u8be5\u540d\u79f0\u552f\u4e00\uff08Peter Eisentraut\uff09</p>\n<p>\u4f8b\u5982\uff0c\u5982\u679c\u67d0\u4e2a\u540d\u79f0\u53ea\u5bf9\u5e94\u4e00\u4e2a\u51fd\u6570\uff0c\u5c31\u5141\u8bb8\u5bf9\u4e0d\u5e26\u53c2\u6570\u7684\u8be5\u51fd\u6570\u540d\u6267\u884c <a href=\"/docs/10/sql-dropfunction.html\" title=\"DROP FUNCTION\"><code>DROP FUNCTION</code></a>\u3002\u8fd9\u662f <acronym>SQL</acronym> \u6807\u51c6\u8981\u6c42\u7684\u884c\u4e3a\u3002</p>", "text": "\u5141\u8bb8\u5728 DDL \u547d\u4ee4\u4e2d\u6307\u5b9a\u4e0d\u5e26\u53c2\u6570\u7684\u51fd\u6570\u540d\uff0c\u524d\u63d0\u662f\u8be5\u540d\u79f0\u552f\u4e00\uff08Peter Eisentraut\uff09 \u4f8b\u5982\uff0c\u5982\u679c\u67d0\u4e2a\u540d\u79f0\u53ea\u5bf9\u5e94\u4e00\u4e2a\u51fd\u6570\uff0c\u5c31\u5141\u8bb8\u5bf9\u4e0d\u5e26\u53c2\u6570\u7684\u8be5\u51fd\u6570\u540d\u6267\u884c DROP FUNCTION\u3002\u8fd9\u662f SQL \u6807\u51c6\u8981\u6c42\u7684\u884c\u4e3a\u3002", "title": "\u5141\u8bb8\u5728 DDL \u547d\u4ee4\u4e2d\u6307\u5b9a\u4e0d\u5e26\u53c2\u6570\u7684\u51fd\u6570\u540d\uff0c\u524d\u63d0\u662f\u8be5\u540d\u79f0\u552f\u4e00", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "0e94be3ed232fb29f4a528a0b8cfc8124ad5dc6399fd6fb7b7857e9d36dd2f8e", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["aefeb6874"]], "identity_text": "Allow the specification of a function name without arguments in DDL commands, if it is unique (Peter Eisentraut) For example, allow DROP FUNCTION on a function name without arguments if there is only one function with that name. This behavior is required by the SQL standard.", "commit_aliases": ["aefeb6874"], "source_commits": ["aefeb6874"], "source_entry_id": "10.0/changes/070", "db_id": "166edcd504777147dd9b87468952effb", "patch_ids": ["040bd33ba24dd98e86e3146694eb2e35"], "statement_hash": "25570f7e34fca28868e0f709dd6c7773e4f69c02fb24c35600f190ffd3b768e2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-41b6c62209fee7b2", "migration": false}, {"id": "10.0-013ea2b866dc3a2a", "cves": [], "html": "<p>\u5141\u8bb8\u7528\u4e00\u6761 <code>DROP</code> \u547d\u4ee4\u5220\u9664\u591a\u4e2a\u51fd\u6570\u3001\u64cd\u4f5c\u7b26\u548c\u805a\u5408\uff08Peter Eisentraut\uff09</p>", "text": "\u5141\u8bb8\u7528\u4e00\u6761 DROP \u547d\u4ee4\u5220\u9664\u591a\u4e2a\u51fd\u6570\u3001\u64cd\u4f5c\u7b26\u548c\u805a\u5408\uff08Peter Eisentraut\uff09", "title": "\u5141\u8bb8\u7528\u4e00\u6761 DROP \u547d\u4ee4\u5220\u9664\u591a\u4e2a\u51fd\u6570\u3001\u64cd\u4f5c\u7b26\u548c\u805a\u5408", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "f257433995efa9ff74c54008518a1eea90afc0c8ab4ef212aac5c522287df88b", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["583f6c414"]], "identity_text": "Allow multiple functions, operators, and aggregates to be dropped with a single DROP command (Peter Eisentraut)", "commit_aliases": ["583f6c414"], "source_commits": ["583f6c414"], "source_entry_id": "10.0/changes/071", "db_id": "2d601e14059c9f5aa4f893bdcb382c20", "patch_ids": ["eed19ec4c6444e7d7d01ca6d5ec93584"], "statement_hash": "8b698634c441a3db8b108afd7a0c332f5a0bb107c1bd5a94c2313568943faac3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-013ea2b866dc3a2a", "migration": false}, {"id": "10.0-8c0e0275fd31103d", "cves": [], "html": "<p>\u5728 <a href=\"/docs/10/sql-createserver.html\" title=\"CREATE SERVER\"><code>CREATE SERVER</code></a>\u3001<a href=\"/docs/10/sql-createusermapping.html\" title=\"CREATE USER MAPPING\"><code>CREATE USER MAPPING</code></a> \u548c <a href=\"/docs/10/sql-createcollation.html\" title=\"CREATE COLLATION\"><code>CREATE COLLATION</code></a> \u4e2d\u652f\u6301 <code>IF NOT EXISTS</code>\uff08Anastasia Lubennikova\uff0cPeter Eisentraut\uff09</p>", "text": "\u5728 CREATE SERVER\u3001CREATE USER MAPPING \u548c CREATE COLLATION \u4e2d\u652f\u6301 IF NOT EXISTS\uff08Anastasia Lubennikova\uff0cPeter Eisentraut\uff09", "title": "\u5728 CREATE SERVER\u3001CREATE USER MAPPING \u548c CREATE COLLATION \u4e2d\u652f\u6301 IF NOT EXISTS", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "252c750dea82a88c311acc3c885b85edc11b21b7938b543f70c1368cbf8b9aa2", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["6d16ecc64"], ["b6fb534f1"]], "identity_text": "Support IF NOT EXISTS in CREATE SERVER, CREATE USER MAPPING, and CREATE COLLATION (Anastasia Lubennikova, Peter Eisentraut)", "commit_aliases": ["6d16ecc64", "b6fb534f1"], "source_commits": ["6d16ecc64", "b6fb534f1"], "source_entry_id": "10.0/changes/072", "db_id": "90e95dd0ca0f0e8f6035a8a96f8ee78c", "patch_ids": ["52eae263e5ce47a14ed73a08c4a62d65", "b03a1ed0aca72613960cd5f92ebdd275"], "statement_hash": "8c13663cb8903209823485639d5e93471639b5e73dade812578d799f207c2bf6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-8c0e0275fd31103d", "migration": false}, {"id": "10.0-0619349899e08d57", "cves": [], "html": "<p>\u4f7f <a href=\"/docs/10/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM VERBOSE</code></a> \u62a5\u544a\u8df3\u8fc7\u7684\u51bb\u7ed3\u9875\u6570\u91cf\u548c\u6700\u8001\u7684 xmin\uff08Masahiko Sawada\uff0cSimon Riggs\uff09</p>\n<p>\u8fd9\u4e9b\u4fe1\u606f\u4e5f\u5305\u542b\u5728<a href=\"/docs/10/runtime-config-autovacuum.html#GUC-LOG-AUTOVACUUM-MIN-DURATION\">log_autovacuum_min_duration</a>\u7684\u8f93\u51fa\u4e2d\u3002</p>", "text": "\u4f7f VACUUM VERBOSE \u62a5\u544a\u8df3\u8fc7\u7684\u51bb\u7ed3\u9875\u6570\u91cf\u548c\u6700\u8001\u7684 xmin\uff08Masahiko Sawada\uff0cSimon Riggs\uff09 \u8fd9\u4e9b\u4fe1\u606f\u4e5f\u5305\u542b\u5728log_autovacuum_min_duration\u7684\u8f93\u51fa\u4e2d\u3002", "title": "\u4f7f VACUUM VERBOSE \u62a5\u544a\u8df3\u8fc7\u7684\u51bb\u7ed3\u9875\u6570\u91cf\u548c\u6700\u8001\u7684 xmin", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "b1ea7471c96e5f6232bc2311eb4db75d35067a3b942d2d84ba5b63c5681e7761", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["70adf2fbe"], ["9eb344faf"]], "identity_text": "Make VACUUM VERBOSE report the number of skipped frozen pages and oldest xmin (Masahiko Sawada, Simon Riggs) This information is also included in guc-log-autovacuum-min-duration output.", "commit_aliases": ["70adf2fbe", "9eb344faf"], "source_commits": ["70adf2fbe", "9eb344faf"], "source_entry_id": "10.0/changes/073", "db_id": "06bb1e20aacbb6d818a007b2e238284d", "patch_ids": ["4e6dc85dbe847037690024614bd18f5e", "fa12b6ce3cc4b131c8e5aa5d58041af3"], "statement_hash": "4d280537989bc498a717ed8629cac7b69a66f09cb2f874d2d554cc2b12edd270", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-0619349899e08d57", "migration": false}, {"id": "10.0-e6a071e514c53b18", "cves": [], "html": "<p>\u52a0\u5feb <code>VACUUM</code> \u79fb\u9664\u672b\u5c3e\u7a7a\u5806\u9875\u7684\u901f\u5ea6\uff08Claudio Freire\uff0c\u00c1lvaro Herrera\uff09</p>", "text": "\u52a0\u5feb VACUUM \u79fb\u9664\u672b\u5c3e\u7a7a\u5806\u9875\u7684\u901f\u5ea6\uff08Claudio Freire\uff0c\u00c1lvaro Herrera\uff09", "title": "\u52a0\u5feb VACUUM \u79fb\u9664\u672b\u5c3e\u7a7a\u5806\u9875\u7684\u901f\u5ea6", "commits": [], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "cd73b540cece2c0cd4d6932d269cf18cddafad2bbb0c9796adbf493150e967d7", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["7e26e02ee"]], "identity_text": "Improve speed of VACUUM's removal of trailing empty heap pages (Claudio Freire, \u00c1lvaro Herrera)", "commit_aliases": ["7e26e02ee"], "source_commits": ["7e26e02ee"], "source_entry_id": "10.0/changes/074", "db_id": "3bedb3296b37ddb4e306f2be0b4415fe", "patch_ids": ["69aa4c2a24a6996a80d1a4b43f108f35"], "statement_hash": "b43efed8de1b627891ad864109e30b4153286e8bdacd442d760803d16a9012aa", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-e6a071e514c53b18", "migration": false}, {"id": "10.0-1348244158f994e7", "cves": [], "html": "<p>\u4e3a <code>JSON</code> \u548c <code>JSONB</code> \u589e\u52a0\u5168\u6587\u68c0\u7d22\u652f\u6301\uff08Dmitry Dolgov\uff09</p>\n<p>\u73b0\u5728\u53ef\u4ee5\u5c06\u51fd\u6570 <code>ts_headline()</code> \u548c <code>to_tsvector()</code> \u7528\u4e8e\u8fd9\u4e9b\u6570\u636e\u7c7b\u578b\u3002</p>", "text": "\u4e3a JSON \u548c JSONB \u589e\u52a0\u5168\u6587\u68c0\u7d22\u652f\u6301\uff08Dmitry Dolgov\uff09 \u73b0\u5728\u53ef\u4ee5\u5c06\u51fd\u6570 ts_headline() \u548c to_tsvector() \u7528\u4e8e\u8fd9\u4e9b\u6570\u636e\u7c7b\u578b\u3002", "title": "\u4e3a JSON \u548c JSONB \u589e\u52a0\u5168\u6587\u68c0\u7d22\u652f\u6301", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "2663562c294e0ec4fb2edfd5e4c86abdcd4e6102ebd7e7b25e35b014328c5336", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["e306df7f9"]], "identity_text": "Add full text search support for JSON and JSONB (Dmitry Dolgov) The functions ts_headline() and to_tsvector() can now be used on these data types.", "commit_aliases": ["e306df7f9"], "source_commits": ["e306df7f9"], "source_entry_id": "10.0/changes/075", "db_id": "0f7ac4a0fa18fc1d90f5a4badd4e0e2a", "patch_ids": ["1f61508b61138ec839272fada69f99d0"], "statement_hash": "dc328feca84c6693599d515c1406c16032aa2b815094085c181bd86b20f4e1a7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-1348244158f994e7", "migration": false}, {"id": "10.0-429e8da0a2a5009f", "cves": [], "html": "<p>\u901a\u8fc7\u65b0\u7684\u6570\u636e\u7c7b\u578b <a href=\"/docs/10/datatype-net-types.html#DATATYPE-MACADDR8\" title=\"8.9.5.\u00a0macaddr8\"><code>macaddr8</code></a>\uff0c\u589e\u52a0\u5bf9 <acronym>EUI-64</acronym> <acronym>MAC</acronym> \u5730\u5740\u7684\u652f\u6301\uff08Haribabu Kommi\uff09</p>\n<p>\u8fd9\u8865\u5145\u4e86\u73b0\u6709\u7684 <acronym>EUI-48</acronym> <acronym>MAC</acronym> \u5730\u5740\u652f\u6301\uff08\u7c7b\u578b <code>macaddr</code>\uff09\u3002</p>", "text": "\u901a\u8fc7\u65b0\u7684\u6570\u636e\u7c7b\u578b macaddr8\uff0c\u589e\u52a0\u5bf9 EUI-64 MAC \u5730\u5740\u7684\u652f\u6301\uff08Haribabu Kommi\uff09 \u8fd9\u8865\u5145\u4e86\u73b0\u6709\u7684 EUI-48 MAC \u5730\u5740\u652f\u6301\uff08\u7c7b\u578b macaddr\uff09\u3002", "title": "\u901a\u8fc7\u65b0\u7684\u6570\u636e\u7c7b\u578b macaddr8\uff0c\u589e\u52a0\u5bf9 EUI-64 MAC \u5730\u5740\u7684\u652f\u6301", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "63f68f72a04d7822a94124eaa35e012bbe3b0015b21cf653d9c7d4291fd7d190", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["c7a9fa399"]], "identity_text": "Add support for EUI-64 MAC addresses, as a new data type macaddr8 (Haribabu Kommi) This complements the existing support for EUI-48 MAC addresses (type macaddr).", "commit_aliases": ["c7a9fa399"], "source_commits": ["c7a9fa399"], "source_entry_id": "10.0/changes/076", "db_id": "f410a5d37f6d0a32a505bf037f54be2d", "patch_ids": ["0097c7141014598f0da80e41fd1dbe33"], "statement_hash": "0ff0c490986918103d6d381f4e39257b77e0dace09f6dda12fb1078dea609309", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-429e8da0a2a5009f", "migration": false}, {"id": "10.0-2522fdb67196f6c3", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/10/sql-createtable.html\" title=\"CREATE TABLE\">\u6807\u8bc6\u5217</a>\uff0c\u7528\u4e8e\u5728\u63d2\u5165\u65f6\u4e3a\u5217\u5206\u914d\u6570\u503c\uff08Peter Eisentraut\uff09</p>\n<p>\u5b83\u4eec\u7c7b\u4f3c\u4e8e <code>SERIAL</code> \u5217\uff0c\u4f46\u7b26\u5408 <acronym>SQL</acronym> \u6807\u51c6\u3002</p>", "text": "\u589e\u52a0\u6807\u8bc6\u5217\uff0c\u7528\u4e8e\u5728\u63d2\u5165\u65f6\u4e3a\u5217\u5206\u914d\u6570\u503c\uff08Peter Eisentraut\uff09 \u5b83\u4eec\u7c7b\u4f3c\u4e8e SERIAL \u5217\uff0c\u4f46\u7b26\u5408 SQL \u6807\u51c6\u3002", "title": "\u589e\u52a0\u6807\u8bc6\u5217\uff0c\u7528\u4e8e\u5728\u63d2\u5165\u65f6\u4e3a\u5217\u5206\u914d\u6570\u503c", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "c3084501a27bc7adb62fb236d73a81e6fd5d5f8e588cd9d0dd9743589e067bba", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["321732705"]], "identity_text": "Add identity columns for assigning a numeric value to columns on insert (Peter Eisentraut) These are similar to SERIAL columns, but are SQL standard compliant.", "commit_aliases": ["321732705"], "source_commits": ["321732705"], "source_entry_id": "10.0/changes/077", "db_id": "aad2cc6659d834f48bab60c1d6fd16be", "patch_ids": ["291b426f3f7cbe471973782c1121d68b"], "statement_hash": "6dcf631eaf48795654ec9d87765bd98c7a24e3c986e575c256b61c1a2e268cc9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-2522fdb67196f6c3", "migration": false}, {"id": "10.0-e08b66e232371612", "cves": [], "html": "<p>\u5141\u8bb8\u91cd\u547d\u540d <a href=\"/docs/10/datatype-enum.html\" title=\"8.7.\u00a0\u679a\u4e3e\u7c7b\u578b\"><code>ENUM</code></a> \u503c\uff08Dagfinn Ilmari Manns\u00e5ker\uff09</p>\n<p>\u8fd9\u4f7f\u7528\u8bed\u6cd5 <a href=\"/docs/10/sql-altertype.html\" title=\"ALTER TYPE\"><code>ALTER TYPE ... RENAME VALUE</code></a>\u3002</p>", "text": "\u5141\u8bb8\u91cd\u547d\u540d ENUM \u503c\uff08Dagfinn Ilmari Manns\u00e5ker\uff09 \u8fd9\u4f7f\u7528\u8bed\u6cd5 ALTER TYPE ... RENAME VALUE\u3002", "title": "\u5141\u8bb8\u91cd\u547d\u540d ENUM \u503c", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "fb94113850eedf2bb7a37ee8c0c06978df9c0cc1d3d786211a8323682923394c", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["0ab9c56d0"]], "identity_text": "Allow ENUM values to be renamed (Dagfinn Ilmari Manns\u00e5ker) This uses the syntax ALTER TYPE ... RENAME VALUE.", "commit_aliases": ["0ab9c56d0"], "source_commits": ["0ab9c56d0"], "source_entry_id": "10.0/changes/078", "db_id": "f18c2e7049930e72f14de6e8e17bd564", "patch_ids": ["5a90da7f9fa4470e756a00eb9817666b"], "statement_hash": "9367f5060207301150991d5ed5473032fb4f79ccd392f3992e2d29b178f14834", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-e08b66e232371612", "migration": false}, {"id": "10.0-b11c28eb99379f37", "cves": [], "html": "<p>\u5728 <a href=\"/docs/10/functions-json.html#FUNCTIONS-JSON-CREATION-TABLE\" title=\"\u8868\u00a09.45.\u00a0JSON \u521b\u5efa\u51fd\u6570\"><code>to_json()</code></a> \u548c <code>to_jsonb()</code> \u4e2d\uff0c\u6b63\u786e\u5730\u5c06\u6570\u7ec4\u4f2a\u7c7b\u578b\uff08<code>anyarray</code>\uff09\u89c6\u4e3a\u6570\u7ec4\uff08Andrew Dunstan\uff09</p>\n<p>\u4ee5\u524d\uff0c\u58f0\u660e\u4e3a <code>anyarray</code> \u7684\u5217\uff08\u5c24\u5176\u662f <code>pg_stats</code> \u89c6\u56fe\u4e2d\u7684\u5217\uff09\u4f1a\u88ab\u8f6c\u6362\u4e3a <code>JSON</code> \u5b57\u7b26\u4e32\uff0c\u800c\u4e0d\u662f\u6570\u7ec4\u3002</p>", "text": "\u5728 to_json() \u548c to_jsonb() \u4e2d\uff0c\u6b63\u786e\u5730\u5c06\u6570\u7ec4\u4f2a\u7c7b\u578b\uff08anyarray\uff09\u89c6\u4e3a\u6570\u7ec4\uff08Andrew Dunstan\uff09 \u4ee5\u524d\uff0c\u58f0\u660e\u4e3a anyarray \u7684\u5217\uff08\u5c24\u5176\u662f pg_stats \u89c6\u56fe\u4e2d\u7684\u5217\uff09\u4f1a\u88ab\u8f6c\u6362\u4e3a JSON \u5b57\u7b26\u4e32\uff0c\u800c\u4e0d\u662f\u6570\u7ec4\u3002", "title": "\u5728 to_json() \u548c to_jsonb() \u4e2d\uff0c\u6b63\u786e\u5730\u5c06\u6570\u7ec4\u4f2a\u7c7b\u578b\uff08anyarray\uff09\u89c6\u4e3a\u6570\u7ec4", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "ddf2c08b457904f7e6dcca7d9b11881e75925e3e8ad075fed8805bf4ba7ee8bf", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["502a3832c"]], "identity_text": "Properly treat array pseudotypes (anyarray) as arrays in to_json() and to_jsonb() (Andrew Dunstan) Previously columns declared as anyarray (particularly those in the pg_stats view) were converted to JSON strings rather than arrays.", "commit_aliases": ["502a3832c"], "source_commits": ["502a3832c"], "source_entry_id": "10.0/changes/079", "db_id": "e4b856b0bd769c376564f4f6afada69d", "patch_ids": ["64a1b611ab8488660106e8f5a4009827"], "statement_hash": "670695874f7c586304118b52d7c49ce4b360a26b197e795dac5ea566cde11591", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-b11c28eb99379f37", "migration": false}, {"id": "10.0-4b95c7b48b7ed124", "cves": [], "html": "<p>\u589e\u52a0\u7528\u4e8e <a href=\"/docs/10/datatype-money.html\" title=\"8.2.\u00a0\u8d27\u5e01\u7c7b\u578b\"><code>money</code></a> \u503c\u4e0e <code>int8</code> \u503c\u76f8\u4e58\u548c\u76f8\u9664\u7684\u64cd\u4f5c\u7b26\uff08Peter Eisentraut\uff09</p>\n<p>\u4ee5\u524d\uff0c\u8fd9\u7c7b\u60c5\u51b5\u4f1a\u5148\u5c06 <code>int8</code> \u503c\u8f6c\u6362\u4e3a <code>float8</code>\uff0c\u518d\u4f7f\u7528 <code>money</code> \u4e0e <code>float8</code> \u7684\u64cd\u4f5c\u7b26\u3002\u65b0\u884c\u4e3a\u907f\u514d\u4e86\u53ef\u80fd\u7684\u7cbe\u5ea6\u635f\u5931\u3002\u4f46\u8bf7\u6ce8\u610f\uff0c<code>money</code> \u9664\u4ee5 <code>int8</code> \u73b0\u5728\u4f1a\u50cf\u5176\u4ed6\u6574\u6570\u9664\u6cd5\u4e00\u6837\u622a\u65ad\u5546\uff0c\u800c\u4ee5\u524d\u7684\u884c\u4e3a\u4f1a\u8fdb\u884c\u820d\u5165\u3002</p>", "text": "\u589e\u52a0\u7528\u4e8e money \u503c\u4e0e int8 \u503c\u76f8\u4e58\u548c\u76f8\u9664\u7684\u64cd\u4f5c\u7b26\uff08Peter Eisentraut\uff09 \u4ee5\u524d\uff0c\u8fd9\u7c7b\u60c5\u51b5\u4f1a\u5148\u5c06 int8 \u503c\u8f6c\u6362\u4e3a float8\uff0c\u518d\u4f7f\u7528 money \u4e0e float8 \u7684\u64cd\u4f5c\u7b26\u3002\u65b0\u884c\u4e3a\u907f\u514d\u4e86\u53ef\u80fd\u7684\u7cbe\u5ea6\u635f\u5931\u3002\u4f46\u8bf7\u6ce8\u610f\uff0cmoney \u9664\u4ee5 int8 \u73b0\u5728\u4f1a\u50cf\u5176\u4ed6\u6574\u6570\u9664\u6cd5\u4e00\u6837\u622a\u65ad\u5546\uff0c\u800c\u4ee5\u524d\u7684\u884c\u4e3a\u4f1a\u8fdb\u884c\u820d\u5165\u3002", "title": "\u589e\u52a0\u7528\u4e8e money \u503c\u4e0e int8 \u503c\u76f8\u4e58\u548c\u76f8\u9664\u7684\u64cd\u4f5c\u7b26", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "2a3d64b8a10f544da820d4c654cd3c9aaaff2c47a786e3b7ba3dd56ebb55287b", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["323b96aa3"]], "identity_text": "Add operators for multiplication and division of money values with int8 values (Peter Eisentraut) Previously such cases would result in converting the int8 values to float8 and then using the money-and-float8 operators. The new behavior avoids possible precision loss. But note that division of money by int8 now truncates the quotient, like other integer-division cases, while the previous behavior would have rounded.", "commit_aliases": ["323b96aa3"], "source_commits": ["323b96aa3"], "source_entry_id": "10.0/changes/080", "db_id": "35dd023ecc2da7bed4dc29b3caf2b0c5", "patch_ids": ["5019a3021bf4c7ed208e6bf3d2ad1021"], "statement_hash": "789199617884f8862746de5f9e2f3b5d7d2aa763da6c7bc095146f808ec84109", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-4b95c7b48b7ed124", "migration": false}, {"id": "10.0-b1e630e57a42543a", "cves": [], "html": "<p>\u5728 <code>money</code> \u7c7b\u578b\u7684\u8f93\u5165\u51fd\u6570\u4e2d\u68c0\u67e5\u6ea2\u51fa\uff08Peter Eisentraut\uff09</p>", "text": "\u5728 money \u7c7b\u578b\u7684\u8f93\u5165\u51fd\u6570\u4e2d\u68c0\u67e5\u6ea2\u51fa\uff08Peter Eisentraut\uff09", "title": "\u5728 money \u7c7b\u578b\u7684\u8f93\u5165\u51fd\u6570\u4e2d\u68c0\u67e5\u6ea2\u51fa", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "b51dbd7c946b9510f58cceba041bb7587c788e628c1d1120713e53d6434675d7", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["656df624c"]], "identity_text": "Check for overflow in the money type's input function (Peter Eisentraut)", "commit_aliases": ["656df624c"], "source_commits": ["656df624c"], "source_entry_id": "10.0/changes/081", "db_id": "b6e613c4860ad1a8190a83227fa5c687", "patch_ids": ["c93988c89d4d8302b0d811c96f07c7ee"], "statement_hash": "14122a03db6e85f5834775d0783601d0654792ff550189dbbd605de2f9a0d03e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-b1e630e57a42543a", "migration": false}, {"id": "10.0-72eb9b8c0301d6f0", "cves": [], "html": "<p>\u589e\u52a0\u7b80\u5316\u7684 <a href=\"/docs/10/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3.\u00a0POSIX\u6b63\u5219\u8868\u8fbe\u5f0f\"><code>regexp_match()</code></a> \u51fd\u6570\uff08Emre Hasegeli\uff09</p>\n<p>\u5b83\u7c7b\u4f3c\u4e8e <code>regexp_matches()</code>\uff0c\u4f46\u53ea\u8fd4\u56de\u7b2c\u4e00\u6b21\u5339\u914d\u7684\u7ed3\u679c\uff0c\u56e0\u6b64\u4e0d\u9700\u8981\u8fd4\u56de\u96c6\u5408\uff0c\u5728\u7b80\u5355\u573a\u666f\u4e0b\u66f4\u6613\u4f7f\u7528\u3002</p>", "text": "\u589e\u52a0\u7b80\u5316\u7684 regexp_match() \u51fd\u6570\uff08Emre Hasegeli\uff09 \u5b83\u7c7b\u4f3c\u4e8e regexp_matches()\uff0c\u4f46\u53ea\u8fd4\u56de\u7b2c\u4e00\u6b21\u5339\u914d\u7684\u7ed3\u679c\uff0c\u56e0\u6b64\u4e0d\u9700\u8981\u8fd4\u56de\u96c6\u5408\uff0c\u5728\u7b80\u5355\u573a\u666f\u4e0b\u66f4\u6613\u4f7f\u7528\u3002", "title": "\u589e\u52a0\u7b80\u5316\u7684 regexp_match() \u51fd\u6570", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "3cbaed664398226f5c2530d60925a0b969fd839e433dd1c2828b01c3b3738f95", "section_path": ["\u51fd\u6570"], "commit_groups": [["cf9b0fea5"]], "identity_text": "Add simplified regexp_match() function (Emre Hasegeli) This is similar to regexp_matches(), but it only returns results from the first match so it does not need to return a set, making it easier to use for simple cases.", "commit_aliases": ["cf9b0fea5"], "source_commits": ["cf9b0fea5"], "source_entry_id": "10.0/changes/082", "db_id": "4290f31bfb824164f796f50ae12af8dd", "patch_ids": ["1e7fb23fcffceecd0d89c99708b26c59"], "statement_hash": "b7b023e9e378b918812ecbd1a3a4048de218288cfb6251e72c271cc2a8b7a840", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-72eb9b8c0301d6f0", "migration": false}, {"id": "10.0-87aeb2de445ba455", "cves": [], "html": "<p>\u589e\u52a0 <code>jsonb</code> \u7684<a href=\"/docs/10/functions-json.html#FUNCTIONS-JSONB-OP-TABLE\" title=\"\u8868\u00a09.44.\u00a0\u9644\u52a0\u7684 jsonb \u64cd\u4f5c\u7b26\">\u5220\u9664\u64cd\u4f5c\u7b26</a>\u7684\u4e00\u4e2a\u7248\u672c\uff0c\u63a5\u53d7\u8981\u5220\u9664\u7684\u952e\u7ec4\u6210\u7684\u6570\u7ec4\uff08Magnus Hagander\uff09</p>", "text": "\u589e\u52a0 jsonb \u7684\u5220\u9664\u64cd\u4f5c\u7b26\u7684\u4e00\u4e2a\u7248\u672c\uff0c\u63a5\u53d7\u8981\u5220\u9664\u7684\u952e\u7ec4\u6210\u7684\u6570\u7ec4\uff08Magnus Hagander\uff09", "title": "\u589e\u52a0 jsonb \u7684\u5220\u9664\u64cd\u4f5c\u7b26\u7684\u4e00\u4e2a\u7248\u672c\uff0c\u63a5\u53d7\u8981\u5220\u9664\u7684\u952e\u7ec4\u6210\u7684\u6570\u7ec4", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "f467ad490175dd4b7bced3e1de956646cec9d47dcd6b4ab6d3d77fa2baef5951", "section_path": ["\u51fd\u6570"], "commit_groups": [["d00ca333c"]], "identity_text": "Add a version of jsonb's delete operator that takes an array of keys to delete (Magnus Hagander)", "commit_aliases": ["d00ca333c"], "source_commits": ["d00ca333c"], "source_entry_id": "10.0/changes/083", "db_id": "8ffe715df052fa0ea40fc89db91fe8c2", "patch_ids": ["8ca310b13a8bd663ebb9124ebb4cdf35"], "statement_hash": "41575d815b3e204e4a61df2e7acdc1900bef8da125a81016fdeaf01e6e8c5341", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-87aeb2de445ba455", "migration": false}, {"id": "10.0-9592d8e13cda4861", "cves": [], "html": "<p>\u4f7f <a href=\"/docs/10/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE\" title=\"\u8868\u00a09.46.\u00a0JSON \u5904\u7406\u51fd\u6570\"><code>json_populate_record()</code></a> \u53ca\u76f8\u5173\u51fd\u6570\u9012\u5f52\u5904\u7406 JSON \u6570\u7ec4\u548c\u5bf9\u8c61\uff08Nikita Glukhov\uff09</p>\n<p>\u6b64\u53d8\u66f4\u4f7f\u76ee\u6807 SQL \u7c7b\u578b\u4e2d\u7684\u6570\u7ec4\u7c7b\u578b\u5b57\u6bb5\u80fd\u591f\u4ece JSON \u6570\u7ec4\u6b63\u786e\u8f6c\u6362\uff0c\u590d\u5408\u7c7b\u578b\u5b57\u6bb5\u80fd\u591f\u4ece JSON \u5bf9\u8c61\u6b63\u786e\u8f6c\u6362\u3002\u4ee5\u524d\uff0c\u8fd9\u7c7b\u60c5\u51b5\u4f1a\u5931\u8d25\uff0c\u56e0\u4e3a JSON \u503c\u7684\u6587\u672c\u8868\u793a\u4f1a\u88ab\u4f20\u7ed9 <code>array_in()</code> \u6216 <code>record_in()</code>\uff0c\u800c\u5176\u8bed\u6cd5\u4e0d\u7b26\u5408\u8fd9\u4e9b\u8f93\u5165\u51fd\u6570\u7684\u9884\u671f\u3002</p>", "text": "\u4f7f json_populate_record() \u53ca\u76f8\u5173\u51fd\u6570\u9012\u5f52\u5904\u7406 JSON \u6570\u7ec4\u548c\u5bf9\u8c61\uff08Nikita Glukhov\uff09 \u6b64\u53d8\u66f4\u4f7f\u76ee\u6807 SQL \u7c7b\u578b\u4e2d\u7684\u6570\u7ec4\u7c7b\u578b\u5b57\u6bb5\u80fd\u591f\u4ece JSON \u6570\u7ec4\u6b63\u786e\u8f6c\u6362\uff0c\u590d\u5408\u7c7b\u578b\u5b57\u6bb5\u80fd\u591f\u4ece JSON \u5bf9\u8c61\u6b63\u786e\u8f6c\u6362\u3002\u4ee5\u524d\uff0c\u8fd9\u7c7b\u60c5\u51b5\u4f1a\u5931\u8d25\uff0c\u56e0\u4e3a JSON \u503c\u7684\u6587\u672c\u8868\u793a\u4f1a\u88ab\u4f20\u7ed9 array_in() \u6216 record_in()\uff0c\u800c\u5176\u8bed\u6cd5\u4e0d\u7b26\u5408\u8fd9\u4e9b\u8f93\u5165\u51fd\u6570\u7684\u9884\u671f\u3002", "title": "\u4f7f json_populate_record() \u53ca\u76f8\u5173\u51fd\u6570\u9012\u5f52\u5904\u7406 JSON \u6570\u7ec4\u548c\u5bf9\u8c61", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "9df9a653426084507185a896434d2dde60b1869b0e89b790114c74b440a388b3", "section_path": ["\u51fd\u6570"], "commit_groups": [["cf35346e8"]], "identity_text": "Make json_populate_record() and related functions process JSON arrays and objects recursively (Nikita Glukhov) With this change, array-type fields in the destination SQL type are properly converted from JSON arrays, and composite-type fields are properly converted from JSON objects. Previously, such cases would fail because the text representation of the JSON value would be fed to array_in() or record_in(), and its syntax would not match what those input functions expect.", "commit_aliases": ["cf35346e8"], "source_commits": ["cf35346e8"], "source_entry_id": "10.0/changes/084", "db_id": "e5d34e2e69bbb14a35862f701836ca83", "patch_ids": ["ba44cd73850c74310ebeec5da9662162"], "statement_hash": "c7831249c07354892cc4c63511091b131fea865b191ae4145a0b4606a868907e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-9592d8e13cda4861", "migration": false}, {"id": "10.0-3d5f9ad74c721995", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/10/functions-info.html#FUNCTIONS-TXID-SNAPSHOT\" title=\"\u8868\u00a09.69.\u00a0\u4e8b\u52a1 ID \u548c\u5feb\u7167\"><code>txid_current_if_assigned()</code></a>\uff0c\u7528\u4e8e\u8fd4\u56de\u5f53\u524d\u4e8b\u52a1 ID\uff0c\u6216\u8005\u5728\u5c1a\u672a\u5206\u914d\u4e8b\u52a1 ID \u65f6\u8fd4\u56de <code>NULL</code>\uff08Craig Ringer\uff09</p>\n<p>\u8fd9\u4e0e <a href=\"/docs/10/functions-info.html#FUNCTIONS-TXID-SNAPSHOT\" title=\"\u8868\u00a09.69.\u00a0\u4e8b\u52a1 ID \u548c\u5feb\u7167\"><code>txid_current()</code></a> \u4e0d\u540c\uff0c\u540e\u8005\u59cb\u7ec8\u8fd4\u56de\u4e8b\u52a1 ID\uff0c\u5e76\u5728\u5fc5\u8981\u65f6\u5206\u914d\u4e00\u4e2a\u3002\u4e0e\u540e\u8005\u4e0d\u540c\uff0c\u6b64\u51fd\u6570\u53ef\u4ee5\u5728\u5907\u5e93\u4e0a\u8fd0\u884c\u3002</p>", "text": "\u589e\u52a0\u51fd\u6570 txid_current_if_assigned()\uff0c\u7528\u4e8e\u8fd4\u56de\u5f53\u524d\u4e8b\u52a1 ID\uff0c\u6216\u8005\u5728\u5c1a\u672a\u5206\u914d\u4e8b\u52a1 ID \u65f6\u8fd4\u56de NULL\uff08Craig Ringer\uff09 \u8fd9\u4e0e txid_current() \u4e0d\u540c\uff0c\u540e\u8005\u59cb\u7ec8\u8fd4\u56de\u4e8b\u52a1 ID\uff0c\u5e76\u5728\u5fc5\u8981\u65f6\u5206\u914d\u4e00\u4e2a\u3002\u4e0e\u540e\u8005\u4e0d\u540c\uff0c\u6b64\u51fd\u6570\u53ef\u4ee5\u5728\u5907\u5e93\u4e0a\u8fd0\u884c\u3002", "title": "\u589e\u52a0\u51fd\u6570 txid_current_if_assigned()\uff0c\u7528\u4e8e\u8fd4\u56de\u5f53\u524d\u4e8b\u52a1 ID\uff0c\u6216\u8005\u5728\u5c1a\u672a\u5206\u914d\u4e8b\u52a1 ID \u65f6\u8fd4\u56de NULL", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "0bde154f08491dae59072d05eea2ff549ac90431b3e73623b3d6590c5c8d5979", "section_path": ["\u51fd\u6570"], "commit_groups": [["86f31695f"]], "identity_text": "Add function txid_current_if_assigned() to return the current transaction ID or NULL if no transaction ID has been assigned (Craig Ringer) This is different from txid_current(), which always returns a transaction ID, assigning one if necessary. Unlike that function, this function can be run on standby servers.", "commit_aliases": ["86f31695f"], "source_commits": ["86f31695f"], "source_entry_id": "10.0/changes/085", "db_id": "9e15d1380460b8fb1331c9f0587a749d", "patch_ids": ["9eab6ae85838825d3c6c59d40f7d4e19"], "statement_hash": "48ffa258e630fcbb7bb22f833bb31fb9c11d8c55b7fe32325cdc4336431a142f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-3d5f9ad74c721995", "migration": false}, {"id": "10.0-f1e5492c6f68bfd5", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/10/functions-info.html#FUNCTIONS-TXID-SNAPSHOT\" title=\"\u8868\u00a09.69.\u00a0\u4e8b\u52a1 ID \u548c\u5feb\u7167\"><code>txid_status()</code></a>\uff0c\u7528\u4e8e\u68c0\u67e5\u4e8b\u52a1\u662f\u5426\u5df2\u63d0\u4ea4\uff08Craig Ringer\uff09</p>\n<p>\u8fd9\u6709\u52a9\u4e8e\u5728\u8fde\u63a5\u7a81\u7136\u65ad\u5f00\u540e\uff0c\u68c0\u67e5\u524d\u4e00\u4e2a\u4e8b\u52a1\u662f\u5426\u5176\u5b9e\u5df2\u63d0\u4ea4\uff0c\u53ea\u662f\u60a8\u6ca1\u6709\u6536\u5230\u786e\u8ba4\u3002</p>", "text": "\u589e\u52a0\u51fd\u6570 txid_status()\uff0c\u7528\u4e8e\u68c0\u67e5\u4e8b\u52a1\u662f\u5426\u5df2\u63d0\u4ea4\uff08Craig Ringer\uff09 \u8fd9\u6709\u52a9\u4e8e\u5728\u8fde\u63a5\u7a81\u7136\u65ad\u5f00\u540e\uff0c\u68c0\u67e5\u524d\u4e00\u4e2a\u4e8b\u52a1\u662f\u5426\u5176\u5b9e\u5df2\u63d0\u4ea4\uff0c\u53ea\u662f\u60a8\u6ca1\u6709\u6536\u5230\u786e\u8ba4\u3002", "title": "\u589e\u52a0\u51fd\u6570 txid_status()\uff0c\u7528\u4e8e\u68c0\u67e5\u4e8b\u52a1\u662f\u5426\u5df2\u63d0\u4ea4", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "808f998fe4439e6fc32b2b1fa19efcae2ffa123bffd20035ddef84fe57f8cd50", "section_path": ["\u51fd\u6570"], "commit_groups": [["857ee8e39"]], "identity_text": "Add function txid_status() to check if a transaction was committed (Craig Ringer) This is useful for checking after an abrupt disconnection whether your previous transaction committed and you just didn't receive the acknowledgment.", "commit_aliases": ["857ee8e39"], "source_commits": ["857ee8e39"], "source_entry_id": "10.0/changes/086", "db_id": "477a94a6ca175b6c16700bc1804783e1", "patch_ids": ["b374ac2d878c2e229f57bc7657b64258"], "statement_hash": "1de8d31170590b09d6c56d048b4c21a1fae194759cab51553207593bf1581a8e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-f1e5492c6f68bfd5", "migration": false}, {"id": "10.0-4df26eeb725d74d0", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/10/functions-datetime.html#FUNCTIONS-DATETIME-TABLE\" title=\"\u8868\u00a09.30.\u00a0\u65e5\u671f/\u65f6\u95f4\u51fd\u6570\"><code>make_date()</code></a> \u5c06\u8d1f\u6570\u5e74\u4efd\u89e3\u91ca\u4e3a\u516c\u5143\u524d\uff08<acronym>BC</acronym>\uff09\u5e74\u4efd\uff08\u00c1lvaro Herrera\uff09</p>", "text": "\u5141\u8bb8 make_date() \u5c06\u8d1f\u6570\u5e74\u4efd\u89e3\u91ca\u4e3a\u516c\u5143\u524d\uff08BC\uff09\u5e74\u4efd\uff08\u00c1lvaro Herrera\uff09", "title": "\u5141\u8bb8 make_date() \u5c06\u8d1f\u6570\u5e74\u4efd\u89e3\u91ca\u4e3a\u516c\u5143\u524d\uff08BC\uff09\u5e74\u4efd", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "a294ee096cf8f0e4f482c1e1c82197a85e45862ae030785665d8a70e1d29f1cc", "section_path": ["\u51fd\u6570"], "commit_groups": [["30bcebbdc"]], "identity_text": "Allow make_date() to interpret negative years as BC years (\u00c1lvaro Herrera)", "commit_aliases": ["30bcebbdc"], "source_commits": ["30bcebbdc"], "source_entry_id": "10.0/changes/087", "db_id": "e868b6fcdf63642344d5eb2134e134ce", "patch_ids": ["8a0f6499949c0e464ec8127f92ee311b"], "statement_hash": "30757b6feb52725582c68e1858bb8326ede01474f5e20d002477b186635c7f1d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-4df26eeb725d74d0", "migration": false}, {"id": "10.0-ec6cdc9ddc8e36fe", "cves": [], "html": "<p>\u4f7f <a href=\"/docs/10/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE\" title=\"\u8868\u00a09.23.\u00a0\u683c\u5f0f\u5316\u51fd\u6570\"><code>to_timestamp()</code></a> \u548c <code>to_date()</code> \u62d2\u7edd\u8d85\u51fa\u8303\u56f4\u7684\u8f93\u5165\u5b57\u6bb5\uff08Artur Zakirov\uff09</p>\n<p>\u4f8b\u5982\uff0c\u4ee5\u524d\u4f1a\u63a5\u53d7 <code>to_date('2009-06-40','YYYY-MM-DD')</code> \u5e76\u8fd4\u56de <code>2009-07-10</code>\u3002\u73b0\u5728\u5b83\u4f1a\u4ea7\u751f\u9519\u8bef\u3002</p>", "text": "\u4f7f to_timestamp() \u548c to_date() \u62d2\u7edd\u8d85\u51fa\u8303\u56f4\u7684\u8f93\u5165\u5b57\u6bb5\uff08Artur Zakirov\uff09 \u4f8b\u5982\uff0c\u4ee5\u524d\u4f1a\u63a5\u53d7 to_date('2009-06-40','YYYY-MM-DD') \u5e76\u8fd4\u56de 2009-07-10\u3002\u73b0\u5728\u5b83\u4f1a\u4ea7\u751f\u9519\u8bef\u3002", "title": "\u4f7f to_timestamp() \u548c to_date() \u62d2\u7edd\u8d85\u51fa\u8303\u56f4\u7684\u8f93\u5165\u5b57\u6bb5", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "94abf554468782a6fc73ac7b6adb4a88e2177d660a65f969d40b475b9cbc1042", "section_path": ["\u51fd\u6570"], "commit_groups": [["d3cd36a13"]], "identity_text": "Make to_timestamp() and to_date() reject out-of-range input fields (Artur Zakirov) For example, previously to_date('2009-06-40','YYYY-MM-DD') was accepted and returned 2009-07-10. It will now generate an error.", "commit_aliases": ["d3cd36a13"], "source_commits": ["d3cd36a13"], "source_entry_id": "10.0/changes/088", "db_id": "572a3af1a3b008bb73f45dcedcd19b3f", "patch_ids": ["372e13b8195241fc355940ee408b6ac2"], "statement_hash": "0d7f1b7dd8c39384521256293f8ae383578ca82b419b28735fc580a74fcb8832", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-ec6cdc9ddc8e36fe", "migration": false}, {"id": "10.0-94523539962b0bf0", "cves": [], "html": "<p>\u5141\u8bb8\u5c06 PL/Python \u7684 <code>cursor()</code> \u548c <code>execute()</code> \u51fd\u6570\u4f5c\u4e3a\u5176\u8ba1\u5212\u5bf9\u8c61\u53c2\u6570\u7684\u65b9\u6cd5\u8c03\u7528\uff08Peter Eisentraut\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u91c7\u7528\u66f4\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u98ce\u683c\u3002</p>", "text": "\u5141\u8bb8\u5c06 PL/Python \u7684 cursor() \u548c execute() \u51fd\u6570\u4f5c\u4e3a\u5176\u8ba1\u5212\u5bf9\u8c61\u53c2\u6570\u7684\u65b9\u6cd5\u8c03\u7528\uff08Peter Eisentraut\uff09 \u8fd9\u5141\u8bb8\u91c7\u7528\u66f4\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u98ce\u683c\u3002", "title": "\u5141\u8bb8\u5c06 PL/Python \u7684 cursor() \u548c execute() \u51fd\u6570\u4f5c\u4e3a\u5176\u8ba1\u5212\u5bf9\u8c61\u53c2\u6570\u7684\u65b9\u6cd5\u8c03\u7528", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.9", "source_hash": "96a10bcd6aef76eac1cc8b13e97ecf16a3b383559b0de01661700bf79043f524", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00"], "commit_groups": [["70ec3f1f8"]], "identity_text": "Allow PL/Python's cursor() and execute() functions to be called as methods of their plan-object arguments (Peter Eisentraut) This allows a more object-oriented programming style.", "commit_aliases": ["70ec3f1f8"], "source_commits": ["70ec3f1f8"], "source_entry_id": "10.0/changes/089", "db_id": "58135d084852fb0c1dd15cd4aa09a548", "patch_ids": ["3e37e02ee1881d68673b87de2ce427b8"], "statement_hash": "b39c999ba70888c567dc2b3b8d9bd3fbd67b399ab9cf1a942d5f2de4fd788db0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-94523539962b0bf0", "migration": false}, {"id": "10.0-7939ad19bd5d7f51", "cves": [], "html": "<p>\u5141\u8bb8 PL/pgSQL \u7684 <code>GET DIAGNOSTICS</code> \u8bed\u53e5\u5c06\u503c\u53d6\u56de\u5230\u6570\u7ec4\u5143\u7d20\u4e2d\uff08Tom Lane\uff09</p>\n<p>\u4ee5\u524d\uff0c\u4e00\u9879\u8bed\u6cd5\u9650\u5236\u4e0d\u5141\u8bb8\u76ee\u6807\u53d8\u91cf\u662f\u6570\u7ec4\u5143\u7d20\u3002</p>", "text": "\u5141\u8bb8 PL/pgSQL \u7684 GET DIAGNOSTICS \u8bed\u53e5\u5c06\u503c\u53d6\u56de\u5230\u6570\u7ec4\u5143\u7d20\u4e2d\uff08Tom Lane\uff09 \u4ee5\u524d\uff0c\u4e00\u9879\u8bed\u6cd5\u9650\u5236\u4e0d\u5141\u8bb8\u76ee\u6807\u53d8\u91cf\u662f\u6570\u7ec4\u5143\u7d20\u3002", "title": "\u5141\u8bb8 PL/pgSQL \u7684 GET DIAGNOSTICS \u8bed\u53e5\u5c06\u503c\u53d6\u56de\u5230\u6570\u7ec4\u5143\u7d20\u4e2d", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.9", "source_hash": "12fbad3faeed716f5cd3c74564ef7ef262e43a3954fab844c8ad2e162e2ab04f", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00"], "commit_groups": [["55caaaeba"]], "identity_text": "Allow PL/pgSQL's GET DIAGNOSTICS statement to retrieve values into array elements (Tom Lane) Previously, a syntactic restriction prevented the target variable from being an array element.", "commit_aliases": ["55caaaeba"], "source_commits": ["55caaaeba"], "source_entry_id": "10.0/changes/090", "db_id": "35fbe50c90084828d661bb4f787217b1", "patch_ids": ["44cd5b157d83444a0c7850640102fae5"], "statement_hash": "4a0ab6b13e2b35baaf9fdd740ad1effc58d177841e3eaf46510686cc09935be5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-7939ad19bd5d7f51", "migration": false}, {"id": "10.0-6dc9038fda875a67", "cves": [], "html": "<p>\u5141\u8bb8 PL/Tcl \u51fd\u6570\u8fd4\u56de\u590d\u5408\u7c7b\u578b\u548c\u96c6\u5408\uff08Karl Lehenbauer\uff09</p>", "text": "\u5141\u8bb8 PL/Tcl \u51fd\u6570\u8fd4\u56de\u590d\u5408\u7c7b\u578b\u548c\u96c6\u5408\uff08Karl Lehenbauer\uff09", "title": "\u5141\u8bb8 PL/Tcl \u51fd\u6570\u8fd4\u56de\u590d\u5408\u7c7b\u578b\u548c\u96c6\u5408", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Tcl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.9.3", "source_hash": "ad4dfdeeb70840259b5a093c797a83fa31673ab7b1e46f94dca7a579d16b770c", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Tcl"], "commit_groups": [["26abb50c4"]], "identity_text": "Allow PL/Tcl functions to return composite types and sets (Karl Lehenbauer)", "commit_aliases": ["26abb50c4"], "source_commits": ["26abb50c4"], "source_entry_id": "10.0/changes/091", "db_id": "280edeefb0ba5757df7c827a62e02b0d", "patch_ids": ["674705dc636a83f2d35f9918ef3024e1"], "statement_hash": "53fc4d1f0453d79899465c25beeaa25ce59a61e6401c2cc67aeac24a71684c2f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-6dc9038fda875a67", "migration": false}, {"id": "10.0-d8e2743cdf872e53", "cves": [], "html": "<p>\u4e3a PL/Tcl \u589e\u52a0\u5b50\u4e8b\u52a1\u547d\u4ee4\uff08Victor Wagner\uff09</p>\n<p>\u8fd9\u5141\u8bb8 PL/Tcl \u67e5\u8be2\u5931\u8d25\u800c\u4e0d\u4e2d\u6b62\u6574\u4e2a\u51fd\u6570\u3002</p>", "text": "\u4e3a PL/Tcl \u589e\u52a0\u5b50\u4e8b\u52a1\u547d\u4ee4\uff08Victor Wagner\uff09 \u8fd9\u5141\u8bb8 PL/Tcl \u67e5\u8be2\u5931\u8d25\u800c\u4e0d\u4e2d\u6b62\u6574\u4e2a\u51fd\u6570\u3002", "title": "\u4e3a PL/Tcl \u589e\u52a0\u5b50\u4e8b\u52a1\u547d\u4ee4", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Tcl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.9.3", "source_hash": "fbd09adbfb3e50dc5e5a26af640dccebb10c00b34d1ee94700271fe3a0f3c317", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Tcl"], "commit_groups": [["b58fd4a9c"]], "identity_text": "Add a subtransaction command to PL/Tcl (Victor Wagner) This allows PL/Tcl queries to fail without aborting the entire function.", "commit_aliases": ["b58fd4a9c"], "source_commits": ["b58fd4a9c"], "source_entry_id": "10.0/changes/092", "db_id": "76177936ef580652b687b5d63c73e420", "patch_ids": ["6dab0696fe279870ec6917f2900a44cc"], "statement_hash": "2b5ef0e903620c1830bc0e6fde6682e8c4aca8ab00fe6f204d0b0cffa4d5c003", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d8e2743cdf872e53", "migration": false}, {"id": "10.0-d1bf72ac87489d93", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570<a href=\"/docs/10/pltcl-config.html#GUC-PLTCL-START-PROC\">pltcl.start_proc</a>\u548c<a href=\"/docs/10/pltcl-config.html#GUC-PLTCLU-START-PROC\">pltclu.start_proc</a>\uff0c\u5141\u8bb8\u5728 PL/Tcl \u542f\u52a8\u65f6\u8c03\u7528\u521d\u59cb\u5316\u51fd\u6570\uff08Tom Lane\uff09</p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570pltcl.start_proc\u548cpltclu.start_proc\uff0c\u5141\u8bb8\u5728 PL/Tcl \u542f\u52a8\u65f6\u8c03\u7528\u521d\u59cb\u5316\u51fd\u6570\uff08Tom Lane\uff09", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53c2\u6570pltcl.start_proc\u548cpltclu.start_proc\uff0c\u5141\u8bb8\u5728 PL/Tcl \u542f\u52a8\u65f6\u8c03\u7528\u521d\u59cb\u5316\u51fd\u6570", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Tcl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.9.3", "source_hash": "001a5dfb792657346cae3b04c7793fc76149191c790d61f21cbfd2e3dc46cd23", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Tcl"], "commit_groups": [["0d2b1f305"]], "identity_text": "Add server parameters guc-pltcl-start-proc and guc-pltclu-start-proc , to allow initialization functions to be called on PL/Tcl startup (Tom Lane)", "commit_aliases": ["0d2b1f305"], "source_commits": ["0d2b1f305"], "source_entry_id": "10.0/changes/093", "db_id": "7592546b9103c51fc56c17a96b5180a7", "patch_ids": ["2d0740e72abce0d9c5e27e820a4bf62f"], "statement_hash": "5376a9ae21cbabef4de5bf36a0003df048a47e7d8a63956912da672803bd3812", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d1bf72ac87489d93", "migration": false}, {"id": "10.0-e57a5429f20244f8", "cves": [], "html": "<p>\u5141\u8bb8\u5728 libpq \u8fde\u63a5\u5b57\u7b26\u4e32\u548c URI \u4e2d\u6307\u5b9a<a href=\"/docs/10/libpq.html#LIBPQ-CONNECT-HOST\">\u591a\u4e2a\u4e3b\u673a\u540d\u6216\u5730\u5740</a>\uff08Robert Haas\uff0cHeikki Linnakangas\uff09</p>\n<p>libpq \u4f1a\u8fde\u63a5\u5230\u5217\u8868\u4e2d\u7b2c\u4e00\u4e2a\u54cd\u5e94\u7684\u670d\u52a1\u5668\u3002</p>", "text": "\u5141\u8bb8\u5728 libpq \u8fde\u63a5\u5b57\u7b26\u4e32\u548c URI \u4e2d\u6307\u5b9a\u591a\u4e2a\u4e3b\u673a\u540d\u6216\u5730\u5740\uff08Robert Haas\uff0cHeikki Linnakangas\uff09 libpq \u4f1a\u8fde\u63a5\u5230\u5217\u8868\u4e2d\u7b2c\u4e00\u4e2a\u54cd\u5e94\u7684\u670d\u52a1\u5668\u3002", "title": "\u5141\u8bb8\u5728 libpq \u8fde\u63a5\u5b57\u7b26\u4e32\u548c URI \u4e2d\u6307\u5b9a\u591a\u4e2a\u4e3b\u673a\u540d\u6216\u5730\u5740", "commits": [], "section": "\u5ba2\u6237\u7aef\u63a5\u53e3", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.10", "source_hash": "5381b6d8ae9cf33b033a3cc4709ad301fa44503e8ff313f9e200a0c5286462cc", "section_path": ["\u5ba2\u6237\u7aef\u63a5\u53e3"], "commit_groups": [["274bb2b38"], ["5f374fe7a"], ["7b02ba62e"]], "identity_text": "Allow specification of multiple host names or addresses in libpq connection strings and URIs (Robert Haas, Heikki Linnakangas) libpq will connect to the first responsive server in the list.", "commit_aliases": ["274bb2b38", "5f374fe7a", "7b02ba62e"], "source_commits": ["274bb2b38", "5f374fe7a", "7b02ba62e"], "source_entry_id": "10.0/changes/094", "db_id": "f0cfad9d6b023b56828152e6109e0dfd", "patch_ids": ["0f39c00541ebdba307e86fad1a0f103a", "22146dfce814af6cc4d29a4190b0311b", "2e1b2710142b284aca3f28eb56aae6fa"], "statement_hash": "92fbd2d150695af766463a146560cdcf1a54a898cc3ab38ea8d06d0310fe538a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-e57a5429f20244f8", "migration": false}, {"id": "10.0-d26adcb3c7c88152", "cves": [], "html": "<p>\u5141\u8bb8 libpq \u8fde\u63a5\u5b57\u7b26\u4e32\u548c URI \u8bf7\u6c42<a href=\"/docs/10/libpq.html#LIBPQ-CONNECT-TARGET-SESSION-ATTRS\">\u53ef\u8bfb\u5199\u4e3b\u673a</a>\uff0c\u5373\u4e3b\u5e93\u800c\u975e\u5907\u5e93\uff08Victor Wagner\uff0cMithun Cy\uff09</p>\n<p>\u8fd9\u5728\u6307\u5b9a\u591a\u4e2a\u4e3b\u673a\u540d\u65f6\u5f88\u6709\u7528\u3002\u5b83\u7531 libpq \u8fde\u63a5\u53c2\u6570 <code>target_session_attrs</code> \u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8 libpq \u8fde\u63a5\u5b57\u7b26\u4e32\u548c URI \u8bf7\u6c42\u53ef\u8bfb\u5199\u4e3b\u673a\uff0c\u5373\u4e3b\u5e93\u800c\u975e\u5907\u5e93\uff08Victor Wagner\uff0cMithun Cy\uff09 \u8fd9\u5728\u6307\u5b9a\u591a\u4e2a\u4e3b\u673a\u540d\u65f6\u5f88\u6709\u7528\u3002\u5b83\u7531 libpq \u8fde\u63a5\u53c2\u6570 target_session_attrs \u63a7\u5236\u3002", "title": "\u5141\u8bb8 libpq \u8fde\u63a5\u5b57\u7b26\u4e32\u548c URI \u8bf7\u6c42\u53ef\u8bfb\u5199\u4e3b\u673a\uff0c\u5373\u4e3b\u5e93\u800c\u975e\u5907\u5e93", "commits": [], "section": "\u5ba2\u6237\u7aef\u63a5\u53e3", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.10", "source_hash": "2cc0db52caceccf39bfc1dfa3000d0e37ecad9fcc1d8cafd8b5618dd6da86bca", "section_path": ["\u5ba2\u6237\u7aef\u63a5\u53e3"], "commit_groups": [["721f7bd3c"]], "identity_text": "Allow libpq connection strings and URIs to request a read/write host, that is a master server rather than a standby server (Victor Wagner, Mithun Cy) This is useful when multiple host names are specified. It is controlled by libpq connection parameter target_session_attrs.", "commit_aliases": ["721f7bd3c"], "source_commits": ["721f7bd3c"], "source_entry_id": "10.0/changes/095", "db_id": "11671e8d29c9d62945cbe6b7c393f75c", "patch_ids": ["f8436a760113ff29f8124d5220ffee1c"], "statement_hash": "4741c589820cf6d47383c5daddd846795638d77d14e93b47579ec8d6f7720e4f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d26adcb3c7c88152", "migration": false}, {"id": "10.0-2d9a02355d1a4260", "cves": [], "html": "<p>\u5141\u8bb8\u5c06<a href=\"/docs/10/libpq.html#LIBPQ-CONNECT-PASSFILE\">\u5bc6\u7801\u6587\u4ef6\u540d</a>\u6307\u5b9a\u4e3a libpq \u8fde\u63a5\u53c2\u6570\uff08Julian Markwort\uff09</p>\n<p>\u4ee5\u524d\uff0c\u53ea\u80fd\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u6307\u5b9a\u6b64\u9879\u3002</p>", "text": "\u5141\u8bb8\u5c06\u5bc6\u7801\u6587\u4ef6\u540d\u6307\u5b9a\u4e3a libpq \u8fde\u63a5\u53c2\u6570\uff08Julian Markwort\uff09 \u4ee5\u524d\uff0c\u53ea\u80fd\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u6307\u5b9a\u6b64\u9879\u3002", "title": "\u5141\u8bb8\u5c06\u5bc6\u7801\u6587\u4ef6\u540d\u6307\u5b9a\u4e3a libpq \u8fde\u63a5\u53c2\u6570", "commits": [], "section": "\u5ba2\u6237\u7aef\u63a5\u53e3", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.10", "source_hash": "2fb112dd9630466f24cbf72356b9ade0ab45f928f10261ef39de800fb012d65a", "section_path": ["\u5ba2\u6237\u7aef\u63a5\u53e3"], "commit_groups": [["ba005f193"]], "identity_text": "Allow the password file name to be specified as a libpq connection parameter (Julian Markwort) Previously this could only be specified via an environment variable.", "commit_aliases": ["ba005f193"], "source_commits": ["ba005f193"], "source_entry_id": "10.0/changes/096", "db_id": "82843dc8b5df5fd130a110b5f1f8c298", "patch_ids": ["f598f751a925a0636860bc484bc212c0"], "statement_hash": "2039978c7d1eceba2c08e5e1806af97fdad24475fa574f7df4d0248883cf80eb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-2d9a02355d1a4260", "migration": false}, {"id": "10.0-6deb328c653dfe56", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/10/libpq-misc.html#LIBPQ-PQENCRYPTPASSWORDCONN\"><code>PQencryptPasswordConn()</code></a>\uff0c\u5141\u8bb8\u5728\u5ba2\u6237\u7aef\u521b\u5efa\u66f4\u591a\u7c7b\u578b\u7684\u52a0\u5bc6\u5bc6\u7801\uff08Michael Paquier\uff0cHeikki Linnakangas\uff09</p>\n<p>\u4ee5\u524d\uff0c\u53ea\u80fd\u4f7f\u7528 <a href=\"/docs/10/libpq-misc.html#LIBPQ-PQENCRYPTPASSWORD\"><code>PQencryptPassword()</code></a> \u521b\u5efa <code>MD5</code> \u52a0\u5bc6\u7684\u5bc6\u7801\u3002\u65b0\u51fd\u6570\u8fd8\u53ef\u4ee5\u521b\u5efa <a href=\"/docs/10/client-authentication.html#AUTH-PG-HBA-CONF\" title=\"20.1.\u00a0pg_hba.conf \u6587\u4ef6\"><code>SCRAM-SHA-256</code></a> \u52a0\u5bc6\u7684\u5bc6\u7801\u3002</p>", "text": "\u589e\u52a0\u51fd\u6570 PQencryptPasswordConn()\uff0c\u5141\u8bb8\u5728\u5ba2\u6237\u7aef\u521b\u5efa\u66f4\u591a\u7c7b\u578b\u7684\u52a0\u5bc6\u5bc6\u7801\uff08Michael Paquier\uff0cHeikki Linnakangas\uff09 \u4ee5\u524d\uff0c\u53ea\u80fd\u4f7f\u7528 PQencryptPassword() \u521b\u5efa MD5 \u52a0\u5bc6\u7684\u5bc6\u7801\u3002\u65b0\u51fd\u6570\u8fd8\u53ef\u4ee5\u521b\u5efa SCRAM-SHA-256 \u52a0\u5bc6\u7684\u5bc6\u7801\u3002", "title": "\u589e\u52a0\u51fd\u6570 PQencryptPasswordConn()\uff0c\u5141\u8bb8\u5728\u5ba2\u6237\u7aef\u521b\u5efa\u66f4\u591a\u7c7b\u578b\u7684\u52a0\u5bc6\u5bc6\u7801", "commits": [], "section": "\u5ba2\u6237\u7aef\u63a5\u53e3", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.10", "source_hash": "edc9defa5c9080e23d123198311847ed7d49cbf78620ea742c3ebaa63dd88daa", "section_path": ["\u5ba2\u6237\u7aef\u63a5\u53e3"], "commit_groups": [["8f8b9be51"]], "identity_text": "Add function PQencryptPasswordConn() to allow creation of more types of encrypted passwords on the client side (Michael Paquier, Heikki Linnakangas) Previously only MD5-encrypted passwords could be created using PQencryptPassword(). This new function can also create SCRAM-SHA-256-encrypted passwords.", "commit_aliases": ["8f8b9be51"], "source_commits": ["8f8b9be51"], "source_entry_id": "10.0/changes/097", "db_id": "8651d637ecb578888d6db02112435cdb", "patch_ids": ["cc8c148b1466cd7f6c2386fa62244764"], "statement_hash": "4425bc4cfc313809b10ba0c498a93e15460c94c569bb0dd59126bb264601c559", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-6deb328c653dfe56", "migration": false}, {"id": "10.0-e60570788b652413", "cves": [], "html": "<p>\u5c06 <span>ecpg</span> \u9884\u5904\u7406\u5668\u7248\u672c\u4ece 4.12 \u6539\u4e3a 10\uff08Tom Lane\uff09</p>\n<p>\u4eca\u540e\uff0c<span>ecpg</span> \u7248\u672c\u5c06\u4e0e <span>PostgreSQL</span> \u53d1\u884c\u7248\u7684\u7248\u672c\u53f7\u4e00\u81f4\u3002</p>", "text": "\u5c06 ecpg \u9884\u5904\u7406\u5668\u7248\u672c\u4ece 4.12 \u6539\u4e3a 10\uff08Tom Lane\uff09 \u4eca\u540e\uff0cecpg \u7248\u672c\u5c06\u4e0e PostgreSQL \u53d1\u884c\u7248\u7684\u7248\u672c\u53f7\u4e00\u81f4\u3002", "title": "\u5c06 ecpg \u9884\u5904\u7406\u5668\u7248\u672c\u4ece 4.12 \u6539\u4e3a 10", "commits": [], "section": "\u5ba2\u6237\u7aef\u63a5\u53e3", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.10", "source_hash": "1ffb82f2a04117c851785e6a96ed07f928ec5a2405172025126b61b6673e4ed2", "section_path": ["\u5ba2\u6237\u7aef\u63a5\u53e3"], "commit_groups": [["a7b5573d6"]], "identity_text": "Change ecpg preprocessor version from 4.12 to 10 (Tom Lane) Henceforth the ecpg version will match the PostgreSQL distribution version number.", "commit_aliases": ["a7b5573d6"], "source_commits": ["a7b5573d6"], "source_entry_id": "10.0/changes/098", "db_id": "22520ddb4a408a84ee50d183e1ed848c", "patch_ids": ["ffc13000a97a46ed8d71e8b79ce8c740"], "statement_hash": "4edb4d32c8ac4364b9ee4ff53c8716db23e51bec715763571aa61690b60992fa", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-e60570788b652413", "migration": false}, {"id": "10.0-461851ab18055837", "cves": [], "html": "<p>\u4e3a <span>psql</span> \u589e\u52a0\u6761\u4ef6\u5206\u652f\u652f\u6301\uff08Corey Huinker\uff09</p>\n<p>\u6b64\u529f\u80fd\u589e\u52a0\u4e86 <span>psql</span> \u5143\u547d\u4ee4 <code>\\if</code>\u3001<code>\\elif</code>\u3001<code>\\else</code> \u548c <code>\\endif</code>\u3002\u8fd9\u4e3b\u8981\u6709\u52a9\u4e8e\u7f16\u5199\u811a\u672c\u3002</p>", "text": "\u4e3a psql \u589e\u52a0\u6761\u4ef6\u5206\u652f\u652f\u6301\uff08Corey Huinker\uff09 \u6b64\u529f\u80fd\u589e\u52a0\u4e86 psql \u5143\u547d\u4ee4 \\if\u3001\\elif\u3001\\else \u548c \\endif\u3002\u8fd9\u4e3b\u8981\u6709\u52a9\u4e8e\u7f16\u5199\u811a\u672c\u3002", "title": "\u4e3a psql \u589e\u52a0\u6761\u4ef6\u5206\u652f\u652f\u6301", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "5005a1969fc738a7cc8fe0bac5f3b5141bb323c7c88c9cdb1d9bb37d02a4fa09", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["5dbc5da11"], ["68dba97a4"], ["e984ef586"]], "identity_text": "Add conditional branch support to psql (Corey Huinker) This feature adds psql meta-commands \\if, \\elif, \\else, and \\endif. This is primarily helpful for scripting.", "commit_aliases": ["5dbc5da11", "68dba97a4", "e984ef586"], "source_commits": ["5dbc5da11", "68dba97a4", "e984ef586"], "source_entry_id": "10.0/changes/099", "db_id": "9365a3a7d6604e7929711906549d2c16", "patch_ids": ["20f21cee80f5237db38ba8c56754c7e5", "5bbefa23b0eb45be3a4c2f29ecc8a680", "8f0c29f71555c539a6c44bf77670af67"], "statement_hash": "4fcc6fd33fc4d4a5b9fb078a7b836acb08b03e3de3b549e9efa3c67d46263d33", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-461851ab18055837", "migration": false}, {"id": "10.0-2188331267b60c79", "cves": [], "html": "<p>\u589e\u52a0 <span>psql</span> \u5143\u547d\u4ee4 <code>\\gx</code>\uff0c\u4ee5\u6269\u5c55\u6a21\u5f0f\uff08<code>\\x</code>\uff09\u6267\u884c\uff08<code>\\g</code>\uff09\u67e5\u8be2\uff08Christoph Berg\uff09</p>", "text": "\u589e\u52a0 psql \u5143\u547d\u4ee4 \\gx\uff0c\u4ee5\u6269\u5c55\u6a21\u5f0f\uff08\\x\uff09\u6267\u884c\uff08\\g\uff09\u67e5\u8be2\uff08Christoph Berg\uff09", "title": "\u589e\u52a0 psql \u5143\u547d\u4ee4 \\gx\uff0c\u4ee5\u6269\u5c55\u6a21\u5f0f\uff08\\x\uff09\u6267\u884c\uff08\\g\uff09\u67e5\u8be2", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "59c506288765804d664312d126f54512243acb062607a783a57f3db3a9062532", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["b2678efd4"]], "identity_text": "Add psql \\gx meta-command to execute (\\g) a query in expanded mode (\\x) (Christoph Berg)", "commit_aliases": ["b2678efd4"], "source_commits": ["b2678efd4"], "source_entry_id": "10.0/changes/100", "db_id": "164ed77d9e31781c63b9f6a85c60f226", "patch_ids": ["aab90044404adc27dac6392cd55af1f2"], "statement_hash": "ab53e2b789f1eb66044d3e04538aeb90f1b141e8b22aae01de11d280b3839fd2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-2188331267b60c79", "migration": false}, {"id": "10.0-c42cfce05c920441", "cves": [], "html": "<p>\u5728\u53cd\u5f15\u53f7\u6267\u884c\u7684\u5b57\u7b26\u4e32\u4e2d\u5c55\u5f00 <span>psql</span> \u53d8\u91cf\u5f15\u7528\uff08Tom Lane\uff09</p>\n<p>\u8fd9\u5728\u65b0\u7684 <span>psql</span> \u6761\u4ef6\u5206\u652f\u547d\u4ee4\u4e2d\u5c24\u5176\u6709\u7528\u3002</p>", "text": "\u5728\u53cd\u5f15\u53f7\u6267\u884c\u7684\u5b57\u7b26\u4e32\u4e2d\u5c55\u5f00 psql \u53d8\u91cf\u5f15\u7528\uff08Tom Lane\uff09 \u8fd9\u5728\u65b0\u7684 psql \u6761\u4ef6\u5206\u652f\u547d\u4ee4\u4e2d\u5c24\u5176\u6709\u7528\u3002", "title": "\u5728\u53cd\u5f15\u53f7\u6267\u884c\u7684\u5b57\u7b26\u4e32\u4e2d\u5c55\u5f00 psql \u53d8\u91cf\u5f15\u7528", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "75f7f4b584ba3c32e351ba63630ab7ceed89ea9f32a32fc37f3f5508cce18571", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["f833c847b"]], "identity_text": "Expand psql variable references in backtick-executed strings (Tom Lane) This is particularly useful in the new psql conditional branch commands.", "commit_aliases": ["f833c847b"], "source_commits": ["f833c847b"], "source_entry_id": "10.0/changes/101", "db_id": "7050da050390a40bdc76a2afd09beeda", "patch_ids": ["e96c3f12571ff11ca27635abed9db715"], "statement_hash": "fd7115a0bd0231e0499c77c0c3fee045860f9c5e5bc3dec57704029b466df3c9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-c42cfce05c920441", "migration": false}, {"id": "10.0-3cf5b1b7ffe72b70", "cves": [], "html": "<p>\u9632\u6b62\u5c06 <span>psql</span> \u7684\u7279\u6b8a\u53d8\u91cf\u8bbe\u4e3a\u65e0\u6548\u503c\uff08Daniel V\u00e9rit\u00e9\uff0cTom Lane\uff09</p>\n<p>\u4ee5\u524d\uff0c\u5c06 <span>psql</span> \u7684\u67d0\u4e2a\u7279\u6b8a\u53d8\u91cf\u8bbe\u4e3a\u65e0\u6548\u503c\uff0c\u4f1a\u9759\u9ed8\u91c7\u7528\u9ed8\u8ba4\u884c\u4e3a\u3002\u73b0\u5728\uff0c\u5982\u679c\u62df\u8bbe\u7f6e\u7684\u65b0\u503c\u65e0\u6548\uff0c\u5bf9\u7279\u6b8a\u53d8\u91cf\u6267\u884c <code>\\set</code> \u5c31\u4f1a\u5931\u8d25\u3002\u4e00\u4e2a\u7279\u6b8a\u4f8b\u5916\u662f\uff0c\u5bf9\u5e03\u5c14\u503c\u7279\u6b8a\u53d8\u91cf\u6267\u884c <code>\\set</code>\uff0c\u4e14\u65b0\u503c\u4e3a\u7a7a\u6216\u7701\u7565\u65f6\uff0c\u4ecd\u4f1a\u5c06\u53d8\u91cf\u8bbe\u4e3a <code>on</code>\uff1b\u4f46\u73b0\u5728\u5b83\u5b9e\u9645\u53d6\u5f97\u7684\u5c31\u662f\u8be5\u503c\uff0c\u800c\u4e0d\u662f\u7a7a\u5b57\u7b26\u4e32\u3002\u73b0\u5728\uff0c\u5bf9\u7279\u6b8a\u53d8\u91cf\u6267\u884c <code>\\unset</code> \u4f1a\u663e\u5f0f\u5c06\u5176\u8bbe\u4e3a\u9ed8\u8ba4\u503c\uff0c\u8fd9\u4e5f\u662f\u542f\u52a8\u65f6\u53d6\u5f97\u7684\u503c\u3002\u56e0\u6b64\uff0c\u63a7\u5236\u53d8\u91cf\u73b0\u5728\u59cb\u7ec8\u6709\u4e00\u4e2a\u53ef\u663e\u793a\u7684\u503c\uff0c\u53cd\u6620 <span>psql</span> \u7684\u5b9e\u9645\u884c\u4e3a\u3002</p>", "text": "\u9632\u6b62\u5c06 psql \u7684\u7279\u6b8a\u53d8\u91cf\u8bbe\u4e3a\u65e0\u6548\u503c\uff08Daniel V\u00e9rit\u00e9\uff0cTom Lane\uff09 \u4ee5\u524d\uff0c\u5c06 psql \u7684\u67d0\u4e2a\u7279\u6b8a\u53d8\u91cf\u8bbe\u4e3a\u65e0\u6548\u503c\uff0c\u4f1a\u9759\u9ed8\u91c7\u7528\u9ed8\u8ba4\u884c\u4e3a\u3002\u73b0\u5728\uff0c\u5982\u679c\u62df\u8bbe\u7f6e\u7684\u65b0\u503c\u65e0\u6548\uff0c\u5bf9\u7279\u6b8a\u53d8\u91cf\u6267\u884c \\set \u5c31\u4f1a\u5931\u8d25\u3002\u4e00\u4e2a\u7279\u6b8a\u4f8b\u5916\u662f\uff0c\u5bf9\u5e03\u5c14\u503c\u7279\u6b8a\u53d8\u91cf\u6267\u884c \\set\uff0c\u4e14\u65b0\u503c\u4e3a\u7a7a\u6216\u7701\u7565\u65f6\uff0c\u4ecd\u4f1a\u5c06\u53d8\u91cf\u8bbe\u4e3a on\uff1b\u4f46\u73b0\u5728\u5b83\u5b9e\u9645\u53d6\u5f97\u7684\u5c31\u662f\u8be5\u503c\uff0c\u800c\u4e0d\u662f\u7a7a\u5b57\u7b26\u4e32\u3002\u73b0\u5728\uff0c\u5bf9\u7279\u6b8a\u53d8\u91cf\u6267\u884c \\unset \u4f1a\u663e\u5f0f\u5c06\u5176\u8bbe\u4e3a\u9ed8\u8ba4\u503c\uff0c\u8fd9\u4e5f\u662f\u542f\u52a8\u65f6\u53d6\u5f97\u7684\u503c\u3002\u56e0\u6b64\uff0c\u63a7\u5236\u53d8\u91cf\u73b0\u5728\u59cb\u7ec8\u6709\u4e00\u4e2a\u53ef\u663e\u793a\u7684\u503c\uff0c\u53cd\u6620 psql \u7684\u5b9e\u9645\u884c\u4e3a\u3002", "title": "\u9632\u6b62\u5c06 psql \u7684\u7279\u6b8a\u53d8\u91cf\u8bbe\u4e3a\u65e0\u6548\u503c", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "ab5196ad3b9986de584bdcdec9a163d47e2706a1ba1db8e1a2ad68df888a7827", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["511ae628f"], ["86322dc7e"], ["fd6cd6980"]], "identity_text": "Prevent psql's special variables from being set to invalid values (Daniel V\u00e9rit\u00e9, Tom Lane) Previously, setting one of psql's special variables to an invalid value silently resulted in the default behavior. \\set on a special variable now fails if the proposed new value is invalid. As a special exception, \\set with an empty or omitted new value, on a boolean-valued special variable, still has the effect of setting the variable to on; but now it actually acquires that value rather than an empty string. \\unset on a special variable now explicitly sets the variable to its default value, which is also the value it acquires at startup. In sum, a control variable now always has a displayable value that reflects what psql is actually doing.", "commit_aliases": ["511ae628f", "86322dc7e", "fd6cd6980"], "source_commits": ["511ae628f", "86322dc7e", "fd6cd6980"], "source_entry_id": "10.0/changes/102", "db_id": "90f1b85e4d81b2a8f3e713aecf4aece2", "patch_ids": ["05072c573581a3b7b0bdd510c1a3c4ac", "2bfeaf6c5f9daaae4dae06d069fff2de", "c617a07ee40e913ab3c7757c33242608"], "statement_hash": "d6c438fc008637a399b49442cbd801362354dbb85e73483dc7fa9af3cafd6e16", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-3cf5b1b7ffe72b70", "migration": false}, {"id": "10.0-bff41f96a168e8a7", "cves": [], "html": "<p>\u589e\u52a0\u663e\u793a\u670d\u52a1\u5668\u7248\u672c\u548c <span>psql</span> \u7248\u672c\u7684\u53d8\u91cf\uff08Fabien Coelho\uff09</p>", "text": "\u589e\u52a0\u663e\u793a\u670d\u52a1\u5668\u7248\u672c\u548c psql \u7248\u672c\u7684\u53d8\u91cf\uff08Fabien Coelho\uff09", "title": "\u589e\u52a0\u663e\u793a\u670d\u52a1\u5668\u7248\u672c\u548c psql \u7248\u672c\u7684\u53d8\u91cf", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "2819d63589fa4050b132635666a596f8a2e8739675aca4cdde86ac40f1a78ed9", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["a6c678f01"]], "identity_text": "Add variables showing server version and psql version (Fabien Coelho)", "commit_aliases": ["a6c678f01"], "source_commits": ["a6c678f01"], "source_entry_id": "10.0/changes/103", "db_id": "c3cf73e37f3d8075709692908af98688", "patch_ids": ["4294581f372156f6a262adf5b4f303e2"], "statement_hash": "a05df29bf988b1704fc197f6aa6865518c29a6c7beb5a8e30a4ab3089d4260b3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-bff41f96a168e8a7", "migration": false}, {"id": "10.0-73cd7f76eafac79b", "cves": [], "html": "<p>\u6539\u8fdb <span>psql</span> \u7684 <code>\\d</code>\uff08\u663e\u793a\u5173\u7cfb\uff09\u548c <code>\\dD</code>\uff08\u663e\u793a\u57df\uff09\u547d\u4ee4\uff0c\u5728\u5355\u72ec\u7684\u5217\u4e2d\u663e\u793a\u6392\u5e8f\u89c4\u5219\u3001\u662f\u5426\u53ef\u7a7a\u548c\u9ed8\u8ba4\u503c\u5c5e\u6027\uff08Peter Eisentraut\uff09</p>\n<p>\u4ee5\u524d\uff0c\u5b83\u4eec\u663e\u793a\u5728\u540c\u4e00\u4e2a <span>\u201c<span>Modifiers</span>\u201d</span> \u5217\u4e2d\u3002</p>", "text": "\u6539\u8fdb psql \u7684 \\d\uff08\u663e\u793a\u5173\u7cfb\uff09\u548c \\dD\uff08\u663e\u793a\u57df\uff09\u547d\u4ee4\uff0c\u5728\u5355\u72ec\u7684\u5217\u4e2d\u663e\u793a\u6392\u5e8f\u89c4\u5219\u3001\u662f\u5426\u53ef\u7a7a\u548c\u9ed8\u8ba4\u503c\u5c5e\u6027\uff08Peter Eisentraut\uff09 \u4ee5\u524d\uff0c\u5b83\u4eec\u663e\u793a\u5728\u540c\u4e00\u4e2a \u201cModifiers\u201d \u5217\u4e2d\u3002", "title": "\u6539\u8fdb psql \u7684 \\d\uff08\u663e\u793a\u5173\u7cfb\uff09\u548c \\dD\uff08\u663e\u793a\u57df\uff09\u547d\u4ee4\uff0c\u5728\u5355\u72ec\u7684\u5217\u4e2d\u663e\u793a\u6392\u5e8f\u89c4\u5219\u3001\u662f\u5426\u53ef\u7a7a\u548c\u9ed8\u8ba4\u503c\u5c5e\u6027", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "df52cbe887ae119ce898ca7470bed1b932bb23125e69a23703a54ce0d95fc27c", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["a0f357e57"]], "identity_text": "Improve psql's \\d (display relation) and \\dD (display domain) commands to show collation, nullable, and default properties in separate columns (Peter Eisentraut) Previously they were shown in a single Modifiers column.", "commit_aliases": ["a0f357e57"], "source_commits": ["a0f357e57"], "source_entry_id": "10.0/changes/104", "db_id": "ca24a2f0cdfcfe7e05fa4094aa35d793", "patch_ids": ["206b86af913465c441e60b876f549638"], "statement_hash": "be2707582114fd1966dd9867510ef3dc52e7a015eb3b3497a8d00cf50162e65a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-73cd7f76eafac79b", "migration": false}, {"id": "10.0-c9abfdd6cedf72c7", "cves": [], "html": "<p>\u4f7f\u5404\u4e2a <code>\\d</code> \u547d\u4ee4\u5bf9\u6ca1\u6709\u5339\u914d\u5bf9\u8c61\u7684\u60c5\u51b5\u7684\u5904\u7406\u66f4\u4e00\u81f4\uff08Daniel Gustafsson\uff09</p>\n<p>\u73b0\u5728\uff0c\u5b83\u4eec\u90fd\u5c06\u76f8\u5173\u6d88\u606f\u8f93\u51fa\u5230 stderr\uff0c\u800c\u975e stdout\uff0c\u6d88\u606f\u7684\u63aa\u8f9e\u4e5f\u66f4\u4e00\u81f4\u3002</p>", "text": "\u4f7f\u5404\u4e2a \\d \u547d\u4ee4\u5bf9\u6ca1\u6709\u5339\u914d\u5bf9\u8c61\u7684\u60c5\u51b5\u7684\u5904\u7406\u66f4\u4e00\u81f4\uff08Daniel Gustafsson\uff09 \u73b0\u5728\uff0c\u5b83\u4eec\u90fd\u5c06\u76f8\u5173\u6d88\u606f\u8f93\u51fa\u5230 stderr\uff0c\u800c\u975e stdout\uff0c\u6d88\u606f\u7684\u63aa\u8f9e\u4e5f\u66f4\u4e00\u81f4\u3002", "title": "\u4f7f\u5404\u4e2a \\d \u547d\u4ee4\u5bf9\u6ca1\u6709\u5339\u914d\u5bf9\u8c61\u7684\u60c5\u51b5\u7684\u5904\u7406\u66f4\u4e00\u81f4", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "cc94b1642b766ce9100bae8788bf9503ef904f883283ea435d6703240580b86e", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["77cb4a1d6"]], "identity_text": "Make the various \\d commands handle no-matching-object cases more consistently (Daniel Gustafsson) They now all print the message about that to stderr, not stdout, and the message wording is more consistent.", "commit_aliases": ["77cb4a1d6"], "source_commits": ["77cb4a1d6"], "source_entry_id": "10.0/changes/105", "db_id": "6f6d96bb204d9b1e7c71de7f57faf67b", "patch_ids": ["21c70b2ca49b56329414a3fe6b4e25e6"], "statement_hash": "74f2bf56241d594bd95a4ddc7844c1d35ac19df89f6074bd012627196a9af8ab", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-c9abfdd6cedf72c7", "migration": false}, {"id": "10.0-e66ff91ccd5f8d6f", "cves": [], "html": "<p>\u6539\u8fdb <span>psql</span> \u7684 Tab \u8865\u5168\uff08Jeff Janes\uff0cIan Barwick\uff0cAndreas Karlsson\uff0cSehrope Sarkuni\uff0cThomas Munro\uff0cKevin Grittner\uff0cDagfinn Ilmari Manns\u00e5ker\uff09</p>", "text": "\u6539\u8fdb psql \u7684 Tab \u8865\u5168\uff08Jeff Janes\uff0cIan Barwick\uff0cAndreas Karlsson\uff0cSehrope Sarkuni\uff0cThomas Munro\uff0cKevin Grittner\uff0cDagfinn Ilmari Manns\u00e5ker\uff09", "title": "\u6539\u8fdb psql \u7684 Tab \u8865\u5168", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "525aa0b58c6d1695d5cc433f1cb384447be4f252a383a1d01e5709eeb920497d", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [["1d15d0db5"], ["49917dbd7"], ["52803098a"], ["577f0bdd2"], ["63c1a8719"], ["76f9dd4fa"], ["8019b5a89"], ["927d7bb6b"], ["b5a388392"], ["d7d77f382"]], "identity_text": "Improve psql's tab completion (Jeff Janes, Ian Barwick, Andreas Karlsson, Sehrope Sarkuni, Thomas Munro, Kevin Grittner, Dagfinn Ilmari Manns\u00e5ker)", "commit_aliases": ["1d15d0db5", "49917dbd7", "52803098a", "577f0bdd2", "63c1a8719", "76f9dd4fa", "8019b5a89", "927d7bb6b", "b5a388392", "d7d77f382"], "source_commits": ["1d15d0db5", "49917dbd7", "52803098a", "577f0bdd2", "63c1a8719", "76f9dd4fa", "8019b5a89", "927d7bb6b", "b5a388392", "d7d77f382"], "source_entry_id": "10.0/changes/106", "db_id": "6ee37d397eabc368ebb0b09e8cb1f166", "patch_ids": ["0e121b8d81a535d14529070e6b41b177", "0e5f7f76a152e44c779cb7036f04f020", "331162ed3fe570da7f0808eb580a58a6", "340380993c3fcf96ebaa6ae992318a1e", "34ac2b5548e9e9c428564e3e3b0b272d", "4762323bc309231370bcbdbd09e68fde", "6232a07d514568cfb66cbb32c580056e", "a5706b65b7045c60565bec2d44b0a49f", "b6456e2dfd436086a0d350ef46af9190", "e51c1d96dbc630df624bdfa3bc731247"], "statement_hash": "791d1939e7986db4cb1357958ef4b62acb6416b859733cdf37ddae5763ab7e3e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-e66ff91ccd5f8d6f", "migration": false}, {"id": "10.0-d03095fad2c2a588", "cves": [], "html": "<p>\u589e\u52a0 <span>pgbench</span> \u9009\u9879 <code>--log-prefix</code>\uff0c\u7528\u4e8e\u63a7\u5236\u65e5\u5fd7\u6587\u4ef6\u524d\u7f00\uff08Masahiko Sawada\uff09</p>", "text": "\u589e\u52a0 pgbench \u9009\u9879 --log-prefix\uff0c\u7528\u4e8e\u63a7\u5236\u65e5\u5fd7\u6587\u4ef6\u524d\u7f00\uff08Masahiko Sawada\uff09", "title": "\u589e\u52a0 pgbench \u9009\u9879 --log-prefix\uff0c\u7528\u4e8e\u63a7\u5236\u65e5\u5fd7\u6587\u4ef6\u524d\u7f00", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pgbench", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.3", "source_hash": "1d90c74b9bb04afe38540dee80fedc24939487a44a40d12fb74b8c43bfd61721", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pgbench"], "commit_groups": [["41124a91e"]], "identity_text": "Add pgbench option --log-prefix to control the log file prefix (Masahiko Sawada)", "commit_aliases": ["41124a91e"], "source_commits": ["41124a91e"], "source_entry_id": "10.0/changes/107", "db_id": "de0aedc76030d08c86d0ca8895c1316f", "patch_ids": ["b59288d0a567a11016a6fd0d846da34d"], "statement_hash": "cd9240f04a83b7db10fae0701847c6395930c48b1587609f687acb94a5282ca3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d03095fad2c2a588", "migration": false}, {"id": "10.0-c611e3170581c824", "cves": [], "html": "<p>\u5141\u8bb8 <span>pgbench</span> \u7684\u5143\u547d\u4ee4\u8de8\u8d8a\u591a\u884c\uff08Fabien Coelho\uff09</p>\n<p>\u73b0\u5728\u53ef\u4ee5\u901a\u8fc7\u5728\u884c\u5c3e\u5199\u53cd\u659c\u6760\u5e76\u6362\u884c\uff0c\u5c06\u5143\u547d\u4ee4\u5ef6\u7eed\u5230\u4e0b\u4e00\u884c\u3002</p>", "text": "\u5141\u8bb8 pgbench \u7684\u5143\u547d\u4ee4\u8de8\u8d8a\u591a\u884c\uff08Fabien Coelho\uff09 \u73b0\u5728\u53ef\u4ee5\u901a\u8fc7\u5728\u884c\u5c3e\u5199\u53cd\u659c\u6760\u5e76\u6362\u884c\uff0c\u5c06\u5143\u547d\u4ee4\u5ef6\u7eed\u5230\u4e0b\u4e00\u884c\u3002", "title": "\u5141\u8bb8 pgbench \u7684\u5143\u547d\u4ee4\u8de8\u8d8a\u591a\u884c", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pgbench", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.3", "source_hash": "d473edbbbc0e7e6831bd2d14ed4bcf4aae9f4b2ef398a8b29d27743aedffc9c0", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pgbench"], "commit_groups": [["cdc2a7047"]], "identity_text": "Allow pgbench's meta-commands to span multiple lines (Fabien Coelho) A meta-command can now be continued onto the next line by writing backslash-return.", "commit_aliases": ["cdc2a7047"], "source_commits": ["cdc2a7047"], "source_entry_id": "10.0/changes/108", "db_id": "bf86efefbb208dcd720be1e49901ff2c", "patch_ids": ["7a2354b184227d94432b106e218dcc71"], "statement_hash": "2c4503907695aa4e64c87ff5646b95aa58ed79dc0b2dbf6bf8f3bb46f50cda34", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-c611e3170581c824", "migration": false}, {"id": "10.0-8c7e2025d766c3c1", "cves": [], "html": "<p>\u79fb\u9664 <code>-M</code> \u9009\u9879\u76f8\u5bf9\u4e8e\u5176\u4ed6\u547d\u4ee4\u884c\u9009\u9879\u7684\u4f4d\u7f6e\u9650\u5236\uff08Tom Lane\uff09</p>", "text": "\u79fb\u9664 -M \u9009\u9879\u76f8\u5bf9\u4e8e\u5176\u4ed6\u547d\u4ee4\u884c\u9009\u9879\u7684\u4f4d\u7f6e\u9650\u5236\uff08Tom Lane\uff09", "title": "\u79fb\u9664 -M \u9009\u9879\u76f8\u5bf9\u4e8e\u5176\u4ed6\u547d\u4ee4\u884c\u9009\u9879\u7684\u4f4d\u7f6e\u9650\u5236", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pgbench", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.3", "source_hash": "9e588ecdaec3497c1be27f6dbd4dd376a098bf9edaf6e3bb27f68cc3deb2a717", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pgbench"], "commit_groups": [["796818442"]], "identity_text": "Remove restriction on placement of -M option relative to other command line options (Tom Lane)", "commit_aliases": ["796818442"], "source_commits": ["796818442"], "source_entry_id": "10.0/changes/109", "db_id": "80f0021d7d1248be270f552b71b2db6c", "patch_ids": ["e3c7d7e779c99e91af6d124cf9746e1f"], "statement_hash": "0dc24ca0e9dcbb3c23bbeb0b64522c8b44a84da397224cea435ac2069589e7ee", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-8c7e2025d766c3c1", "migration": false}, {"id": "10.0-c359adfcc96cca32", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/10/app-pgreceivewal.html\" title=\"pg_receivewal\"><span>pg_receivewal</span></a>\u9009\u9879 <code>-Z</code>/<code>--compress</code>\uff0c\u7528\u4e8e\u6307\u5b9a\u538b\u7f29\uff08Michael Paquier\uff09</p>", "text": "\u589e\u52a0pg_receivewal\u9009\u9879 -Z/--compress\uff0c\u7528\u4e8e\u6307\u5b9a\u538b\u7f29\uff08Michael Paquier\uff09", "title": "\u589e\u52a0pg_receivewal\u9009\u9879 -Z/--compress\uff0c\u7528\u4e8e\u6307\u5b9a\u538b\u7f29", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12", "source_hash": "b50717d21f6a8fc45da6b38b7d536bf148f089d6215bbe00c5bf03e119731847", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["cada1af31"]], "identity_text": "Add pg_receivewal option -Z/--compress to specify compression (Michael Paquier)", "commit_aliases": ["cada1af31"], "source_commits": ["cada1af31"], "source_entry_id": "10.0/changes/110", "db_id": "1f62aca53708e1ade0b9f6c9e665742a", "patch_ids": ["e913cd9386fa2bd58fb2e73219b3ac2c"], "statement_hash": "5c4b8d98a4c4641096221a5ddf9d0f0c6e5d48a4e44ee9a3c694e209abe42bb8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-c359adfcc96cca32", "migration": false}, {"id": "10.0-7839589d0d677a7c", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/10/app-pgrecvlogical.html\" title=\"pg_recvlogical\"><span>pg_recvlogical</span></a>\u9009\u9879 <code>--endpos</code>\uff0c\u7528\u4e8e\u6307\u5b9a\u7ed3\u675f\u4f4d\u7f6e\uff08Craig Ringer\uff09</p>\n<p>\u8fd9\u8865\u5145\u4e86\u73b0\u6709\u7684 <code>--startpos</code> \u9009\u9879\u3002</p>", "text": "\u589e\u52a0pg_recvlogical\u9009\u9879 --endpos\uff0c\u7528\u4e8e\u6307\u5b9a\u7ed3\u675f\u4f4d\u7f6e\uff08Craig Ringer\uff09 \u8fd9\u8865\u5145\u4e86\u73b0\u6709\u7684 --startpos \u9009\u9879\u3002", "title": "\u589e\u52a0pg_recvlogical\u9009\u9879 --endpos\uff0c\u7528\u4e8e\u6307\u5b9a\u7ed3\u675f\u4f4d\u7f6e", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12", "source_hash": "4b882960ab5bd4dc88cdf156e8087292356d066b000e77afda6057048497653a", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["7c030783a"]], "identity_text": "Add pg_recvlogical option --endpos to specify the ending position (Craig Ringer) This complements the existing --startpos option.", "commit_aliases": ["7c030783a"], "source_commits": ["7c030783a"], "source_entry_id": "10.0/changes/111", "db_id": "0a946ee445f785ff37763c1849aa7099", "patch_ids": ["a133cb6d2947cc6cfea723fb73a13619"], "statement_hash": "7d09e64fe59be109b9578c935ec32bc2460a170724945ab0940d50cf6d95eb17", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-7839589d0d677a7c", "migration": false}, {"id": "10.0-ddb9a1a7d8d00d1c", "cves": [], "html": "<p>\u5c06<a href=\"/docs/10/app-initdb.html\" title=\"initdb\"><span>initdb</span></a>\u9009\u9879 <code>--noclean</code> \u548c <code>--nosync</code> \u91cd\u547d\u540d\u4e3a <code>--no-clean</code> \u548c <code>--no-sync</code>\uff08Vik Fearing\uff0cPeter Eisentraut\uff09</p>\n<p>\u4ecd\u652f\u6301\u65e7\u7684\u62fc\u5199\u3002</p>", "text": "\u5c06initdb\u9009\u9879 --noclean \u548c --nosync \u91cd\u547d\u540d\u4e3a --no-clean \u548c --no-sync\uff08Vik Fearing\uff0cPeter Eisentraut\uff09 \u4ecd\u652f\u6301\u65e7\u7684\u62fc\u5199\u3002", "title": "\u5c06initdb\u9009\u9879 --noclean \u548c --nosync \u91cd\u547d\u540d\u4e3a --no-clean \u548c --no-sync", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12", "source_hash": "bde3ed95c8705f9af0b30c806bbe3496958c91f814480880cc50230d16b314db", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["5d58c07a4"]], "identity_text": "Rename initdb options --noclean and --nosync to be spelled --no-clean and --no-sync (Vik Fearing, Peter Eisentraut) The old spellings are still supported.", "commit_aliases": ["5d58c07a4"], "source_commits": ["5d58c07a4"], "source_entry_id": "10.0/changes/112", "db_id": "868a55e2f443f6af9edc06e059ca9690", "patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"], "statement_hash": "794083b2dfac37eeff644171487cdcadbcc4682331e4cfaf4ca31a208c62fd4d", "relations": [{"rule": 2, "type": "related", "target": "4ad69074dd464ac52c051302ebdd3c2b", "evidence": {"same_day": true, "patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"], "ambiguous_patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-ddb9a1a7d8d00d1c", "migration": false}, {"id": "10.0-8e06fa1e146e8a1c", "cves": [], "html": "<p>\u5141\u8bb8 <span>pg_restore</span> \u6392\u9664\u6a21\u5f0f\uff08Michael Banck\uff09</p>\n<p>\u8fd9\u589e\u52a0\u4e86\u65b0\u7684 <code>-N</code>/<code>--exclude-schema</code> \u9009\u9879\u3002</p>", "text": "\u5141\u8bb8 pg_restore \u6392\u9664\u6a21\u5f0f\uff08Michael Banck\uff09 \u8fd9\u589e\u52a0\u4e86\u65b0\u7684 -N/--exclude-schema \u9009\u9879\u3002", "title": "\u5141\u8bb8 pg_restore \u6392\u9664\u6a21\u5f0f", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.3", "source_hash": "493a4f192ffbf5785f527a10643dc235b8f7494af7b12e8776de4c6c45deb287", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["46b55e7f8"]], "identity_text": "Allow pg_restore to exclude schemas (Michael Banck) This adds a new -N/--exclude-schema option.", "commit_aliases": ["46b55e7f8"], "source_commits": ["46b55e7f8"], "source_entry_id": "10.0/changes/113", "db_id": "eef182ff351370cbb5a6a90e1a44f0a6", "patch_ids": ["5b1e005318f061c20fb60c2ef612b9a5"], "statement_hash": "d8fc782763e558cc44d262c646ee85dd797978daadaeb4504ab57ad1171991ad", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-8e06fa1e146e8a1c", "migration": false}, {"id": "10.0-d8cd218f7d275074", "cves": [], "html": "<p>\u4e3a <span>pg_dump</span> \u589e\u52a0 <code>--no-blobs</code> \u9009\u9879\uff08Guillaume Lelarge\uff09</p>\n<p>\u8fd9\u4f1a\u7981\u6b62\u8f6c\u50a8\u5927\u5bf9\u8c61\u3002</p>", "text": "\u4e3a pg_dump \u589e\u52a0 --no-blobs \u9009\u9879\uff08Guillaume Lelarge\uff09 \u8fd9\u4f1a\u7981\u6b62\u8f6c\u50a8\u5927\u5bf9\u8c61\u3002", "title": "\u4e3a pg_dump \u589e\u52a0 --no-blobs \u9009\u9879", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.3", "source_hash": "62c8fe97098fc78802f7eb91c6fb9bfdf1c06ba1f2133fbd4f24761790df3f40", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["4fafa579b"]], "identity_text": "Add --no-blobs option to pg_dump (Guillaume Lelarge) This suppresses dumping of large objects.", "commit_aliases": ["4fafa579b"], "source_commits": ["4fafa579b"], "source_entry_id": "10.0/changes/114", "db_id": "8ffbf5d17d9e708010692004eeffdacf", "patch_ids": ["45862d068c4f8c27a6e040aeee8cf23a"], "statement_hash": "89b3ada14a986418d540edf452d7df1589aae4c3d3bb2110d117fa9d5dbe754d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d8cd218f7d275074", "migration": false}, {"id": "10.0-90229aa16145e12e", "cves": [], "html": "<p>\u4e3a <span>pg_dumpall</span> \u589e\u52a0 <code>--no-role-passwords</code> \u9009\u9879\uff0c\u4ee5\u7701\u7565\u89d2\u8272\u5bc6\u7801\uff08Robins Tharakan\uff0cSimon Riggs\uff09</p>\n<p>\u8fd9\u4f7f\u975e\u8d85\u7ea7\u7528\u6237\u4e5f\u80fd\u591f\u4f7f\u7528 <span>pg_dumpall</span>\uff1b\u5982\u679c\u6ca1\u6709\u6b64\u9009\u9879\uff0c\u5b83\u4f1a\u56e0\u65e0\u6cd5\u8bfb\u53d6\u5bc6\u7801\u800c\u5931\u8d25\u3002</p>", "text": "\u4e3a pg_dumpall \u589e\u52a0 --no-role-passwords \u9009\u9879\uff0c\u4ee5\u7701\u7565\u89d2\u8272\u5bc6\u7801\uff08Robins Tharakan\uff0cSimon Riggs\uff09 \u8fd9\u4f7f\u975e\u8d85\u7ea7\u7528\u6237\u4e5f\u80fd\u591f\u4f7f\u7528 pg_dumpall\uff1b\u5982\u679c\u6ca1\u6709\u6b64\u9009\u9879\uff0c\u5b83\u4f1a\u56e0\u65e0\u6cd5\u8bfb\u53d6\u5bc6\u7801\u800c\u5931\u8d25\u3002", "title": "\u4e3a pg_dumpall \u589e\u52a0 --no-role-passwords \u9009\u9879\uff0c\u4ee5\u7701\u7565\u89d2\u8272\u5bc6\u7801", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.3", "source_hash": "48353c876263d5a70815ecd9d5b826deeb30cd601cebe4806d795a696a989b6f", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["9a83d56b3"]], "identity_text": "Add pg_dumpall option --no-role-passwords to omit role passwords (Robins Tharakan, Simon Riggs) This allows use of pg_dumpall by non-superusers; without this option, it fails due to inability to read passwords.", "commit_aliases": ["9a83d56b3"], "source_commits": ["9a83d56b3"], "source_entry_id": "10.0/changes/115", "db_id": "5f16d6a4d62a5daf2ce9aef3cadc6f59", "patch_ids": ["080004d594782aa2bdf8e79b7c08485f"], "statement_hash": "94ae41a59c110bf7dae0dd152745a9a8a4ea0192fb98270d14de669c6f85e732", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-90229aa16145e12e", "migration": false}, {"id": "10.0-d7e41bf69f46edf0", "cves": [], "html": "<p>\u652f\u6301\u4ece\u5907\u5e93\u8f6c\u50a8\u65f6\u4f7f\u7528\u540c\u6b65\u5feb\u7167\uff08Petr Jelinek\uff09</p>", "text": "\u652f\u6301\u4ece\u5907\u5e93\u8f6c\u50a8\u65f6\u4f7f\u7528\u540c\u6b65\u5feb\u7167\uff08Petr Jelinek\uff09", "title": "\u652f\u6301\u4ece\u5907\u5e93\u8f6c\u50a8\u65f6\u4f7f\u7528\u540c\u6b65\u5feb\u7167", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.3", "source_hash": "66b841e732920a2657794d5c30b7d048de63d7b656ba957f0cf4c5858de2d103", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["e4892c681"]], "identity_text": "Support using synchronized snapshots when dumping from a standby server (Petr Jelinek)", "commit_aliases": ["e4892c681"], "source_commits": ["e4892c681"], "source_entry_id": "10.0/changes/116", "db_id": "415aaada42162af3fa1d324ef5086ea2", "patch_ids": ["11fb20f40bd006618bf7fe1cc60587f3"], "statement_hash": "e4481306e5454b76c5fbe3577967267d338abfdb6e5b29fd3a588dfc105b40d8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d7e41bf69f46edf0", "migration": false}, {"id": "10.0-9abe4662520a220d", "cves": [], "html": "<p>\u5bf9 <span>pg_dump</span> \u548c <span>pg_dumpall</span> \u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u6267\u884c <code>fsync()</code>\uff08Michael Paquier\uff09</p>\n<p>\u8fd9\u80fd\u66f4\u53ef\u9760\u5730\u786e\u4fdd\u8f93\u51fa\u5728\u7a0b\u5e8f\u9000\u51fa\u524d\u5df2\u5b89\u5168\u5b58\u50a8\u5230\u78c1\u76d8\u4e0a\u3002\u53ef\u4ee5\u901a\u8fc7\u65b0\u589e\u7684 <code>--no-sync</code> \u9009\u9879\u7981\u7528\u6b64\u884c\u4e3a\u3002</p>", "text": "\u5bf9 pg_dump \u548c pg_dumpall \u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u6267\u884c fsync()\uff08Michael Paquier\uff09 \u8fd9\u80fd\u66f4\u53ef\u9760\u5730\u786e\u4fdd\u8f93\u51fa\u5728\u7a0b\u5e8f\u9000\u51fa\u524d\u5df2\u5b89\u5168\u5b58\u50a8\u5230\u78c1\u76d8\u4e0a\u3002\u53ef\u4ee5\u901a\u8fc7\u65b0\u589e\u7684 --no-sync \u9009\u9879\u7981\u7528\u6b64\u884c\u4e3a\u3002", "title": "\u5bf9 pg_dump \u548c pg_dumpall \u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u6267\u884c fsync()", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.3", "source_hash": "926f9c424fb8d66e4c25164a323e3e273a855840ed1a4e5ef366cf3a4e2c5c81", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["96a7128b7"]], "identity_text": "Issue fsync() on the output files generated by pg_dump and pg_dumpall (Michael Paquier) This provides more security that the output is safely stored on disk before the program exits. This can be disabled with the new --no-sync option.", "commit_aliases": ["96a7128b7"], "source_commits": ["96a7128b7"], "source_entry_id": "10.0/changes/117", "db_id": "9c407d87704db7b3f8041b6883195e4b", "patch_ids": ["89954ac8dab9305fa4023f51f3791ffc"], "statement_hash": "5d367258b446a52548ef53ebc3c8cfc0e02e6d6513cb7b914be71a64755e2824", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-9abe4662520a220d", "migration": false}, {"id": "10.0-d54cb3e9f63d542d", "cves": [], "html": "<p>\u5141\u8bb8 <span>pg_basebackup</span> \u5728 tar \u6a21\u5f0f\u4e0b\u4ee5\u6d41\u65b9\u5f0f\u4f20\u8f93\u9884\u5199\u5f0f\u65e5\u5fd7\uff08Magnus Hagander\uff09</p>\n<p><acronym>WAL</acronym> \u5c06\u5b58\u50a8\u5728\u4e0e\u57fa\u7840\u5907\u4efd\u5206\u5f00\u7684 tar \u6587\u4ef6\u4e2d\u3002</p>", "text": "\u5141\u8bb8 pg_basebackup \u5728 tar \u6a21\u5f0f\u4e0b\u4ee5\u6d41\u65b9\u5f0f\u4f20\u8f93\u9884\u5199\u5f0f\u65e5\u5fd7\uff08Magnus Hagander\uff09 WAL \u5c06\u5b58\u50a8\u5728\u4e0e\u57fa\u7840\u5907\u4efd\u5206\u5f00\u7684 tar \u6587\u4ef6\u4e2d\u3002", "title": "\u5141\u8bb8 pg_basebackup \u5728 tar \u6a21\u5f0f\u4e0b\u4ee5\u6d41\u65b9\u5f0f\u4f20\u8f93\u9884\u5199\u5f0f\u65e5\u5fd7", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_basebackup", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.4", "source_hash": "08f311cc73876b36b37922880dab333b8e2a5ba0a31854a9a46ee676c2fcba06", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_basebackup"], "commit_groups": [["56c7d8d45"], ["ecbdc4c55"]], "identity_text": "Allow pg_basebackup to stream write-ahead log in tar mode (Magnus Hagander) The WAL will be stored in a separate tar file from the base backup.", "commit_aliases": ["56c7d8d45", "ecbdc4c55"], "source_commits": ["56c7d8d45", "ecbdc4c55"], "source_entry_id": "10.0/changes/118", "db_id": "068ce7d3e14ee47277e98ba3c8bca1bd", "patch_ids": ["09128c9bb92b3811b528991cfb739340", "be16d4967abf16ae65411ee4b8e4235f"], "statement_hash": "0389786c4106a88a62885cdbdb84649abc1f4723072dfe2a98a2d908b42aca65", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d54cb3e9f63d542d", "migration": false}, {"id": "10.0-b2520a067bd5e1c4", "cves": [], "html": "<p>\u4f7f <span>pg_basebackup</span> \u4f7f\u7528\u4e34\u65f6\u590d\u5236\u69fd\uff08Magnus Hagander\uff09</p>\n<p>\u5f53 <span>pg_basebackup</span> \u4f7f\u7528\u9ed8\u8ba4\u9009\u9879\u8fdb\u884c WAL \u6d41\u4f20\u8f93\u65f6\uff0c\u9ed8\u8ba4\u4f1a\u4f7f\u7528\u4e34\u65f6\u590d\u5236\u69fd\u3002</p>", "text": "\u4f7f pg_basebackup \u4f7f\u7528\u4e34\u65f6\u590d\u5236\u69fd\uff08Magnus Hagander\uff09 \u5f53 pg_basebackup \u4f7f\u7528\u9ed8\u8ba4\u9009\u9879\u8fdb\u884c WAL \u6d41\u4f20\u8f93\u65f6\uff0c\u9ed8\u8ba4\u4f1a\u4f7f\u7528\u4e34\u65f6\u590d\u5236\u69fd\u3002", "title": "\u4f7f pg_basebackup \u4f7f\u7528\u4e34\u65f6\u590d\u5236\u69fd", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_basebackup", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.4", "source_hash": "7665a26f237404b63ae8632a3727d2a819745f60ff506319195f6ad760797258", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_basebackup"], "commit_groups": [["e7b020f78"]], "identity_text": "Make pg_basebackup use temporary replication slots (Magnus Hagander) Temporary replication slots will be used by default when pg_basebackup uses WAL streaming with default options.", "commit_aliases": ["e7b020f78"], "source_commits": ["e7b020f78"], "source_entry_id": "10.0/changes/119", "db_id": "096f05b90d00b9e6a118543b233314dd", "patch_ids": ["7952ff6ebb7748dac3db57278d343e04"], "statement_hash": "ffe4a665ed964b018e716037b7eadb5f854b261164a832d4d8dd22eca3e9b7e8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-b2520a067bd5e1c4", "migration": false}, {"id": "10.0-553a860f21d5e4b9", "cves": [], "html": "<p>\u66f4\u8c28\u614e\u5730\u786e\u4fdd <span>pg_basebackup</span> \u548c <span>pg_receivewal</span> \u5728\u6240\u6709\u9700\u8981\u7684\u4f4d\u7f6e\u6267\u884c fsync\uff08Michael Paquier\uff09</p>", "text": "\u66f4\u8c28\u614e\u5730\u786e\u4fdd pg_basebackup \u548c pg_receivewal \u5728\u6240\u6709\u9700\u8981\u7684\u4f4d\u7f6e\u6267\u884c fsync\uff08Michael Paquier\uff09", "title": "\u66f4\u8c28\u614e\u5730\u786e\u4fdd pg_basebackup \u548c pg_receivewal \u5728\u6240\u6709\u9700\u8981\u7684\u4f4d\u7f6e\u6267\u884c fsync", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_basebackup", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.4", "source_hash": "5285949aef2d37906d9c16c92f8c0b0b847acf45ec61fe86ff0ea20ca2a6eda9", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_basebackup"], "commit_groups": [["bc34223bc"]], "identity_text": "Be more careful about fsync'ing in all required places in pg_basebackup and pg_receivewal (Michael Paquier)", "commit_aliases": ["bc34223bc"], "source_commits": ["bc34223bc"], "source_entry_id": "10.0/changes/120", "db_id": "d4dabba52a8865453f7ffc5c7f1029c8", "patch_ids": ["a9a2e9d96d5ab087630c3a7028c10677"], "statement_hash": "10b2e565743dbed23502fac010fa66f56c0a204a6bcaea593c7f5e756156ff8a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-553a860f21d5e4b9", "migration": false}, {"id": "10.0-54879cec71a8ef7c", "cves": [], "html": "<p>\u589e\u52a0 <span>pg_basebackup</span> \u9009\u9879 <code>--no-sync</code>\uff0c\u7528\u4e8e\u7981\u7528 fsync\uff08Michael Paquier\uff09</p>", "text": "\u589e\u52a0 pg_basebackup \u9009\u9879 --no-sync\uff0c\u7528\u4e8e\u7981\u7528 fsync\uff08Michael Paquier\uff09", "title": "\u589e\u52a0 pg_basebackup \u9009\u9879 --no-sync\uff0c\u7528\u4e8e\u7981\u7528 fsync", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_basebackup", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.4", "source_hash": "4983ad47f16848a73e0a98a640ff989edd4e3fe1dbd3a0aa6045005037fce825", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_basebackup"], "commit_groups": [["5d58c07a4"], ["6ed2d8584"]], "identity_text": "Add pg_basebackup option --no-sync to disable fsync (Michael Paquier)", "commit_aliases": ["5d58c07a4", "6ed2d8584"], "source_commits": ["5d58c07a4", "6ed2d8584"], "source_entry_id": "10.0/changes/121", "db_id": "4ad69074dd464ac52c051302ebdd3c2b", "patch_ids": ["97e6dcaae2c670aaf9c27499f028a17f", "a2c1574f5af340dc2a70ae4549f08323"], "statement_hash": "7ce02eb85ace6beb6e87e57f67edb734382fe07f340e217fccb14a9551d461f7", "relations": [{"rule": 2, "type": "related", "target": "868a55e2f443f6af9edc06e059ca9690", "evidence": {"same_day": true, "patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"], "ambiguous_patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-54879cec71a8ef7c", "migration": false}, {"id": "10.0-df0335686d962a28", "cves": [], "html": "<p>\u6539\u8fdb <span>pg_basebackup</span> \u5bf9\u9700\u8981\u8df3\u8fc7\u7684\u76ee\u5f55\u7684\u5904\u7406\uff08David Steele\uff09</p>", "text": "\u6539\u8fdb pg_basebackup \u5bf9\u9700\u8981\u8df3\u8fc7\u7684\u76ee\u5f55\u7684\u5904\u7406\uff08David Steele\uff09", "title": "\u6539\u8fdb pg_basebackup \u5bf9\u9700\u8981\u8df3\u8fc7\u7684\u76ee\u5f55\u7684\u5904\u7406", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_basebackup", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.4", "source_hash": "3744c5d89754bf98c108a7ef2c8ba97c658d9ce198307c89c0a23245a9c0e82b", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_basebackup"], "commit_groups": [["6ad8ac602"]], "identity_text": "Improve pg_basebackup's handling of which directories to skip (David Steele)", "commit_aliases": ["6ad8ac602"], "source_commits": ["6ad8ac602"], "source_entry_id": "10.0/changes/122", "db_id": "fed8b500772af072be5e155f25b8850e", "patch_ids": ["dd8ac1636099e837ba76fdde10904929"], "statement_hash": "b1cbcaee39c8da9c292cc411f63e5922da52c3fabe8fbc64037881b57246fb57", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-df0335686d962a28", "migration": false}, {"id": "10.0-1f1d3d4f397e07b4", "cves": [], "html": "<p>\u4e3a <span><a href=\"/docs/10/app-pg-ctl.html\" title=\"pg_ctl\"><span><span>pg_ctl</span></span></a></span> \u7684\u63d0\u5347\u64cd\u4f5c\u589e\u52a0\u7b49\u5f85\u9009\u9879\uff08Peter Eisentraut\uff09</p>", "text": "\u4e3a pg_ctl \u7684\u63d0\u5347\u64cd\u4f5c\u589e\u52a0\u7b49\u5f85\u9009\u9879\uff08Peter Eisentraut\uff09", "title": "\u4e3a pg_ctl \u7684\u63d0\u5347\u64cd\u4f5c\u589e\u52a0\u7b49\u5f85\u9009\u9879", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_ctl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.5", "source_hash": "027072e0029bbb130abc07a9b075e3bcd2ba2ec377b29efad265f6e5a35c6696", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_ctl"], "commit_groups": [["e7010ce47"]], "identity_text": "Add wait option for app-pg-ctl 's promote operation (Peter Eisentraut)", "commit_aliases": ["e7010ce47"], "source_commits": ["e7010ce47"], "source_entry_id": "10.0/changes/123", "db_id": "99bc3c69e5dcc6b3a96a9080fa9b8d54", "patch_ids": ["f6f84a22680a103513d861cf101e98fb"], "statement_hash": "ddad51c4ecd7649eaf652ff02aa4abbce203ee38f025f3575243b145a03d2b1d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-1f1d3d4f397e07b4", "migration": false}, {"id": "10.0-42f86b3ccaec1bad", "cves": [], "html": "<p>\u4e3a <span>pg_ctl</span> \u7684\u7b49\u5f85\u548c\u4e0d\u7b49\u5f85\u64cd\u4f5c\u589e\u52a0\u957f\u9009\u9879\uff0c\u5206\u522b\u4e3a <code>--wait</code> \u548c <code>--no-wait</code>\uff08Vik Fearing\uff09</p>", "text": "\u4e3a pg_ctl \u7684\u7b49\u5f85\u548c\u4e0d\u7b49\u5f85\u64cd\u4f5c\u589e\u52a0\u957f\u9009\u9879\uff0c\u5206\u522b\u4e3a --wait \u548c --no-wait\uff08Vik Fearing\uff09", "title": "\u4e3a pg_ctl \u7684\u7b49\u5f85\u548c\u4e0d\u7b49\u5f85\u64cd\u4f5c\u589e\u52a0\u957f\u9009\u9879\uff0c\u5206\u522b\u4e3a --wait \u548c --no-wait", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_ctl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.5", "source_hash": "1088cc9eafc16242d679754839a66ec487911a5aff7349bc4335ff90e6fd5e22", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_ctl"], "commit_groups": [["0be22457d"]], "identity_text": "Add long options for pg_ctl wait (--wait) and no-wait (--no-wait) (Vik Fearing)", "commit_aliases": ["0be22457d"], "source_commits": ["0be22457d"], "source_entry_id": "10.0/changes/124", "db_id": "47f436537b46622df77dc5ef34eefdf8", "patch_ids": ["8054a938f0bc8cb225422cfb14d65508"], "statement_hash": "989af5a26d35756aea757d8ba41af194ea143cc93eaacf25a7d0bdc2f96cbcdc", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-42f86b3ccaec1bad", "migration": false}, {"id": "10.0-1daf08ae8ef4e53b", "cves": [], "html": "<p>\u4e3a <span>pg_ctl</span> \u7684\u670d\u52a1\u5668\u9009\u9879\u589e\u52a0\u957f\u9009\u9879 <code>--options</code>\uff08Peter Eisentraut\uff09</p>", "text": "\u4e3a pg_ctl \u7684\u670d\u52a1\u5668\u9009\u9879\u589e\u52a0\u957f\u9009\u9879 --options\uff08Peter Eisentraut\uff09", "title": "\u4e3a pg_ctl \u7684\u670d\u52a1\u5668\u9009\u9879\u589e\u52a0\u957f\u9009\u9879 --options", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_ctl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.5", "source_hash": "cddd434e67ef7075726934210558dd991bdb5ff49fc844f4aede4851873ce208", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_ctl"], "commit_groups": [["caf936b09"]], "identity_text": "Add long option for pg_ctl server options (--options) (Peter Eisentraut)", "commit_aliases": ["caf936b09"], "source_commits": ["caf936b09"], "source_entry_id": "10.0/changes/125", "db_id": "4c8a354a2c5b162a4cddf60a7342e30b", "patch_ids": ["4fadf73f1d0ef76137063f1d278b1d13"], "statement_hash": "2db4e5b9c3b115b6969a8a0e805c3147817c9c03cf147cb6727362bab3022707", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-1daf08ae8ef4e53b", "migration": false}, {"id": "10.0-f7711e8f7c867911", "cves": [], "html": "<p>\u4f7f <code>pg_ctl start --wait</code> \u901a\u8fc7\u89c2\u5bdf <code>postmaster.pid</code> \u6765\u68c0\u6d4b\u670d\u52a1\u5668\u662f\u5426\u5c31\u7eea\uff0c\u800c\u4e0d\u662f\u5c1d\u8bd5\u8fde\u63a5\uff08Tom Lane\uff09</p>\n<p>postmaster \u73b0\u5728\u4f1a\u5728 <code>postmaster.pid</code> \u4e2d\u62a5\u544a\u5176\u5df2\u51c6\u5907\u597d\u63a5\u53d7\u8fde\u63a5\u7684\u72b6\u6001\uff0c<span>pg_ctl</span> \u4f1a\u68c0\u67e5\u8be5\u6587\u4ef6\uff0c\u4ee5\u68c0\u6d4b\u542f\u52a8\u662f\u5426\u5b8c\u6210\u3002\u8fd9\u6bd4\u65e7\u65b9\u6cd5\u66f4\u9ad8\u6548\u53ef\u9760\uff0c\u4e5f\u6d88\u9664\u4e86\u542f\u52a8\u671f\u95f4\u8fde\u63a5\u5c1d\u8bd5\u88ab\u62d2\u7edd\u6240\u4ea7\u751f\u7684 postmaster \u65e5\u5fd7\u6761\u76ee\u3002</p>", "text": "\u4f7f pg_ctl start --wait \u901a\u8fc7\u89c2\u5bdf postmaster.pid \u6765\u68c0\u6d4b\u670d\u52a1\u5668\u662f\u5426\u5c31\u7eea\uff0c\u800c\u4e0d\u662f\u5c1d\u8bd5\u8fde\u63a5\uff08Tom Lane\uff09 postmaster \u73b0\u5728\u4f1a\u5728 postmaster.pid \u4e2d\u62a5\u544a\u5176\u5df2\u51c6\u5907\u597d\u63a5\u53d7\u8fde\u63a5\u7684\u72b6\u6001\uff0cpg_ctl \u4f1a\u68c0\u67e5\u8be5\u6587\u4ef6\uff0c\u4ee5\u68c0\u6d4b\u542f\u52a8\u662f\u5426\u5b8c\u6210\u3002\u8fd9\u6bd4\u65e7\u65b9\u6cd5\u66f4\u9ad8\u6548\u53ef\u9760\uff0c\u4e5f\u6d88\u9664\u4e86\u542f\u52a8\u671f\u95f4\u8fde\u63a5\u5c1d\u8bd5\u88ab\u62d2\u7edd\u6240\u4ea7\u751f\u7684 postmaster \u65e5\u5fd7\u6761\u76ee\u3002", "title": "\u4f7f pg_ctl start --wait \u901a\u8fc7\u89c2\u5bdf postmaster.pid \u6765\u68c0\u6d4b\u670d\u52a1\u5668\u662f\u5426\u5c31\u7eea\uff0c\u800c\u4e0d\u662f\u5c1d\u8bd5\u8fde\u63a5", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_ctl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.5", "source_hash": "d65e4fbbeca14650d008b87cd5e3d0b54d1cd88807e9ee8795f94f015bca25b4", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_ctl"], "commit_groups": [["f13ea95f9"]], "identity_text": "Make pg_ctl start --wait detect server-ready by watching postmaster.pid, not by attempting connections (Tom Lane) The postmaster has been changed to report its ready-for-connections status in postmaster.pid, and pg_ctl now examines that file to detect whether startup is complete. This is more efficient and reliable than the old method, and it eliminates postmaster log entries about rejected connection attempts during startup.", "commit_aliases": ["f13ea95f9"], "source_commits": ["f13ea95f9"], "source_entry_id": "10.0/changes/126", "db_id": "31d405f19fc0a6e4e8ac77ca215267d7", "patch_ids": ["90f3cc7fed3fcbfce7e1105239457b41"], "statement_hash": "476537e33575bd99aaef7f235abecb62ee0f13d2863ed422f6b64ace5dc74296", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-f7711e8f7c867911", "migration": false}, {"id": "10.0-da67889b793c3068", "cves": [], "html": "<p>\u7f29\u77ed <span>pg_ctl</span> \u7b49\u5f85 postmaster \u542f\u52a8\u6216\u505c\u6b62\u65f6\u7684\u54cd\u5e94\u65f6\u95f4\uff08Tom Lane\uff09</p>\n<p>\u73b0\u5728\uff0c<span>pg_ctl</span> \u5728\u7b49\u5f85 postmaster \u72b6\u6001\u53d8\u5316\u65f6\u6bcf\u79d2\u63a2\u6d4b\u5341\u6b21\uff0c\u800c\u4e0d\u662f\u6bcf\u79d2\u4e00\u6b21\u3002</p>", "text": "\u7f29\u77ed pg_ctl \u7b49\u5f85 postmaster \u542f\u52a8\u6216\u505c\u6b62\u65f6\u7684\u54cd\u5e94\u65f6\u95f4\uff08Tom Lane\uff09 \u73b0\u5728\uff0cpg_ctl \u5728\u7b49\u5f85 postmaster \u72b6\u6001\u53d8\u5316\u65f6\u6bcf\u79d2\u63a2\u6d4b\u5341\u6b21\uff0c\u800c\u4e0d\u662f\u6bcf\u79d2\u4e00\u6b21\u3002", "title": "\u7f29\u77ed pg_ctl \u7b49\u5f85 postmaster \u542f\u52a8\u6216\u505c\u6b62\u65f6\u7684\u54cd\u5e94\u65f6\u95f4", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_ctl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.5", "source_hash": "4a452c1a2150dc8bda52a718a910c0595218b2b5c1e5211cfbb0e1bfd208b7ff", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_ctl"], "commit_groups": [["c61559ec3"]], "identity_text": "Reduce pg_ctl's reaction time when waiting for postmaster start/stop (Tom Lane) pg_ctl now probes ten times per second when waiting for a postmaster state change, rather than once per second.", "commit_aliases": ["c61559ec3"], "source_commits": ["c61559ec3"], "source_entry_id": "10.0/changes/127", "db_id": "38c8aa92014a6d8ebb19c6668d68f4bf", "patch_ids": ["bb1c248c14114377a8c6225ae9b51c24"], "statement_hash": "f6ef2435472e7cdf8a55aae893b27ce65726ebf22b15551a55e0b5cc35958e2f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-da67889b793c3068", "migration": false}, {"id": "10.0-09812643f7c7fb02", "cves": [], "html": "<p>\u786e\u4fdd <span>pg_ctl</span> \u5728\u6240\u7b49\u5f85\u7684\u64cd\u4f5c\u672a\u4e8e\u8d85\u65f6\u671f\u9650\u5185\u5b8c\u6210\u65f6\uff0c\u4ee5\u975e\u96f6\u72b6\u6001\u9000\u51fa\uff08Peter Eisentraut\uff09</p>\n<p>\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c<code>start</code> \u548c <code>promote</code> \u64cd\u4f5c\u73b0\u5728\u8fd4\u56de\u9000\u51fa\u72b6\u6001 1\uff0c\u800c\u975e 0\u3002<code>stop</code> \u64cd\u4f5c\u4e00\u76f4\u5982\u6b64\u3002</p>", "text": "\u786e\u4fdd pg_ctl \u5728\u6240\u7b49\u5f85\u7684\u64cd\u4f5c\u672a\u4e8e\u8d85\u65f6\u671f\u9650\u5185\u5b8c\u6210\u65f6\uff0c\u4ee5\u975e\u96f6\u72b6\u6001\u9000\u51fa\uff08Peter Eisentraut\uff09 \u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0cstart \u548c promote \u64cd\u4f5c\u73b0\u5728\u8fd4\u56de\u9000\u51fa\u72b6\u6001 1\uff0c\u800c\u975e 0\u3002stop \u64cd\u4f5c\u4e00\u76f4\u5982\u6b64\u3002", "title": "\u786e\u4fdd pg_ctl \u5728\u6240\u7b49\u5f85\u7684\u64cd\u4f5c\u672a\u4e8e\u8d85\u65f6\u671f\u9650\u5185\u5b8c\u6210\u65f6\uff0c\u4ee5\u975e\u96f6\u72b6\u6001\u9000\u51fa", "commits": [], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_ctl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.5", "source_hash": "48b5766f91d6abfbbc2cef4dd54f0b0c8bf0a8549647a930befcb78abc78d805", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_ctl"], "commit_groups": [["1bac5f552"]], "identity_text": "Ensure that pg_ctl exits with nonzero status if an operation being waited for does not complete within the timeout (Peter Eisentraut) The start and promote operations now return exit status 1, not 0, in such cases. The stop operation has always done that.", "commit_aliases": ["1bac5f552"], "source_commits": ["1bac5f552"], "source_entry_id": "10.0/changes/128", "db_id": "1f9ee6688c654ad125913a2881ba9ce8", "patch_ids": ["f7e7b1cbe5d7e292853e364c1b652594"], "statement_hash": "b68d99b4f832ab97d53bdff714a1bb18e487ce624f56edffde3fb9f471a12f41", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-09812643f7c7fb02", "migration": false}, {"id": "10.0-d3cca91a86a8a019", "cves": [], "html": "<p>\u6539\u7528\u7531\u4e24\u90e8\u5206\u7ec4\u6210\u7684\u53d1\u884c\u7248\u7248\u672c\u53f7\uff08Peter Eisentraut\uff0cTom Lane\uff09</p>\n<p>\u53d1\u884c\u7248\u7248\u672c\u53f7\u73b0\u5728\u7531\u4e24\u90e8\u5206\u7ec4\u6210\uff08\u5982 <code>10.1</code>\uff09\uff0c\u800c\u975e\u4e09\u90e8\u5206\uff08\u5982 <code>9.6.3</code>\uff09\u3002\u5927\u7248\u672c\u73b0\u5728\u53ea\u589e\u52a0\u7b2c\u4e00\u4e2a\u6570\u5b57\uff0c\u5c0f\u7248\u672c\u53ea\u589e\u52a0\u7b2c\u4e8c\u4e2a\u6570\u5b57\u3002\u53d1\u5e03\u5206\u652f\u5c06\u7528\u5355\u4e2a\u6570\u5b57\u8868\u793a\uff08\u5982 <code>10</code>\uff0c\u800c\u975e <code>9.6</code>\uff09\u3002\u6b64\u53d8\u66f4\u65e8\u5728\u51cf\u5c11\u7528\u6237\u5bf9 <span>PostgreSQL</span> \u5927\u7248\u672c\u548c\u5c0f\u7248\u672c\u542b\u4e49\u7684\u56f0\u60d1\u3002</p>", "text": "\u6539\u7528\u7531\u4e24\u90e8\u5206\u7ec4\u6210\u7684\u53d1\u884c\u7248\u7248\u672c\u53f7\uff08Peter Eisentraut\uff0cTom Lane\uff09 \u53d1\u884c\u7248\u7248\u672c\u53f7\u73b0\u5728\u7531\u4e24\u90e8\u5206\u7ec4\u6210\uff08\u5982 10.1\uff09\uff0c\u800c\u975e\u4e09\u90e8\u5206\uff08\u5982 9.6.3\uff09\u3002\u5927\u7248\u672c\u73b0\u5728\u53ea\u589e\u52a0\u7b2c\u4e00\u4e2a\u6570\u5b57\uff0c\u5c0f\u7248\u672c\u53ea\u589e\u52a0\u7b2c\u4e8c\u4e2a\u6570\u5b57\u3002\u53d1\u5e03\u5206\u652f\u5c06\u7528\u5355\u4e2a\u6570\u5b57\u8868\u793a\uff08\u5982 10\uff0c\u800c\u975e 9.6\uff09\u3002\u6b64\u53d8\u66f4\u65e8\u5728\u51cf\u5c11\u7528\u6237\u5bf9 PostgreSQL \u5927\u7248\u672c\u548c\u5c0f\u7248\u672c\u542b\u4e49\u7684\u56f0\u60d1\u3002", "title": "\u6539\u7528\u7531\u4e24\u90e8\u5206\u7ec4\u6210\u7684\u53d1\u884c\u7248\u7248\u672c\u53f7", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "8d7634ae0b1f3f2275294fc7e0afd09010b45a8530fa996c47ea64a4578372ca", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["ca9112a42"]], "identity_text": "Change to two-part release version numbering (Peter Eisentraut, Tom Lane) Release numbers will now have two parts (e.g., 10.1) rather than three (e.g., 9.6.3). Major versions will now increase just the first number, and minor releases will increase just the second number. Release branches will be referred to by single numbers (e.g., 10 rather than 9.6). This change is intended to reduce user confusion about what is a major or minor release of PostgreSQL.", "commit_aliases": ["ca9112a42"], "source_commits": ["ca9112a42"], "source_entry_id": "10.0/changes/129", "db_id": "4c59d0f8a99da311064a24f27f7119f5", "patch_ids": ["d85f2dd4556cd9db20d7961d8c42eeb7"], "statement_hash": "d616cfccfed0360c7881386a86c2b66ec34c766c8008e5259a6e96e85266e361", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d3cca91a86a8a019", "migration": false}, {"id": "10.0-41d6908946396e6b", "cves": [], "html": "<p>\u6539\u8fdb <span>pgindent</span> \u7684\u884c\u4e3a\uff08Piotr Stefaniak\uff0cTom Lane\uff09</p>\n<p>\u6211\u4eec\u5df2\u5207\u6362\u5230\u65b0\u7684 <span>pg_bsd_indent</span> \u7248\u672c\uff0c\u5176\u4e2d\u7eb3\u5165\u4e86 FreeBSD \u9879\u76ee\u8fd1\u671f\u7684\u6539\u8fdb\u3002\u8fd9\u4fee\u590d\u4e86\u8bb8\u591a\u5bfc\u81f4 C \u4ee3\u7801\u683c\u5f0f\u5f02\u5e38\u7684\u5c0f\u7f3a\u9677\u3002\u6700\u660e\u663e\u7684\u662f\uff0c\u62ec\u53f7\u5185\u7684\u884c\uff08\u4f8b\u5982\u591a\u884c\u51fd\u6570\u8c03\u7528\uff09\u73b0\u5728\u7edf\u4e00\u7f29\u8fdb\u5230\u4e0e\u5de6\u62ec\u53f7\u5bf9\u9f50\uff0c\u5373\u4f7f\u8fd9\u6837\u4f1a\u4f7f\u4ee3\u7801\u8d85\u51fa\u53f3\u8fb9\u754c\u3002</p>", "text": "\u6539\u8fdb pgindent \u7684\u884c\u4e3a\uff08Piotr Stefaniak\uff0cTom Lane\uff09 \u6211\u4eec\u5df2\u5207\u6362\u5230\u65b0\u7684 pg_bsd_indent \u7248\u672c\uff0c\u5176\u4e2d\u7eb3\u5165\u4e86 FreeBSD \u9879\u76ee\u8fd1\u671f\u7684\u6539\u8fdb\u3002\u8fd9\u4fee\u590d\u4e86\u8bb8\u591a\u5bfc\u81f4 C \u4ee3\u7801\u683c\u5f0f\u5f02\u5e38\u7684\u5c0f\u7f3a\u9677\u3002\u6700\u660e\u663e\u7684\u662f\uff0c\u62ec\u53f7\u5185\u7684\u884c\uff08\u4f8b\u5982\u591a\u884c\u51fd\u6570\u8c03\u7528\uff09\u73b0\u5728\u7edf\u4e00\u7f29\u8fdb\u5230\u4e0e\u5de6\u62ec\u53f7\u5bf9\u9f50\uff0c\u5373\u4f7f\u8fd9\u6837\u4f1a\u4f7f\u4ee3\u7801\u8d85\u51fa\u53f3\u8fb9\u754c\u3002", "title": "\u6539\u8fdb pgindent \u7684\u884c\u4e3a", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "40627313a88d5ed5b95f09a082467c9ca0fee81ab33df6729ff6f45ecc4101bb", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["382ceffdf"], ["81f056c72"], ["8ff6d4ec7"], ["c7b8998eb"], ["cea258b63"], ["e3860ffa4"]], "identity_text": "Improve behavior of pgindent (Piotr Stefaniak, Tom Lane) We have switched to a new version of pg_bsd_indent based on recent improvements made by the FreeBSD project. This fixes numerous small bugs that led to odd C code formatting decisions. Most notably, lines within parentheses (such as in a multi-line function call) are now uniformly indented to match the opening paren, even if that would result in code extending past the right margin.", "commit_aliases": ["382ceffdf", "81f056c72", "8ff6d4ec7", "c7b8998eb", "cea258b63", "e3860ffa4"], "source_commits": ["382ceffdf", "81f056c72", "8ff6d4ec7", "c7b8998eb", "cea258b63", "e3860ffa4"], "source_entry_id": "10.0/changes/130", "db_id": "10fe19946356161a27bd03dc15ffd7e9", "patch_ids": ["2100606ce8fbac772f0eafeb188fde5b", "7950068523801c6e32ac24e8df4bc369", "9410b07d903a833d0e1f168555108266", "a8b7b250a6cb7515596de23ce1052812", "aae3693b5aa518b67b8d4c393607c3b5", "b5fe90ec88e01f9ca9c6b60cc558d7ab"], "statement_hash": "bc18a95d0763bb980b3202488b0040051aec1f3d2a94deccc75d4d2bda69423a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-41d6908946396e6b", "migration": false}, {"id": "10.0-f25c70339de5cd7e", "cves": [], "html": "<p>\u5141\u8bb8\u9009\u62e9\u4f7f\u7528 <a href=\"/docs/10/install-procedure.html#CONFIGURE\" title=\"\u914d\u7f6e\"><acronym>ICU</acronym></a> \u5e93\u63d0\u4f9b\u6392\u5e8f\u89c4\u5219\u652f\u6301\uff08Peter Eisentraut\uff09</p>\n<p><acronym>ICU</acronym> \u5e93\u5177\u6709\u7248\u672c\u4fe1\u606f\uff0c\u53ef\u4ee5\u68c0\u6d4b\u7248\u672c\u4e4b\u95f4\u7684\u6392\u5e8f\u89c4\u5219\u53d8\u66f4\u3002\u901a\u8fc7 configure \u9009\u9879 <code>--with-icu</code> \u53ef\u542f\u7528\u6b64\u529f\u80fd\u3002\u9ed8\u8ba4\u4ecd\u4f7f\u7528\u64cd\u4f5c\u7cfb\u7edf\u7684\u539f\u751f\u6392\u5e8f\u89c4\u5219\u5e93\u3002</p>", "text": "\u5141\u8bb8\u9009\u62e9\u4f7f\u7528 ICU \u5e93\u63d0\u4f9b\u6392\u5e8f\u89c4\u5219\u652f\u6301\uff08Peter Eisentraut\uff09 ICU \u5e93\u5177\u6709\u7248\u672c\u4fe1\u606f\uff0c\u53ef\u4ee5\u68c0\u6d4b\u7248\u672c\u4e4b\u95f4\u7684\u6392\u5e8f\u89c4\u5219\u53d8\u66f4\u3002\u901a\u8fc7 configure \u9009\u9879 --with-icu \u53ef\u542f\u7528\u6b64\u529f\u80fd\u3002\u9ed8\u8ba4\u4ecd\u4f7f\u7528\u64cd\u4f5c\u7cfb\u7edf\u7684\u539f\u751f\u6392\u5e8f\u89c4\u5219\u5e93\u3002", "title": "\u5141\u8bb8\u9009\u62e9\u4f7f\u7528 ICU \u5e93\u63d0\u4f9b\u6392\u5e8f\u89c4\u5219\u652f\u6301", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "d3ff775176a8ec20f723e73ee0514784246cd6e0594780456fdda9daf931e36b", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["eccfef81e"]], "identity_text": "Allow the ICU library to optionally be used for collation support (Peter Eisentraut) The ICU library has versioning that allows detection of collation changes between versions. It is enabled via configure option --with-icu. The default still uses the operating system's native collation library.", "commit_aliases": ["eccfef81e"], "source_commits": ["eccfef81e"], "source_entry_id": "10.0/changes/131", "db_id": "2dd76aeffa4b9fe62a2a14955035ccdf", "patch_ids": ["88c3364cdac7d9b39b878cbe3bbb972a"], "statement_hash": "a1d521e41e24d3e76c62ef7f580fb5a23c9d094ff9f3e38d4ba62aeae506f58b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-f25c70339de5cd7e", "migration": false}, {"id": "10.0-d56aa6456920f4a4", "cves": [], "html": "<p>\u5728 <span>Windows</span> \u4e0a\uff0c\u81ea\u52a8\u5c06\u6240\u6709 <a href=\"/docs/10/xfunc-c.html\" title=\"37.9.\u00a0C \u8bed\u8a00\u51fd\u6570\"><code>PG_FUNCTION_INFO_V1</code></a> \u51fd\u6570\u6807\u8bb0\u4e3a <code>DLLEXPORT</code>\uff08Laurenz Albe\uff09</p>\n<p>\u5982\u679c\u7b2c\u4e09\u65b9\u4ee3\u7801\u4f7f\u7528 <code>extern</code> \u51fd\u6570\u58f0\u660e\uff0c\u4e5f\u5e94\u5728\u8fd9\u4e9b\u58f0\u660e\u4e2d\u6dfb\u52a0 <code>DLLEXPORT</code> \u6807\u8bb0\u3002</p>", "text": "\u5728 Windows \u4e0a\uff0c\u81ea\u52a8\u5c06\u6240\u6709 PG_FUNCTION_INFO_V1 \u51fd\u6570\u6807\u8bb0\u4e3a DLLEXPORT\uff08Laurenz Albe\uff09 \u5982\u679c\u7b2c\u4e09\u65b9\u4ee3\u7801\u4f7f\u7528 extern \u51fd\u6570\u58f0\u660e\uff0c\u4e5f\u5e94\u5728\u8fd9\u4e9b\u58f0\u660e\u4e2d\u6dfb\u52a0 DLLEXPORT \u6807\u8bb0\u3002", "title": "\u5728 Windows \u4e0a\uff0c\u81ea\u52a8\u5c06\u6240\u6709 PG_FUNCTION_INFO_V1 \u51fd\u6570\u6807\u8bb0\u4e3a DLLEXPORT", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "b0d04ecf5b2f3f08d0ac25a28dc30b5c56f0ec10fda4e027ae9c2b2276d7b5c9", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["c8ead2a39"]], "identity_text": "Automatically mark all PG_FUNCTION_INFO_V1 functions as DLLEXPORT-ed on Windows (Laurenz Albe) If third-party code is using extern function declarations, they should also add DLLEXPORT markers to those declarations.", "commit_aliases": ["c8ead2a39"], "source_commits": ["c8ead2a39"], "source_entry_id": "10.0/changes/132", "db_id": "795fd888a3c79952d3c1f9bae8fd64e0", "patch_ids": ["73f3576624d2a4523db3a25e43604426"], "statement_hash": "85edcf68bea1e6bfdd78c83a39724778e5e934b6d7d63329b24a8ba49e5c94e9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d56aa6456920f4a4", "migration": false}, {"id": "10.0-6958c322acd0b8d8", "cves": [], "html": "<p>\u79fb\u9664\u4e0d\u518d\u9700\u8981\u7684 <acronym>SPI</acronym> \u51fd\u6570 <code>SPI_push()</code>\u3001<code>SPI_pop()</code>\u3001<code>SPI_push_conditional()</code>\u3001<code>SPI_pop_conditional()</code> \u548c <code>SPI_restore_connection()</code>\uff08Tom Lane\uff09</p>\n<p>\u5b83\u4eec\u7684\u529f\u80fd\u73b0\u5728\u4f1a\u81ea\u52a8\u6267\u884c\u3002\u76ee\u524d\u63d0\u4f9b\u4e86\u8fd9\u4e9b\u540d\u79f0\u7684\u7a7a\u64cd\u4f5c\u5b8f\uff0c\u4f7f\u5916\u90e8\u6a21\u5757\u4e0d\u5fc5\u7acb\u5373\u66f4\u65b0\uff0c\u4f46\u6700\u7ec8\u5e94\u79fb\u9664\u8fd9\u4e9b\u8c03\u7528\u3002</p>\n<p>\u6b64\u53d8\u66f4\u7684\u4e00\u4e2a\u9644\u5e26\u5f71\u54cd\u662f\uff0c<code>SPI_palloc()</code> \u53ca\u76f8\u5173\u51fd\u6570\u73b0\u5728\u8981\u6c42\u5b58\u5728\u6d3b\u52a8\u7684 SPI \u8fde\u63a5\uff1b\u6ca1\u6709\u8fde\u63a5\u65f6\uff0c\u5b83\u4eec\u4e0d\u4f1a\u9000\u5316\u4e3a\u7b80\u5355\u7684 <code>palloc()</code> \u8c03\u7528\u3002\u4ee5\u524d\u7684\u884c\u4e3a\u7528\u9014\u4e0d\u5927\uff0c\u8fd8\u5b58\u5728\u610f\u5916\u5185\u5b58\u6cc4\u6f0f\u7684\u98ce\u9669\u3002</p>", "text": "\u79fb\u9664\u4e0d\u518d\u9700\u8981\u7684 SPI \u51fd\u6570 SPI_push()\u3001SPI_pop()\u3001SPI_push_conditional()\u3001SPI_pop_conditional() \u548c SPI_restore_connection()\uff08Tom Lane\uff09 \u5b83\u4eec\u7684\u529f\u80fd\u73b0\u5728\u4f1a\u81ea\u52a8\u6267\u884c\u3002\u76ee\u524d\u63d0\u4f9b\u4e86\u8fd9\u4e9b\u540d\u79f0\u7684\u7a7a\u64cd\u4f5c\u5b8f\uff0c\u4f7f\u5916\u90e8\u6a21\u5757\u4e0d\u5fc5\u7acb\u5373\u66f4\u65b0\uff0c\u4f46\u6700\u7ec8\u5e94\u79fb\u9664\u8fd9\u4e9b\u8c03\u7528\u3002 \u6b64\u53d8\u66f4\u7684\u4e00\u4e2a\u9644\u5e26\u5f71\u54cd\u662f\uff0cSPI_palloc() \u53ca\u76f8\u5173\u51fd\u6570\u73b0\u5728\u8981\u6c42\u5b58\u5728\u6d3b\u52a8\u7684 SPI \u8fde\u63a5\uff1b\u6ca1\u6709\u8fde\u63a5\u65f6\uff0c\u5b83\u4eec\u4e0d\u4f1a\u9000\u5316\u4e3a\u7b80\u5355\u7684 palloc() \u8c03\u7528\u3002\u4ee5\u524d\u7684\u884c\u4e3a\u7528\u9014\u4e0d\u5927\uff0c\u8fd8\u5b58\u5728\u610f\u5916\u5185\u5b58\u6cc4\u6f0f\u7684\u98ce\u9669\u3002", "title": "\u79fb\u9664\u4e0d\u518d\u9700\u8981\u7684 SPI \u51fd\u6570 SPI_push()\u3001SPI_pop()\u3001SPI_push_conditional()\u3001SPI_pop_conditional() \u548c SPI_restore_connection()", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "af1feb468d65e43eaae74430689b2bd95c6e7873b8bd22fa1fa5b051cde309d6", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["1833f1a1c"]], "identity_text": "Remove SPI functions SPI_push(), SPI_pop(), SPI_push_conditional(), SPI_pop_conditional(), and SPI_restore_connection() as unnecessary (Tom Lane) Their functionality now happens automatically. There are now no-op macros by these names so that external modules don't need to be updated immediately, but eventually such calls should be removed. A side effect of this change is that SPI_palloc() and allied functions now require an active SPI connection; they do not degenerate to simple palloc() if there is none. That previous behavior was not very useful and posed risks of unexpected memory leaks.", "commit_aliases": ["1833f1a1c"], "source_commits": ["1833f1a1c"], "source_entry_id": "10.0/changes/133", "db_id": "68b78bbf329a0ee1c7fe8f3cf5b786cd", "patch_ids": ["55ea473e088c23669e69cd381a34fddd"], "statement_hash": "d400beae7b0ce068dd086ee786c4b966e7136924c1422dcaf2a8af409e9adfe8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-6958c322acd0b8d8", "migration": false}, {"id": "10.0-d0c412a4780827f4", "cves": [], "html": "<p>\u5141\u8bb8\u52a8\u6001\u5206\u914d\u5171\u4eab\u5185\u5b58\uff08Thomas Munro\uff0cRobert Haas\uff09</p>", "text": "\u5141\u8bb8\u52a8\u6001\u5206\u914d\u5171\u4eab\u5185\u5b58\uff08Thomas Munro\uff0cRobert Haas\uff09", "title": "\u5141\u8bb8\u52a8\u6001\u5206\u914d\u5171\u4eab\u5185\u5b58", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "37292afe6ed3e499a9b7a659c505aeb66d3ab4b31d387204861e1b15a82bfcde", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["13df76a53"], ["13e14a78e"], ["e13029a5c"]], "identity_text": "Allow shared memory to be dynamically allocated (Thomas Munro, Robert Haas)", "commit_aliases": ["13df76a53", "13e14a78e", "e13029a5c"], "source_commits": ["13df76a53", "13e14a78e", "e13029a5c"], "source_entry_id": "10.0/changes/134", "db_id": "f1093432d52d470a69d6c0184595db8e", "patch_ids": ["2867c74a4fa5d04d48f0c4eeb23ad648", "4af035a182d046ee68ba3a54f58ee482", "a1538b1c7a0355a25388cd16011c7cc0"], "statement_hash": "c04f5f366d884f0dea17f559a7bfdda940d9e0e39dd0ed76015977eb059734cc", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d0c412a4780827f4", "migration": false}, {"id": "10.0-eca385fb2e1f626a", "cves": [], "html": "<p>\u589e\u52a0\u7c7b\u4f3c slab \u7684\u5185\u5b58\u5206\u914d\u5668\uff0c\u4ee5\u9ad8\u6548\u5206\u914d\u56fa\u5b9a\u5927\u5c0f\u7684\u5185\u5b58\uff08Tomas Vondra\uff09</p>", "text": "\u589e\u52a0\u7c7b\u4f3c slab \u7684\u5185\u5b58\u5206\u914d\u5668\uff0c\u4ee5\u9ad8\u6548\u5206\u914d\u56fa\u5b9a\u5927\u5c0f\u7684\u5185\u5b58\uff08Tomas Vondra\uff09", "title": "\u589e\u52a0\u7c7b\u4f3c slab \u7684\u5185\u5b58\u5206\u914d\u5668\uff0c\u4ee5\u9ad8\u6548\u5206\u914d\u56fa\u5b9a\u5927\u5c0f\u7684\u5185\u5b58", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "bugfix", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "bb0499f8ae416fb592ce3fdf92dcd2eab2ddc67cdc0937d8be326a6af9c5a574", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["58b25e981"]], "identity_text": "Add slab-like memory allocator for efficient fixed-size allocations (Tomas Vondra)", "commit_aliases": ["58b25e981"], "source_commits": ["58b25e981"], "source_entry_id": "10.0/changes/135", "db_id": "561b204bb681ade504e9679abb0868c7", "patch_ids": ["bcdbd738bf1aa07396379a70dd520cf1"], "statement_hash": "0cb8cdd20f35334707b1e570af3cf5e3ed21e2d27ee5018c3763f85c22c27fd0", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=10.0#10.0-eca385fb2e1f626a", "migration": false}, {"id": "10.0-afcdfc91161dc18a", "cves": [], "html": "<p>\u5728 <span>Linux</span> \u548c <span>FreeBSD</span> \u4e0a\u4f7f\u7528 <acronym>POSIX</acronym> \u4fe1\u53f7\u91cf\u4ee3\u66ff SysV \u4fe1\u53f7\u91cf\uff08Tom Lane\uff09</p>\n<p>\u8fd9\u907f\u514d\u4e86\u5e73\u53f0\u7279\u5b9a\u7684 SysV \u4fe1\u53f7\u91cf\u4f7f\u7528\u9650\u5236\u3002</p>", "text": "\u5728 Linux \u548c FreeBSD \u4e0a\u4f7f\u7528 POSIX \u4fe1\u53f7\u91cf\u4ee3\u66ff SysV \u4fe1\u53f7\u91cf\uff08Tom Lane\uff09 \u8fd9\u907f\u514d\u4e86\u5e73\u53f0\u7279\u5b9a\u7684 SysV \u4fe1\u53f7\u91cf\u4f7f\u7528\u9650\u5236\u3002", "title": "\u5728 Linux \u548c FreeBSD \u4e0a\u4f7f\u7528 POSIX \u4fe1\u53f7\u91cf\u4ee3\u66ff SysV \u4fe1\u53f7\u91cf", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "e34c8e0a8a69ccc49e2e60df049b7ed66bb220f3406109efc90a638a0628c3d8", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["ecb0d20a9"]], "identity_text": "Use POSIX semaphores rather than SysV semaphores on Linux and FreeBSD (Tom Lane) This avoids platform-specific limits on SysV semaphore usage.", "commit_aliases": ["ecb0d20a9"], "source_commits": ["ecb0d20a9"], "source_entry_id": "10.0/changes/136", "db_id": "67fd4c492be6e737138108d89e9cba10", "patch_ids": ["084bfaee3b45fabfcf3fb0abaf6cb0e4"], "statement_hash": "b53df938ff467af421c9300e5da3d647a23a201e7cc1ac9dd83c40715297ec7d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-afcdfc91161dc18a", "migration": false}, {"id": "10.0-8bc0d17e757cf12d", "cves": [], "html": "<p>\u6539\u8fdb\u5bf9 64 \u4f4d\u539f\u5b50\u64cd\u4f5c\u7684\u652f\u6301\uff08Andres Freund\uff09</p>", "text": "\u6539\u8fdb\u5bf9 64 \u4f4d\u539f\u5b50\u64cd\u4f5c\u7684\u652f\u6301\uff08Andres Freund\uff09", "title": "\u6539\u8fdb\u5bf9 64 \u4f4d\u539f\u5b50\u64cd\u4f5c\u7684\u652f\u6301", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "3240ae2ea8533db8bf6f77b07edb4b747cb5bbb51342da7a9ae343b6f9f7e9d2", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["e8fdbd58f"]], "identity_text": "Improve support for 64-bit atomics (Andres Freund)", "commit_aliases": ["e8fdbd58f"], "source_commits": ["e8fdbd58f"], "source_entry_id": "10.0/changes/137", "db_id": "7c1b4cb45ea942a84122ba9550fbe64d", "patch_ids": ["1548b9df0487121e828e40bbda43a7df"], "statement_hash": "aaca75bf86bdf362e87feb59eaade633c1d091a8237a78b1a4c32da1fbece78c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-8bc0d17e757cf12d", "migration": false}, {"id": "10.0-6721a82af375443c", "cves": [], "html": "<p>\u5728 <acronym>ARM64</acronym> \u4e0a\u542f\u7528 64 \u4f4d\u539f\u5b50\u64cd\u4f5c\uff08Roman Shaposhnik\uff09</p>", "text": "\u5728 ARM64 \u4e0a\u542f\u7528 64 \u4f4d\u539f\u5b50\u64cd\u4f5c\uff08Roman Shaposhnik\uff09", "title": "\u5728 ARM64 \u4e0a\u542f\u7528 64 \u4f4d\u539f\u5b50\u64cd\u4f5c", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "d82ef6613f9e6ef56696cc891f89d1b92334ced12da17e7a27649aec0def32c3", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["f8f1430ae"]], "identity_text": "Enable 64-bit atomic operations on ARM64 (Roman Shaposhnik)", "commit_aliases": ["f8f1430ae"], "source_commits": ["f8f1430ae"], "source_entry_id": "10.0/changes/138", "db_id": "39abd24526ba3d7fd3bbeffff1f3a35a", "patch_ids": ["87daa13e597655a77010780d812d1fb0"], "statement_hash": "b010b645b43e9cbb3a35ee98baa37ccfefb67aa72e3b76c12a1ae36b1bbb2c9c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-6721a82af375443c", "migration": false}, {"id": "10.0-fa6e5f69b1890cdb", "cves": [], "html": "<p>\u5982\u679c <code>clock_gettime()</code> \u53ef\u7528\uff0c\u5219\u6539\u7528\u5b83\u8fdb\u884c\u6301\u7eed\u65f6\u95f4\u6d4b\u91cf\uff08Tom Lane\uff09</p>\n<p>\u5982\u679c <code>clock_gettime()</code> \u4e0d\u53ef\u7528\uff0c\u4ecd\u4f7f\u7528 <code>gettimeofday()</code>\u3002</p>", "text": "\u5982\u679c clock_gettime() \u53ef\u7528\uff0c\u5219\u6539\u7528\u5b83\u8fdb\u884c\u6301\u7eed\u65f6\u95f4\u6d4b\u91cf\uff08Tom Lane\uff09 \u5982\u679c clock_gettime() \u4e0d\u53ef\u7528\uff0c\u4ecd\u4f7f\u7528 gettimeofday()\u3002", "title": "\u5982\u679c clock_gettime() \u53ef\u7528\uff0c\u5219\u6539\u7528\u5b83\u8fdb\u884c\u6301\u7eed\u65f6\u95f4\u6d4b\u91cf", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "b393d3945330d917ad6744194577653342188050fe2bd3901e094f8aa8d156c7", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["1d63f7d2d"]], "identity_text": "Switch to using clock_gettime(), if available, for duration measurements (Tom Lane) gettimeofday() is still used if clock_gettime() is not available.", "commit_aliases": ["1d63f7d2d"], "source_commits": ["1d63f7d2d"], "source_entry_id": "10.0/changes/139", "db_id": "410013829b9cdc23e19dff30f8c169f8", "patch_ids": ["15791fb4aec6ec4dd98b0b06aae140be"], "statement_hash": "a054998d4ff684de07e29636bc9819eaf10379eecd4b72c4bda29f1bd1789c0b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-fa6e5f69b1890cdb", "migration": false}, {"id": "10.0-1640e4d12b084b0b", "cves": [], "html": "<p>\u589e\u52a0\u66f4\u5065\u58ee\u7684\u968f\u673a\u6570\u751f\u6210\u5668\uff0c\u7528\u4e8e\u8981\u6c42\u5bc6\u7801\u5b66\u5b89\u5168\u6027\u7684\u573a\u666f\uff08Magnus Hagander\uff0cMichael Paquier\uff0cHeikki Linnakangas\uff09</p>\n<p>\u5982\u679c\u627e\u4e0d\u5230\u5f3a\u968f\u673a\u6570\u751f\u6210\u5668\uff0c<a href=\"/docs/10/install-procedure.html#CONFIGURE\" title=\"\u914d\u7f6e\">configure</a> \u4f1a\u5931\u8d25\uff0c\u9664\u975e\u4f7f\u7528 <code>--disable-strong-random</code> \u9009\u9879\u3002\u4f46\u662f\uff0c\u4f7f\u7528\u6b64\u9009\u9879\u65f6\uff0c\u9700\u8981\u5f3a\u968f\u673a\u6570\u751f\u6210\u5668\u7684<a href=\"/docs/10/pgcrypto.html\" title=\"F.26.\u00a0pgcrypto\"><span>pgcrypto</span></a>\u51fd\u6570\u4f1a\u88ab\u7981\u7528\u3002</p>", "text": "\u589e\u52a0\u66f4\u5065\u58ee\u7684\u968f\u673a\u6570\u751f\u6210\u5668\uff0c\u7528\u4e8e\u8981\u6c42\u5bc6\u7801\u5b66\u5b89\u5168\u6027\u7684\u573a\u666f\uff08Magnus Hagander\uff0cMichael Paquier\uff0cHeikki Linnakangas\uff09 \u5982\u679c\u627e\u4e0d\u5230\u5f3a\u968f\u673a\u6570\u751f\u6210\u5668\uff0cconfigure \u4f1a\u5931\u8d25\uff0c\u9664\u975e\u4f7f\u7528 --disable-strong-random \u9009\u9879\u3002\u4f46\u662f\uff0c\u4f7f\u7528\u6b64\u9009\u9879\u65f6\uff0c\u9700\u8981\u5f3a\u968f\u673a\u6570\u751f\u6210\u5668\u7684pgcrypto\u51fd\u6570\u4f1a\u88ab\u7981\u7528\u3002", "title": "\u589e\u52a0\u66f4\u5065\u58ee\u7684\u968f\u673a\u6570\u751f\u6210\u5668\uff0c\u7528\u4e8e\u8981\u6c42\u5bc6\u7801\u5b66\u5b89\u5168\u6027\u7684\u573a\u666f", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "d5e71fa7ba6936aa8bdcf996dd5be513a0637a46f395fe0769691d7b4f40dff9", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["bf723a274"], ["fe0a0b599"]], "identity_text": "Add more robust random number generators to be used for cryptographically secure uses (Magnus Hagander, Michael Paquier, Heikki Linnakangas) If no strong random number generator can be found, configure will fail unless the --disable-strong-random option is used. However, with this option, pgcrypto functions requiring a strong random number generator will be disabled.", "commit_aliases": ["bf723a274", "fe0a0b599"], "source_commits": ["bf723a274", "fe0a0b599"], "source_entry_id": "10.0/changes/140", "db_id": "1c92f1cae86566643291bc0f4a1834e1", "patch_ids": ["4e9b2d3005a4fcca05e38c1a3bcd0e19", "8a18a0c67fc324e36769a97374bc6785"], "statement_hash": "472153b9779fd2e20ba7c4f1b1fded4c24e20c0ce664afdc11129889d96b6e01", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-1640e4d12b084b0b", "migration": false}, {"id": "10.0-0bc4bdfa08d9c897", "cves": [], "html": "<p>\u5141\u8bb8 <code>WaitLatchOrSocket()</code> \u5728 Windows \u4e0a\u7b49\u5f85\u5957\u63a5\u5b57\u8fde\u63a5\uff08Andres Freund\uff09</p>", "text": "\u5141\u8bb8 WaitLatchOrSocket() \u5728 Windows \u4e0a\u7b49\u5f85\u5957\u63a5\u5b57\u8fde\u63a5\uff08Andres Freund\uff09", "title": "\u5141\u8bb8 WaitLatchOrSocket() \u5728 Windows \u4e0a\u7b49\u5f85\u5957\u63a5\u5b57\u8fde\u63a5", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "e967664870a8e02db365a66b24eed22e9217ca39d78bb967c9ff7a3552882552", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["d7ab908fb"]], "identity_text": "Allow WaitLatchOrSocket() to wait for socket connection on Windows (Andres Freund)", "commit_aliases": ["d7ab908fb"], "source_commits": ["d7ab908fb"], "source_entry_id": "10.0/changes/141", "db_id": "eff62035a12c1fc4955a7dfd4ed4dd03", "patch_ids": ["bd7c0a25ccf2210e9200ba8a8ac369b9"], "statement_hash": "7fede98170b540a2dc411d35f1204a9282b324f9d10faefbeb2abe4cecc2b46c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-0bc4bdfa08d9c897", "migration": false}, {"id": "10.0-c961fb31bca283d4", "cves": [], "html": "<p><code>tupconvert.c</code> \u4e2d\u7684\u51fd\u6570\u4e0d\u518d\u4ec5\u4e3a\u5d4c\u5165\u4e0d\u540c\u7684\u590d\u5408\u7c7b\u578b OID \u800c\u8f6c\u6362\u5143\u7ec4\uff08Ashutosh Bapat\uff0cTom Lane\uff09</p>\n<p>\u5927\u591a\u6570\u8c03\u7528\u8005\u5e76\u4e0d\u5173\u5fc3\u590d\u5408\u7c7b\u578b OID\uff1b\u4f46\u5982\u679c\u7ed3\u679c\u5143\u7ec4\u8981\u4f5c\u4e3a\u590d\u5408 Datum \u4f7f\u7528\uff0c\u5c31\u5e94\u91c7\u53d6\u63aa\u65bd\u786e\u4fdd\u5176\u4e2d\u63d2\u5165\u4e86\u6b63\u786e\u7684 OID\u3002</p>", "text": "tupconvert.c \u4e2d\u7684\u51fd\u6570\u4e0d\u518d\u4ec5\u4e3a\u5d4c\u5165\u4e0d\u540c\u7684\u590d\u5408\u7c7b\u578b OID \u800c\u8f6c\u6362\u5143\u7ec4\uff08Ashutosh Bapat\uff0cTom Lane\uff09 \u5927\u591a\u6570\u8c03\u7528\u8005\u5e76\u4e0d\u5173\u5fc3\u590d\u5408\u7c7b\u578b OID\uff1b\u4f46\u5982\u679c\u7ed3\u679c\u5143\u7ec4\u8981\u4f5c\u4e3a\u590d\u5408 Datum \u4f7f\u7528\uff0c\u5c31\u5e94\u91c7\u53d6\u63aa\u65bd\u786e\u4fdd\u5176\u4e2d\u63d2\u5165\u4e86\u6b63\u786e\u7684 OID\u3002", "title": "tupconvert.c \u4e2d\u7684\u51fd\u6570\u4e0d\u518d\u4ec5\u4e3a\u5d4c\u5165\u4e0d\u540c\u7684\u590d\u5408\u7c7b\u578b OID \u800c\u8f6c\u6362\u5143\u7ec4", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "46851bae694966ab8c64b9854def6e46d6319c192c0289347da566dd3fb55401", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["3f902354b"]], "identity_text": "tupconvert.c functions no longer convert tuples just to embed a different composite-type OID in them (Ashutosh Bapat, Tom Lane) The majority of callers don't care about the composite-type OID; but if the result tuple is to be used as a composite Datum, steps should be taken to make sure the correct OID is inserted in it.", "commit_aliases": ["3f902354b"], "source_commits": ["3f902354b"], "source_entry_id": "10.0/changes/142", "db_id": "c9ee644935bd1464b6c4973c22fe5c6c", "patch_ids": ["4c11e8b1f650a039dbd1c16000158818"], "statement_hash": "d3a71f777e28aa98349a8349f7d2d901289e5bffaa30421cbba4ee807cb00286", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-c961fb31bca283d4", "migration": false}, {"id": "10.0-6285e757542ca0ea", "cves": [], "html": "<p>\u79fb\u9664 <span>SCO</span> \u548c <span>Unixware</span> \u79fb\u690d\u7248\u672c\uff08Tom Lane\uff09</p>", "text": "\u79fb\u9664 SCO \u548c Unixware \u79fb\u690d\u7248\u672c\uff08Tom Lane\uff09", "title": "\u79fb\u9664 SCO \u548c Unixware \u79fb\u690d\u7248\u672c", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "de7f509d9d384822b70664639559d361836281d9296afeeaefd255285cbf6ce6", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["2b860f52e"]], "identity_text": "Remove SCO and Unixware ports (Tom Lane)", "commit_aliases": ["2b860f52e"], "source_commits": ["2b860f52e"], "source_entry_id": "10.0/changes/143", "db_id": "8ad0076f205b24c51796e5c92c35e05d", "patch_ids": ["49a683eac2eba8fd00ddd7523db71532"], "statement_hash": "5e31a79465f3cfddd710fbba88532425f4606ab9bfd9157806eea0f7529b5ddb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-6285e757542ca0ea", "migration": false}, {"id": "10.0-1bc8bc664555eff6", "cves": [], "html": "<p>\u5168\u9762\u6539\u8fdb\u6587\u6863<a href=\"/docs/10/docguide-toolsets.html\" title=\"J.2.\u00a0\u5de5\u5177\u96c6\">\u6784\u5efa\u8fc7\u7a0b</a>\uff08Alexander Lakhin\uff09</p>", "text": "\u5168\u9762\u6539\u8fdb\u6587\u6863\u6784\u5efa\u8fc7\u7a0b\uff08Alexander Lakhin\uff09", "title": "\u5168\u9762\u6539\u8fdb\u6587\u6863\u6784\u5efa\u8fc7\u7a0b", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "57725a71ef861d0e76430bce113e09cbd3d9fdb516997a83969599146d0399e6", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["0e4cc1fc5"], ["e8306745e"]], "identity_text": "Overhaul documentation build process (Alexander Lakhin)", "commit_aliases": ["0e4cc1fc5", "e8306745e"], "source_commits": ["0e4cc1fc5", "e8306745e"], "source_entry_id": "10.0/changes/144", "db_id": "bb11ece57c7964a6737dbe2822911d61", "patch_ids": ["57208305002469e2c54b3577a205dd32", "92bf289c2140166aa84092becb21b71a"], "statement_hash": "d1353f9fc3a27b80f038964572801d35ec41740dca2d9b1b861193a97cb16064", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-1bc8bc664555eff6", "migration": false}, {"id": "10.0-57b3c48d61005c65", "cves": [], "html": "<p>\u4f7f\u7528 <acronym>XSLT</acronym> \u6784\u5efa <span>PostgreSQL</span> \u6587\u6863\uff08Peter Eisentraut\uff09</p>\n<p>\u4ee5\u524d\u4f7f\u7528\u7684\u662f <span>Jade</span>\u3001<acronym>DSSSL</acronym> \u548c <span>JadeTex</span>\u3002</p>", "text": "\u4f7f\u7528 XSLT \u6784\u5efa PostgreSQL \u6587\u6863\uff08Peter Eisentraut\uff09 \u4ee5\u524d\u4f7f\u7528\u7684\u662f Jade\u3001DSSSL \u548c JadeTex\u3002", "title": "\u4f7f\u7528 XSLT \u6784\u5efa PostgreSQL \u6587\u6863", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "9b3923cb02ce04cdbdbef8238fefd79a2fa4b5642dafc6e83d8ea82bbc1382de", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["510074f9f"]], "identity_text": "Use XSLT to build the PostgreSQL documentation (Peter Eisentraut) Previously Jade, DSSSL, and JadeTex were used.", "commit_aliases": ["510074f9f"], "source_commits": ["510074f9f"], "source_entry_id": "10.0/changes/145", "db_id": "cfdb2a0ed737fbc3af05dce9249de39c", "patch_ids": ["d059a2cbf581790dfe6072df82c3a8ce"], "statement_hash": "4301cc4736c1b61c1ef6718a14cc95a976041903c30e3cf4cec7029d1407f2d0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-57b3c48d61005c65", "migration": false}, {"id": "10.0-6f871e67a0d30c77", "cves": [], "html": "<p>\u9ed8\u8ba4\u4f7f\u7528 <acronym>XSLT</acronym> \u6837\u5f0f\u8868\u6784\u5efa <acronym>HTML</acronym> \u6587\u6863\uff08Peter Eisentraut\uff09</p>", "text": "\u9ed8\u8ba4\u4f7f\u7528 XSLT \u6837\u5f0f\u8868\u6784\u5efa HTML \u6587\u6863\uff08Peter Eisentraut\uff09", "title": "\u9ed8\u8ba4\u4f7f\u7528 XSLT \u6837\u5f0f\u8868\u6784\u5efa HTML \u6587\u6863", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "5db4e6d685bd4098231626900fcbd6bc442857be18700a7638ddd7e810230ca5", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["e36ddab11"]], "identity_text": "Build HTML documentation using XSLT stylesheets by default (Peter Eisentraut)", "commit_aliases": ["e36ddab11"], "source_commits": ["e36ddab11"], "source_entry_id": "10.0/changes/146", "db_id": "c48548e792e12c508f7c69e1151b5050", "patch_ids": ["e05797f86eeb201a5debde062b28fd66"], "statement_hash": "365046a831659dfc8ac03174346fa56a10499a03666e57bda12bdbd703d19176", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-6f871e67a0d30c77", "migration": false}, {"id": "10.0-eb8516574b792681", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/10/file-fdw.html\" title=\"F.15.\u00a0file_fdw\"><span>file_fdw</span></a>\u8bfb\u53d6\u7a0b\u5e8f\u8f93\u51fa\u4ee5\u53ca\u6587\u4ef6\uff08Corey Huinker\uff0cAdam Gomaa\uff09</p>", "text": "\u5141\u8bb8file_fdw\u8bfb\u53d6\u7a0b\u5e8f\u8f93\u51fa\u4ee5\u53ca\u6587\u4ef6\uff08Corey Huinker\uff0cAdam Gomaa\uff09", "title": "\u5141\u8bb8file_fdw\u8bfb\u53d6\u7a0b\u5e8f\u8f93\u51fa\u4ee5\u53ca\u6587\u4ef6", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "1905cd86ce88ef40eae0a2661e191ea570c4d2791bfb9b67ce2041a6a17f4e7a", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["8e91e12bc"]], "identity_text": "Allow file_fdw to read from program output as well as files (Corey Huinker, Adam Gomaa)", "commit_aliases": ["8e91e12bc"], "source_commits": ["8e91e12bc"], "source_entry_id": "10.0/changes/147", "db_id": "15d18069ea633b397d4df770f4532e00", "patch_ids": ["52e44c8bcf6c6bc442e93a3cf4d716d3"], "statement_hash": "bd6502caea4c6328e14909aa97158a944b7e4b2c5f0e01f60fced6ded4e38c8e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-eb8516574b792681", "migration": false}, {"id": "10.0-8cc755b708bb47aa", "cves": [], "html": "<p>\u5728<a href=\"/docs/10/postgres-fdw.html\" title=\"F.34.\u00a0postgres_fdw\"><span>postgres_fdw</span></a>\u4e2d\uff0c\u5c3d\u53ef\u80fd\u5c06\u805a\u5408\u51fd\u6570\u4e0b\u63a8\u5230\u8fdc\u7a0b\u670d\u52a1\u5668\uff08Jeevan Chalke\uff0cAshutosh Bapat\uff09</p>\n<p>\u8fd9\u51cf\u5c11\u4e86\u5fc5\u987b\u4ece\u8fdc\u7a0b\u670d\u52a1\u5668\u4f20\u8f93\u7684\u6570\u636e\u91cf\uff0c\u5e76\u5c06\u805a\u5408\u8ba1\u7b97\u4ece\u53d1\u51fa\u8bf7\u6c42\u7684\u670d\u52a1\u5668\u8f6c\u79fb\u51fa\u53bb\u3002</p>", "text": "\u5728postgres_fdw\u4e2d\uff0c\u5c3d\u53ef\u80fd\u5c06\u805a\u5408\u51fd\u6570\u4e0b\u63a8\u5230\u8fdc\u7a0b\u670d\u52a1\u5668\uff08Jeevan Chalke\uff0cAshutosh Bapat\uff09 \u8fd9\u51cf\u5c11\u4e86\u5fc5\u987b\u4ece\u8fdc\u7a0b\u670d\u52a1\u5668\u4f20\u8f93\u7684\u6570\u636e\u91cf\uff0c\u5e76\u5c06\u805a\u5408\u8ba1\u7b97\u4ece\u53d1\u51fa\u8bf7\u6c42\u7684\u670d\u52a1\u5668\u8f6c\u79fb\u51fa\u53bb\u3002", "title": "\u5728postgres_fdw\u4e2d\uff0c\u5c3d\u53ef\u80fd\u5c06\u805a\u5408\u51fd\u6570\u4e0b\u63a8\u5230\u8fdc\u7a0b\u670d\u52a1\u5668", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "1624bfd6730ef0844987ce6ea96233017480c47dc58d8548848736334f3c865f", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["7012b132d"]], "identity_text": "In postgres_fdw, push aggregate functions to the remote server, when possible (Jeevan Chalke, Ashutosh Bapat) This reduces the amount of data that must be passed from the remote server, and offloads aggregate computation from the requesting server.", "commit_aliases": ["7012b132d"], "source_commits": ["7012b132d"], "source_entry_id": "10.0/changes/148", "db_id": "c7445fdf368503e63d5735c24970e6ca", "patch_ids": ["78d1e323d4a11dcac96aa3de56fdc16b"], "statement_hash": "f5c8125e67109d418b0abfe977124bafffb121be4691f9e89e5b7dd4c4d99734", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-8cc755b708bb47aa", "migration": false}, {"id": "10.0-28c602f6f7edf4e6", "cves": [], "html": "<p>\u5728 <span>postgres_fdw</span> \u4e2d\uff0c\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u5c06\u8fde\u63a5\u4e0b\u63a8\u5230\u8fdc\u7a0b\u670d\u52a1\u5668\uff08David Rowley\uff0cAshutosh Bapat\uff0cEtsuro Fujita\uff09</p>", "text": "\u5728 postgres_fdw \u4e2d\uff0c\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u5c06\u8fde\u63a5\u4e0b\u63a8\u5230\u8fdc\u7a0b\u670d\u52a1\u5668\uff08David Rowley\uff0cAshutosh Bapat\uff0cEtsuro Fujita\uff09", "title": "\u5728 postgres_fdw \u4e2d\uff0c\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u5c06\u8fde\u63a5\u4e0b\u63a8\u5230\u8fdc\u7a0b\u670d\u52a1\u5668", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "7dab5c745436fb0745c9b880536efb10a2a3283fb07fe7bd25c5dbb7cf7685d3", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["332bec1e6", "86e640a69"], ["b30fb56b0"]], "identity_text": "In postgres_fdw, push joins to the remote server in more cases (David Rowley, Ashutosh Bapat, Etsuro Fujita)", "commit_aliases": ["332bec1e6", "86e640a69", "b30fb56b0"], "source_commits": ["332bec1e6", "b30fb56b0"], "source_entry_id": "10.0/changes/149", "db_id": "1d7034dc922b3a8fd90e30724c91151d", "patch_ids": ["23a98917619479129e61580372563863", "5fcdc899bd07d93e4195463e31689714"], "statement_hash": "ffcae5e7f6503e4cfb49bcb1add8a4fb3a3605b362a5b8eff859479926a04340", "relations": [{"rule": 2, "type": "related", "target": "a43973256957179239a0c08258d4eebd", "evidence": {"same_day": false, "patch_ids": ["23a98917619479129e61580372563863"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-28c602f6f7edf4e6", "migration": false}, {"id": "10.0-657aae9a68aab6a1", "cves": [], "html": "<p>\u6b63\u786e\u652f\u6301 <span>postgres_fdw</span> \u8868\u4e2d\u7684 <code>OID</code> \u5217\uff08Etsuro Fujita\uff09</p>\n<p>\u4ee5\u524d\uff0c<code>OID</code> \u5217\u59cb\u7ec8\u8fd4\u56de\u96f6\u3002</p>", "text": "\u6b63\u786e\u652f\u6301 postgres_fdw \u8868\u4e2d\u7684 OID \u5217\uff08Etsuro Fujita\uff09 \u4ee5\u524d\uff0cOID \u5217\u59cb\u7ec8\u8fd4\u56de\u96f6\u3002", "title": "\u6b63\u786e\u652f\u6301 postgres_fdw \u8868\u4e2d\u7684 OID \u5217", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "b1cba5690fadc843ca18affa95d586147d44f10998f1d036b6cde082dc181394", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["ae025a159"]], "identity_text": "Properly support OID columns in postgres_fdw tables (Etsuro Fujita) Previously OID columns always returned zeros.", "commit_aliases": ["ae025a159"], "source_commits": ["ae025a159"], "source_entry_id": "10.0/changes/150", "db_id": "d4e2bf78986d1b356897b75fb8a7371b", "patch_ids": ["d65f58beaade80aff704a4c71dcbe649"], "statement_hash": "68fb44b180b2b3cb6871ae569626c33c54dfe0ae818a039d5ec8793c2542af45", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-657aae9a68aab6a1", "migration": false}, {"id": "10.0-5c615a8e542b3a6f", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/10/btree-gist.html\" title=\"F.7.\u00a0btree_gist\"><span>btree_gist</span></a>\u548c<a href=\"/docs/10/btree-gin.html\" title=\"F.6.\u00a0btree_gin\"><span>btree_gin</span></a>\u4e3a\u679a\u4e3e\u7c7b\u578b\u5efa\u7acb\u7d22\u5f15\uff08Andrew Dunstan\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u5728\u6392\u4ed6\u7ea6\u675f\u4e2d\u4f7f\u7528\u679a\u4e3e\u3002</p>", "text": "\u5141\u8bb8btree_gist\u548cbtree_gin\u4e3a\u679a\u4e3e\u7c7b\u578b\u5efa\u7acb\u7d22\u5f15\uff08Andrew Dunstan\uff09 \u8fd9\u5141\u8bb8\u5728\u6392\u4ed6\u7ea6\u675f\u4e2d\u4f7f\u7528\u679a\u4e3e\u3002", "title": "\u5141\u8bb8btree_gist\u548cbtree_gin\u4e3a\u679a\u4e3e\u7c7b\u578b\u5efa\u7acb\u7d22\u5f15", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "531faee6748551214152051a2923a84389ea84e88de15ae1c498245b0e0e9495", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["f7946a92b"]], "identity_text": "Allow btree_gist and btree_gin to index enum types (Andrew Dunstan) This allows enums to be used in exclusion constraints.", "commit_aliases": ["f7946a92b"], "source_commits": ["f7946a92b"], "source_entry_id": "10.0/changes/151", "db_id": "a89b74fcdf31b1e59c99ea89ccd55c9b", "patch_ids": ["cd6b6d01da41d48612f8236424ce72f8"], "statement_hash": "d95978f3bdc857784360087f3c6960ff46fb3fd08caab20ae4dcf4e072f58d5a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-5c615a8e542b3a6f", "migration": false}, {"id": "10.0-f60089772ab8ecc3", "cves": [], "html": "<p>\u4e3a <span>btree_gist</span> \u589e\u52a0\u5bf9 <code>UUID</code> \u6570\u636e\u7c7b\u578b\u7684\u7d22\u5f15\u652f\u6301\uff08Paul Jungwirth\uff09</p>", "text": "\u4e3a btree_gist \u589e\u52a0\u5bf9 UUID \u6570\u636e\u7c7b\u578b\u7684\u7d22\u5f15\u652f\u6301\uff08Paul Jungwirth\uff09", "title": "\u4e3a btree_gist \u589e\u52a0\u5bf9 UUID \u6570\u636e\u7c7b\u578b\u7684\u7d22\u5f15\u652f\u6301", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "f0b29d24f3f52d6233f42817b5b98bc76c7528a751f5fc44fdd01fb44524c98c", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["11da83a0e"]], "identity_text": "Add indexing support to btree_gist for the UUID data type (Paul Jungwirth)", "commit_aliases": ["11da83a0e"], "source_commits": ["11da83a0e"], "source_entry_id": "10.0/changes/152", "db_id": "52666d71271940a1fd5332685440fea7", "patch_ids": ["6f7508703208439b5b8e118fcf49e5f4"], "statement_hash": "d41c55993dd727a953150d1dff121c1efd60235f6796dd2ef010f04d0683b654", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-f60089772ab8ecc3", "migration": false}, {"id": "10.0-7aee69c79a86ad82", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/10/amcheck.html\" title=\"F.2.\u00a0amcheck\"><span>amcheck</span></a>\uff0c\u7528\u4e8e\u68c0\u67e5 B-\u6811\u7d22\u5f15\u7684\u6709\u6548\u6027\uff08Peter Geoghegan\uff09</p>", "text": "\u589e\u52a0amcheck\uff0c\u7528\u4e8e\u68c0\u67e5 B-\u6811\u7d22\u5f15\u7684\u6709\u6548\u6027\uff08Peter Geoghegan\uff09", "title": "\u589e\u52a0amcheck\uff0c\u7528\u4e8e\u68c0\u67e5 B-\u6811\u7d22\u5f15\u7684\u6709\u6548\u6027", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "7d922f8e1e290d16f22b1f297775b957d56e755ac219ad6891ebf17f16470755", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["3717dc149"]], "identity_text": "Add amcheck which can check the validity of B-tree indexes (Peter Geoghegan)", "commit_aliases": ["3717dc149"], "source_commits": ["3717dc149"], "source_entry_id": "10.0/changes/153", "db_id": "bd7217b53f67466a2680eb0f548b96ee", "patch_ids": ["754b9fc6d5a9b6c809ac06d84dd4da8a"], "statement_hash": "97989afc640ed19f4ee16a16f5f04ca86eddf2a7d75ccfc81d35aaf3cbef1300", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-7aee69c79a86ad82", "migration": false}, {"id": "10.0-1e70b13df4ed23a0", "cves": [], "html": "<p>\u5728<a href=\"/docs/10/pgstatstatements.html\" title=\"F.30.\u00a0pg_stat_statements\"><span>pg_stat_statements</span></a>\u4e2d\uff0c\u5c06\u88ab\u5ffd\u7565\u7684\u5e38\u91cf\u663e\u793a\u4e3a <code>$N</code>\uff0c\u800c\u975e <code>?</code>\uff08Lukas Fittl\uff09</p>", "text": "\u5728pg_stat_statements\u4e2d\uff0c\u5c06\u88ab\u5ffd\u7565\u7684\u5e38\u91cf\u663e\u793a\u4e3a $N\uff0c\u800c\u975e ?\uff08Lukas Fittl\uff09", "title": "\u5728pg_stat_statements\u4e2d\uff0c\u5c06\u88ab\u5ffd\u7565\u7684\u5e38\u91cf\u663e\u793a\u4e3a $N\uff0c\u800c\u975e ?", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "430e7d16969426eee4534f4169ceba49c9e191641775514d99071c824dc0c588", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["a6f22e835"]], "identity_text": "Show ignored constants as $N rather than ? in pg_stat_statements (Lukas Fittl)", "commit_aliases": ["a6f22e835"], "source_commits": ["a6f22e835"], "source_entry_id": "10.0/changes/154", "db_id": "b4ef3c02d6412727f3c89d07cf209859", "patch_ids": ["d56c0c41452d75f357b1e9d7a53c92b8"], "statement_hash": "510083ebd3388b8ca7bc66ffcb332db016f9a63eef31424d2a6f016647b92fb1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-1e70b13df4ed23a0", "migration": false}, {"id": "10.0-a20b8b9053da5316", "cves": [], "html": "<p>\u6539\u8fdb<a href=\"/docs/10/cube.html\" title=\"F.10.\u00a0cube\"><span>cube</span></a>\u5bf9\u96f6\u7ef4\u7acb\u65b9\u4f53\u7684\u5904\u7406\uff08Tom Lane\uff09</p>\n<p>\u8fd9\u4e5f\u6539\u8fdb\u4e86\u5bf9 <code>infinite</code> \u548c <code>NaN</code> \u503c\u7684\u5904\u7406\u3002</p>", "text": "\u6539\u8fdbcube\u5bf9\u96f6\u7ef4\u7acb\u65b9\u4f53\u7684\u5904\u7406\uff08Tom Lane\uff09 \u8fd9\u4e5f\u6539\u8fdb\u4e86\u5bf9 infinite \u548c NaN \u503c\u7684\u5904\u7406\u3002", "title": "\u6539\u8fdbcube\u5bf9\u96f6\u7ef4\u7acb\u65b9\u4f53\u7684\u5904\u7406", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "fd861cf9c83d5eec142200e3bf95851dae454760230ebbb474f156e41c2ac751", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["f31a931fa"]], "identity_text": "Improve cube's handling of zero-dimensional cubes (Tom Lane) This also improves handling of infinite and NaN values.", "commit_aliases": ["f31a931fa"], "source_commits": ["f31a931fa"], "source_entry_id": "10.0/changes/155", "db_id": "38979adb9647ff025f777fe93e4b0ef0", "patch_ids": ["c5fbb19252147112508e91dc8da25b9d"], "statement_hash": "d5c6f595f52bae661439811dee7965185716ffcfcd679a4af21df592f8cf4776", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-a20b8b9053da5316", "migration": false}, {"id": "10.0-daea52f6baa07c41", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/10/pgbuffercache.html\" title=\"F.25.\u00a0pg_buffercache\"><span>pg_buffercache</span></a>\u4f7f\u7528\u66f4\u5c11\u7684\u9501\u8fd0\u884c\uff08Ivan Kartyshov\uff09</p>\n<p>\u8fd9\u964d\u4f4e\u4e86\u5b83\u5728\u751f\u4ea7\u7cfb\u7edf\u4e0a\u8fd0\u884c\u65f6\u7684\u5e72\u6270\u3002</p>", "text": "\u5141\u8bb8pg_buffercache\u4f7f\u7528\u66f4\u5c11\u7684\u9501\u8fd0\u884c\uff08Ivan Kartyshov\uff09 \u8fd9\u964d\u4f4e\u4e86\u5b83\u5728\u751f\u4ea7\u7cfb\u7edf\u4e0a\u8fd0\u884c\u65f6\u7684\u5e72\u6270\u3002", "title": "\u5141\u8bb8pg_buffercache\u4f7f\u7528\u66f4\u5c11\u7684\u9501\u8fd0\u884c", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "add8df49b44b7fd981200e9472a36de2eebebbb0a10fb05ef392f833ba4c55de", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["6e654546f"]], "identity_text": "Allow pg_buffercache to run with fewer locks (Ivan Kartyshov) This makes it less disruptive when run on production systems.", "commit_aliases": ["6e654546f"], "source_commits": ["6e654546f"], "source_entry_id": "10.0/changes/156", "db_id": "0c07a3cbd638c9c4281b7b7348ae5534", "patch_ids": ["9ec97e8e42df4414d3f7a5c92cf8ec53"], "statement_hash": "fbafdd00feb69a7abdb5a55431d95cdc3253f5b705ef7e04396098cfd642a59a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-daea52f6baa07c41", "migration": false}, {"id": "10.0-d398d5f7b39a86ba", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/10/pgstattuple.html\" title=\"F.31.\u00a0pgstattuple\"><span>pgstattuple</span></a>\u51fd\u6570 <code>pgstathashindex()</code>\uff0c\u7528\u4e8e\u67e5\u770b hash \u7d22\u5f15\u7edf\u8ba1\u4fe1\u606f\uff08Ashutosh Sharma\uff09</p>", "text": "\u589e\u52a0pgstattuple\u51fd\u6570 pgstathashindex()\uff0c\u7528\u4e8e\u67e5\u770b hash \u7d22\u5f15\u7edf\u8ba1\u4fe1\u606f\uff08Ashutosh Sharma\uff09", "title": "\u589e\u52a0pgstattuple\u51fd\u6570 pgstathashindex()\uff0c\u7528\u4e8e\u67e5\u770b hash \u7d22\u5f15\u7edf\u8ba1\u4fe1\u606f", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "148ceaab9abc26af5a81f9ec064a5b73024ba3245df1abf67146ff5e10900fbb", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["e759854a0"]], "identity_text": "Add pgstattuple function pgstathashindex() to view hash index statistics (Ashutosh Sharma)", "commit_aliases": ["e759854a0"], "source_commits": ["e759854a0"], "source_entry_id": "10.0/changes/157", "db_id": "d1a3d1f6f782073796fcff57dbc91c3d", "patch_ids": ["66b19ce4155bffccba79d29dc2034998"], "statement_hash": "2d851ca8263cd1093476cd98039ce1a31edf191d0c553e17e93c3abc9d6c071c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-d398d5f7b39a86ba", "migration": false}, {"id": "10.0-1986ad90aad92c73", "cves": [], "html": "<p>\u4f7f\u7528 <code>GRANT</code> \u6743\u9650\u63a7\u5236 <span>pgstattuple</span> \u51fd\u6570\u7684\u4f7f\u7528\uff08Stephen Frost\uff09</p>\n<p>\u8fd9\u4f7f DBA \u53ef\u4ee5\u5141\u8bb8\u975e\u8d85\u7ea7\u7528\u6237\u8fd0\u884c\u8fd9\u4e9b\u51fd\u6570\u3002</p>", "text": "\u4f7f\u7528 GRANT \u6743\u9650\u63a7\u5236 pgstattuple \u51fd\u6570\u7684\u4f7f\u7528\uff08Stephen Frost\uff09 \u8fd9\u4f7f DBA \u53ef\u4ee5\u5141\u8bb8\u975e\u8d85\u7ea7\u7528\u6237\u8fd0\u884c\u8fd9\u4e9b\u51fd\u6570\u3002", "title": "\u4f7f\u7528 GRANT \u6743\u9650\u63a7\u5236 pgstattuple \u51fd\u6570\u7684\u4f7f\u7528", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "d64902d100b96a92d5b21822dfb6a56f5da620a05fe4ce8218d88b2a15e4edd9", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["fd321a1df"]], "identity_text": "Use GRANT permissions to control pgstattuple function usage (Stephen Frost) This allows DBAs to allow non-superusers to run these functions.", "commit_aliases": ["fd321a1df"], "source_commits": ["fd321a1df"], "source_entry_id": "10.0/changes/158", "db_id": "2edcd91253fdfd04ccb721550c277b73", "patch_ids": ["6f2ae2dd3f2a287b747d9fd29f995027"], "statement_hash": "951d719fc5a3244266e6e9054aa307589b135834a3e717154b0f9a448f34486e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-1986ad90aad92c73", "migration": false}, {"id": "10.0-9a534501a9ff8b62", "cves": [], "html": "<p>\u51cf\u5c11 <span>pgstattuple</span> \u68c0\u67e5 hash \u7d22\u5f15\u65f6\u7684\u9501\u5b9a\uff08Amit Kapila\uff09</p>", "text": "\u51cf\u5c11 pgstattuple \u68c0\u67e5 hash \u7d22\u5f15\u65f6\u7684\u9501\u5b9a\uff08Amit Kapila\uff09", "title": "\u51cf\u5c11 pgstattuple \u68c0\u67e5 hash \u7d22\u5f15\u65f6\u7684\u9501\u5b9a", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "5a89d638220af9035bcd935b243b73cc58dfe4c2c9edf45585b0e57ceeed0479", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["d4b5d4cad"]], "identity_text": "Reduce locking when pgstattuple examines hash indexes (Amit Kapila)", "commit_aliases": ["d4b5d4cad"], "source_commits": ["d4b5d4cad"], "source_entry_id": "10.0/changes/159", "db_id": "5d3634a71d0e54c5e9069db5393823ed", "patch_ids": ["3fcf0bb3ceb8c33cbd70f8a2bf55fef4"], "statement_hash": "06dee103047dea1949c905ca3e94252c1eba991f237cecf30347a735e1bcfdd5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-9a534501a9ff8b62", "migration": false}, {"id": "10.0-97ef25d61fa82213", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/10/pageinspect.html\" title=\"F.23.\u00a0pageinspect\"><span>pageinspect</span></a>\u51fd\u6570 <code>page_checksum()</code>\uff0c\u7528\u4e8e\u663e\u793a\u9875\u7684\u6821\u9a8c\u548c\uff08Tomas Vondra\uff09</p>", "text": "\u589e\u52a0pageinspect\u51fd\u6570 page_checksum()\uff0c\u7528\u4e8e\u663e\u793a\u9875\u7684\u6821\u9a8c\u548c\uff08Tomas Vondra\uff09", "title": "\u589e\u52a0pageinspect\u51fd\u6570 page_checksum()\uff0c\u7528\u4e8e\u663e\u793a\u9875\u7684\u6821\u9a8c\u548c", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "d9c56d64f97dac2cb3ee10824dc593b3b733cd62e115d79f865411afdea521c7", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["fef2bcdcb"]], "identity_text": "Add pageinspect function page_checksum() to show a page's checksum (Tomas Vondra)", "commit_aliases": ["fef2bcdcb"], "source_commits": ["fef2bcdcb"], "source_entry_id": "10.0/changes/160", "db_id": "500b2a085fa2c3a5db628b544bfcc9e0", "patch_ids": ["f965bc145bfc2ccbf420f710153af4f3"], "statement_hash": "0a0f6717d8d4b4a7b8fe54512607169d3da3dddfdca34a074dc1eaa32b72f316", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-97ef25d61fa82213", "migration": false}, {"id": "10.0-611c23739f5b0b38", "cves": [], "html": "<p>\u589e\u52a0 <span>pageinspect</span> \u51fd\u6570 <code>bt_page_items()</code>\uff0c\u7528\u4e8e\u4ece\u9875\u6620\u50cf\u4e2d\u6253\u5370\u9875\u9879\uff08Tomas Vondra\uff09</p>", "text": "\u589e\u52a0 pageinspect \u51fd\u6570 bt_page_items()\uff0c\u7528\u4e8e\u4ece\u9875\u6620\u50cf\u4e2d\u6253\u5370\u9875\u9879\uff08Tomas Vondra\uff09", "title": "\u589e\u52a0 pageinspect \u51fd\u6570 bt_page_items()\uff0c\u7528\u4e8e\u4ece\u9875\u6620\u50cf\u4e2d\u6253\u5370\u9875\u9879", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "073ee07840d3c01752e84590ac394fe84a069e4b894200f54b83982cac70c646", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["193f5f9e9"]], "identity_text": "Add pageinspect function bt_page_items() to print page items from a page image (Tomas Vondra)", "commit_aliases": ["193f5f9e9"], "source_commits": ["193f5f9e9"], "source_entry_id": "10.0/changes/161", "db_id": "9e3bfe4846d13aa0aab5cea0d97f04f2", "patch_ids": ["0af781cd5a5011593df493964d7839e5"], "statement_hash": "46cf91f4f52199e1a5e0905eedf04634e2de5f5d11d2572d41b27485680e4b98", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-611c23739f5b0b38", "migration": false}, {"id": "10.0-38c0c50647d60279", "cves": [], "html": "<p>\u4e3a <span>pageinspect</span> \u589e\u52a0 hash \u7d22\u5f15\u652f\u6301\uff08Jesper Pedersen\uff0cAshutosh Sharma\uff09</p>", "text": "\u4e3a pageinspect \u589e\u52a0 hash \u7d22\u5f15\u652f\u6301\uff08Jesper Pedersen\uff0cAshutosh Sharma\uff09", "title": "\u4e3a pageinspect \u589e\u52a0 hash \u7d22\u5f15\u652f\u6301", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "cb604adce61e7a9f7001a955d792cc2f28963a845bc0673b97340ee254fead48", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["08bf6e529"]], "identity_text": "Add hash index support to pageinspect (Jesper Pedersen, Ashutosh Sharma)", "commit_aliases": ["08bf6e529"], "source_commits": ["08bf6e529"], "source_entry_id": "10.0/changes/162", "db_id": "611cef2b7d8bec1b875682973bd05e30", "patch_ids": ["c7d91586ebb3c024d0dc7d127b67db8f"], "statement_hash": "ef3e9a94765efe03a56a050b35e68b866a74a57988b72e11bc3288131b4f6c20", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=10.0#10.0-38c0c50647d60279", "migration": false}], "initial_entry_count": 189, "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/10/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/10/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/10/upgrading.html\" title=\"18.6.\u00a0\u5347\u7ea7 PostgreSQL \u96c6\u7c07\">\u7b2c\u00a018.6\u00a0\u8282</a>\u3002</p>\n<p>\u7248\u672c 10 \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": 148}, {"key": "bugfix", "label": "BUG \u4fee\u590d", "count": 2}, {"key": "security", "label": "\u5b89\u5168\u76f8\u5173", "count": 0}, {"key": "performance", "label": "\u6027\u80fd\u6539\u8fdb", "count": 12}, {"key": "compatibility", "label": "\u517c\u5bb9\u6027\u53d8\u5316", "count": 27}, {"key": "improvement", "label": "\u5176\u4ed6\u6539\u8fdb", "count": 0}], "security_rows": [{"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": "10.22", "fixed_url": "/docs/compare/?release=10.22", "affected": "10", "component": "core server", "mentions": [{"build": "10.22", "version": "10.22", "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=10.22#10.22-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": "10.21", "fixed_url": "/docs/compare/?release=10.21", "affected": "10", "component": "core server", "mentions": [{"build": "10.22", "version": "10.22", "title": "\u4fee\u590d CREATE INDEX \u4e2d\u7684\u6743\u9650\u68c0\u67e5", "url": "/docs/compare/?release=10.22#10.22-1163c89b695c334d"}, {"build": "10.21", "version": "10.21", "title": "\u5c06\u66f4\u591a\u64cd\u4f5c\u9650\u5236\u5728\u201c\u5b89\u5168\u53d7\u9650\u64cd\u4f5c\u201d\u6c99\u7bb1\u5185", "url": "/docs/compare/?release=10.21#10.21-cc5eedf7a8bed7a1"}], "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": "10.18", "version": "10.18", "title": "\u66f4\u5f7b\u5e95\u5730\u7981\u6b62 SSL \u91cd\u65b0\u534f\u5546", "url": "/docs/compare/?release=10.18#10.18-2a0347840526e5c1"}], "evidence": "release-note-mention"}, {"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": "10.17", "fixed_url": "/docs/compare/?release=10.17", "affected": "10", "component": "core server", "mentions": [{"build": "10.17", "version": "10.17", "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=10.17#10.17-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": "10.17", "fixed_url": "/docs/compare/?release=10.17", "affected": "10", "component": "core server", "mentions": [{"build": "10.17", "version": "10.17", "title": "\u9632\u6b62\u6570\u7ec4\u4e0b\u6807\u8ba1\u7b97\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=10.17#10.17-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": "10.19", "fixed_url": "/docs/compare/?release=10.19", "affected": "10", "component": "client", "mentions": [{"build": "10.19", "version": "10.19", "title": "\u4f7f libpq \u5728 SSL \u6216 GSS \u52a0\u5bc6\u63e1\u624b\u540e\u62d2\u7edd\u591a\u4f59\u7684\u6570\u636e", "url": "/docs/compare/?release=10.19#10.19-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": "10.19", "fixed_url": "/docs/compare/?release=10.19", "affected": "10", "component": "core server", "mentions": [{"build": "10.19", "version": "10.19", "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=10.19#10.19-5eea6f66c6b5cf3f"}, {"build": "10.19", "version": "10.19", "title": "\u4f7f libpq \u5728 SSL \u6216 GSS \u52a0\u5bc6\u63e1\u624b\u540e\u62d2\u7edd\u591a\u4f59\u7684\u6570\u636e", "url": "/docs/compare/?release=10.19#10.19-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": "10.15", "fixed_url": "/docs/compare/?release=10.15", "affected": "10", "component": "client", "mentions": [{"build": "10.15", "version": "10.15", "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=10.15#10.15-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": "10.15", "fixed_url": "/docs/compare/?release=10.15", "affected": "10", "component": "core server", "mentions": [{"build": "10.15", "version": "10.15", "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=10.15#10.15-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": "10.15", "fixed_url": "/docs/compare/?release=10.15", "affected": "10", "component": "client", "mentions": [{"build": "10.15", "version": "10.15", "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=10.15#10.15-f5695ef1c79fd91e"}, {"build": "10.15", "version": "10.15", "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=10.15#10.15-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": "10.12", "fixed_url": "/docs/compare/?release=10.12", "affected": "10", "component": "core server", "mentions": [{"build": "10.12", "version": "10.12", "title": "\u4e3a ALTER ... DEPENDS ON EXTENSION \u8865\u4e0a\u7f3a\u5931\u7684\u6743\u9650\u68c0\u67e5", "url": "/docs/compare/?release=10.12#10.12-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": "10.14", "fixed_url": "/docs/compare/?release=10.14", "affected": "10", "component": "core server", "mentions": [{"build": "10.14", "version": "10.14", "title": "\u63d0\u9ad8 contrib \u6a21\u5757\u5b89\u88c5\u811a\u672c\u7684\u5b89\u5168\u6027", "url": "/docs/compare/?release=10.14#10.14-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": "10.14", "fixed_url": "/docs/compare/?release=10.14", "affected": "10", "component": "core server", "mentions": [{"build": "10.14", "version": "10.14", "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=10.14#10.14-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": "10.13", "fixed_url": "/docs/compare/?release=10.13", "affected": "10", "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": "10.11", "fixed_url": "/docs/compare/?release=10.11", "affected": "10", "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": "10.10", "fixed_url": "/docs/compare/?release=10.10", "affected": "10", "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": "10.10", "fixed_url": "/docs/compare/?release=10.10", "affected": "10", "component": "packaging", "mentions": [], "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": "10.10", "fixed_url": "/docs/compare/?release=10.10", "affected": "10", "component": "core server", "mentions": [{"build": "10.10", "version": "10.10", "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=10.10#10.10-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": "10.9", "fixed_url": "/docs/compare/?release=10.9", "affected": "10", "component": "core server", "mentions": [{"build": "10.9", "version": "10.9", "title": "\u4fee\u590d SCRAM \u9a8c\u8bc1\u4fe1\u606f\u89e3\u6790\u4e2d\u7684\u7f13\u51b2\u533a\u6ea2\u51fa\u9690\u60a3", "url": "/docs/compare/?release=10.9#10.9-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": "10.8", "fixed_url": "/docs/compare/?release=10.8", "affected": "10", "component": "core server", "mentions": [{"build": "10.8", "version": "10.8", "title": "\u9632\u6b62\u901a\u8fc7\u9009\u62e9\u7387\u4f30\u8ba1\u5668\u7ed5\u8fc7\u884c\u7ea7\u5b89\u5168\u7b56\u7565", "url": "/docs/compare/?release=10.8#10.8-35d4445257f1090d"}], "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": "10.8", "fixed_url": "/docs/compare/?release=10.8", "affected": "10", "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": "10.8", "fixed_url": "/docs/compare/?release=10.8", "affected": "10", "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": "10.6", "fixed_url": "/docs/compare/?release=10.6", "affected": "10", "component": "core server", "mentions": [{"build": "10.6", "version": "10.6", "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=10.6#10.6-e615412428ea2e36"}], "evidence": "branch-matrix"}, {"id": "CVE-2018-1115", "title": "Too-permissive access control list on function pg_logfile_rotate()", "url": "https://www.postgresql.org/support/security/CVE-2018-1115/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N", "description": "", "description_language": "en", "fixed": "10.4", "fixed_url": "/docs/compare/?release=10.4", "affected": "10", "component": "contrib module", "mentions": [{"build": "10.4", "version": "10.4", "title": "\u64a4\u9500 contrib/adminpack \u7684 pg_logfile_rotate() \u51fd\u6570\u7684\u516c\u5171\u6267\u884c\u6743\u9650", "url": "/docs/compare/?release=10.4#10.4-81081225d1986dcc"}], "evidence": "branch-matrix"}, {"id": "CVE-2018-10925", "title": "Memory disclosure and missing authorization in INSERT ... ON CONFLICT DO UPDATE.", "url": "https://www.postgresql.org/support/security/CVE-2018-10925/", "score": 7.1, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N", "description": "", "description_language": "en", "fixed": "10.5", "fixed_url": "/docs/compare/?release=10.5", "affected": "10", "component": "core server", "mentions": [{"build": "10.5", "version": "10.5", "title": "\u4fee\u590d\u901a\u8fc7\u5e76\u975e\u7b80\u5355 SELECT * FROM ... \u7684\u89c6\u56fe\u6267\u884c INSERT ... ON CONFLICT UPDATE \u7684\u95ee\u9898", "url": "/docs/compare/?release=10.5#10.5-defa8eca5d7f95e2"}], "evidence": "branch-matrix"}, {"id": "CVE-2018-10915", "title": "Certain host connection parameters defeat client-side security defenses", "url": "https://www.postgresql.org/support/security/CVE-2018-10915/", "score": 8.5, "vector": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "description": "", "description_language": "en", "fixed": "10.5", "fixed_url": "/docs/compare/?release=10.5", "affected": "10", "component": "client", "mentions": [{"build": "10.5", "version": "10.5", "title": "\u4fee\u590d\u8fde\u63a5\u5c1d\u8bd5\u4e4b\u95f4\u672a\u80fd\u5b8c\u5168\u91cd\u7f6e libpq \u72b6\u6001\u7684\u95ee\u9898", "url": "/docs/compare/?release=10.5#10.5-b50ee2ad35972b64"}], "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": "10.3", "fixed_url": "/docs/compare/?release=10.3", "affected": "10", "component": "client", "mentions": [{"build": "10.14", "version": "10.14", "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=10.14#10.14-586f5d2cec25828f"}, {"build": "10.14", "version": "10.14", "title": "\u63d0\u9ad8 contrib \u6a21\u5757\u5b89\u88c5\u811a\u672c\u7684\u5b89\u5168\u6027", "url": "/docs/compare/?release=10.14#10.14-3ae0ed313be57173"}, {"build": "10.3", "version": "10.3", "title": "\u8bb0\u5f55\u5982\u4f55\u914d\u7f6e\u5b89\u88c5\u548c\u5e94\u7528\u7a0b\u5e8f\uff0c\u4ee5\u9632\u8303\u5176\u4ed6\u7528\u6237\u5229\u7528\u641c\u7d22\u8def\u5f84\u53d1\u8d77\u7684\u7279\u6d1b\u4f0a\u6728\u9a6c\u653b\u51fb", "url": "/docs/compare/?release=10.3#10.3-12464343c3fa6b9c"}, {"build": "10.3", "version": "10.3", "title": "\u907f\u514d\u5728 pg_dump \u548c\u5176\u4ed6\u5ba2\u6237\u7aef\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u4e0d\u5b89\u5168\u7684 search_path \u8bbe\u7f6e", "url": "/docs/compare/?release=10.3#10.3-5f3c119a2c06181a"}], "evidence": "branch-matrix"}, {"id": "CVE-2018-1053", "title": "pg_upgrade creates file of sensitive metadata under prevailing umask", "url": "https://www.postgresql.org/support/security/CVE-2018-1053/", "score": 6.7, "vector": "AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "description": "", "description_language": "en", "fixed": "10.2", "fixed_url": "/docs/compare/?release=10.2", "affected": "10", "component": "client", "mentions": [{"build": "10.2", "version": "10.2", "title": "\u786e\u4fdd pg_upgrade \u521b\u5efa\u7684\u6240\u6709\u4e34\u65f6\u6587\u4ef6\u90fd\u4e0d\u4f1a\u5141\u8bb8\u6240\u6709\u7528\u6237\u8bfb\u53d6", "url": "/docs/compare/?release=10.2#10.2-ea7c7e256e617d2a"}], "evidence": "branch-matrix"}, {"id": "CVE-2018-1052", "title": "Memory disclosure in table partitioning", "url": "https://www.postgresql.org/support/security/CVE-2018-1052/", "score": 6.5, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "description": "", "description_language": "en", "fixed": "10.2", "fixed_url": "/docs/compare/?release=10.2", "affected": "10", "component": "core server", "mentions": [{"build": "10.2", "version": "10.2", "title": "\u4fee\u590d\u5bf9\u5305\u542b\u591a\u4e2a\u8868\u8fbe\u5f0f\u7684\u5206\u533a\u952e\u7684\u5904\u7406", "url": "/docs/compare/?release=10.2#10.2-0432894731f541ff"}], "evidence": "branch-matrix"}, {"id": "CVE-2017-7484", "title": "selectivity estimators bypass SELECT privilege checks", "url": "https://www.postgresql.org/support/security/CVE-2017-7484/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "core server", "mentions": [{"build": "10.8", "version": "10.8", "title": "\u9632\u6b62\u901a\u8fc7\u9009\u62e9\u7387\u4f30\u8ba1\u5668\u7ed5\u8fc7\u884c\u7ea7\u5b89\u5168\u7b56\u7565", "url": "/docs/compare/?release=10.8#10.8-35d4445257f1090d"}], "evidence": "release-note-mention"}, {"id": "CVE-2017-15099", "title": "INSERT ... ON CONFLICT DO UPDATE fails to enforce SELECT privileges", "url": "https://www.postgresql.org/support/security/CVE-2017-15099/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "", "description_language": "en", "fixed": "10.1", "fixed_url": "/docs/compare/?release=10.1", "affected": "10", "component": "core server", "mentions": [{"build": "10.1", "version": "10.1", "title": "\u786e\u4fdd INSERT ... ON CONFLICT DO UPDATE \u5728\u6240\u6709\u60c5\u51b5\u4e0b\u90fd\u68c0\u67e5\u8868\u6743\u9650\u548c RLS \u7b56\u7565", "url": "/docs/compare/?release=10.1#10.1-85f253dc8097c047"}], "evidence": "branch-matrix"}, {"id": "CVE-2017-15098", "title": "Memory disclosure in JSON functions", "url": "https://www.postgresql.org/support/security/CVE-2017-15098/", "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": "10.1", "fixed_url": "/docs/compare/?release=10.1", "affected": "10", "component": "core server", "mentions": [{"build": "10.1", "version": "10.1", "title": "\u4fee\u590d json{b}_populate_recordset() \u4e2d\u884c\u7c7b\u578b\u4e0d\u5339\u914d\u5bfc\u81f4\u7684\u5d29\u6e83", "url": "/docs/compare/?release=10.1#10.1-6347e8c17fee8c51"}], "evidence": "branch-matrix"}, {"id": "CVE-2017-12172", "title": "Start scripts permit database administrator to modify root-owned files", "url": "https://www.postgresql.org/support/security/CVE-2017-12172/", "score": 8.4, "vector": "AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:H", "description": "", "description_language": "en", "fixed": "10.1", "fixed_url": "/docs/compare/?release=10.1", "affected": "10", "component": "contrib module", "mentions": [{"build": "10.1", "version": "10.1", "title": "\u4fee\u590d\u793a\u4f8b\u670d\u52a1\u5668\u542f\u52a8\u811a\u672c\uff0c\u4f7f\u5176\u5728\u6253\u5f00 $PGLOG \u4e4b\u524d\u5207\u6362\u4e3a $PGUSER", "url": "/docs/compare/?release=10.1#10.1-72954d576ba136af"}], "evidence": "branch-matrix"}, {"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": "10.10", "version": "10.10", "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=10.10#10.10-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": "10.18", "version": "10.18", "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=10.18#10.18-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": 13780250, "url": "/files/documentation/pdf/10/postgresql-10-A4.pdf"}, {"label": "US Letter PDF", "bytes": 13762501, "url": "/files/documentation/pdf/10/postgresql-10-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": ""}]}