{"format": 1, "version": {"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"}, "releases": [{"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}, {"version": "16.14", "build": "16.14", "status": "stable", "date": "2026-05-14", "source_as_of": "", "url": "/docs/compare/?release=16.14", "manual_url": "/docs/16/release-16-14.html", "source_url": "/docs/release/16.14/", "entry_count": 50, "categories": {"security": 12, "improvement": 18, "bugfix": 20}, "compatibility_count": 0, "cves": ["CVE-2026-6472", "CVE-2026-6473", "CVE-2026-6474", "CVE-2026-6475", "CVE-2026-6477", "CVE-2026-6478", "CVE-2026-6479", "CVE-2026-6637", "CVE-2026-6638"], "cve_count": 9}, {"version": "16.13", "build": "16.13", "status": "stable", "date": "2026-02-26", "source_as_of": "", "url": "/docs/compare/?release=16.13", "manual_url": "/docs/16/release-16-13.html", "source_url": "/docs/release/16.13/", "entry_count": 6, "categories": {"bugfix": 5, "security": 1}, "compatibility_count": 0, "cves": ["CVE-2026-2006"], "cve_count": 1}, {"version": "16.12", "build": "16.12", "status": "stable", "date": "2026-02-12", "source_as_of": "", "url": "/docs/compare/?release=16.12", "manual_url": "/docs/16/release-16-12.html", "source_url": "/docs/release/16.12/", "entry_count": 45, "categories": {"security": 4, "improvement": 23, "bugfix": 18}, "compatibility_count": 0, "cves": ["CVE-2026-2003", "CVE-2026-2004", "CVE-2026-2005", "CVE-2026-2006"], "cve_count": 4}, {"version": "16.11", "build": "16.11", "status": "stable", "date": "2025-11-13", "source_as_of": "", "url": "/docs/compare/?release=16.11", "manual_url": "/docs/16/release-16-11.html", "source_url": "/docs/release/16.11/", "entry_count": 59, "categories": {"security": 2, "improvement": 25, "bugfix": 32}, "compatibility_count": 0, "cves": ["CVE-2025-12817", "CVE-2025-12818"], "cve_count": 2}, {"version": "16.10", "build": "16.10", "status": "stable", "date": "2025-08-14", "source_as_of": "", "url": "/docs/compare/?release=16.10", "manual_url": "/docs/16/release-16-10.html", "source_url": "/docs/release/16.10/", "entry_count": 59, "categories": {"security": 3, "bugfix": 19, "improvement": 37}, "compatibility_count": 0, "cves": ["CVE-2012-0868", "CVE-2017-7484", "CVE-2025-8713", "CVE-2025-8714", "CVE-2025-8715"], "cve_count": 5}, {"version": "16.9", "build": "16.9", "status": "stable", "date": "2025-05-08", "source_as_of": "", "url": "/docs/compare/?release=16.9", "manual_url": "/docs/16/release-16-9.html", "source_url": "/docs/release/16.9/", "entry_count": 48, "categories": {"security": 1, "improvement": 28, "bugfix": 19}, "compatibility_count": 0, "cves": ["CVE-2025-4207"], "cve_count": 1}, {"version": "16.8", "build": "16.8", "status": "stable", "date": "2025-02-20", "source_as_of": "", "url": "/docs/compare/?release=16.8", "manual_url": "/docs/16/release-16-8.html", "source_url": "/docs/release/16.8/", "entry_count": 2, "categories": {"security": 1, "bugfix": 1}, "compatibility_count": 0, "cves": ["CVE-2025-1094"], "cve_count": 1}, {"version": "16.7", "build": "16.7", "status": "stable", "date": "2025-02-13", "source_as_of": "", "url": "/docs/compare/?release=16.7", "manual_url": "/docs/16/release-16-7.html", "source_url": "/docs/release/16.7/", "entry_count": 55, "categories": {"security": 1, "improvement": 23, "bugfix": 31}, "compatibility_count": 0, "cves": ["CVE-2025-1094"], "cve_count": 1}, {"version": "16.6", "build": "16.6", "status": "stable", "date": "2024-11-21", "source_as_of": "", "url": "/docs/compare/?release=16.6", "manual_url": "/docs/16/release-16-6.html", "source_url": "/docs/release/16.6/", "entry_count": 8, "categories": {"bugfix": 4, "security": 1, "improvement": 3}, "compatibility_count": 0, "cves": ["CVE-2024-10978"], "cve_count": 1}, {"version": "16.5", "build": "16.5", "status": "stable", "date": "2024-11-14", "source_as_of": "", "url": "/docs/compare/?release=16.5", "manual_url": "/docs/16/release-16-5.html", "source_url": "/docs/release/16.5/", "entry_count": 54, "categories": {"security": 4, "bugfix": 25, "improvement": 25}, "compatibility_count": 0, "cves": ["CVE-2024-10976", "CVE-2024-10977", "CVE-2024-10978", "CVE-2024-10979"], "cve_count": 4}, {"version": "16.4", "build": "16.4", "status": "stable", "date": "2024-08-08", "source_as_of": "", "url": "/docs/compare/?release=16.4", "manual_url": "/docs/16/release-16-4.html", "source_url": "/docs/release/16.4/", "entry_count": 54, "categories": {"security": 2, "improvement": 25, "bugfix": 27}, "compatibility_count": 0, "cves": ["CVE-2023-5869", "CVE-2024-7348"], "cve_count": 2}, {"version": "16.3", "build": "16.3", "status": "stable", "date": "2024-05-09", "source_as_of": "", "url": "/docs/compare/?release=16.3", "manual_url": "/docs/16/release-16-3.html", "source_url": "/docs/release/16.3/", "entry_count": 57, "categories": {"security": 1, "bugfix": 27, "improvement": 29}, "compatibility_count": 0, "cves": ["CVE-2024-4317"], "cve_count": 1}, {"version": "16.2", "build": "16.2", "status": "stable", "date": "2024-02-08", "source_as_of": "", "url": "/docs/compare/?release=16.2", "manual_url": "/docs/16/release-16-2.html", "source_url": "/docs/release/16.2/", "entry_count": 70, "categories": {"security": 1, "bugfix": 30, "improvement": 39}, "compatibility_count": 0, "cves": ["CVE-2024-0985"], "cve_count": 1}, {"version": "16.1", "build": "16.1", "status": "stable", "date": "2023-11-09", "source_as_of": "", "url": "/docs/compare/?release=16.1", "manual_url": "/docs/16/release-16-1.html", "source_url": "/docs/release/16.1/", "entry_count": 59, "categories": {"security": 3, "bugfix": 28, "improvement": 28}, "compatibility_count": 0, "cves": ["CVE-2023-5868", "CVE-2023-5869", "CVE-2023-5870"], "cve_count": 3}, {"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}], "initial_entries": [{"id": "16.0-c2006d3e0efb852e", "cves": [], "html": "<p>\u66f4\u6539<a href=\"/docs/16/plpgsql-cursors.html#PLPGSQL-OPEN-BOUND-CURSOR\" title=\"43.7.2.3.\u00a0\u6253\u5f00\u5df2\u7ed1\u5b9a\u6e38\u6807\"><span>PL/pgSQL</span></a>\u7ed1\u5b9a\u6e38\u6807\u53d8\u91cf\u7684\u8d4b\u503c\u89c4\u5219\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/d747dc85a\">\u00a7</a></p>\n<p>\u4e4b\u524d\uff0c\u6b64\u7c7b\u53d8\u91cf\u7684\u5b57\u7b26\u4e32\u503c\u5728\u6e38\u6807\u8d4b\u503c\u671f\u95f4\u88ab\u8bbe\u7f6e\u4e3a\u4e0e\u53d8\u91cf\u540d\u5339\u914d\uff1b\u73b0\u5728\u5b83\u5c06\u5728 <a href=\"/docs/16/plpgsql-cursors.html#PLPGSQL-CURSOR-OPENING\" title=\"43.7.2.\u00a0\u6253\u5f00\u6e38\u6807\"><code>OPEN</code></a> \u671f\u95f4\u8d4b\u503c\uff0c\u4e14\u4e0d\u4f1a\u4e0e\u53d8\u91cf\u540d\u5339\u914d\u3002\u8981\u6062\u590d\u4e4b\u524d\u7684\u884c\u4e3a\uff0c\u8bf7\u5728 <code>OPEN</code> \u4e4b\u524d\u5c06\u6240\u9700\u7684\u95e8\u6237\u540d\u79f0\u8d4b\u7ed9\u6e38\u6807\u53d8\u91cf\u3002</p>", "text": "\u66f4\u6539PL/pgSQL\u7ed1\u5b9a\u6e38\u6807\u53d8\u91cf\u7684\u8d4b\u503c\u89c4\u5219\uff08Tom Lane\uff09\u00a7 \u4e4b\u524d\uff0c\u6b64\u7c7b\u53d8\u91cf\u7684\u5b57\u7b26\u4e32\u503c\u5728\u6e38\u6807\u8d4b\u503c\u671f\u95f4\u88ab\u8bbe\u7f6e\u4e3a\u4e0e\u53d8\u91cf\u540d\u5339\u914d\uff1b\u73b0\u5728\u5b83\u5c06\u5728 OPEN \u671f\u95f4\u8d4b\u503c\uff0c\u4e14\u4e0d\u4f1a\u4e0e\u53d8\u91cf\u540d\u5339\u914d\u3002\u8981\u6062\u590d\u4e4b\u524d\u7684\u884c\u4e3a\uff0c\u8bf7\u5728 OPEN \u4e4b\u524d\u5c06\u6240\u9700\u7684\u95e8\u6237\u540d\u79f0\u8d4b\u7ed9\u6e38\u6807\u53d8\u91cf\u3002", "title": "\u66f4\u6539PL/pgSQL\u7ed1\u5b9a\u6e38\u6807\u53d8\u91cf\u7684\u8d4b\u503c\u89c4\u5219", "commits": ["d747dc85a"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "ff03d3d4fa400bc39cbf48f43e3bb5242c501683f7de47ae3cabe8c2104fbf52", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["d747dc85a"]], "identity_text": "Change assignment rules for PL/pgSQL bound cursor variables (Tom Lane) Previously, the string value of such variables was set to match the variable name during cursor assignment; now it will be assigned during OPEN, and will not match the variable name. To restore the previous behavior, assign the desired portal name to the cursor variable before OPEN.", "commit_aliases": ["d747dc85a"], "source_commits": ["d747dc85a"], "source_entry_id": "16.0/migration/001", "db_id": "f826f81b9d803af44e93dedd76984421", "patch_ids": ["d1a2fdd858b6ec333c4665adcce4cb24"], "statement_hash": "0e8528d22765959188d56fd3d1531633f788410337873665b08edc7a382233b5", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-c2006d3e0efb852e", "migration": true}, {"id": "16.0-f6d52ac27d098459", "cves": [], "html": "<p>\u7981\u6b62\u4e3b\u952e\u4f7f\u7528 <a href=\"/docs/16/sql-createindex.html\" title=\"CREATE INDEX\"><code>NULLS NOT DISTINCT</code></a> \u7d22\u5f15\uff08Daniel Gustafsson\uff09<a href=\"https://postgr.es/c/d95952325\">\u00a7</a></p>", "text": "\u7981\u6b62\u4e3b\u952e\u4f7f\u7528 NULLS NOT DISTINCT \u7d22\u5f15\uff08Daniel Gustafsson\uff09\u00a7", "title": "\u7981\u6b62\u4e3b\u952e\u4f7f\u7528 NULLS NOT DISTINCT \u7d22\u5f15", "commits": ["d95952325"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "731f7601bc98a32d4d05282cd59864ab58125822858c44f88eefa5de760cc855", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["d95952325"]], "identity_text": "Disallow NULLS NOT DISTINCT indexes for primary keys (Daniel Gustafsson)", "commit_aliases": ["d95952325"], "source_commits": ["d95952325"], "source_entry_id": "16.0/migration/002", "db_id": "525a59c36fe299ecc3424dfc207afed2", "patch_ids": ["96f3f4331acacff0a7615eaf0e2b2f11"], "statement_hash": "e838b8ebf82f6e95a82fc1d6cf1183d0b91f30b3f7f2658bfccfacb8e6943ade", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-f6d52ac27d098459", "migration": true}, {"id": "16.0-c55edd8a8feeef53", "cves": [], "html": "<p>\u66f4\u6539 <a href=\"/docs/16/sql-reindex.html\" title=\"REINDEX\"><code>REINDEX DATABASE</code></a> \u548c<a href=\"/docs/16/app-reindexdb.html\" title=\"reindexdb\"><span>reindexdb</span></a>\u4e0d\u518d\u5904\u7406\u7cfb\u7edf\u76ee\u5f55\u4e0a\u7684\u7d22\u5f15\uff08Simon Riggs\uff09<a href=\"https://postgr.es/c/2cbc3c17a\">\u00a7</a> <a href=\"https://postgr.es/c/0a5f06b84\">\u00a7</a></p>\n<p>\u4ecd\u53ef\u901a\u8fc7 <code>REINDEX SYSTEM</code> \u548c <a href=\"/docs/16/app-reindexdb.html\" title=\"reindexdb\"><code>reindexdb --system</code></a> \u5904\u7406\u6b64\u7c7b\u7d22\u5f15\u3002</p>", "text": "\u66f4\u6539 REINDEX DATABASE \u548creindexdb\u4e0d\u518d\u5904\u7406\u7cfb\u7edf\u76ee\u5f55\u4e0a\u7684\u7d22\u5f15\uff08Simon Riggs\uff09\u00a7 \u00a7 \u4ecd\u53ef\u901a\u8fc7 REINDEX SYSTEM \u548c reindexdb --system \u5904\u7406\u6b64\u7c7b\u7d22\u5f15\u3002", "title": "\u66f4\u6539 REINDEX DATABASE \u548creindexdb\u4e0d\u518d\u5904\u7406\u7cfb\u7edf\u76ee\u5f55\u4e0a\u7684\u7d22\u5f15", "commits": ["0a5f06b84", "2cbc3c17a"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "44b2cbd5236ebc0b910d06ca508ef5acd96bd3592d54476f485ca5709607dd85", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["0a5f06b84"], ["2cbc3c17a"]], "identity_text": "Change REINDEX DATABASE and reindexdb to not process indexes on system catalogs (Simon Riggs) Processing such indexes is still possible using REINDEX SYSTEM and reindexdb --system.", "commit_aliases": ["0a5f06b84", "2cbc3c17a"], "source_commits": ["0a5f06b84", "2cbc3c17a"], "source_entry_id": "16.0/migration/003", "db_id": "c7098ee16ce798a7dcd85cd97890fc70", "patch_ids": ["92844ce33747d7e2426d82ea02840c62", "e53caa2334bbd1e5befcc0bdae91cb58"], "statement_hash": "2e13605c2696202578ef3581c270e4fada4bd8120390bbd4e18763bc2eb7d409", "relations": [{"rule": 2, "type": "related", "target": "cb5715aa1fddf34ed43b90514b03bc21", "evidence": {"same_day": true, "patch_ids": ["92844ce33747d7e2426d82ea02840c62", "e53caa2334bbd1e5befcc0bdae91cb58"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-c55edd8a8feeef53", "migration": true}, {"id": "16.0-dda8925a6b01733d", "cves": [], "html": "<p>\u6536\u7d27\u5bf9\u7ee7\u627f\u8868\u548c\u5206\u533a\u8868\u7684 <a href=\"/docs/16/ddl-generated-columns.html\" title=\"5.3.\u00a0\u751f\u6210\u5217\"><code>GENERATED</code></a> \u8868\u8fbe\u5f0f\u9650\u5236\uff08Amit Langote\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/8bf6ec3ba\">\u00a7</a></p>\n<p>\u7236/\u5206\u533a\u8868\u548c\u5b50/\u5206\u533a\u8868\u7684\u5217\u5fc5\u987b\u5168\u90e8\u5177\u6709\u76f8\u540c\u7684\u751f\u6210\u72b6\u6001\uff0c\u4f46\u73b0\u5728\u5b9e\u9645\u7684\u751f\u6210\u8868\u8fbe\u5f0f\u53ef\u4ee5\u4e0d\u540c\u3002</p>", "text": "\u6536\u7d27\u5bf9\u7ee7\u627f\u8868\u548c\u5206\u533a\u8868\u7684 GENERATED \u8868\u8fbe\u5f0f\u9650\u5236\uff08Amit Langote\uff0cTom Lane\uff09\u00a7 \u7236/\u5206\u533a\u8868\u548c\u5b50/\u5206\u533a\u8868\u7684\u5217\u5fc5\u987b\u5168\u90e8\u5177\u6709\u76f8\u540c\u7684\u751f\u6210\u72b6\u6001\uff0c\u4f46\u73b0\u5728\u5b9e\u9645\u7684\u751f\u6210\u8868\u8fbe\u5f0f\u53ef\u4ee5\u4e0d\u540c\u3002", "title": "\u6536\u7d27\u5bf9\u7ee7\u627f\u8868\u548c\u5206\u533a\u8868\u7684 GENERATED \u8868\u8fbe\u5f0f\u9650\u5236", "commits": ["8bf6ec3ba"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "2f4d4a22c5c5fa0712b58944dab99662aed475eb7a373d393020034f4fd8bd45", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["8bf6ec3ba"]], "identity_text": "Tighten GENERATED expression restrictions on inherited and partitioned tables (Amit Langote, Tom Lane) Columns of parent/partitioned and child/partition tables must all have the same generation status, though now the actual generation expressions can be different.", "commit_aliases": ["8bf6ec3ba"], "source_commits": ["8bf6ec3ba"], "source_entry_id": "16.0/migration/004", "db_id": "21dabc3401e19db3c3edc0511f7b9664", "patch_ids": ["8f6de277fb37227b85a8719ec2c051ed"], "statement_hash": "b12095fa0feb00d8de6353bbc3e87ff460b6318f64cb13a5fc5b6867115a2a68", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-dda8925a6b01733d", "migration": true}, {"id": "16.0-cb0959e990d03453", "cves": [], "html": "<p>\u79fb\u9664<a href=\"/docs/16/pgwalinspect.html\" title=\"F.37.\u00a0pg_walinspect \u2014 WAL \u7684\u5e95\u5c42\u68c0\u67e5\"><span>pg_walinspect</span></a>\u7684\u51fd\u6570 <code>pg_get_wal_records_info_till_end_of_wal()</code> \u548c <code>pg_get_wal_stats_till_end_of_wal()</code>\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/5c1b66280\">\u00a7</a></p>", "text": "\u79fb\u9664pg_walinspect\u7684\u51fd\u6570 pg_get_wal_records_info_till_end_of_wal() \u548c pg_get_wal_stats_till_end_of_wal()\uff08Bharath Rupireddy\uff09\u00a7", "title": "\u79fb\u9664pg_walinspect\u7684\u51fd\u6570 pg_get_wal_records_info_till_end_of_wal() \u548c pg_get_wal_stats_till_end_of_wal()", "commits": ["5c1b66280"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "aaeb51531781db78e24693218237c4d5d7749c912d4240bd5496f3d6f1f38857", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["5c1b66280"]], "identity_text": "Remove pg_walinspect functions pg_get_wal_records_info_till_end_of_wal() and pg_get_wal_stats_till_end_of_wal() (Bharath Rupireddy)", "commit_aliases": ["5c1b66280"], "source_commits": ["5c1b66280"], "source_entry_id": "16.0/migration/005", "db_id": "41a03866a7fb689d27c47b605f7199e1", "patch_ids": ["c5d8dc1de10576f0de896e9cd38e3777"], "statement_hash": "56731df48bcccdc5a1f93f2efb1731ac75a73d869946f1fe10480d6c3c9ff392", "relations": [{"rule": 2, "type": "related", "target": "95ce3c27034083611423b540747ddc44", "evidence": {"same_day": true, "patch_ids": ["c5d8dc1de10576f0de896e9cd38e3777"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-cb0959e990d03453", "migration": true}, {"id": "16.0-1470f115194dedd6", "cves": [], "html": "<p>\u5c06\u670d\u52a1\u5668\u53d8\u91cf <code>force_parallel_mode</code> \u91cd\u547d\u540d\u4e3a <a href=\"/docs/16/runtime-config-developer.html#GUC-DEBUG-PARALLEL-QUERY\"><code>debug_parallel_query</code></a>\uff08David Rowley\uff09<a href=\"https://postgr.es/c/5352ca22e\">\u00a7</a> <a href=\"https://postgr.es/c/0981846b9\">\u00a7</a></p>", "text": "\u5c06\u670d\u52a1\u5668\u53d8\u91cf force_parallel_mode \u91cd\u547d\u540d\u4e3a debug_parallel_query\uff08David Rowley\uff09\u00a7 \u00a7", "title": "\u5c06\u670d\u52a1\u5668\u53d8\u91cf force_parallel_mode \u91cd\u547d\u540d\u4e3a debug_parallel_query", "commits": ["0981846b9", "5352ca22e"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "1d2f7fc57ae0ad9f83c49d6682a7733273a18369d18c925e11d0ce276f67f495", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["0981846b9"], ["5352ca22e"]], "identity_text": "Rename server variable force_parallel_mode to debug_parallel_query (David Rowley)", "commit_aliases": ["0981846b9", "5352ca22e"], "source_commits": ["0981846b9", "5352ca22e"], "source_entry_id": "16.0/migration/006", "db_id": "0021b32ec9b29347bc76cd59068adcf5", "patch_ids": ["60c35f96ee550b3fe84228c3753b8802", "a8d467ec39eabd48bdb6da03f502e553"], "statement_hash": "e470c3eef394351072c19760938a6219036b231d5a3557fce594ecc3a716b219", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-1470f115194dedd6", "migration": true}, {"id": "16.0-934f312ead07017b", "cves": [], "html": "<p>\u79fb\u9664\u901a\u8fc7 <code>ON SELECT</code> \u89c4\u5219\u624b\u52a8<a href=\"/docs/16/sql-createview.html\" title=\"CREATE VIEW\">\u521b\u5efa\u89c6\u56fe</a>\u7684\u80fd\u529b\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/b23cd185f\">\u00a7</a></p>", "text": "\u79fb\u9664\u901a\u8fc7 ON SELECT \u89c4\u5219\u624b\u52a8\u521b\u5efa\u89c6\u56fe\u7684\u80fd\u529b\uff08Tom Lane\uff09\u00a7", "title": "\u79fb\u9664\u901a\u8fc7 ON SELECT \u89c4\u5219\u624b\u52a8\u521b\u5efa\u89c6\u56fe\u7684\u80fd\u529b", "commits": ["b23cd185f"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "39c582283841cd5ef7096d0d0ecdc495207fb4e659c7f4f58517f0e0afdf3044", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["b23cd185f"]], "identity_text": "Remove the ability to create views manually with ON SELECT rules (Tom Lane)", "commit_aliases": ["b23cd185f"], "source_commits": ["b23cd185f"], "source_entry_id": "16.0/migration/007", "db_id": "1146c5c188d37db16f418bfc4d0a0188", "patch_ids": ["26c1e01147ea110f7e1341afb99685b2"], "statement_hash": "91b3da9ee1d9bb132010f131375167c6569cbd63af7afa8e6eda60ec48fbd16b", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-934f312ead07017b", "migration": true}, {"id": "16.0-3f2e92d8f4b3042f", "cves": [], "html": "<p>\u79fb\u9664\u670d\u52a1\u5668\u53d8\u91cf <code>vacuum_defer_cleanup_age</code>\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/1118cd37e\">\u00a7</a></p>\n<p>\u81ea\u4ece\u5f15\u5165 <a href=\"/docs/16/runtime-config-replication.html#GUC-HOT-STANDBY-FEEDBACK\"><code>hot_standby_feedback</code></a> \u548c<a href=\"/docs/16/warm-standby.html#STREAMING-REPLICATION-SLOTS\" title=\"27.2.6.\u00a0\u590d\u5236\u69fd\">\u590d\u5236\u69fd</a>\u540e\uff0c\u5b83\u5c31\u5df2\u4e0d\u518d\u9700\u8981\u3002</p>", "text": "\u79fb\u9664\u670d\u52a1\u5668\u53d8\u91cf vacuum_defer_cleanup_age\uff08Andres Freund\uff09\u00a7 \u81ea\u4ece\u5f15\u5165 hot_standby_feedback \u548c\u590d\u5236\u69fd\u540e\uff0c\u5b83\u5c31\u5df2\u4e0d\u518d\u9700\u8981\u3002", "title": "\u79fb\u9664\u670d\u52a1\u5668\u53d8\u91cf vacuum_defer_cleanup_age", "commits": ["1118cd37e"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "4b882cef80529f8bc7a1480c34a44e9b647ce681f841778ad9a3d6c2eca70933", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["1118cd37e"]], "identity_text": "Remove the server variable vacuum_defer_cleanup_age (Andres Freund) This has been unnecessary since hot_standby_feedback and replication slots were added.", "commit_aliases": ["1118cd37e"], "source_commits": ["1118cd37e"], "source_entry_id": "16.0/migration/008", "db_id": "6580ec13be6935ed2310abd7e881bf33", "patch_ids": ["98a0667069dfaddded4b53f187b36b07"], "statement_hash": "373eb79c6499823724b4d0d654d05956e00c45cf4a3c1703d580d7d6c23ed1b2", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-3f2e92d8f4b3042f", "migration": true}, {"id": "16.0-98ebe1a151945b3a", "cves": [], "html": "<p>\u79fb\u9664\u670d\u52a1\u5668\u53d8\u91cf <code>promote_trigger_file</code>\uff08Simon Riggs\uff09<a href=\"https://postgr.es/c/cd4329d93\">\u00a7</a></p>\n<p>\u8fd9\u7528\u4e8e\u5c06\u5907\u5e93\u63d0\u5347\u4e3a\u4e3b\u5e93\uff0c\u4f46\u73b0\u5728\u4f7f\u7528 <a href=\"/docs/16/app-pg-ctl.html\" title=\"pg_ctl\"><code>pg_ctl promote</code></a> \u6216 <a href=\"/docs/16/functions-admin.html#FUNCTIONS-RECOVERY-CONTROL-TABLE\" title=\"\u8868\u00a09.93.\u00a0\u6062\u590d\u63a7\u5236\u51fd\u6570\"><code>pg_promote()</code></a> \u66f4\u5bb9\u6613\u5b9e\u73b0\u3002</p>", "text": "\u79fb\u9664\u670d\u52a1\u5668\u53d8\u91cf promote_trigger_file\uff08Simon Riggs\uff09\u00a7 \u8fd9\u7528\u4e8e\u5c06\u5907\u5e93\u63d0\u5347\u4e3a\u4e3b\u5e93\uff0c\u4f46\u73b0\u5728\u4f7f\u7528 pg_ctl promote \u6216 pg_promote() \u66f4\u5bb9\u6613\u5b9e\u73b0\u3002", "title": "\u79fb\u9664\u670d\u52a1\u5668\u53d8\u91cf promote_trigger_file", "commits": ["cd4329d93"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "a27e853a9e7b5212948b9d281d6cf8f872e30ee49581231570ebea01ad783932", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["cd4329d93"]], "identity_text": "Remove server variable promote_trigger_file (Simon Riggs) This was used to promote a standby to primary, but is now more easily accomplished with pg_ctl promote or pg_promote().", "commit_aliases": ["cd4329d93"], "source_commits": ["cd4329d93"], "source_entry_id": "16.0/migration/009", "db_id": "5405598362068aa04a2b45cf48e59cb3", "patch_ids": ["9c19cf3afb987af2b70233ec3dfd21ce"], "statement_hash": "822587dcef0a14f39b233170796e2ebfb78782fb2878a60bb48f7cd4e5a89331", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-98ebe1a151945b3a", "migration": true}, {"id": "16.0-5d7b6a3dbc288d82", "cves": [], "html": "<p>\u79fb\u9664\u53ea\u8bfb\u670d\u52a1\u5668\u53d8\u91cf <code>lc_collate</code> \u548c <code>lc_ctype</code>\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/b0f6c4371\">\u00a7</a></p>\n<p>\u6392\u5e8f\u89c4\u5219\u548c\u533a\u57df\u8bbe\u7f6e\u53ef\u4ee5\u5728\u6570\u636e\u5e93\u4e4b\u95f4\u4e0d\u540c\uff0c\u56e0\u6b64\u5c06\u5b83\u4eec\u4f5c\u4e3a\u53ea\u8bfb\u670d\u52a1\u5668\u53d8\u91cf\u5e76\u65e0\u610f\u4e49\u3002</p>", "text": "\u79fb\u9664\u53ea\u8bfb\u670d\u52a1\u5668\u53d8\u91cf lc_collate \u548c lc_ctype\uff08Peter Eisentraut\uff09\u00a7 \u6392\u5e8f\u89c4\u5219\u548c\u533a\u57df\u8bbe\u7f6e\u53ef\u4ee5\u5728\u6570\u636e\u5e93\u4e4b\u95f4\u4e0d\u540c\uff0c\u56e0\u6b64\u5c06\u5b83\u4eec\u4f5c\u4e3a\u53ea\u8bfb\u670d\u52a1\u5668\u53d8\u91cf\u5e76\u65e0\u610f\u4e49\u3002", "title": "\u79fb\u9664\u53ea\u8bfb\u670d\u52a1\u5668\u53d8\u91cf lc_collate \u548c lc_ctype", "commits": ["b0f6c4371"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "b34eee366af5aab8bce4e159774ad21b67e949cafca3f48a82056b4b21398d80", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["b0f6c4371"]], "identity_text": "Remove read-only server variables lc_collate and lc_ctype (Peter Eisentraut) Collations and locales can vary between databases so having them as read-only server variables was unhelpful.", "commit_aliases": ["b0f6c4371"], "source_commits": ["b0f6c4371"], "source_entry_id": "16.0/migration/010", "db_id": "118b79aa4bd23937ad8a0d257a494e71", "patch_ids": ["f2dbea8b8cfad834ac1df4cba3499a6b"], "statement_hash": "7a964152e16996abe66d5ca141d0faaba7cf517ed8c3bff06dfb4d22790bdc30", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-5d7b6a3dbc288d82", "migration": true}, {"id": "16.0-008a75f47f428d6f", "cves": [], "html": "<p>\u89d2\u8272\u7684\u7ee7\u627f\u5c5e\u6027\u73b0\u5728\u51b3\u5b9a\u5728 <a href=\"/docs/16/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a> \u65f6\u6dfb\u52a0\u7684\u6210\u5458\u89d2\u8272\u7684\u9ed8\u8ba4\u7ee7\u627f\u72b6\u6001\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/e3ce2de09\">\u00a7</a></p>\n<p>\u89d2\u8272\u7684\u9ed8\u8ba4\u7ee7\u627f\u884c\u4e3a\u73b0\u5728\u53ef\u4ee5\u901a\u8fc7\u65b0\u7684 <code>GRANT ... WITH INHERIT</code> \u5b50\u53e5\u8986\u76d6\u3002\u8fd9\u4f7f\u5f97\u67d0\u4e9b\u89d2\u8272\u53ef\u7ee7\u627f\u800c\u5176\u4ed6\u89d2\u8272\u4e0d\u53ef\u7ee7\u627f\uff0c\u56e0\u4e3a\u6210\u5458\u89d2\u8272\u7684\u7ee7\u627f\u72b6\u6001\u662f\u5728 <code>GRANT</code> \u65f6\u786e\u5b9a\u7684\u3002\u6b64\u524d\uff0c\u6210\u5458\u89d2\u8272\u7684\u7ee7\u627f\u72b6\u6001\u4ec5\u7531\u89d2\u8272\u81ea\u8eab\u7684\u7ee7\u627f\u5c5e\u6027\u63a7\u5236\uff0c\u800c\u89d2\u8272\u7ee7\u627f\u5c5e\u6027\u7684\u53d8\u66f4\u4f1a\u5f71\u54cd\u5176\u6240\u6709\u65e2\u6709\u548c\u672a\u6765\u7684\u6210\u5458\u89d2\u8272\u3002</p>", "text": "\u89d2\u8272\u7684\u7ee7\u627f\u5c5e\u6027\u73b0\u5728\u51b3\u5b9a\u5728 GRANT \u65f6\u6dfb\u52a0\u7684\u6210\u5458\u89d2\u8272\u7684\u9ed8\u8ba4\u7ee7\u627f\u72b6\u6001\uff08Robert Haas\uff09\u00a7 \u89d2\u8272\u7684\u9ed8\u8ba4\u7ee7\u627f\u884c\u4e3a\u73b0\u5728\u53ef\u4ee5\u901a\u8fc7\u65b0\u7684 GRANT ... WITH INHERIT \u5b50\u53e5\u8986\u76d6\u3002\u8fd9\u4f7f\u5f97\u67d0\u4e9b\u89d2\u8272\u53ef\u7ee7\u627f\u800c\u5176\u4ed6\u89d2\u8272\u4e0d\u53ef\u7ee7\u627f\uff0c\u56e0\u4e3a\u6210\u5458\u89d2\u8272\u7684\u7ee7\u627f\u72b6\u6001\u662f\u5728 GRANT \u65f6\u786e\u5b9a\u7684\u3002\u6b64\u524d\uff0c\u6210\u5458\u89d2\u8272\u7684\u7ee7\u627f\u72b6\u6001\u4ec5\u7531\u89d2\u8272\u81ea\u8eab\u7684\u7ee7\u627f\u5c5e\u6027\u63a7\u5236\uff0c\u800c\u89d2\u8272\u7ee7\u627f\u5c5e\u6027\u7684\u53d8\u66f4\u4f1a\u5f71\u54cd\u5176\u6240\u6709\u65e2\u6709\u548c\u672a\u6765\u7684\u6210\u5458\u89d2\u8272\u3002", "title": "\u89d2\u8272\u7684\u7ee7\u627f\u5c5e\u6027\u73b0\u5728\u51b3\u5b9a\u5728 GRANT \u65f6\u6dfb\u52a0\u7684\u6210\u5458\u89d2\u8272\u7684\u9ed8\u8ba4\u7ee7\u627f\u72b6\u6001", "commits": ["e3ce2de09"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "9cdaaa326cf3582563c3e6cf2693c6ef5598aef12a532f4fa7c096d1be3dd1c1", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["e3ce2de09"]], "identity_text": "Role inheritance now controls the default inheritance status of member roles added during GRANT (Robert Haas) The role's default inheritance behavior can be overridden with the new GRANT ... WITH INHERIT clause. This allows inheritance of some roles and not others because the members' inheritance status is set at GRANT time. Previously the inheritance status of member roles was controlled only by the role's inheritance status, and changes to a role's inheritance status affected all previous and future member roles.", "commit_aliases": ["e3ce2de09"], "source_commits": ["e3ce2de09"], "source_entry_id": "16.0/migration/011", "db_id": "0737ce1c20636caccfeb102fc4eee993", "patch_ids": ["504c427340a3e4db6513b1d1bf5f39f8"], "statement_hash": "7e3c516fd032c0acb9352886c0adf824360ec7df5fcea6a22f5fae4019efeb06", "relations": [{"rule": 2, "type": "related", "target": "16b0c20f5aecf71bf2b84e46d17b8a37", "evidence": {"same_day": true, "patch_ids": ["504c427340a3e4db6513b1d1bf5f39f8"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-008a75f47f428d6f", "migration": true}, {"id": "16.0-b301820db97ba0b9", "cves": [], "html": "<p>\u9650\u5236 <a href=\"/docs/16/sql-createrole.html\" title=\"CREATE ROLE\"><code>CREATEROLE</code></a> \u7684\u6743\u9650\u53ca\u5176\u4fee\u6539\u5176\u4ed6\u89d2\u8272\u7684\u80fd\u529b\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/cf5eb37c5\">\u00a7</a> <a href=\"https://postgr.es/c/f1358ca52\">\u00a7</a></p>\n<p>\u4e4b\u524d\uff0c\u5177\u6709 <code>CREATEROLE</code> \u6743\u9650\u7684\u89d2\u8272\u53ef\u4ee5\u66f4\u6539\u4efb\u4f55\u975e\u8d85\u7ea7\u7528\u6237\u89d2\u8272\u7684\u8bb8\u591a\u65b9\u9762\u3002\u6b64\u7c7b\u66f4\u6539\uff08\u5305\u62ec\u6dfb\u52a0\u6210\u5458\uff09\u73b0\u5728\u8981\u6c42\u8bf7\u6c42\u66f4\u6539\u7684\u89d2\u8272\u5177\u6709 <code>ADMIN OPTION</code> \u6743\u9650\u3002\u4f8b\u5982\uff0c\u5b83\u4eec\u73b0\u5728\u53ea\u6709\u5728\u4e5f\u5177\u6709\u8fd9\u4e9b\u6743\u9650\u65f6\u624d\u80fd\u66f4\u6539 <code>CREATEDB</code>\u3001<code>REPLICATION</code> \u548c <code>BYPASSRLS</code> \u5c5e\u6027\u3002</p>", "text": "\u9650\u5236 CREATEROLE \u7684\u6743\u9650\u53ca\u5176\u4fee\u6539\u5176\u4ed6\u89d2\u8272\u7684\u80fd\u529b\uff08Robert Haas\uff09\u00a7 \u00a7 \u4e4b\u524d\uff0c\u5177\u6709 CREATEROLE \u6743\u9650\u7684\u89d2\u8272\u53ef\u4ee5\u66f4\u6539\u4efb\u4f55\u975e\u8d85\u7ea7\u7528\u6237\u89d2\u8272\u7684\u8bb8\u591a\u65b9\u9762\u3002\u6b64\u7c7b\u66f4\u6539\uff08\u5305\u62ec\u6dfb\u52a0\u6210\u5458\uff09\u73b0\u5728\u8981\u6c42\u8bf7\u6c42\u66f4\u6539\u7684\u89d2\u8272\u5177\u6709 ADMIN OPTION \u6743\u9650\u3002\u4f8b\u5982\uff0c\u5b83\u4eec\u73b0\u5728\u53ea\u6709\u5728\u4e5f\u5177\u6709\u8fd9\u4e9b\u6743\u9650\u65f6\u624d\u80fd\u66f4\u6539 CREATEDB\u3001REPLICATION \u548c BYPASSRLS \u5c5e\u6027\u3002", "title": "\u9650\u5236 CREATEROLE \u7684\u6743\u9650\u53ca\u5176\u4fee\u6539\u5176\u4ed6\u89d2\u8272\u7684\u80fd\u529b", "commits": ["cf5eb37c5", "f1358ca52"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "dfc88d3ace03803791618a29fcd3a417d796512d8b22c6a6d81526e5b6295f13", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["cf5eb37c5"], ["f1358ca52"]], "identity_text": "Restrict the privileges of CREATEROLE and its ability to modify other roles (Robert Haas) Previously roles with CREATEROLE privileges could change many aspects of any non-superuser role. Such changes, including adding members, now require the role requesting the change to have ADMIN OPTION permission. For example, they can now change the CREATEDB, REPLICATION, and BYPASSRLS properties only if they also have those permissions.", "commit_aliases": ["cf5eb37c5", "f1358ca52"], "source_commits": ["cf5eb37c5", "f1358ca52"], "source_entry_id": "16.0/migration/012", "db_id": "64bbb04d5e374e8a6abc967258877f67", "patch_ids": ["8f5ea59ca418b4dacde9858b76586085", "bf6ecd70dacc4fb0b20a61a6f6613c10"], "statement_hash": "cf1865a09fad199806b80e0a2506306fe6e6d63498f94a9deebf83a45e4ecbdb", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-b301820db97ba0b9", "migration": true}, {"id": "16.0-122c477b05fd7f8b", "cves": [], "html": "<p>\u79fb\u9664 <span>postmaster</span> \u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u7b26\u53f7\u94fe\u63a5\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/37e267335\">\u00a7</a></p>", "text": "\u79fb\u9664 postmaster \u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u7b26\u53f7\u94fe\u63a5\uff08Peter Eisentraut\uff09\u00a7", "title": "\u79fb\u9664 postmaster \u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u7b26\u53f7\u94fe\u63a5", "commits": ["37e267335"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/16.0/#RELEASE-16-MIGRATION", "source_hash": "643f5c387a00bd79512076ba9ae1aa47de37a7ce495aa2b068d793ade64c51d0", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["37e267335"]], "identity_text": "Remove symbolic links for the postmaster binary (Peter Eisentraut)", "commit_aliases": ["37e267335"], "source_commits": ["37e267335"], "source_entry_id": "16.0/migration/013", "db_id": "e60f91bcc7efa985b20c2b610e0405fa", "patch_ids": ["c11cfac0a884a301d3709f054ec4b403"], "statement_hash": "98f455b809af3b1897db450f8744b05f94841f1a0c961582f8387c318304d160", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=16.0#16.0-122c477b05fd7f8b", "migration": true}, {"id": "16.0-484cbd86cf534ab2", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u4f7f\u7528\u589e\u91cf\u6392\u5e8f\uff0c\u5305\u62ec <code>DISTINCT</code>\uff08David Rowley\uff09<a href=\"https://postgr.es/c/b59242209\">\u00a7</a> <a href=\"https://postgr.es/c/3c6fc5820\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u4f7f\u7528\u589e\u91cf\u6392\u5e8f\uff0c\u5305\u62ec DISTINCT\uff08David Rowley\uff09\u00a7 \u00a7", "title": "\u5141\u8bb8\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u4f7f\u7528\u589e\u91cf\u6392\u5e8f\uff0c\u5305\u62ec DISTINCT", "commits": ["3c6fc5820", "b59242209"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-OPTIMIZER", "source_hash": "87fd2e3cb5027c2f430d8e93b2be44e29b1631d6982db36e6c5b91589043f26d", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["3c6fc5820"], ["b59242209"]], "identity_text": "Allow incremental sorts in more cases, including DISTINCT (David Rowley)", "commit_aliases": ["3c6fc5820", "b59242209"], "source_commits": ["3c6fc5820", "b59242209"], "source_entry_id": "16.0/changes/001", "db_id": "1e706dcdd440720f01c0d6229703951f", "patch_ids": ["3a70331f68a0f244d7d214beb8d2fbe3", "ac6897c21cbfd815556a7eaa75ee2cb9"], "statement_hash": "639e4372242875fb6f6a8b2f2c2929526c96183c540f41976b34985a92d84707", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-484cbd86cf534ab2", "migration": false}, {"id": "16.0-ae1e3df7de06c0ca", "cves": [], "html": "<p>\u589e\u52a0\u805a\u5408\u51fd\u6570\u4f7f\u7528\u5e26\u6709 <code>ORDER BY</code> \u6216 <code>DISTINCT</code> \u7684\u9884\u6392\u5e8f\u6570\u636e\u7684\u80fd\u529b\uff08David Rowley\uff09<a href=\"https://postgr.es/c/1349d2790\">\u00a7</a> <a href=\"https://postgr.es/c/3226f4728\">\u00a7</a> <a href=\"https://postgr.es/c/da5800d5f\">\u00a7</a></p>\n<p>\u65b0\u7684\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/16/runtime-config-query.html#GUC-ENABLE-PRESORTED-AGGREGATE\"><code>enable_presorted_aggregate</code></a> \u53ef\u7528\u4e8e\u7981\u7528\u6b64\u529f\u80fd\u3002</p>", "text": "\u589e\u52a0\u805a\u5408\u51fd\u6570\u4f7f\u7528\u5e26\u6709 ORDER BY \u6216 DISTINCT \u7684\u9884\u6392\u5e8f\u6570\u636e\u7684\u80fd\u529b\uff08David Rowley\uff09\u00a7 \u00a7 \u00a7 \u65b0\u7684\u670d\u52a1\u5668\u53d8\u91cf enable_presorted_aggregate \u53ef\u7528\u4e8e\u7981\u7528\u6b64\u529f\u80fd\u3002", "title": "\u589e\u52a0\u805a\u5408\u51fd\u6570\u4f7f\u7528\u5e26\u6709 ORDER BY \u6216 DISTINCT \u7684\u9884\u6392\u5e8f\u6570\u636e\u7684\u80fd\u529b", "commits": ["1349d2790", "3226f4728", "da5800d5f"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-OPTIMIZER", "source_hash": "caf0e5a9e2dca7fe484115802160b63eba78c788a3c3531fb77a778342ff4c41", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["1349d2790"], ["3226f4728"], ["da5800d5f"]], "identity_text": "Add the ability for aggregates having ORDER BY or DISTINCT to use pre-sorted data (David Rowley) The new server variable enable_presorted_aggregate can be used to disable this.", "commit_aliases": ["1349d2790", "3226f4728", "da5800d5f"], "source_commits": ["1349d2790", "3226f4728", "da5800d5f"], "source_entry_id": "16.0/changes/002", "db_id": "0d5a2fcf13f747fc52b1c998f40d422c", "patch_ids": ["7fd96d657eacf34bf76fa6e0d1f2339d", "b5b7218c5b4a8c205bd2986e5c33aec9", "cb0f00174c6bac33a77d5a098a5b91f6"], "statement_hash": "ecac102bb3b6f7cd109331c9b1e95b672a827505e6aa84622018cf4c47ae2ab3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-ae1e3df7de06c0ca", "migration": false}, {"id": "16.0-0a3cea265a38c42d", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <code>UNION ALL</code> \u4e4b\u4e0a\u4f7f\u7528 memoize\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/9bfd2822b\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728 UNION ALL \u4e4b\u4e0a\u4f7f\u7528 memoize\uff08Richard Guo\uff09\u00a7", "title": "\u5141\u8bb8\u5728 UNION ALL \u4e4b\u4e0a\u4f7f\u7528 memoize", "commits": ["9bfd2822b"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-OPTIMIZER", "source_hash": "abaa90036110511cf537bcea7444eb4aa37e817b44e05dd13ae0243ad1650f72", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["9bfd2822b"]], "identity_text": "Allow memoize atop a UNION ALL (Richard Guo)", "commit_aliases": ["9bfd2822b"], "source_commits": ["9bfd2822b"], "source_entry_id": "16.0/changes/003", "db_id": "bc7c129b1a1d4973368f9455650b45a2", "patch_ids": ["40176dbda5c321673003c992ddb6d8f0"], "statement_hash": "421b4a2115e46a5792388fb796991e556711d5f1ea1de3ece8767252b918e14b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-0a3cea265a38c42d", "migration": false}, {"id": "16.0-78608cd2a606b9c1", "cves": [], "html": "<p>\u5141\u8bb8\u53cd\u8fde\u63a5\u4ee5\u975e\u7a7a\u8f93\u5165\u4f5c\u4e3a\u5185\u5173\u7cfb\u6267\u884c\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/16dc2703c\">\u00a7</a></p>", "text": "\u5141\u8bb8\u53cd\u8fde\u63a5\u4ee5\u975e\u7a7a\u8f93\u5165\u4f5c\u4e3a\u5185\u5173\u7cfb\u6267\u884c\uff08Richard Guo\uff09\u00a7", "title": "\u5141\u8bb8\u53cd\u8fde\u63a5\u4ee5\u975e\u7a7a\u8f93\u5165\u4f5c\u4e3a\u5185\u5173\u7cfb\u6267\u884c", "commits": ["16dc2703c"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-OPTIMIZER", "source_hash": "03f667b58e10fd267a76952dfc62dd99b5ad53fe3417512445e4f476c5a38838", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["16dc2703c"]], "identity_text": "Allow anti-joins to be performed with the non-nullable input as the inner relation (Richard Guo)", "commit_aliases": ["16dc2703c"], "source_commits": ["16dc2703c"], "source_entry_id": "16.0/changes/004", "db_id": "18d7c2e6a18612b48189bd164f622c2c", "patch_ids": ["58b439a932f5376668d066e992208d2f"], "statement_hash": "e4142cc313fa88e0383a8b16d8027f170cd9fa03ad88b68b2a658e1eef029f39", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-78608cd2a606b9c1", "migration": false}, {"id": "16.0-9e1353fdcbc034c7", "cves": [], "html": "<p>\u5141\u8bb8\u5e76\u884c\u5316 <a href=\"/docs/16/queries-table-expressions.html#QUERIES-JOIN\" title=\"7.2.1.1.\u00a0\u8fde\u63a5\u8868\"><code>FULL</code></a> \u548c\u5185\u90e8\u53f3 <code>OUTER</code> \u54c8\u5e0c\u8fde\u63a5\uff08Melanie Plageman\uff0cThomas Munro\uff09<a href=\"https://postgr.es/c/11c2d6fdf\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5e76\u884c\u5316 FULL \u548c\u5185\u90e8\u53f3 OUTER \u54c8\u5e0c\u8fde\u63a5\uff08Melanie Plageman\uff0cThomas Munro\uff09\u00a7", "title": "\u5141\u8bb8\u5e76\u884c\u5316 FULL \u548c\u5185\u90e8\u53f3 OUTER \u54c8\u5e0c\u8fde\u63a5", "commits": ["11c2d6fdf"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-OPTIMIZER", "source_hash": "7eea820c346a793135a50d4c23be8e003d6735c69b612acab145d345adfe6d00", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["11c2d6fdf"]], "identity_text": "Allow parallelization of FULL and internal right OUTER hash joins (Melanie Plageman, Thomas Munro)", "commit_aliases": ["11c2d6fdf"], "source_commits": ["11c2d6fdf"], "source_entry_id": "16.0/changes/005", "db_id": "e7ff1ec7dfc9788a15f477032b7e3e7a", "patch_ids": ["99c4bf8b2d9f4c9ecb1ca61e18b5b58d"], "statement_hash": "f896139272e70452c67dec9355b6cf2ccba33213c1f156761c694a158c8cc7f0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-9e1353fdcbc034c7", "migration": false}, {"id": "16.0-af6ae25fefaf510a", "cves": [], "html": "<p>\u6539\u8fdb <a href=\"/docs/16/gin.html\" title=\"\u7b2c\u00a070\u00a0\u7ae0\u00a0GIN \u7d22\u5f15\"><code>GIN</code></a> \u7d22\u5f15\u8bbf\u95ee\u89c4\u5212\u5668\u4ee3\u4ef7\u4f30\u8ba1\u7684\u51c6\u786e\u6027\uff08Ronan Dunklau\uff09<a href=\"https://postgr.es/c/cd9479af2\">\u00a7</a></p>", "text": "\u6539\u8fdb GIN \u7d22\u5f15\u8bbf\u95ee\u89c4\u5212\u5668\u4ee3\u4ef7\u4f30\u8ba1\u7684\u51c6\u786e\u6027\uff08Ronan Dunklau\uff09\u00a7", "title": "\u6539\u8fdb GIN \u7d22\u5f15\u8bbf\u95ee\u89c4\u5212\u5668\u4ee3\u4ef7\u4f30\u8ba1\u7684\u51c6\u786e\u6027", "commits": ["cd9479af2"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-OPTIMIZER", "source_hash": "abbe897bf2490d120a2f9c36cba82bf8fb96aa3233742b0323c187752ae1f068", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["cd9479af2"]], "identity_text": "Improve the accuracy of GIN index access optimizer costs (Ronan Dunklau)", "commit_aliases": ["cd9479af2"], "source_commits": ["cd9479af2"], "source_entry_id": "16.0/changes/006", "db_id": "59afbd9edeb6be19e6661be891fc2164", "patch_ids": ["996c0760f0c07fc02cb0b372e70616f3"], "statement_hash": "824d03c8b1ac10096b50ec51f378e8992ecd20190f4e9558efac5f24a8877df2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-af6ae25fefaf510a", "migration": false}, {"id": "16.0-23ffbc5aa16686ef", "cves": [], "html": "<p>\u5141\u8bb8\u66f4\u9ad8\u6548\u5730\u6dfb\u52a0\u5806\u9875\u548c\u7d22\u5f15\u9875\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/00d1e02be\">\u00a7</a> <a href=\"https://postgr.es/c/26158b852\">\u00a7</a></p>", "text": "\u5141\u8bb8\u66f4\u9ad8\u6548\u5730\u6dfb\u52a0\u5806\u9875\u548c\u7d22\u5f15\u9875\uff08Andres Freund\uff09\u00a7 \u00a7", "title": "\u5141\u8bb8\u66f4\u9ad8\u6548\u5730\u6dfb\u52a0\u5806\u9875\u548c\u7d22\u5f15\u9875", "commits": ["00d1e02be", "26158b852"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "9089920a8e54d4aaba9394b50119ba1ff3b08a3ec633dd0643e4ecb1a56985cb", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["00d1e02be"], ["26158b852"]], "identity_text": "Allow more efficient addition of heap and index pages (Andres Freund)", "commit_aliases": ["00d1e02be", "26158b852"], "source_commits": ["00d1e02be", "26158b852"], "source_entry_id": "16.0/changes/007", "db_id": "23b41453c411a0359ff71c525a8c1cdf", "patch_ids": ["adc1b8a52fc2741e959ed0d9c000945a", "dc242f345df4d2d3dc5bb69ce77eb583"], "statement_hash": "aa71c3bded149294de742dfec85b4648abcacaf12009c6bf5ccb5a919527f6b7", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-23ffbc5aa16686ef", "migration": false}, {"id": "16.0-8915c15be4d511a4", "cves": [], "html": "<p>\u5728\u975e\u51bb\u7ed3\u64cd\u4f5c\u671f\u95f4\uff0c\u5728\u9002\u5f53\u65f6\u6267\u884c\u9875\u9762<a href=\"/docs/16/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND\" title=\"25.1.5.\u00a0\u9632\u6b62\u4e8b\u52a1 ID \u56de\u5377\u5931\u8d25\">\u51bb\u7ed3</a>\uff08Peter Geoghegan\uff09<a href=\"https://postgr.es/c/d977ffd92\">\u00a7</a> <a href=\"https://postgr.es/c/9e5405993\">\u00a7</a> <a href=\"https://postgr.es/c/1de58df4f\">\u00a7</a></p>\n<p>\u8fd9\u4f7f\u5f97\u6574\u8868\u51bb\u7ed3\u6e05\u7406\u7684\u5fc5\u8981\u6027\u964d\u4f4e\u3002</p>", "text": "\u5728\u975e\u51bb\u7ed3\u64cd\u4f5c\u671f\u95f4\uff0c\u5728\u9002\u5f53\u65f6\u6267\u884c\u9875\u9762\u51bb\u7ed3\uff08Peter Geoghegan\uff09\u00a7 \u00a7 \u00a7 \u8fd9\u4f7f\u5f97\u6574\u8868\u51bb\u7ed3\u6e05\u7406\u7684\u5fc5\u8981\u6027\u964d\u4f4e\u3002", "title": "\u5728\u975e\u51bb\u7ed3\u64cd\u4f5c\u671f\u95f4\uff0c\u5728\u9002\u5f53\u65f6\u6267\u884c\u9875\u9762\u51bb\u7ed3", "commits": ["1de58df4f", "9e5405993", "d977ffd92"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "d32cc0679aaee55830366aaf6ce0ed598157f205ffcd31a98d588da63094d20e", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["1de58df4f"], ["9e5405993"], ["d977ffd92"]], "identity_text": "During non-freeze operations, perform page freezing where appropriate (Peter Geoghegan) This makes full-table freeze vacuums less necessary.", "commit_aliases": ["1de58df4f", "9e5405993", "d977ffd92"], "source_commits": ["1de58df4f", "9e5405993", "d977ffd92"], "source_entry_id": "16.0/changes/008", "db_id": "3e0b5f3cd6329916be78c1ea521cbf5d", "patch_ids": ["bebbe66730267e2db642c5c4d083b7c4", "bf9fc376d7111e89a0767ad9e7fbf56c", "d2db854c94ed6f6147811b5fe0a1f1da"], "statement_hash": "a938aff62510da30d6b5d8481d311c5646e9e0fcb644d857e62b6e674f5f06a6", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-8915c15be4d511a4", "migration": false}, {"id": "16.0-451a78b2cf018816", "cves": [], "html": "<p>\u5f53 <code>RANGE</code> \u6a21\u5f0f\u5904\u4e8e\u6d3b\u52a8\u72b6\u6001\u4f46\u4e0d\u5fc5\u8981\u65f6\uff0c\u5141\u8bb8\u7a97\u53e3\u51fd\u6570\u5728\u5185\u90e8\u4f7f\u7528\u66f4\u5feb\u7684 <a href=\"/docs/16/sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS\" title=\"4.2.8.\u00a0\u7a97\u53e3\u51fd\u6570\u8c03\u7528\"><code>ROWS</code></a> \u6a21\u5f0f\uff08David Rowley\uff09<a href=\"https://postgr.es/c/ed1a88dda\">\u00a7</a></p>", "text": "\u5f53 RANGE \u6a21\u5f0f\u5904\u4e8e\u6d3b\u52a8\u72b6\u6001\u4f46\u4e0d\u5fc5\u8981\u65f6\uff0c\u5141\u8bb8\u7a97\u53e3\u51fd\u6570\u5728\u5185\u90e8\u4f7f\u7528\u66f4\u5feb\u7684 ROWS \u6a21\u5f0f\uff08David Rowley\uff09\u00a7", "title": "\u5f53 RANGE \u6a21\u5f0f\u5904\u4e8e\u6d3b\u52a8\u72b6\u6001\u4f46\u4e0d\u5fc5\u8981\u65f6\uff0c\u5141\u8bb8\u7a97\u53e3\u51fd\u6570\u5728\u5185\u90e8\u4f7f\u7528\u66f4\u5feb\u7684 ROWS \u6a21\u5f0f", "commits": ["ed1a88dda"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "4efc715ebb949ec72a1ae418e1a9598103b06c125a1001ed4f9b4370060e45e6", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["ed1a88dda"]], "identity_text": "Allow window functions to use the faster ROWS mode internally when RANGE mode is active but unnecessary (David Rowley)", "commit_aliases": ["ed1a88dda"], "source_commits": ["ed1a88dda"], "source_entry_id": "16.0/changes/009", "db_id": "d587bba33797f8d0797e90249ed2c97a", "patch_ids": ["a7edfee197b04d8a2b2913ce63dbaf79"], "statement_hash": "32517d0bb4e5a0c4ec0f5fc198a97bb3f282e04741fcdd34374da0dc60d29cdd", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-451a78b2cf018816", "migration": false}, {"id": "16.0-6644c0f9c2ace357", "cves": [], "html": "<p>\u5141\u8bb8\u4f18\u5316\u5355\u8c03\u9012\u589e\u7684\u7a97\u53e3\u51fd\u6570 <a href=\"/docs/16/functions-window.html#FUNCTIONS-WINDOW-TABLE\" title=\"\u8868\u00a09.64.\u00a0\u901a\u7528\u7a97\u53e3\u51fd\u6570\"><code>ntile()</code></a>\u3001<code>cume_dist()</code> \u548c <code>percent_rank()</code>\uff08David Rowley\uff09<a href=\"https://postgr.es/c/456fa635a\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4f18\u5316\u5355\u8c03\u9012\u589e\u7684\u7a97\u53e3\u51fd\u6570 ntile()\u3001cume_dist() \u548c percent_rank()\uff08David Rowley\uff09\u00a7", "title": "\u5141\u8bb8\u4f18\u5316\u5355\u8c03\u9012\u589e\u7684\u7a97\u53e3\u51fd\u6570 ntile()\u3001cume_dist() \u548c percent_rank()", "commits": ["456fa635a"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "0bc963fc9a4c22587f59d89d8a2fe0efe2aef82b07f2065d97bc8f3a976c8988", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["456fa635a"]], "identity_text": "Allow optimization of always-increasing window functions ntile(), cume_dist() and percent_rank() (David Rowley)", "commit_aliases": ["456fa635a"], "source_commits": ["456fa635a"], "source_entry_id": "16.0/changes/010", "db_id": "6692a77c509f1c1e74743156ecf91eee", "patch_ids": ["9d4f4e5c11e9a1e1ac2a9d958d22926a"], "statement_hash": "7b89b3d9b702edbb46afaa3c860a31d7f7d80072e8ab54c9e2c945ae69de2de9", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-6644c0f9c2ace357", "migration": false}, {"id": "16.0-34cbdd7f564c426f", "cves": [], "html": "<p>\u5141\u8bb8\u805a\u5408\u51fd\u6570 <a href=\"/docs/16/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE\" title=\"\u8868\u00a09.59.\u00a0\u901a\u7528\u805a\u5408\u51fd\u6570\"><code>string_agg()</code></a> \u548c <code>array_agg()</code> \u88ab\u5e76\u884c\u5316\uff08David Rowley\uff09<a href=\"https://postgr.es/c/16fd03e95\">\u00a7</a></p>", "text": "\u5141\u8bb8\u805a\u5408\u51fd\u6570 string_agg() \u548c array_agg() \u88ab\u5e76\u884c\u5316\uff08David Rowley\uff09\u00a7", "title": "\u5141\u8bb8\u805a\u5408\u51fd\u6570 string_agg() \u548c array_agg() \u88ab\u5e76\u884c\u5316", "commits": ["16fd03e95"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "bc9226ce936cc2bda5ce8eb1791d738cf120db9d7615bf7a6a28af192ebf96a8", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["16fd03e95"]], "identity_text": "Allow aggregate functions string_agg() and array_agg() to be parallelized (David Rowley)", "commit_aliases": ["16fd03e95"], "source_commits": ["16fd03e95"], "source_entry_id": "16.0/changes/011", "db_id": "f1acba6ee1c2af3c89806a26b66b89df", "patch_ids": ["96e8551fb59feafb18841b83934b9f7f"], "statement_hash": "e1eae593c3e486450967daeffb7a34dada3d8e2f3d27c988946898a4120127ca", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-34cbdd7f564c426f", "migration": false}, {"id": "16.0-421fb41ebca09f6f", "cves": [], "html": "<p>\u901a\u8fc7\u7f13\u5b58 <a href=\"/docs/16/ddl-partitioning.html#DDL-PARTITIONING-OVERVIEW\" title=\"5.11.1.\u00a0\u6982\u8ff0\"><code>RANGE</code></a> \u548c <code>LIST</code> \u5206\u533a\u67e5\u627e\u6765\u6539\u8fdb\u6027\u80fd\uff08Amit Langote\uff0cHou Zhijie\uff0cDavid Rowley\uff09<a href=\"https://postgr.es/c/3592e0ff9\">\u00a7</a></p>", "text": "\u901a\u8fc7\u7f13\u5b58 RANGE \u548c LIST \u5206\u533a\u67e5\u627e\u6765\u6539\u8fdb\u6027\u80fd\uff08Amit Langote\uff0cHou Zhijie\uff0cDavid Rowley\uff09\u00a7", "title": "\u901a\u8fc7\u7f13\u5b58 RANGE \u548c LIST \u5206\u533a\u67e5\u627e\u6765\u6539\u8fdb\u6027\u80fd", "commits": ["3592e0ff9"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "ff3b2cc1d5ea981784f3a6e7f4dad49606e4b28e29d62cd109f4551de0d9a63d", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["3592e0ff9"]], "identity_text": "Improve performance by caching RANGE and LIST partition lookups (Amit Langote, Hou Zhijie, David Rowley)", "commit_aliases": ["3592e0ff9"], "source_commits": ["3592e0ff9"], "source_entry_id": "16.0/changes/012", "db_id": "0c7fba4816dbd87c1f53a145f4403045", "patch_ids": ["043c0930ea75317dcb1eb795c75fc387"], "statement_hash": "9f4ca24bfe4609911d2ef8380c805f3002151ee945091eee3a63a843d3cc7a40", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-421fb41ebca09f6f", "migration": false}, {"id": "16.0-00afe7f3cd4c4d2e", "cves": [], "html": "<p>\u5141\u8bb8\u63a7\u5236 vacuum \u548c analyze \u4f7f\u7528\u7684\u5171\u4eab\u7f13\u51b2\u533a\uff08Melanie Plageman\uff09<a href=\"https://postgr.es/c/1cbbee033\">\u00a7</a> <a href=\"https://postgr.es/c/ae78cae3b\">\u00a7</a> <a href=\"https://postgr.es/c/b72f564d8\">\u00a7</a></p>\n<p><a href=\"/docs/16/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a>/<a href=\"/docs/16/sql-analyze.html\" title=\"ANALYZE\"><code>ANALYZE</code></a> \u9009\u9879\u4e3a <code>BUFFER_USAGE_LIMIT</code>\uff0c<a href=\"/docs/16/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a>\u9009\u9879\u4e3a <code>--buffer-usage-limit</code>\u3002\u9ed8\u8ba4\u503c\u7531\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/16/runtime-config-resource.html#GUC-VACUUM-BUFFER-USAGE-LIMIT\"><code>vacuum_buffer_usage_limit</code></a> \u8bbe\u7f6e\uff0c\u5b83\u4e5f\u63a7\u5236\u81ea\u52a8\u6e05\u7406\u3002</p>", "text": "\u5141\u8bb8\u63a7\u5236 vacuum \u548c analyze \u4f7f\u7528\u7684\u5171\u4eab\u7f13\u51b2\u533a\uff08Melanie Plageman\uff09\u00a7 \u00a7 \u00a7 VACUUM/ANALYZE \u9009\u9879\u4e3a BUFFER_USAGE_LIMIT\uff0cvacuumdb\u9009\u9879\u4e3a --buffer-usage-limit\u3002\u9ed8\u8ba4\u503c\u7531\u670d\u52a1\u5668\u53d8\u91cf vacuum_buffer_usage_limit \u8bbe\u7f6e\uff0c\u5b83\u4e5f\u63a7\u5236\u81ea\u52a8\u6e05\u7406\u3002", "title": "\u5141\u8bb8\u63a7\u5236 vacuum \u548c analyze \u4f7f\u7528\u7684\u5171\u4eab\u7f13\u51b2\u533a", "commits": ["1cbbee033", "ae78cae3b", "b72f564d8"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "61c9236f20808bb68fc24e69f4f22a8da0040192cf7311815fc43a7ca78f9915", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["1cbbee033"], ["ae78cae3b"], ["b72f564d8"]], "identity_text": "Allow control of the shared buffer usage by vacuum and analyze (Melanie Plageman) The VACUUM/ANALYZE option is BUFFER_USAGE_LIMIT, and the vacuumdb option is --buffer-usage-limit. The default value is set by server variable vacuum_buffer_usage_limit, which also controls autovacuum.", "commit_aliases": ["1cbbee033", "ae78cae3b", "b72f564d8"], "source_commits": ["1cbbee033", "ae78cae3b", "b72f564d8"], "source_entry_id": "16.0/changes/013", "db_id": "287b954ae68dc298282e73ec45edf342", "patch_ids": ["27310bfa7bc6d1a4497f808f7193bd28", "291417385e78d262ef3bce72966910b2", "92ab6a5cc447bc9881bdcd721b5c49b3"], "statement_hash": "4e4824271ca20a6ae700a13b6f7e064016385429c7f2a285faed1dd9e73e25a5", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-00afe7f3cd4c4d2e", "migration": false}, {"id": "16.0-c22e7da1de607c7d", "cves": [], "html": "<p>\u5728 <span>Windows</span> \u4e0a\u652f\u6301 <a href=\"/docs/16/runtime-config-wal.html#GUC-WAL-SYNC-METHOD\"><code>wal_sync_method=fdatasync</code></a>\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/9430fb407\">\u00a7</a></p>", "text": "\u5728 Windows \u4e0a\u652f\u6301 wal_sync_method=fdatasync\uff08Thomas Munro\uff09\u00a7", "title": "\u5728 Windows \u4e0a\u652f\u6301 wal_sync_method=fdatasync", "commits": ["9430fb407"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "e8dd08578e20646334a73356be64d947d39d56de9e5f7c06249549ae41fd3aec", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["9430fb407"]], "identity_text": "Support wal_sync_method=fdatasync on Windows (Thomas Munro)", "commit_aliases": ["9430fb407"], "source_commits": ["9430fb407"], "source_entry_id": "16.0/changes/014", "db_id": "0fdc46d4a055a3f11d16b1bf92b7d7fa", "patch_ids": ["ed06c5ee202939f7346d049f9758748e"], "statement_hash": "39347a5a080bedcf5312b9c2f5957ed6abb7b69b507e26abed4cf9c75d41812f", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-c22e7da1de607c7d", "migration": false}, {"id": "16.0-808df974c423064f", "cves": [], "html": "<p>\u5f53\u53ea\u66f4\u65b0\u4e86 <code>BRIN</code> \u7d22\u5f15\u5217\u65f6\uff0c\u5141\u8bb8 <a href=\"/docs/16/storage-hot.html\" title=\"73.7.\u00a0\u5806\u5185\u5143\u7ec4\uff08HOT\uff09\"><acronym>HOT</acronym></a> \u66f4\u65b0\uff08Matthias van de Meent\uff0cJosef Simanek\uff0cTomas Vondra\uff09<a href=\"https://postgr.es/c/19d8e2308\">\u00a7</a></p>", "text": "\u5f53\u53ea\u66f4\u65b0\u4e86 BRIN \u7d22\u5f15\u5217\u65f6\uff0c\u5141\u8bb8 HOT \u66f4\u65b0\uff08Matthias van de Meent\uff0cJosef Simanek\uff0cTomas Vondra\uff09\u00a7", "title": "\u5f53\u53ea\u66f4\u65b0\u4e86 BRIN \u7d22\u5f15\u5217\u65f6\uff0c\u5141\u8bb8 HOT \u66f4\u65b0", "commits": ["19d8e2308"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "bfdeac6eac218d1ca1b0282f030135c9f8614ed9b612ad83f1506312fd8458cc", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["19d8e2308"]], "identity_text": "Allow HOT updates if only BRIN-indexed columns are updated (Matthias van de Meent, Josef Simanek, Tomas Vondra)", "commit_aliases": ["19d8e2308"], "source_commits": ["19d8e2308"], "source_entry_id": "16.0/changes/015", "db_id": "0f56847b6bd56972522c2308abc77fae", "patch_ids": ["30468c592b185ef9807038b885c18c24"], "statement_hash": "cb8c53057a736793b7bed93e2913773a472fe191dd8bddd9e863e698ec8bb622", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-808df974c423064f", "migration": false}, {"id": "16.0-12956ce6e88c3ab4", "cves": [], "html": "<p>\u6539\u8fdb\u66f4\u65b0<a href=\"/docs/16/runtime-config-logging.html#GUC-UPDATE-PROCESS-TITLE\">\u8fdb\u7a0b\u6807\u9898</a>\u7684\u901f\u5ea6\uff08David Rowley\uff09<a href=\"https://postgr.es/c/2cb82e2ac\">\u00a7</a></p>", "text": "\u6539\u8fdb\u66f4\u65b0\u8fdb\u7a0b\u6807\u9898\u7684\u901f\u5ea6\uff08David Rowley\uff09\u00a7", "title": "\u6539\u8fdb\u66f4\u65b0\u8fdb\u7a0b\u6807\u9898\u7684\u901f\u5ea6", "commits": ["2cb82e2ac"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "25f45e71660eb76e32bfbb8791b92e02c359ac7ae8381abf41b96a8c23d76927", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["2cb82e2ac"]], "identity_text": "Improve the speed of updating the process title (David Rowley)", "commit_aliases": ["2cb82e2ac"], "source_commits": ["2cb82e2ac"], "source_entry_id": "16.0/changes/016", "db_id": "780f6379ebccc595c720ee9fcaefe263", "patch_ids": ["727be6c1117ce62f16f3ac6274c3c68f"], "statement_hash": "cc7447bc22129f36c50ba8b7bea9d753276de25a28aeee7304723c405fc40bae", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-12956ce6e88c3ab4", "migration": false}, {"id": "16.0-928e070f9071597a", "cves": [], "html": "<p>\u5141\u8bb8 <code>xid</code>/<code>subxid</code> \u641c\u7d22\u548c <acronym>ASCII</acronym> \u5b57\u7b26\u4e32\u68c0\u6d4b\u4f7f\u7528\u5411\u91cf\u8fd0\u7b97\uff08Nathan Bossart\uff0cJohn Naylor\uff09<a href=\"https://postgr.es/c/37a6e5df3\">\u00a7</a> <a href=\"https://postgr.es/c/121d2d3d7\">\u00a7</a> <a href=\"https://postgr.es/c/b6ef16756\">\u00a7</a> <a href=\"https://postgr.es/c/e813e0e16\">\u00a7</a></p>\n<p><acronym>ASCII</acronym> \u68c0\u6d4b\u5bf9\u4e8e <a href=\"/docs/16/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a> \u7279\u522b\u6709\u7528\u3002\u5411\u91cf\u8fd0\u7b97\u4e5f\u7528\u4e8e\u4e00\u4e9b C \u6570\u7ec4\u641c\u7d22\u3002</p>", "text": "\u5141\u8bb8 xid/subxid \u641c\u7d22\u548c ASCII \u5b57\u7b26\u4e32\u68c0\u6d4b\u4f7f\u7528\u5411\u91cf\u8fd0\u7b97\uff08Nathan Bossart\uff0cJohn Naylor\uff09\u00a7 \u00a7 \u00a7 \u00a7 ASCII \u68c0\u6d4b\u5bf9\u4e8e COPY FROM \u7279\u522b\u6709\u7528\u3002\u5411\u91cf\u8fd0\u7b97\u4e5f\u7528\u4e8e\u4e00\u4e9b C \u6570\u7ec4\u641c\u7d22\u3002", "title": "\u5141\u8bb8 xid/subxid \u641c\u7d22\u548c ASCII \u5b57\u7b26\u4e32\u68c0\u6d4b\u4f7f\u7528\u5411\u91cf\u8fd0\u7b97", "commits": ["121d2d3d7", "37a6e5df3", "b6ef16756", "e813e0e16"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "7153292008e76e4b754a404764abbfe7ff04bdfeb01d5c220b9790f26c51c8c3", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["121d2d3d7"], ["37a6e5df3"], ["b6ef16756"], ["e813e0e16"]], "identity_text": "Allow xid/subxid searches and ASCII string detection to use vector operations (Nathan Bossart, John Naylor) ASCII detection is particularly useful for COPY FROM. Vector operations are also used for some C array searches.", "commit_aliases": ["121d2d3d7", "37a6e5df3", "b6ef16756", "e813e0e16"], "source_commits": ["121d2d3d7", "37a6e5df3", "b6ef16756", "e813e0e16"], "source_entry_id": "16.0/changes/017", "db_id": "76cebba9a0416be7e2d2a1bb1d590f4c", "patch_ids": ["55a79d906ac18e5e9b12fb286c664381", "8cd730de369aff3f35c4f07d6e8f8ac7", "9200c165c810bfc3a62002611abafee6", "98b5b393df942a15427f95e81db79f3c"], "statement_hash": "26ef46f74a3b690cb57334773c0d92c237442517c3d87d1f171fac153f88a06f", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-928e070f9071597a", "migration": false}, {"id": "16.0-680e4e87729d40d9", "cves": [], "html": "<p>\u51cf\u5c11\u5185\u5b58\u5206\u914d\u7684\u5f00\u9500\uff08Andres Freund\uff0cDavid Rowley\uff09<a href=\"https://postgr.es/c/c6e0fe1f2\">\u00a7</a></p>", "text": "\u51cf\u5c11\u5185\u5b58\u5206\u914d\u7684\u5f00\u9500\uff08Andres Freund\uff0cDavid Rowley\uff09\u00a7", "title": "\u51cf\u5c11\u5185\u5b58\u5206\u914d\u7684\u5f00\u9500", "commits": ["c6e0fe1f2"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-PERFORMANCE", "source_hash": "620b2a3949e3e7b8a118a8ef9a4c73064c67c2d0da2f86bf899ec7ccf09bba4c", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["c6e0fe1f2"]], "identity_text": "Reduce overhead of memory allocations (Andres Freund, David Rowley)", "commit_aliases": ["c6e0fe1f2"], "source_commits": ["c6e0fe1f2"], "source_entry_id": "16.0/changes/018", "db_id": "a1e378022a0e6d1c83b942d1f87f968b", "patch_ids": ["b83ab0346f913fc3be5d8a6b1e7e0b9f"], "statement_hash": "7e28360d239901d070b9c07d1ea9e67fecdfcc424217b969575d245684c199f7", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-680e4e87729d40d9", "migration": false}, {"id": "16.0-a154e46c343f48c0", "cves": [], "html": "<p>\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/16/monitoring-stats.html#MONITORING-PG-STAT-IO-VIEW\" title=\"28.2.13.\u00a0pg_stat_io\"><code>pg_stat_io</code></a> \u4ee5\u8ddf\u8e2a <acronym>I/O</acronym> \u7edf\u8ba1\uff08Melanie Plageman\uff09<a href=\"https://postgr.es/c/a9c70b46d\">\u00a7</a> <a href=\"https://postgr.es/c/8aaa04b32\">\u00a7</a> <a href=\"https://postgr.es/c/ac8d53dae\">\u00a7</a> <a href=\"https://postgr.es/c/0ecb87e1f\">\u00a7</a> <a href=\"https://postgr.es/c/093e5c57d\">\u00a7</a></p>", "text": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_stat_io \u4ee5\u8ddf\u8e2a I/O \u7edf\u8ba1\uff08Melanie Plageman\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u00a7", "title": "\u589e\u52a0\u7cfb\u7edf\u89c6\u56fe pg_stat_io \u4ee5\u8ddf\u8e2a I/O \u7edf\u8ba1", "commits": ["093e5c57d", "0ecb87e1f", "8aaa04b32", "a9c70b46d", "ac8d53dae"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "cfb4544e62ff06177cb7a15fd37650778f1a2f66668a92530977537d8fd6799f", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["093e5c57d"], ["0ecb87e1f"], ["8aaa04b32"], ["a9c70b46d"], ["ac8d53dae"]], "identity_text": "Add system view pg_stat_io view to track I/O statistics (Melanie Plageman)", "commit_aliases": ["093e5c57d", "0ecb87e1f", "8aaa04b32", "a9c70b46d", "ac8d53dae"], "source_commits": ["093e5c57d", "0ecb87e1f", "8aaa04b32", "a9c70b46d", "ac8d53dae"], "source_entry_id": "16.0/changes/019", "db_id": "a2ad0b82efdec9aa9d94d5eb2a3a8405", "patch_ids": ["1c4ce2e3a0aa5cbed6629b19e3c4b40b", "5d68e42650e2bce9d845c2be7a6ae446", "74a638d90bff700b6f0aac4a0b229b0b", "d1986cdcf2de79eec5822be4c40de221", "e4c0725325231f50bd224199460931f4"], "statement_hash": "2606364de89f5d97a8b9764f26523a44d640ac74cc6c4e9b9fa0732839f9a99a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-a154e46c343f48c0", "migration": false}, {"id": "16.0-9be8f8ffa585e4d7", "cves": [], "html": "<p>\u8bb0\u5f55\u8868\u4e0a\u6700\u540e\u4e00\u6b21\u987a\u5e8f\u626b\u63cf\u548c\u7d22\u5f15\u626b\u63cf\u7684\u7edf\u8ba1\u4fe1\u606f\uff08Dave Page\uff09<a href=\"https://postgr.es/c/c03747183\">\u00a7</a></p>\n<p>\u6b64\u4fe1\u606f\u663e\u793a\u5728 <a href=\"/docs/16/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW\" title=\"\u8868\u00a028.28.\u00a0pg_stat_all_tables \u89c6\u56fe\"><code>pg_stat_*_tables</code></a> \u548c <a href=\"/docs/16/monitoring-stats.html#MONITORING-PG-STAT-ALL-INDEXES-VIEW\" title=\"28.2.19.\u00a0pg_stat_all_indexes\"><code>pg_stat_*_indexes</code></a> \u4e2d\u3002</p>", "text": "\u8bb0\u5f55\u8868\u4e0a\u6700\u540e\u4e00\u6b21\u987a\u5e8f\u626b\u63cf\u548c\u7d22\u5f15\u626b\u63cf\u7684\u7edf\u8ba1\u4fe1\u606f\uff08Dave Page\uff09\u00a7 \u6b64\u4fe1\u606f\u663e\u793a\u5728 pg_stat_*_tables \u548c pg_stat_*_indexes \u4e2d\u3002", "title": "\u8bb0\u5f55\u8868\u4e0a\u6700\u540e\u4e00\u6b21\u987a\u5e8f\u626b\u63cf\u548c\u7d22\u5f15\u626b\u63cf\u7684\u7edf\u8ba1\u4fe1\u606f", "commits": ["c03747183"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "fa911a2a6a10197b11bf8cab66929d793882a8d63cf93e1ca36dc24901156d07", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["c03747183"]], "identity_text": "Record statistics on the last sequential and index scans on tables (Dave Page) This information appears in pg_stat_*_tables and pg_stat_*_indexes.", "commit_aliases": ["c03747183"], "source_commits": ["c03747183"], "source_entry_id": "16.0/changes/020", "db_id": "ccadd1efd0969b05194eaec65727f7af", "patch_ids": ["c4ba190f0d91d4b4cfa7ce2f43980989"], "statement_hash": "ca898d673782c499c0c6f27bc88d6cb71528bf6980f5f5f7a594d87c4d525557", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-9be8f8ffa585e4d7", "migration": false}, {"id": "16.0-82f6a7a1a7329b7f", "cves": [], "html": "<p>\u8bb0\u5f55\u5df2\u66f4\u65b0\u884c\u79fb\u52a8\u5230\u65b0\u9875\u9762\u7684\u7edf\u8ba1\u4fe1\u606f\uff08Corey Huinker\uff09<a href=\"https://postgr.es/c/ae4fdde13\">\u00a7</a></p>\n<p><code>pg_stat_*_tables</code> \u5217\u4e3a <a href=\"/docs/16/monitoring-stats.html#MONITORING-PG-STAT-ALL-TABLES-VIEW\" title=\"28.2.18.\u00a0pg_stat_all_tables\"><code>n_tup_newpage_upd</code></a>\u3002</p>", "text": "\u8bb0\u5f55\u5df2\u66f4\u65b0\u884c\u79fb\u52a8\u5230\u65b0\u9875\u9762\u7684\u7edf\u8ba1\u4fe1\u606f\uff08Corey Huinker\uff09\u00a7 pg_stat_*_tables \u5217\u4e3a n_tup_newpage_upd\u3002", "title": "\u8bb0\u5f55\u5df2\u66f4\u65b0\u884c\u79fb\u52a8\u5230\u65b0\u9875\u9762\u7684\u7edf\u8ba1\u4fe1\u606f", "commits": ["ae4fdde13"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "15d92a8f87e00eff5ee12816fc3fc4b5c922ba620ed82c54f1cf6b6a21f9c25c", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["ae4fdde13"]], "identity_text": "Record statistics on the occurrence of updated rows moving to new pages (Corey Huinker) The pg_stat_*_tables column is n_tup_newpage_upd.", "commit_aliases": ["ae4fdde13"], "source_commits": ["ae4fdde13"], "source_entry_id": "16.0/changes/021", "db_id": "d978ff661068cc4a447a09387bf8eb66", "patch_ids": ["1e7bdf77023add4aeb523e9a777a62cd"], "statement_hash": "eb90460ee65d612b03af4d4571313a8cfe1aef0a42d76dcc18de09348ab48db9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-82f6a7a1a7329b7f", "migration": false}, {"id": "16.0-f90f2925034016ea", "cves": [], "html": "<p>\u5411 <a href=\"/docs/16/view-pg-locks.html\" title=\"54.12.\u00a0pg_locks\"><code>pg_locks</code></a> \u7cfb\u7edf\u89c6\u56fe\u6dfb\u52a0\u63a8\u6d4b\u9501\u4fe1\u606f\uff08Masahiko Sawada\uff0cNoriyoshi Shinoda\uff09<a href=\"https://postgr.es/c/f74573969\">\u00a7</a></p>\n<p>\u4e8b\u52a1 ID \u663e\u793a\u5728 <code>transactionid</code> \u5217\u4e2d\uff0c\u63a8\u6d4b\u63d2\u5165\u4ee4\u724c\u663e\u793a\u5728 <code>objid</code> \u5217\u4e2d\u3002</p>", "text": "\u5411 pg_locks \u7cfb\u7edf\u89c6\u56fe\u6dfb\u52a0\u63a8\u6d4b\u9501\u4fe1\u606f\uff08Masahiko Sawada\uff0cNoriyoshi Shinoda\uff09\u00a7 \u4e8b\u52a1 ID \u663e\u793a\u5728 transactionid \u5217\u4e2d\uff0c\u63a8\u6d4b\u63d2\u5165\u4ee4\u724c\u663e\u793a\u5728 objid \u5217\u4e2d\u3002", "title": "\u5411 pg_locks \u7cfb\u7edf\u89c6\u56fe\u6dfb\u52a0\u63a8\u6d4b\u9501\u4fe1\u606f", "commits": ["f74573969"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "83431dde82d7d10807d0015bda97f652144d6b627de6c529921cf56ce0bc4eb7", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["f74573969"]], "identity_text": "Add speculative lock information to the pg_locks system view (Masahiko Sawada, Noriyoshi Shinoda) The transaction id is displayed in the transactionid column and the speculative insertion token is displayed in the objid column.", "commit_aliases": ["f74573969"], "source_commits": ["f74573969"], "source_entry_id": "16.0/changes/022", "db_id": "144cb13a6b59a8bbcfe8210055d2c4fb", "patch_ids": ["4d832ebf7d13c3533e76b0116559e1e9"], "statement_hash": "75a357610b8c8b5e8a3ee91a48d315064675747a1f14bb7f66d05a19406bab43", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-f90f2925034016ea", "migration": false}, {"id": "16.0-862d57147bfa3a90", "cves": [], "html": "<p>\u5411 <a href=\"/docs/16/view-pg-prepared-statements.html\" title=\"54.15.\u00a0pg_prepared_statements\"><code>pg_prepared_statements</code></a> \u89c6\u56fe\u6dfb\u52a0\u9884\u5907\u8bed\u53e5\u7ed3\u679c\u7c7b\u578b\u7684\u663e\u793a\uff08Dagfinn Ilmari Manns\u00e5ker\uff09<a href=\"https://postgr.es/c/84ad713cf\">\u00a7</a> <a href=\"https://postgr.es/c/6ffff0fd2\">\u00a7</a></p>", "text": "\u5411 pg_prepared_statements \u89c6\u56fe\u6dfb\u52a0\u9884\u5907\u8bed\u53e5\u7ed3\u679c\u7c7b\u578b\u7684\u663e\u793a\uff08Dagfinn Ilmari Manns\u00e5ker\uff09\u00a7 \u00a7", "title": "\u5411 pg_prepared_statements \u89c6\u56fe\u6dfb\u52a0\u9884\u5907\u8bed\u53e5\u7ed3\u679c\u7c7b\u578b\u7684\u663e\u793a", "commits": ["6ffff0fd2", "84ad713cf"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "8e61f00e23518fa3a11e4f083a0d2af185c585ae07803f2dbe186c3dfbdcc4b1", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["6ffff0fd2"], ["84ad713cf"]], "identity_text": "Add the display of prepared statement result types to the pg_prepared_statements view (Dagfinn Ilmari Manns\u00e5ker)", "commit_aliases": ["6ffff0fd2", "84ad713cf"], "source_commits": ["6ffff0fd2", "84ad713cf"], "source_entry_id": "16.0/changes/023", "db_id": "eb1ec79d2db2312703d6a4a6efa5ee58", "patch_ids": ["4aec479382e883c08b2a26c07c8f13a6", "8385af63f370093cedad91ff0b9d68d6"], "statement_hash": "e41ee27361a8b5453f53b62666511e666125fbdb31390ddee79429fa4c05da11", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-862d57147bfa3a90", "migration": false}, {"id": "16.0-ffed4e495a85bae2", "cves": [], "html": "<p>\u5728\u8ba2\u9605\u521b\u5efa\u65f6\u521b\u5efa\u8ba2\u9605\u7edf\u8ba1\u6761\u76ee\uff0c\u4f7f <a href=\"/docs/16/monitoring-stats.html#PG-STAT-DATABASE-VIEW\" title=\"\u8868\u00a028.26.\u00a0pg_stat_database \u89c6\u56fe\"><code>stats_reset</code></a> \u51c6\u786e\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/e0b014295\">\u00a7</a></p>\n<p>\u4e4b\u524d\u6761\u76ee\u4ec5\u5728\u9996\u6b21\u62a5\u544a\u7edf\u8ba1\u4fe1\u606f\u65f6\u521b\u5efa\u3002</p>", "text": "\u5728\u8ba2\u9605\u521b\u5efa\u65f6\u521b\u5efa\u8ba2\u9605\u7edf\u8ba1\u6761\u76ee\uff0c\u4f7f stats_reset \u51c6\u786e\uff08Andres Freund\uff09\u00a7 \u4e4b\u524d\u6761\u76ee\u4ec5\u5728\u9996\u6b21\u62a5\u544a\u7edf\u8ba1\u4fe1\u606f\u65f6\u521b\u5efa\u3002", "title": "\u5728\u8ba2\u9605\u521b\u5efa\u65f6\u521b\u5efa\u8ba2\u9605\u7edf\u8ba1\u6761\u76ee\uff0c\u4f7f stats_reset \u51c6\u786e", "commits": ["e0b014295"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "cf954e39877f1c018c3b4f770a8ccff1f6cf7bfadf6a6bb44b17193a515ee586", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["e0b014295"]], "identity_text": "Create subscription statistics entries at subscription creation time so stats_reset is accurate (Andres Freund) Previously entries were created only when the first statistics were reported.", "commit_aliases": ["e0b014295"], "source_commits": ["e0b014295"], "source_entry_id": "16.0/changes/024", "db_id": "21430e43a8df90341adcb221cb993b06", "patch_ids": ["ca6dc6ad2dbe12cce60fe12b210ce4bf"], "statement_hash": "d3d18d1c12f696d8625d5c7084d48a27c3c180ce1e83f28e08fb4f5da83c65b6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-ffed4e495a85bae2", "migration": false}, {"id": "16.0-66f1a4b6b2ad28f2", "cves": [], "html": "<p>\u4fee\u6b63 <a href=\"/docs/16/monitoring-stats.html#PG-STAT-DATABASE-VIEW\" title=\"\u8868\u00a028.26.\u00a0pg_stat_database \u89c6\u56fe\"><code>pg_stat_database</code></a> \u4e2d\u663e\u793a\u7684\u4e34\u65f6\u5173\u7cfb\u5199\u5165\u7684 <acronym>I/O</acronym> \u7edf\u8ba1\uff08Melanie Plageman\uff09<a href=\"https://postgr.es/c/704261ecc\">\u00a7</a></p>", "text": "\u4fee\u6b63 pg_stat_database \u4e2d\u663e\u793a\u7684\u4e34\u65f6\u5173\u7cfb\u5199\u5165\u7684 I/O \u7edf\u8ba1\uff08Melanie Plageman\uff09\u00a7", "title": "\u4fee\u6b63 pg_stat_database \u4e2d\u663e\u793a\u7684\u4e34\u65f6\u5173\u7cfb\u5199\u5165\u7684 I/O \u7edf\u8ba1", "commits": ["704261ecc"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "bugfix", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "c39ab887eecd8ba0e8c7563b97b512423b521262b476f2dbf92ee892cddd337b", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["704261ecc"]], "identity_text": "Correct the I/O accounting for temp relation writes shown in pg_stat_database (Melanie Plageman)", "commit_aliases": ["704261ecc"], "source_commits": ["704261ecc"], "source_entry_id": "16.0/changes/025", "db_id": "7e641eaab02569d94507cf600be93795", "patch_ids": ["29ab54c9f4c9b71c24add143a41d18b2"], "statement_hash": "a931010081a12dc76fc749a66dd56c58329e703e01f20628f84d6a351226d9b3", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=16.0#16.0-66f1a4b6b2ad28f2", "migration": false}, {"id": "16.0-b56cb81f1da83ba5", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/16/monitoring-stats.html#MONITORING-STATS-BACKEND-FUNCS-TABLE\" title=\"\u8868\u00a028.36.\u00a0\u6309\u540e\u7aef\u7edf\u8ba1\u51fd\u6570\"><code>pg_stat_get_backend_subxact()</code></a> \u4ee5\u62a5\u544a\u4f1a\u8bdd\u7684\u5b50\u4e8b\u52a1\u7f13\u5b58\uff08Dilip Kumar\uff09<a href=\"https://postgr.es/c/10ea0f924\">\u00a7</a></p>", "text": "\u589e\u52a0\u51fd\u6570 pg_stat_get_backend_subxact() \u4ee5\u62a5\u544a\u4f1a\u8bdd\u7684\u5b50\u4e8b\u52a1\u7f13\u5b58\uff08Dilip Kumar\uff09\u00a7", "title": "\u589e\u52a0\u51fd\u6570 pg_stat_get_backend_subxact() \u4ee5\u62a5\u544a\u4f1a\u8bdd\u7684\u5b50\u4e8b\u52a1\u7f13\u5b58", "commits": ["10ea0f924"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "d0b39a2acfa5afdeb106ac7f10479726ca15434e77969321799ce319bfce333b", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["10ea0f924"]], "identity_text": "Add function pg_stat_get_backend_subxact() to report on a session's subtransaction cache (Dilip Kumar)", "commit_aliases": ["10ea0f924"], "source_commits": ["10ea0f924"], "source_entry_id": "16.0/changes/026", "db_id": "b21ff57da76e8f57ad828f44295babf6", "patch_ids": ["372fa21ad67b5f89547b42d5a53981cf"], "statement_hash": "65b8c2b77b490263991d4cc5f5338f874ab1b4d9b39039657bd5da33e4888ca8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-b56cb81f1da83ba5", "migration": false}, {"id": "16.0-fe92fd2ab1653b0d", "cves": [], "html": "<p>\u4f7f <a href=\"/docs/16/monitoring-stats.html#MONITORING-STATS-BACKEND-FUNCS-TABLE\" title=\"\u8868\u00a028.36.\u00a0\u6309\u540e\u7aef\u7edf\u8ba1\u51fd\u6570\"><code>pg_stat_get_backend_idset()</code></a>\u3001<code>pg_stat_get_backend_activity()</code> \u548c\u76f8\u5173\u51fd\u6570\u4f7f\u7528\u4e0d\u53d8\u7684\u540e\u7aef id\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/d7e39d72c\">\u00a7</a></p>\n<p>\u4e4b\u524d\u7d22\u5f15\u503c\u5728\u4f1a\u8bdd\u751f\u547d\u5468\u671f\u5185\u53ef\u80fd\u4f1a\u66f4\u6539\u3002</p>", "text": "\u4f7f pg_stat_get_backend_idset()\u3001pg_stat_get_backend_activity() \u548c\u76f8\u5173\u51fd\u6570\u4f7f\u7528\u4e0d\u53d8\u7684\u540e\u7aef id\uff08Nathan Bossart\uff09\u00a7 \u4e4b\u524d\u7d22\u5f15\u503c\u5728\u4f1a\u8bdd\u751f\u547d\u5468\u671f\u5185\u53ef\u80fd\u4f1a\u66f4\u6539\u3002", "title": "\u4f7f pg_stat_get_backend_idset()\u3001pg_stat_get_backend_activity() \u548c\u76f8\u5173\u51fd\u6570\u4f7f\u7528\u4e0d\u53d8\u7684\u540e\u7aef id", "commits": ["d7e39d72c"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "f7cc8d702f3d2b5a061d4dd94366c8f2ad9dcc5718ff49a3a0691a2962615890", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["d7e39d72c"]], "identity_text": "Have pg_stat_get_backend_idset(), pg_stat_get_backend_activity(), and related functions use the unchanging backend id (Nathan Bossart) Previously the index values might change during the lifetime of the session.", "commit_aliases": ["d7e39d72c"], "source_commits": ["d7e39d72c"], "source_entry_id": "16.0/changes/027", "db_id": "1371d92f4cb40808c3e5de69dfae7392", "patch_ids": ["f8cafab6edefef23fda3e8e195c5cc79"], "statement_hash": "64c217213dd4bbe198f05b3a28d19b6732ca8c68b2a59720946c5fc7fd39f465", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-fe92fd2ab1653b0d", "migration": false}, {"id": "16.0-92572bd2b49ebe3c", "cves": [], "html": "<p>\u4ee5\u7279\u6b8a\u7684\u540e\u7aef\u7c7b\u578b\u62a5\u544a\u72ec\u7acb\u540e\u7aef\uff08Melanie Plageman\uff09<a href=\"https://postgr.es/c/0c679464a\">\u00a7</a></p>", "text": "\u4ee5\u7279\u6b8a\u7684\u540e\u7aef\u7c7b\u578b\u62a5\u544a\u72ec\u7acb\u540e\u7aef\uff08Melanie Plageman\uff09\u00a7", "title": "\u4ee5\u7279\u6b8a\u7684\u540e\u7aef\u7c7b\u578b\u62a5\u544a\u72ec\u7acb\u540e\u7aef", "commits": ["0c679464a"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "50518296140e8f9dedf8223338254057a8fd36c840ed3691352ad0891889aae7", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["0c679464a"]], "identity_text": "Report stand-alone backends with a special backend type (Melanie Plageman)", "commit_aliases": ["0c679464a"], "source_commits": ["0c679464a"], "source_entry_id": "16.0/changes/028", "db_id": "53d6d2f6b779b477cb6e112097562a4c", "patch_ids": ["811e1d1439c998177ee8fce1a81021b0"], "statement_hash": "31bb59bfe5a801e3ca0a2c5426432aff8321eb48586cfc8e8291d08c599edf81", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-92572bd2b49ebe3c", "migration": false}, {"id": "16.0-6c7c151d62959575", "cves": [], "html": "<p>\u589e\u52a0\u7b49\u5f85\u4e8b\u4ef6 <a href=\"/docs/16/monitoring-stats.html#WAIT-EVENT-TIMEOUT-TABLE\" title=\"\u8868\u00a028.13.\u00a0 Timeout\u7c7b\u578b\u7684\u7b49\u5f85\u4e8b\u4ef6\"><code>SpinDelay</code></a> \u4ee5\u62a5\u544a\u81ea\u65cb\u9501\u7761\u7720\u5ef6\u8fdf\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/92daeca45\">\u00a7</a></p>", "text": "\u589e\u52a0\u7b49\u5f85\u4e8b\u4ef6 SpinDelay \u4ee5\u62a5\u544a\u81ea\u65cb\u9501\u7761\u7720\u5ef6\u8fdf\uff08Andres Freund\uff09\u00a7", "title": "\u589e\u52a0\u7b49\u5f85\u4e8b\u4ef6 SpinDelay \u4ee5\u62a5\u544a\u81ea\u65cb\u9501\u7761\u7720\u5ef6\u8fdf", "commits": ["92daeca45"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "ecacb3449aab3b327ae72346b0d4f6eb53802ec4072468059c3e7f904544d026", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["92daeca45"]], "identity_text": "Add wait event SpinDelay to report spinlock sleep delays (Andres Freund)", "commit_aliases": ["92daeca45"], "source_commits": ["92daeca45"], "source_entry_id": "16.0/changes/029", "db_id": "50bf18619fc1f653e80e9a706e4c70e9", "patch_ids": ["5ea5bed0f394cc42f64ae8b6c0de804e"], "statement_hash": "45ed921efe6eba090135c6aec54a486813262e7ba5e105ae89449fb21ccb7c74", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-6c7c151d62959575", "migration": false}, {"id": "16.0-496bd653ea3a486c", "cves": [], "html": "<p>\u521b\u5efa\u65b0\u7684\u7b49\u5f85\u4e8b\u4ef6 <a href=\"/docs/16/monitoring-stats.html#WAIT-EVENT-IO-TABLE\" title=\"\u8868\u00a028.9.\u00a0IO\u7c7b\u578b\u7684\u7b49\u5f85\u4e8b\u4ef6\"><code>DSMAllocate</code></a> \u4ee5\u6307\u793a\u7b49\u5f85\u52a8\u6001\u5171\u4eab\u5185\u5b58\u5206\u914d\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/7bae3bbf6\">\u00a7</a></p>\n<p>\u4e4b\u524d\u6b64\u7c7b\u7b49\u5f85\u88ab\u62a5\u544a\u4e3a <code>DSMFillZeroWrite</code>\uff0c\u8be5\u540d\u79f0\u4e5f\u88ab <code>mmap()</code> \u5206\u914d\u4f7f\u7528\u3002</p>", "text": "\u521b\u5efa\u65b0\u7684\u7b49\u5f85\u4e8b\u4ef6 DSMAllocate \u4ee5\u6307\u793a\u7b49\u5f85\u52a8\u6001\u5171\u4eab\u5185\u5b58\u5206\u914d\uff08Thomas Munro\uff09\u00a7 \u4e4b\u524d\u6b64\u7c7b\u7b49\u5f85\u88ab\u62a5\u544a\u4e3a DSMFillZeroWrite\uff0c\u8be5\u540d\u79f0\u4e5f\u88ab mmap() \u5206\u914d\u4f7f\u7528\u3002", "title": "\u521b\u5efa\u65b0\u7684\u7b49\u5f85\u4e8b\u4ef6 DSMAllocate \u4ee5\u6307\u793a\u7b49\u5f85\u52a8\u6001\u5171\u4eab\u5185\u5b58\u5206\u914d", "commits": ["7bae3bbf6"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "95777abf006397908960bb91fb5dca4205c095c05fb1c004bf88386a5e372bfb", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["7bae3bbf6"]], "identity_text": "Create new wait event DSMAllocate to indicate waiting for dynamic shared memory allocation (Thomas Munro) Previously this type of wait was reported as DSMFillZeroWrite, which was also used by mmap() allocations.", "commit_aliases": ["7bae3bbf6"], "source_commits": ["7bae3bbf6"], "source_entry_id": "16.0/changes/030", "db_id": "4c58e72d4b609bc9390d841632bbaf14", "patch_ids": ["cb098b810bb6829ff8003f9744d63dc3"], "statement_hash": "4ef0c651cf300f619b958637e277d0fe1bc1f951f63b419bdb785b754b9cf874", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-496bd653ea3a486c", "migration": false}, {"id": "16.0-960f46e511f5f1ca", "cves": [], "html": "<p>\u5c06\u6570\u636e\u5e93\u540d\u79f0\u6dfb\u52a0\u5230\u903b\u8f91 <acronym>WAL</acronym> \u53d1\u9001\u5668\u7684<a href=\"/docs/16/runtime-config-logging.html#GUC-UPDATE-PROCESS-TITLE\">\u8fdb\u7a0b\u6807\u9898</a>\u4e2d\uff08Tatsuhiro Nakamori\uff09<a href=\"https://postgr.es/c/af205152e\">\u00a7</a></p>\n<p>\u7269\u7406 <acronym>WAL</acronym> \u53d1\u9001\u5668\u4e0d\u663e\u793a\u6570\u636e\u5e93\u540d\u79f0\u3002</p>", "text": "\u5c06\u6570\u636e\u5e93\u540d\u79f0\u6dfb\u52a0\u5230\u903b\u8f91 WAL \u53d1\u9001\u5668\u7684\u8fdb\u7a0b\u6807\u9898\u4e2d\uff08Tatsuhiro Nakamori\uff09\u00a7 \u7269\u7406 WAL \u53d1\u9001\u5668\u4e0d\u663e\u793a\u6570\u636e\u5e93\u540d\u79f0\u3002", "title": "\u5c06\u6570\u636e\u5e93\u540d\u79f0\u6dfb\u52a0\u5230\u903b\u8f91 WAL \u53d1\u9001\u5668\u7684\u8fdb\u7a0b\u6807\u9898\u4e2d", "commits": ["af205152e"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "d0de6d17ef6a64f43aa372cb1500fae473c66d86de26bdc6eef331d0ce4f5ecf", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["af205152e"]], "identity_text": "Add the database name to the process title of logical WAL senders (Tatsuhiro Nakamori) Physical WAL senders do not display a database name.", "commit_aliases": ["af205152e"], "source_commits": ["af205152e"], "source_entry_id": "16.0/changes/031", "db_id": "7f1eb683be226d26b1ca30934fe374e6", "patch_ids": ["b76cfa49f69a819f02742df66c91bf1f"], "statement_hash": "51d418a4214815827ee028d5cf1d4b161f8eea015704fae6c82f6af57ce2b1c9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-960f46e511f5f1ca", "migration": false}, {"id": "16.0-ab3e8b2c20c3e0a7", "cves": [], "html": "<p>\u5411 <a href=\"/docs/16/runtime-config-logging.html#GUC-LOG-CHECKPOINTS\"><code>log_checkpoints</code></a> \u6d88\u606f\u6dfb\u52a0\u68c0\u67e5\u70b9\u548c <code>REDO LSN</code> \u4fe1\u606f\uff08Bharath Rupireddy\uff0cKyotaro Horiguchi\uff09<a href=\"https://postgr.es/c/62c46eee2\">\u00a7</a></p>", "text": "\u5411 log_checkpoints \u6d88\u606f\u6dfb\u52a0\u68c0\u67e5\u70b9\u548c REDO LSN \u4fe1\u606f\uff08Bharath Rupireddy\uff0cKyotaro Horiguchi\uff09\u00a7", "title": "\u5411 log_checkpoints \u6d88\u606f\u6dfb\u52a0\u68c0\u67e5\u70b9\u548c REDO LSN \u4fe1\u606f", "commits": ["62c46eee2"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "18c2c38a50e7519cd2fdaa1a31163bda543c42e2b9c4b122615913009bafd8de", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["62c46eee2"]], "identity_text": "Add checkpoint and REDO LSN information to log_checkpoints messages (Bharath Rupireddy, Kyotaro Horiguchi)", "commit_aliases": ["62c46eee2"], "source_commits": ["62c46eee2"], "source_entry_id": "16.0/changes/032", "db_id": "9976d6fa2083fc39a4d79168c61f8fd6", "patch_ids": ["2d2e45940e3391fb9a1bc3a921e96048"], "statement_hash": "1d14380b85d6937c025ce7b0618e098e6c0ee303f9ef9e2104413834c71fcc15", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-ab3e8b2c20c3e0a7", "migration": false}, {"id": "16.0-64bb50f3d2d6123d", "cves": [], "html": "<p>\u5728\u5ba2\u6237\u7aef\u8bc1\u4e66\u5931\u8d25\u65f6\u63d0\u4f9b\u989d\u5916\u8be6\u7ec6\u4fe1\u606f\uff08Jacob Champion\uff09<a href=\"https://postgr.es/c/3a0e38504\">\u00a7</a></p>", "text": "\u5728\u5ba2\u6237\u7aef\u8bc1\u4e66\u5931\u8d25\u65f6\u63d0\u4f9b\u989d\u5916\u8be6\u7ec6\u4fe1\u606f\uff08Jacob Champion\uff09\u00a7", "title": "\u5728\u5ba2\u6237\u7aef\u8bc1\u4e66\u5931\u8d25\u65f6\u63d0\u4f9b\u989d\u5916\u8be6\u7ec6\u4fe1\u606f", "commits": ["3a0e38504"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MONITORING", "source_hash": "8034f9b6e0b7a1f452d385398a46b58b691ffccbe8362f47f73dbb4e69b60fa6", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["3a0e38504"]], "identity_text": "Provide additional details during client certificate failures (Jacob Champion)", "commit_aliases": ["3a0e38504"], "source_commits": ["3a0e38504"], "source_entry_id": "16.0/changes/033", "db_id": "109962e39cd38a26e56c069afacaad5b", "patch_ids": ["c30d9457d6b9b277a556009df2b65fe8"], "statement_hash": "87e65dc56ee8c106d24e33e33b7df8db2c8487e88deb6a0bab861dc6a069fdb8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-64bb50f3d2d6123d", "migration": false}, {"id": "16.0-0a8487c318f1d1e2", "cves": [], "html": "<p>\u589e\u52a0\u5177\u6709\u521b\u5efa\u8ba2\u9605\u6743\u9650\u7684\u9884\u5b9a\u4e49\u89d2\u8272 <a href=\"/docs/16/predefined-roles.html\" title=\"22.5.\u00a0\u9884\u5b9a\u4e49\u89d2\u8272\"><code>pg_create_subscription</code></a>\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/c3afe8cf5\">\u00a7</a></p>", "text": "\u589e\u52a0\u5177\u6709\u521b\u5efa\u8ba2\u9605\u6743\u9650\u7684\u9884\u5b9a\u4e49\u89d2\u8272 pg_create_subscription\uff08Robert Haas\uff09\u00a7", "title": "\u589e\u52a0\u5177\u6709\u521b\u5efa\u8ba2\u9605\u6743\u9650\u7684\u9884\u5b9a\u4e49\u89d2\u8272 pg_create_subscription", "commits": ["c3afe8cf5"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "0ca255b32d56b8bf60e2b6c8db3f6e571f3dd9a44da5f741689332354cbfb269", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["c3afe8cf5"]], "identity_text": "Add predefined role pg_create_subscription with permission to create subscriptions (Robert Haas)", "commit_aliases": ["c3afe8cf5"], "source_commits": ["c3afe8cf5"], "source_entry_id": "16.0/changes/034", "db_id": "333405cb0d257fc36ce99d779f85a196", "patch_ids": ["38efe5461c206e0e034559d4a91f45d0"], "statement_hash": "8d065e514f4d7eb8ca09fd33dcd28176833acd9d98640bedd44cdbd550616808", "relations": [{"rule": 2, "type": "related", "target": "418f288dc007fcb250d7b6ff611924ba", "evidence": {"same_day": true, "patch_ids": ["38efe5461c206e0e034559d4a91f45d0"], "ambiguous_patch_ids": ["38efe5461c206e0e034559d4a91f45d0"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-0a8487c318f1d1e2", "migration": false}, {"id": "16.0-3ec13dbca0cb8f3f", "cves": [], "html": "<p>\u5141\u8bb8\u8ba2\u9605\u4e0d\u8981\u6c42\u5bc6\u7801\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/c3afe8cf5\">\u00a7</a> <a href=\"https://postgr.es/c/c1cc4e688\">\u00a7</a> <a href=\"https://postgr.es/c/19e65dff3\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7\u9009\u9879 <a href=\"/docs/16/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>password_required=false</code></a> \u5b9e\u73b0\u3002</p>", "text": "\u5141\u8bb8\u8ba2\u9605\u4e0d\u8981\u6c42\u5bc6\u7801\uff08Robert Haas\uff09\u00a7 \u00a7 \u00a7 \u8fd9\u901a\u8fc7\u9009\u9879 password_required=false \u5b9e\u73b0\u3002", "title": "\u5141\u8bb8\u8ba2\u9605\u4e0d\u8981\u6c42\u5bc6\u7801", "commits": ["19e65dff3", "c1cc4e688", "c3afe8cf5"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "4e429a7a891597dddde63433790b4f3d2b4c549a0860684dc28751eff6efcbb8", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["19e65dff3"], ["c1cc4e688"], ["c3afe8cf5"]], "identity_text": "Allow subscriptions to not require passwords (Robert Haas) This is accomplished with the option password_required=false.", "commit_aliases": ["19e65dff3", "c1cc4e688", "c3afe8cf5"], "source_commits": ["19e65dff3", "c1cc4e688", "c3afe8cf5"], "source_entry_id": "16.0/changes/035", "db_id": "418f288dc007fcb250d7b6ff611924ba", "patch_ids": ["38efe5461c206e0e034559d4a91f45d0", "c224d8dd933626411fa49fb8d92e9e45", "e02a8cd02a74998c80f31f461bf7bacc"], "statement_hash": "307de52e405bebdef63ba4af4fe792ce32c7a67d4ce915eea0c603db4d8d5776", "relations": [{"rule": 2, "type": "related", "target": "333405cb0d257fc36ce99d779f85a196", "evidence": {"same_day": true, "patch_ids": ["38efe5461c206e0e034559d4a91f45d0"], "ambiguous_patch_ids": ["38efe5461c206e0e034559d4a91f45d0"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-3ec13dbca0cb8f3f", "migration": false}, {"id": "16.0-7245a4ee633b6824", "cves": [], "html": "<p>\u7b80\u5316 <a href=\"/docs/16/sql-lock.html\" title=\"LOCK\"><code>LOCK TABLE</code></a> \u7684\u6743\u9650\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/c44f6334c\">\u00a7</a></p>\n<p>\u4e4b\u524d\u7528\u6237\u6267\u884c\u5404\u79cd\u9501\u7ea7\u522b\u7684 <code>LOCK TABLE</code> \u7684\u80fd\u529b\u88ab\u9650\u5236\u4e3a\u4ed6\u4eec\u6709\u6743\u5728\u8868\u4e0a\u6267\u884c\u7684\u547d\u4ee4\u6240\u9700\u7684\u9501\u7ea7\u522b\u3002\u4f8b\u5982\uff0c\u5177\u6709 <a href=\"/docs/16/sql-update.html\" title=\"UPDATE\"><code>UPDATE</code></a> \u6743\u9650\u7684\u7528\u6237\u53ef\u4ee5\u6267\u884c\u9664 <code>ACCESS SHARE</code> \u4e4b\u5916\u7684\u6240\u6709\u9501\u7ea7\u522b\uff0c\u5373\u4f7f\u5b83\u662f\u8f83\u4f4e\u7684\u9501\u7ea7\u522b\u3002\u73b0\u5728\uff0c\u5982\u679c\u7528\u6237\u5df2\u6709\u66f4\u9ad8\u9501\u7ea7\u522b\u7684\u6743\u9650\uff0c\u5219\u53ef\u4ee5\u53d1\u51fa\u8f83\u4f4e\u7684\u9501\u7ea7\u522b\u3002</p>", "text": "\u7b80\u5316 LOCK TABLE \u7684\u6743\u9650\uff08Jeff Davis\uff09\u00a7 \u4e4b\u524d\u7528\u6237\u6267\u884c\u5404\u79cd\u9501\u7ea7\u522b\u7684 LOCK TABLE \u7684\u80fd\u529b\u88ab\u9650\u5236\u4e3a\u4ed6\u4eec\u6709\u6743\u5728\u8868\u4e0a\u6267\u884c\u7684\u547d\u4ee4\u6240\u9700\u7684\u9501\u7ea7\u522b\u3002\u4f8b\u5982\uff0c\u5177\u6709 UPDATE \u6743\u9650\u7684\u7528\u6237\u53ef\u4ee5\u6267\u884c\u9664 ACCESS SHARE \u4e4b\u5916\u7684\u6240\u6709\u9501\u7ea7\u522b\uff0c\u5373\u4f7f\u5b83\u662f\u8f83\u4f4e\u7684\u9501\u7ea7\u522b\u3002\u73b0\u5728\uff0c\u5982\u679c\u7528\u6237\u5df2\u6709\u66f4\u9ad8\u9501\u7ea7\u522b\u7684\u6743\u9650\uff0c\u5219\u53ef\u4ee5\u53d1\u51fa\u8f83\u4f4e\u7684\u9501\u7ea7\u522b\u3002", "title": "\u7b80\u5316 LOCK TABLE \u7684\u6743\u9650", "commits": ["c44f6334c"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "33a87e8108b41f113de32318f6e53e4ba352d1543722cf3a9cef1e2dbd27ba84", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["c44f6334c"]], "identity_text": "Simplify permissions for LOCK TABLE (Jeff Davis) Previously a user's ability to perform LOCK TABLE at various lock levels was limited to the lock levels required by the commands they had permission to execute on the table. For example, someone with UPDATE permission could perform all lock levels except ACCESS SHARE, even though it was a lesser lock level. Now users can issue lesser lock levels if they already have permission for greater lock levels.", "commit_aliases": ["c44f6334c"], "source_commits": ["c44f6334c"], "source_entry_id": "16.0/changes/036", "db_id": "fc527d8ebbe880a16e9882d89634afe2", "patch_ids": ["92cd8d6c24503a354f218c931c844e15"], "statement_hash": "f4aa154946307a5e841fbed6d6d106fc59b27599cb7af260229fdcb72506e922", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-7245a4ee633b6824", "migration": false}, {"id": "16.0-8119dafe5afa2107-1", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 <code>ADMIN OPTION</code> \u6267\u884c <a href=\"/docs/16/sql-altergroup.html\" title=\"ALTER GROUP\"><code>ALTER GROUP group_name ADD USER user_name</code></a>\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/ce6b672e4\">\u00a7</a></p>\n<p>\u4e4b\u524d\u9700\u8981 <code>CREATEROLE</code> \u6743\u9650\u3002</p>", "text": "\u5141\u8bb8\u4f7f\u7528 ADMIN OPTION \u6267\u884c ALTER GROUP group_name ADD USER user_name\uff08Robert Haas\uff09\u00a7 \u4e4b\u524d\u9700\u8981 CREATEROLE \u6743\u9650\u3002", "title": "\u5141\u8bb8\u4f7f\u7528 ADMIN OPTION \u6267\u884c ALTER GROUP group_name ADD USER user_name", "commits": ["ce6b672e4"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "2c694bab726063101865af00f9e776218d0acb93f66a345fcfbe4288e5e89d9f", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["ce6b672e4"]], "identity_text": "Allow ALTER GROUP group_name ADD USER user_name to be performed with ADMIN OPTION (Robert Haas) Previously CREATEROLE permission was required.", "commit_aliases": ["ce6b672e4"], "source_commits": ["ce6b672e4"], "source_entry_id": "16.0/changes/037", "db_id": "d8aeb6cda0f06bc0eae70ac8df9062cd", "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "statement_hash": "50f4b0a5e2a447f99b8831313b6b7c56eff52b047ed9ad71ac545f40804211e3", "relations": [{"rule": 2, "type": "related", "target": "46cf39dbbeb91c639c0ece997870da4c", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "add7e71eb5cbf6ad907b4f35f055974f", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "b51e0cd6c9c46c422491f6d043639fa1", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "e5549806f195ec72b3f07460973e0442", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-8119dafe5afa2107-1", "migration": false}, {"id": "16.0-3bae53577a42f994", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/16/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a> \u4f7f\u7528 <code>WITH ADMIN TRUE</code>/<code>FALSE</code> \u8bed\u6cd5\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/e3ce2de09\">\u00a7</a></p>\n<p>\u4e4b\u524d\u53ea\u652f\u6301 <code>WITH ADMIN OPTION</code> \u8bed\u6cd5\u3002</p>", "text": "\u5141\u8bb8 GRANT \u4f7f\u7528 WITH ADMIN TRUE/FALSE \u8bed\u6cd5\uff08Robert Haas\uff09\u00a7 \u4e4b\u524d\u53ea\u652f\u6301 WITH ADMIN OPTION \u8bed\u6cd5\u3002", "title": "\u5141\u8bb8 GRANT \u4f7f\u7528 WITH ADMIN TRUE/FALSE \u8bed\u6cd5", "commits": ["e3ce2de09"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "e8cfb393ebd2ac83f6ac415c289bc9e524a876fba51b7520a603b279de52ea50", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["e3ce2de09"]], "identity_text": "Allow GRANT to use WITH ADMIN TRUE/FALSE syntax (Robert Haas) Previously only the WITH ADMIN OPTION syntax was supported.", "commit_aliases": ["e3ce2de09"], "source_commits": ["e3ce2de09"], "source_entry_id": "16.0/changes/038", "db_id": "16b0c20f5aecf71bf2b84e46d17b8a37", "patch_ids": ["504c427340a3e4db6513b1d1bf5f39f8"], "statement_hash": "3dfb4357f5ce15df95907ea1410b89d43f98351cb1da0541bfa0598bbd8ee150", "relations": [{"rule": 2, "type": "related", "target": "0737ce1c20636caccfeb102fc4eee993", "evidence": {"same_day": true, "patch_ids": ["504c427340a3e4db6513b1d1bf5f39f8"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-3bae53577a42f994", "migration": false}, {"id": "16.0-09e6d03a5ee7cdb2", "cves": [], "html": "<p>\u5141\u8bb8\u521b\u5efa\u5176\u4ed6\u89d2\u8272\u7684\u89d2\u8272\u81ea\u52a8\u7ee7\u627f\u65b0\u89d2\u8272\u7684\u6743\u9650\u6216 <a href=\"/docs/16/sql-set-role.html\" title=\"SET ROLE\"><code>SET ROLE</code></a> \u5230\u65b0\u89d2\u8272\u7684\u80fd\u529b\uff08Robert Haas\uff0cShi Yu\uff09<a href=\"https://postgr.es/c/e5b8a4c09\">\u00a7</a> <a href=\"https://postgr.es/c/e00bc6c92\">\u00a7</a></p>\n<p>\u8fd9\u7531\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/16/runtime-config-client.html#GUC-CREATEROLE-SELF-GRANT\"><code>createrole_self_grant</code></a> \u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8\u521b\u5efa\u5176\u4ed6\u89d2\u8272\u7684\u89d2\u8272\u81ea\u52a8\u7ee7\u627f\u65b0\u89d2\u8272\u7684\u6743\u9650\u6216 SET ROLE \u5230\u65b0\u89d2\u8272\u7684\u80fd\u529b\uff08Robert Haas\uff0cShi Yu\uff09\u00a7 \u00a7 \u8fd9\u7531\u670d\u52a1\u5668\u53d8\u91cf createrole_self_grant \u63a7\u5236\u3002", "title": "\u5141\u8bb8\u521b\u5efa\u5176\u4ed6\u89d2\u8272\u7684\u89d2\u8272\u81ea\u52a8\u7ee7\u627f\u65b0\u89d2\u8272\u7684\u6743\u9650\u6216 SET ROLE \u5230\u65b0\u89d2\u8272\u7684\u80fd\u529b", "commits": ["e00bc6c92", "e5b8a4c09"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "edb2d903e6a8988421f7ea16618518c31ddb299a6199a5c42ec93c6cb589a80e", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["e00bc6c92"], ["e5b8a4c09"]], "identity_text": "Allow roles that create other roles to automatically inherit the new role's rights or the ability to SET ROLE to the new role (Robert Haas, Shi Yu) This is controlled by server variable createrole_self_grant.", "commit_aliases": ["e00bc6c92", "e5b8a4c09"], "source_commits": ["e00bc6c92", "e5b8a4c09"], "source_entry_id": "16.0/changes/039", "db_id": "5a2d20795043efe5d7ba54f500dcbc6d", "patch_ids": ["b92590f09690a1479e8cf6e76ae73370", "f3e253234013b8b0638ec48d781250ed"], "statement_hash": "36f019ebf0697c73c0967e90e08f7296a7f79f6c72ed1829e5a59b4b95c67316", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-09e6d03a5ee7cdb2", "migration": false}, {"id": "16.0-cf1b3edfb3793ef4", "cves": [], "html": "<p>\u9632\u6b62\u7528\u6237\u66f4\u6539\u975e\u7ee7\u627f\u89d2\u8272\u7684\u9ed8\u8ba4\u6743\u9650\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/48a257d44\">\u00a7</a></p>\n<p>\u73b0\u5728\u8fd9\u4ec5\u5bf9\u7ee7\u627f\u7684\u89d2\u8272\u5141\u8bb8\u3002</p>", "text": "\u9632\u6b62\u7528\u6237\u66f4\u6539\u975e\u7ee7\u627f\u89d2\u8272\u7684\u9ed8\u8ba4\u6743\u9650\uff08Robert Haas\uff09\u00a7 \u73b0\u5728\u8fd9\u4ec5\u5bf9\u7ee7\u627f\u7684\u89d2\u8272\u5141\u8bb8\u3002", "title": "\u9632\u6b62\u7528\u6237\u66f4\u6539\u975e\u7ee7\u627f\u89d2\u8272\u7684\u9ed8\u8ba4\u6743\u9650", "commits": ["48a257d44"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "48658d108bfff7503c00f5095a11509669e187b6a0ddc5ae0566fa19e0307cd9", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["48a257d44"]], "identity_text": "Prevent users from changing the default privileges of non-inherited roles (Robert Haas) This is now only allowed for inherited roles.", "commit_aliases": ["48a257d44"], "source_commits": ["48a257d44"], "source_entry_id": "16.0/changes/040", "db_id": "70691e45c4a7d652db358ce6c6180e90", "patch_ids": ["3f4006baf1d5d262bcc1ddd93c6d2ad6"], "statement_hash": "f845cbe793227ba82041283cbf383f1385fda9ce031728a0ff53e00bc430ae48", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-cf1b3edfb3793ef4", "migration": false}, {"id": "16.0-8119dafe5afa2107-2", "cves": [], "html": "<p>\u5728\u6388\u4e88\u89d2\u8272\u6210\u5458\u8d44\u683c\u65f6\uff0c\u8981\u6c42\u88ab\u6388\u6743\u4eba\u89d2\u8272\u5177\u6709\u9002\u5f53\u7684\u6743\u9650\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/ce6b672e4\">\u00a7</a></p>\n<p>\u5373\u4f7f\u975e\u5f15\u5bfc\u8d85\u7ea7\u7528\u6237\u6388\u4e88\u89d2\u8272\u6210\u5458\u8d44\u683c\u65f6\u4e5f\u6709\u6b64\u8981\u6c42\u3002</p>", "text": "\u5728\u6388\u4e88\u89d2\u8272\u6210\u5458\u8d44\u683c\u65f6\uff0c\u8981\u6c42\u88ab\u6388\u6743\u4eba\u89d2\u8272\u5177\u6709\u9002\u5f53\u7684\u6743\u9650\uff08Robert Haas\uff09\u00a7 \u5373\u4f7f\u975e\u5f15\u5bfc\u8d85\u7ea7\u7528\u6237\u6388\u4e88\u89d2\u8272\u6210\u5458\u8d44\u683c\u65f6\u4e5f\u6709\u6b64\u8981\u6c42\u3002", "title": "\u5728\u6388\u4e88\u89d2\u8272\u6210\u5458\u8d44\u683c\u65f6\uff0c\u8981\u6c42\u88ab\u6388\u6743\u4eba\u89d2\u8272\u5177\u6709\u9002\u5f53\u7684\u6743\u9650", "commits": ["ce6b672e4"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "4dc9847617336b76cce7779ef6636a52b9f0bc242bfd32d1065f8b48f5cdd78f", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["ce6b672e4"]], "identity_text": "When granting role membership, require the granted-by role to be a role that has appropriate permissions (Robert Haas) This is a requirement even when a non-bootstrap superuser is granting role membership.", "commit_aliases": ["ce6b672e4"], "source_commits": ["ce6b672e4"], "source_entry_id": "16.0/changes/041", "db_id": "b51e0cd6c9c46c422491f6d043639fa1", "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "statement_hash": "9536c9bdef83a54f482fc98b946bb8e0b77c53bf35c15a7e0ef07b2e1bc79259", "relations": [{"rule": 2, "type": "related", "target": "46cf39dbbeb91c639c0ece997870da4c", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "add7e71eb5cbf6ad907b4f35f055974f", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "d8aeb6cda0f06bc0eae70ac8df9062cd", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "e5549806f195ec72b3f07460973e0442", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-8119dafe5afa2107-2", "migration": false}, {"id": "16.0-8119dafe5afa2107-3", "cves": [], "html": "<p>\u5141\u8bb8\u975e\u8d85\u7ea7\u7528\u6237\u4f7f\u7528\u975e\u5f53\u524d\u7528\u6237\u7684\u88ab\u6388\u6743\u4eba\u6388\u4e88\u6743\u9650\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/ce6b672e4\">\u00a7</a></p>\n<p>\u5f53\u524d\u7528\u6237\u4ecd\u7136\u5fc5\u987b\u5177\u6709\u6307\u5b9a\u88ab\u6388\u6743\u4eba\u6240\u7ed9\u4e88\u7684\u8db3\u591f\u6743\u9650\u3002</p>", "text": "\u5141\u8bb8\u975e\u8d85\u7ea7\u7528\u6237\u4f7f\u7528\u975e\u5f53\u524d\u7528\u6237\u7684\u88ab\u6388\u6743\u4eba\u6388\u4e88\u6743\u9650\uff08Robert Haas\uff09\u00a7 \u5f53\u524d\u7528\u6237\u4ecd\u7136\u5fc5\u987b\u5177\u6709\u6307\u5b9a\u88ab\u6388\u6743\u4eba\u6240\u7ed9\u4e88\u7684\u8db3\u591f\u6743\u9650\u3002", "title": "\u5141\u8bb8\u975e\u8d85\u7ea7\u7528\u6237\u4f7f\u7528\u975e\u5f53\u524d\u7528\u6237\u7684\u88ab\u6388\u6743\u4eba\u6388\u4e88\u6743\u9650", "commits": ["ce6b672e4"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "7086d12bf2dfcc59428971f4486c9b4dd24aa404100ea3308de428deacf9ae37", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["ce6b672e4"]], "identity_text": "Allow non-superusers to grant permissions using a granted-by user that is not the current user (Robert Haas) The current user still must have sufficient permissions given by the specified granted-by user.", "commit_aliases": ["ce6b672e4"], "source_commits": ["ce6b672e4"], "source_entry_id": "16.0/changes/042", "db_id": "add7e71eb5cbf6ad907b4f35f055974f", "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "statement_hash": "2732be0989fa829429d0b31ee46cd13307f395ef4dbc72e4d93186868981dc25", "relations": [{"rule": 2, "type": "related", "target": "46cf39dbbeb91c639c0ece997870da4c", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "b51e0cd6c9c46c422491f6d043639fa1", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "d8aeb6cda0f06bc0eae70ac8df9062cd", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "e5549806f195ec72b3f07460973e0442", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-8119dafe5afa2107-3", "migration": false}, {"id": "16.0-7deee221eb154816", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/16/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a> \u4ee5\u63a7\u5236\u4f7f\u7528 <a href=\"/docs/16/sql-set-role.html\" title=\"SET ROLE\"><code>SET ROLE</code></a> \u7684\u6743\u9650\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/3d14e171e\">\u00a7</a></p>\n<p>\u8fd9\u7531\u65b0\u7684 <code>GRANT ... SET</code> \u9009\u9879\u63a7\u5236\u3002</p>", "text": "\u589e\u52a0 GRANT \u4ee5\u63a7\u5236\u4f7f\u7528 SET ROLE \u7684\u6743\u9650\uff08Robert Haas\uff09\u00a7 \u8fd9\u7531\u65b0\u7684 GRANT ... SET \u9009\u9879\u63a7\u5236\u3002", "title": "\u589e\u52a0 GRANT \u4ee5\u63a7\u5236\u4f7f\u7528 SET ROLE \u7684\u6743\u9650", "commits": ["3d14e171e"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "e7c6fa9c6602b4721c729e3ddb69001509bd8620feacbace6c3604c3818ca42a", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["3d14e171e"]], "identity_text": "Add GRANT to control permission to use SET ROLE (Robert Haas) This is controlled by a new GRANT ... SET option.", "commit_aliases": ["3d14e171e"], "source_commits": ["3d14e171e"], "source_entry_id": "16.0/changes/043", "db_id": "8f8bb884d7b5c618234e127c71784178", "patch_ids": ["c33f7bfe8a9672e2d613614c2a68fbce"], "statement_hash": "0c57e087aa12879cf26314a9e9e7d74bb74b6e57dbd3c6acf4d644d7a4ce4dc3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-7deee221eb154816", "migration": false}, {"id": "16.0-8119dafe5afa2107-4", "cves": [], "html": "<p>\u4e3a\u5df2\u6388\u4e88\u6743\u9650\u7684\u89d2\u8272\u6dfb\u52a0\u4f9d\u8d56\u8ddf\u8e2a\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/ce6b672e4\">\u00a7</a></p>\n<p>\u4f8b\u5982\uff0c\u5982\u679c\u5b58\u5728\u4f7f\u7528\u8be5\u9009\u9879\u7684\u6743\u9650\uff0c\u79fb\u9664 <code>ADMIN OPTION</code> \u5c06\u4f1a\u5931\u8d25\uff1b\u5fc5\u987b\u4f7f\u7528 <code>CASCADE</code> \u6765\u64a4\u9500\u4f9d\u8d56\u7684\u6743\u9650\u3002</p>", "text": "\u4e3a\u5df2\u6388\u4e88\u6743\u9650\u7684\u89d2\u8272\u6dfb\u52a0\u4f9d\u8d56\u8ddf\u8e2a\uff08Robert Haas\uff09\u00a7 \u4f8b\u5982\uff0c\u5982\u679c\u5b58\u5728\u4f7f\u7528\u8be5\u9009\u9879\u7684\u6743\u9650\uff0c\u79fb\u9664 ADMIN OPTION \u5c06\u4f1a\u5931\u8d25\uff1b\u5fc5\u987b\u4f7f\u7528 CASCADE \u6765\u64a4\u9500\u4f9d\u8d56\u7684\u6743\u9650\u3002", "title": "\u4e3a\u5df2\u6388\u4e88\u6743\u9650\u7684\u89d2\u8272\u6dfb\u52a0\u4f9d\u8d56\u8ddf\u8e2a", "commits": ["ce6b672e4"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "cb7c1ff728cfae933345c7639283714645e90dd795f28400eba52e62435423f4", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["ce6b672e4"]], "identity_text": "Add dependency tracking to roles which have granted privileges (Robert Haas) For example, removing ADMIN OPTION will fail if there are privileges using that option; CASCADE must be used to revoke dependent permissions.", "commit_aliases": ["ce6b672e4"], "source_commits": ["ce6b672e4"], "source_entry_id": "16.0/changes/044", "db_id": "46cf39dbbeb91c639c0ece997870da4c", "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "statement_hash": "0453d91c7a1a281aa1fd4a77eedd82810d6846abf6c77e4254ef43e390a283d5", "relations": [{"rule": 2, "type": "related", "target": "add7e71eb5cbf6ad907b4f35f055974f", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "b51e0cd6c9c46c422491f6d043639fa1", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "d8aeb6cda0f06bc0eae70ac8df9062cd", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "e5549806f195ec72b3f07460973e0442", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-8119dafe5afa2107-4", "migration": false}, {"id": "16.0-06e6c4d231218e8f", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/16/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a> \u8bb0\u5f55\u6dfb\u52a0\u6388\u4e88\u8005\u7684\u4f9d\u8d56\u8ddf\u8e2a\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/6566133c5\">\u00a7</a></p>\n<p>\u8fd9\u4fdd\u8bc1 <a href=\"/docs/16/catalog-pg-auth-members.html\" title=\"53.9.\u00a0pg_auth_members\"><code>pg_auth_members</code></a>.<code>grantor</code> \u503c\u59cb\u7ec8\u6709\u6548\u3002</p>", "text": "\u4e3a GRANT \u8bb0\u5f55\u6dfb\u52a0\u6388\u4e88\u8005\u7684\u4f9d\u8d56\u8ddf\u8e2a\uff08Robert Haas\uff09\u00a7 \u8fd9\u4fdd\u8bc1 pg_auth_members.grantor \u503c\u59cb\u7ec8\u6709\u6548\u3002", "title": "\u4e3a GRANT \u8bb0\u5f55\u6dfb\u52a0\u6388\u4e88\u8005\u7684\u4f9d\u8d56\u8ddf\u8e2a", "commits": ["6566133c5"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "1145c2d8f897e10f1fe3d3dab39929ab99e853ab34a5adf15fd8ff94e2eb4b0f", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["6566133c5"]], "identity_text": "Add dependency tracking of grantors for GRANT records (Robert Haas) This guarantees that pg_auth_members.grantor values are always valid.", "commit_aliases": ["6566133c5"], "source_commits": ["6566133c5"], "source_entry_id": "16.0/changes/045", "db_id": "52efd571f0ee8e32038ae683a496bd22", "patch_ids": ["59aa033cf476f9a4b2129145ab39e4a8"], "statement_hash": "03037fe0a26a0b06363106af277e98bd82ebb323583dcd1de997c24f58b777fd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-06e6c4d231218e8f", "migration": false}, {"id": "16.0-8b578e7e22c8ea66", "cves": [], "html": "<p>\u5141\u8bb8\u591a\u4e2a\u89d2\u8272\u6210\u5458\u8d44\u683c\u8bb0\u5f55\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/ce6b672e4\">\u00a7</a> <a href=\"https://postgr.es/c/0101f770a\">\u00a7</a></p>\n<p>\u4e4b\u524d\uff0c\u65b0\u7684\u6210\u5458\u8d44\u683c\u6388\u4e88\u4f1a\u79fb\u9664\u4e4b\u524d\u5339\u914d\u7684\u6210\u5458\u8d44\u683c\u6388\u4e88\uff0c\u5373\u4f7f\u6388\u4e88\u7684\u5176\u4ed6\u65b9\u9762\u4e0d\u5339\u914d\u3002</p>", "text": "\u5141\u8bb8\u591a\u4e2a\u89d2\u8272\u6210\u5458\u8d44\u683c\u8bb0\u5f55\uff08Robert Haas\uff09\u00a7 \u00a7 \u4e4b\u524d\uff0c\u65b0\u7684\u6210\u5458\u8d44\u683c\u6388\u4e88\u4f1a\u79fb\u9664\u4e4b\u524d\u5339\u914d\u7684\u6210\u5458\u8d44\u683c\u6388\u4e88\uff0c\u5373\u4f7f\u6388\u4e88\u7684\u5176\u4ed6\u65b9\u9762\u4e0d\u5339\u914d\u3002", "title": "\u5141\u8bb8\u591a\u4e2a\u89d2\u8272\u6210\u5458\u8d44\u683c\u8bb0\u5f55", "commits": ["0101f770a", "ce6b672e4"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "49a4cff66517454ef299ee39e3eb8265aab5c13a579743fd5acc16f01492baff", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["0101f770a"], ["ce6b672e4"]], "identity_text": "Allow multiple role membership records (Robert Haas) Previously a new membership grant would remove a previous matching membership grant, even if other aspects of the grant did not match.", "commit_aliases": ["0101f770a", "ce6b672e4"], "source_commits": ["0101f770a", "ce6b672e4"], "source_entry_id": "16.0/changes/046", "db_id": "e5549806f195ec72b3f07460973e0442", "patch_ids": ["5823850ecf50580450f3b6a6264b5424", "9e03ed8fdc94bff9e3d4992c51b50fc5"], "statement_hash": "b08c1cdb28f81efd659cdf33495f344f12cdbc0d6ad4d69047d63559167b1c50", "relations": [{"rule": 2, "type": "related", "target": "46cf39dbbeb91c639c0ece997870da4c", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "add7e71eb5cbf6ad907b4f35f055974f", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "b51e0cd6c9c46c422491f6d043639fa1", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}, {"rule": 2, "type": "related", "target": "d8aeb6cda0f06bc0eae70ac8df9062cd", "evidence": {"same_day": true, "patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"], "ambiguous_patch_ids": ["9e03ed8fdc94bff9e3d4992c51b50fc5"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-8b578e7e22c8ea66", "migration": false}, {"id": "16.0-fd3d5e80c129bfc4", "cves": [], "html": "<p>\u9632\u6b62\u79fb\u9664\u5f15\u5bfc\u7528\u6237\u7684\u8d85\u7ea7\u7528\u6237\u6743\u9650\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/e530be2c5\">\u00a7</a></p>\n<p>\u6062\u590d\u6b64\u7c7b\u7528\u6237\u53ef\u80fd\u5bfc\u81f4\u9519\u8bef\u3002</p>", "text": "\u9632\u6b62\u79fb\u9664\u5f15\u5bfc\u7528\u6237\u7684\u8d85\u7ea7\u7528\u6237\u6743\u9650\uff08Robert Haas\uff09\u00a7 \u6062\u590d\u6b64\u7c7b\u7528\u6237\u53ef\u80fd\u5bfc\u81f4\u9519\u8bef\u3002", "title": "\u9632\u6b62\u79fb\u9664\u5f15\u5bfc\u7528\u6237\u7684\u8d85\u7ea7\u7528\u6237\u6743\u9650", "commits": ["e530be2c5"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "c230ed9871388a6779e329f412b60aa113dec94d9faaa518e22bef6d76c8d69f", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["e530be2c5"]], "identity_text": "Prevent removal of superuser privileges for the bootstrap user (Robert Haas) Restoring such users could lead to errors.", "commit_aliases": ["e530be2c5"], "source_commits": ["e530be2c5"], "source_entry_id": "16.0/changes/047", "db_id": "5e71b967c11394fe2bde1f8969897aea", "patch_ids": ["b96a542d2c0ed68a09668d883c837407"], "statement_hash": "85c1c5797e5867ef59b1173281b9ca1231c458047b2e1cb07c7609b11745aa24", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-fd3d5e80c129bfc4", "migration": false}, {"id": "16.0-4d63e845120393a6", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/16/functions-info.html#FUNCTIONS-ACLITEM-FN-TABLE\" title=\"\u8868\u00a09.70.\u00a0aclitem \u51fd\u6570\"><code>makeaclitem()</code></a> \u63a5\u53d7\u591a\u4e2a\u6743\u9650\u540d\u79f0\uff08Robins Tharakan\uff09<a href=\"https://postgr.es/c/b762bbde3\">\u00a7</a></p>\n<p>\u4e4b\u524d\u53ea\u63a5\u53d7\u5355\u4e2a\u6743\u9650\u540d\u79f0\uff0c\u5982 <a href=\"/docs/16/sql-select.html\" title=\"SELECT\"><code>SELECT</code></a>\u3002</p>", "text": "\u5141\u8bb8 makeaclitem() \u63a5\u53d7\u591a\u4e2a\u6743\u9650\u540d\u79f0\uff08Robins Tharakan\uff09\u00a7 \u4e4b\u524d\u53ea\u63a5\u53d7\u5355\u4e2a\u6743\u9650\u540d\u79f0\uff0c\u5982 SELECT\u3002", "title": "\u5141\u8bb8 makeaclitem() \u63a5\u53d7\u591a\u4e2a\u6743\u9650\u540d\u79f0", "commits": ["b762bbde3"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PRIVILEGES", "source_hash": "7805006273fc53fce8a0b39dbc88e99289e76383ef717e6e6859364f8f051b5c", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["b762bbde3"]], "identity_text": "Allow makeaclitem() to accept multiple privilege names (Robins Tharakan) Previously only a single privilege name, like SELECT, was accepted.", "commit_aliases": ["b762bbde3"], "source_commits": ["b762bbde3"], "source_entry_id": "16.0/changes/048", "db_id": "f265b7e845ebbdbdebc6a1a2e4113a11", "patch_ids": ["ef4aa9680eadb09acd78e4250b621f41"], "statement_hash": "38a381ebb31955cdae1621635b97c81906bbecceb794d0a41a96959f71d51862", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-4d63e845120393a6", "migration": false}, {"id": "16.0-25dc87585ec7220a", "cves": [], "html": "<p>\u589e\u52a0\u5bf9 <span>Kerberos</span> \u51ed\u8bc1\u59d4\u6258\u7684\u652f\u6301\uff08Stephen Frost\uff09<a href=\"https://postgr.es/c/6633cfb21\">\u00a7</a> <a href=\"https://postgr.es/c/9c0a0e2ed\">\u00a7</a> <a href=\"https://postgr.es/c/f4001a553\">\u00a7</a> <a href=\"https://postgr.es/c/a2eb99a01\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/16/runtime-config-connection.html#GUC-GSS-ACCEPT-DELEGATION\"><code>gss_accept_delegation</code></a> \u548c <span>libpq</span> \u8fde\u63a5\u53c2\u6570 <a href=\"/docs/16/libpq-connect.html#LIBPQ-CONNECT-GSSDELEGATION\"><code>gssdelegation</code></a> \u542f\u7528\u3002</p>", "text": "\u589e\u52a0\u5bf9 Kerberos \u51ed\u8bc1\u59d4\u6258\u7684\u652f\u6301\uff08Stephen Frost\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u8fd9\u901a\u8fc7\u670d\u52a1\u5668\u53d8\u91cf gss_accept_delegation \u548c libpq \u8fde\u63a5\u53c2\u6570 gssdelegation \u542f\u7528\u3002", "title": "\u589e\u52a0\u5bf9 Kerberos \u51ed\u8bc1\u59d4\u6258\u7684\u652f\u6301", "commits": ["6633cfb21", "9c0a0e2ed", "a2eb99a01", "f4001a553"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "21b03ac48150547a37557607859f6e583245937a4d894519e347e3b0adba1f98", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["6633cfb21"], ["9c0a0e2ed"], ["a2eb99a01"], ["f4001a553"]], "identity_text": "Add support for Kerberos credential delegation (Stephen Frost) This is enabled with server variable gss_accept_delegation and libpq connection parameter gssdelegation.", "commit_aliases": ["6633cfb21", "9c0a0e2ed", "a2eb99a01", "f4001a553"], "source_commits": ["6633cfb21", "9c0a0e2ed", "a2eb99a01", "f4001a553"], "source_entry_id": "16.0/changes/049", "db_id": "dcbadd54b20e0d114716d2113a30a8de", "patch_ids": ["01c7b4f4adb2512faa0fa9c36a532a20", "2bcdb90738956868491da46a7918447f", "2e518c09694cc61b96385ca890acc6aa", "af56ccf50a0ab7b4ad6a4612fdfac910"], "statement_hash": "41547c48699ee81f69db888ddbb9f73bc474452c2b10fad41d18f5e48eeab40a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-25dc87585ec7220a", "migration": false}, {"id": "16.0-41a27c2fa5f8f067", "cves": [], "html": "<p>\u5141\u8bb8\u901a\u8fc7\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/16/runtime-config-connection.html#GUC-SCRAM-ITERATIONS\"><code>scram_iterations</code></a> \u8bbe\u7f6e <acronym>SCRAM</acronym> \u8fed\u4ee3\u6b21\u6570\uff08Daniel Gustafsson\uff09<a href=\"https://postgr.es/c/b57774300\">\u00a7</a></p>", "text": "\u5141\u8bb8\u901a\u8fc7\u670d\u52a1\u5668\u53d8\u91cf scram_iterations \u8bbe\u7f6e SCRAM \u8fed\u4ee3\u6b21\u6570\uff08Daniel Gustafsson\uff09\u00a7", "title": "\u5141\u8bb8\u901a\u8fc7\u670d\u52a1\u5668\u53d8\u91cf scram_iterations \u8bbe\u7f6e SCRAM \u8fed\u4ee3\u6b21\u6570", "commits": ["b57774300"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "26599be42fc3b2e765602598b097694d12762f2ae846a037f1b8b58e52c87a8e", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["b57774300"]], "identity_text": "Allow the SCRAM iteration count to be set with server variable scram_iterations (Daniel Gustafsson)", "commit_aliases": ["b57774300"], "source_commits": ["b57774300"], "source_entry_id": "16.0/changes/050", "db_id": "d02cb7bdd4e93a2f40be0c5b25704e41", "patch_ids": ["caa5db0607f2728632c236b059325eb6"], "statement_hash": "00a51a09426bc9f3e209a9f07dd58edd99703ef5888e561ec3d9308820f613d9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-41a27c2fa5f8f067", "migration": false}, {"id": "16.0-4aac74fa507df59a", "cves": [], "html": "<p>\u6539\u8fdb\u670d\u52a1\u5668\u53d8\u91cf\u7ba1\u7406\u7684\u6027\u80fd\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/3057465ac\">\u00a7</a> <a href=\"https://postgr.es/c/f13b2088f\">\u00a7</a></p>", "text": "\u6539\u8fdb\u670d\u52a1\u5668\u53d8\u91cf\u7ba1\u7406\u7684\u6027\u80fd\uff08Tom Lane\uff09\u00a7 \u00a7", "title": "\u6539\u8fdb\u670d\u52a1\u5668\u53d8\u91cf\u7ba1\u7406\u7684\u6027\u80fd", "commits": ["3057465ac", "f13b2088f"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "5b947899546cce942c483232289fc7d98d6b20941250299d36aba858bc8db5be", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["3057465ac"], ["f13b2088f"]], "identity_text": "Improve performance of server variable management (Tom Lane)", "commit_aliases": ["3057465ac", "f13b2088f"], "source_commits": ["3057465ac", "f13b2088f"], "source_entry_id": "16.0/changes/051", "db_id": "72456f3edbba53b83d3d3ba5105e4086", "patch_ids": ["82b79513baeefb90e5b74454642a75f5", "d48327561a477724c4ea8b19e227c0ee"], "statement_hash": "9b71d3e1baf5efe3a8947e03b65e980b6a3f8639cff86542308d8d3a1364a2a2", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-4aac74fa507df59a", "migration": false}, {"id": "16.0-731c90f013f5ccf5", "cves": [], "html": "<p>\u6536\u7d27\u5bf9\u54ea\u4e9b\u670d\u52a1\u5668\u53d8\u91cf\u53ef\u4ee5\u91cd\u7f6e\u7684\u9650\u5236\uff08Masahiko Sawada\uff09<a href=\"https://postgr.es/c/385366426\">\u00a7</a></p>\n<p>\u4e4b\u524d\uff0c\u867d\u7136\u67d0\u4e9b\u53d8\u91cf\uff08\u5982 <a href=\"/docs/16/runtime-config-client.html#GUC-DEFAULT-TRANSACTION-ISOLATION\"><code>transaction_isolation</code></a>\uff09\u4e0d\u53d7 <a href=\"/docs/16/sql-reset.html\" title=\"RESET\"><code>RESET ALL</code></a> \u5f71\u54cd\uff0c\u4f46\u5b83\u4eec\u53ef\u4ee5\u5728\u4e0d\u9002\u5f53\u7684\u60c5\u51b5\u4e0b\u88ab\u5355\u72ec\u91cd\u7f6e\u3002</p>", "text": "\u6536\u7d27\u5bf9\u54ea\u4e9b\u670d\u52a1\u5668\u53d8\u91cf\u53ef\u4ee5\u91cd\u7f6e\u7684\u9650\u5236\uff08Masahiko Sawada\uff09\u00a7 \u4e4b\u524d\uff0c\u867d\u7136\u67d0\u4e9b\u53d8\u91cf\uff08\u5982 transaction_isolation\uff09\u4e0d\u53d7 RESET ALL \u5f71\u54cd\uff0c\u4f46\u5b83\u4eec\u53ef\u4ee5\u5728\u4e0d\u9002\u5f53\u7684\u60c5\u51b5\u4e0b\u88ab\u5355\u72ec\u91cd\u7f6e\u3002", "title": "\u6536\u7d27\u5bf9\u54ea\u4e9b\u670d\u52a1\u5668\u53d8\u91cf\u53ef\u4ee5\u91cd\u7f6e\u7684\u9650\u5236", "commits": ["385366426"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "baebc4661882fc15c56fba10bede57fd70f6e92364f6cf66bcc10946abd5339b", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["385366426"]], "identity_text": "Tighten restrictions on which server variables can be reset (Masahiko Sawada) Previously, while certain variables, like transaction_isolation, were not affected by RESET ALL, they could be individually reset in inappropriate situations.", "commit_aliases": ["385366426"], "source_commits": ["385366426"], "source_entry_id": "16.0/changes/052", "db_id": "069a189709e773965316678f36c3c950", "patch_ids": ["4682f4c5535186a0fc23921a53137ac4"], "statement_hash": "b9c949b6b48d5600a854b46d9a50f35ec85b5fdd353a564b7c1dd0738a1b83b7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-731c90f013f5ccf5", "migration": false}, {"id": "16.0-1f27f229dc6ecdf4", "cves": [], "html": "<p>\u5c06\u5404\u79cd <a href=\"/docs/16/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE\" title=\"20.1.2.\u00a0\u901a\u8fc7\u914d\u7f6e\u6587\u4ef6\u5f71\u54cd\u53c2\u6570\"><code>postgresql.conf</code></a> \u9879\u76ee\u79fb\u5165\u65b0\u7c7b\u522b\uff08Shinya Kato\uff09<a href=\"https://postgr.es/c/0b039e3a8\">\u00a7</a></p>\n<p>\u8fd9\u4e5f\u5f71\u54cd <a href=\"/docs/16/view-pg-settings.html\" title=\"54.24.\u00a0pg_settings\"><code>pg_settings</code></a> \u89c6\u56fe\u4e2d\u663e\u793a\u7684\u7c7b\u522b\u3002</p>", "text": "\u5c06\u5404\u79cd postgresql.conf \u9879\u76ee\u79fb\u5165\u65b0\u7c7b\u522b\uff08Shinya Kato\uff09\u00a7 \u8fd9\u4e5f\u5f71\u54cd pg_settings \u89c6\u56fe\u4e2d\u663e\u793a\u7684\u7c7b\u522b\u3002", "title": "\u5c06\u5404\u79cd postgresql.conf \u9879\u76ee\u79fb\u5165\u65b0\u7c7b\u522b", "commits": ["0b039e3a8"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "c0ead218910ca0038dbf5cf71ae9dfec0c9cbdcd7d7d0806444e35825e75454d", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["0b039e3a8"]], "identity_text": "Move various postgresql.conf items into new categories (Shinya Kato) This also affects the categories displayed in the pg_settings view.", "commit_aliases": ["0b039e3a8"], "source_commits": ["0b039e3a8"], "source_entry_id": "16.0/changes/053", "db_id": "52293c1ffe8c2f4c0b1ccf3b3e7d7944", "patch_ids": ["032d48614395b562d30cdc258a29cdad"], "statement_hash": "3ced1b20f610b1960ee88bcca6c62caeab5aa398a2de7ec5e70aeb10c755c5c2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-1f27f229dc6ecdf4", "migration": false}, {"id": "16.0-a3b12342e1e56b11", "cves": [], "html": "<p>\u9632\u6b62\u914d\u7f6e\u6587\u4ef6\u9012\u5f52\u8d85\u8fc7 10 \u5c42\uff08Julien Rouhaud\uff09<a href=\"https://postgr.es/c/d13b68411\">\u00a7</a></p>", "text": "\u9632\u6b62\u914d\u7f6e\u6587\u4ef6\u9012\u5f52\u8d85\u8fc7 10 \u5c42\uff08Julien Rouhaud\uff09\u00a7", "title": "\u9632\u6b62\u914d\u7f6e\u6587\u4ef6\u9012\u5f52\u8d85\u8fc7 10 \u5c42", "commits": ["d13b68411"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "a54a2c962ab64b3e05504313b6e026053696f03bd807705e788c2a536d685f60", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["d13b68411"]], "identity_text": "Prevent configuration file recursion beyond 10 levels (Julien Rouhaud)", "commit_aliases": ["d13b68411"], "source_commits": ["d13b68411"], "source_entry_id": "16.0/changes/054", "db_id": "adc61829793667f5200602f7e8b8baf3", "patch_ids": ["1be57ff0d37324066ec62472bd95aac6"], "statement_hash": "189ebb0a7be5cee5449427ba2063bf623a05c75a8fcb20da9c6093100ac5ce29", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-a3b12342e1e56b11", "migration": false}, {"id": "16.0-c57e48dfca6424d3", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/16/routine-vacuuming.html#AUTOVACUUM\" title=\"25.1.6.\u00a0\u81ea\u52a8\u6e05\u7406\u5b88\u62a4\u8fdb\u7a0b\">\u81ea\u52a8\u6e05\u7406</a>\u66f4\u9891\u7e41\u5730\u9075\u5b88\u5ef6\u8fdf\u8bbe\u7f6e\u7684\u66f4\u6539\uff08Melanie Plageman\uff09<a href=\"https://postgr.es/c/7d71d3dd0\">\u00a7</a> <a href=\"https://postgr.es/c/a9781ae11\">\u00a7</a></p>\n<p>\u4e0d\u518d\u4ec5\u5728\u6bcf\u4e2a\u5173\u7cfb\u5f00\u59cb\u65f6\u9075\u5b88\u66f4\u6539\uff0c\u800c\u662f\u5728\u6bcf\u4e2a\u5757\u5f00\u59cb\u65f6\u9075\u5b88\u66f4\u6539\u3002</p>", "text": "\u5141\u8bb8\u81ea\u52a8\u6e05\u7406\u66f4\u9891\u7e41\u5730\u9075\u5b88\u5ef6\u8fdf\u8bbe\u7f6e\u7684\u66f4\u6539\uff08Melanie Plageman\uff09\u00a7 \u00a7 \u4e0d\u518d\u4ec5\u5728\u6bcf\u4e2a\u5173\u7cfb\u5f00\u59cb\u65f6\u9075\u5b88\u66f4\u6539\uff0c\u800c\u662f\u5728\u6bcf\u4e2a\u5757\u5f00\u59cb\u65f6\u9075\u5b88\u66f4\u6539\u3002", "title": "\u5141\u8bb8\u81ea\u52a8\u6e05\u7406\u66f4\u9891\u7e41\u5730\u9075\u5b88\u5ef6\u8fdf\u8bbe\u7f6e\u7684\u66f4\u6539", "commits": ["7d71d3dd0", "a9781ae11"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "b215f7135f886bfd05ac0445870dfa6fb0927682739a56e7c956484b8e9e6dab", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["7d71d3dd0"], ["a9781ae11"]], "identity_text": "Allow autovacuum to more frequently honor changes to delay settings (Melanie Plageman) Rather than honor changes only at the start of each relation, honor them at the start of each block.", "commit_aliases": ["7d71d3dd0", "a9781ae11"], "source_commits": ["7d71d3dd0", "a9781ae11"], "source_entry_id": "16.0/changes/055", "db_id": "bbfb2744048c0b38b6d39763ff3738ed", "patch_ids": ["40926f87825db16b1cdd8e643727cb03", "80f3452643f837b520778d921549516a"], "statement_hash": "0ed61549eef266287afb3daee82e5cbe22033b0552202d11b6360977e19f76f6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-c57e48dfca6424d3", "migration": false}, {"id": "16.0-2f2f94e72de70fc4", "cves": [], "html": "<p>\u79fb\u9664\u5f52\u6863\u6587\u4ef6\u5fc5\u987b\u6301\u4e45\u91cd\u547d\u540d\u7684\u9650\u5236\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/756e221db\">\u00a7</a> <a href=\"https://postgr.es/c/3cabe45a8\">\u00a7</a></p>\n<p><a href=\"/docs/16/runtime-config-wal.html#GUC-ARCHIVE-COMMAND\"><code>archive_command</code></a> \u547d\u4ee4\u73b0\u5728\u66f4\u53ef\u80fd\u5728\u5d29\u6e83\u540e\u4f7f\u7528\u5df2\u5f52\u6863\u7684\u6587\u4ef6\u88ab\u8c03\u7528\u3002</p>", "text": "\u79fb\u9664\u5f52\u6863\u6587\u4ef6\u5fc5\u987b\u6301\u4e45\u91cd\u547d\u540d\u7684\u9650\u5236\uff08Nathan Bossart\uff09\u00a7 \u00a7 archive_command \u547d\u4ee4\u73b0\u5728\u66f4\u53ef\u80fd\u5728\u5d29\u6e83\u540e\u4f7f\u7528\u5df2\u5f52\u6863\u7684\u6587\u4ef6\u88ab\u8c03\u7528\u3002", "title": "\u79fb\u9664\u5f52\u6863\u6587\u4ef6\u5fc5\u987b\u6301\u4e45\u91cd\u547d\u540d\u7684\u9650\u5236", "commits": ["3cabe45a8", "756e221db"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "aa717a027da1b0b1d07b3f5e8316292735b27ee8944cb37bde331816e872cbb4", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["3cabe45a8"], ["756e221db"]], "identity_text": "Remove restrictions that archive files be durably renamed (Nathan Bossart) The archive_command command is now more likely to be called with already-archived files after a crash.", "commit_aliases": ["3cabe45a8", "756e221db"], "source_commits": ["3cabe45a8", "756e221db"], "source_entry_id": "16.0/changes/056", "db_id": "ae728e9901d610f4a4062ec168fdcc8d", "patch_ids": ["3adc366fd644d4de925ee04d294996b1", "494e83215081bb9269ec840c6c9fb437"], "statement_hash": "172ddc2abcde54028745ed89ca41713c513f80b853ad97904e7b5594fa04f98e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-2f2f94e72de70fc4", "migration": false}, {"id": "16.0-8454b1a0772cca7b", "cves": [], "html": "<p>\u9632\u6b62\u540c\u65f6\u8bbe\u7f6e <a href=\"/docs/16/runtime-config-wal.html#GUC-ARCHIVE-LIBRARY\"><code>archive_library</code></a> \u548c <a href=\"/docs/16/runtime-config-wal.html#GUC-ARCHIVE-COMMAND\"><code>archive_command</code></a>\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/d627ce3b7\">\u00a7</a></p>\n<p>\u4e4b\u524d <code>archive_library</code> \u4f1a\u8986\u76d6 <code>archive_command</code>\u3002</p>", "text": "\u9632\u6b62\u540c\u65f6\u8bbe\u7f6e archive_library \u548c archive_command\uff08Nathan Bossart\uff09\u00a7 \u4e4b\u524d archive_library \u4f1a\u8986\u76d6 archive_command\u3002", "title": "\u9632\u6b62\u540c\u65f6\u8bbe\u7f6e archive_library \u548c archive_command", "commits": ["d627ce3b7"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "85be49c20a6c8c5720b58f8b223387a798772fcba0d08e49afa207cb9d4cd413", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["d627ce3b7"]], "identity_text": "Prevent archive_library and archive_command from being set at the same time (Nathan Bossart) Previously archive_library would override archive_command.", "commit_aliases": ["d627ce3b7"], "source_commits": ["d627ce3b7"], "source_entry_id": "16.0/changes/057", "db_id": "bd285d14fa2dd18bff3bfd9d4aca971f", "patch_ids": ["9e199fa6e71a83bb906836152aad67b2"], "statement_hash": "3c1301f6373b304786fe4a267212c2d3f32a6db521e67fa11e711a12e8e61ce0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-8454b1a0772cca7b", "migration": false}, {"id": "16.0-19303eb4fd8ca3e4-1", "cves": [], "html": "<p>\u5141\u8bb8 postmaster \u4f7f\u7528\u4e2d\u6b62\u4fe1\u53f7\u7ec8\u6b62\u5b50\u8fdb\u7a0b\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/51b5834cd\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u6536\u96c6\u5361\u4f4f\u7684\u5b50\u8fdb\u7a0b\u7684\u6838\u5fc3\u8f6c\u50a8\u3002\u8fd9\u7531 <a href=\"/docs/16/runtime-config-developer.html#GUC-SEND-ABORT-FOR-CRASH\"><code>send_abort_for_crash</code></a> \u548c <a href=\"/docs/16/runtime-config-developer.html#GUC-SEND-ABORT-FOR-KILL\"><code>send_abort_for_kill</code></a> \u63a7\u5236\u3002postmaster \u7684 <code>-T</code> \u5f00\u5173\u73b0\u5728\u4e0e\u8bbe\u7f6e <code>send_abort_for_crash</code> \u76f8\u540c\u3002</p>", "text": "\u5141\u8bb8 postmaster \u4f7f\u7528\u4e2d\u6b62\u4fe1\u53f7\u7ec8\u6b62\u5b50\u8fdb\u7a0b\uff08Tom Lane\uff09\u00a7 \u8fd9\u5141\u8bb8\u6536\u96c6\u5361\u4f4f\u7684\u5b50\u8fdb\u7a0b\u7684\u6838\u5fc3\u8f6c\u50a8\u3002\u8fd9\u7531 send_abort_for_crash \u548c send_abort_for_kill \u63a7\u5236\u3002postmaster \u7684 -T \u5f00\u5173\u73b0\u5728\u4e0e\u8bbe\u7f6e send_abort_for_crash \u76f8\u540c\u3002", "title": "\u5141\u8bb8 postmaster \u4f7f\u7528\u4e2d\u6b62\u4fe1\u53f7\u7ec8\u6b62\u5b50\u8fdb\u7a0b", "commits": ["51b5834cd"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "63fad43e4bf12b2034b24b727e0ee183cd87f3447c4deb0a4362dca6027adb11", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["51b5834cd"]], "identity_text": "Allow the postmaster to terminate children with an abort signal (Tom Lane) This allows collection of a core dump for a stuck child process. This is controlled by send_abort_for_crash and send_abort_for_kill. The postmaster's -T switch is now the same as setting send_abort_for_crash.", "commit_aliases": ["51b5834cd"], "source_commits": ["51b5834cd"], "source_entry_id": "16.0/changes/058", "db_id": "f2eb46938ff9e93ea2686da06878253b", "patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"], "statement_hash": "4afb0bf1b7f089b1b55ee7968e1425161a2a7dc0a4eb643695e6f8214c9a5526", "relations": [{"rule": 2, "type": "related", "target": "59a0c46d329c68323a069318e496d443", "evidence": {"same_day": true, "patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"], "ambiguous_patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-19303eb4fd8ca3e4-1", "migration": false}, {"id": "16.0-19303eb4fd8ca3e4-2", "cves": [], "html": "<p>\u79fb\u9664\u65e0\u529f\u80fd\u7684 postmaster <code>-n</code> \u9009\u9879\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/51b5834cd\">\u00a7</a></p>", "text": "\u79fb\u9664\u65e0\u529f\u80fd\u7684 postmaster -n \u9009\u9879\uff08Tom Lane\uff09\u00a7", "title": "\u79fb\u9664\u65e0\u529f\u80fd\u7684 postmaster -n \u9009\u9879", "commits": ["51b5834cd"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "cb971a2237c1fb3b6ff998c3d997789027dbcb1d681286ca7b7667f8fe326ded", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["51b5834cd"]], "identity_text": "Remove the non-functional postmaster -n option (Tom Lane)", "commit_aliases": ["51b5834cd"], "source_commits": ["51b5834cd"], "source_entry_id": "16.0/changes/059", "db_id": "59a0c46d329c68323a069318e496d443", "patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"], "statement_hash": "adc170c024b3bb0575cbaf08cfcdbf458639d26adf98bd98fdae07158f198b48", "relations": [{"rule": 2, "type": "related", "target": "f2eb46938ff9e93ea2686da06878253b", "evidence": {"same_day": true, "patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"], "ambiguous_patch_ids": ["a4fef756bfd4fd9f378e3e0ed20ab82b"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-19303eb4fd8ca3e4-2", "migration": false}, {"id": "16.0-311049b30b1b4a71", "cves": [], "html": "<p>\u5141\u8bb8\u670d\u52a1\u5668\u4e3a\u5177\u6709 <a href=\"/docs/16/predefined-roles.html\" title=\"22.5.\u00a0\u9884\u5b9a\u4e49\u89d2\u8272\"><code>pg_use_reserved_connections</code></a> \u6210\u5458\u8d44\u683c\u7684\u89d2\u8272\u9884\u7559\u540e\u7aef\u69fd\u4f4d\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/6e2775e4d\">\u00a7</a></p>\n<p>\u9884\u7559\u69fd\u4f4d\u7684\u6570\u91cf\u7531\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/16/runtime-config-connection.html#GUC-RESERVED-CONNECTIONS\"><code>reserved_connections</code></a> \u8bbe\u7f6e\u3002</p>", "text": "\u5141\u8bb8\u670d\u52a1\u5668\u4e3a\u5177\u6709 pg_use_reserved_connections \u6210\u5458\u8d44\u683c\u7684\u89d2\u8272\u9884\u7559\u540e\u7aef\u69fd\u4f4d\uff08Nathan Bossart\uff09\u00a7 \u9884\u7559\u69fd\u4f4d\u7684\u6570\u91cf\u7531\u670d\u52a1\u5668\u53d8\u91cf reserved_connections \u8bbe\u7f6e\u3002", "title": "\u5141\u8bb8\u670d\u52a1\u5668\u4e3a\u5177\u6709 pg_use_reserved_connections \u6210\u5458\u8d44\u683c\u7684\u89d2\u8272\u9884\u7559\u540e\u7aef\u69fd\u4f4d", "commits": ["6e2775e4d"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "7cd4241598e20ba2a6aab72176b427eb5cf2bc2f4e958ae93c26ee0f747c7f3d", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["6e2775e4d"]], "identity_text": "Allow the server to reserve backend slots for roles with pg_use_reserved_connections membership (Nathan Bossart) The number of reserved slots is set by server variable reserved_connections.", "commit_aliases": ["6e2775e4d"], "source_commits": ["6e2775e4d"], "source_entry_id": "16.0/changes/060", "db_id": "9ba0c9b1c130e3dfefa0d23528067f59", "patch_ids": ["d641e1537268a21e9c60ba96744d45ac"], "statement_hash": "01e5834b8e1f377c4fef1981e4804ff30e595249ffdbdc533dbe1a471b362056", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-311049b30b1b4a71", "migration": false}, {"id": "16.0-bd4ac9acde2a7b4c", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/16/runtime-config-resource.html#GUC-HUGE-PAGES\">\u5927\u9875</a>\u5728\u8f83\u65b0\u7248\u672c\u7684 <span>Windows 10</span> \u4e0a\u5de5\u4f5c\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/fdd8937c0\">\u00a7</a></p>\n<p>\u8fd9\u6dfb\u52a0\u4e86\u5728\u8f83\u65b0\u7248\u672c\u7684 <span>Windows 10</span> \u4e0a\u542f\u7528\u5927\u9875\u6240\u9700\u7684\u7279\u6b8a\u5904\u7406\u3002</p>", "text": "\u5141\u8bb8\u5927\u9875\u5728\u8f83\u65b0\u7248\u672c\u7684 Windows 10 \u4e0a\u5de5\u4f5c\uff08Thomas Munro\uff09\u00a7 \u8fd9\u6dfb\u52a0\u4e86\u5728\u8f83\u65b0\u7248\u672c\u7684 Windows 10 \u4e0a\u542f\u7528\u5927\u9875\u6240\u9700\u7684\u7279\u6b8a\u5904\u7406\u3002", "title": "\u5141\u8bb8\u5927\u9875\u5728\u8f83\u65b0\u7248\u672c\u7684 Windows 10 \u4e0a\u5de5\u4f5c", "commits": ["fdd8937c0"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "bb9f039c87da32566a87e3f111fdb9c3937a5034e7884f98f14678a2efd710d7", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["fdd8937c0"]], "identity_text": "Allow huge pages to work on newer versions of Windows 10 (Thomas Munro) This adds the special handling required to enable huge pages on newer versions of Windows 10.", "commit_aliases": ["fdd8937c0"], "source_commits": ["fdd8937c0"], "source_entry_id": "16.0/changes/061", "db_id": "1b7f0031c8ad76239c5aaea4f4138c43", "patch_ids": ["82be8231494ede0171d51caecdd09120"], "statement_hash": "3670be9081bb11795641c4a7c703a1f93e9aed73b6969394574c461b9f69daea", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-bd4ac9acde2a7b4c", "migration": false}, {"id": "16.0-03af234302eac1a0", "cves": [], "html": "<p>\u589e\u52a0\u4f9b\u5f00\u53d1\u8005\u4f7f\u7528\u7684 <a href=\"/docs/16/runtime-config-developer.html#GUC-DEBUG-IO-DIRECT\"><code>debug_io_direct</code></a> \u8bbe\u7f6e\uff08Thomas Munro\uff0cAndres Freund\uff0cBharath Rupireddy\uff09<a href=\"https://postgr.es/c/d4e71df6d\">\u00a7</a> <a href=\"https://postgr.es/c/319bae9a8\">\u00a7</a></p>\n<p>\u867d\u7136\u4e3b\u8981\u9762\u5411\u5f00\u53d1\u8005\uff0c<a href=\"/docs/16/runtime-config-wal.html#GUC-WAL-SYNC-METHOD\"><code>wal_sync_method=open_sync</code></a>/<code>open_datasync</code> \u5df2\u88ab\u4fee\u6539\u4e3a\u5728 <code>wal_level=minimal</code> \u65f6\u4e0d\u4f7f\u7528\u76f4\u63a5 <acronym>I/O</acronym>\uff1b\u73b0\u5728\u901a\u8fc7 <code>debug_io_direct=wal</code> \u542f\u7528\u3002</p>", "text": "\u589e\u52a0\u4f9b\u5f00\u53d1\u8005\u4f7f\u7528\u7684 debug_io_direct \u8bbe\u7f6e\uff08Thomas Munro\uff0cAndres Freund\uff0cBharath Rupireddy\uff09\u00a7 \u00a7 \u867d\u7136\u4e3b\u8981\u9762\u5411\u5f00\u53d1\u8005\uff0cwal_sync_method=open_sync/open_datasync \u5df2\u88ab\u4fee\u6539\u4e3a\u5728 wal_level=minimal \u65f6\u4e0d\u4f7f\u7528\u76f4\u63a5 I/O\uff1b\u73b0\u5728\u901a\u8fc7 debug_io_direct=wal \u542f\u7528\u3002", "title": "\u589e\u52a0\u4f9b\u5f00\u53d1\u8005\u4f7f\u7528\u7684 debug_io_direct \u8bbe\u7f6e", "commits": ["319bae9a8", "d4e71df6d"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "1da16ee3212b0ae045e96a255ce2ad8ee43aa5f18913873d5fec263f6b9cdb89", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["319bae9a8"], ["d4e71df6d"]], "identity_text": "Add debug_io_direct setting for developer usage (Thomas Munro, Andres Freund, Bharath Rupireddy) While primarily for developers, wal_sync_method=open_sync/open_datasync has been modified to not use direct I/O with wal_level=minimal; this is now enabled with debug_io_direct=wal.", "commit_aliases": ["319bae9a8", "d4e71df6d"], "source_commits": ["319bae9a8", "d4e71df6d"], "source_entry_id": "16.0/changes/062", "db_id": "39765899c7b863b9ca3cc92fd29a31bf", "patch_ids": ["2ad68fcf6ba7b4eed5b8dbe982b6876f", "8e0bbbe6b65939536898f87c7a4830d7"], "statement_hash": "c2f5039feb0ee6a6e017e36244281712887d64d005b71fa17bece34a7905c860", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-03af234302eac1a0", "migration": false}, {"id": "16.0-764f8596848b3657", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/16/functions-admin.html#FUNCTIONS-ADMIN-BACKUP-TABLE\" title=\"\u8868\u00a09.91.\u00a0\u5907\u4efd\u63a7\u5236\u51fd\u6570\"><code>pg_split_walfile_name()</code></a> \u4ee5\u62a5\u544a <acronym>WAL</acronym> \u6587\u4ef6\u540d\u7684\u6bb5\u548c\u65f6\u95f4\u7ebf\u503c\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/cca186348\">\u00a7</a> <a href=\"https://postgr.es/c/13e0d7a60\">\u00a7</a></p>", "text": "\u589e\u52a0\u51fd\u6570 pg_split_walfile_name() \u4ee5\u62a5\u544a WAL \u6587\u4ef6\u540d\u7684\u6bb5\u548c\u65f6\u95f4\u7ebf\u503c\uff08Bharath Rupireddy\uff09\u00a7 \u00a7", "title": "\u589e\u52a0\u51fd\u6570 pg_split_walfile_name() \u4ee5\u62a5\u544a WAL \u6587\u4ef6\u540d\u7684\u6bb5\u548c\u65f6\u95f4\u7ebf\u503c", "commits": ["13e0d7a60", "cca186348"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-CONFIG", "source_hash": "225749adc42f248149e3e803a1e39dadde34a7273d1186390685af1fd581a36f", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["13e0d7a60"], ["cca186348"]], "identity_text": "Add function pg_split_walfile_name() to report the segment and timeline values of WAL file names (Bharath Rupireddy)", "commit_aliases": ["13e0d7a60", "cca186348"], "source_commits": ["13e0d7a60", "cca186348"], "source_entry_id": "16.0/changes/063", "db_id": "cc81c01a03a0b092511e2e55a733989a", "patch_ids": ["9b5a74bdb50fe9df755f568081bb609b", "ec4fee97406983395c717a40fd9a387b"], "statement_hash": "dac390ecfaf656a0261c893fff6ca26689a53b2c1e114831b9125abdaa3342d0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-764f8596848b3657", "migration": false}, {"id": "16.0-69031a22ebdf1c8a", "cves": [], "html": "<p>\u589e\u52a0\u5728 <code>pg_hba.conf</code> \u4e2d\u5bf9\u6570\u636e\u5e93\u548c\u89d2\u8272\u6761\u76ee\u8fdb\u884c\u6b63\u5219\u8868\u8fbe\u5f0f\u5339\u914d\u7684\u652f\u6301\uff08Bertrand Drouvot\uff09<a href=\"https://postgr.es/c/8fea86830\">\u00a7</a></p>\n<p>\u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\u4ee5\u659c\u6760\u4e3a\u524d\u7f00\u3002\u4ee5\u659c\u6760\u5f00\u5934\u7684\u6570\u636e\u5e93\u548c\u89d2\u8272\u540d\u79f0\u5982\u679c\u5728 <code>pg_hba.conf</code> \u4e2d\u5f15\u7528\uff0c\u9700\u8981\u7528\u53cc\u5f15\u53f7\u62ec\u8d77\u6765\u3002</p>", "text": "\u589e\u52a0\u5728 pg_hba.conf \u4e2d\u5bf9\u6570\u636e\u5e93\u548c\u89d2\u8272\u6761\u76ee\u8fdb\u884c\u6b63\u5219\u8868\u8fbe\u5f0f\u5339\u914d\u7684\u652f\u6301\uff08Bertrand Drouvot\uff09\u00a7 \u6b63\u5219\u8868\u8fbe\u5f0f\u6a21\u5f0f\u4ee5\u659c\u6760\u4e3a\u524d\u7f00\u3002\u4ee5\u659c\u6760\u5f00\u5934\u7684\u6570\u636e\u5e93\u548c\u89d2\u8272\u540d\u79f0\u5982\u679c\u5728 pg_hba.conf \u4e2d\u5f15\u7528\uff0c\u9700\u8981\u7528\u53cc\u5f15\u53f7\u62ec\u8d77\u6765\u3002", "title": "\u589e\u52a0\u5728 pg_hba.conf \u4e2d\u5bf9\u6570\u636e\u5e93\u548c\u89d2\u8272\u6761\u76ee\u8fdb\u884c\u6b63\u5219\u8868\u8fbe\u5f0f\u5339\u914d\u7684\u652f\u6301", "commits": ["8fea86830"], "section": "\u670d\u52a1\u5668 / pg_hba.conf", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PG-HBA", "source_hash": "dc4d3a0828c6e573249ddd9ce52ef099f4d4c6ec2e97180b8a6458470ed34205", "section_path": ["\u670d\u52a1\u5668", "pg_hba.conf"], "commit_groups": [["8fea86830"]], "identity_text": "Add support for regular expression matching on database and role entries in pg_hba.conf (Bertrand Drouvot) Regular expression patterns are prefixed with a slash. Database and role names that begin with slashes need to be double-quoted if referenced in pg_hba.conf.", "commit_aliases": ["8fea86830"], "source_commits": ["8fea86830"], "source_entry_id": "16.0/changes/064", "db_id": "e54df047ded401e698c4ab96935c0ad4", "patch_ids": ["feef69fd7ed7ca80663bf99f4cf85ef8"], "statement_hash": "81d2e2184769de9d7ad8efbbb87f842fd74c7d1ecb5081552aff1814618909d9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-69031a22ebdf1c8a", "migration": false}, {"id": "16.0-a931ff5679d3eb9f", "cves": [], "html": "<p>\u6539\u8fdb <a href=\"/docs/16/runtime-config-file-locations.html\" title=\"20.2.\u00a0\u6587\u4ef6\u4f4d\u7f6e\"><code>pg_ident.conf</code></a> \u7684\u7528\u6237\u5217\u5904\u7406\u4ee5\u5339\u914d <code>pg_hba.conf</code>\uff08Jelte Fennema\uff09<a href=\"https://postgr.es/c/efb6f4a4f\">\u00a7</a></p>\n<p>\u5177\u4f53\u6765\u8bf4\uff0c\u589e\u52a0\u5bf9 <code>all</code>\u3001\u4f7f\u7528 <code>+</code> \u7684\u89d2\u8272\u6210\u5458\u8d44\u683c\u4ee5\u53ca\u4f7f\u7528\u524d\u5bfc\u659c\u6760\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u652f\u6301\u3002\u4e0e\u8fd9\u4e9b\u6a21\u5f0f\u5339\u914d\u7684\u4efb\u4f55\u7528\u6237\u540d\u5fc5\u987b\u7528\u53cc\u5f15\u53f7\u62ec\u8d77\u6765\u3002</p>", "text": "\u6539\u8fdb pg_ident.conf \u7684\u7528\u6237\u5217\u5904\u7406\u4ee5\u5339\u914d pg_hba.conf\uff08Jelte Fennema\uff09\u00a7 \u5177\u4f53\u6765\u8bf4\uff0c\u589e\u52a0\u5bf9 all\u3001\u4f7f\u7528 + \u7684\u89d2\u8272\u6210\u5458\u8d44\u683c\u4ee5\u53ca\u4f7f\u7528\u524d\u5bfc\u659c\u6760\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u652f\u6301\u3002\u4e0e\u8fd9\u4e9b\u6a21\u5f0f\u5339\u914d\u7684\u4efb\u4f55\u7528\u6237\u540d\u5fc5\u987b\u7528\u53cc\u5f15\u53f7\u62ec\u8d77\u6765\u3002", "title": "\u6539\u8fdb pg_ident.conf \u7684\u7528\u6237\u5217\u5904\u7406\u4ee5\u5339\u914d pg_hba.conf", "commits": ["efb6f4a4f"], "section": "\u670d\u52a1\u5668 / pg_hba.conf", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PG-HBA", "source_hash": "23f769962b5f55b00ee49e2057d2969494026a774bdc39aa06711f15bf6ff051", "section_path": ["\u670d\u52a1\u5668", "pg_hba.conf"], "commit_groups": [["efb6f4a4f"]], "identity_text": "Improve user-column handling of pg_ident.conf to match pg_hba.conf (Jelte Fennema) Specifically, add support for all, role membership with +, and regular expressions with a leading slash. Any user name that matches these patterns must be double-quoted.", "commit_aliases": ["efb6f4a4f"], "source_commits": ["efb6f4a4f"], "source_entry_id": "16.0/changes/065", "db_id": "137bcd8f1995b9a3326cbf5bbccd4ebc", "patch_ids": ["422b09e4748267c101169bb10505cb19"], "statement_hash": "8987ebd67c5f4529f17d426c2eb7c3b7a331d9fe9fb84374a37ffb2b04b8da30", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-a931ff5679d3eb9f", "migration": false}, {"id": "16.0-307440800494bc01", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <code>pg_hba.conf</code> \u548c <code>pg_ident.conf</code> \u4e2d\u5305\u542b\u6587\u4ef6\uff08Julien Rouhaud\uff09<a href=\"https://postgr.es/c/a54b658ce\">\u00a7</a></p>\n<p>\u8fd9\u7531 <code>include</code>\u3001<code>include_if_exists</code> \u548c <code>include_dir</code> \u63a7\u5236\u3002\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/16/view-pg-hba-file-rules.html\" title=\"54.9.\u00a0pg_hba_file_rules\"><code>pg_hba_file_rules</code></a> \u548c <a href=\"/docs/16/view-pg-ident-file-mappings.html\" title=\"54.10.\u00a0pg_ident_file_mappings\"><code>pg_ident_file_mappings</code></a> \u73b0\u5728\u663e\u793a\u6587\u4ef6\u540d\u3002</p>", "text": "\u5141\u8bb8\u5728 pg_hba.conf \u548c pg_ident.conf \u4e2d\u5305\u542b\u6587\u4ef6\uff08Julien Rouhaud\uff09\u00a7 \u8fd9\u7531 include\u3001include_if_exists \u548c include_dir \u63a7\u5236\u3002\u7cfb\u7edf\u89c6\u56fe pg_hba_file_rules \u548c pg_ident_file_mappings \u73b0\u5728\u663e\u793a\u6587\u4ef6\u540d\u3002", "title": "\u5141\u8bb8\u5728 pg_hba.conf \u548c pg_ident.conf \u4e2d\u5305\u542b\u6587\u4ef6", "commits": ["a54b658ce"], "section": "\u670d\u52a1\u5668 / pg_hba.conf", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PG-HBA", "source_hash": "19029c46e021a58ed87811c9ad36bdfd200b032bd477cfba858ba6a99da33cf9", "section_path": ["\u670d\u52a1\u5668", "pg_hba.conf"], "commit_groups": [["a54b658ce"]], "identity_text": "Allow include files in pg_hba.conf and pg_ident.conf (Julien Rouhaud) These are controlled by include, include_if_exists, and include_dir. System views pg_hba_file_rules and pg_ident_file_mappings now display the file name.", "commit_aliases": ["a54b658ce"], "source_commits": ["a54b658ce"], "source_entry_id": "16.0/changes/066", "db_id": "264b412ce1e720e0e69182f215f4a768", "patch_ids": ["bf35c94a0eaefa83c07fd24f2bd4441e"], "statement_hash": "3aed4557c9f1b6b340440dff60c048c10f425faa1e03439b3644957c6a76278e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-307440800494bc01", "migration": false}, {"id": "16.0-fc6faf9ca3927210", "cves": [], "html": "<p>\u5141\u8bb8 <code>pg_hba.conf</code> \u4ee4\u724c\u5177\u6709\u65e0\u9650\u957f\u5ea6\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/de3f0e3fe\">\u00a7</a></p>", "text": "\u5141\u8bb8 pg_hba.conf \u4ee4\u724c\u5177\u6709\u65e0\u9650\u957f\u5ea6\uff08Tom Lane\uff09\u00a7", "title": "\u5141\u8bb8 pg_hba.conf \u4ee4\u724c\u5177\u6709\u65e0\u9650\u957f\u5ea6", "commits": ["de3f0e3fe"], "section": "\u670d\u52a1\u5668 / pg_hba.conf", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PG-HBA", "source_hash": "4553af9234d427b40cdaff7b68e0d76495063a6c60451a35289ad85ba5b21d6c", "section_path": ["\u670d\u52a1\u5668", "pg_hba.conf"], "commit_groups": [["0660f74e8", "1d031ad54", "288b4288c", "313ceda2f", "341996248", "38df84c65", "de3f0e3fe"]], "identity_text": "Allow pg_hba.conf tokens to be of unlimited length (Tom Lane)", "commit_aliases": ["0660f74e8", "1d031ad54", "288b4288c", "313ceda2f", "341996248", "38df84c65", "de3f0e3fe"], "source_commits": ["de3f0e3fe"], "source_entry_id": "16.0/changes/067", "db_id": "c86f7037f349c6b765e98f879e584db3", "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"], "statement_hash": "3c415fdcb54d1537a22e1cc3eeb5ec2be3b9cad0862beea3ad16eb0d2d7e3956", "relations": [{"rule": 2, "type": "related", "target": "5052cdce2ff501e8882fe7b5bd665ea7", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}}, {"rule": 2, "type": "related", "target": "9f4d00733ec0b39cef55b609e58feb5e", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}}, {"rule": 2, "type": "related", "target": "bb6d76438d51fc5fa20cf73c0a0b64a3", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}}, {"rule": 2, "type": "related", "target": "c0284c475e03c7f703126c3dcc072f1b", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}}, {"rule": 2, "type": "related", "target": "d12f6a5e5ec54da016372459d525434d", "evidence": {"same_day": false, "patch_ids": ["98d67cdf3c0ead6326a2a33b279fe8d7"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-fc6faf9ca3927210", "migration": false}, {"id": "16.0-f463d8cb24b0e25e", "cves": [], "html": "<p>\u5411\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/16/view-pg-hba-file-rules.html\" title=\"54.9.\u00a0pg_hba_file_rules\"><code>pg_hba_file_rules</code></a> \u6dfb\u52a0\u89c4\u5219\u548c\u6620\u5c04\u7f16\u53f7\uff08Julien Rouhaud\uff09<a href=\"https://postgr.es/c/c591300a8\">\u00a7</a></p>", "text": "\u5411\u7cfb\u7edf\u89c6\u56fe pg_hba_file_rules \u6dfb\u52a0\u89c4\u5219\u548c\u6620\u5c04\u7f16\u53f7\uff08Julien Rouhaud\uff09\u00a7", "title": "\u5411\u7cfb\u7edf\u89c6\u56fe pg_hba_file_rules \u6dfb\u52a0\u89c4\u5219\u548c\u6620\u5c04\u7f16\u53f7", "commits": ["c591300a8"], "section": "\u670d\u52a1\u5668 / pg_hba.conf", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PG-HBA", "source_hash": "afafe2198e7ac0a4f8a731ecbb05a6f605f11961bb714088e6d1742ef34df9e2", "section_path": ["\u670d\u52a1\u5668", "pg_hba.conf"], "commit_groups": [["c591300a8"]], "identity_text": "Add rule and map numbers to the system view pg_hba_file_rules (Julien Rouhaud)", "commit_aliases": ["c591300a8"], "source_commits": ["c591300a8"], "source_entry_id": "16.0/changes/068", "db_id": "2229ae93b82d29c06736cfc141cc3273", "patch_ids": ["edfc5306db049f20dd92b7c004000d49"], "statement_hash": "791f0d243767c1d37565c7a63a761b94eb91e04be6b9a2da6313a5c720d5f374", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-f463d8cb24b0e25e", "migration": false}, {"id": "16.0-0e9b5a903dc93b78", "cves": [], "html": "<p>\u4f7f\u7528 <acronym>ICU</acronym> \u65f6\u4ece\u533a\u57df\u8bbe\u7f6e\u786e\u5b9a\u9ed8\u8ba4\u7f16\u7801\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/c45dc7ffb\">\u00a7</a></p>\n<p>\u4e4b\u524d\u9ed8\u8ba4\u59cb\u7ec8\u4e3a <code>UTF-8</code>\u3002</p>", "text": "\u4f7f\u7528 ICU \u65f6\u4ece\u533a\u57df\u8bbe\u7f6e\u786e\u5b9a\u9ed8\u8ba4\u7f16\u7801\uff08Jeff Davis\uff09\u00a7 \u4e4b\u524d\u9ed8\u8ba4\u59cb\u7ec8\u4e3a UTF-8\u3002", "title": "\u4f7f\u7528 ICU \u65f6\u4ece\u533a\u57df\u8bbe\u7f6e\u786e\u5b9a\u9ed8\u8ba4\u7f16\u7801", "commits": ["c45dc7ffb"], "section": "\u670d\u52a1\u5668 / \u672c\u5730\u5316", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOCALIZATION", "source_hash": "92d3830fbc65c6ced6923f47b174eb0096d0077afc92bdc1c130ec05ea83e458", "section_path": ["\u670d\u52a1\u5668", "\u672c\u5730\u5316"], "commit_groups": [["c45dc7ffb"]], "identity_text": "Determine the default encoding from the locale when using ICU (Jeff Davis) Previously the default was always UTF-8.", "commit_aliases": ["c45dc7ffb"], "source_commits": ["c45dc7ffb"], "source_entry_id": "16.0/changes/069", "db_id": "b4aa045a132f1c2459be405e31782c32", "patch_ids": ["514d304513414b1cc3a47e03f3e559ed"], "statement_hash": "61a3cfd3ef790ba0ec4ebc3076cd863ba4c853d535c46a680cb346105ee58652", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-0e9b5a903dc93b78", "migration": false}, {"id": "16.0-1e2f443edff180f2", "cves": [], "html": "<p>\u4f7f <a href=\"/docs/16/sql-createdatabase.html\" title=\"CREATE DATABASE\"><code>CREATE DATABASE</code></a> \u548c <a href=\"/docs/16/sql-createcollation.html\" title=\"CREATE COLLATION\"><code>CREATE COLLATION</code></a> \u7684 <code>LOCALE</code> \u9009\u9879\u4ee5\u53ca<a href=\"/docs/16/app-initdb.html\" title=\"initdb\"><span>initdb</span></a>\u548c<a href=\"/docs/16/app-createdb.html\" title=\"createdb\"><span>createdb</span></a>\u7684 <code>--locale</code> \u9009\u9879\u63a7\u5236\u975e <span>libc</span> \u6392\u5e8f\u89c4\u5219\u63d0\u4f9b\u7a0b\u5e8f\uff08Jeff Davis\uff09</p>\n<p>\u4e4b\u524d\u5b83\u4eec\u4ec5\u63a7\u5236 <span>libc</span> \u63d0\u4f9b\u7a0b\u5e8f\u3002</p>", "text": "\u4f7f CREATE DATABASE \u548c CREATE COLLATION \u7684 LOCALE \u9009\u9879\u4ee5\u53cainitdb\u548ccreatedb\u7684 --locale \u9009\u9879\u63a7\u5236\u975e libc \u6392\u5e8f\u89c4\u5219\u63d0\u4f9b\u7a0b\u5e8f\uff08Jeff Davis\uff09 \u4e4b\u524d\u5b83\u4eec\u4ec5\u63a7\u5236 libc \u63d0\u4f9b\u7a0b\u5e8f\u3002", "title": "\u4f7f CREATE DATABASE \u548c CREATE COLLATION \u7684 LOCALE \u9009\u9879\u4ee5\u53cainitdb\u548ccreatedb\u7684 --locale \u9009\u9879\u63a7\u5236\u975e libc \u6392\u5e8f\u89c4\u5219\u63d0\u4f9b\u7a0b\u5e8f", "commits": [], "section": "\u670d\u52a1\u5668 / \u672c\u5730\u5316", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOCALIZATION", "source_hash": "ae6dbfb963d8b839311e5c8ab6a08b6eacb9134ef13d49e347ff5a4a866d40db", "section_path": ["\u670d\u52a1\u5668", "\u672c\u5730\u5316"], "commit_groups": [], "identity_text": "Have CREATE DATABASE and CREATE COLLATION's LOCALE options, and initdb and createdb --locale options, control non-libc collation providers (Jeff Davis) Previously they only controlled libc providers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "16.0/changes/070", "db_id": "fc679045a7c09fb78e592e29084b7587", "patch_ids": [], "statement_hash": "5906b7758c17689a876321eff2da743d4d496232db4595ab3cb75bf2a57caeb2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-1e2f443edff180f2", "migration": false}, {"id": "16.0-8f2274f27651e92f", "cves": [], "html": "<p>\u589e\u52a0\u9884\u5b9a\u4e49\u6392\u5e8f\u89c4\u5219 <code>unicode</code> \u548c <code>ucs_basic</code>\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/0d21d4b9b\">\u00a7</a></p>\n<p>\u8fd9\u4ec5\u5728\u542f\u7528 <acronym>ICU</acronym> \u652f\u6301\u65f6\u6709\u6548\u3002</p>", "text": "\u589e\u52a0\u9884\u5b9a\u4e49\u6392\u5e8f\u89c4\u5219 unicode \u548c ucs_basic\uff08Peter Eisentraut\uff09\u00a7 \u8fd9\u4ec5\u5728\u542f\u7528 ICU \u652f\u6301\u65f6\u6709\u6548\u3002", "title": "\u589e\u52a0\u9884\u5b9a\u4e49\u6392\u5e8f\u89c4\u5219 unicode \u548c ucs_basic", "commits": ["0d21d4b9b"], "section": "\u670d\u52a1\u5668 / \u672c\u5730\u5316", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOCALIZATION", "source_hash": "20af604f4cb3bba822a972b921f8f752b7e2504aa65cc3d1bd49b9ee18683fac", "section_path": ["\u670d\u52a1\u5668", "\u672c\u5730\u5316"], "commit_groups": [["0d21d4b9b"]], "identity_text": "Add predefined collations unicode and ucs_basic (Peter Eisentraut) This only works if ICU support is enabled.", "commit_aliases": ["0d21d4b9b"], "source_commits": ["0d21d4b9b"], "source_entry_id": "16.0/changes/071", "db_id": "25981cdbbdb9e53cb6cb3779c545ed69", "patch_ids": ["9d964204c00a5c1f974a11e7efa90097"], "statement_hash": "c08d26f23d5728910817d1df6632a507b6f4646a6c5818b3ce2e359a81fbb8cd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-8f2274f27651e92f", "migration": false}, {"id": "16.0-237ef3061e16bbed", "cves": [], "html": "<p>\u5141\u8bb8\u521b\u5efa\u81ea\u5b9a\u4e49 <acronym>ICU</acronym> \u6392\u5e8f\u89c4\u5219\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/30a53b792\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7 <a href=\"/docs/16/sql-createcollation.html\" title=\"CREATE COLLATION\"><code>CREATE COLLATION</code></a> \u7684\u65b0 <code>RULES</code> \u5b50\u53e5\u4ee5\u53ca <a href=\"/docs/16/sql-createdatabase.html\" title=\"CREATE DATABASE\"><code>CREATE DATABASE</code></a>\u3001<a href=\"/docs/16/app-createdb.html\" title=\"createdb\"><span>createdb</span></a>\u548c<a href=\"/docs/16/app-initdb.html\" title=\"initdb\"><span>initdb</span></a>\u7684\u65b0\u9009\u9879\u6765\u5b9e\u73b0\u3002</p>", "text": "\u5141\u8bb8\u521b\u5efa\u81ea\u5b9a\u4e49 ICU \u6392\u5e8f\u89c4\u5219\uff08Peter Eisentraut\uff09\u00a7 \u8fd9\u901a\u8fc7 CREATE COLLATION \u7684\u65b0 RULES \u5b50\u53e5\u4ee5\u53ca CREATE DATABASE\u3001createdb\u548cinitdb\u7684\u65b0\u9009\u9879\u6765\u5b9e\u73b0\u3002", "title": "\u5141\u8bb8\u521b\u5efa\u81ea\u5b9a\u4e49 ICU \u6392\u5e8f\u89c4\u5219", "commits": ["30a53b792"], "section": "\u670d\u52a1\u5668 / \u672c\u5730\u5316", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOCALIZATION", "source_hash": "f311a03f0764c83aa9beca8262cb841bc11a16381281457ea76d3aaad32efe4d", "section_path": ["\u670d\u52a1\u5668", "\u672c\u5730\u5316"], "commit_groups": [["30a53b792"]], "identity_text": "Allow custom ICU collation rules to be created (Peter Eisentraut) This is done using CREATE COLLATION's new RULES clause, as well as new options for CREATE DATABASE, createdb, and initdb.", "commit_aliases": ["30a53b792"], "source_commits": ["30a53b792"], "source_entry_id": "16.0/changes/072", "db_id": "c67cad00884429cc4d56836dabbe102f", "patch_ids": ["3a2b95a9a06078db12276727ded48d28"], "statement_hash": "6df5d0a55103855f713f2b9b17e434b0ed1dddc693c836256511744e2d83b8c6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-237ef3061e16bbed", "migration": false}, {"id": "16.0-7d7afd0e397f4630", "cves": [], "html": "<p>\u5141\u8bb8 <span>Windows</span> \u81ea\u52a8\u5bfc\u5165\u7cfb\u7edf\u533a\u57df\u8bbe\u7f6e\uff08Juan Jos\u00e9 Santamar\u00eda Flecha\uff09<a href=\"https://postgr.es/c/bf03cfd16\">\u00a7</a></p>\n<p>\u4e4b\u524d\u5728 <span>Windows</span> \u4e0a\u53ea\u80fd\u5bfc\u5165 <acronym>ICU</acronym> \u533a\u57df\u8bbe\u7f6e\u3002</p>", "text": "\u5141\u8bb8 Windows \u81ea\u52a8\u5bfc\u5165\u7cfb\u7edf\u533a\u57df\u8bbe\u7f6e\uff08Juan Jos\u00e9 Santamar\u00eda Flecha\uff09\u00a7 \u4e4b\u524d\u5728 Windows \u4e0a\u53ea\u80fd\u5bfc\u5165 ICU \u533a\u57df\u8bbe\u7f6e\u3002", "title": "\u5141\u8bb8 Windows \u81ea\u52a8\u5bfc\u5165\u7cfb\u7edf\u533a\u57df\u8bbe\u7f6e", "commits": ["bf03cfd16"], "section": "\u670d\u52a1\u5668 / \u672c\u5730\u5316", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOCALIZATION", "source_hash": "1af265b5c212c3639cc13d73bf99759881266358877b5472bc7afcbc91a5c866", "section_path": ["\u670d\u52a1\u5668", "\u672c\u5730\u5316"], "commit_groups": [["bf03cfd16"]], "identity_text": "Allow Windows to import system locales automatically (Juan Jos\u00e9 Santamar\u00eda Flecha) Previously, only ICU locales could be imported on Windows.", "commit_aliases": ["bf03cfd16"], "source_commits": ["bf03cfd16"], "source_entry_id": "16.0/changes/073", "db_id": "d003ced989446842e7b5f952f47d1884", "patch_ids": ["3513d766bbda0e27f7a9978041280e18"], "statement_hash": "07a431408c036210010ad9935e35d07d3d169bf8cbcef8c8c5e0e02d1cbd2086", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-7d7afd0e397f4630", "migration": false}, {"id": "16.0-b62a00e6f733a9b8", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u5907\u5e93\u4e0a\u8fdb\u884c<a href=\"/docs/16/logicaldecoding.html\" title=\"\u7b2c\u00a049\u00a0\u7ae0\u00a0\u903b\u8f91\u89e3\u7801\">\u903b\u8f91\u89e3\u7801</a>\uff08Bertrand Drouvot\uff0cAndres Freund\uff0cAmit Khandekar\uff09<a href=\"https://postgr.es/c/0fdab27ad\">\u00a7</a> <a href=\"https://postgr.es/c/be87200ef\">\u00a7</a> <a href=\"https://postgr.es/c/26669757b\">\u00a7</a></p>\n<p>\u521b\u5efa\u903b\u8f91\u69fd\u9700\u8981\u5feb\u7167 <acronym>WAL</acronym> \u8bb0\u5f55\uff0c\u4f46\u8fd9\u7c7b\u8bb0\u5f55\u65e0\u6cd5\u5728\u5907\u5e93\u4e0a\u751f\u6210\u3002\u4e3a\u907f\u514d\u5ef6\u8fdf\uff0c\u65b0\u51fd\u6570 <a href=\"/docs/16/functions-admin.html#FUNCTIONS-SNAPSHOT-SYNCHRONIZATION-TABLE\" title=\"\u8868\u00a09.94.\u00a0\u5feb\u7167\u540c\u6b65\u51fd\u6570\"><code>pg_log_standby_snapshot()</code></a> \u53ef\u751f\u6210\u6b64\u7c7b\u8bb0\u5f55\u3002</p>", "text": "\u5141\u8bb8\u5728\u5907\u5e93\u4e0a\u8fdb\u884c\u903b\u8f91\u89e3\u7801\uff08Bertrand Drouvot\uff0cAndres Freund\uff0cAmit Khandekar\uff09\u00a7 \u00a7 \u00a7 \u521b\u5efa\u903b\u8f91\u69fd\u9700\u8981\u5feb\u7167 WAL \u8bb0\u5f55\uff0c\u4f46\u8fd9\u7c7b\u8bb0\u5f55\u65e0\u6cd5\u5728\u5907\u5e93\u4e0a\u751f\u6210\u3002\u4e3a\u907f\u514d\u5ef6\u8fdf\uff0c\u65b0\u51fd\u6570 pg_log_standby_snapshot() \u53ef\u751f\u6210\u6b64\u7c7b\u8bb0\u5f55\u3002", "title": "\u5141\u8bb8\u5728\u5907\u5e93\u4e0a\u8fdb\u884c\u903b\u8f91\u89e3\u7801", "commits": ["0fdab27ad", "26669757b", "be87200ef"], "section": "\u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "2e14b489dd6cd161f55a55bd46c52d35926e897a9b53f840aafcffb24299b9e6", "section_path": ["\u903b\u8f91\u590d\u5236"], "commit_groups": [["0fdab27ad"], ["26669757b"], ["be87200ef"]], "identity_text": "Allow logical decoding on standbys (Bertrand Drouvot, Andres Freund, Amit Khandekar) Snapshot WAL records are required for logical slot creation but cannot be created on standbys. To avoid delays, the new function pg_log_standby_snapshot() allows creation of such records.", "commit_aliases": ["0fdab27ad", "26669757b", "be87200ef"], "source_commits": ["0fdab27ad", "26669757b", "be87200ef"], "source_entry_id": "16.0/changes/074", "db_id": "fc6fc79acd79ba127e063457520a6efb", "patch_ids": ["165303359ee16d78f9d7dc0e0f749128", "1ab890d18fed84cd3ca0dbafbdadeac2", "4362f9237d55a23b7bdc253af001957c"], "statement_hash": "d7fc290b42dfe95ffe8c6d70ee7f074b57a7b07ec93f74bf167ead8a0f929231", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-b62a00e6f733a9b8", "migration": false}, {"id": "16.0-aabe10ae61c7eb5d", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf\u4ee5\u63a7\u5236\u903b\u8f91\u89e3\u7801\u53d1\u5e03\u8005\u5982\u4f55\u4f20\u8f93\u53d8\u66f4\u4ee5\u53ca\u8ba2\u9605\u8005\u5982\u4f55\u5e94\u7528\u5b83\u4eec\uff08Shi Yu\uff09<a href=\"https://postgr.es/c/5de94a041\">\u00a7</a> <a href=\"https://postgr.es/c/1e8b61735\">\u00a7</a> <a href=\"https://postgr.es/c/9f2213a7c\">\u00a7</a></p>\n<p>\u8be5\u53d8\u91cf\u4e3a <a href=\"/docs/16/runtime-config-developer.html#GUC-DEBUG-LOGICAL-REPLICATION-STREAMING\"><code>debug_logical_replication_streaming</code></a>\u3002</p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf\u4ee5\u63a7\u5236\u903b\u8f91\u89e3\u7801\u53d1\u5e03\u8005\u5982\u4f55\u4f20\u8f93\u53d8\u66f4\u4ee5\u53ca\u8ba2\u9605\u8005\u5982\u4f55\u5e94\u7528\u5b83\u4eec\uff08Shi Yu\uff09\u00a7 \u00a7 \u00a7 \u8be5\u53d8\u91cf\u4e3a debug_logical_replication_streaming\u3002", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf\u4ee5\u63a7\u5236\u903b\u8f91\u89e3\u7801\u53d1\u5e03\u8005\u5982\u4f55\u4f20\u8f93\u53d8\u66f4\u4ee5\u53ca\u8ba2\u9605\u8005\u5982\u4f55\u5e94\u7528\u5b83\u4eec", "commits": ["1e8b61735", "5de94a041", "9f2213a7c"], "section": "\u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "b3d291fe7ea92b806f009a082b1f24e7cfbb26b410e9083a70e89e2ba77740d8", "section_path": ["\u903b\u8f91\u590d\u5236"], "commit_groups": [["1e8b61735"], ["5de94a041"], ["9f2213a7c"]], "identity_text": "Add server variable to control how logical decoding publishers transfer changes and how subscribers apply them (Shi Yu) The variable is debug_logical_replication_streaming.", "commit_aliases": ["1e8b61735", "5de94a041", "9f2213a7c"], "source_commits": ["1e8b61735", "5de94a041", "9f2213a7c"], "source_entry_id": "16.0/changes/075", "db_id": "48268c87153d25920abd9410a6f4c6a4", "patch_ids": ["2910c13d662d029361683603c914c705", "301b4cc02ebb4ca1bb3d49f2f233bfc8", "c81f8e93859cfdcf760861ab87cfd24f"], "statement_hash": "8d0c95fe082aafe62f2dc9de107da8027e2f005c7d9ece5816adec2d8632e16f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-aabe10ae61c7eb5d", "migration": false}, {"id": "16.0-a3e1964b67f8939c", "cves": [], "html": "<p>\u5141\u8bb8\u903b\u8f91\u590d\u5236\u521d\u59cb\u8868\u540c\u6b65\u4ee5\u4e8c\u8fdb\u5236\u683c\u5f0f\u590d\u5236\u884c\uff08Melih Mutlu\uff09<a href=\"https://postgr.es/c/ecb696527\">\u00a7</a></p>\n<p>\u8fd9\u4ec5\u5bf9\u6807\u8bb0\u4e3a\u4e8c\u8fdb\u5236\u7684\u8ba2\u9605\u53ef\u7528\u3002</p>", "text": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u521d\u59cb\u8868\u540c\u6b65\u4ee5\u4e8c\u8fdb\u5236\u683c\u5f0f\u590d\u5236\u884c\uff08Melih Mutlu\uff09\u00a7 \u8fd9\u4ec5\u5bf9\u6807\u8bb0\u4e3a\u4e8c\u8fdb\u5236\u7684\u8ba2\u9605\u53ef\u7528\u3002", "title": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u521d\u59cb\u8868\u540c\u6b65\u4ee5\u4e8c\u8fdb\u5236\u683c\u5f0f\u590d\u5236\u884c", "commits": ["ecb696527"], "section": "\u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "180167454b62cff42a55b4764041c0f3976cbff14a9aaa4512a6a6bab08efc26", "section_path": ["\u903b\u8f91\u590d\u5236"], "commit_groups": [["ecb696527"]], "identity_text": "Allow logical replication initial table synchronization to copy rows in binary format (Melih Mutlu) This is only possible for subscriptions marked as binary.", "commit_aliases": ["ecb696527"], "source_commits": ["ecb696527"], "source_entry_id": "16.0/changes/076", "db_id": "2e40bd0cedd5d75513af5991297f2320", "patch_ids": ["0ff2ce3757263c87081e946022fd6107"], "statement_hash": "5c043ffd493ffb9998fc5b1200816cabc1fdfbb25c897608ea40c614df459069", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-a3e1964b67f8939c", "migration": false}, {"id": "16.0-aacf319991cb6855", "cves": [], "html": "<p>\u5141\u8bb8\u5e76\u884c\u5e94\u7528\u903b\u8f91\u590d\u5236\uff08Hou Zhijie\uff0cWang Wei\uff0cAmit Kapila\uff09<a href=\"https://postgr.es/c/216a78482\">\u00a7</a> <a href=\"https://postgr.es/c/cd06ccd78\">\u00a7</a> <a href=\"https://postgr.es/c/fce003cfd\">\u00a7</a></p>\n<p><a href=\"/docs/16/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>CREATE SUBSCRIPTION</code></a> \u7684 <code>STREAMING</code> \u9009\u9879\u73b0\u5728\u652f\u6301 <code>parallel</code>\uff0c\u4ee5\u4fbf\u4f7f\u7528\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u5e94\u7528\u5927\u4e8b\u52a1\u3002\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u7684\u6570\u91cf\u7531\u65b0\u7684\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/16/runtime-config-replication.html#GUC-MAX-PARALLEL-APPLY-WORKERS-PER-SUBSCRIPTION\"><code>max_parallel_apply_workers_per_subscription</code></a> \u63a7\u5236\u3002\u8fd8\u65b0\u589e\u4e86\u7b49\u5f85\u4e8b\u4ef6 <a href=\"/docs/16/monitoring-stats.html#WAIT-EVENT-ACTIVITY-TABLE\" title=\"\u8868\u00a028.5.\u00a0Activity\u7c7b\u578b\u7684\u7b49\u5f85\u4e8b\u4ef6\"><code>LogicalParallelApplyMain</code></a>\u3001<code>LogicalParallelApplyStateChange</code> \u548c <code>LogicalApplySendData</code>\u3002\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/16/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION\" title=\"28.2.8.\u00a0pg_stat_subscription\"><code>pg_stat_subscription</code></a> \u4e5f\u65b0\u589e\u4e86\u5217 <code>leader_pid</code> \u4ee5\u8ddf\u8e2a\u5e76\u884c\u6d3b\u52a8\u3002</p>", "text": "\u5141\u8bb8\u5e76\u884c\u5e94\u7528\u903b\u8f91\u590d\u5236\uff08Hou Zhijie\uff0cWang Wei\uff0cAmit Kapila\uff09\u00a7 \u00a7 \u00a7 CREATE SUBSCRIPTION \u7684 STREAMING \u9009\u9879\u73b0\u5728\u652f\u6301 parallel\uff0c\u4ee5\u4fbf\u4f7f\u7528\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u5e94\u7528\u5927\u4e8b\u52a1\u3002\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u7684\u6570\u91cf\u7531\u65b0\u7684\u670d\u52a1\u5668\u53d8\u91cf max_parallel_apply_workers_per_subscription \u63a7\u5236\u3002\u8fd8\u65b0\u589e\u4e86\u7b49\u5f85\u4e8b\u4ef6 LogicalParallelApplyMain\u3001LogicalParallelApplyStateChange \u548c LogicalApplySendData\u3002\u7cfb\u7edf\u89c6\u56fe pg_stat_subscription \u4e5f\u65b0\u589e\u4e86\u5217 leader_pid \u4ee5\u8ddf\u8e2a\u5e76\u884c\u6d3b\u52a8\u3002", "title": "\u5141\u8bb8\u5e76\u884c\u5e94\u7528\u903b\u8f91\u590d\u5236", "commits": ["216a78482", "cd06ccd78", "fce003cfd"], "section": "\u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "c2259e079b46334af3956fe847ba5634f1b9adaaab60f570791a6e66ad9e6219", "section_path": ["\u903b\u8f91\u590d\u5236"], "commit_groups": [["216a78482"], ["cd06ccd78"], ["fce003cfd"]], "identity_text": "Allow parallel application of logical replication (Hou Zhijie, Wang Wei, Amit Kapila) The CREATE SUBSCRIPTION STREAMING option now supports parallel to enable application of large transactions by parallel workers. The number of parallel workers is controlled by the new server variable max_parallel_apply_workers_per_subscription. Wait events LogicalParallelApplyMain, LogicalParallelApplyStateChange, and LogicalApplySendData were also added. Column leader_pid was added to system view pg_stat_subscription to track parallel activity.", "commit_aliases": ["216a78482", "cd06ccd78", "fce003cfd"], "source_commits": ["216a78482", "cd06ccd78", "fce003cfd"], "source_entry_id": "16.0/changes/077", "db_id": "35241d393cd22ca1ec033d70cabd3d43", "patch_ids": ["5c66bffc2dea7be16c6d46585b4dcdf2", "83d89cca3d4f385b52c60c3cb0dac087", "cd9b24935e2d7cd28e46e082739d534d"], "statement_hash": "f5702dd5432b4c1384eb37c8ae2a8748641ebad237c390425917e3555eb18bb8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-aacf319991cb6855", "migration": false}, {"id": "16.0-aa7d4fdadabe4e1e", "cves": [], "html": "<p>\u6539\u8fdb\u6ca1\u6709\u4e3b\u952e\u65f6<a href=\"/docs/16/logical-replication-architecture.html\" title=\"31.7.\u00a0\u67b6\u6784\">\u903b\u8f91\u590d\u5236\u5e94\u7528</a>\u7684\u6027\u80fd\uff08Onder Kalaci\uff0cAmit Kapila\uff09<a href=\"https://postgr.es/c/89e46da5e\">\u00a7</a></p>\n<p>\u5177\u4f53\u6765\u8bf4\uff0c<code>REPLICA IDENTITY FULL</code> \u73b0\u5728\u53ef\u4ee5\u4f7f\u7528 B-\u6811\u7d22\u5f15\u800c\u975e\u987a\u5e8f\u626b\u63cf\u8868\u6765\u67e5\u627e\u5339\u914d\u9879\u3002</p>", "text": "\u6539\u8fdb\u6ca1\u6709\u4e3b\u952e\u65f6\u903b\u8f91\u590d\u5236\u5e94\u7528\u7684\u6027\u80fd\uff08Onder Kalaci\uff0cAmit Kapila\uff09\u00a7 \u5177\u4f53\u6765\u8bf4\uff0cREPLICA IDENTITY FULL \u73b0\u5728\u53ef\u4ee5\u4f7f\u7528 B-\u6811\u7d22\u5f15\u800c\u975e\u987a\u5e8f\u626b\u63cf\u8868\u6765\u67e5\u627e\u5339\u914d\u9879\u3002", "title": "\u6539\u8fdb\u6ca1\u6709\u4e3b\u952e\u65f6\u903b\u8f91\u590d\u5236\u5e94\u7528\u7684\u6027\u80fd", "commits": ["89e46da5e"], "section": "\u903b\u8f91\u590d\u5236", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "f5816a96704055b35a5e312cf30803ba5ad83ef50c43bf5cc7dd0e68d68736e3", "section_path": ["\u903b\u8f91\u590d\u5236"], "commit_groups": [["89e46da5e"]], "identity_text": "Improve performance for logical replication apply without a primary key (Onder Kalaci, Amit Kapila) Specifically, REPLICA IDENTITY FULL can now use btree indexes rather than sequentially scanning the table to find matches.", "commit_aliases": ["89e46da5e"], "source_commits": ["89e46da5e"], "source_entry_id": "16.0/changes/078", "db_id": "8ba51f9147ee3d5127aaf713a1d0f31e", "patch_ids": ["aa702543a88bf9a97c7655547c27dae9"], "statement_hash": "96b7fe351c3004cbd8d667a06bfd726af45dcd49e5ab26f0d1d4905665b419f7", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-aa7d4fdadabe4e1e", "migration": false}, {"id": "16.0-01c3464b65a1e899", "cves": [], "html": "<p>\u5141\u8bb8\u903b\u8f91\u590d\u5236\u8ba2\u9605\u8005\u4ec5\u5904\u7406\u6ca1\u6709\u6765\u6e90\u7684\u53d8\u66f4\uff08Vignesh C\uff0cAmit Kapila\uff09<a href=\"https://postgr.es/c/366283961\">\u00a7</a> <a href=\"https://postgr.es/c/875693019\">\u00a7</a></p>\n<p>\u8fd9\u53ef\u7528\u4e8e\u907f\u514d\u590d\u5236\u5faa\u73af\u3002\u8fd9\u7531\u65b0\u7684 <code>CREATE SUBSCRIPTION ... ORIGIN</code> \u9009\u9879\u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u8ba2\u9605\u8005\u4ec5\u5904\u7406\u6ca1\u6709\u6765\u6e90\u7684\u53d8\u66f4\uff08Vignesh C\uff0cAmit Kapila\uff09\u00a7 \u00a7 \u8fd9\u53ef\u7528\u4e8e\u907f\u514d\u590d\u5236\u5faa\u73af\u3002\u8fd9\u7531\u65b0\u7684 CREATE SUBSCRIPTION ... ORIGIN \u9009\u9879\u63a7\u5236\u3002", "title": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u8ba2\u9605\u8005\u4ec5\u5904\u7406\u6ca1\u6709\u6765\u6e90\u7684\u53d8\u66f4", "commits": ["366283961", "875693019"], "section": "\u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "ce360d4e0fb1e8f87a715bb80c24a8b10a816631dd997c4bf75d514be32fecbf", "section_path": ["\u903b\u8f91\u590d\u5236"], "commit_groups": [["366283961"], ["875693019"]], "identity_text": "Allow logical replication subscribers to process only changes that have no origin (Vignesh C, Amit Kapila) This can be used to avoid replication loops. This is controlled by the new CREATE SUBSCRIPTION ... ORIGIN option.", "commit_aliases": ["366283961", "875693019"], "source_commits": ["366283961", "875693019"], "source_entry_id": "16.0/changes/079", "db_id": "8a43b73722220977bf930e94ea0af4e9", "patch_ids": ["71aada2d70b03056781b29646875974d", "bd9da86a24665b84d1b8e3abcc05ba60"], "statement_hash": "145dad94dd1d8c839f3e14150b6b484d9eadf80e590b245c2ac797a62a05f028", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-01c3464b65a1e899", "migration": false}, {"id": "16.0-a2853ba15ff4d5e8", "cves": [], "html": "<p>\u4ee5\u8868\u6240\u6709\u8005\u8eab\u4efd\u6267\u884c\u903b\u8f91\u590d\u5236 <a href=\"/docs/16/sql-select.html\" title=\"SELECT\"><code>SELECT</code></a> \u548c <acronym>DML</acronym> \u64cd\u4f5c\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/1e10d49b6\">\u00a7</a> <a href=\"https://postgr.es/c/482675987\">\u00a7</a></p>\n<p>\u8fd9\u63d0\u9ad8\u4e86\u5b89\u5168\u6027\uff0c\u73b0\u5728\u8981\u6c42\u8ba2\u9605\u6240\u6709\u8005\u662f\u8d85\u7ea7\u7528\u6237\u6216\u5bf9\u590d\u5236\u96c6\u4e2d\u6240\u6709\u62e5\u6709\u8868\u7684\u89d2\u8272\u5177\u6709 <a href=\"/docs/16/sql-set-role.html\" title=\"SET ROLE\"><code>SET ROLE</code></a> \u6743\u9650\u3002\u4ee5\u8ba2\u9605\u6240\u6709\u8005\u8eab\u4efd\u6267\u884c\u6240\u6709\u64cd\u4f5c\u7684\u5148\u524d\u884c\u4e3a\u53ef\u4ee5\u901a\u8fc7\u8ba2\u9605 <a href=\"/docs/16/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>run_as_owner</code></a> \u9009\u9879\u542f\u7528\u3002</p>", "text": "\u4ee5\u8868\u6240\u6709\u8005\u8eab\u4efd\u6267\u884c\u903b\u8f91\u590d\u5236 SELECT \u548c DML \u64cd\u4f5c\uff08Robert Haas\uff09\u00a7 \u00a7 \u8fd9\u63d0\u9ad8\u4e86\u5b89\u5168\u6027\uff0c\u73b0\u5728\u8981\u6c42\u8ba2\u9605\u6240\u6709\u8005\u662f\u8d85\u7ea7\u7528\u6237\u6216\u5bf9\u590d\u5236\u96c6\u4e2d\u6240\u6709\u62e5\u6709\u8868\u7684\u89d2\u8272\u5177\u6709 SET ROLE \u6743\u9650\u3002\u4ee5\u8ba2\u9605\u6240\u6709\u8005\u8eab\u4efd\u6267\u884c\u6240\u6709\u64cd\u4f5c\u7684\u5148\u524d\u884c\u4e3a\u53ef\u4ee5\u901a\u8fc7\u8ba2\u9605 run_as_owner \u9009\u9879\u542f\u7528\u3002", "title": "\u4ee5\u8868\u6240\u6709\u8005\u8eab\u4efd\u6267\u884c\u903b\u8f91\u590d\u5236 SELECT \u548c DML \u64cd\u4f5c", "commits": ["1e10d49b6", "482675987"], "section": "\u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "c1978a65d4122e6e826018e7eae82c66e241e9e360ffb803364f77b0e4cac6ef", "section_path": ["\u903b\u8f91\u590d\u5236"], "commit_groups": [["1e10d49b6"], ["482675987"]], "identity_text": "Perform logical replication SELECT and DML actions as the table owner (Robert Haas) This improves security and now requires subscription owners to be either superusers or to have SET ROLE permission on all roles owning tables in the replication set. The previous behavior of performing all operations as the subscription owner can be enabled with the subscription run_as_owner option.", "commit_aliases": ["1e10d49b6", "482675987"], "source_commits": ["1e10d49b6", "482675987"], "source_entry_id": "16.0/changes/080", "db_id": "aa1ea3aebe0dac80a1e918a1c2847bca", "patch_ids": ["06e31a265f18d2aa8f0e146808441665", "852db09e88f98f1fbc8338148813c35b"], "statement_hash": "7698b1d0004c2161ed3c8098213803b645f072445e127ff38ec2b0e8b96d3759", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-a2853ba15ff4d5e8", "migration": false}, {"id": "16.0-a67f814c630f81eb", "cves": [], "html": "<p>\u4f7f <a href=\"/docs/16/runtime-config-replication.html#GUC-WAL-RETRIEVE-RETRY-INTERVAL\"><code>wal_retrieve_retry_interval</code></a> \u6309\u8ba2\u9605\u64cd\u4f5c\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/5a3a95385\">\u00a7</a></p>\n<p>\u4e4b\u524d\u91cd\u8bd5\u65f6\u95f4\u662f\u5168\u5c40\u5e94\u7528\u7684\u3002\u8fd9\u8fd8\u6dfb\u52a0\u4e86\u7b49\u5f85\u4e8b\u4ef6 <a href=\"/docs/16/monitoring-stats.html#WAIT-EVENT-LWLOCK-TABLE\" title=\"\u8868\u00a028.12.\u00a0LWLock\u7c7b\u578b\u7684\u7b49\u5f85\u4e8b\u4ef6\"><code>LogicalRepLauncherDSA</code></a> \u548c <code>LogicalRepLauncherHash</code>\u3002</p>", "text": "\u4f7f wal_retrieve_retry_interval \u6309\u8ba2\u9605\u64cd\u4f5c\uff08Nathan Bossart\uff09\u00a7 \u4e4b\u524d\u91cd\u8bd5\u65f6\u95f4\u662f\u5168\u5c40\u5e94\u7528\u7684\u3002\u8fd9\u8fd8\u6dfb\u52a0\u4e86\u7b49\u5f85\u4e8b\u4ef6 LogicalRepLauncherDSA \u548c LogicalRepLauncherHash\u3002", "title": "\u4f7f wal_retrieve_retry_interval \u6309\u8ba2\u9605\u64cd\u4f5c", "commits": ["5a3a95385"], "section": "\u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LOGICAL", "source_hash": "e4cf8a8f891e46ab45b6c57cd7091ff37f71ba92019cf77df705274fcdb8dd9a", "section_path": ["\u903b\u8f91\u590d\u5236"], "commit_groups": [["5a3a95385"]], "identity_text": "Have wal_retrieve_retry_interval operate on a per-subscription basis (Nathan Bossart) Previously the retry time was applied globally. This also adds wait events >LogicalRepLauncherDSA and LogicalRepLauncherHash.", "commit_aliases": ["5a3a95385"], "source_commits": ["5a3a95385"], "source_entry_id": "16.0/changes/081", "db_id": "c0d17db66fb8440e6c90578c2619ed26", "patch_ids": ["7b2740a79739093e6accbe2a534129ca"], "statement_hash": "2767fae0dffd49f214a489873ed6b73b310657a2db010de1928985e5cb631870", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-a67f814c630f81eb", "migration": false}, {"id": "16.0-3f5a6d52a100f7a4", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/16/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN</code></a> \u9009\u9879 <code>GENERIC_PLAN</code> \u4ee5\u663e\u793a\u53c2\u6570\u5316\u67e5\u8be2\u7684\u901a\u7528\u8ba1\u5212\uff08Laurenz Albe\uff09<a href=\"https://postgr.es/c/3c05284d8\">\u00a7</a></p>", "text": "\u589e\u52a0 EXPLAIN \u9009\u9879 GENERIC_PLAN \u4ee5\u663e\u793a\u53c2\u6570\u5316\u67e5\u8be2\u7684\u901a\u7528\u8ba1\u5212\uff08Laurenz Albe\uff09\u00a7", "title": "\u589e\u52a0 EXPLAIN \u9009\u9879 GENERIC_PLAN \u4ee5\u663e\u793a\u53c2\u6570\u5316\u67e5\u8be2\u7684\u901a\u7528\u8ba1\u5212", "commits": ["3c05284d8"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "0e9504b699da3e3696922eb9f07124ecace8b3905a2b69c334344acd79f3542d", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["3c05284d8"]], "identity_text": "Add EXPLAIN option GENERIC_PLAN to display the generic plan for a parameterized query (Laurenz Albe)", "commit_aliases": ["3c05284d8"], "source_commits": ["3c05284d8"], "source_entry_id": "16.0/changes/082", "db_id": "b4a01fe5ffbbc906a764634d6009d2a5", "patch_ids": ["be35477f72bff094b94677b8cd683be1"], "statement_hash": "48d13d5c87cc1801eb449ed30d12f3a3437a11adbbd5620cf99e353a8151b83c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-3f5a6d52a100f7a4", "migration": false}, {"id": "16.0-01e6e5ca138ec291", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/16/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a> \u503c\u6620\u5c04\u5230\u5217\u7684 <code>DEFAULT</code>\uff08Israel Barth Rubio\uff09<a href=\"https://postgr.es/c/9f8377f7a\">\u00a7</a></p>", "text": "\u5141\u8bb8 COPY FROM \u503c\u6620\u5c04\u5230\u5217\u7684 DEFAULT\uff08Israel Barth Rubio\uff09\u00a7", "title": "\u5141\u8bb8 COPY FROM \u503c\u6620\u5c04\u5230\u5217\u7684 DEFAULT", "commits": ["9f8377f7a"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "10eeb5a25fe1332729eeccff10f21605d421c576b877ef36679c285456ecb896", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["9f8377f7a"]], "identity_text": "Allow a COPY FROM value to map to a column's DEFAULT (Israel Barth Rubio)", "commit_aliases": ["9f8377f7a"], "source_commits": ["9f8377f7a"], "source_entry_id": "16.0/changes/083", "db_id": "d27772796eb471693aeb43a76ae0585d", "patch_ids": ["83f2d72f33ab6b0c7ee1e77356024528"], "statement_hash": "368e2ee1df687962a3d662ce7aa68b41ef9fcd377023603bb8d7131e8ad6a8ff", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-01e6e5ca138ec291", "migration": false}, {"id": "16.0-d36a39c496a43dd9", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/16/sql-copy.html\" title=\"COPY\"><code>COPY</code></a> \u4ee5\u6279\u91cf\u65b9\u5f0f\u5411\u5916\u90e8\u8868\u6dfb\u52a0\u884c\uff08Andrey Lepikhov\uff0cEtsuro Fujita\uff09<a href=\"https://postgr.es/c/97da48246\">\u00a7</a></p>\n<p>\u8fd9\u7531<a href=\"/docs/16/postgres-fdw.html\" title=\"F.38.\u00a0postgres_fdw \u2014 \u8bbf\u95ee\u5b58\u50a8\u5728\u5916\u90e8 PostgreSQL \u670d\u52a1\u5668\u4e2d\u7684\u6570\u636e\"><span>postgres_fdw</span></a>\u9009\u9879 <a href=\"/docs/16/postgres-fdw.html#POSTGRES-FDW-OPTIONS-COST-ESTIMATION\" title=\"F.38.1.3.\u00a0\u4ee3\u4ef7\u4f30\u7b97\u9009\u9879\"><code>batch_size</code></a> \u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8 COPY \u4ee5\u6279\u91cf\u65b9\u5f0f\u5411\u5916\u90e8\u8868\u6dfb\u52a0\u884c\uff08Andrey Lepikhov\uff0cEtsuro Fujita\uff09\u00a7 \u8fd9\u7531postgres_fdw\u9009\u9879 batch_size \u63a7\u5236\u3002", "title": "\u5141\u8bb8 COPY \u4ee5\u6279\u91cf\u65b9\u5f0f\u5411\u5916\u90e8\u8868\u6dfb\u52a0\u884c", "commits": ["97da48246"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "e82e65c036b39eb2bcbc911d147d723bd2ceea4facb37d0ee4ea8114ff7588c1", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["97da48246"]], "identity_text": "Allow COPY into foreign tables to add rows in batches (Andrey Lepikhov, Etsuro Fujita) This is controlled by the postgres_fdw option batch_size.", "commit_aliases": ["97da48246"], "source_commits": ["97da48246"], "source_entry_id": "16.0/changes/084", "db_id": "d95de3df464af40951a11e2ac403c964", "patch_ids": ["7e55f1877ed7124325748d313ae62487"], "statement_hash": "184b8039a6d4b92919728af177525e61b6abeeedd31224b39cc38ecbb9b7c523", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-d36a39c496a43dd9", "migration": false}, {"id": "16.0-8d4fc20739312d11", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/16/sql-createtable.html\" title=\"CREATE TABLE\"><code>CREATE TABLE</code></a> \u6307\u5b9a <code>STORAGE</code> \u7c7b\u578b\uff08Teodor Sigaev\uff0cAleksander Alekseev\uff09<a href=\"https://postgr.es/c/784cedda0\">\u00a7</a> <a href=\"https://postgr.es/c/b9424d014\">\u00a7</a></p>\n<p>\u4e4b\u524d\u53ea\u6709 <a href=\"/docs/16/sql-altertable.html\" title=\"ALTER TABLE\"><code>ALTER TABLE</code></a> \u53ef\u4ee5\u63a7\u5236\u8fd9\u4e00\u70b9\u3002</p>", "text": "\u5141\u8bb8 CREATE TABLE \u6307\u5b9a STORAGE \u7c7b\u578b\uff08Teodor Sigaev\uff0cAleksander Alekseev\uff09\u00a7 \u00a7 \u4e4b\u524d\u53ea\u6709 ALTER TABLE \u53ef\u4ee5\u63a7\u5236\u8fd9\u4e00\u70b9\u3002", "title": "\u5141\u8bb8 CREATE TABLE \u6307\u5b9a STORAGE \u7c7b\u578b", "commits": ["784cedda0", "b9424d014"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "da33fc43ebcb529218028cf38710f53f999ba791a627a0f948b767242554fe9f", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["784cedda0"], ["b9424d014"]], "identity_text": "Allow the STORAGE type to be specified by CREATE TABLE (Teodor Sigaev, Aleksander Alekseev) Previously only ALTER TABLE could control this.", "commit_aliases": ["784cedda0", "b9424d014"], "source_commits": ["784cedda0", "b9424d014"], "source_entry_id": "16.0/changes/085", "db_id": "6ca5c2476e02ff24249ab198b5c68c52", "patch_ids": ["5356c7349d9c510450b3104935cb41b9", "cadac9a6ec60fec7523d064a6884b6ff"], "statement_hash": "1ae8e7d7e80282d48eb7148194d5132f26e95fa570907e1812008924f6e509d3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-8d4fc20739312d11", "migration": false}, {"id": "16.0-4c0ee34acb5b662e", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u5916\u90e8\u8868\u4e0a\u4f7f\u7528<a href=\"/docs/16/sql-createtrigger.html\" title=\"CREATE TRIGGER\">\u622a\u65ad\u89e6\u53d1\u5668</a>\uff08Yugo Nagata\uff09<a href=\"https://postgr.es/c/3b00a944a\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728\u5916\u90e8\u8868\u4e0a\u4f7f\u7528\u622a\u65ad\u89e6\u53d1\u5668\uff08Yugo Nagata\uff09\u00a7", "title": "\u5141\u8bb8\u5728\u5916\u90e8\u8868\u4e0a\u4f7f\u7528\u622a\u65ad\u89e6\u53d1\u5668", "commits": ["3b00a944a"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "67a466dc9e07cd06b290c8b9c33aa1d85468dee8420d92b06dbd1d636cc94e4f", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["3b00a944a"]], "identity_text": "Allow truncate triggers on foreign tables (Yugo Nagata)", "commit_aliases": ["3b00a944a"], "source_commits": ["3b00a944a"], "source_entry_id": "16.0/changes/086", "db_id": "693b5ff7c3a180f56ffc9a8a6fb40aaf", "patch_ids": ["c704d229ce4595b4d27aa4db0c1c0f23"], "statement_hash": "f47f23c42bb3e6f146cb6956a37997c1376a309e13a324ea2c35ab101524a5b3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-4c0ee34acb5b662e", "migration": false}, {"id": "16.0-d012f052146c3589", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/16/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> \u548c<a href=\"/docs/16/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a>\u4ec5\u5904\u7406 <a href=\"/docs/16/storage-toast.html\" title=\"73.2.\u00a0TOAST\"><code>TOAST</code></a> \u8868\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/4211fbd84\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7\u8ba9 <a href=\"/docs/16/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> \u5173\u95ed <code>PROCESS_MAIN</code> \u6216\u8ba9<a href=\"/docs/16/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a>\u4f7f\u7528 <code>--no-process-main</code> \u9009\u9879\u6765\u5b9e\u73b0\u3002</p>", "text": "\u5141\u8bb8 VACUUM \u548cvacuumdb\u4ec5\u5904\u7406 TOAST \u8868\uff08Nathan Bossart\uff09\u00a7 \u8fd9\u901a\u8fc7\u8ba9 VACUUM \u5173\u95ed PROCESS_MAIN \u6216\u8ba9vacuumdb\u4f7f\u7528 --no-process-main \u9009\u9879\u6765\u5b9e\u73b0\u3002", "title": "\u5141\u8bb8 VACUUM \u548cvacuumdb\u4ec5\u5904\u7406 TOAST \u8868", "commits": ["4211fbd84"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "e4fc105e50a975660157205cd01b24fc508da246165330b7c5a1b2e607fd98a1", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["4211fbd84"]], "identity_text": "Allow VACUUM and vacuumdb to only process TOAST tables (Nathan Bossart) This is accomplished by having VACUUM turn off PROCESS_MAIN or by vacuumdb using the --no-process-main option.", "commit_aliases": ["4211fbd84"], "source_commits": ["4211fbd84"], "source_entry_id": "16.0/changes/087", "db_id": "373ca3287c1ded42d79d933db2353ce3", "patch_ids": ["5a9c00a57be8ab695142f015c7fdff59"], "statement_hash": "c2987dfaf72ae0e47e1668ff6a1a30860a4dea4c27debc090c792b153adbc4ef", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-d012f052146c3589", "migration": false}, {"id": "16.0-f1e72aec52de755e", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/16/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> \u9009\u9879\u4ee5\u8df3\u8fc7\u6216\u66f4\u65b0\u6240\u6709<a href=\"/docs/16/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND\" title=\"25.1.5.\u00a0\u9632\u6b62\u4e8b\u52a1 ID \u56de\u5377\u5931\u8d25\">\u51bb\u7ed3</a>\u7edf\u8ba1\uff08Tom Lane\uff0cNathan Bossart\uff09<a href=\"https://postgr.es/c/a46a7011b\">\u00a7</a></p>\n<p>\u9009\u9879\u4e3a <code>SKIP_DATABASE_STATS</code> \u548c <code>ONLY_DATABASE_STATS</code>\u3002</p>", "text": "\u589e\u52a0 VACUUM \u9009\u9879\u4ee5\u8df3\u8fc7\u6216\u66f4\u65b0\u6240\u6709\u51bb\u7ed3\u7edf\u8ba1\uff08Tom Lane\uff0cNathan Bossart\uff09\u00a7 \u9009\u9879\u4e3a SKIP_DATABASE_STATS \u548c ONLY_DATABASE_STATS\u3002", "title": "\u589e\u52a0 VACUUM \u9009\u9879\u4ee5\u8df3\u8fc7\u6216\u66f4\u65b0\u6240\u6709\u51bb\u7ed3\u7edf\u8ba1", "commits": ["a46a7011b"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "114478504c527c58479419c581c463959e5127ce6fe68f6fb7b77bedeba900e5", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["a46a7011b"]], "identity_text": "Add VACUUM options to skip or update all frozen statistics (Tom Lane, Nathan Bossart) The options are SKIP_DATABASE_STATS and ONLY_DATABASE_STATS.", "commit_aliases": ["a46a7011b"], "source_commits": ["a46a7011b"], "source_entry_id": "16.0/changes/088", "db_id": "e136e43acbe4861285a36e1d2974b349", "patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"], "statement_hash": "02713986409505385485caf1cbe9cc7c09ceeb4098cb4414e133d7659011f335", "relations": [{"rule": 2, "type": "related", "target": "14e919445c15a22f53716118595810d3", "evidence": {"same_day": true, "patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"], "ambiguous_patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-f1e72aec52de755e", "migration": false}, {"id": "16.0-8cc6611e70448232", "cves": [], "html": "<p>\u66f4\u6539 <a href=\"/docs/16/sql-reindex.html\" title=\"REINDEX\"><code>REINDEX DATABASE</code></a> \u548c <a href=\"/docs/16/sql-reindex.html\" title=\"REINDEX\"><code>REINDEX SYSTEM</code></a> \u4e0d\u518d\u8981\u6c42\u53c2\u6570\uff08Simon Riggs\uff09<a href=\"https://postgr.es/c/2cbc3c17a\">\u00a7</a> <a href=\"https://postgr.es/c/0a5f06b84\">\u00a7</a></p>\n<p>\u4e4b\u524d\u5fc5\u987b\u6307\u5b9a\u6570\u636e\u5e93\u540d\u79f0\u3002</p>", "text": "\u66f4\u6539 REINDEX DATABASE \u548c REINDEX SYSTEM \u4e0d\u518d\u8981\u6c42\u53c2\u6570\uff08Simon Riggs\uff09\u00a7 \u00a7 \u4e4b\u524d\u5fc5\u987b\u6307\u5b9a\u6570\u636e\u5e93\u540d\u79f0\u3002", "title": "\u66f4\u6539 REINDEX DATABASE \u548c REINDEX SYSTEM \u4e0d\u518d\u8981\u6c42\u53c2\u6570", "commits": ["0a5f06b84", "2cbc3c17a"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "e035b9e1e70809bff54527a7e3d70be9050011107eb7f150dde9386006ab18e6", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["0a5f06b84"], ["2cbc3c17a"]], "identity_text": "Change REINDEX DATABASE and REINDEX SYSTEM to no longer require an argument (Simon Riggs) Previously the database name had to be specified.", "commit_aliases": ["0a5f06b84", "2cbc3c17a"], "source_commits": ["0a5f06b84", "2cbc3c17a"], "source_entry_id": "16.0/changes/089", "db_id": "cb5715aa1fddf34ed43b90514b03bc21", "patch_ids": ["92844ce33747d7e2426d82ea02840c62", "e53caa2334bbd1e5befcc0bdae91cb58"], "statement_hash": "bfbe5b5c1384c5857431b2b2b3a46ced6aa74870b3ca9c9659d2f27a6005caee", "relations": [{"rule": 2, "type": "related", "target": "c7098ee16ce798a7dcd85cd97890fc70", "evidence": {"same_day": true, "patch_ids": ["92844ce33747d7e2426d82ea02840c62", "e53caa2334bbd1e5befcc0bdae91cb58"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-8cc6611e70448232", "migration": false}, {"id": "16.0-3844738a777c834c", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/16/sql-createstatistics.html\" title=\"CREATE STATISTICS\"><code>CREATE STATISTICS</code></a> \u5728\u672a\u6307\u5b9a\u540d\u79f0\u65f6\u81ea\u52a8\u751f\u6210\u7edf\u8ba1\u540d\u79f0\uff08Simon Riggs\uff09<a href=\"https://postgr.es/c/624aa2a13\">\u00a7</a></p>", "text": "\u5141\u8bb8 CREATE STATISTICS \u5728\u672a\u6307\u5b9a\u540d\u79f0\u65f6\u81ea\u52a8\u751f\u6210\u7edf\u8ba1\u540d\u79f0\uff08Simon Riggs\uff09\u00a7", "title": "\u5141\u8bb8 CREATE STATISTICS \u5728\u672a\u6307\u5b9a\u540d\u79f0\u65f6\u81ea\u52a8\u751f\u6210\u7edf\u8ba1\u540d\u79f0", "commits": ["624aa2a13"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-UTILITY", "source_hash": "4e27420dc8863b745b148996af99f89a99fe0c6152dc9d120cedf87f33da7ccb", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["624aa2a13"]], "identity_text": "Allow CREATE STATISTICS to generate a statistics name if none is specified (Simon Riggs)", "commit_aliases": ["624aa2a13"], "source_commits": ["624aa2a13"], "source_entry_id": "16.0/changes/090", "db_id": "f8f0ce9d49f0d5818d04768382f1524e", "patch_ids": ["1c380d8f89495e67440d3bb9a28c1e1a"], "statement_hash": "26fd60ed3dabf59fb1e12eb8a91833a45e5e0e6e2a6f14ff21ffa2f946e11501", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-3844738a777c834c", "migration": false}, {"id": "16.0-0ba8066ae7895704", "cves": [], "html": "<p>\u5141\u8bb8\u975e\u5341\u8fdb\u5236<a href=\"/docs/16/sql-syntax-lexical.html#SQL-SYNTAX-BIT-STRINGS\" title=\"4.1.2.5.\u00a0\u4f4d\u4e32\u5e38\u91cf\">\u6574\u6570\u5b57\u9762\u91cf</a>\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/6fcda9aba\">\u00a7</a></p>\n<p>\u4f8b\u5982\uff0c<code>0x42F</code>\u3001<code>0o273</code> \u548c <code>0b100101</code>\u3002</p>", "text": "\u5141\u8bb8\u975e\u5341\u8fdb\u5236\u6574\u6570\u5b57\u9762\u91cf\uff08Peter Eisentraut\uff09\u00a7 \u4f8b\u5982\uff0c0x42F\u30010o273 \u548c 0b100101\u3002", "title": "\u5141\u8bb8\u975e\u5341\u8fdb\u5236\u6574\u6570\u5b57\u9762\u91cf", "commits": ["6fcda9aba"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "1e8d0d6e21815f254a2963f1b2ad4691ba4900cc4eb7cc740c3dc3c249428ea1", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["6fcda9aba"]], "identity_text": "Allow non-decimal integer literals (Peter Eisentraut) For example, 0x42F, 0o273, and 0b100101.", "commit_aliases": ["6fcda9aba"], "source_commits": ["6fcda9aba"], "source_entry_id": "16.0/changes/091", "db_id": "80593abbc195599f9bff43cca073d7fa", "patch_ids": ["21be5cabd83c4ec7ff37efe369cca0d4"], "statement_hash": "d173030a69368131cda14ac16e5452c46055a914ecb75e343700fcc2e4571869", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-0ba8066ae7895704", "migration": false}, {"id": "16.0-1deb2b8592e625a4", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/16/datatype-numeric.html\" title=\"8.1.\u00a0\u6570\u5b57\u7c7b\u578b\"><code>NUMERIC</code></a> \u5904\u7406\u4efb\u610f\u5927\u5c0f\u7684\u5341\u516d\u8fdb\u5236\u3001\u516b\u8fdb\u5236\u548c\u4e8c\u8fdb\u5236\u6574\u6570\uff08Dean Rasheed\uff09<a href=\"https://postgr.es/c/6dfacbf72\">\u00a7</a></p>\n<p>\u4e4b\u524d\u8fd9\u4e9b\u975e\u5341\u8fdb\u5236\u57fa\u6570\u4ec5\u652f\u6301\u672a\u52a0\u5f15\u53f7\u7684\u516b\u5b57\u8282\u6574\u6570\u3002</p>", "text": "\u5141\u8bb8 NUMERIC \u5904\u7406\u4efb\u610f\u5927\u5c0f\u7684\u5341\u516d\u8fdb\u5236\u3001\u516b\u8fdb\u5236\u548c\u4e8c\u8fdb\u5236\u6574\u6570\uff08Dean Rasheed\uff09\u00a7 \u4e4b\u524d\u8fd9\u4e9b\u975e\u5341\u8fdb\u5236\u57fa\u6570\u4ec5\u652f\u6301\u672a\u52a0\u5f15\u53f7\u7684\u516b\u5b57\u8282\u6574\u6570\u3002", "title": "\u5141\u8bb8 NUMERIC \u5904\u7406\u4efb\u610f\u5927\u5c0f\u7684\u5341\u516d\u8fdb\u5236\u3001\u516b\u8fdb\u5236\u548c\u4e8c\u8fdb\u5236\u6574\u6570", "commits": ["6dfacbf72"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "f0916df08154e66510c0cedb912e3ab13c380bead5dfe82b9a0fd849365f7fb8", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["6dfacbf72"]], "identity_text": "Allow NUMERIC to process hexadecimal, octal, and binary integers of any size (Dean Rasheed) Previously only unquoted eight-byte integers were supported with these non-decimal bases.", "commit_aliases": ["6dfacbf72"], "source_commits": ["6dfacbf72"], "source_entry_id": "16.0/changes/092", "db_id": "7bb886e582680af9804b547b84f97599", "patch_ids": ["209c3a100a28e1974be2db481536f411"], "statement_hash": "93d6f0952a52f6f730637a82d5c981e4f7c8be1385eaa836e571159b5582b2d0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-1deb2b8592e625a4", "migration": false}, {"id": "16.0-2a8315818136651b", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u6574\u6570\u548c\u6570\u5b57<a href=\"/docs/16/sql-syntax-lexical.html#SQL-SYNTAX-BIT-STRINGS\" title=\"4.1.2.5.\u00a0\u4f4d\u4e32\u5e38\u91cf\">\u5e38\u91cf</a>\u4e2d\u4f7f\u7528\u4e0b\u5212\u7ebf\uff08Peter Eisentraut\uff0cDean Rasheed\uff09<a href=\"https://postgr.es/c/faff8f8e4\">\u00a7</a></p>\n<p>\u8fd9\u53ef\u4ee5\u63d0\u9ad8\u957f\u6570\u5b57\u4e32\u7684\u53ef\u8bfb\u6027\u3002</p>", "text": "\u5141\u8bb8\u5728\u6574\u6570\u548c\u6570\u5b57\u5e38\u91cf\u4e2d\u4f7f\u7528\u4e0b\u5212\u7ebf\uff08Peter Eisentraut\uff0cDean Rasheed\uff09\u00a7 \u8fd9\u53ef\u4ee5\u63d0\u9ad8\u957f\u6570\u5b57\u4e32\u7684\u53ef\u8bfb\u6027\u3002", "title": "\u5141\u8bb8\u5728\u6574\u6570\u548c\u6570\u5b57\u5e38\u91cf\u4e2d\u4f7f\u7528\u4e0b\u5212\u7ebf", "commits": ["faff8f8e4"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "398452e094762ba54012240eb995795e7f9a832bebc7062f3a5ca576e971ccb7", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["faff8f8e4"]], "identity_text": "Allow underscores in integer and numeric constants (Peter Eisentraut, Dean Rasheed) This can improve readability for long strings of digits.", "commit_aliases": ["faff8f8e4"], "source_commits": ["faff8f8e4"], "source_entry_id": "16.0/changes/093", "db_id": "f6c59a09d4f38841e49ea5f7b391be9e", "patch_ids": ["a13e0ad7973efa98d6a2de863d0d70af"], "statement_hash": "e81dc7c5fcd9e53d41eb054251984cd165ad6167b818edc2465fa40dec938be9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-2a8315818136651b", "migration": false}, {"id": "16.0-9aebc6c0a1ebece4", "cves": [], "html": "<p>\u63a5\u53d7\u65e5\u671f\u65f6\u95f4\u8f93\u5165\u4e2d <code>+infinity</code> \u7684\u62fc\u5199\uff08Vik Fearing\uff09<a href=\"https://postgr.es/c/2ceea5adb\">\u00a7</a></p>", "text": "\u63a5\u53d7\u65e5\u671f\u65f6\u95f4\u8f93\u5165\u4e2d +infinity \u7684\u62fc\u5199\uff08Vik Fearing\uff09\u00a7", "title": "\u63a5\u53d7\u65e5\u671f\u65f6\u95f4\u8f93\u5165\u4e2d +infinity \u7684\u62fc\u5199", "commits": ["2ceea5adb"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "69efe1836ca257eb2e3674bf6c167449b1b892d661974def00cc3e871bae6cac", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["2ceea5adb"]], "identity_text": "Accept the spelling +infinity in datetime input (Vik Fearing)", "commit_aliases": ["2ceea5adb"], "source_commits": ["2ceea5adb"], "source_entry_id": "16.0/changes/094", "db_id": "5e9e893e220f3528b26835ebe7190b77", "patch_ids": ["147d762e1d9a3a631a2c8af1c155febf"], "statement_hash": "9751567b09a48ae29555519796db176202791db77c6981249a7f3f1db7367d04", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-9aebc6c0a1ebece4", "migration": false}, {"id": "16.0-f7aacf3a96bfe12f", "cves": [], "html": "<p>\u7981\u6b62\u5728\u65e5\u671f\u65f6\u95f4\u5b57\u7b26\u4e32\u4e2d\u5c06 <code>epoch</code> \u6216 <code>infinity</code> \u4e0e\u5176\u4ed6\u5b57\u6bb5\u7ec4\u5408\u4f7f\u7528\uff08Joseph Koshakow\uff09<a href=\"https://postgr.es/c/bcc704b52\">\u00a7</a></p>", "text": "\u7981\u6b62\u5728\u65e5\u671f\u65f6\u95f4\u5b57\u7b26\u4e32\u4e2d\u5c06 epoch \u6216 infinity \u4e0e\u5176\u4ed6\u5b57\u6bb5\u7ec4\u5408\u4f7f\u7528\uff08Joseph Koshakow\uff09\u00a7", "title": "\u7981\u6b62\u5728\u65e5\u671f\u65f6\u95f4\u5b57\u7b26\u4e32\u4e2d\u5c06 epoch \u6216 infinity \u4e0e\u5176\u4ed6\u5b57\u6bb5\u7ec4\u5408\u4f7f\u7528", "commits": ["bcc704b52"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "92ec781ef767e457a8a17ff97bb716035d651047ba52b6b84d3e84e65127fc65", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["bcc704b52"]], "identity_text": "Prevent the specification of epoch and infinity together with other fields in datetime strings (Joseph Koshakow)", "commit_aliases": ["bcc704b52"], "source_commits": ["bcc704b52"], "source_entry_id": "16.0/changes/095", "db_id": "fb1f1c0d9d90b104655315ec8fab0fc6", "patch_ids": ["52e5a8889a2e3288f4361955d3aef717"], "statement_hash": "924d5768041a2a75bf83626e2f79fef49c5523615f649919bcdf966cd67cd86f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-f7aacf3a96bfe12f", "migration": false}, {"id": "16.0-3804e525eee486e5", "cves": [], "html": "<p>\u79fb\u9664\u5bf9 <code>Y<em><code>year</code></em>M<em><code>month</code></em>D<em><code>day</code></em></code> \u5f62\u5f0f\u65e5\u671f\u8f93\u5165\u7684\u672a\u6587\u6863\u5316\u652f\u6301\uff08Joseph Koshakow\uff09<a href=\"https://postgr.es/c/5b3c59535\">\u00a7</a></p>", "text": "\u79fb\u9664\u5bf9 YyearMmonthDday \u5f62\u5f0f\u65e5\u671f\u8f93\u5165\u7684\u672a\u6587\u6863\u5316\u652f\u6301\uff08Joseph Koshakow\uff09\u00a7", "title": "\u79fb\u9664\u5bf9 YyearMmonthDday \u5f62\u5f0f\u65e5\u671f\u8f93\u5165\u7684\u672a\u6587\u6863\u5316\u652f\u6301", "commits": ["5b3c59535"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "87dc3336651c991123ee0a7da605bc9aff9efb74bad4057d59681947973f171a", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["5b3c59535"]], "identity_text": "Remove undocumented support for date input in the form YyearMmonthDday (Joseph Koshakow)", "commit_aliases": ["5b3c59535"], "source_commits": ["5b3c59535"], "source_entry_id": "16.0/changes/096", "db_id": "0b99ad8f8291fb013eac9666b91d9d4f", "patch_ids": ["5a7bbdfa8898d69f50bc84032bfb5806"], "statement_hash": "9c67365aed67f840abe188e7907e69fa41f3db284baccbe9e9a35638daa42bb2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-3804e525eee486e5", "migration": false}, {"id": "16.0-66032fe66f489704", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/16/functions-info.html#FUNCTIONS-INFO-VALIDITY-TABLE\" title=\"\u8868\u00a09.79.\u00a0\u6570\u636e\u6709\u6548\u6027\u68c0\u67e5\u51fd\u6570\"><code>pg_input_is_valid()</code></a> \u548c <code>pg_input_error_info()</code> \u4ee5\u68c0\u67e5\u7c7b\u578b\u8f6c\u6362\u9519\u8bef\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/1939d2628\">\u00a7</a> <a href=\"https://postgr.es/c/b8da37b3a\">\u00a7</a></p>", "text": "\u589e\u52a0\u51fd\u6570 pg_input_is_valid() \u548c pg_input_error_info() \u4ee5\u68c0\u67e5\u7c7b\u578b\u8f6c\u6362\u9519\u8bef\uff08Tom Lane\uff09\u00a7 \u00a7", "title": "\u589e\u52a0\u51fd\u6570 pg_input_is_valid() \u548c pg_input_error_info() \u4ee5\u68c0\u67e5\u7c7b\u578b\u8f6c\u6362\u9519\u8bef", "commits": ["1939d2628", "b8da37b3a"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-DATATYPES", "source_hash": "4ccac7d4201b0631ffa84a4cd20ddf0eb3feb942f62470be956a168c083875af", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["1939d2628"], ["b8da37b3a"]], "identity_text": "Add functions pg_input_is_valid() and pg_input_error_info() to check for type conversion errors (Tom Lane)", "commit_aliases": ["1939d2628", "b8da37b3a"], "source_commits": ["1939d2628", "b8da37b3a"], "source_entry_id": "16.0/changes/097", "db_id": "00a778d0511db37680e672751447a72f", "patch_ids": ["59c35b2ff5e23c49d7cdbe56833b2729", "7b3bce2b4ee6948d93cbff20b2ba977b"], "statement_hash": "9d8df082c27e221b2c4777a5514e0eef001e702dc918085b859e0b04dd0c7658", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-66032fe66f489704", "migration": false}, {"id": "16.0-61c906303fbbee0d", "cves": [], "html": "<p>\u5141\u8bb8 <code>FROM</code> \u5b50\u53e5\u4e2d\u7684\u5b50\u67e5\u8be2\u7701\u7565\u522b\u540d\uff08Dean Rasheed\uff09<a href=\"https://postgr.es/c/bcedd8f5f\">\u00a7</a></p>", "text": "\u5141\u8bb8 FROM \u5b50\u53e5\u4e2d\u7684\u5b50\u67e5\u8be2\u7701\u7565\u522b\u540d\uff08Dean Rasheed\uff09\u00a7", "title": "\u5141\u8bb8 FROM \u5b50\u53e5\u4e2d\u7684\u5b50\u67e5\u8be2\u7701\u7565\u522b\u540d", "commits": ["bcedd8f5f"], "section": "\u4e00\u822c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-GENERAL", "source_hash": "47811cb990427509a237fe98dc291e2c73f57f170e10e6a87113f0525c5a9972", "section_path": ["\u4e00\u822c\u67e5\u8be2"], "commit_groups": [["bcedd8f5f"]], "identity_text": "Allow subqueries in the FROM clause to omit aliases (Dean Rasheed)", "commit_aliases": ["bcedd8f5f"], "source_commits": ["bcedd8f5f"], "source_entry_id": "16.0/changes/098", "db_id": "578b053cee16ee19a136dcc48f53b0cb", "patch_ids": ["b217c727dc70a9df5cc7c852a373f7b0"], "statement_hash": "a08ca8076ef9411b6bdf0ddce23e1286432bed1bc74eaf16046e199d6eb5aea0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-61c906303fbbee0d", "migration": false}, {"id": "16.0-34618b6e530bc9cf", "cves": [], "html": "<p>\u589e\u52a0\u5bf9 <acronym>SQL/JSON</acronym> \u8def\u5f84\u4e2d\u589e\u5f3a\u6570\u5b57\u5b57\u9762\u91cf\u7684\u652f\u6301\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/102a5c164\">\u00a7</a></p>\n<p>\u4f8b\u5982\uff0c\u5141\u8bb8\u5341\u516d\u8fdb\u5236\u3001\u516b\u8fdb\u5236\u548c\u4e8c\u8fdb\u5236\u6574\u6570\u4ee5\u53ca\u6570\u5b57\u95f4\u7684\u4e0b\u5212\u7ebf\u3002</p>", "text": "\u589e\u52a0\u5bf9 SQL/JSON \u8def\u5f84\u4e2d\u589e\u5f3a\u6570\u5b57\u5b57\u9762\u91cf\u7684\u652f\u6301\uff08Peter Eisentraut\uff09\u00a7 \u4f8b\u5982\uff0c\u5141\u8bb8\u5341\u516d\u8fdb\u5236\u3001\u516b\u8fdb\u5236\u548c\u4e8c\u8fdb\u5236\u6574\u6570\u4ee5\u53ca\u6570\u5b57\u95f4\u7684\u4e0b\u5212\u7ebf\u3002", "title": "\u589e\u52a0\u5bf9 SQL/JSON \u8def\u5f84\u4e2d\u589e\u5f3a\u6570\u5b57\u5b57\u9762\u91cf\u7684\u652f\u6301", "commits": ["102a5c164"], "section": "\u4e00\u822c\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-GENERAL", "source_hash": "69f4dd7fbb8a795af40315cebcd58b312f0387ce7cc96f8e438cac077e359c5f", "section_path": ["\u4e00\u822c\u67e5\u8be2"], "commit_groups": [["102a5c164"]], "identity_text": "Add support for enhanced numeric literals in SQL/JSON paths (Peter Eisentraut) For example, allow hexadecimal, octal, and binary integers and underscores between digits.", "commit_aliases": ["102a5c164"], "source_commits": ["102a5c164"], "source_entry_id": "16.0/changes/099", "db_id": "6c06b2084490dc400316bec3d5b69607", "patch_ids": ["8776124c5c726ab99ed1d992ed6840d4"], "statement_hash": "aedfa96f43a7357f43b768e64c2cfba113c7b3890d2b14e9a02c3668450110d7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-34618b6e530bc9cf", "migration": false}, {"id": "16.0-d1d1934fe0174f27", "cves": [], "html": "<p>\u589e\u52a0 <acronym>SQL/JSON</acronym> \u6784\u9020\u51fd\u6570\uff08Nikita Glukhov\uff0cTeodor Sigaev\uff0cOleg Bartunov\uff0cAlexander Korotkov\uff0cAmit Langote\uff09<a href=\"https://postgr.es/c/7081ac46a\">\u00a7</a></p>\n<p>\u65b0\u51fd\u6570 <a href=\"/docs/16/functions-json.html#FUNCTIONS-JSON-CREATION-TABLE\" title=\"\u8868\u00a09.47.\u00a0JSON \u521b\u5efa\u51fd\u6570\"><code>JSON_ARRAY()</code></a>\u3001<a href=\"/docs/16/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE\" title=\"\u8868\u00a09.59.\u00a0\u901a\u7528\u805a\u5408\u51fd\u6570\"><code>JSON_ARRAYAGG()</code></a>\u3001<code>JSON_OBJECT()</code> \u548c <code>JSON_OBJECTAGG()</code> \u662f <acronym>SQL</acronym> \u6807\u51c6\u7684\u4e00\u90e8\u5206\u3002</p>", "text": "\u589e\u52a0 SQL/JSON \u6784\u9020\u51fd\u6570\uff08Nikita Glukhov\uff0cTeodor Sigaev\uff0cOleg Bartunov\uff0cAlexander Korotkov\uff0cAmit Langote\uff09\u00a7 \u65b0\u51fd\u6570 JSON_ARRAY()\u3001JSON_ARRAYAGG()\u3001JSON_OBJECT() \u548c JSON_OBJECTAGG() \u662f SQL \u6807\u51c6\u7684\u4e00\u90e8\u5206\u3002", "title": "\u589e\u52a0 SQL/JSON \u6784\u9020\u51fd\u6570", "commits": ["7081ac46a"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "46700b0d8276d54c091e9a005b076d9751a6ed1eedf89d837f15f08fc08e208f", "section_path": ["\u51fd\u6570"], "commit_groups": [["7081ac46a"]], "identity_text": "Add SQL/JSON constructors (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote) The new functions JSON_ARRAY(), JSON_ARRAYAGG(), JSON_OBJECT(), and JSON_OBJECTAGG() are part of the SQL standard.", "commit_aliases": ["7081ac46a"], "source_commits": ["7081ac46a"], "source_entry_id": "16.0/changes/100", "db_id": "20326d9698cb5aed3cc175835394db13", "patch_ids": ["1d2941bc8d2c466a0937418083196848"], "statement_hash": "6a5f82417a33d0758f07e867deec6403274a2a7a55872bc463243e73fba9d0e6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-d1d1934fe0174f27", "migration": false}, {"id": "16.0-582fc88cec852a03", "cves": [], "html": "<p>\u589e\u52a0 <acronym>SQL/JSON</acronym> \u5bf9\u8c61\u68c0\u67e5\uff08Nikita Glukhov\uff0cTeodor Sigaev\uff0cOleg Bartunov\uff0cAlexander Korotkov\uff0cAmit Langote\uff0cAndrew Dunstan\uff09<a href=\"https://postgr.es/c/6ee30209a\">\u00a7</a></p>\n<p><a href=\"/docs/16/functions-json.html#FUNCTIONS-SQLJSON-MISC\" title=\"\u8868\u00a09.48.\u00a0SQL/JSON \u6d4b\u8bd5\u51fd\u6570\"><code>IS JSON</code></a> \u68c0\u67e5\u5305\u62ec\u5bf9\u503c\u3001\u6570\u7ec4\u3001\u5bf9\u8c61\u3001\u6807\u91cf\u548c\u552f\u4e00\u952e\u7684\u68c0\u67e5\u3002</p>", "text": "\u589e\u52a0 SQL/JSON \u5bf9\u8c61\u68c0\u67e5\uff08Nikita Glukhov\uff0cTeodor Sigaev\uff0cOleg Bartunov\uff0cAlexander Korotkov\uff0cAmit Langote\uff0cAndrew Dunstan\uff09\u00a7 IS JSON \u68c0\u67e5\u5305\u62ec\u5bf9\u503c\u3001\u6570\u7ec4\u3001\u5bf9\u8c61\u3001\u6807\u91cf\u548c\u552f\u4e00\u952e\u7684\u68c0\u67e5\u3002", "title": "\u589e\u52a0 SQL/JSON \u5bf9\u8c61\u68c0\u67e5", "commits": ["6ee30209a"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "1cc948bc507c1d0ee791bded713381aefa8b0eb6f84bb3f1ab6ed416fc9cd03d", "section_path": ["\u51fd\u6570"], "commit_groups": [["6ee30209a"]], "identity_text": "Add SQL/JSON object checks (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Amit Langote, Andrew Dunstan) The IS JSON checks include checks for values, arrays, objects, scalars, and unique keys.", "commit_aliases": ["6ee30209a"], "source_commits": ["6ee30209a"], "source_entry_id": "16.0/changes/101", "db_id": "699bdd7fe40d0eec31e7491993e21517", "patch_ids": ["551f25024479eecbdc10e717f22857e8"], "statement_hash": "57b6bbd32f6fcbb0c5be2d2127a02d7521729e432e99a93704989e7e006ca6f4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-582fc88cec852a03", "migration": false}, {"id": "16.0-a2fe5a384faaa02e", "cves": [], "html": "<p>\u5141\u8bb8 <acronym>JSON</acronym> \u5b57\u7b26\u4e32\u89e3\u6790\u4f7f\u7528\u5411\u91cf\u8fd0\u7b97\uff08John Naylor\uff09<a href=\"https://postgr.es/c/0a8de93a4\">\u00a7</a></p>", "text": "\u5141\u8bb8 JSON \u5b57\u7b26\u4e32\u89e3\u6790\u4f7f\u7528\u5411\u91cf\u8fd0\u7b97\uff08John Naylor\uff09\u00a7", "title": "\u5141\u8bb8 JSON \u5b57\u7b26\u4e32\u89e3\u6790\u4f7f\u7528\u5411\u91cf\u8fd0\u7b97", "commits": ["0a8de93a4"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "54e4075955ad7bce6624a741e105ebe930ff5686ecfdea0dbca61119660929d1", "section_path": ["\u51fd\u6570"], "commit_groups": [["0a8de93a4"]], "identity_text": "Allow JSON string parsing to use vector operations (John Naylor)", "commit_aliases": ["0a8de93a4"], "source_commits": ["0a8de93a4"], "source_entry_id": "16.0/changes/102", "db_id": "33ef85cec1ecfe967586468e013771fb", "patch_ids": ["ef92e77cd0ae486d81920b30b4c2620e"], "statement_hash": "9be7a99c90ae976c512c9b0fe9925e5d9eb9b81f39a7e80a9410493265daad3d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-a2fe5a384faaa02e", "migration": false}, {"id": "16.0-a8896af545373a55", "cves": [], "html": "<p>\u6539\u8fdb\u5168\u6587\u9ad8\u4eae\u51fd\u6570 <a href=\"/docs/16/functions-textsearch.html#TEXTSEARCH-FUNCTIONS-TABLE\" title=\"\u8868\u00a09.43.\u00a0\u6587\u672c\u68c0\u7d22\u51fd\u6570\"><code>ts_headline()</code></a> \u5bf9 <code>OR</code> \u548c <code>NOT</code> \u8868\u8fbe\u5f0f\u7684\u5904\u7406\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/5a617d75d\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5168\u6587\u9ad8\u4eae\u51fd\u6570 ts_headline() \u5bf9 OR \u548c NOT \u8868\u8fbe\u5f0f\u7684\u5904\u7406\uff08Tom Lane\uff09\u00a7", "title": "\u6539\u8fdb\u5168\u6587\u9ad8\u4eae\u51fd\u6570 ts_headline() \u5bf9 OR \u548c NOT \u8868\u8fbe\u5f0f\u7684\u5904\u7406", "commits": ["5a617d75d"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "0e5dc0511502f67259971efce05aed30681f4e3f05d99568027b313c5823a944", "section_path": ["\u51fd\u6570"], "commit_groups": [["5a617d75d"]], "identity_text": "Improve the handling of full text highlighting function ts_headline() for OR and NOT expressions (Tom Lane)", "commit_aliases": ["5a617d75d"], "source_commits": ["5a617d75d"], "source_entry_id": "16.0/changes/103", "db_id": "4bc81c7596c44026a8c7b7bab64ea7d6", "patch_ids": ["e4eac6aba48c1df9887bb1b1112ad163"], "statement_hash": "56942dd3e2df7805a59b09e51ac3b7d5dd9d8c97551a4f3fe36f576c5562a00e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-a8896af545373a55", "migration": false}, {"id": "16.0-525afe4c61719d64", "cves": [], "html": "<p>\u589e\u52a0\u5728\u6307\u5b9a\u65f6\u533a\u4e2d\u6dfb\u52a0\u3001\u51cf\u53bb\u548c\u751f\u6210 <code>timestamptz</code> \u503c\u7684\u51fd\u6570\uff08Przemyslaw Sztoch\uff0cGurjeet Singh\uff09<a href=\"https://postgr.es/c/75bd846b6\">\u00a7</a></p>\n<p>\u51fd\u6570\u4e3a <a href=\"/docs/16/functions-datetime.html#FUNCTIONS-DATETIME-TABLE\" title=\"\u8868\u00a09.33.\u00a0\u65e5\u671f/\u65f6\u95f4\u51fd\u6570\"><code>date_add()</code></a>\u3001<code>date_subtract()</code> \u548c <a href=\"/docs/16/functions-srf.html#FUNCTIONS-SRF-SERIES\" title=\"\u8868\u00a09.65.\u00a0\u5e8f\u5217\u751f\u6210\u51fd\u6570\"><code>generate_series()</code></a>\u3002</p>", "text": "\u589e\u52a0\u5728\u6307\u5b9a\u65f6\u533a\u4e2d\u6dfb\u52a0\u3001\u51cf\u53bb\u548c\u751f\u6210 timestamptz \u503c\u7684\u51fd\u6570\uff08Przemyslaw Sztoch\uff0cGurjeet Singh\uff09\u00a7 \u51fd\u6570\u4e3a date_add()\u3001date_subtract() \u548c generate_series()\u3002", "title": "\u589e\u52a0\u5728\u6307\u5b9a\u65f6\u533a\u4e2d\u6dfb\u52a0\u3001\u51cf\u53bb\u548c\u751f\u6210 timestamptz \u503c\u7684\u51fd\u6570", "commits": ["75bd846b6"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "bb01a1d76caa93f4b916f8ced73472dc0734ba851508620fcea91b4bfa4cc194", "section_path": ["\u51fd\u6570"], "commit_groups": [["75bd846b6"]], "identity_text": "Add functions to add, subtract, and generate timestamptz values in a specified time zone (Przemyslaw Sztoch, Gurjeet Singh) The functions are date_add(), date_subtract(), and generate_series().", "commit_aliases": ["75bd846b6"], "source_commits": ["75bd846b6"], "source_entry_id": "16.0/changes/104", "db_id": "c28bac373db57c7dd66aac77c3405020", "patch_ids": ["a30002cf2dadec1192bc9568cfd54da2"], "statement_hash": "45e8581d2540739f85bcb8815dfd7cd57f761d01eb9ca1a99c631981b80d16cd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-525afe4c61719d64", "migration": false}, {"id": "16.0-823dc51da64e4c6a", "cves": [], "html": "<p>\u5c06 <a href=\"/docs/16/functions-datetime.html#FUNCTIONS-DATETIME-TABLE\" title=\"\u8868\u00a09.33.\u00a0\u65e5\u671f/\u65f6\u95f4\u51fd\u6570\"><code>date_trunc(unit, timestamptz, time_zone)</code></a> \u66f4\u6539\u4e3a\u4e0d\u53ef\u53d8\u51fd\u6570\uff08Przemyslaw Sztoch\uff09<a href=\"https://postgr.es/c/533e02e92\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u4f7f\u7528\u6b64\u51fd\u6570\u521b\u5efa\u8868\u8fbe\u5f0f\u7d22\u5f15\u3002</p>", "text": "\u5c06 date_trunc(unit, timestamptz, time_zone) \u66f4\u6539\u4e3a\u4e0d\u53ef\u53d8\u51fd\u6570\uff08Przemyslaw Sztoch\uff09\u00a7 \u8fd9\u5141\u8bb8\u4f7f\u7528\u6b64\u51fd\u6570\u521b\u5efa\u8868\u8fbe\u5f0f\u7d22\u5f15\u3002", "title": "\u5c06 date_trunc(unit, timestamptz, time_zone) \u66f4\u6539\u4e3a\u4e0d\u53ef\u53d8\u51fd\u6570", "commits": ["533e02e92"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "5a48a89713a7623b999259e7e26597c649be2577cff3eb60b08f991264215a33", "section_path": ["\u51fd\u6570"], "commit_groups": [["533e02e92"]], "identity_text": "Change date_trunc(unit, timestamptz, time_zone) to be an immutable function (Przemyslaw Sztoch) This allows the creation of expression indexes using this function.", "commit_aliases": ["533e02e92"], "source_commits": ["533e02e92"], "source_entry_id": "16.0/changes/105", "db_id": "349b5bf1069668c2d9170487230d4e10", "patch_ids": ["66ebabb5d904527fa721903163f0f4f2"], "statement_hash": "fd7516d24b402751a2e6575d1a58270e83b97ff2b275cb03c4c9b718032e77ae", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-823dc51da64e4c6a", "migration": false}, {"id": "16.0-94d8307be94add34", "cves": [], "html": "<p>\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/16/functions-info.html#FUNCTIONS-INFO-SESSION-TABLE\" title=\"\u8868\u00a09.67.\u00a0\u4f1a\u8bdd\u4fe1\u606f\u51fd\u6570\"><code>SYSTEM_USER</code></a>\uff08Bertrand Drouvot\uff09<a href=\"https://postgr.es/c/0823d061b\">\u00a7</a></p>\n<p>\u8fd9\u62a5\u544a\u8ba4\u8bc1\u65b9\u6cd5\u53ca\u5176\u8ba4\u8bc1\u7684\u7528\u6237\u3002</p>", "text": "\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf SYSTEM_USER\uff08Bertrand Drouvot\uff09\u00a7 \u8fd9\u62a5\u544a\u8ba4\u8bc1\u65b9\u6cd5\u53ca\u5176\u8ba4\u8bc1\u7684\u7528\u6237\u3002", "title": "\u589e\u52a0\u670d\u52a1\u5668\u53d8\u91cf SYSTEM_USER", "commits": ["0823d061b"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "3e532584493bd7cab5e49b4605c870cbc3e9ef9cca291cd4a3151f8d57ff9004", "section_path": ["\u51fd\u6570"], "commit_groups": [["0823d061b"]], "identity_text": "Add server variable SYSTEM_USER (Bertrand Drouvot) This reports the authentication method and its authenticated user.", "commit_aliases": ["0823d061b"], "source_commits": ["0823d061b"], "source_entry_id": "16.0/changes/106", "db_id": "135afabed066e907bf216dcbac0f7315", "patch_ids": ["84fe34ce3649263d604ff873140eb39f"], "statement_hash": "4e6fa6b3a3e98af1d197b0a6ad58f9ab083a84fb82afdb8a8c5e071b7a106b4b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-94d8307be94add34", "migration": false}, {"id": "16.0-96e669de2b8b6d6d", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/16/functions-array.html#ARRAY-FUNCTIONS-TABLE\" title=\"\u8868\u00a09.54.\u00a0\u6570\u7ec4\u51fd\u6570\"><code>array_sample()</code></a> \u548c <code>array_shuffle()</code>\uff08Martin Kalcher\uff09<a href=\"https://postgr.es/c/888f2ea0a\">\u00a7</a></p>", "text": "\u589e\u52a0\u51fd\u6570 array_sample() \u548c array_shuffle()\uff08Martin Kalcher\uff09\u00a7", "title": "\u589e\u52a0\u51fd\u6570 array_sample() \u548c array_shuffle()", "commits": ["888f2ea0a"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "ec84184c593ea473ee8dc58199d653d88d1d3a20ce585a00bfbf96fffcb2d245", "section_path": ["\u51fd\u6570"], "commit_groups": [["888f2ea0a"]], "identity_text": "Add functions array_sample() and array_shuffle() (Martin Kalcher)", "commit_aliases": ["888f2ea0a"], "source_commits": ["888f2ea0a"], "source_entry_id": "16.0/changes/107", "db_id": "c21328dce1fd0ed2ad46aa8fc9a43828", "patch_ids": ["a9ad857cf74bffc0494a175abe88b6ac"], "statement_hash": "c65e22b9fd65f892bf4673d877188b8c7ef96cbff9e33ff56820897ff8617cf1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-96e669de2b8b6d6d", "migration": false}, {"id": "16.0-962ec36400974b93", "cves": [], "html": "<p>\u589e\u52a0\u805a\u5408\u51fd\u6570 <a href=\"/docs/16/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE\" title=\"\u8868\u00a09.59.\u00a0\u901a\u7528\u805a\u5408\u51fd\u6570\"><code>ANY_VALUE()</code></a>\uff0c\u8fd4\u56de\u96c6\u5408\u4e2d\u7684\u4efb\u610f\u503c\uff08Vik Fearing\uff09<a href=\"https://postgr.es/c/2ddab010c\">\u00a7</a></p>", "text": "\u589e\u52a0\u805a\u5408\u51fd\u6570 ANY_VALUE()\uff0c\u8fd4\u56de\u96c6\u5408\u4e2d\u7684\u4efb\u610f\u503c\uff08Vik Fearing\uff09\u00a7", "title": "\u589e\u52a0\u805a\u5408\u51fd\u6570 ANY_VALUE()\uff0c\u8fd4\u56de\u96c6\u5408\u4e2d\u7684\u4efb\u610f\u503c", "commits": ["2ddab010c"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "940c88b09d6cf3c35e8ac178821123abaffd7173e5c2d2ab635f62a917b2ca3b", "section_path": ["\u51fd\u6570"], "commit_groups": [["2ddab010c"]], "identity_text": "Add aggregate function ANY_VALUE() which returns any value from a set (Vik Fearing)", "commit_aliases": ["2ddab010c"], "source_commits": ["2ddab010c"], "source_entry_id": "16.0/changes/108", "db_id": "7e2bec75b74667b8499da853f7c721ae", "patch_ids": ["209509f848d41dd44d99bdbd93a10dc4"], "statement_hash": "80922a8a7ae585a56c0f2973f49d05cee392e0f37f8851e6329fc2db5ac564eb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-962ec36400974b93", "migration": false}, {"id": "16.0-10a9ed80bb7251af", "cves": [], "html": "<p>\u589e\u52a0\u51fd\u6570 <a href=\"/docs/16/functions-math.html#FUNCTIONS-MATH-RANDOM-TABLE\" title=\"\u8868\u00a09.6.\u00a0\u968f\u673a\u51fd\u6570\"><code>random_normal()</code></a> \u4ee5\u63d0\u4f9b\u6b63\u6001\u5206\u5e03\u7684\u968f\u673a\u6570\uff08Paul Ramsey\uff09<a href=\"https://postgr.es/c/38d81760c\">\u00a7</a></p>", "text": "\u589e\u52a0\u51fd\u6570 random_normal() \u4ee5\u63d0\u4f9b\u6b63\u6001\u5206\u5e03\u7684\u968f\u673a\u6570\uff08Paul Ramsey\uff09\u00a7", "title": "\u589e\u52a0\u51fd\u6570 random_normal() \u4ee5\u63d0\u4f9b\u6b63\u6001\u5206\u5e03\u7684\u968f\u673a\u6570", "commits": ["38d81760c"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "872fd075434e4ebc9c35fac3391a8b42a840c60c9e390404cacb2e32c99e9c42", "section_path": ["\u51fd\u6570"], "commit_groups": [["38d81760c"]], "identity_text": "Add function random_normal() to supply normally-distributed random numbers (Paul Ramsey)", "commit_aliases": ["38d81760c"], "source_commits": ["38d81760c"], "source_entry_id": "16.0/changes/109", "db_id": "318c6c5b7bbb1a35c2c776a2c263dde1", "patch_ids": ["007cf74b74d6e2b9d70d7e150ef80d3c"], "statement_hash": "a5a6746b47296f56a7627b4ff8819eeb2961b18f21a0b67d838857f72ea0b020", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-10a9ed80bb7251af", "migration": false}, {"id": "16.0-aea6faac563e98eb", "cves": [], "html": "<p>\u589e\u52a0\u8bef\u5dee\u51fd\u6570 <a href=\"/docs/16/functions-math.html#FUNCTIONS-MATH-FUNC-TABLE\" title=\"\u8868\u00a09.5.\u00a0\u6570\u5b66\u51fd\u6570\"><code>erf()</code></a> \u53ca\u5176\u8865\u51fd\u6570 <code>erfc()</code>\uff08Dean Rasheed\uff09<a href=\"https://postgr.es/c/d5d574146\">\u00a7</a></p>", "text": "\u589e\u52a0\u8bef\u5dee\u51fd\u6570 erf() \u53ca\u5176\u8865\u51fd\u6570 erfc()\uff08Dean Rasheed\uff09\u00a7", "title": "\u589e\u52a0\u8bef\u5dee\u51fd\u6570 erf() \u53ca\u5176\u8865\u51fd\u6570 erfc()", "commits": ["d5d574146"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "9644ee23aae556b8d9b8a51ee2390b2e056b5282557c0c1ffd8f5218bb5ea6ea", "section_path": ["\u51fd\u6570"], "commit_groups": [["d5d574146"]], "identity_text": "Add error function erf() and its complement erfc() (Dean Rasheed)", "commit_aliases": ["d5d574146"], "source_commits": ["d5d574146"], "source_entry_id": "16.0/changes/110", "db_id": "cb08a0308823c1c0f144a64665e6ed90", "patch_ids": ["6685f91c313d72ef784a03c82f7c65ea"], "statement_hash": "f3c298f4055a27dd3faa6cb0c9afd4c922acfb860d9608115be90f59f00a65d9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-aea6faac563e98eb", "migration": false}, {"id": "16.0-ffa0531e8ae60276", "cves": [], "html": "<p>\u6539\u8fdb\u6574\u6570\u6307\u6570\u7684\u6570\u5b57 <a href=\"/docs/16/functions-math.html#FUNCTIONS-MATH-FUNC-TABLE\" title=\"\u8868\u00a09.5.\u00a0\u6570\u5b66\u51fd\u6570\"><code>power()</code></a> \u7684\u7cbe\u5ea6\uff08Dean Rasheed\uff09<a href=\"https://postgr.es/c/40c7fcbbe\">\u00a7</a></p>", "text": "\u6539\u8fdb\u6574\u6570\u6307\u6570\u7684\u6570\u5b57 power() \u7684\u7cbe\u5ea6\uff08Dean Rasheed\uff09\u00a7", "title": "\u6539\u8fdb\u6574\u6570\u6307\u6570\u7684\u6570\u5b57 power() \u7684\u7cbe\u5ea6", "commits": ["40c7fcbbe"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "672d12c4b6397223902aa3a9894355b12f97c143770a0825d1a6082aec92d3db", "section_path": ["\u51fd\u6570"], "commit_groups": [["40c7fcbbe"]], "identity_text": "Improve the accuracy of numeric power() for integer exponents (Dean Rasheed)", "commit_aliases": ["40c7fcbbe"], "source_commits": ["40c7fcbbe"], "source_entry_id": "16.0/changes/111", "db_id": "54eee9ce53ba692493246709c78d808d", "patch_ids": ["66100beb58ced124cedb22466fdf1af6"], "statement_hash": "077e569e5af1989e6f0c9446fb8df356b47c96357b4cb7ec721d52fa35d09efe", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-ffa0531e8ae60276", "migration": false}, {"id": "16.0-e659b7e72dbb7310", "cves": [], "html": "<p>\u589e\u52a0 <a href=\"/docs/16/datatype-xml.html#DATATYPE-XML-CREATING\" title=\"8.13.1.\u00a0\u521b\u5efaXML\u503c\"><code>XMLSERIALIZE()</code></a> \u9009\u9879 <code>INDENT</code> \u4ee5\u7f8e\u5316\u8f93\u51fa\uff08Jim Jones\uff09<a href=\"https://postgr.es/c/483bdb2af\">\u00a7</a></p>", "text": "\u589e\u52a0 XMLSERIALIZE() \u9009\u9879 INDENT \u4ee5\u7f8e\u5316\u8f93\u51fa\uff08Jim Jones\uff09\u00a7", "title": "\u589e\u52a0 XMLSERIALIZE() \u9009\u9879 INDENT \u4ee5\u7f8e\u5316\u8f93\u51fa", "commits": ["483bdb2af"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "0057253bcd11806ce7b1e916ded61e54e074bf1d1375b11a853c37dcdff4d14d", "section_path": ["\u51fd\u6570"], "commit_groups": [["483bdb2af"]], "identity_text": "Add XMLSERIALIZE() option INDENT to pretty-print its output (Jim Jones)", "commit_aliases": ["483bdb2af"], "source_commits": ["483bdb2af"], "source_entry_id": "16.0/changes/112", "db_id": "4f7b10789a6595dbe8b4b01d0d97aaa0", "patch_ids": ["6381b3e1b87c9af9119593b8a8de2fd3"], "statement_hash": "b489e47026b4c9baafc863a71f1f5825c804455c34719d4153b1aaa8d8564ffd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-e659b7e72dbb7310", "migration": false}, {"id": "16.0-8fe69fe7d28ea430", "cves": [], "html": "<p>\u66f4\u6539 <a href=\"/docs/16/functions-admin.html#FUNCTIONS-ADMIN-COLLATION\" title=\"\u8868\u00a09.98.\u00a0\u6392\u5e8f\u89c4\u5219\u7ba1\u7406\u51fd\u6570\"><code>pg_collation_actual_version()</code></a> \u4ee5\u4e3a\u9ed8\u8ba4\u6392\u5e8f\u89c4\u5219\u8fd4\u56de\u5408\u7406\u7684\u503c\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/10932ed5e\">\u00a7</a></p>\n<p>\u4e4b\u524d\u5b83\u8fd4\u56de <code>NULL</code>\u3002</p>", "text": "\u66f4\u6539 pg_collation_actual_version() \u4ee5\u4e3a\u9ed8\u8ba4\u6392\u5e8f\u89c4\u5219\u8fd4\u56de\u5408\u7406\u7684\u503c\uff08Jeff Davis\uff09\u00a7 \u4e4b\u524d\u5b83\u8fd4\u56de NULL\u3002", "title": "\u66f4\u6539 pg_collation_actual_version() \u4ee5\u4e3a\u9ed8\u8ba4\u6392\u5e8f\u89c4\u5219\u8fd4\u56de\u5408\u7406\u7684\u503c", "commits": ["10932ed5e"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "89df15ee5b45cc9ec04b3de618dd32a507aefa16686269ee3a0553be2e7b1531", "section_path": ["\u51fd\u6570"], "commit_groups": [["10932ed5e"]], "identity_text": "Change pg_collation_actual_version() to return a reasonable value for the default collation (Jeff Davis) Previously it returned NULL.", "commit_aliases": ["10932ed5e"], "source_commits": ["10932ed5e"], "source_entry_id": "16.0/changes/113", "db_id": "41a2a495f50281685d99ad323c360322", "patch_ids": ["b95d181667f8424754ea67d84d12fcd1"], "statement_hash": "849c8ed880dc614befb9fa3726f062801102df3bd34f1bd4a20d2c97366f874b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-8fe69fe7d28ea430", "migration": false}, {"id": "16.0-ea7d9dd68b412cb6", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/16/functions-admin.html#FUNCTIONS-ADMIN-GENFILE-TABLE\" title=\"\u8868\u00a09.101.\u00a0\u901a\u7528\u6587\u4ef6\u8bbf\u95ee\u51fd\u6570\"><code>pg_read_file()</code></a> \u548c <code>pg_read_binary_file()</code> \u5ffd\u7565\u7f3a\u5931\u7684\u6587\u4ef6\uff08Kyotaro Horiguchi\uff09<a href=\"https://postgr.es/c/283129e32\">\u00a7</a></p>", "text": "\u5141\u8bb8 pg_read_file() \u548c pg_read_binary_file() \u5ffd\u7565\u7f3a\u5931\u7684\u6587\u4ef6\uff08Kyotaro Horiguchi\uff09\u00a7", "title": "\u5141\u8bb8 pg_read_file() \u548c pg_read_binary_file() \u5ffd\u7565\u7f3a\u5931\u7684\u6587\u4ef6", "commits": ["283129e32"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "517e9cc15281471b29e29b20b66043c2cdc224b234218fc013b67b4d268d264d", "section_path": ["\u51fd\u6570"], "commit_groups": [["283129e32"]], "identity_text": "Allow pg_read_file() and pg_read_binary_file() to ignore missing files (Kyotaro Horiguchi)", "commit_aliases": ["283129e32"], "source_commits": ["283129e32"], "source_entry_id": "16.0/changes/114", "db_id": "3db0e1ae9d51dd005b37d2ada8b21ef6", "patch_ids": ["b134587681d1ba8d2853979e51de9186"], "statement_hash": "bf188c3de699ac0714539f81ce619f019db54f4a661ee67d014aed441192fe0c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-ea7d9dd68b412cb6", "migration": false}, {"id": "16.0-ab98fc7e0a3147df", "cves": [], "html": "<p>\u5411 <a href=\"/docs/16/functions-admin.html#FUNCTIONS-ADMIN-DBSIZE\" title=\"\u8868\u00a09.96.\u00a0\u6570\u636e\u5e93\u5bf9\u8c61\u5c3a\u5bf8\u51fd\u6570\"><code>pg_size_bytes()</code></a> \u6dfb\u52a0\u5b57\u8282\u89c4\u683c\uff08<code>B</code>\uff09\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/ce1215d9b\">\u00a7</a></p>", "text": "\u5411 pg_size_bytes() \u6dfb\u52a0\u5b57\u8282\u89c4\u683c\uff08B\uff09\uff08Peter Eisentraut\uff09\u00a7", "title": "\u5411 pg_size_bytes() \u6dfb\u52a0\u5b57\u8282\u89c4\u683c\uff08B\uff09", "commits": ["ce1215d9b"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "10dcbcfcddd49a227c039e1241f2f0d2f9b5eb7349a315867ba0024d259cef10", "section_path": ["\u51fd\u6570"], "commit_groups": [["ce1215d9b"]], "identity_text": "Add byte specification (B) to pg_size_bytes() (Peter Eisentraut)", "commit_aliases": ["ce1215d9b"], "source_commits": ["ce1215d9b"], "source_entry_id": "16.0/changes/115", "db_id": "868756c43fb93e2c80ca4c4bc19677e4", "patch_ids": ["41517fc2dc3d8ce5b0f8b081e04f0ebd"], "statement_hash": "003f2dd9e25e20a59856aa541b48c1979779d932ee7568d354deda670aade984", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-ab98fc7e0a3147df", "migration": false}, {"id": "16.0-9979f825f07238b2", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/16/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"\u8868\u00a09.72.\u00a0\u7cfb\u7edf\u76ee\u5f55\u4fe1\u606f\u51fd\u6570\"><code>to_reg</code></a>* \u51fd\u6570\u63a5\u53d7\u6570\u5b57 <acronym>OID</acronym> \u4f5c\u4e3a\u8f93\u5165\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/3ea7329c9\">\u00a7</a></p>", "text": "\u5141\u8bb8 to_reg* \u51fd\u6570\u63a5\u53d7\u6570\u5b57 OID \u4f5c\u4e3a\u8f93\u5165\uff08Tom Lane\uff09\u00a7", "title": "\u5141\u8bb8 to_reg* \u51fd\u6570\u63a5\u53d7\u6570\u5b57 OID \u4f5c\u4e3a\u8f93\u5165", "commits": ["3ea7329c9"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-FUNCTIONS", "source_hash": "3d9d939516de19a150ba4bf947a3bff222ae673526b9094198505931742dc39d", "section_path": ["\u51fd\u6570"], "commit_groups": [["3ea7329c9"]], "identity_text": "Allow to_reg* functions to accept numeric OIDs as input (Tom Lane)", "commit_aliases": ["3ea7329c9"], "source_commits": ["3ea7329c9"], "source_entry_id": "16.0/changes/116", "db_id": "c7db3fb790a06d10ea3ca54de7c58633", "patch_ids": ["2178fd4447224097ed3c239d6042ef7a"], "statement_hash": "d92316f4314dd3bbc0435a68f53ccc266e2b7f83a75e60e010bf8d73f524de0c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-9979f825f07238b2", "migration": false}, {"id": "16.0-d434fe6a56e059ad", "cves": [], "html": "<p>\u589e\u52a0\u5728 <span>PL/pgSQL</span> \u4e2d\u83b7\u53d6\u5f53\u524d\u51fd\u6570 <acronym>OID</acronym> \u7684\u80fd\u529b\uff08Pavel Stehule\uff09<a href=\"https://postgr.es/c/d3d53f955\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7 <a href=\"/docs/16/plpgsql-statements.html#PLPGSQL-STATEMENTS-DIAGNOSTICS\" title=\"43.5.5.\u00a0\u83b7\u53d6\u7ed3\u679c\u72b6\u6001\"><code>GET DIAGNOSTICS variable = PG_ROUTINE_OID</code></a> \u5b9e\u73b0\u3002</p>", "text": "\u589e\u52a0\u5728 PL/pgSQL \u4e2d\u83b7\u53d6\u5f53\u524d\u51fd\u6570 OID \u7684\u80fd\u529b\uff08Pavel Stehule\uff09\u00a7 \u8fd9\u901a\u8fc7 GET DIAGNOSTICS variable = PG_ROUTINE_OID \u5b9e\u73b0\u3002", "title": "\u589e\u52a0\u5728 PL/pgSQL \u4e2d\u83b7\u53d6\u5f53\u524d\u51fd\u6570 OID \u7684\u80fd\u529b", "commits": ["d3d53f955"], "section": "PL/pgSQL", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PLPGSQL", "source_hash": "56950d4dd29af764779f18a6aabb04dc5847ff3dbdc4c6a401f212b4273ff94a", "section_path": ["PL/pgSQL"], "commit_groups": [["d3d53f955"]], "identity_text": "Add the ability to get the current function's OID in PL/pgSQL (Pavel Stehule) This is accomplished with GET DIAGNOSTICS variable = PG_ROUTINE_OID.", "commit_aliases": ["d3d53f955"], "source_commits": ["d3d53f955"], "source_entry_id": "16.0/changes/117", "db_id": "a0b07140e69038a2343ab67906940aaf", "patch_ids": ["08d9a9d68b22bac1bbdfe0c0746ca523"], "statement_hash": "d0a5bac30e4eb6eaea9321f80e96c501b87b0c770df90133e77abec0e3bf3214", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-d434fe6a56e059ad", "migration": false}, {"id": "16.0-deb6ad896df2c831", "cves": [], "html": "<p>\u589e\u52a0 <span>libpq</span> \u8fde\u63a5\u9009\u9879 <a href=\"/docs/16/libpq-connect.html#LIBPQ-CONNECT-REQUIRE-AUTH\"><code>require_auth</code></a> \u4ee5\u6307\u5b9a\u53ef\u63a5\u53d7\u7684\u8ba4\u8bc1\u65b9\u6cd5\u5217\u8868\uff08Jacob Champion\uff09<a href=\"https://postgr.es/c/3a465cc67\">\u00a7</a></p>\n<p>\u8fd9\u4e5f\u53ef\u7528\u4e8e\u7981\u6b62\u67d0\u4e9b\u8ba4\u8bc1\u65b9\u6cd5\u3002</p>", "text": "\u589e\u52a0 libpq \u8fde\u63a5\u9009\u9879 require_auth \u4ee5\u6307\u5b9a\u53ef\u63a5\u53d7\u7684\u8ba4\u8bc1\u65b9\u6cd5\u5217\u8868\uff08Jacob Champion\uff09\u00a7 \u8fd9\u4e5f\u53ef\u7528\u4e8e\u7981\u6b62\u67d0\u4e9b\u8ba4\u8bc1\u65b9\u6cd5\u3002", "title": "\u589e\u52a0 libpq \u8fde\u63a5\u9009\u9879 require_auth \u4ee5\u6307\u5b9a\u53ef\u63a5\u53d7\u7684\u8ba4\u8bc1\u65b9\u6cd5\u5217\u8868", "commits": ["3a465cc67"], "section": "libpq", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LIBPQ", "source_hash": "adf6433b4f99db13ef2bdb6cab0bc799f119576247271a5cb56994552f4e5bfb", "section_path": ["libpq"], "commit_groups": [["3a465cc67"]], "identity_text": "Add libpq connection option require_auth to specify a list of acceptable authentication methods (Jacob Champion) This can also be used to disallow certain authentication methods.", "commit_aliases": ["3a465cc67"], "source_commits": ["3a465cc67"], "source_entry_id": "16.0/changes/118", "db_id": "4c858bae325d824494991b29c7096b54", "patch_ids": ["f8268f5fea49d2462a659efb665976bd"], "statement_hash": "20ff871c05acfba16c44b4d7c2fa4c70987d6857a71f50d98c07ce7ce19d8004", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-deb6ad896df2c831", "migration": false}, {"id": "16.0-2d62ba8897ceb580", "cves": [], "html": "<p>\u5141\u8bb8\u591a\u4e2a <span>libpq</span> \u6307\u5b9a\u7684\u4e3b\u673a\u88ab\u968f\u673a\u9009\u62e9\uff08Jelte Fennema\uff09<a href=\"https://postgr.es/c/7f5b19817\">\u00a7</a> <a href=\"https://postgr.es/c/0a16512d4\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7 <a href=\"/docs/16/libpq-connect.html#LIBPQ-CONNECT-LOAD-BALANCE-HOSTS\"><code>load_balance_hosts=random</code></a> \u542f\u7528\uff0c\u53ef\u7528\u4e8e\u8d1f\u8f7d\u5747\u8861\u3002</p>", "text": "\u5141\u8bb8\u591a\u4e2a libpq \u6307\u5b9a\u7684\u4e3b\u673a\u88ab\u968f\u673a\u9009\u62e9\uff08Jelte Fennema\uff09\u00a7 \u00a7 \u8fd9\u901a\u8fc7 load_balance_hosts=random \u542f\u7528\uff0c\u53ef\u7528\u4e8e\u8d1f\u8f7d\u5747\u8861\u3002", "title": "\u5141\u8bb8\u591a\u4e2a libpq \u6307\u5b9a\u7684\u4e3b\u673a\u88ab\u968f\u673a\u9009\u62e9", "commits": ["0a16512d4", "7f5b19817"], "section": "libpq", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LIBPQ", "source_hash": "92809fe848a353c04c28b50a9d0d615145087fde33846c8642eba957d022780e", "section_path": ["libpq"], "commit_groups": [["0a16512d4"], ["7f5b19817"]], "identity_text": "Allow multiple libpq-specified hosts to be randomly selected (Jelte Fennema) This is enabled with load_balance_hosts=random and can be used for load balancing.", "commit_aliases": ["0a16512d4", "7f5b19817"], "source_commits": ["0a16512d4", "7f5b19817"], "source_entry_id": "16.0/changes/119", "db_id": "f8ff87aaab449ca54bdc0cb144c8c9d9", "patch_ids": ["38cfae9ae7979d29f10b6932354bda3a", "dfe0f471539341ebda184943559365fd"], "statement_hash": "48e22957ef569bac092c26bc74fad4e31e7bef3cdce6550d6a2cadbc39a9f606", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-2d62ba8897ceb580", "migration": false}, {"id": "16.0-35f58d0abdbda17d", "cves": [], "html": "<p>\u589e\u52a0 <span>libpq</span> \u9009\u9879 <a href=\"/docs/16/libpq-connect.html#LIBPQ-CONNECT-SSLCERTMODE\"><code>sslcertmode</code></a> \u4ee5\u63a7\u5236\u5ba2\u6237\u7aef\u8bc1\u4e66\u7684\u4f20\u8f93\uff08Jacob Champion\uff09<a href=\"https://postgr.es/c/36f40ce2d\">\u00a7</a></p>\n<p>\u9009\u9879\u503c\u4e3a <code>disable</code>\u3001<code>allow</code> \u548c <code>require</code>\u3002</p>", "text": "\u589e\u52a0 libpq \u9009\u9879 sslcertmode \u4ee5\u63a7\u5236\u5ba2\u6237\u7aef\u8bc1\u4e66\u7684\u4f20\u8f93\uff08Jacob Champion\uff09\u00a7 \u9009\u9879\u503c\u4e3a disable\u3001allow \u548c require\u3002", "title": "\u589e\u52a0 libpq \u9009\u9879 sslcertmode \u4ee5\u63a7\u5236\u5ba2\u6237\u7aef\u8bc1\u4e66\u7684\u4f20\u8f93", "commits": ["36f40ce2d"], "section": "libpq", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LIBPQ", "source_hash": "009e3def375008397619b11fa43715424158bf0fc2f7c5674d3805cdca28af7d", "section_path": ["libpq"], "commit_groups": [["36f40ce2d"]], "identity_text": "Add libpq option sslcertmode to control transmission of the client certificate (Jacob Champion) The option values are disable, allow, and require.", "commit_aliases": ["36f40ce2d"], "source_commits": ["36f40ce2d"], "source_entry_id": "16.0/changes/120", "db_id": "cfcefe5d627c511474cfc47e3bb615a5", "patch_ids": ["283caeb061d9b81a8420896fbe4e6d8e"], "statement_hash": "099059b865c5f2cef339a1b38a41671ff75304c589f266cc995f4c2e74f797db", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-35f58d0abdbda17d", "migration": false}, {"id": "16.0-007e65fe7853fb77", "cves": [], "html": "<p>\u5141\u8bb8 <span>libpq</span> \u4f7f\u7528\u7cfb\u7edf\u8bc1\u4e66\u6c60\u8fdb\u884c\u8bc1\u4e66\u9a8c\u8bc1\uff08Jacob Champion\uff0cThomas Habets\uff09<a href=\"https://postgr.es/c/8eda73146\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7 <a href=\"/docs/16/libpq-connect.html#LIBPQ-CONNECT-SSLROOTCERT\"><code>sslrootcert=system</code></a> \u542f\u7528\uff0c\u540c\u65f6\u4e5f\u4f1a\u542f\u7528 <a href=\"/docs/16/libpq-connect.html#LIBPQ-CONNECT-SSLMODE\"><code>sslmode=verify-full</code></a>\u3002</p>", "text": "\u5141\u8bb8 libpq \u4f7f\u7528\u7cfb\u7edf\u8bc1\u4e66\u6c60\u8fdb\u884c\u8bc1\u4e66\u9a8c\u8bc1\uff08Jacob Champion\uff0cThomas Habets\uff09\u00a7 \u8fd9\u901a\u8fc7 sslrootcert=system \u542f\u7528\uff0c\u540c\u65f6\u4e5f\u4f1a\u542f\u7528 sslmode=verify-full\u3002", "title": "\u5141\u8bb8 libpq \u4f7f\u7528\u7cfb\u7edf\u8bc1\u4e66\u6c60\u8fdb\u884c\u8bc1\u4e66\u9a8c\u8bc1", "commits": ["8eda73146"], "section": "libpq", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-LIBPQ", "source_hash": "fbcf17ce6316ce2e2ec52578b6a4a2bc39cac33f3facd1d3d4b67ba75ccc2ed0", "section_path": ["libpq"], "commit_groups": [["8eda73146"]], "identity_text": "Allow libpq to use the system certificate pool for certificate verification (Jacob Champion, Thomas Habets) This is enabled with sslrootcert=system, which also enables sslmode=verify-full.", "commit_aliases": ["8eda73146"], "source_commits": ["8eda73146"], "source_entry_id": "16.0/changes/121", "db_id": "f914e809c1b088ed48f9b9caa9e7bc1b", "patch_ids": ["bf0cfa669afeb838d9ff3b99478484f9"], "statement_hash": "798b5cf593aa3249fc22c6072002fc807062a3a0bcba0d39fbeea939b7c8cb30", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-007e65fe7853fb77", "migration": false}, {"id": "16.0-f2d35c205f7c8a62", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/16/ecpg.html\" title=\"\u7b2c\u00a036\u00a0\u7ae0\u00a0ECPG \u2014 C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\"><code>ECPG</code></a> \u53d8\u91cf\u58f0\u660e\u4f7f\u7528\u4e0e\u975e\u4fdd\u7559 <acronym>SQL</acronym> \u5173\u952e\u5b57\u5339\u914d\u7684 typedef \u540d\u79f0\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/83f1c7b74\">\u00a7</a></p>\n<p>\u6b64\u66f4\u6539\u786e\u5b9e\u4f1a\u963b\u6b62\u4e0e C typedef \u540d\u79f0\u5339\u914d\u7684\u5173\u952e\u5b57\u5728\u540e\u7eed\u7684 <code>EXEC SQL</code> \u5757\u4e2d\u4f5c\u4e3a\u5173\u952e\u5b57\u5904\u7406\u3002</p>", "text": "\u5141\u8bb8 ECPG \u53d8\u91cf\u58f0\u660e\u4f7f\u7528\u4e0e\u975e\u4fdd\u7559 SQL \u5173\u952e\u5b57\u5339\u914d\u7684 typedef \u540d\u79f0\uff08Tom Lane\uff09\u00a7 \u6b64\u66f4\u6539\u786e\u5b9e\u4f1a\u963b\u6b62\u4e0e C typedef \u540d\u79f0\u5339\u914d\u7684\u5173\u952e\u5b57\u5728\u540e\u7eed\u7684 EXEC SQL \u5757\u4e2d\u4f5c\u4e3a\u5173\u952e\u5b57\u5904\u7406\u3002", "title": "\u5141\u8bb8 ECPG \u53d8\u91cf\u58f0\u660e\u4f7f\u7528\u4e0e\u975e\u4fdd\u7559 SQL \u5173\u952e\u5b57\u5339\u914d\u7684 typedef \u540d\u79f0", "commits": ["83f1c7b74"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-CLIENT-APPS", "source_hash": "63d04bb22bdc4067b6ef8b03559546074e84765c11e37d3e53873a50fac8e9a2", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528"], "commit_groups": [["83f1c7b74"]], "identity_text": "Allow ECPG variable declarations to use typedef names that match unreserved SQL keywords (Tom Lane) This change does prevent keywords which match C typedef names from being processed as keywords in later EXEC SQL blocks.", "commit_aliases": ["83f1c7b74"], "source_commits": ["83f1c7b74"], "source_entry_id": "16.0/changes/122", "db_id": "d6e492659da37b37b74d7f43d66c9ed1", "patch_ids": ["436b06ea61c363995bf435b967165d1f"], "statement_hash": "c05516733ba7afe4e5e9d11af7920209bdd2f76a81b147bd0759f05595855a4b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-f2d35c205f7c8a62", "migration": false}, {"id": "16.0-3c9feeb91abeeb02", "cves": [], "html": "<p>\u5141\u8bb8 <span>psql</span> \u63a7\u5236\u6269\u5c55\u683c\u5f0f\u4e2d\u6807\u9898\u884c\u7684\u6700\u5927\u5bbd\u5ea6\uff08Platon Pronko\uff09<a href=\"https://postgr.es/c/a45388d6e\">\u00a7</a></p>\n<p>\u8fd9\u7531 <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-PSET-XHEADER-WIDTH\"><code>xheader_width</code></a> \u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8 psql \u63a7\u5236\u6269\u5c55\u683c\u5f0f\u4e2d\u6807\u9898\u884c\u7684\u6700\u5927\u5bbd\u5ea6\uff08Platon Pronko\uff09\u00a7 \u8fd9\u7531 xheader_width \u63a7\u5236\u3002", "title": "\u5141\u8bb8 psql \u63a7\u5236\u6269\u5c55\u683c\u5f0f\u4e2d\u6807\u9898\u884c\u7684\u6700\u5927\u5bbd\u5ea6", "commits": ["a45388d6e"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "1541acf8eec9d410cafcec4097e2a6c02a8cac1ea48819bed8c99c6b3d846169", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["a45388d6e"]], "identity_text": "Allow psql to control the maximum width of header lines in expanded format (Platon Pronko) This is controlled by xheader_width.", "commit_aliases": ["a45388d6e"], "source_commits": ["a45388d6e"], "source_entry_id": "16.0/changes/123", "db_id": "55c1b30958e3f5c698a9288f14a66890", "patch_ids": ["5fa6ea7e4acf52256ebdf8af5a0769d4"], "statement_hash": "5456bd63b761380a92c1cccee82ee083f5cf9ba2b61711ee7d789fc324a93d08", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-3c9feeb91abeeb02", "migration": false}, {"id": "16.0-ddff000d0c6a5c48-1", "cves": [], "html": "<p>\u589e\u52a0 <span>psql</span> \u547d\u4ee4 <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-DRG\"><code>\\drg</code></a> \u4ee5\u663e\u793a\u89d2\u8272\u6210\u5458\u8d44\u683c\u8be6\u60c5\uff08Pavel Luzanov\uff09<a href=\"https://postgr.es/c/d913928c9\">\u00a7</a> <a href=\"https://postgr.es/c/d65ddaca9\">\u00a7</a></p>\n<p><code>Member of</code> \u8f93\u51fa\u5217\u5df2\u4ece <code>\\du</code> \u548c <code>\\dg</code> \u4e2d\u79fb\u9664\uff0c\u56e0\u4e3a\u6b64\u65b0\u547d\u4ee4\u4ee5\u66f4\u8be6\u7ec6\u7684\u65b9\u5f0f\u663e\u793a\u6b64\u4fe1\u606f\u3002</p>", "text": "\u589e\u52a0 psql \u547d\u4ee4 \\drg \u4ee5\u663e\u793a\u89d2\u8272\u6210\u5458\u8d44\u683c\u8be6\u60c5\uff08Pavel Luzanov\uff09\u00a7 \u00a7 Member of \u8f93\u51fa\u5217\u5df2\u4ece \\du \u548c \\dg \u4e2d\u79fb\u9664\uff0c\u56e0\u4e3a\u6b64\u65b0\u547d\u4ee4\u4ee5\u66f4\u8be6\u7ec6\u7684\u65b9\u5f0f\u663e\u793a\u6b64\u4fe1\u606f\u3002", "title": "\u589e\u52a0 psql \u547d\u4ee4 \\drg \u4ee5\u663e\u793a\u89d2\u8272\u6210\u5458\u8d44\u683c\u8be6\u60c5", "commits": ["d65ddaca9", "d913928c9"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "4504b20d0892d04e8ef04ff85daefe200e92a0fb55c362afb9ea015bc3d9ef10", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["d65ddaca9"], ["d913928c9"]], "identity_text": "Add psql command \\drg to show role membership details (Pavel Luzanov) The Member of output column has been removed from \\du and \\dg because this new command displays this information in more detail.", "commit_aliases": ["d65ddaca9", "d913928c9"], "source_commits": ["d65ddaca9", "d913928c9"], "source_entry_id": "16.0/changes/124", "db_id": "6f8780abecad883c8e311c1576d51c74", "patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"], "statement_hash": "a31b10357b2e9c55efa7870b5275371ddbb0daac02e39a771f77aa2d9a217d32", "relations": [{"rule": 2, "type": "related", "target": "19360257dc0dbf33ef1970e329d4991e", "evidence": {"same_day": true, "patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"], "ambiguous_patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-ddff000d0c6a5c48-1", "migration": false}, {"id": "16.0-ddff000d0c6a5c48-2", "cves": [], "html": "<p>\u5141\u8bb8 <span>psql</span> \u7684\u8bbf\u95ee\u6743\u9650\u547d\u4ee4\u663e\u793a\u7cfb\u7edf\u5bf9\u8c61\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/d913928c9\">\u00a7</a> <a href=\"https://postgr.es/c/d65ddaca9\">\u00a7</a></p>\n<p>\u9009\u9879\u4e3a <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-DP-LC\"><code>\\dpS</code></a> \u548c <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-Z\"><code>\\zS</code></a>\u3002</p>", "text": "\u5141\u8bb8 psql \u7684\u8bbf\u95ee\u6743\u9650\u547d\u4ee4\u663e\u793a\u7cfb\u7edf\u5bf9\u8c61\uff08Nathan Bossart\uff09\u00a7 \u00a7 \u9009\u9879\u4e3a \\dpS \u548c \\zS\u3002", "title": "\u5141\u8bb8 psql \u7684\u8bbf\u95ee\u6743\u9650\u547d\u4ee4\u663e\u793a\u7cfb\u7edf\u5bf9\u8c61", "commits": ["d65ddaca9", "d913928c9"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "126aeec0650536736eb2b95bfd958de2a948eda18471fdf66cbcfa04a8455b3f", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["d65ddaca9"], ["d913928c9"]], "identity_text": "Allow psql's access privilege commands to show system objects (Nathan Bossart) The options are \\dpS and \\zS.", "commit_aliases": ["d65ddaca9", "d913928c9"], "source_commits": ["d65ddaca9", "d913928c9"], "source_entry_id": "16.0/changes/125", "db_id": "19360257dc0dbf33ef1970e329d4991e", "patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"], "statement_hash": "828d84b911690b8a8fc0a49b108b6509da85f6d79f0868090b42086b64d7304c", "relations": [{"rule": 2, "type": "related", "target": "6f8780abecad883c8e311c1576d51c74", "evidence": {"same_day": true, "patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"], "ambiguous_patch_ids": ["4dba2a4b1e84b7a4e5395579e966b329", "a97e8a488724255218606080f9528811"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-ddff000d0c6a5c48-2", "migration": false}, {"id": "16.0-66ee8ff440fab119", "cves": [], "html": "<p>\u5728 <span>psql</span> <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-D\"><code>\\d+</code></a> \u4e2d\u4e3a\u5916\u90e8\u8868\u7684\u5b50\u8868\u548c\u5206\u533a\u6dfb\u52a0 <code>FOREIGN</code> \u6807\u8bc6\uff08Ian Lawrence Barwick\uff09<a href=\"https://postgr.es/c/bd95816f7\">\u00a7</a></p>", "text": "\u5728 psql \\d+ \u4e2d\u4e3a\u5916\u90e8\u8868\u7684\u5b50\u8868\u548c\u5206\u533a\u6dfb\u52a0 FOREIGN \u6807\u8bc6\uff08Ian Lawrence Barwick\uff09\u00a7", "title": "\u5728 psql \\d+ \u4e2d\u4e3a\u5916\u90e8\u8868\u7684\u5b50\u8868\u548c\u5206\u533a\u6dfb\u52a0 FOREIGN \u6807\u8bc6", "commits": ["bd95816f7"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "3d3bff80a0644fa7ef8ac33e754e531ba30585025eeb63d1e0d5ffe6a4b5c272", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["bd95816f7"]], "identity_text": "Add FOREIGN designation to psql \\d+ for foreign table children and partitions (Ian Lawrence Barwick)", "commit_aliases": ["bd95816f7"], "source_commits": ["bd95816f7"], "source_entry_id": "16.0/changes/126", "db_id": "943b200015d16c739a17767b9f889532", "patch_ids": ["2d24708d937b1236e53573ea374beb48"], "statement_hash": "d2fafa9ffc63f2be48f6b383db320eef16c976eba434ef928358c76f7dff6048", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-66ee8ff440fab119", "migration": false}, {"id": "16.0-bc063b01ac14664e", "cves": [], "html": "<p>\u963b\u6b62 <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-DF-UC\"><code>\\df+</code></a> \u663e\u793a\u51fd\u6570\u6e90\u4ee3\u7801\uff08Isaac Morland\uff09<a href=\"https://postgr.es/c/3dfae91f7\">\u00a7</a></p>\n<p>\u51fd\u6570\u4f53\u66f4\u5bb9\u6613\u901a\u8fc7 <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-SF\"><code>\\sf</code></a> \u67e5\u770b\u3002</p>", "text": "\u963b\u6b62 \\df+ \u663e\u793a\u51fd\u6570\u6e90\u4ee3\u7801\uff08Isaac Morland\uff09\u00a7 \u51fd\u6570\u4f53\u66f4\u5bb9\u6613\u901a\u8fc7 \\sf \u67e5\u770b\u3002", "title": "\u963b\u6b62 \\df+ \u663e\u793a\u51fd\u6570\u6e90\u4ee3\u7801", "commits": ["3dfae91f7"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "d0db8ede8e4d6e76faee46314d2c6697a89fdd7238b588bb30a77262b395707d", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["3dfae91f7"]], "identity_text": "Prevent \\df+ from showing function source code (Isaac Morland) Function bodies are more easily viewed with \\sf.", "commit_aliases": ["3dfae91f7"], "source_commits": ["3dfae91f7"], "source_entry_id": "16.0/changes/127", "db_id": "5173fa57441ea4049b6e5234ecf85753", "patch_ids": ["11d4ea555e3c74decc77402865cc4c80"], "statement_hash": "7469f1568a99bb22b65ba22695215a391b3c2b322b226a2699ab231a03f4f216", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-bc063b01ac14664e", "migration": false}, {"id": "16.0-b2b2b9b0d098424e", "cves": [], "html": "<p>\u5141\u8bb8 <span>psql</span> \u4f7f\u7528\u6269\u5c55\u67e5\u8be2\u534f\u8bae\u63d0\u4ea4\u67e5\u8be2\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/5b66de343\">\u00a7</a></p>\n<p>\u5411\u6b64\u7c7b\u67e5\u8be2\u4f20\u9012\u53c2\u6570\u901a\u8fc7\u65b0\u7684 <span>psql</span> <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-BIND\"><code>\\bind</code></a> \u547d\u4ee4\u5b8c\u6210\u3002</p>", "text": "\u5141\u8bb8 psql \u4f7f\u7528\u6269\u5c55\u67e5\u8be2\u534f\u8bae\u63d0\u4ea4\u67e5\u8be2\uff08Peter Eisentraut\uff09\u00a7 \u5411\u6b64\u7c7b\u67e5\u8be2\u4f20\u9012\u53c2\u6570\u901a\u8fc7\u65b0\u7684 psql \\bind \u547d\u4ee4\u5b8c\u6210\u3002", "title": "\u5141\u8bb8 psql \u4f7f\u7528\u6269\u5c55\u67e5\u8be2\u534f\u8bae\u63d0\u4ea4\u67e5\u8be2", "commits": ["5b66de343"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "876cc1d8b3aaf2b62bf71765f0cfb0f9fea8d465233bfa2c5bb82d0f10c80b45", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["5b66de343"]], "identity_text": "Allow psql to submit queries using the extended query protocol (Peter Eisentraut) Passing arguments to such queries is done using the new psql \\bind command.", "commit_aliases": ["5b66de343"], "source_commits": ["5b66de343"], "source_entry_id": "16.0/changes/128", "db_id": "d9a4add0bd8c95097e0fa71921fd1073", "patch_ids": ["d3485f846391b962f7ed75a948e11c07"], "statement_hash": "b98ca8c8eda51363d451a3e285f82699d8e3acea3161663b0f3553a283fad3bb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-b2b2b9b0d098424e", "migration": false}, {"id": "16.0-424ae9ab48bec533", "cves": [], "html": "<p>\u5141\u8bb8 <span>psql</span> <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-WATCH\"><code>\\watch</code></a> \u9650\u5236\u6267\u884c\u6b21\u6570\uff08Andrey Borodin\uff09<a href=\"https://postgr.es/c/00beecfe8\">\u00a7</a></p>\n<p><code>\\watch</code> \u9009\u9879\u73b0\u5728\u53ef\u4ee5\u5728\u6307\u5b9a\u65f6\u4f7f\u7528\u547d\u540d\u65b9\u5f0f\u3002</p>", "text": "\u5141\u8bb8 psql \\watch \u9650\u5236\u6267\u884c\u6b21\u6570\uff08Andrey Borodin\uff09\u00a7 \\watch \u9009\u9879\u73b0\u5728\u53ef\u4ee5\u5728\u6307\u5b9a\u65f6\u4f7f\u7528\u547d\u540d\u65b9\u5f0f\u3002", "title": "\u5141\u8bb8 psql \\watch \u9650\u5236\u6267\u884c\u6b21\u6570", "commits": ["00beecfe8"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "abdbc973415de7aae48a1e34b60d270cbb1d474664afe15c00f6aa3f078e8e34", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["00beecfe8"]], "identity_text": "Allow psql \\watch to limit the number of executions (Andrey Borodin) The \\watch options can now be named when specified.", "commit_aliases": ["00beecfe8"], "source_commits": ["00beecfe8"], "source_entry_id": "16.0/changes/129", "db_id": "7b79146608c9c1559bd7f28c10fc3528", "patch_ids": ["71f616f8fc4a21b02fb3f1e748283a4b"], "statement_hash": "f46494be74c9de62f205f9ef429036ccb785ac67e453dbf8395f064d86ab976a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-424ae9ab48bec533", "migration": false}, {"id": "16.0-b3d4d21bb4c2b4e2", "cves": [], "html": "<p>\u68c0\u6d4b <span>psql</span> <a href=\"/docs/16/app-psql.html#APP-PSQL-META-COMMAND-WATCH\"><code>\\watch</code></a> \u7684\u65e0\u6548\u503c\uff0c\u5e76\u5141\u8bb8\u96f6\u8868\u793a\u65e0\u5ef6\u8fdf\uff08Andrey Borodin\uff09<a href=\"https://postgr.es/c/6f9ee74d4\">\u00a7</a></p>", "text": "\u68c0\u6d4b psql \\watch \u7684\u65e0\u6548\u503c\uff0c\u5e76\u5141\u8bb8\u96f6\u8868\u793a\u65e0\u5ef6\u8fdf\uff08Andrey Borodin\uff09\u00a7", "title": "\u68c0\u6d4b psql \\watch \u7684\u65e0\u6548\u503c\uff0c\u5e76\u5141\u8bb8\u96f6\u8868\u793a\u65e0\u5ef6\u8fdf", "commits": ["6f9ee74d4"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "006424873ca93b70ee87cf1b83ef43c27a5e5ac4604d4109924ce4dca021c53a", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["6f9ee74d4"]], "identity_text": "Detect invalid values for psql \\watch, and allow zero to specify no delay (Andrey Borodin)", "commit_aliases": ["6f9ee74d4"], "source_commits": ["6f9ee74d4"], "source_entry_id": "16.0/changes/130", "db_id": "ab24bb2c0458d4f82906c5b0aabaeedd", "patch_ids": ["64a46b322f1baf8f914453efb88937f6"], "statement_hash": "962c473bda4fc1e202802c83bdc210a43e4ac8f1d91fafe44e89d0c75d62f809", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-b3d4d21bb4c2b4e2", "migration": false}, {"id": "16.0-55738e5bd8034936", "cves": [], "html": "<p>\u5141\u8bb8 <span>psql</span> \u811a\u672c\u83b7\u53d6 shell \u547d\u4ee4\u548c\u67e5\u8be2\u7684\u9000\u51fa\u72b6\u6001\uff08Corey Huinker\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/b0d8f2d98\">\u00a7</a> <a href=\"https://postgr.es/c/31ae2aa9d\">\u00a7</a></p>\n<p>\u65b0\u7684 <span>psql</span> \u63a7\u5236\u53d8\u91cf\u4e3a <a href=\"/docs/16/app-psql.html#APP-PSQL-VARIABLES-SHELL-ERROR\"><code>SHELL_ERROR</code></a> \u548c <a href=\"/docs/16/app-psql.html#APP-PSQL-VARIABLES-SHELL-EXIT-CODE\"><code>SHELL_EXIT_CODE</code></a>\u3002</p>", "text": "\u5141\u8bb8 psql \u811a\u672c\u83b7\u53d6 shell \u547d\u4ee4\u548c\u67e5\u8be2\u7684\u9000\u51fa\u72b6\u6001\uff08Corey Huinker\uff0cTom Lane\uff09\u00a7 \u00a7 \u65b0\u7684 psql \u63a7\u5236\u53d8\u91cf\u4e3a SHELL_ERROR \u548c SHELL_EXIT_CODE\u3002", "title": "\u5141\u8bb8 psql \u811a\u672c\u83b7\u53d6 shell \u547d\u4ee4\u548c\u67e5\u8be2\u7684\u9000\u51fa\u72b6\u6001", "commits": ["31ae2aa9d", "b0d8f2d98"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "ca07464a0326ec6050304d2d83d3342b3aa9b6fc23ed9bfa6214ebcbf57e70a0", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["31ae2aa9d"], ["b0d8f2d98"]], "identity_text": "Allow psql scripts to obtain the exit status of shell commands and queries (Corey Huinker, Tom Lane) The new psql control variables are SHELL_ERROR and SHELL_EXIT_CODE.", "commit_aliases": ["31ae2aa9d", "b0d8f2d98"], "source_commits": ["31ae2aa9d", "b0d8f2d98"], "source_entry_id": "16.0/changes/131", "db_id": "132afe4d1c35b8989364a05353e2dbe6", "patch_ids": ["76b35fb6abf559f4058807db6fbf4909", "82a5b4d4e10444acbfa39f83cf6c3357"], "statement_hash": "2e1ff17ff19e54971106df9f81da63c89e6a76beb57d9c82fd46dbae50e7a106", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-55738e5bd8034936", "migration": false}, {"id": "16.0-be71631e9071c783", "cves": [], "html": "<p>\u5404\u79cd <span>psql</span> tab \u8865\u5168\u6539\u8fdb\uff08Vignesh C\uff0cAleksander Alekseev\uff0cDagfinn Ilmari Manns\u00e5ker\uff0cShi Yu\uff0cMichael Paquier\uff0cKen Kato\uff0cPeter Smith\uff09<a href=\"https://postgr.es/c/f6c750d31\">\u00a7</a> <a href=\"https://postgr.es/c/4cbe57974\">\u00a7</a> <a href=\"https://postgr.es/c/6afcab6ac\">\u00a7</a> <a href=\"https://postgr.es/c/9aa58d48f\">\u00a7</a> <a href=\"https://postgr.es/c/3cf2f7af7\">\u00a7</a> <a href=\"https://postgr.es/c/2ea5de296\">\u00a7</a> <a href=\"https://postgr.es/c/07f7237c2\">\u00a7</a> <a href=\"https://postgr.es/c/9d0cf5749\">\u00a7</a> <a href=\"https://postgr.es/c/a3bc631ea\">\u00a7</a> <a href=\"https://postgr.es/c/2ff5ca86e\">\u00a7</a> <a href=\"https://postgr.es/c/9e1e9d656\">\u00a7</a> <a href=\"https://postgr.es/c/96c498d2f\">\u00a7</a></p>", "text": "\u5404\u79cd psql tab \u8865\u5168\u6539\u8fdb\uff08Vignesh C\uff0cAleksander Alekseev\uff0cDagfinn Ilmari Manns\u00e5ker\uff0cShi Yu\uff0cMichael Paquier\uff0cKen Kato\uff0cPeter Smith\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7", "title": "\u5404\u79cd psql tab \u8865\u5168\u6539\u8fdb", "commits": ["07f7237c2", "2ea5de296", "2ff5ca86e", "3cf2f7af7", "4cbe57974", "6afcab6ac", "96c498d2f", "9aa58d48f", "9d0cf5749", "9e1e9d656", "a3bc631ea", "f6c750d31"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / psql", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PSQL", "source_hash": "ac371039fe5954c65919ceed4c7d2c85d02c3a068b1425f115ca792a53a75bb8", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "psql"], "commit_groups": [["07f7237c2"], ["2ea5de296"], ["2ff5ca86e"], ["3cf2f7af7"], ["4cbe57974"], ["6afcab6ac"], ["96c498d2f"], ["9aa58d48f"], ["9d0cf5749"], ["9e1e9d656"], ["a3bc631ea"], ["f6c750d31"]], "identity_text": "Various psql tab completion improvements (Vignesh C, Aleksander Alekseev, Dagfinn Ilmari Manns\u00e5ker, Shi Yu, Michael Paquier, Ken Kato, Peter Smith)", "commit_aliases": ["07f7237c2", "2ea5de296", "2ff5ca86e", "3cf2f7af7", "4cbe57974", "6afcab6ac", "96c498d2f", "9aa58d48f", "9d0cf5749", "9e1e9d656", "a3bc631ea", "f6c750d31"], "source_commits": ["07f7237c2", "2ea5de296", "2ff5ca86e", "3cf2f7af7", "4cbe57974", "6afcab6ac", "96c498d2f", "9aa58d48f", "9d0cf5749", "9e1e9d656", "a3bc631ea", "f6c750d31"], "source_entry_id": "16.0/changes/132", "db_id": "3d576628ea029e396fa86ede3bef3337", "patch_ids": ["04b7952aca52851a0d6621788d45f807", "0e964e888b37cc5d110e8719a7593047", "1db3d1cd73edd0b1b67bd393d6a1610c", "38f8cdc56dcf17978fe65f234a2bc213", "46963e2b85168bd97e58562630484d60", "59ca7436189c201e49eab14820a4d546", "5d8e2eba9fcbf454491b5238c4caea35", "875aa705c4f23f134ac780ae1075a1ef", "a6f8fb6bd45822d0d5bb7b484ea55939", "dfdccc01fec96aea225a32c648190056", "fce3413d74a6af96be6cb7995797c9aa", "fd3f729ca745872033f430d145aa644c"], "statement_hash": "20adba5277f994e7b2da52c532b74b5cc8696bde67220a4cdf71ffb75d663f16", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-be71631e9071c783", "migration": false}, {"id": "16.0-e721d8b46b030ac6", "cves": [], "html": "<p>\u589e\u52a0 <span>pg_dump</span> \u5bf9\u5bfc\u51fa\u5b50\u8868\u548c\u5206\u533a\u7684\u63a7\u5236\uff08Gilles Darold\uff09<a href=\"https://postgr.es/c/a563c24c9\">\u00a7</a></p>\n<p>\u65b0\u9009\u9879\u4e3a <code>--table-and-children</code>\u3001<code>--exclude-table-and-children</code> \u548c <code>--exclude-table-data-and-children</code>\u3002</p>", "text": "\u589e\u52a0 pg_dump \u5bf9\u5bfc\u51fa\u5b50\u8868\u548c\u5206\u533a\u7684\u63a7\u5236\uff08Gilles Darold\uff09\u00a7 \u65b0\u9009\u9879\u4e3a --table-and-children\u3001--exclude-table-and-children \u548c --exclude-table-data-and-children\u3002", "title": "\u589e\u52a0 pg_dump \u5bf9\u5bfc\u51fa\u5b50\u8868\u548c\u5206\u533a\u7684\u63a7\u5236", "commits": ["a563c24c9"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / pg_dump", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGDUMP", "source_hash": "7ea1bac08ce57f3b0ef1ee5d3cc9b8ad03f627885908b5798564622d99521a54", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "pg_dump"], "commit_groups": [["a563c24c9"]], "identity_text": "Add pg_dump control of dumping child tables and partitions (Gilles Darold) The new options are --table-and-children, --exclude-table-and-children, and --exclude-table-data-and-children.", "commit_aliases": ["a563c24c9"], "source_commits": ["a563c24c9"], "source_entry_id": "16.0/changes/133", "db_id": "2ad5044bb6a4ffcc989cd8ef18e54faf", "patch_ids": ["d220c97cde33db18f07c02212814de28"], "statement_hash": "6f4b3896a48f6f4699053ab4c3c2ff9b6a589082f792ed65de0ba93930bd6f91", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-e721d8b46b030ac6", "migration": false}, {"id": "16.0-922138e6d30b3aac", "cves": [], "html": "<p>\u5411 <span>pg_dump</span> \u6dfb\u52a0 <span>LZ4</span> \u548c <span>Zstandard</span> \u538b\u7f29\uff08Georgios Kokolatos\uff0cJustin Pryzby\uff09</p>", "text": "\u5411 pg_dump \u6dfb\u52a0 LZ4 \u548c Zstandard \u538b\u7f29\uff08Georgios Kokolatos\uff0cJustin Pryzby\uff09", "title": "\u5411 pg_dump \u6dfb\u52a0 LZ4 \u548c Zstandard \u538b\u7f29", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / pg_dump", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGDUMP", "source_hash": "2ef01b305dc4447ac1b746904ed2ffbec8c4f8872705d33510a4d10aebfd2a1e", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "pg_dump"], "commit_groups": [["0070b66fe"], ["0da243fed"], ["84adc8e20"]], "identity_text": "Add LZ4 and Zstandard compression to pg_dump (Georgios Kokolatos, Justin Pryzby)", "commit_aliases": ["0070b66fe", "0da243fed", "84adc8e20"], "source_commits": ["0070b66fe", "0da243fed", "84adc8e20"], "source_entry_id": "16.0/changes/134", "db_id": "3f04b10bd05a220afec15a6ad0cc8ecf", "patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"], "statement_hash": "b93ac068114e762f91806aab884561c116866f84ded4eac0bdd2d2473b4197c7", "relations": [{"rule": 2, "type": "related", "target": "eac9ec616a833e4b3d13cdd02af08184", "evidence": {"same_day": true, "patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"], "ambiguous_patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-922138e6d30b3aac", "migration": false}, {"id": "16.0-2f4ff6c44dadcb94", "cves": [], "html": "<p>\u5141\u8bb8 <span>pg_dump</span> \u548c<a href=\"/docs/16/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a>\u4f7f\u7528 <code>long</code> \u6a21\u5f0f\u8fdb\u884c\u538b\u7f29\uff08Justin Pryzby\uff09<a href=\"https://postgr.es/c/0da243fed\">\u00a7</a> <a href=\"https://postgr.es/c/0070b66fe\">\u00a7</a> <a href=\"https://postgr.es/c/84adc8e20\">\u00a7</a> <a href=\"https://postgr.es/c/2820adf77\">\u00a7</a></p>", "text": "\u5141\u8bb8 pg_dump \u548cpg_basebackup\u4f7f\u7528 long \u6a21\u5f0f\u8fdb\u884c\u538b\u7f29\uff08Justin Pryzby\uff09\u00a7 \u00a7 \u00a7 \u00a7", "title": "\u5141\u8bb8 pg_dump \u548cpg_basebackup\u4f7f\u7528 long \u6a21\u5f0f\u8fdb\u884c\u538b\u7f29", "commits": ["0070b66fe", "0da243fed", "2820adf77", "84adc8e20"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / pg_dump", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGDUMP", "source_hash": "4145dbda5e98ac50bd2bc4342e00742813dbcbc626e30e6b3f3279197cf1b1e9", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "pg_dump"], "commit_groups": [["0070b66fe"], ["0da243fed"], ["2820adf77"], ["84adc8e20"]], "identity_text": "Allow pg_dump and pg_basebackup to use long mode for compression (Justin Pryzby)", "commit_aliases": ["0070b66fe", "0da243fed", "2820adf77", "84adc8e20"], "source_commits": ["0070b66fe", "0da243fed", "2820adf77", "84adc8e20"], "source_entry_id": "16.0/changes/135", "db_id": "eac9ec616a833e4b3d13cdd02af08184", "patch_ids": ["59c0786f525eef950d8b01a53d6a60b6", "8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"], "statement_hash": "d968b1e2060f40319900a09f02ec3beff2e5a4e1be955ac31a630072e852d663", "relations": [{"rule": 2, "type": "related", "target": "3f04b10bd05a220afec15a6ad0cc8ecf", "evidence": {"same_day": true, "patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"], "ambiguous_patch_ids": ["8d9f02f7db61d84652a090cb6aed0b46", "db2e7ee70689ec71246738bb3135e1bf", "e8460a2907fab52e04183d96532480db"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-2f4ff6c44dadcb94", "migration": false}, {"id": "16.0-c8945a8262701422", "cves": [], "html": "<p>\u6539\u8fdb <span>pg_dump</span> \u4ee5\u63a5\u53d7\u66f4\u4e00\u81f4\u7684\u538b\u7f29\u8bed\u6cd5\uff08Georgios Kokolatos\uff09<a href=\"https://postgr.es/c/5e73a6048\">\u00a7</a></p>\n<p>\u7c7b\u4f3c <code>--compress=gzip:5</code> \u7684\u9009\u9879\u3002</p>", "text": "\u6539\u8fdb pg_dump \u4ee5\u63a5\u53d7\u66f4\u4e00\u81f4\u7684\u538b\u7f29\u8bed\u6cd5\uff08Georgios Kokolatos\uff09\u00a7 \u7c7b\u4f3c --compress=gzip:5 \u7684\u9009\u9879\u3002", "title": "\u6539\u8fdb pg_dump \u4ee5\u63a5\u53d7\u66f4\u4e00\u81f4\u7684\u538b\u7f29\u8bed\u6cd5", "commits": ["5e73a6048"], "section": "\u5ba2\u6237\u7aef\u5e94\u7528 / pg_dump", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGDUMP", "source_hash": "bda8f27a74c35436c3a105984a3ac54fbe9fab590bca619df198f34def4f1bd1", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528", "pg_dump"], "commit_groups": [["5e73a6048"]], "identity_text": "Improve pg_dump to accept a more consistent compression syntax (Georgios Kokolatos) Options like --compress=gzip:5.", "commit_aliases": ["5e73a6048"], "source_commits": ["5e73a6048"], "source_entry_id": "16.0/changes/136", "db_id": "2f0dd46f8fa992fc6e592092533e4b24", "patch_ids": ["9366ddab381d7edf0a70648e54752846"], "statement_hash": "79287fd918c3a945b93601212f136ca366d50129a2c442158a39df39c0373d94", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-c8945a8262701422", "migration": false}, {"id": "16.0-4dbc810e2697ee93", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/16/app-initdb.html\" title=\"initdb\"><span>initdb</span></a>\u9009\u9879\u4ee5\u5728 <span>initdb</span> \u671f\u95f4\u548c\u6240\u6709\u672a\u6765\u7684\u670d\u52a1\u5668\u542f\u52a8\u4e2d\u8bbe\u7f6e\u670d\u52a1\u5668\u53d8\u91cf\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/3e51b278d\">\u00a7</a></p>\n<p>\u9009\u9879\u4e3a <code>-c name=value</code>\u3002</p>", "text": "\u589e\u52a0initdb\u9009\u9879\u4ee5\u5728 initdb \u671f\u95f4\u548c\u6240\u6709\u672a\u6765\u7684\u670d\u52a1\u5668\u542f\u52a8\u4e2d\u8bbe\u7f6e\u670d\u52a1\u5668\u53d8\u91cf\uff08Tom Lane\uff09\u00a7 \u9009\u9879\u4e3a -c name=value\u3002", "title": "\u589e\u52a0initdb\u9009\u9879\u4ee5\u5728 initdb \u671f\u95f4\u548c\u6240\u6709\u672a\u6765\u7684\u670d\u52a1\u5668\u542f\u52a8\u4e2d\u8bbe\u7f6e\u670d\u52a1\u5668\u53d8\u91cf", "commits": ["3e51b278d"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "da574249468409c50c4ef7fa4941c834c6140e75a9b6a0d5055eec82c1bb010b", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["3e51b278d"]], "identity_text": "Add initdb option to set server variables for the duration of initdb and all future server starts (Tom Lane) The option is -c name=value.", "commit_aliases": ["3e51b278d"], "source_commits": ["3e51b278d"], "source_entry_id": "16.0/changes/137", "db_id": "7bb6d25c77b7d83e36f77a40f37d8bd8", "patch_ids": ["40d429c59da535f5b88d0212aa767c9a"], "statement_hash": "ebeded1ffe35fa19d03ea43bf818d3501d0896e6d6207cbafdfd2c54d85e2470", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-4dbc810e2697ee93", "migration": false}, {"id": "16.0-50ed7c4fa7686de0", "cves": [], "html": "<p>\u5411<a href=\"/docs/16/app-createuser.html\" title=\"createuser\"><span>createuser</span></a>\u6dfb\u52a0\u9009\u9879\u4ee5\u63a7\u5236\u66f4\u591a\u7528\u6237\u9009\u9879\uff08Shinya Kato\uff09<a href=\"https://postgr.es/c/08951a7c9\">\u00a7</a> <a href=\"https://postgr.es/c/2dcd1578c\">\u00a7</a></p>\n<p>\u5177\u4f53\u6765\u8bf4\uff0c\u65b0\u9009\u9879\u63a7\u5236\u6709\u6548\u671f\u622a\u6b62\u65e5\u671f\u3001\u7ed5\u8fc7\u884c\u7ea7\u5b89\u5168\u4ee5\u53ca\u89d2\u8272\u6210\u5458\u8d44\u683c\u3002</p>", "text": "\u5411createuser\u6dfb\u52a0\u9009\u9879\u4ee5\u63a7\u5236\u66f4\u591a\u7528\u6237\u9009\u9879\uff08Shinya Kato\uff09\u00a7 \u00a7 \u5177\u4f53\u6765\u8bf4\uff0c\u65b0\u9009\u9879\u63a7\u5236\u6709\u6548\u671f\u622a\u6b62\u65e5\u671f\u3001\u7ed5\u8fc7\u884c\u7ea7\u5b89\u5168\u4ee5\u53ca\u89d2\u8272\u6210\u5458\u8d44\u683c\u3002", "title": "\u5411createuser\u6dfb\u52a0\u9009\u9879\u4ee5\u63a7\u5236\u66f4\u591a\u7528\u6237\u9009\u9879", "commits": ["08951a7c9", "2dcd1578c"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "a171cc2f9771e770d145f092bc9ca45719021497d9029832579a16558f5b22be", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["08951a7c9"], ["2dcd1578c"]], "identity_text": "Add options to createuser to control more user options (Shinya Kato) Specifically, the new options control the valid-until date, bypassing of row-level security, and role membership.", "commit_aliases": ["08951a7c9", "2dcd1578c"], "source_commits": ["08951a7c9", "2dcd1578c"], "source_entry_id": "16.0/changes/138", "db_id": "99c81f49e15f25a9f65e8cd97c3071a8", "patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f", "e79bd17eece393e7e478ee187416caf1"], "statement_hash": "8b3ad9ff7e92426270c3ba4ceaeb4875d08a8e5e879336b2c54a5f25b29c5510", "relations": [{"rule": 2, "type": "related", "target": "d1003ce42539905f287a47b3acb0a317", "evidence": {"same_day": true, "patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f"], "ambiguous_patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-50ed7c4fa7686de0", "migration": false}, {"id": "16.0-7789d0f00916df77", "cves": [], "html": "<p>\u5f03\u7528<a href=\"/docs/16/app-createuser.html\" title=\"createuser\"><span>createuser</span></a>\u9009\u9879 <code>--role</code>\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/2dcd1578c\">\u00a7</a> <a href=\"https://postgr.es/c/381d19b3e\">\u00a7</a></p>\n<p>\u6b64\u9009\u9879\u5bb9\u6613\u4e0e\u65b0\u7684 <span>createuser</span> \u89d2\u8272\u6210\u5458\u8d44\u683c\u9009\u9879\u6df7\u6dc6\uff0c\u56e0\u6b64\u6dfb\u52a0\u4e86\u5177\u6709\u76f8\u540c\u529f\u80fd\u7684\u9009\u9879 <code>--member-of</code>\u3002<code>--role</code> \u9009\u9879\u4ecd\u53ef\u4f7f\u7528\u3002</p>", "text": "\u5f03\u7528createuser\u9009\u9879 --role\uff08Nathan Bossart\uff09\u00a7 \u00a7 \u6b64\u9009\u9879\u5bb9\u6613\u4e0e\u65b0\u7684 createuser \u89d2\u8272\u6210\u5458\u8d44\u683c\u9009\u9879\u6df7\u6dc6\uff0c\u56e0\u6b64\u6dfb\u52a0\u4e86\u5177\u6709\u76f8\u540c\u529f\u80fd\u7684\u9009\u9879 --member-of\u3002--role \u9009\u9879\u4ecd\u53ef\u4f7f\u7528\u3002", "title": "\u5f03\u7528createuser\u9009\u9879 --role", "commits": ["2dcd1578c", "381d19b3e"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "0a4f64fa91ac54ce439efb5e27dbbf6b5ebd44e3531a5c8b72e6d7afbd8cb907", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["2dcd1578c"], ["381d19b3e"]], "identity_text": "Deprecate createuser option --role (Nathan Bossart) This option could be easily confused with new createuser role membership options, so option --member-of has been added with the same functionality. The --role option can still be used.", "commit_aliases": ["2dcd1578c", "381d19b3e"], "source_commits": ["2dcd1578c", "381d19b3e"], "source_entry_id": "16.0/changes/139", "db_id": "d1003ce42539905f287a47b3acb0a317", "patch_ids": ["0a348a0c1ce99b4bf9ca9bdb9f845c53", "bd5fc3b9f01aba2c1a7e76657b16553f"], "statement_hash": "708f65fec6a26dacae4a1a02258f52d1994135a445ce569e11bec304d60d6105", "relations": [{"rule": 2, "type": "related", "target": "99c81f49e15f25a9f65e8cd97c3071a8", "evidence": {"same_day": true, "patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f"], "ambiguous_patch_ids": ["bd5fc3b9f01aba2c1a7e76657b16553f"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-7789d0f00916df77", "migration": false}, {"id": "16.0-e5c116295c5b6a71", "cves": [], "html": "<p>\u5141\u8bb8\u63a7\u5236<a href=\"/docs/16/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a>\u6a21\u5f0f\u5904\u7406\uff08Gilles Darold\uff09<a href=\"https://postgr.es/c/7781f4e3e\">\u00a7</a></p>\n<p>\u8fd9\u7531\u9009\u9879 <code>--schema</code> \u548c <code>--exclude-schema</code> \u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8\u63a7\u5236vacuumdb\u6a21\u5f0f\u5904\u7406\uff08Gilles Darold\uff09\u00a7 \u8fd9\u7531\u9009\u9879 --schema \u548c --exclude-schema \u63a7\u5236\u3002", "title": "\u5141\u8bb8\u63a7\u5236vacuumdb\u6a21\u5f0f\u5904\u7406", "commits": ["7781f4e3e"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "e2ad62747da6f5d4b24879f974112656e926a90c1aa86c63baa53012358646ed", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["7781f4e3e"]], "identity_text": "Allow control of vacuumdb schema processing (Gilles Darold) These are controlled by options --schema and --exclude-schema.", "commit_aliases": ["7781f4e3e"], "source_commits": ["7781f4e3e"], "source_entry_id": "16.0/changes/140", "db_id": "15505ca8f0ce7c90af7c4781b0431f27", "patch_ids": ["817290b3e2239aa059dac5053fcdedb7"], "statement_hash": "49fe4409ad908530b457a12b70e5c140d0f1485663dfd9dd48b3516b5edb1bf2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-e5c116295c5b6a71", "migration": false}, {"id": "16.0-699af19f89a0437c", "cves": [], "html": "<p>\u4f7f\u7528\u65b0\u7684 <a href=\"/docs/16/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> \u9009\u9879\u6539\u8fdb<a href=\"/docs/16/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a>\u7684\u6027\u80fd\uff08Tom Lane\uff0cNathan Bossart\uff09<a href=\"https://postgr.es/c/a46a7011b\">\u00a7</a></p>", "text": "\u4f7f\u7528\u65b0\u7684 VACUUM \u9009\u9879\u6539\u8fdbvacuumdb\u7684\u6027\u80fd\uff08Tom Lane\uff0cNathan Bossart\uff09\u00a7", "title": "\u4f7f\u7528\u65b0\u7684 VACUUM \u9009\u9879\u6539\u8fdbvacuumdb\u7684\u6027\u80fd", "commits": ["a46a7011b"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "performance", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "4ed1cada8b9488800f9de3bc1490724191d4b78643e030cbccb56811bdf254f9", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["a46a7011b"]], "identity_text": "Use new VACUUM options to improve the performance of vacuumdb (Tom Lane, Nathan Bossart)", "commit_aliases": ["a46a7011b"], "source_commits": ["a46a7011b"], "source_entry_id": "16.0/changes/141", "db_id": "14e919445c15a22f53716118595810d3", "patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"], "statement_hash": "41df18fa569a6502e8059a6c14ebb4d1574a80fc8025bc0d57001ab6b5328ef0", "relations": [{"rule": 2, "type": "related", "target": "e136e43acbe4861285a36e1d2974b349", "evidence": {"same_day": true, "patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"], "ambiguous_patch_ids": ["7ef9b10294fcd9c5eaca0c87b7436e1a"]}}], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=16.0#16.0-699af19f89a0437c", "migration": false}, {"id": "16.0-cee79868e615d843", "cves": [], "html": "<p>\u4f7f<a href=\"/docs/16/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a>\u8bbe\u7f6e\u65b0\u96c6\u7c07\u7684\u533a\u57df\u8bbe\u7f6e\u548c\u7f16\u7801\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/9637badd9\">\u00a7</a></p>\n<p>\u8fd9\u6d88\u9664\u4e86\u65b0\u96c6\u7c07\u5fc5\u987b\u4f7f\u7528\u76f8\u540c\u7684\u533a\u57df\u8bbe\u7f6e\u548c\u7f16\u7801\u8bbe\u7f6e\u521b\u5efa\u7684\u8981\u6c42\u3002</p>", "text": "\u4f7fpg_upgrade\u8bbe\u7f6e\u65b0\u96c6\u7c07\u7684\u533a\u57df\u8bbe\u7f6e\u548c\u7f16\u7801\uff08Jeff Davis\uff09\u00a7 \u8fd9\u6d88\u9664\u4e86\u65b0\u96c6\u7c07\u5fc5\u987b\u4f7f\u7528\u76f8\u540c\u7684\u533a\u57df\u8bbe\u7f6e\u548c\u7f16\u7801\u8bbe\u7f6e\u521b\u5efa\u7684\u8981\u6c42\u3002", "title": "\u4f7fpg_upgrade\u8bbe\u7f6e\u65b0\u96c6\u7c07\u7684\u533a\u57df\u8bbe\u7f6e\u548c\u7f16\u7801", "commits": ["9637badd9"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "f7096f78cdad72be1d54a6d8573a6397800ecf6ee40c7131d2bf53e38d655b00", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["9637badd9"]], "identity_text": "Have pg_upgrade set the new cluster's locale and encoding (Jeff Davis) This removes the requirement that the new cluster be created with the same locale and encoding settings.", "commit_aliases": ["9637badd9"], "source_commits": ["9637badd9"], "source_entry_id": "16.0/changes/142", "db_id": "92dc17d3e35679b8c6be4cb93ca20752", "patch_ids": ["c9231b99b4507bb89a3c41de12df7ecf"], "statement_hash": "79a94f211f413112a4b5fd4194e529d532502fb3005acded087ed4b55ef858c3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-cee79868e615d843", "migration": false}, {"id": "16.0-e791467aa76dc190", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/16/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a>\u9009\u9879\u4ee5\u6307\u5b9a\u9ed8\u8ba4\u4f20\u8f93\u6a21\u5f0f\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/746915c68\">\u00a7</a></p>\n<p>\u9009\u9879\u4e3a <code>--copy</code>\u3002</p>", "text": "\u589e\u52a0pg_upgrade\u9009\u9879\u4ee5\u6307\u5b9a\u9ed8\u8ba4\u4f20\u8f93\u6a21\u5f0f\uff08Peter Eisentraut\uff09\u00a7 \u9009\u9879\u4e3a --copy\u3002", "title": "\u589e\u52a0pg_upgrade\u9009\u9879\u4ee5\u6307\u5b9a\u9ed8\u8ba4\u4f20\u8f93\u6a21\u5f0f", "commits": ["746915c68"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "49ab81d1d74190ccd77c69f93a33619bf82e98318b6e90fdd93c7e9a7734186e", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["746915c68"]], "identity_text": "Add pg_upgrade option to specify the default transfer mode (Peter Eisentraut) The option is --copy.", "commit_aliases": ["746915c68"], "source_commits": ["746915c68"], "source_entry_id": "16.0/changes/143", "db_id": "bb817ef76e9a0ab4ffa1ec3cc9a278b0", "patch_ids": ["fa28ecf37e18e77d91c89c1ef8221a74"], "statement_hash": "2a0f7178bdf2c5926e6663501d45ac6b9e1b44239aa772b6a8c0288bf4fb3043", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-e791467aa76dc190", "migration": false}, {"id": "16.0-d1d1c37dd548b17d", "cves": [], "html": "<p>\u6539\u8fdb<a href=\"/docs/16/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a>\u4ee5\u63a5\u53d7\u6570\u5b57\u538b\u7f29\u9009\u9879\uff08Georgios Kokolatos\uff0cMichael Paquier\uff09<a href=\"https://postgr.es/c/d18655cc0\">\u00a7</a></p>\n<p>\u73b0\u5728\u652f\u6301\u7c7b\u4f3c <code>--compress=server-5</code> \u7684\u9009\u9879\u3002</p>", "text": "\u6539\u8fdbpg_basebackup\u4ee5\u63a5\u53d7\u6570\u5b57\u538b\u7f29\u9009\u9879\uff08Georgios Kokolatos\uff0cMichael Paquier\uff09\u00a7 \u73b0\u5728\u652f\u6301\u7c7b\u4f3c --compress=server-5 \u7684\u9009\u9879\u3002", "title": "\u6539\u8fdbpg_basebackup\u4ee5\u63a5\u53d7\u6570\u5b57\u538b\u7f29\u9009\u9879", "commits": ["d18655cc0"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "9397eec752384450805e2adc78e5184d058e519fa90d63b2703c6050d09ed779", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["d18655cc0"]], "identity_text": "Improve pg_basebackup to accept numeric compression options (Georgios Kokolatos, Michael Paquier) Options like --compress=server-5 are now supported.", "commit_aliases": ["d18655cc0"], "source_commits": ["d18655cc0"], "source_entry_id": "16.0/changes/144", "db_id": "52ab016a9ea93c50f7effa2169f262b1", "patch_ids": ["6c9232a52825594823341f8b1007d5aa"], "statement_hash": "328acb54b8bed6974b49853da7c1664eae1f6b50bc4f74509e34ff226450473d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-d1d1c37dd548b17d", "migration": false}, {"id": "16.0-83cd81e9633f3eb7", "cves": [], "html": "<p>\u4fee\u590d<a href=\"/docs/16/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a>\u4ee5\u5904\u7406\u5b58\u50a8\u5728 <code>PGDATA</code> \u76ee\u5f55\u4e2d\u7684\u8868\u7a7a\u95f4\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/363e8f911\">\u00a7</a></p>", "text": "\u4fee\u590dpg_basebackup\u4ee5\u5904\u7406\u5b58\u50a8\u5728 PGDATA \u76ee\u5f55\u4e2d\u7684\u8868\u7a7a\u95f4\uff08Robert Haas\uff09\u00a7", "title": "\u4fee\u590dpg_basebackup\u4ee5\u5904\u7406\u5b58\u50a8\u5728 PGDATA \u76ee\u5f55\u4e2d\u7684\u8868\u7a7a\u95f4", "commits": ["363e8f911"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "bugfix", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "677c22a8c7b224d7d3455ecf6d2c9bbfff99754d848c427d78575df90a6af0cd", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["363e8f911"]], "identity_text": "Fix pg_basebackup to handle tablespaces stored in the PGDATA directory (Robert Haas)", "commit_aliases": ["363e8f911"], "source_commits": ["363e8f911"], "source_entry_id": "16.0/changes/145", "db_id": "be8db36699f55508bd67a4285c759fc6", "patch_ids": ["bacc78f6ab1c43509f54d240b3a0589d"], "statement_hash": "05a43a081aa469b4347379edae2e25d89a1a390b4a50b7f3e71fbbe7ad4cc7fc", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=16.0#16.0-83cd81e9633f3eb7", "migration": false}, {"id": "16.0-aef9c35b61d7b741", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/16/pgwaldump.html\" title=\"pg_waldump\"><span>pg_waldump</span></a>\u9009\u9879 <code>--save-fullpage</code> \u4ee5\u5bfc\u51fa\u6574\u9875\u955c\u50cf\uff08David Christensen\uff09<a href=\"https://postgr.es/c/d497093cb\">\u00a7</a></p>", "text": "\u589e\u52a0pg_waldump\u9009\u9879 --save-fullpage \u4ee5\u5bfc\u51fa\u6574\u9875\u955c\u50cf\uff08David Christensen\uff09\u00a7", "title": "\u589e\u52a0pg_waldump\u9009\u9879 --save-fullpage \u4ee5\u5bfc\u51fa\u6574\u9875\u955c\u50cf", "commits": ["d497093cb"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "887b611fa1736c52e5c7f7cec37e1457756d8f3c9813c27ef5f485e7b66b30e7", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["d497093cb"]], "identity_text": "Add pg_waldump option --save-fullpage to dump full page images (David Christensen)", "commit_aliases": ["d497093cb"], "source_commits": ["d497093cb"], "source_entry_id": "16.0/changes/146", "db_id": "867554d293b83e0ea8bda7109f32c10c", "patch_ids": ["ede0174696cad9b69771bb2599904159"], "statement_hash": "012d79aad22ed295d0d27d5e678d7686182acfddb3ca3da132da430a4eab8a7e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-aef9c35b61d7b741", "migration": false}, {"id": "16.0-d7f16ed46b39a6ef", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/16/pgwaldump.html\" title=\"pg_waldump\"><span>pg_waldump</span></a>\u9009\u9879 <code>-t</code>/<code>--timeline</code> \u63a5\u53d7\u5341\u516d\u8fdb\u5236\u503c\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/4c8044c04\">\u00a7</a></p>", "text": "\u5141\u8bb8pg_waldump\u9009\u9879 -t/--timeline \u63a5\u53d7\u5341\u516d\u8fdb\u5236\u503c\uff08Peter Eisentraut\uff09\u00a7", "title": "\u5141\u8bb8pg_waldump\u9009\u9879 -t/--timeline \u63a5\u53d7\u5341\u516d\u8fdb\u5236\u503c", "commits": ["4c8044c04"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "6c64ea2e79ec608078b03b57ccac778ee59be942e8abf3574cd9155de631b2d0", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["4c8044c04"]], "identity_text": "Allow pg_waldump options -t/--timeline to accept hexadecimal values (Peter Eisentraut)", "commit_aliases": ["4c8044c04"], "source_commits": ["4c8044c04"], "source_entry_id": "16.0/changes/147", "db_id": "0ad4fd2a44450651a56431933770c806", "patch_ids": ["a149985975fbac511584d3b8fba8798e"], "statement_hash": "10dbd0dd45f78560af9aec3d224a587379004cfc2ffe7a7a3b05fb775d4d1eb2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-d7f16ed46b39a6ef", "migration": false}, {"id": "16.0-5a06a8b256fc90c6", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/16/app-pgverifybackup.html\" title=\"pg_verifybackup\"><span>pg_verifybackup</span></a>\u589e\u52a0\u8fdb\u5ea6\u62a5\u544a\u652f\u6301\uff08Masahiko Sawada\uff09<a href=\"https://postgr.es/c/d07c2948b\">\u00a7</a></p>", "text": "\u4e3apg_verifybackup\u589e\u52a0\u8fdb\u5ea6\u62a5\u544a\u652f\u6301\uff08Masahiko Sawada\uff09\u00a7", "title": "\u4e3apg_verifybackup\u589e\u52a0\u8fdb\u5ea6\u62a5\u544a\u652f\u6301", "commits": ["d07c2948b"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "2993895060cdfb74a6a78b9fba1091dbf6932137527d16809ef679bc820fd9fc", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["d07c2948b"]], "identity_text": "Add support for progress reporting to pg_verifybackup (Masahiko Sawada)", "commit_aliases": ["d07c2948b"], "source_commits": ["d07c2948b"], "source_entry_id": "16.0/changes/148", "db_id": "7933db2c3a45b895c9c48eca47d9f4ec", "patch_ids": ["3661760a3d6e3c83dec1d31ea427f684"], "statement_hash": "dc379f4f1aa550eeff3a2abe13e4e059dce598ae6a075aaabed21003b133846b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-5a06a8b256fc90c6", "migration": false}, {"id": "16.0-ca1cb0734c8b9b27", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/16/app-pgrewind.html\" title=\"pg_rewind\"><span>pg_rewind</span></a>\u6b63\u786e\u8ddf\u8e2a\u65f6\u95f4\u7ebf\u53d8\u66f4\uff08Heikki Linnakangas\uff09<a href=\"https://postgr.es/c/009eeee74\">\u00a7</a> <a href=\"https://postgr.es/c/0a0500207\">\u00a7</a></p>\n<p>\u4e4b\u524d\u5982\u679c <span>pg_rewind</span> \u5728\u65f6\u95f4\u7ebf\u5207\u6362\u540e\u4f46\u5728\u53d1\u51fa\u68c0\u67e5\u70b9\u4e4b\u524d\u8fd0\u884c\uff0c\u5b83\u53ef\u80fd\u9519\u8bef\u5730\u5224\u5b9a\u4e0d\u9700\u8981\u5012\u5e26\u3002</p>", "text": "\u5141\u8bb8pg_rewind\u6b63\u786e\u8ddf\u8e2a\u65f6\u95f4\u7ebf\u53d8\u66f4\uff08Heikki Linnakangas\uff09\u00a7 \u00a7 \u4e4b\u524d\u5982\u679c pg_rewind \u5728\u65f6\u95f4\u7ebf\u5207\u6362\u540e\u4f46\u5728\u53d1\u51fa\u68c0\u67e5\u70b9\u4e4b\u524d\u8fd0\u884c\uff0c\u5b83\u53ef\u80fd\u9519\u8bef\u5730\u5224\u5b9a\u4e0d\u9700\u8981\u5012\u5e26\u3002", "title": "\u5141\u8bb8pg_rewind\u6b63\u786e\u8ddf\u8e2a\u65f6\u95f4\u7ebf\u53d8\u66f4", "commits": ["009eeee74", "0a0500207"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "fff9ae8a96b654d32cd65355fca0b4b5f41ddd46e3b452035b667024906d08cf", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["009eeee74"], ["0a0500207"]], "identity_text": "Allow pg_rewind to properly track timeline changes (Heikki Linnakangas) Previously if pg_rewind was run after a timeline switch but before a checkpoint was issued, it might incorrectly determine that a rewind was unnecessary.", "commit_aliases": ["009eeee74", "0a0500207"], "source_commits": ["009eeee74", "0a0500207"], "source_entry_id": "16.0/changes/149", "db_id": "5bee3a75ff058f1224ff3004977a76c7", "patch_ids": ["0dbb099aad2ac26448f33ef34aeb5f0d", "fe9b6f49cb807dedf6ab9783b0cddc84"], "statement_hash": "a9039415ef158b62da396a747657f1c9ae993539b8cc41e669c28744d7cb205c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-ca1cb0734c8b9b27", "migration": false}, {"id": "16.0-4ffb6d949fe14773", "cves": [], "html": "<p>\u4f7f<a href=\"/docs/16/app-pgreceivewal.html\" title=\"pg_receivewal\"><span>pg_receivewal</span></a>\u548c<a href=\"/docs/16/app-pgrecvlogical.html\" title=\"pg_recvlogical\"><span>pg_recvlogical</span></a>\u5728 <code>SIGTERM</code> \u65f6\u5e72\u51c0\u9000\u51fa\uff08Christoph Berg\uff09<a href=\"https://postgr.es/c/8b60db774\">\u00a7</a></p>\n<p>\u6b64\u4fe1\u53f7\u901a\u5e38\u7531 <span>systemd</span> \u4f7f\u7528\u3002</p>", "text": "\u4f7fpg_receivewal\u548cpg_recvlogical\u5728 SIGTERM \u65f6\u5e72\u51c0\u9000\u51fa\uff08Christoph Berg\uff09\u00a7 \u6b64\u4fe1\u53f7\u901a\u5e38\u7531 systemd \u4f7f\u7528\u3002", "title": "\u4f7fpg_receivewal\u548cpg_recvlogical\u5728 SIGTERM \u65f6\u5e72\u51c0\u9000\u51fa", "commits": ["8b60db774"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SERVER-APPS", "source_hash": "9212ee37d24c56e4a527edf564a9cd22be611535d9d06c9b32aade75bb1ead41", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["8b60db774"]], "identity_text": "Have pg_receivewal and pg_recvlogical cleanly exit on SIGTERM (Christoph Berg) This signal is often used by systemd.", "commit_aliases": ["8b60db774"], "source_commits": ["8b60db774"], "source_entry_id": "16.0/changes/150", "db_id": "1b57aefc5a97e130754f9ea9cb8c1a93", "patch_ids": ["f5030682639d4cac3228de5f045cc0b0"], "statement_hash": "1ad67d6082c8643ed47ec712daabc198f8e31d250359fb01cc34a456bc4f34e4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-4ffb6d949fe14773", "migration": false}, {"id": "16.0-21c6e0cb261d7942", "cves": [], "html": "<p>\u9ed8\u8ba4\u6784\u5efa <acronym>ICU</acronym> \u652f\u6301\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/fcb21b3ac\">\u00a7</a></p>\n<p>\u8fd9\u79fb\u9664\u4e86<a href=\"/docs/16/installation.html\" title=\"\u7b2c\u00a017\u00a0\u7ae0\u00a0\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5\">\u6784\u5efa\u6807\u5fd7</a> <code>--with-icu</code> \u5e76\u589e\u52a0\u4e86\u6807\u5fd7 <code>--without-icu</code>\u3002</p>", "text": "\u9ed8\u8ba4\u6784\u5efa ICU \u652f\u6301\uff08Jeff Davis\uff09\u00a7 \u8fd9\u79fb\u9664\u4e86\u6784\u5efa\u6807\u5fd7 --with-icu \u5e76\u589e\u52a0\u4e86\u6807\u5fd7 --without-icu\u3002", "title": "\u9ed8\u8ba4\u6784\u5efa ICU \u652f\u6301", "commits": ["fcb21b3ac"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "9e694e6de72bef737bf338f219192c75eceffd7f5cf56c3db11fe6f1eff2174e", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["fcb21b3ac"]], "identity_text": "Build ICU support by default (Jeff Davis) This removes build flag --with-icu and adds flag --without-icu.", "commit_aliases": ["fcb21b3ac"], "source_commits": ["fcb21b3ac"], "source_entry_id": "16.0/changes/151", "db_id": "eccf368746a3b9e291e0319807fa104f", "patch_ids": ["cca80f802db967c81e65101b547cd0ad"], "statement_hash": "3c010ba98431dbe915477fbcbfe51bcbf39bcb51f1bfd778ddf20533b04e9e30", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-21c6e0cb261d7942", "migration": false}, {"id": "16.0-6ed40c8c2efc4e9c", "cves": [], "html": "<p>\u589e\u52a0\u5bf9 x86-64 \u67b6\u6784\u4e0a SSE2\uff08Streaming <acronym>SIMD</acronym> Extensions 2\uff09\u5411\u91cf\u8fd0\u7b97\u7684\u652f\u6301\uff08John Naylor\uff09<a href=\"https://postgr.es/c/56f2c7b58\">\u00a7</a></p>", "text": "\u589e\u52a0\u5bf9 x86-64 \u67b6\u6784\u4e0a SSE2\uff08Streaming SIMD Extensions 2\uff09\u5411\u91cf\u8fd0\u7b97\u7684\u652f\u6301\uff08John Naylor\uff09\u00a7", "title": "\u589e\u52a0\u5bf9 x86-64 \u67b6\u6784\u4e0a SSE2\uff08Streaming SIMD Extensions 2\uff09\u5411\u91cf\u8fd0\u7b97\u7684\u652f\u6301", "commits": ["56f2c7b58"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "abec9132ca310773bf9fd089cd2ecbe565d237d74eeff88938580d457ad6f453", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["56f2c7b58"]], "identity_text": "Add support for SSE2 (Streaming SIMD Extensions 2) vector operations on x86-64 architectures (John Naylor)", "commit_aliases": ["56f2c7b58"], "source_commits": ["56f2c7b58"], "source_entry_id": "16.0/changes/152", "db_id": "2d794d4b6c0f344e0a77bc63563c7ba3", "patch_ids": ["200445439e2a00405d3d8e1d775e36d4"], "statement_hash": "341d661486147a312fad287ae56d5b4739c9d5e953fe4e906a134707cb462210", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-6ed40c8c2efc4e9c", "migration": false}, {"id": "16.0-9769ca7e7ba62dc8", "cves": [], "html": "<p>\u589e\u52a0\u5bf9 <acronym>ARM</acronym> \u67b6\u6784\u4e0a Advanced <acronym>SIMD</acronym>\uff08Single Instruction Multiple Data\uff09\uff08<acronym>NEON</acronym>\uff09\u6307\u4ee4\u7684\u652f\u6301\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/82739d4a8\">\u00a7</a></p>", "text": "\u589e\u52a0\u5bf9 ARM \u67b6\u6784\u4e0a Advanced SIMD\uff08Single Instruction Multiple Data\uff09\uff08NEON\uff09\u6307\u4ee4\u7684\u652f\u6301\uff08Nathan Bossart\uff09\u00a7", "title": "\u589e\u52a0\u5bf9 ARM \u67b6\u6784\u4e0a Advanced SIMD\uff08Single Instruction Multiple Data\uff09\uff08NEON\uff09\u6307\u4ee4\u7684\u652f\u6301", "commits": ["82739d4a8"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "dd327c6dffb18cbbec92bb336a1bf279617868d8ee5d831c2b15cb8d2256a3da", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["82739d4a8"]], "identity_text": "Add support for Advanced SIMD (Single Instruction Multiple Data) (NEON) instructions on ARM architectures (Nathan Bossart)", "commit_aliases": ["82739d4a8"], "source_commits": ["82739d4a8"], "source_entry_id": "16.0/changes/153", "db_id": "4b0644b33e3730c26742bffd99b748bf", "patch_ids": ["bc9e666a11819a60a1468049f05cd69b"], "statement_hash": "a12959cb90be5ce3a287d69217c02ed77e59ab9ff8294e69f504ba3a597e0cbb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-9769ca7e7ba62dc8", "migration": false}, {"id": "16.0-6d0548667be8dae1", "cves": [], "html": "<p>\u4f7f\u7528 <span>MSVC</span> \u6784\u5efa\u7684 <span>Windows</span> \u4e8c\u8fdb\u5236\u6587\u4ef6\u4f7f\u7528 <code>RandomizedBaseAddress</code>\uff08<acronym>ASLR</acronym>\uff09\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/36389a060\">\u00a7</a></p>\n<p>\u8fd9\u5728 <span>MinGW</span> \u6784\u5efa\u4e2d\u5df2\u7ecf\u542f\u7528\u3002</p>", "text": "\u4f7f\u7528 MSVC \u6784\u5efa\u7684 Windows \u4e8c\u8fdb\u5236\u6587\u4ef6\u4f7f\u7528 RandomizedBaseAddress\uff08ASLR\uff09\uff08Michael Paquier\uff09\u00a7 \u8fd9\u5728 MinGW \u6784\u5efa\u4e2d\u5df2\u7ecf\u542f\u7528\u3002", "title": "\u4f7f\u7528 MSVC \u6784\u5efa\u7684 Windows \u4e8c\u8fdb\u5236\u6587\u4ef6\u4f7f\u7528 RandomizedBaseAddress\uff08ASLR\uff09", "commits": ["36389a060"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "da2513a12c645eb94fbca37ece030af801fcdd511344e45a7fca0f8629620151", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["36389a060"]], "identity_text": "Have Windows binaries built with MSVC use RandomizedBaseAddress (ASLR) (Michael Paquier) This was already enabled on MinGW builds.", "commit_aliases": ["36389a060"], "source_commits": ["36389a060"], "source_entry_id": "16.0/changes/154", "db_id": "ac79867824dc5d8492a706a6336316fc", "patch_ids": ["e7d0ee43b3a34f62f48b94c175419604"], "statement_hash": "06b407e9a1af6cf6ecffcc37d0c1176543b657fec0c50e6d89e97010c7418a4e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-6d0548667be8dae1", "migration": false}, {"id": "16.0-aa7e24592ac3ffbb", "cves": [], "html": "<p>\u9632\u6b62\u6269\u5c55\u5e93\u9ed8\u8ba4\u5bfc\u51fa\u5176\u7b26\u53f7\uff08Andres Freund\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/089480c07\">\u00a7</a> <a href=\"https://postgr.es/c/8cf64d35e\">\u00a7</a></p>\n<p>\u9700\u8981\u4ece\u6838\u5fc3\u540e\u7aef\u6216\u5176\u4ed6\u6269\u5c55\u8c03\u7528\u7684\u51fd\u6570\u73b0\u5728\u5fc5\u987b\u663e\u5f0f\u6807\u8bb0\u4e3a <code>PGDLLEXPORT</code>\u3002</p>", "text": "\u9632\u6b62\u6269\u5c55\u5e93\u9ed8\u8ba4\u5bfc\u51fa\u5176\u7b26\u53f7\uff08Andres Freund\uff0cTom Lane\uff09\u00a7 \u00a7 \u9700\u8981\u4ece\u6838\u5fc3\u540e\u7aef\u6216\u5176\u4ed6\u6269\u5c55\u8c03\u7528\u7684\u51fd\u6570\u73b0\u5728\u5fc5\u987b\u663e\u5f0f\u6807\u8bb0\u4e3a PGDLLEXPORT\u3002", "title": "\u9632\u6b62\u6269\u5c55\u5e93\u9ed8\u8ba4\u5bfc\u51fa\u5176\u7b26\u53f7", "commits": ["089480c07", "8cf64d35e"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "c2b749e5de93f1ed76c58612d55c414e8cb3c42ac7b76c7eb168369bc6bda8ee", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["089480c07"], ["8cf64d35e"]], "identity_text": "Prevent extension libraries from exporting their symbols by default (Andres Freund, Tom Lane) Functions that need to be called from the core backend or other extensions must now be explicitly marked PGDLLEXPORT.", "commit_aliases": ["089480c07", "8cf64d35e"], "source_commits": ["089480c07", "8cf64d35e"], "source_entry_id": "16.0/changes/155", "db_id": "612685809e6a30180a5d762db83d5a3a", "patch_ids": ["127303795d4b7ee358e134a13055cb7d", "284a8161c7511c69feaca80ca5fa5373"], "statement_hash": "821e8c4a87f48299f8640cbc1e915fa065b27f42c97fc1ae67bbf8574b9978e4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-aa7e24592ac3ffbb", "migration": false}, {"id": "16.0-94b859ede54e4b9e", "cves": [], "html": "<p>\u8981\u6c42 <span>Windows 10</span> \u6216\u66f4\u65b0\u7248\u672c\uff08Michael Paquier\uff0cJuan Jos\u00e9 Santamar\u00eda Flecha\uff09<a href=\"https://postgr.es/c/495ed0ef2\">\u00a7</a></p>\n<p>\u4e4b\u524d\u652f\u6301 <span>Windows Vista</span> \u548c <span>Windows XP</span>\u3002</p>", "text": "\u8981\u6c42 Windows 10 \u6216\u66f4\u65b0\u7248\u672c\uff08Michael Paquier\uff0cJuan Jos\u00e9 Santamar\u00eda Flecha\uff09\u00a7 \u4e4b\u524d\u652f\u6301 Windows Vista \u548c Windows XP\u3002", "title": "\u8981\u6c42 Windows 10 \u6216\u66f4\u65b0\u7248\u672c", "commits": ["495ed0ef2"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "51804cb9cad0e581920fe3bb675ecd4707186e90e28c9afabe8a572945e9993a", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["495ed0ef2"]], "identity_text": "Require Windows 10 or newer versions (Michael Paquier, Juan Jos\u00e9 Santamar\u00eda Flecha) Previously Windows Vista and Windows XP were supported.", "commit_aliases": ["495ed0ef2"], "source_commits": ["495ed0ef2"], "source_entry_id": "16.0/changes/156", "db_id": "0516cb65c04e151eeaf2beb3559450d8", "patch_ids": ["30b05c0d61d90be04a05fb62fbbb0ca0"], "statement_hash": "d7b241f5a49becc8c354a0ee530cf2fda4861d6766f37bd3a5faac8a0521cdd7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-94b859ede54e4b9e", "migration": false}, {"id": "16.0-8ec9802ab2a1a3f2", "cves": [], "html": "<p>\u8981\u6c42 <span>Perl</span> \u7248\u672c 5.14 \u6216\u66f4\u9ad8\uff08John Naylor\uff09<a href=\"https://postgr.es/c/4c1532763\">\u00a7</a></p>", "text": "\u8981\u6c42 Perl \u7248\u672c 5.14 \u6216\u66f4\u9ad8\uff08John Naylor\uff09\u00a7", "title": "\u8981\u6c42 Perl \u7248\u672c 5.14 \u6216\u66f4\u9ad8", "commits": ["4c1532763"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "87eddd05681a145a5282b774bf3c5d0fb1c27c4550bb31a5f6ddea8a2919b55f", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["4c1532763"]], "identity_text": "Require Perl version 5.14 or later (John Naylor)", "commit_aliases": ["4c1532763"], "source_commits": ["4c1532763"], "source_entry_id": "16.0/changes/157", "db_id": "a12f3cb06b58b43e5c9b14bd26df3637", "patch_ids": ["b1230b02833cbb4274a4f77ca2fea184"], "statement_hash": "1b8874e2e6a93edb071e2cd88fe0425be5e5a3a5fb9481c6b0bfe44c7a998b6c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-8ec9802ab2a1a3f2", "migration": false}, {"id": "16.0-3963bd625d502b52", "cves": [], "html": "<p>\u8981\u6c42 <span>Bison</span> \u7248\u672c 2.3 \u6216\u66f4\u9ad8\uff08John Naylor\uff09<a href=\"https://postgr.es/c/b086a47a2\">\u00a7</a></p>", "text": "\u8981\u6c42 Bison \u7248\u672c 2.3 \u6216\u66f4\u9ad8\uff08John Naylor\uff09\u00a7", "title": "\u8981\u6c42 Bison \u7248\u672c 2.3 \u6216\u66f4\u9ad8", "commits": ["b086a47a2"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "da0b6085d373f22fbf120da87214a24ed9c8c4bc6f27dd2484179882ae63c582", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["b086a47a2"]], "identity_text": "Require Bison version 2.3 or later (John Naylor)", "commit_aliases": ["b086a47a2"], "source_commits": ["b086a47a2"], "source_entry_id": "16.0/changes/158", "db_id": "8207e643f8230be7a96a57c6eeacdd06", "patch_ids": ["39d7931ab87f3fd54087758b02d5d4f0"], "statement_hash": "ae923f9fbc1bca1bb3526f9dd2eb9a46d0a649cd5dc8b2f0f14efeca891af394", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-3963bd625d502b52", "migration": false}, {"id": "16.0-412d655c52961617", "cves": [], "html": "<p>\u8981\u6c42 <span>Flex</span> \u7248\u672c 2.5.35 \u6216\u66f4\u9ad8\uff08John Naylor\uff09<a href=\"https://postgr.es/c/8b878bffa\">\u00a7</a></p>", "text": "\u8981\u6c42 Flex \u7248\u672c 2.5.35 \u6216\u66f4\u9ad8\uff08John Naylor\uff09\u00a7", "title": "\u8981\u6c42 Flex \u7248\u672c 2.5.35 \u6216\u66f4\u9ad8", "commits": ["8b878bffa"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "6bd8b0623d611736f454e5df095b08eb2f8dfe3fa7da5af7444230f3f60a1b4d", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["8b878bffa"]], "identity_text": "Require Flex version 2.5.35 or later (John Naylor)", "commit_aliases": ["8b878bffa"], "source_commits": ["8b878bffa"], "source_entry_id": "16.0/changes/159", "db_id": "ff47389343f90fb960ad3513580a9d32", "patch_ids": ["d4322292f5f1face9c09387b85e2f87a"], "statement_hash": "cd21d230ceeceb6fe7fc5e72e87ed2ee512dd65e9fab92a96a7d0798ce995a17", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-412d655c52961617", "migration": false}, {"id": "16.0-aea83bb06c3d3463", "cves": [], "html": "<p><acronym>GSSAPI</acronym> \u652f\u6301\u8981\u6c42 <acronym>MIT</acronym> Kerberos\uff08Stephen Frost\uff09<a href=\"https://postgr.es/c/f7431bca8\">\u00a7</a></p>", "text": "GSSAPI \u652f\u6301\u8981\u6c42 MIT Kerberos\uff08Stephen Frost\uff09\u00a7", "title": "GSSAPI \u652f\u6301\u8981\u6c42 MIT Kerberos", "commits": ["f7431bca8"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "5e74d9e1ac08ff2ee0d0c77014d149564fd9ee6f3017789eb235cd798659f83c", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["f7431bca8"]], "identity_text": "Require MIT Kerberos for GSSAPI support (Stephen Frost)", "commit_aliases": ["f7431bca8"], "source_commits": ["f7431bca8"], "source_entry_id": "16.0/changes/160", "db_id": "0a3494d8fcbb274b7ea09961b992fab7", "patch_ids": ["1ef21a835f5aed40e7fc57949d3497bc"], "statement_hash": "8a44c49ecb563b52bf978b633aaf4638b7be8fab401ef42d647ccc81d743a6b6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-aea83bb06c3d3463", "migration": false}, {"id": "16.0-65fb77a8688d8376", "cves": [], "html": "<p>\u79fb\u9664\u5bf9 <span>Visual Studio 2013</span> \u7684\u652f\u6301\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/6203583b7\">\u00a7</a></p>", "text": "\u79fb\u9664\u5bf9 Visual Studio 2013 \u7684\u652f\u6301\uff08Michael Paquier\uff09\u00a7", "title": "\u79fb\u9664\u5bf9 Visual Studio 2013 \u7684\u652f\u6301", "commits": ["6203583b7"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "fd11fe89b57ac23ab9ade372b581f476f5b2a088d29f18af4c6579a7ebb6f3fe", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["6203583b7"]], "identity_text": "Remove support for Visual Studio 2013 (Michael Paquier)", "commit_aliases": ["6203583b7"], "source_commits": ["6203583b7"], "source_entry_id": "16.0/changes/161", "db_id": "19302fd3f5cd2b989207192111cd6a79", "patch_ids": ["e9d173f380ca26792a17b546efdc65e5"], "statement_hash": "4724de50c0f212ce5c9c03594e248b4f7d9f723dee37f33a9d2e494ece0b7f01", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-65fb77a8688d8376", "migration": false}, {"id": "16.0-ddebe49ebb7e3f42", "cves": [], "html": "<p>\u79fb\u9664\u5bf9 <span>HP-UX</span> \u7684\u652f\u6301\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/9db300ce6\">\u00a7</a></p>", "text": "\u79fb\u9664\u5bf9 HP-UX \u7684\u652f\u6301\uff08Thomas Munro\uff09\u00a7", "title": "\u79fb\u9664\u5bf9 HP-UX \u7684\u652f\u6301", "commits": ["9db300ce6"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "2ed256216a33254a3891d427777d69d02c4bcb4445d641a586ca15fc950af266", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["9db300ce6"]], "identity_text": "Remove support for HP-UX (Thomas Munro)", "commit_aliases": ["9db300ce6"], "source_commits": ["9db300ce6"], "source_entry_id": "16.0/changes/162", "db_id": "f3456808e5c44ad6c8de74bec81b4a17", "patch_ids": ["1727a53e90e69c303a72ee8a4600bb7a"], "statement_hash": "3041824c77d9201cced85c2e1866ef82a4d36d76bc97b71e7243522c74fc46b9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-ddebe49ebb7e3f42", "migration": false}, {"id": "16.0-a9ce96015596086d", "cves": [], "html": "<p>\u79fb\u9664\u5bf9 <span>HP/Intel Itanium</span> \u7684\u652f\u6301\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/0ad5b48e5\">\u00a7</a></p>", "text": "\u79fb\u9664\u5bf9 HP/Intel Itanium \u7684\u652f\u6301\uff08Thomas Munro\uff09\u00a7", "title": "\u79fb\u9664\u5bf9 HP/Intel Itanium \u7684\u652f\u6301", "commits": ["0ad5b48e5"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "ae62778e785e87ea92471bacc6e76ec7a556f3e8fc8fb64389cd61d73c152962", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["0ad5b48e5"]], "identity_text": "Remove support for HP/Intel Itanium (Thomas Munro)", "commit_aliases": ["0ad5b48e5"], "source_commits": ["0ad5b48e5"], "source_entry_id": "16.0/changes/163", "db_id": "382377acd3a82adb1baae69e7638cb37", "patch_ids": ["3e73f6857310cdb47f88aed5552acf70"], "statement_hash": "ade8ee28dc6e075a884d679afefcbbb6a03b24e8619f07691075dd947aff12f2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-a9ce96015596086d", "migration": false}, {"id": "16.0-2bad60762fe8dfb9", "cves": [], "html": "<p>\u79fb\u9664\u5bf9 <span>M68K</span>\u3001<span>M88K</span>\u3001<span>M32R</span> \u548c <span>SuperH</span> <acronym>CPU</acronym> \u67b6\u6784\u7684\u652f\u6301\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/718aa43a4\">\u00a7</a> <a href=\"https://postgr.es/c/14168d3c6\">\u00a7</a></p>", "text": "\u79fb\u9664\u5bf9 M68K\u3001M88K\u3001M32R \u548c SuperH CPU \u67b6\u6784\u7684\u652f\u6301\uff08Thomas Munro\uff09\u00a7 \u00a7", "title": "\u79fb\u9664\u5bf9 M68K\u3001M88K\u3001M32R \u548c SuperH CPU \u67b6\u6784\u7684\u652f\u6301", "commits": ["14168d3c6", "718aa43a4"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "d4a3e51f1774276ad256108490cf19e5224c930cdcecb31a953d879aba7fabeb", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["14168d3c6"], ["718aa43a4"]], "identity_text": "Remove support for M68K, M88K, M32R, and SuperH CPU architectures (Thomas Munro)", "commit_aliases": ["14168d3c6", "718aa43a4"], "source_commits": ["14168d3c6", "718aa43a4"], "source_entry_id": "16.0/changes/164", "db_id": "9b6135150f2d258877aa4a5100739546", "patch_ids": ["0f043e336cef2c861e2654859f3f288a", "a9e3891b4b58a20ade993da981252310"], "statement_hash": "2f0ac03cc2f44cc7a6f9399aa1ef425aa4a94c3367cf1188e16f67f3022e7176", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-2bad60762fe8dfb9", "migration": false}, {"id": "16.0-0507742d4bf1dd20", "cves": [], "html": "<p>\u79fb\u9664<a href=\"/docs/16/libpq.html\" title=\"\u7b2c\u00a034\u00a0\u7ae0\u00a0libpq \u2014 C \u5e93\"><span>libpq</span></a>\u5bf9 <acronym>SCM</acronym> \u51ed\u8bc1\u8ba4\u8bc1\u7684\u652f\u6301\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/98ae2c84a\">\u00a7</a></p>\n<p>\u6b64\u8ba4\u8bc1\u65b9\u6cd5\u7684\u540e\u7aef\u652f\u6301\u5df2\u5728 <span>PostgreSQL</span> 9.1 \u4e2d\u79fb\u9664\u3002</p>", "text": "\u79fb\u9664libpq\u5bf9 SCM \u51ed\u8bc1\u8ba4\u8bc1\u7684\u652f\u6301\uff08Michael Paquier\uff09\u00a7 \u6b64\u8ba4\u8bc1\u65b9\u6cd5\u7684\u540e\u7aef\u652f\u6301\u5df2\u5728 PostgreSQL 9.1 \u4e2d\u79fb\u9664\u3002", "title": "\u79fb\u9664libpq\u5bf9 SCM \u51ed\u8bc1\u8ba4\u8bc1\u7684\u652f\u6301", "commits": ["98ae2c84a"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "02ba607fdc9fcb0eb30d93d1dfc4c30718952b971750c08f00de3518e0469d09", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["98ae2c84a"]], "identity_text": "Remove libpq support for SCM credential authentication (Michael Paquier) Backend support for this authentication method was removed in PostgresSQL 9.1.", "commit_aliases": ["98ae2c84a"], "source_commits": ["98ae2c84a"], "source_entry_id": "16.0/changes/165", "db_id": "50bd97d9b98a119d37434155e273e58b", "patch_ids": ["81e6b7fbf5237ee93ffb9425c2ca599a"], "statement_hash": "402d1b8bf70e2fea40d64ed5ac1672f579f8839de17a3022ee6084993cb09bf5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-0507742d4bf1dd20", "migration": false}, {"id": "16.0-d7148f062e96a8a4", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/16/install-meson.html\" title=\"17.4.\u00a0\u4f7f\u7528 Meson \u6784\u5efa\u548c\u5b89\u88c5\"><span>meson</span></a>\u6784\u5efa\u7cfb\u7edf\uff08Andres Freund\uff0cNazir Bilal Yavuz\uff0cPeter Eisentraut\uff09<a href=\"https://postgr.es/c/e6927270c\">\u00a7</a></p>\n<p>\u8fd9\u6700\u7ec8\u5c06\u53d6\u4ee3 <span>Autoconf</span> \u548c\u57fa\u4e8e <span>Windows</span> \u7684 <span>MSVC</span> \u6784\u5efa\u7cfb\u7edf\u3002</p>", "text": "\u589e\u52a0meson\u6784\u5efa\u7cfb\u7edf\uff08Andres Freund\uff0cNazir Bilal Yavuz\uff0cPeter Eisentraut\uff09\u00a7 \u8fd9\u6700\u7ec8\u5c06\u53d6\u4ee3 Autoconf \u548c\u57fa\u4e8e Windows \u7684 MSVC \u6784\u5efa\u7cfb\u7edf\u3002", "title": "\u589e\u52a0meson\u6784\u5efa\u7cfb\u7edf", "commits": ["e6927270c"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "bdb646773dfd004240b32c3cad76021b455c4e8f98757df6286d66e5a50faf8b", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["e6927270c"]], "identity_text": "Add meson build system (Andres Freund, Nazir Bilal Yavuz, Peter Eisentraut) This eventually will replace the Autoconf and Windows-based MSVC build systems.", "commit_aliases": ["e6927270c"], "source_commits": ["e6927270c"], "source_entry_id": "16.0/changes/166", "db_id": "6637643f9018877718bb4b08cc1ab82b", "patch_ids": ["d7733b15b35adf96c5abeec5387df9ec"], "statement_hash": "0e2fd1db9fa7dff681d0c85dbfff38068f191c606a302372e53f5631c09cb0f1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-d7148f062e96a8a4", "migration": false}, {"id": "16.0-6f760afaff91c606", "cves": [], "html": "<p>\u5141\u8bb8\u63a7\u5236\u6784\u5efa\u7cfb\u7edf\u4f7f\u7528\u7684 <span>openssl</span> \u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u4f4d\u7f6e\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/c8e4030d1\">\u00a7</a></p>\n<p>\u5c06\u67e5\u627e <span>openssl</span> \u7a0b\u5e8f\u6539\u4e3a\u7531 <span>configure</span> \u6216 <span>meson</span> \u9009\u9879\u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8\u63a7\u5236\u6784\u5efa\u7cfb\u7edf\u4f7f\u7528\u7684 openssl \u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u4f4d\u7f6e\uff08Peter Eisentraut\uff09\u00a7 \u5c06\u67e5\u627e openssl \u7a0b\u5e8f\u6539\u4e3a\u7531 configure \u6216 meson \u9009\u9879\u63a7\u5236\u3002", "title": "\u5141\u8bb8\u63a7\u5236\u6784\u5efa\u7cfb\u7edf\u4f7f\u7528\u7684 openssl \u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u4f4d\u7f6e", "commits": ["c8e4030d1"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "f47952ee198a9d0df00a98ea78c2f7a0e68815207c3d4d25a1c8e97ce1d059d0", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["c8e4030d1"]], "identity_text": "Allow control of the location of the openssl binary used by the build system (Peter Eisentraut) Make finding openssl program a configure or meson option", "commit_aliases": ["c8e4030d1"], "source_commits": ["c8e4030d1"], "source_entry_id": "16.0/changes/167", "db_id": "ac7777ca261142bd3dc932d66a62228d", "patch_ids": ["3e32dfad634c75269d6f33d5f93d79df"], "statement_hash": "7dde45d0c95f902e8f20472399a234f78a6948f4190b6ff3852c893dc098cfdd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-6f760afaff91c606", "migration": false}, {"id": "16.0-ab597ce7e36225ce", "cves": [], "html": "<p>\u589e\u52a0\u6784\u5efa\u9009\u9879\u4ee5\u5141\u8bb8\u6d4b\u8bd5\u5c0f\u8868\u6bb5\u5927\u5c0f\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/d3b111e32\">\u00a7</a></p>\n<p>\u6784\u5efa\u9009\u9879\u4e3a <a href=\"/docs/16/install-make.html#CONFIGURE-OPTION-WITH-SEGSIZE\"><code>--with-segsize-blocks</code></a> \u548c <code>-Dsegsize_blocks</code>\u3002</p>", "text": "\u589e\u52a0\u6784\u5efa\u9009\u9879\u4ee5\u5141\u8bb8\u6d4b\u8bd5\u5c0f\u8868\u6bb5\u5927\u5c0f\uff08Andres Freund\uff09\u00a7 \u6784\u5efa\u9009\u9879\u4e3a --with-segsize-blocks \u548c -Dsegsize_blocks\u3002", "title": "\u589e\u52a0\u6784\u5efa\u9009\u9879\u4ee5\u5141\u8bb8\u6d4b\u8bd5\u5c0f\u8868\u6bb5\u5927\u5c0f", "commits": ["d3b111e32"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "4f4635c21cfa7f17d34b8b3a3c31501fc033dc41e3b02f253ade97e2365f054c", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["d3b111e32"]], "identity_text": "Add build option to allow testing of small table segment sizes (Andres Freund) The build options are --with-segsize-blocks and -Dsegsize_blocks.", "commit_aliases": ["d3b111e32"], "source_commits": ["d3b111e32"], "source_entry_id": "16.0/changes/168", "db_id": "c15f4443f3fe5dba9bfffdd79f109406", "patch_ids": ["27dc3a24c4ad8216ff8e6c2d81058bc6"], "statement_hash": "d300f2ad7753f7e6681020bcdbed9669c3847adbf02cc581df393bca2dee46cb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-ab597ce7e36225ce", "migration": false}, {"id": "16.0-4344f3a76ba7dc76", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/16/source.html\" title=\"\u7b2c\u00a056\u00a0\u7ae0\u00a0PostgreSQL \u7f16\u7801\u7ea6\u5b9a\"><span>pgindent</span></a>\u9009\u9879\uff08Andrew Dunstan\uff09<a href=\"https://postgr.es/c/b90f0b574\">\u00a7</a> <a href=\"https://postgr.es/c/62e1e28bf\">\u00a7</a> <a href=\"https://postgr.es/c/124937163\">\u00a7</a> <a href=\"https://postgr.es/c/a1c4cd6f2\">\u00a7</a> <a href=\"https://postgr.es/c/068a243b7\">\u00a7</a> <a href=\"https://postgr.es/c/dab07e8c6\">\u00a7</a> <a href=\"https://postgr.es/c/b16259b3c\">\u00a7</a></p>\n<p>\u65b0\u9009\u9879\u4e3a <code>--show-diff</code>\u3001<code>--silent-diff</code>\u3001<code>--commit</code> \u548c <code>--help</code>\uff0c\u5e76\u5141\u8bb8\u591a\u4e2a <code>--exclude</code> \u9009\u9879\u3002\u540c\u65f6\u8981\u6c42\u663e\u5f0f\u6307\u5b9a typedef \u6587\u4ef6\u3002\u9009\u9879 <code>--code-base</code> \u548c <code>--build</code> \u4e5f\u5df2\u79fb\u9664\u3002</p>", "text": "\u589e\u52a0pgindent\u9009\u9879\uff08Andrew Dunstan\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u65b0\u9009\u9879\u4e3a --show-diff\u3001--silent-diff\u3001--commit \u548c --help\uff0c\u5e76\u5141\u8bb8\u591a\u4e2a --exclude \u9009\u9879\u3002\u540c\u65f6\u8981\u6c42\u663e\u5f0f\u6307\u5b9a typedef \u6587\u4ef6\u3002\u9009\u9879 --code-base \u548c --build \u4e5f\u5df2\u79fb\u9664\u3002", "title": "\u589e\u52a0pgindent\u9009\u9879", "commits": ["068a243b7", "124937163", "62e1e28bf", "a1c4cd6f2", "b16259b3c", "b90f0b574", "dab07e8c6"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "e28af1938d3bb831ceafe09135f8a6d3207bbf32e6e6316cab2de1f844413b1d", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["068a243b7"], ["124937163"], ["62e1e28bf"], ["a1c4cd6f2"], ["b16259b3c"], ["b90f0b574"], ["dab07e8c6"]], "identity_text": "Add pgindent options (Andrew Dunstan) The new options are --show-diff, --silent-diff, --commit, and --help, and allow multiple --exclude options. Also require the typedef file to be explicitly specified. Options --code-base and --build were also removed.", "commit_aliases": ["068a243b7", "124937163", "62e1e28bf", "a1c4cd6f2", "b16259b3c", "b90f0b574", "dab07e8c6"], "source_commits": ["068a243b7", "124937163", "62e1e28bf", "a1c4cd6f2", "b16259b3c", "b90f0b574", "dab07e8c6"], "source_entry_id": "16.0/changes/169", "db_id": "ee802106c37e5abe96e705481457eaff", "patch_ids": ["4f6da09484b6dc2c7b05f98f0f117536", "84f50fc593dd7ebe18b71a624124a019", "aa902872d27c5a56ac5cd80ab654ceb0", "c13e8b2573e58c7ebf02df740d6a4379", "d7173bc03a6f7ca0422d90bfcde79702", "ef34a7a4ddfd432627d7ec39810e9414", "fc513af979c33475c48903545a8a9de0"], "statement_hash": "87faeee6ab41e1518467ce4c537075d550d998fd692d9c04e2034e266e2bb7a1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-4344f3a76ba7dc76", "migration": false}, {"id": "16.0-b7bf7759e96348a7", "cves": [], "html": "<p>\u5c06<a href=\"/docs/16/source.html\" title=\"\u7b2c\u00a056\u00a0\u7ae0\u00a0PostgreSQL \u7f16\u7801\u7ea6\u5b9a\"><span>pg_bsd_indent</span></a>\u6e90\u4ee3\u7801\u6dfb\u52a0\u5230\u4e3b\u4ee3\u7801\u6811\u4e2d\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/4e831f4ce\">\u00a7</a></p>", "text": "\u5c06pg_bsd_indent\u6e90\u4ee3\u7801\u6dfb\u52a0\u5230\u4e3b\u4ee3\u7801\u6811\u4e2d\uff08Tom Lane\uff09\u00a7", "title": "\u5c06pg_bsd_indent\u6e90\u4ee3\u7801\u6dfb\u52a0\u5230\u4e3b\u4ee3\u7801\u6811\u4e2d", "commits": ["4e831f4ce"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "8e82502c226b09e51bc70e1562bb5faba3fa3e72d742e34844e77bdae8e3a92a", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["4e831f4ce"]], "identity_text": "Add pg_bsd_indent source code to the main tree (Tom Lane)", "commit_aliases": ["4e831f4ce"], "source_commits": ["4e831f4ce"], "source_entry_id": "16.0/changes/170", "db_id": "07e9fd22578a6a7228cad7e5c9121673", "patch_ids": ["d839508c44b1f7cca4578431ad97f2d2"], "statement_hash": "e2234dcde0d27dbcc053d62e963006473597622033d0dd68992771b2c1361e31", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-b7bf7759e96348a7", "migration": false}, {"id": "16.0-02e96df1d28196ba", "cves": [], "html": "<p>\u6539\u8fdb <span>make_ctags</span> \u548c <span>make_etags</span>\uff08Yugo Nagata\uff09<a href=\"https://postgr.es/c/d1e2a380c\">\u00a7</a></p>", "text": "\u6539\u8fdb make_ctags \u548c make_etags\uff08Yugo Nagata\uff09\u00a7", "title": "\u6539\u8fdb make_ctags \u548c make_etags", "commits": ["d1e2a380c"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "50ec0f1a888802dd7e7e243feb97d38bd2027b9879d65c5528c44a4107e16caf", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["d1e2a380c"]], "identity_text": "Improve make_ctags and make_etags (Yugo Nagata)", "commit_aliases": ["d1e2a380c"], "source_commits": ["d1e2a380c"], "source_entry_id": "16.0/changes/171", "db_id": "432f2be2ee13ad4a8605d2b9b21fdda2", "patch_ids": ["aa40a42a11d4d96bcc9078797a03b21b"], "statement_hash": "d5c80cdc7b7dbcd6cfd8b5222667b32663b0d18744ff2d4a9ff8dfdc200d50a1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-02e96df1d28196ba", "migration": false}, {"id": "16.0-ac14ac51983cf957", "cves": [], "html": "<p>\u8c03\u6574 <a href=\"/docs/16/catalog-pg-attribute.html\" title=\"53.7.\u00a0pg_attribute\"><code>pg_attribute</code></a> \u5217\u4ee5\u63d0\u9ad8\u6548\u7387\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/90189eefc\">\u00a7</a></p>", "text": "\u8c03\u6574 pg_attribute \u5217\u4ee5\u63d0\u9ad8\u6548\u7387\uff08Peter Eisentraut\uff09\u00a7", "title": "\u8c03\u6574 pg_attribute \u5217\u4ee5\u63d0\u9ad8\u6548\u7387", "commits": ["90189eefc"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-SOURCE-CODE", "source_hash": "5d91d743c9da7d2928da7d212016b8454a1fe6f0dd642d690f8cff84961e5ae8", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["90189eefc"]], "identity_text": "Adjust pg_attribute columns for efficiency (Peter Eisentraut)", "commit_aliases": ["90189eefc"], "source_commits": ["90189eefc"], "source_entry_id": "16.0/changes/172", "db_id": "3d738d036aea5b6bd5bf67efa919e030", "patch_ids": ["b0383189fa398b253b6ac5a602efee25"], "statement_hash": "d389d890844426bb6016b655d1ee16ad1cd1d357d31f61667b5e8f93efec8b30", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-ac14ac51983cf957", "migration": false}, {"id": "16.0-0df7bd481110b49d", "cves": [], "html": "<p>\u6539\u8fdb\u5bf9\u5e03\u5c14\u5217\u4e0a\u6269\u5c55\u7d22\u5f15\u7684\u4f7f\u7528\uff08Zongliang Quan\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/ff720a597\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5bf9\u5e03\u5c14\u5217\u4e0a\u6269\u5c55\u7d22\u5f15\u7684\u4f7f\u7528\uff08Zongliang Quan\uff0cTom Lane\uff09\u00a7", "title": "\u6539\u8fdb\u5bf9\u5e03\u5c14\u5217\u4e0a\u6269\u5c55\u7d22\u5f15\u7684\u4f7f\u7528", "commits": ["ff720a597"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "dea62a1a85bf03855fe0befbc467c83be98d8bbcd077b3012bfd6bbb11af72a7", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["ff720a597"]], "identity_text": "Improve use of extension-based indexes on boolean columns (Zongliang Quan, Tom Lane)", "commit_aliases": ["ff720a597"], "source_commits": ["ff720a597"], "source_entry_id": "16.0/changes/173", "db_id": "31f7afdafbe88e548de15afd1969656f", "patch_ids": ["ababd6c74d64b5250021d34418dacb9c"], "statement_hash": "8c9ae64c886a90a141bfe63321e204b6ff996c91a05b24d5304fed18f5cb7c2e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-0df7bd481110b49d", "migration": false}, {"id": "16.0-96c2df2a1d585988", "cves": [], "html": "<p>\u5411<a href=\"/docs/16/fuzzystrmatch.html\" title=\"F.17.\u00a0fuzzystrmatch \u2014 \u786e\u5b9a\u5b57\u7b26\u4e32\u7684\u76f8\u4f3c\u6027\u548c\u8ddd\u79bb\"><span>fuzzystrmatch</span></a>\u6dfb\u52a0 Daitch-Mokotoff Soundex \u652f\u6301\uff08Dag Lem\uff09<a href=\"https://postgr.es/c/a290378a3\">\u00a7</a></p>", "text": "\u5411fuzzystrmatch\u6dfb\u52a0 Daitch-Mokotoff Soundex \u652f\u6301\uff08Dag Lem\uff09\u00a7", "title": "\u5411fuzzystrmatch\u6dfb\u52a0 Daitch-Mokotoff Soundex \u652f\u6301", "commits": ["a290378a3"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "5b8a63597eccc10bfad2a35b33e6651b9963fdbcc9bd6ec5f5eb1e1c0f559507", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["a290378a3"]], "identity_text": "Add support for Daitch-Mokotoff Soundex to fuzzystrmatch (Dag Lem)", "commit_aliases": ["a290378a3"], "source_commits": ["a290378a3"], "source_entry_id": "16.0/changes/174", "db_id": "254a1cf73e2bdd0335f3f941bd9245d4", "patch_ids": ["7d6f4c4cd42290ef25dc47ddafac0cf3"], "statement_hash": "14ff2cdcf41c500e25861a7be8da3118f8cd1e1b68ede9cd359bcc49a8ef7428", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-96c2df2a1d585988", "migration": false}, {"id": "16.0-f8fbd4feebcbf509", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/16/auto-explain.html\" title=\"F.4.\u00a0auto_explain \u2014 \u8bb0\u5f55\u6162\u67e5\u8be2\u7684\u6267\u884c\u8ba1\u5212\"><span>auto_explain</span></a>\u8bb0\u5f55\u4f20\u9012\u7ed9\u53c2\u6570\u5316\u8bed\u53e5\u7684\u503c\uff08Dagfinn Ilmari Manns\u00e5ker\uff09<a href=\"https://postgr.es/c/d4bfe4128\">\u00a7</a></p>\n<p>\u8fd9\u5f71\u54cd\u4f7f\u7528\u670d\u52a1\u5668\u7aef <a href=\"/docs/16/sql-prepare.html\" title=\"PREPARE\"><code>PREPARE</code></a>/<a href=\"/docs/16/sql-execute.html\" title=\"EXECUTE\"><code>EXECUTE</code></a> \u7684\u67e5\u8be2\uff0c\u4ee5\u53ca\u5ba2\u6237\u7aef\u901a\u8fc7 Parse/Bind \u534f\u8bae\u6d88\u606f\u53d1\u51fa\u7684\u67e5\u8be2\u3002\u65e5\u5fd7\u8bb0\u5f55\u7531 <a href=\"/docs/16/auto-explain.html#AUTO-EXPLAIN-CONFIGURATION-PARAMETERS-LOG-PARAMETER-MAX-LENGTH\"><code>auto_explain.log_parameter_max_length</code></a> \u63a7\u5236\uff1b\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u67e5\u8be2\u53c2\u6570\u8bb0\u5f55\u65f6\u4e0d\u53d7\u957f\u5ea6\u9650\u5236\u3002</p>", "text": "\u5141\u8bb8auto_explain\u8bb0\u5f55\u4f20\u9012\u7ed9\u53c2\u6570\u5316\u8bed\u53e5\u7684\u503c\uff08Dagfinn Ilmari Manns\u00e5ker\uff09\u00a7 \u8fd9\u5f71\u54cd\u4f7f\u7528\u670d\u52a1\u5668\u7aef PREPARE/EXECUTE \u7684\u67e5\u8be2\uff0c\u4ee5\u53ca\u5ba2\u6237\u7aef\u901a\u8fc7 Parse/Bind \u534f\u8bae\u6d88\u606f\u53d1\u51fa\u7684\u67e5\u8be2\u3002\u65e5\u5fd7\u8bb0\u5f55\u7531 auto_explain.log_parameter_max_length \u63a7\u5236\uff1b\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u67e5\u8be2\u53c2\u6570\u8bb0\u5f55\u65f6\u4e0d\u53d7\u957f\u5ea6\u9650\u5236\u3002", "title": "\u5141\u8bb8auto_explain\u8bb0\u5f55\u4f20\u9012\u7ed9\u53c2\u6570\u5316\u8bed\u53e5\u7684\u503c", "commits": ["d4bfe4128"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "48b77b080a3f9377a78a4b75df9f53d42725d9d3fe2536837078caf3b0e9fc9c", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["d4bfe4128"]], "identity_text": "Allow auto_explain to log values passed to parameterized statements (Dagfinn Ilmari Manns\u00e5ker) This affects queries using server-side PREPARE/EXECUTE and client-side parse/bind. Logging is controlled by auto_explain.log_parameter_max_length; by default query parameters will be logged with no length restriction.", "commit_aliases": ["d4bfe4128"], "source_commits": ["d4bfe4128"], "source_entry_id": "16.0/changes/175", "db_id": "633896429b6e29feaf172908a0955446", "patch_ids": ["d4e8ce0efd4537ed99bd43cb1b84f6bc"], "statement_hash": "0d9b8c1482c2191ee63dc99d9625e5b811086ceac810cdd3dedab92fdb38ede2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-f8fbd4feebcbf509", "migration": false}, {"id": "16.0-425c23a516bd0420", "cves": [], "html": "<p>\u4f7f<a href=\"/docs/16/auto-explain.html\" title=\"F.4.\u00a0auto_explain \u2014 \u8bb0\u5f55\u6162\u67e5\u8be2\u7684\u6267\u884c\u8ba1\u5212\"><span>auto_explain</span></a>\u7684 <code>log_verbose</code> \u6a21\u5f0f\u9075\u5b88 <a href=\"/docs/16/runtime-config-statistics.html#GUC-COMPUTE-QUERY-ID\"><code>compute_query_id</code></a> \u7684\u503c\uff08Atsushi Torikoshi\uff09<a href=\"https://postgr.es/c/9d2d9728b\">\u00a7</a></p>\n<p>\u4e4b\u524d\u5373\u4f7f\u542f\u7528\u4e86 <code>compute_query_id</code>\uff0c<a href=\"/docs/16/auto-explain.html#AUTO-EXPLAIN-CONFIGURATION-PARAMETERS-LOG-VERBOSE\"><code>log_verbose</code></a> \u4e5f\u4e0d\u663e\u793a\u67e5\u8be2\u6807\u8bc6\u7b26\u3002</p>", "text": "\u4f7fauto_explain\u7684 log_verbose \u6a21\u5f0f\u9075\u5b88 compute_query_id \u7684\u503c\uff08Atsushi Torikoshi\uff09\u00a7 \u4e4b\u524d\u5373\u4f7f\u542f\u7528\u4e86 compute_query_id\uff0clog_verbose \u4e5f\u4e0d\u663e\u793a\u67e5\u8be2\u6807\u8bc6\u7b26\u3002", "title": "\u4f7fauto_explain\u7684 log_verbose \u6a21\u5f0f\u9075\u5b88 compute_query_id \u7684\u503c", "commits": ["9d2d9728b"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "39383b73ebd2fe5454f0e6a8c3900baff7b847adf2d4840c2641c7ddbb6f465a", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["9d2d9728b"]], "identity_text": "Have auto_explain's log_verbose mode honor the value of compute_query_id (Atsushi Torikoshi) Previously even if compute_query_id was enabled, log_verbose was not showing the query identifier.", "commit_aliases": ["9d2d9728b"], "source_commits": ["9d2d9728b"], "source_entry_id": "16.0/changes/176", "db_id": "f46aed7f1cc334819da73d6d6002a150", "patch_ids": ["ad75e920b0464af86592ee7143b058d8"], "statement_hash": "eb624388b8da96d2fd4403997354a45b87375c99dbfc5e946d93e18d8f8cf5b7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-425c23a516bd0420", "migration": false}, {"id": "16.0-eab6a0962e2e92bc", "cves": [], "html": "<p>\u5c06<a href=\"/docs/16/ltree.html\" title=\"F.23.\u00a0ltree \u2014 \u5c42\u6b21\u6811\u72b6\u6570\u636e\u7c7b\u578b\"><span>ltree</span></a>\u6807\u7b7e\u7684\u6700\u5927\u957f\u5ea6\u4ece 256 \u6539\u4e3a 1000 \u5e76\u5141\u8bb8\u8fde\u5b57\u7b26\uff08Garen Torikian\uff09<a href=\"https://postgr.es/c/b1665bf01\">\u00a7</a></p>", "text": "\u5c06ltree\u6807\u7b7e\u7684\u6700\u5927\u957f\u5ea6\u4ece 256 \u6539\u4e3a 1000 \u5e76\u5141\u8bb8\u8fde\u5b57\u7b26\uff08Garen Torikian\uff09\u00a7", "title": "\u5c06ltree\u6807\u7b7e\u7684\u6700\u5927\u957f\u5ea6\u4ece 256 \u6539\u4e3a 1000 \u5e76\u5141\u8bb8\u8fde\u5b57\u7b26", "commits": ["b1665bf01"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "a4f68c9c92632f55e49d81bcf3f0e73610718eb1883554b61007882cf31db42b", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["b1665bf01"]], "identity_text": "Change the maximum length of ltree labels from 256 to 1000 and allow hyphens (Garen Torikian)", "commit_aliases": ["b1665bf01"], "source_commits": ["b1665bf01"], "source_entry_id": "16.0/changes/177", "db_id": "44267ad930560070eb40e286ef515cf3", "patch_ids": ["ca89d73aa823643f3ec8ed479a669315"], "statement_hash": "c327fb5ff064d4cde924cb165166b87a8ae064d534d53e4dcbc26e618af07309", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-eab6a0962e2e92bc", "migration": false}, {"id": "16.0-6246a30a6d262a08", "cves": [], "html": "<p>\u4f7f <a href=\"/docs/16/pgstatstatements.html\" title=\"F.32.\u00a0pg_stat_statements \u2014 \u8ddf\u8e2a SQL \u8ba1\u5212\u548c\u6267\u884c\u7edf\u8ba1\u4fe1\u606f\"><code>pg_stat_statements</code></a> \u89c4\u8303\u5316\u5de5\u5177\u547d\u4ee4\u4e2d\u4f7f\u7528\u7684\u5e38\u91cf\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/daa8365a9\">\u00a7</a></p>\n<p>\u4e4b\u524d\u663e\u793a\u7684\u662f\u5e38\u91cf\u800c\u975e\u5360\u4f4d\u7b26\uff0c\u5982 <code>$1</code>\u3002</p>", "text": "\u4f7f pg_stat_statements \u89c4\u8303\u5316\u5de5\u5177\u547d\u4ee4\u4e2d\u4f7f\u7528\u7684\u5e38\u91cf\uff08Michael Paquier\uff09\u00a7 \u4e4b\u524d\u663e\u793a\u7684\u662f\u5e38\u91cf\u800c\u975e\u5360\u4f4d\u7b26\uff0c\u5982 $1\u3002", "title": "\u4f7f pg_stat_statements \u89c4\u8303\u5316\u5de5\u5177\u547d\u4ee4\u4e2d\u4f7f\u7528\u7684\u5e38\u91cf", "commits": ["daa8365a9"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "49995820523a09bd11601118cb61842e8cf655004598791e2660df8bd90d07ff", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["daa8365a9"]], "identity_text": "Have pg_stat_statements normalize constants used in utility commands (Michael Paquier) Previously constants appeared instead of placeholders, e.g., $1.", "commit_aliases": ["daa8365a9"], "source_commits": ["daa8365a9"], "source_entry_id": "16.0/changes/178", "db_id": "c2733cec1b4607015468475a293c6068", "patch_ids": ["b37fdd8cf6e898a1025c5e1ce82d5e60"], "statement_hash": "2ce1d1f073a525ad0e939ad542f4362bb63ba7649e68ea55f05e1986f180b4f1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-6246a30a6d262a08", "migration": false}, {"id": "16.0-827492f28514f837", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/16/pgwalinspect.html\" title=\"F.37.\u00a0pg_walinspect \u2014 WAL \u7684\u5e95\u5c42\u68c0\u67e5\"><span>pg_walinspect</span></a>\u51fd\u6570 <a href=\"/docs/16/pgwalinspect.html#PGWALINSPECT-FUNCS-PG-GET-WAL-BLOCK-INFO\"><code>pg_get_wal_block_info()</code></a> \u4ee5\u62a5\u544a <acronym>WAL</acronym> \u5757\u4fe1\u606f\uff08Michael Paquier\uff0cMelanie Plageman\uff0cBharath Rupireddy\uff09<a href=\"https://postgr.es/c/c31cf1c03\">\u00a7</a> <a href=\"https://postgr.es/c/9ecb134a9\">\u00a7</a> <a href=\"https://postgr.es/c/122376f02\">\u00a7</a> <a href=\"https://postgr.es/c/df4f3ab51\">\u00a7</a></p>", "text": "\u589e\u52a0pg_walinspect\u51fd\u6570 pg_get_wal_block_info() \u4ee5\u62a5\u544a WAL \u5757\u4fe1\u606f\uff08Michael Paquier\uff0cMelanie Plageman\uff0cBharath Rupireddy\uff09\u00a7 \u00a7 \u00a7 \u00a7", "title": "\u589e\u52a0pg_walinspect\u51fd\u6570 pg_get_wal_block_info() \u4ee5\u62a5\u544a WAL \u5757\u4fe1\u606f", "commits": ["122376f02", "9ecb134a9", "c31cf1c03", "df4f3ab51"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "a1c14b61de7dcaebb52ca25381636ed16f0114b756048c8030d0e7eafcb7f77e", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["122376f02"], ["9ecb134a9"], ["c31cf1c03"], ["df4f3ab51"]], "identity_text": "Add pg_walinspect function pg_get_wal_block_info() to report WAL block information (Michael Paquier, Melanie Plageman, Bharath Rupireddy)", "commit_aliases": ["122376f02", "9ecb134a9", "c31cf1c03", "df4f3ab51"], "source_commits": ["122376f02", "9ecb134a9", "c31cf1c03", "df4f3ab51"], "source_entry_id": "16.0/changes/179", "db_id": "66d28e64e06ea2e905db81569dfd075d", "patch_ids": ["522550f5c9f3bf942d74b2b7a02f945f", "abb169526926bbd78c240734d131a314", "dad9009e9398d5f047c2f7992c74e510", "e047baaa2c6e3deb558c7b3f2eb6d244"], "statement_hash": "7acacdc722fd02564942bdc825737eca043ab193b6c2b71461fa2b25c9187630", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-827492f28514f837", "migration": false}, {"id": "16.0-074fc687c63c2759", "cves": [], "html": "<p>\u66f4\u6539<a href=\"/docs/16/pgwalinspect.html\" title=\"F.37.\u00a0pg_walinspect \u2014 WAL \u7684\u5e95\u5c42\u68c0\u67e5\"><span>pg_walinspect</span></a>\u51fd\u6570 <a href=\"/docs/16/pgwalinspect.html#PGWALINSPECT-FUNCS-PG-GET-WAL-RECORDS-INFO\"><code>pg_get_wal_records_info()</code></a> \u548c <a href=\"/docs/16/pgwalinspect.html#PGWALINSPECT-FUNCS-PG-GET-WAL-STATS\"><code>pg_get_wal_stats()</code></a> \u89e3\u91ca\u7ed3\u675f <acronym>LSN</acronym> \u7684\u65b9\u5f0f\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/5c1b66280\">\u00a7</a></p>\n<p>\u4e4b\u524d\u8868\u793a\u4e0d\u5b58\u5728\u7684 <acronym>WAL</acronym> \u4f4d\u7f6e\u7684\u7ed3\u675f <acronym>LSN</acronym> \u4f1a\u4ea7\u751f\u9519\u8bef\uff0c\u800c\u73b0\u5728\u5c06\u88ab\u89e3\u91ca\u4e3a <acronym>WAL</acronym> \u7684\u672b\u5c3e\u3002</p>", "text": "\u66f4\u6539pg_walinspect\u51fd\u6570 pg_get_wal_records_info() \u548c pg_get_wal_stats() \u89e3\u91ca\u7ed3\u675f LSN \u7684\u65b9\u5f0f\uff08Bharath Rupireddy\uff09\u00a7 \u4e4b\u524d\u8868\u793a\u4e0d\u5b58\u5728\u7684 WAL \u4f4d\u7f6e\u7684\u7ed3\u675f LSN \u4f1a\u4ea7\u751f\u9519\u8bef\uff0c\u800c\u73b0\u5728\u5c06\u88ab\u89e3\u91ca\u4e3a WAL \u7684\u672b\u5c3e\u3002", "title": "\u66f4\u6539pg_walinspect\u51fd\u6570 pg_get_wal_records_info() \u548c pg_get_wal_stats() \u89e3\u91ca\u7ed3\u675f LSN \u7684\u65b9\u5f0f", "commits": ["5c1b66280"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "939805f8c5de3f11255833b531bc678ba8d3a5ce0b54c1b8dc6dbd2bfcc12a35", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["5c1b66280"]], "identity_text": "Change how pg_walinspect functions pg_get_wal_records_info() and pg_get_wal_stats() interpret ending LSNs (Bharath Rupireddy) Previously ending LSNs which represent nonexistent WAL locations would generate an error, while they will now be interpreted as the end of the WAL.", "commit_aliases": ["5c1b66280"], "source_commits": ["5c1b66280"], "source_entry_id": "16.0/changes/180", "db_id": "95ce3c27034083611423b540747ddc44", "patch_ids": ["c5d8dc1de10576f0de896e9cd38e3777"], "statement_hash": "d17735409773cf2bdf5f70f749933ebf775bd6d3309b2a2c46fab3d810ea115b", "relations": [{"rule": 2, "type": "related", "target": "41a03866a7fb689d27c47b605f7199e1", "evidence": {"same_day": true, "patch_ids": ["c5d8dc1de10576f0de896e9cd38e3777"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-074fc687c63c2759", "migration": false}, {"id": "16.0-f964da733c830e01", "cves": [], "html": "<p>\u5728<a href=\"/docs/16/pgwalinspect.html\" title=\"F.37.\u00a0pg_walinspect \u2014 WAL \u7684\u5e95\u5c42\u68c0\u67e5\"><span>pg_walinspect</span></a>\u548c<a href=\"/docs/16/pgwaldump.html\" title=\"pg_waldump\"><span>pg_waldump</span></a>\u4e2d\u6dfb\u52a0 <acronym>WAL</acronym> \u8bb0\u5f55\u7684\u8be6\u7ec6\u63cf\u8ff0\uff08Melanie Plageman\uff0cPeter Geoghegan\uff09<a href=\"https://postgr.es/c/7d8219a44\">\u00a7</a> <a href=\"https://postgr.es/c/1c453cfd8\">\u00a7</a> <a href=\"https://postgr.es/c/96149a180\">\u00a7</a> <a href=\"https://postgr.es/c/50547a3fa\">\u00a7</a></p>", "text": "\u5728pg_walinspect\u548cpg_waldump\u4e2d\u6dfb\u52a0 WAL \u8bb0\u5f55\u7684\u8be6\u7ec6\u63cf\u8ff0\uff08Melanie Plageman\uff0cPeter Geoghegan\uff09\u00a7 \u00a7 \u00a7 \u00a7", "title": "\u5728pg_walinspect\u548cpg_waldump\u4e2d\u6dfb\u52a0 WAL \u8bb0\u5f55\u7684\u8be6\u7ec6\u63cf\u8ff0", "commits": ["1c453cfd8", "50547a3fa", "7d8219a44", "96149a180"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "35baccd29e5b73c196585a992763d68c054bbf217b0062aa749510c6590d5938", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["1c453cfd8"], ["50547a3fa"], ["7d8219a44"], ["96149a180"]], "identity_text": "Add detailed descriptions of WAL records in pg_walinspect and pg_waldump (Melanie Plageman, Peter Geoghegan)", "commit_aliases": ["1c453cfd8", "50547a3fa", "7d8219a44", "96149a180"], "source_commits": ["1c453cfd8", "50547a3fa", "7d8219a44", "96149a180"], "source_entry_id": "16.0/changes/181", "db_id": "32ac184b38df3d34e4563d19f078e118", "patch_ids": ["3d655fdbb65659afdc53cf32a2246c7d", "6cdd27196e5a886987fa108520222cb6", "c2ab4702effde42d240c1d9aa2109161", "c5fea9f5b11a07deb8814b84dd333a3f"], "statement_hash": "583f7c324ed716190056e2738055788f21979089e0b1dea389ed06186454514a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-f964da733c830e01", "migration": false}, {"id": "16.0-e2d2ee48d924e8dc-1", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/16/pageinspect.html\" title=\"F.25.\u00a0pageinspect \u2014 \u6570\u636e\u5e93\u9875\u7684\u5e95\u5c42\u68c0\u67e5\"><span>pageinspect</span></a>\u51fd\u6570 <a href=\"/docs/16/pageinspect.html#PAGEINSPECT-B-TREE-FUNCS\" title=\"F.25.3.\u00a0B-\u6811\u51fd\u6570\"><code>bt_multi_page_stats()</code></a> \u4ee5\u62a5\u544a\u591a\u9875\u7edf\u8ba1\u4fe1\u606f\uff08Hamid Akhtar\uff09<a href=\"https://postgr.es/c/1fd3dd204\">\u00a7</a></p>\n<p>\u8fd9\u4e0e <code>bt_page_stats()</code> \u7c7b\u4f3c\uff0c\u4f46\u53ef\u4ee5\u62a5\u544a\u4e00\u4e2a\u8303\u56f4\u7684\u9875\u9762\u3002</p>", "text": "\u589e\u52a0pageinspect\u51fd\u6570 bt_multi_page_stats() \u4ee5\u62a5\u544a\u591a\u9875\u7edf\u8ba1\u4fe1\u606f\uff08Hamid Akhtar\uff09\u00a7 \u8fd9\u4e0e bt_page_stats() \u7c7b\u4f3c\uff0c\u4f46\u53ef\u4ee5\u62a5\u544a\u4e00\u4e2a\u8303\u56f4\u7684\u9875\u9762\u3002", "title": "\u589e\u52a0pageinspect\u51fd\u6570 bt_multi_page_stats() \u4ee5\u62a5\u544a\u591a\u9875\u7edf\u8ba1\u4fe1\u606f", "commits": ["1fd3dd204"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "3cd7cc168417f055b25c7215b3e8f893ac38c7bb532669969fbe180e62536a16", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["1fd3dd204"]], "identity_text": "Add pageinspect function bt_multi_page_stats() to report statistics on multiple pages (Hamid Akhtar) This is similar to bt_page_stats() except it can report on a range of pages.", "commit_aliases": ["1fd3dd204"], "source_commits": ["1fd3dd204"], "source_entry_id": "16.0/changes/182", "db_id": "c3e1949192fe6ced80983e4f1b745095", "patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"], "statement_hash": "817abb9b7532dc121b4c71b86b6be32676ddd9c0bc5686a0c77f8a85ed8f39b1", "relations": [{"rule": 2, "type": "related", "target": "9ce12790cfd3b708a3c139faff4cb900", "evidence": {"same_day": true, "patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"], "ambiguous_patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-e2d2ee48d924e8dc-1", "migration": false}, {"id": "16.0-e2d2ee48d924e8dc-2", "cves": [], "html": "<p>\u5411<a href=\"/docs/16/pageinspect.html\" title=\"F.25.\u00a0pageinspect \u2014 \u6570\u636e\u5e93\u9875\u7684\u5e95\u5c42\u68c0\u67e5\"><span>pageinspect</span></a>\u51fd\u6570 <a href=\"/docs/16/pageinspect.html#PAGEINSPECT-BRIN-FUNCS\" title=\"F.25.4.\u00a0BRIN \u51fd\u6570\"><code>brin_page_items()</code></a> \u6dfb\u52a0\u7a7a\u8303\u56f4\u8f93\u51fa\u5217\uff08Tomas Vondra\uff09<a href=\"https://postgr.es/c/1fd3dd204\">\u00a7</a></p>", "text": "\u5411pageinspect\u51fd\u6570 brin_page_items() \u6dfb\u52a0\u7a7a\u8303\u56f4\u8f93\u51fa\u5217\uff08Tomas Vondra\uff09\u00a7", "title": "\u5411pageinspect\u51fd\u6570 brin_page_items() \u6dfb\u52a0\u7a7a\u8303\u56f4\u8f93\u51fa\u5217", "commits": ["1fd3dd204"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "ab8d297182fb6e723e8f6d7b126b35fb6ebb3fb81b83b8065caac731a0be66ed", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["1fd3dd204"]], "identity_text": "Add empty range output column to pageinspect function brin_page_items() (Tomas Vondra)", "commit_aliases": ["1fd3dd204"], "source_commits": ["1fd3dd204"], "source_entry_id": "16.0/changes/183", "db_id": "9ce12790cfd3b708a3c139faff4cb900", "patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"], "statement_hash": "243210115fb6048653209e24199e20ff4fcff584b3bbd5eccbf8bc9adea258a1", "relations": [{"rule": 2, "type": "related", "target": "c3e1949192fe6ced80983e4f1b745095", "evidence": {"same_day": true, "patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"], "ambiguous_patch_ids": ["5bdb82c95abb2159415c5685fd07afc2"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-e2d2ee48d924e8dc-2", "migration": false}, {"id": "16.0-fc809d4cd5633bec", "cves": [], "html": "<p>\u91cd\u65b0\u8bbe\u8ba1\u5f52\u6863\u6a21\u5757\u4ee5\u66f4\u52a0\u7075\u6d3b\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/35739b87d\">\u00a7</a></p>\n<p>\u8fd9\u4e00\u521d\u59cb\u5316\u53d8\u66f4\u8981\u6c42\u4e3a\u8f83\u65e7 PostgreSQL \u7248\u672c\u7f16\u5199\u7684\u6a21\u5757\u8fdb\u884c\u66f4\u65b0\u3002</p>", "text": "\u91cd\u65b0\u8bbe\u8ba1\u5f52\u6863\u6a21\u5757\u4ee5\u66f4\u52a0\u7075\u6d3b\uff08Nathan Bossart\uff09\u00a7 \u8fd9\u4e00\u521d\u59cb\u5316\u53d8\u66f4\u8981\u6c42\u4e3a\u8f83\u65e7 PostgreSQL \u7248\u672c\u7f16\u5199\u7684\u6a21\u5757\u8fdb\u884c\u66f4\u65b0\u3002", "title": "\u91cd\u65b0\u8bbe\u8ba1\u5f52\u6863\u6a21\u5757\u4ee5\u66f4\u52a0\u7075\u6d3b", "commits": ["35739b87d"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "ebfeef6642b2c1b53bbc6b947671b1e288832a43f2d6d8755238bbd3fa5ac995", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["35739b87d"]], "identity_text": "Redesign archive modules to be more flexible (Nathan Bossart) Initialization changes will require modules written for older versions of Postgres to be updated.", "commit_aliases": ["35739b87d"], "source_commits": ["35739b87d"], "source_entry_id": "16.0/changes/184", "db_id": "8650a1035448f521a7673e17478e6f4f", "patch_ids": ["3bbba7711288ab9a7a8df78914e0d8e9"], "statement_hash": "67e482b3d287b7654ddd6971450941da4b5af6d4ae9d9b9bce28b32b7a36c6f5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-fc809d4cd5633bec", "migration": false}, {"id": "16.0-1e476c6c65452300", "cves": [], "html": "<p>\u4fee\u6b63<a href=\"/docs/16/pgstatstatements.html\" title=\"F.32.\u00a0pg_stat_statements \u2014 \u8ddf\u8e2a SQL \u8ba1\u5212\u548c\u6267\u884c\u7edf\u8ba1\u4fe1\u606f\"><span>pg_stat_statements</span></a>\u6269\u5c55\u67e5\u8be2\u534f\u8bae\u8bed\u53e5\u7684\u4e0d\u51c6\u786e\u884c\u8ddf\u8e2a\uff08Sami Imseih\uff09<a href=\"https://postgr.es/c/1d477a907\">\u00a7</a></p>", "text": "\u4fee\u6b63pg_stat_statements\u6269\u5c55\u67e5\u8be2\u534f\u8bae\u8bed\u53e5\u7684\u4e0d\u51c6\u786e\u884c\u8ddf\u8e2a\uff08Sami Imseih\uff09\u00a7", "title": "\u4fee\u6b63pg_stat_statements\u6269\u5c55\u67e5\u8be2\u534f\u8bae\u8bed\u53e5\u7684\u4e0d\u51c6\u786e\u884c\u8ddf\u8e2a", "commits": ["1d477a907"], "section": "\u9644\u52a0\u6a21\u5757", "category": "bugfix", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "0aaf0d21f909615d41e533c757e3ecc52e883c89a8dd5208321c497fecf23067", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["1d477a907"]], "identity_text": "Correct inaccurate pg_stat_statements row tracking extended query protocol statements (Sami Imseih)", "commit_aliases": ["1d477a907"], "source_commits": ["1d477a907"], "source_entry_id": "16.0/changes/185", "db_id": "551aaad464f86fd0c3e5f46908da5a30", "patch_ids": ["11ffe5bc6427ad33f15d61aaf3f3d9bc"], "statement_hash": "7537f6e4611d7e1ee76ae1cc5f1acd6bd610cd71afdbbba33bb093becec8720a", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=16.0#16.0-1e476c6c65452300", "migration": false}, {"id": "16.0-757e63f01ee15b70", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/16/pgbuffercache.html\" title=\"F.27.\u00a0pg_buffercache \u2014 \u68c0\u67e5 PostgreSQL \u7f13\u51b2\u533a\u7f13\u5b58\u72b6\u6001\"><span>pg_buffercache</span></a>\u51fd\u6570 <code>pg_buffercache_usage_counts()</code> \u4ee5\u62a5\u544a\u4f7f\u7528\u603b\u8ba1\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/f3fa31327\">\u00a7</a></p>", "text": "\u589e\u52a0pg_buffercache\u51fd\u6570 pg_buffercache_usage_counts() \u4ee5\u62a5\u544a\u4f7f\u7528\u603b\u8ba1\uff08Nathan Bossart\uff09\u00a7", "title": "\u589e\u52a0pg_buffercache\u51fd\u6570 pg_buffercache_usage_counts() \u4ee5\u62a5\u544a\u4f7f\u7528\u603b\u8ba1", "commits": ["f3fa31327"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "91487a8f0ebf3948cd50a420f4091659304a532c23070138cc4440983ac5ebd9", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["f3fa31327"]], "identity_text": "Add pg_buffercache function pg_buffercache_usage_counts() to report usage totals (Nathan Bossart)", "commit_aliases": ["f3fa31327"], "source_commits": ["f3fa31327"], "source_entry_id": "16.0/changes/186", "db_id": "0d35e559e97bfc9e5936aa9fa5eb66a8", "patch_ids": ["b7d110f46ee3f0a80fd6b8f72d01e31c"], "statement_hash": "54e2d365cee0a688779511006c226320a2785202a52c08bd3014edb9e335ebf3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-757e63f01ee15b70", "migration": false}, {"id": "16.0-93d261174e18cab2", "cves": [], "html": "<p>\u589e\u52a0<a href=\"/docs/16/pgbuffercache.html\" title=\"F.27.\u00a0pg_buffercache \u2014 \u68c0\u67e5 PostgreSQL \u7f13\u51b2\u533a\u7f13\u5b58\u72b6\u6001\"><span>pg_buffercache</span></a>\u51fd\u6570 <code>pg_buffercache_summary()</code> \u4ee5\u62a5\u544a\u6c47\u603b\u7684\u7f13\u51b2\u533a\u7edf\u8ba1\uff08Melih Mutlu\uff09<a href=\"https://postgr.es/c/2589434ae\">\u00a7</a></p>", "text": "\u589e\u52a0pg_buffercache\u51fd\u6570 pg_buffercache_summary() \u4ee5\u62a5\u544a\u6c47\u603b\u7684\u7f13\u51b2\u533a\u7edf\u8ba1\uff08Melih Mutlu\uff09\u00a7", "title": "\u589e\u52a0pg_buffercache\u51fd\u6570 pg_buffercache_summary() \u4ee5\u62a5\u544a\u6c47\u603b\u7684\u7f13\u51b2\u533a\u7edf\u8ba1", "commits": ["2589434ae"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "36355b71dac6b06c5746bf602bf37c0ba2faadea4533f50c3c37c4db61275f7c", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["2589434ae"]], "identity_text": "Add pg_buffercache function pg_buffercache_summary() to report summarized buffer statistics (Melih Mutlu)", "commit_aliases": ["2589434ae"], "source_commits": ["2589434ae"], "source_entry_id": "16.0/changes/187", "db_id": "20e2e4e34fcb47bca29286b378d9ddd0", "patch_ids": ["0f925139651f09b77986d3d1ed62e046"], "statement_hash": "ade619241392a312223a13707278c5f85af265fc62dfbcac8829e6cc323c3f28", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-93d261174e18cab2", "migration": false}, {"id": "16.0-c83e1323e4e801c4-1", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u6269\u5c55\u811a\u672c\u4e2d\u4f7f\u7528\u65b0\u8bed\u6cd5 <code>@extschema:referenced_extension_name@</code> \u5f15\u7528\u5fc5\u9700\u6269\u5c55\u7684\u6a21\u5f0f\uff08Regina Obe\uff09<a href=\"https://postgr.es/c/72a5b1fc8\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728\u6269\u5c55\u811a\u672c\u4e2d\u4f7f\u7528\u65b0\u8bed\u6cd5 @extschema:referenced_extension_name@ \u5f15\u7528\u5fc5\u9700\u6269\u5c55\u7684\u6a21\u5f0f\uff08Regina Obe\uff09\u00a7", "title": "\u5141\u8bb8\u5728\u6269\u5c55\u811a\u672c\u4e2d\u4f7f\u7528\u65b0\u8bed\u6cd5 @extschema:referenced_extension_name@ \u5f15\u7528\u5fc5\u9700\u6269\u5c55\u7684\u6a21\u5f0f", "commits": ["72a5b1fc8"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "f475992b65f019ada3e85907ac8497fdf7ff0ffaf0acf7d2b7037574b2e66853", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["72a5b1fc8"]], "identity_text": "Allow the schemas of required extensions to be referenced in extension scripts using the new syntax @extschema:referenced_extension_name@ (Regina Obe)", "commit_aliases": ["72a5b1fc8"], "source_commits": ["72a5b1fc8"], "source_entry_id": "16.0/changes/188", "db_id": "383a40b7232cc394ab47db0645f51a43", "patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"], "statement_hash": "29428a2f925af700fef81223ae20e6cb2499fdcf291ce2d9234a852990c15ba4", "relations": [{"rule": 2, "type": "related", "target": "aebfdd1f0b3aa4e201d468119a381e74", "evidence": {"same_day": true, "patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"], "ambiguous_patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-c83e1323e4e801c4-1", "migration": false}, {"id": "16.0-c83e1323e4e801c4-2", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 <a href=\"/docs/16/extend-extensions.html#EXTEND-EXTENSIONS-FILES-NO-RELOCATE\"><code>no_relocate</code></a> \u5c06\u5fc5\u9700\u6269\u5c55\u6807\u8bb0\u4e3a\u4e0d\u53ef\u91cd\u5b9a\u4f4d\uff08Regina Obe\uff09<a href=\"https://postgr.es/c/72a5b1fc8\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8 <code>@extschema:referenced_extension_name@</code> \u5728\u6269\u5c55\u7684\u751f\u547d\u5468\u671f\u5185\u88ab\u89c6\u4e3a\u5e38\u91cf\u3002</p>", "text": "\u5141\u8bb8\u4f7f\u7528 no_relocate \u5c06\u5fc5\u9700\u6269\u5c55\u6807\u8bb0\u4e3a\u4e0d\u53ef\u91cd\u5b9a\u4f4d\uff08Regina Obe\uff09\u00a7 \u8fd9\u5141\u8bb8 @extschema:referenced_extension_name@ \u5728\u6269\u5c55\u7684\u751f\u547d\u5468\u671f\u5185\u88ab\u89c6\u4e3a\u5e38\u91cf\u3002", "title": "\u5141\u8bb8\u4f7f\u7528 no_relocate \u5c06\u5fc5\u9700\u6269\u5c55\u6807\u8bb0\u4e3a\u4e0d\u53ef\u91cd\u5b9a\u4f4d", "commits": ["72a5b1fc8"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-MODULES", "source_hash": "5eee592578e59c5fe2d26916152bd09fe21a0c037e8265afbb92faaf41547e41", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["72a5b1fc8"]], "identity_text": "Allow required extensions to be marked as non-relocatable using no_relocate (Regina Obe) This allows @extschema:referenced_extension_name@ to be treated as a constant for the lifetime of the extension.", "commit_aliases": ["72a5b1fc8"], "source_commits": ["72a5b1fc8"], "source_entry_id": "16.0/changes/189", "db_id": "aebfdd1f0b3aa4e201d468119a381e74", "patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"], "statement_hash": "f1fba67b074c6022aeb36f53f649f693d06418efde733dfd459100eab95a7147", "relations": [{"rule": 2, "type": "related", "target": "383a40b7232cc394ab47db0645f51a43", "evidence": {"same_day": true, "patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"], "ambiguous_patch_ids": ["ffe19b6bfb65366476e076da2d44bfe4"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-c83e1323e4e801c4-2", "migration": false}, {"id": "16.0-c50ec83325e23237", "cves": [], "html": "<p>\u5141\u8bb8 <span>postgres_fdw</span> \u5e76\u884c\u6267\u884c\u4e2d\u6b62\u64cd\u4f5c\uff08Etsuro Fujita\uff09<a href=\"https://postgr.es/c/983ec2300\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7 <span>postgres_fdw</span> \u9009\u9879 <a href=\"/docs/16/postgres-fdw.html#POSTGRES-FDW-OPTIONS-TRANSACTION-MANAGEMENT\" title=\"F.38.1.6.\u00a0\u4e8b\u52a1\u7ba1\u7406\u9009\u9879\"><code>parallel_abort</code></a> \u542f\u7528\u3002</p>", "text": "\u5141\u8bb8 postgres_fdw \u5e76\u884c\u6267\u884c\u4e2d\u6b62\u64cd\u4f5c\uff08Etsuro Fujita\uff09\u00a7 \u8fd9\u901a\u8fc7 postgres_fdw \u9009\u9879 parallel_abort \u542f\u7528\u3002", "title": "\u5141\u8bb8 postgres_fdw \u5e76\u884c\u6267\u884c\u4e2d\u6b62\u64cd\u4f5c", "commits": ["983ec2300"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGFDW", "source_hash": "7c385a335ae23011eb256aad33d7d6968c7320585df28dcdcddc549fdac83dcb", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["983ec2300"]], "identity_text": "Allow postgres_fdw to do aborts in parallel (Etsuro Fujita) This is enabled with postgres_fdw option parallel_abort.", "commit_aliases": ["983ec2300"], "source_commits": ["983ec2300"], "source_entry_id": "16.0/changes/190", "db_id": "3e0e3002d684ced8df0712fc21dde2c6", "patch_ids": ["cd7ddbcd404a8ea5e3a0946886aa30e9"], "statement_hash": "b511b6584446a53e4f41350aa184fb9fb2388360251c892e81a8d293a29747c4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-c50ec83325e23237", "migration": false}, {"id": "16.0-2d6c1b27fb284228", "cves": [], "html": "<p>\u4f7f\u5bf9\u5916\u90e8 <span>postgres_fdw</span> \u8868\u7684 <a href=\"/docs/16/sql-analyze.html\" title=\"ANALYZE\"><code>ANALYZE</code></a> \u66f4\u9ad8\u6548\uff08Tomas Vondra\uff09<a href=\"https://postgr.es/c/8ad51b5f4\">\u00a7</a></p>\n<p><span>postgres_fdw</span> \u9009\u9879 <a href=\"/docs/16/postgres-fdw.html#POSTGRES-FDW-OPTIONS-COST-ESTIMATION\" title=\"F.38.1.3.\u00a0\u4ee3\u4ef7\u4f30\u7b97\u9009\u9879\"><code>analyze_sampling</code></a> \u63a7\u5236\u91c7\u6837\u65b9\u6cd5\u3002</p>", "text": "\u4f7f\u5bf9\u5916\u90e8 postgres_fdw \u8868\u7684 ANALYZE \u66f4\u9ad8\u6548\uff08Tomas Vondra\uff09\u00a7 postgres_fdw \u9009\u9879 analyze_sampling \u63a7\u5236\u91c7\u6837\u65b9\u6cd5\u3002", "title": "\u4f7f\u5bf9\u5916\u90e8 postgres_fdw \u8868\u7684 ANALYZE \u66f4\u9ad8\u6548", "commits": ["8ad51b5f4"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGFDW", "source_hash": "6b5ff301820ac5e3e62f137de9a1b08cb1f6e7ad1d40368310a3e68f7e9f1dd3", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["8ad51b5f4"]], "identity_text": "Make ANALYZE on foreign postgres_fdw tables more efficient (Tomas Vondra) The postgres_fdw option analyze_sampling controls the sampling method.", "commit_aliases": ["8ad51b5f4"], "source_commits": ["8ad51b5f4"], "source_entry_id": "16.0/changes/191", "db_id": "e43262335c07946d30fd008fda619c15", "patch_ids": ["94de4384029e17ead5c8f03b078a46ee"], "statement_hash": "dc56dd344037213b84ad716d8bc3be770061f5b0d3f5384594f9bce5426ce9e1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-2d6c1b27fb284228", "migration": false}, {"id": "16.0-34c9aa288b3f32c2", "cves": [], "html": "<p>\u9650\u5236 <span>postgres_fdw</span> \u4e2d <a href=\"/docs/16/datatype-oid.html\" title=\"8.19.\u00a0\u5bf9\u8c61\u6807\u8bc6\u7b26\u7c7b\u578b\"><code>reg</code></a>* \u7c7b\u578b\u5e38\u91cf\u7684\u4f20\u8f93\uff0c\u4ec5\u5141\u8bb8\u5f15\u7528\u5185\u7f6e\u5bf9\u8c61\u6216\u6807\u8bb0\u4e3a\u53ef\u4f20\u8f93\u7684\u6269\u5c55\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/31e5b5029\">\u00a7</a></p>", "text": "\u9650\u5236 postgres_fdw \u4e2d reg* \u7c7b\u578b\u5e38\u91cf\u7684\u4f20\u8f93\uff0c\u4ec5\u5141\u8bb8\u5f15\u7528\u5185\u7f6e\u5bf9\u8c61\u6216\u6807\u8bb0\u4e3a\u53ef\u4f20\u8f93\u7684\u6269\u5c55\uff08Tom Lane\uff09\u00a7", "title": "\u9650\u5236 postgres_fdw \u4e2d reg* \u7c7b\u578b\u5e38\u91cf\u7684\u4f20\u8f93\uff0c\u4ec5\u5141\u8bb8\u5f15\u7528\u5185\u7f6e\u5bf9\u8c61\u6216\u6807\u8bb0\u4e3a\u53ef\u4f20\u8f93\u7684\u6269\u5c55", "commits": ["31e5b5029"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGFDW", "source_hash": "308f6c0bb351629a5ec9364fcbcfacada5ef60dac2f1e4c6bf321b60d7ed866f", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["31e5b5029"]], "identity_text": "Restrict shipment of reg* type constants in postgres_fdw to those referencing built-in objects or extensions marked as shippable (Tom Lane)", "commit_aliases": ["31e5b5029"], "source_commits": ["31e5b5029"], "source_entry_id": "16.0/changes/192", "db_id": "e7f2093c6dfe0d9fc1b3ad8e27342a28", "patch_ids": ["12ba12a06867f548b5da28bbce5abe26"], "statement_hash": "810c641efbe3c9c1e1accd6099347c2dd4ea3656e7639fa83ebfd652bcfe89ce", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-34c9aa288b3f32c2", "migration": false}, {"id": "16.0-1a30a18227e0cccf", "cves": [], "html": "<p>\u4f7f <span>postgres_fdw</span> \u548c<a href=\"/docs/16/dblink.html\" title=\"F.12.\u00a0dblink \u2014 \u8fde\u63a5\u5230\u5176\u4ed6 PostgreSQL \u6570\u636e\u5e93\"><span>dblink</span></a>\u5728\u8fde\u63a5\u5efa\u7acb\u671f\u95f4\u5904\u7406\u4e2d\u65ad\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/e4602483e\">\u00a7</a></p>", "text": "\u4f7f postgres_fdw \u548cdblink\u5728\u8fde\u63a5\u5efa\u7acb\u671f\u95f4\u5904\u7406\u4e2d\u65ad\uff08Andres Freund\uff09\u00a7", "title": "\u4f7f postgres_fdw \u548cdblink\u5728\u8fde\u63a5\u5efa\u7acb\u671f\u95f4\u5904\u7406\u4e2d\u65ad", "commits": ["e4602483e"], "section": "\u9644\u52a0\u6a21\u5757 / postgres_fdw", "category": "feature", "source_url": "/docs/release/16.0/#RELEASE-16-PGFDW", "source_hash": "5e073879fe41f91a2b361c83edf3616e74c1bda8f5fb9cc6389c5ea42925e8e3", "section_path": ["\u9644\u52a0\u6a21\u5757", "postgres_fdw"], "commit_groups": [["e4602483e"]], "identity_text": "Have postgres_fdw and dblink handle interrupts during connection establishment (Andres Freund)", "commit_aliases": ["e4602483e"], "source_commits": ["e4602483e"], "source_entry_id": "16.0/changes/193", "db_id": "fa879a93807bf4b2740087c34b5a9c0e", "patch_ids": ["159ed2d7ad9e527a9bd47d64ccfc2af1"], "statement_hash": "c92727d90f7bda9f71b90d55ea3d922fe1f69893065430181dc875d786422720", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=16.0#16.0-1a30a18227e0cccf", "migration": false}], "initial_entry_count": 206, "migration_html": "<p>\u5bf9\u4e8e\u5e0c\u671b\u4ece\u4efb\u4f55\u4ee5\u524d\u7684\u7248\u672c\u8fc1\u79fb\u6570\u636e\u7684\u4eba\u6765\u8bf4\uff0c\u9700\u8981\u4f7f\u7528<a href=\"/docs/16/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a>\u8fdb\u884c\u8f6c\u50a8/\u6062\u590d\uff0c\u6216\u8005\u4f7f\u7528<a href=\"/docs/16/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a>\u6216\u903b\u8f91\u590d\u5236\u3002\u6709\u5173\u8fc1\u79fb\u5230\u65b0\u4e3b\u8981\u7248\u672c\u7684\u901a\u7528\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605<a href=\"/docs/16/upgrading.html\" title=\"19.6.\u00a0\u5347\u7ea7 PostgreSQL \u96c6\u7c07\">\u7b2c\u00a019.6\u00a0\u8282</a>\u3002</p>\n<p>\u7248\u672c 16 \u5305\u542b\u4e00\u4e9b\u53ef\u80fd\u5f71\u54cd\u4e0e\u4ee5\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": 175}, {"key": "bugfix", "label": "BUG \u4fee\u590d", "count": 3}, {"key": "security", "label": "\u5b89\u5168\u76f8\u5173", "count": 0}, {"key": "performance", "label": "\u6027\u80fd\u6539\u8fdb", "count": 15}, {"key": "compatibility", "label": "\u517c\u5bb9\u6027\u53d8\u5316", "count": 13}, {"key": "improvement", "label": "\u5176\u4ed6\u6539\u8fdb", "count": 0}], "security_rows": [{"id": "CVE-2026-6638", "title": "PostgreSQL REFRESH PUBLICATION allows SQL injection via table name", "url": "https://www.postgresql.org/support/security/CVE-2026-6638/", "score": 3.7, "vector": "AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N", "description": "SQL injection in PostgreSQL logical replication ALTER SUBSCRIPTION ... REFRESH PUBLICATION allows a subscriber table creator to execute arbitrary SQL with the subscription's publication-side credentials. The attack takes effect at the next REFRESH PUBLICATION. Within major versions 16, 17, and 18, minor versions before PostgreSQL 18.4, 17.10, and 16.14 are affected. Versions before PostgreSQL 16 are unaffected.", "description_language": "en", "fixed": "16.14", "fixed_url": "/docs/compare/?release=16.14", "affected": "16", "component": "core server", "mentions": [{"build": "16.14", "version": "16.14", "title": "\u5728\u903b\u8f91\u590d\u5236\u6e90\u68c0\u67e5\u4e2d\u6b63\u786e\u5f15\u7528\u5bf9\u8c61\u540d\u79f0", "url": "/docs/compare/?release=16.14#16.14-de346e2ac011900c"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6637", "title": "PostgreSQL refint allows stack buffer overflow and SQL injection", "url": "https://www.postgresql.org/support/security/CVE-2026-6637/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Stack buffer overflow in PostgreSQL module \"refint\" allows an unprivileged database user to execute arbitrary code as the operating system user running the database. A distinct attack is possible if the application declares a user-controlled column as a \"refint\" cascade primary key and facilitates user-controlled updates to that column. In that case, a SQL injection allows a primary key update value provider to execute arbitrary SQL as the database user performing the primary key update. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "16.14", "fixed_url": "/docs/compare/?release=16.14", "affected": "16", "component": "contrib module", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u907f\u514d contrib/refint \u7684 check_foreign_key() \u4e2d\u89e3\u5f15\u7528 NULL \u6307\u9488", "url": "/docs/compare/?release=16.15#16.15-744702bd470fa361"}, {"build": "16.14", "version": "16.14", "title": "\u9632\u6b62 contrib/spi \u4e2d\u7684 SQL \u6ce8\u5165\u548c\u7f13\u51b2\u533a\u8d8a\u754c\u5199", "url": "/docs/compare/?release=16.14#16.14-5c04fa5074420944"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6479", "title": "PostgreSQL SSL/GSS init causes denial of service, via uncontrolled recursion", "url": "https://www.postgresql.org/support/security/CVE-2026-6479/", "score": 7.5, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "description": "Uncontrolled recursion in PostgreSQL SSL and GSS negotiation allows an attacker able to connect to a PostgreSQL AF_UNIX socket to achieve sustained denial of service. If SSL and GSS are both disabled, an attacker can do the same via access to a PostgreSQL TCP socket. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "16.14", "fixed_url": "/docs/compare/?release=16.14", "affected": "16", "component": "core server", "mentions": [{"build": "16.14", "version": "16.14", "title": "\u9632\u6b62\u5904\u7406\u542f\u52a8\u5305\u65f6\u53d1\u751f\u65e0\u754c\u9012\u5f52", "url": "/docs/compare/?release=16.14#16.14-f224cad17d1e5128"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6478", "title": "PostgreSQL discloses MD5-hashed passwords via covert timing channel", "url": "https://www.postgresql.org/support/security/CVE-2026-6478/", "score": 6.5, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "description": "Covert timing channel in comparison of MD5-hashed password in PostgreSQL authentication allows an attacker to recover user credentials sufficient to authenticate. This does not affect scram-sha-256 passwords, the default in all supported releases. However, current databases may have MD5-hashed passwords originating in upgrades from PostgreSQL 13 or earlier. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "16.14", "fixed_url": "/docs/compare/?release=16.14", "affected": "16", "component": "core server", "mentions": [{"build": "16.14", "version": "16.14", "title": "\u5728\u8ba4\u8bc1\u4ee3\u7801\u4e2d\u4f7f\u7528\u65f6\u5e8f\u5b89\u5168\u7684\u5b57\u7b26\u4e32\u6bd4\u8f83", "url": "/docs/compare/?release=16.14#16.14-827503d5fab7e32f"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6477", "title": "PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory", "url": "https://www.postgresql.org/support/security/CVE-2026-6477/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Use of inherently dangerous function PQfn(..., result_is_int=0, ...) in PostgreSQL libpq lo_export(), lo_read(), lo_lseek64(), and lo_tell64() functions allows the server superuser to overwrite a client stack buffer with an arbitrarily-large response. Like gets(), PQfn(..., result_is_int=0, ...) stores arbitrary-length, server-determined data into a buffer of unspecified size. Because both the \\lo_export command in psql and pg_dump call lo_read(), the server superuser can overwrite pg_dump or psql stack memory. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "16.14", "fixed_url": "/docs/compare/?release=16.14", "affected": "16", "component": "client", "mentions": [{"build": "16.14", "version": "16.14", "title": "\u5c06 PQfn() \u6807\u8bb0\u4e3a\u4e0d\u5b89\u5168\uff0c\u5e76\u907f\u514d\u5728 libpq \u5185\u90e8\u4f7f\u7528\u5b83", "url": "/docs/compare/?release=16.14#16.14-0f3817e9da4bdc58"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6475", "title": "PostgreSQL pg_basebackup and pg_rewind can overwrite unrelated files of origin superuser choice", "url": "https://www.postgresql.org/support/security/CVE-2026-6475/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Symlink following in PostgreSQL pg_basebackup plain format and in pg_rewind allows an origin superuser to overwrite local files, e.g. /var/lib/postgres/.bashrc, that hijack the operating system account. It will remain the case that starting the server after these commands implicitly trusts the origin superuser, due to features like shared_preload_libraries. Hence, the attack has practical implications only if one takes relevant action between these commands and server start, like moving the files to a different VM or snapshotting the VM. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "16.14", "fixed_url": "/docs/compare/?release=16.14", "affected": "16", "component": "client", "mentions": [{"build": "16.14", "version": "16.14", "title": "\u9632\u6b62 pg_basebackup \u548c pg_rewind \u4e2d\u7684\u8def\u5f84\u904d\u5386", "url": "/docs/compare/?release=16.14#16.14-4c65f6e78638d7b8"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6474", "title": "PostgreSQL timeofday() can disclose portions of server memory", "url": "https://www.postgresql.org/support/security/CVE-2026-6474/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Externally-controlled format string in PostgreSQL timeofday() function allows an attacker to retrieve portions of server memory, via crafted timezone zones. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "16.14", "fixed_url": "/docs/compare/?release=16.14", "affected": "16", "component": "core server", "mentions": [{"build": "16.14", "version": "16.14", "title": "\u9632\u8303 timeofday() \u548c pg_strftime() \u4e2d\u7684\u6076\u610f\u65f6\u533a\u540d", "url": "/docs/compare/?release=16.14#16.14-168ea3bfaefc6d61"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6473", "title": "PostgreSQL server undersizes allocations, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2026-6473/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Integer wraparound in multiple PostgreSQL server features allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds. This may execute arbitrary code as the operating system user running the database. In applications that pass gigabyte-scale user inputs to the relevant database functions, the application input provider may achieve a segmentation fault. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "16.14", "fixed_url": "/docs/compare/?release=16.14", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4fee\u590d PL/Perl \u548c PL/Tcl \u5185\u5b58\u5206\u914d\u8ba1\u7b97\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=16.15#16.15-342fcd712e0eba5c"}, {"build": "16.14", "version": "16.14", "title": "\u4fee\u590d\u5185\u5b58\u5206\u914d\u8ba1\u7b97\u4e2d\u7684\u591a\u5904\u6574\u6570\u6ea2\u51fa\u95ee\u9898", "url": "/docs/compare/?release=16.14#16.14-effcbd2d1a71fba3"}, {"build": "16.14", "version": "16.14", "title": "\u62d2\u7edd ts_headline() \u4e2d\u8fc7\u957f\u7684\u9009\u9879", "url": "/docs/compare/?release=16.14#16.14-d9ce899f638fe2e1"}, {"build": "16.14", "version": "16.14", "title": "\u9632\u8303 contrib/intarray \u7684 query_int \u7c7b\u578b\u4ee5\u53ca contrib/ltree \u7684 ltxtquery \u7c7b\u578b\u4e2d\u7684\u5b57\u6bb5\u6ea2\u51fa", "url": "/docs/compare/?release=16.14#16.14-21fce6af887a0371"}, {"build": "16.14", "version": "16.14", "title": "\u9632\u8303 contrib/ltree \u7684 lquery \u7c7b\u578b\u4e2d\u8fc7\u957f\u7684\u503c", "url": "/docs/compare/?release=16.14#16.14-9f75dab6c6486a53"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6472", "title": "PostgreSQL CREATE TYPE does not check multirange schema CREATE privilege", "url": "https://www.postgresql.org/support/security/CVE-2026-6472/", "score": 5.4, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Missing authorization in PostgreSQL CREATE TYPE allows an object creator to hijack other queries that use search_path to find user-defined types, including extension-defined types. That is to say, the victim will execute arbitrary SQL functions of the attacker's choice. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "description_language": "en", "fixed": "16.14", "fixed_url": "/docs/compare/?release=16.14", "affected": "16", "component": "core server", "mentions": [{"build": "16.14", "version": "16.14", "title": "\u521b\u5efa\u591a\u8303\u56f4\u7c7b\u578b\u65f6\uff0c\u786e\u4fdd\u7528\u6237\u5728\u4e3a\u8be5\u591a\u8303\u56f4\u7c7b\u578b\u6307\u5b9a\u7684\u6a21\u5f0f\u4e0a\u62e5\u6709 CREATE \u6743\u9650", "url": "/docs/compare/?release=16.14#16.14-c48a9f98e69b525d"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6471", "title": "PostgreSQL logical decoding can dlopen arbitrary file", "url": "https://www.postgresql.org/support/security/CVE-2026-6471/", "score": 7.2, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "description": "Missing authorization in PostgreSQL logical decoding allows a non-superuser holding REPLICATION privilege to dlopen any file visible to the operating system account running the server, via the choice of logical decoding plugin. This in turn runs arbitrary code as that account. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u5c06\u903b\u8f91\u89e3\u7801\u8f93\u51fa\u63d2\u4ef6\u9650\u5236\u4e3a\u65b0\u670d\u52a1\u5668\u53c2\u6570 output_plugin_libraries \u6307\u5b9a\u7684\u96c6\u5408", "url": "/docs/compare/?release=16.15#16.15-d023ef134eea5c3e"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6470", "title": "PostgreSQL fails to check type USAGE privilege", "url": "https://www.postgresql.org/support/security/CVE-2026-6470/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L", "description": "Missing authorization in PostgreSQL DDL commands allows an object creator to achieve denial of service against ALTER and DROP of the type, via creating a dependency on the type. Many DDL operations did check the privilege, but assigning a range subtype and referencing the type from an SQL expression did not. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u5728\u6b64\u524d\u6f0f\u68c0\u7684\u573a\u666f\u4e2d\u68c0\u67e5\u6570\u636e\u7c7b\u578b\u7684 USAGE \u6743\u9650", "url": "/docs/compare/?release=16.15#16.15-0bb6468faf69c61b"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6469", "title": "PostgreSQL ALTER TABLE ALTER TYPE resets extended statistics ownership", "url": "https://www.postgresql.org/support/security/CVE-2026-6469/", "score": 3.8, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", "description": "Incorrect ownership assignment in PostgreSQL ALTER TABLE ALTER TYPE command reassigns ownership of dependent statistics objects to the current user. This wrongly allows the table owner to run DROP STATISTICS and ALTER STATISTICS via this improper ownership. It wrongly denies those commands to the prior statistics object owner. DROP TABLE remains able to remove statistics objects, so this exploit achieves nothing in many ownership arrangements. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u5728 ALTER TABLE \u91cd\u5efa\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\u5bf9\u8c61\u65f6\u4fdd\u7559\u5176\u6240\u6709\u6743", "url": "/docs/compare/?release=16.15#16.15-e8ff71640bff6e1b"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6464", "title": "PostgreSQL psql COPY FROM STDIN early failure processes data lines as psql commands", "url": "https://www.postgresql.org/support/security/CVE-2026-6464/", "score": 8.1, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "description": "Untrusted data inclusion in PostgreSQL psql COPY may allow a server administrator to elicit execution of data lines as psql commands, via error injection. If the \"COPY FROM STDIN\" or \"\\copy FROM STDIN\" command fails before the server indicates that it awaits input rows, psql processes the in-line data rows as psql commands. \"COPY FROM\" with a filename is unaffected. The server administrator has no inherent control over the data rows, so a complete attack requires the attacker to separately acquire control of both the server and the data rows. Alternatively, an attacker controlling data rows alone might complete an attack through a coincidental error that they don't control. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "client", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4fee\u590d psql\uff1a\u8df3\u8fc7\u811a\u672c\u4e2d\u7684 COPY ... FROM STDIN \u547d\u4ee4\u540e\u9762\u7684\u5185\u8054\u6570\u636e\uff0c\u5373\u4f7f COPY \u5728\u53d1\u9001 PGRES_COPY_IN \u524d\u5931\u8d25", "url": "/docs/compare/?release=16.15#16.15-2edf36c62c37ac67"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-2006", "title": "PostgreSQL missing validation of multibyte character length executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-2006/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Missing validation of multibyte character length in PostgreSQL text manipulation allows a database user to issue crafted queries that achieve a buffer overrun. That suffices to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "description_language": "en", "fixed": "16.12", "fixed_url": "/docs/compare/?release=16.12", "affected": "16", "component": "core server", "mentions": [{"build": "16.13", "version": "16.13", "title": "\u907f\u514d\u5728\u5bf9\u201c\u7ecf\u8fc7 TOAST \u5904\u7406\u201d\u7684\u6570\u636e\u5e94\u7528 substring() \u65f6\u8bef\u62a5\u65e0\u6548\u7f16\u7801", "url": "/docs/compare/?release=16.13#16.13-46657f359d7a6c06"}, {"build": "16.12", "version": "16.12", "title": "\u4fee\u590d\u591a\u5b57\u8282\u5b57\u7b26\u957f\u5ea6\u9a8c\u8bc1\u4e0d\u5145\u5206\u7684\u95ee\u9898", "url": "/docs/compare/?release=16.12#16.12-d657c6f02bbf824f"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-2005", "title": "PostgreSQL pgcrypto heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-2005/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL pgcrypto allows a ciphertext provider to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "description_language": "en", "fixed": "16.12", "fixed_url": "/docs/compare/?release=16.12", "affected": "16", "component": "contrib module", "mentions": [{"build": "16.12", "version": "16.12", "title": "\u4fee\u590d contrib/pgcrypto PGP \u89e3\u5bc6\u51fd\u6570\u4e2d\u7684\u7f13\u51b2\u533a\u6ea2\u51fa\u95ee\u9898", "url": "/docs/compare/?release=16.12#16.12-a3ed183e10806004"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-2004", "title": "PostgreSQL intarray missing validation of type of input to selectivity estimator executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-2004/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Missing validation of type of input in PostgreSQL intarray extension selectivity estimator function allows an object creator to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "description_language": "en", "fixed": "16.12", "fixed_url": "/docs/compare/?release=16.12", "affected": "16", "component": "contrib module", "mentions": [{"build": "16.12", "version": "16.12", "title": "\u589e\u5f3a\u9009\u62e9\u7387\u4f30\u7b97\u5668\u5728\u88ab\u9644\u52a0\u5230\u63a5\u53d7\u975e\u9884\u671f\u6570\u636e\u7c7b\u578b\u7684\u64cd\u4f5c\u7b26\u65f6\u7684\u9632\u62a4", "url": "/docs/compare/?release=16.12#16.12-9d7c1c9d84e5292d"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-2003", "title": "PostgreSQL oidvector discloses a few bytes of memory", "url": "https://www.postgresql.org/support/security/CVE-2026-2003/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Improper validation of type \"oidvector\" in PostgreSQL allows a database user to disclose a few bytes of server memory. We have not ruled out viability of attacks that arrange for presence of confidential information in disclosed bytes, but they seem unlikely. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "description_language": "en", "fixed": "16.12", "fixed_url": "/docs/compare/?release=16.12", "affected": "16", "component": "core server", "mentions": [{"build": "16.12", "version": "16.12", "title": "\u9632\u6b62 oidvector/int2vector \u51fa\u73b0\u610f\u5916\u7684\u7ef4\u5ea6", "url": "/docs/compare/?release=16.12#16.12-289361027e903f71"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-19385", "title": "PostgreSQL pg_dump heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-19385/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL pg_dump of long function transform lists allows an object creator to execute arbitrary code as the operating system user running pg_dump, via a crafted transform list. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "client", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u79fb\u9664 pg_dump \u5173\u4e8e pg_proc.protrftypes \u4e0d\u53ef\u80fd\u5305\u542b\u8d85\u8fc7 FUNC_MAX_ARGS \u4e2a\u6761\u76ee\u7684\u5047\u8bbe", "url": "/docs/compare/?release=16.15#16.15-d0330343bf3a2bca"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-18408", "title": "PostgreSQL psql \\unrestrict lets superuser of pg_dump origin server execute arbitrary code in psql client", "url": "https://www.postgresql.org/support/security/CVE-2026-18408/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql \\restrict meta-command input expansion. The fix for CVE-2025-8714 introduced \\restrict and \\unrestrict to block this attack, but \\unrestrict itself was sufficient for an attack. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. Non-core use of \\restrict would be affected, but we've not identified non-core use. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "client", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4e0d\u8981\u5bf9 psql \u7684 \\unrestrict \u547d\u4ee4\u53c2\u6570\u6267\u884c\u53cd\u5f15\u53f7\u6269\u5c55", "url": "/docs/compare/?release=16.15#16.15-59649e9a46bbab2a"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-18024", "title": "PostgreSQL ascii() function reads past end of buffer", "url": "https://www.postgresql.org/support/security/CVE-2026-18024/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Buffer over-read in PostgreSQL ascii() SQL function allows a user to disclose up to 3 bytes after the end of a specific allocation, via a crafted text value. This is the same class of defect that CVE-2026-2006 fixed, though this instance has less impact. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u589e\u5f3a ascii() \u51fd\u6570\u5bf9\u65e0\u6548\u8f93\u5165\u7684\u9632\u62a4", "url": "/docs/compare/?release=16.15#16.15-483eebd2875e58ea"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-16241", "title": "PostgreSQL ECPG integer underflow can crash the client", "url": "https://www.postgresql.org/support/security/CVE-2026-16241/", "score": 3.8, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", "description": "Integer underflow in PostgreSQL ECPG allows a database server administrator to achieve temporary denial of service against the ECPG client via sending a bytea value lacking the mandatory prefix. The client overwrites a huge memory region with bytes outside attacker knowledge or control. This typically yields a simple SIGSEGV, but rare cases might achieve client-specific integrity impact via the write. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "client", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4fee\u590d ecpg \u5e94\u7528\u7a0b\u5e8f\u56e0\u63a5\u6536\u670d\u52a1\u5668\u8fd4\u56de\u7684\u65e0\u6548 bytea \u6570\u636e\u800c\u53d1\u751f\u7684\u8d8a\u754c\u5199\u5165", "url": "/docs/compare/?release=16.15#16.15-e48a8391a0609721"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-16239", "title": "PostgreSQL type confusion in cursor CLOSE + DECLARE executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-16239/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Type confusion in PostgreSQL \"portal\"/cursor lifecycle allows a user to execute arbitrary code as the operating system user running the database, via re-creation of a cursor or other portal with different types. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4ea4\u53c9\u68c0\u67e5\u8fd0\u884c EXECUTE \u6216 FETCH \u7684 portal \u7684\u8f93\u51fa\u884c\u7c7b\u578b", "url": "/docs/compare/?release=16.15#16.15-82e9952b24a8b230"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-16238", "title": "PostgreSQL type confusion in pg_restore_attribute_stats() executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-16238/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Type confusion in PostgreSQL pg_restore_attribute_stats() allows an object creator to execute arbitrary code as the operating system user running the database, via conflation of range and multirange values. Within major version 18, minor versions before PostgreSQL 18.6 are affected. Versions before PostgreSQL 18 are unaffected.", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4fee\u590d pg_restore_attribute_stats() \u5bf9\u591a\u8303\u56f4\u7c7b\u578b\u7684\u5904\u7406", "url": "/docs/compare/?release=16.15#16.15-5d9a6f9f262886ec"}], "evidence": "release-note-mention"}, {"id": "CVE-2026-15742", "title": "PostgreSQL fuzzystrmatch writes effectively-arbitrary addresses, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2026-15742/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Integer wraparound in PostgreSQL fuzzystrmatch allows a user to direct writes to a huge range of addresses, executing arbitrary code as the operating system user running the database, via extreme inputs to SQL function levenshtein() or levenshtein_less_equal(). Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "contrib module", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4fee\u590d contrib/fuzzystrmatch \u7684 levenshtein() \u548c levenshtein_less_equal() \u51fd\u6570\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=16.15#16.15-a51d10d5c2a5583d"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-15741", "title": "PostgreSQL expression deparse allows SQL injection via EXTRACT argument", "url": "https://www.postgresql.org/support/security/CVE-2026-15741/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "SQL injection in PostgreSQL EXTRACT() deparse allows an object owner to execute arbitrary SQL as a superuser via a hostile object definition. Attacks affect expression deparse consumers broadly, including pg_dump, psql commands like \\sf, and any similar usage in non-core tools. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u9006\u89e3\u6790 EXTRACT() \u51fd\u6570\u8c03\u7528\u65f6\uff0c\u6309\u9700\u4e3a\u5b57\u6bb5\u540d\u52a0\u5f15\u53f7", "url": "/docs/compare/?release=16.15#16.15-b95737c58db91b67"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14681", "title": "PostgreSQL improper enforcement of GSSAPI encryption when coupled with SSL", "url": "https://www.postgresql.org/support/security/CVE-2026-14681/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Improper enforcement of message integrity in PostgreSQL GSSAPI support allows a user to negotiate GSSAPI contrary to pg_hba.conf rules, via initial direct TLS connection. Despite a pg_hba.conf that appears to require GSSAPI, the connection may exchange data over TLS encryption alone. If the TLS settings are more permissive than the GSS settings, the connection may continue with lesser protection. Within major versions 17-18, minor versions before PostgreSQL 18.6 and 17.11 are affected. Versions before PostgreSQL 17 are unaffected.", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u5728\u76f4\u63a5 SSL \u8fde\u63a5\u4e4b\u540e\u62d2\u7edd GSSEncRequest", "url": "/docs/compare/?release=16.15#16.15-f7c6e475d2ee5cf0"}], "evidence": "release-note-mention"}, {"id": "CVE-2026-14680", "title": "PostgreSQL type confusion via \"internal\" arguments", "url": "https://www.postgresql.org/support/security/CVE-2026-14680/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Type confusion with PostgreSQL \"internal\" data type arguments allows any user to execute arbitrary code as the operating system user running the database, via calls to functions with that argument type. Type \"internal\" represents a class of mutually-incompatible data structures not intended for access from SQL. The system intended to prevent such function calls, but this prevention had gaps. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u62d2\u7edd\u4ece SQL \u8c03\u7528\u63a5\u53d7\u6216\u8fd4\u56de internal \u7c7b\u578b\u7684\u51fd\u6570", "url": "/docs/compare/?release=16.15#16.15-34c662185f18a805"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14679", "title": "PostgreSQL stack buffer overflow in argument match writes 0x0 and 0x1 to server memory", "url": "https://www.postgresql.org/support/security/CVE-2026-14679/", "score": 8.2, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H", "description": "Stack buffer overflow in PostgreSQL argument name matching allows an object creator to achieve unknown impacts via OUT parameter count. The attack can write only 0x0 and 0x1 bytes. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4fee\u590d\u591a\u5904\u9519\u8bef\u5730\u5047\u5b9a\u65e0\u9700\u5904\u7406\u8d85\u8fc7 FUNC_MAX_ARGS \u4e2a\u51fd\u6570\u53c2\u6570\u7684\u95ee\u9898", "url": "/docs/compare/?release=16.15#16.15-4e4499530e41620f"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14678", "title": "PostgreSQL pg_trgm picksplit reads past end of buffer", "url": "https://www.postgresql.org/support/security/CVE-2026-14678/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Buffer over-read in PostgreSQL pg_trgm index picksplit function reads past end of a heap buffer. This might allow a table maintainer to infer limited memory values, via the lossy signal of index split choices. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "contrib module", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4fee\u590d contrib/pg_trgm \u7684 GiST picksplit \u51fd\u6570\u4e2d\u7684\u6570\u636e\u7c7b\u578b\u9519\u8bef", "url": "/docs/compare/?release=16.15#16.15-0621542d439e129f"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14677", "title": "PostgreSQL 32-bit pltcl and plperl undersize allocations, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2026-14677/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Integer wraparound in PostgreSQL 32-bit builds of pltcl and plperl allows an object creator to cause the server to undersize an allocation and write out-of-bounds via crafted function bodies. This may execute arbitrary code as the operating system user running the database. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4fee\u590d PL/Perl \u548c PL/Tcl \u5185\u5b58\u5206\u914d\u8ba1\u7b97\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=16.15#16.15-342fcd712e0eba5c"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14676", "title": "PostgreSQL pg_stat_statements heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14676/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL pg_stat_statements allows the query author to execute arbitrary code as the operating system user running the database, via crafted queries containing array constants. Within major version 18, minor versions before PostgreSQL 18.6 are affected. Versions before PostgreSQL 18 are unaffected.", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "contrib module", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4fee\u590d contrib/pg_stat_statements \u4e2d\u7684\u7f13\u51b2\u533a\u8d8a\u754c\u5199\u5165", "url": "/docs/compare/?release=16.15#16.15-c47a9a8863c0fc6e"}], "evidence": "release-note-mention"}, {"id": "CVE-2026-14673", "title": "PostgreSQL amcheck does not clear untrusted search path", "url": "https://www.postgresql.org/support/security/CVE-2026-14673/", "score": 3.8, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N", "description": "Untrusted search path in PostgreSQL amcheck allows a grantee of amcheck function EXECUTE privilege to execute arbitrary functions as the owners of expression indexes that depend on the search path, via setting a hostile search path before calling the amcheck function. Within major versions 18, 16, 15, and 14, minor versions before PostgreSQL 18.6, 16.15, 15.19, and 14.24 are affected. PostgreSQL 17 is unaffected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "contrib module", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u786e\u4fdd contrib/amcheck \u51fd\u6570\u5728\u6267\u884c\u7d22\u5f15\u8868\u8fbe\u5f0f\u524d\u9650\u5236 search_path", "url": "/docs/compare/?release=16.15#16.15-20c54db9d1517bb1"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14672", "title": "PostgreSQL observable response discrepancy with non-default scram_iterations provides user existence oracle", "url": "https://www.postgresql.org/support/security/CVE-2026-14672/", "score": 5.3, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N", "description": "Observable response discrepancy in PostgreSQL SCRAM authentication allows an unauthenticated user to test the existence of a user via observing the SCRAM iteration count. This requires the probed user to have a non-default scram_iterations count, because the authentication challenge for a nonexistent user reports the default scram_iterations. Within major versions 16-18, minor versions before PostgreSQL 18.6, 17.11, and 16.15 are affected. Versions before PostgreSQL 16 are unaffected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u8ba9\u6a21\u62df\u7684 SCRAM secret \u66f4\u53ef\u4fe1", "url": "/docs/compare/?release=16.15#16.15-7aa6af5006f81e6f"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14671", "title": "PostgreSQL refint plan cache type confusion executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14671/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Type confusion in PostgreSQL module \"refint\" allows an object creator to execute arbitrary code as the operating system user running the database. The fix for this emerged as a non-security bug report, and the fix appear in the git repository with subject \"refint: Remove plan cache.\", without a CVE number. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "contrib module", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u79fb\u9664 contrib/refint \u4e2d\u7684\u8ba1\u5212\u7f13\u5b58", "url": "/docs/compare/?release=16.15#16.15-b2c274cdcaf4ba1b"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14670", "title": "PostgreSQL plperl tied object heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14670/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL plperl return of a tied hash allows the function owner to execute arbitrary code as the operating system user running the database, via a crafted function body. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u589e\u5f3a PL/Perl \u5bf9 \u201ctied\u201d Perl \u6570\u7ec4\u548c hash \u7684\u9632\u62a4", "url": "/docs/compare/?release=16.15#16.15-9465542088e662ad"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14669", "title": "PostgreSQL to_char heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14669/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL to_char(timestamptz) allows the party choosing the timezone to execute arbitrary code as the operating system user running the database, via a long POSIX timezone abbreviation. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4fee\u590d to_char() \u5904\u7406\u8fc7\u957f\u65f6\u533a\u7f29\u5199\u65f6\u53d1\u751f\u7684\u7f13\u51b2\u533a\u8d8a\u754c\u5199\u5165", "url": "/docs/compare/?release=16.15#16.15-f0ba58d9c922a403-1"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14668", "title": "PostgreSQL ctid type confusion in selectivity estimator discloses derivative of arbitrary read", "url": "https://www.postgresql.org/support/security/CVE-2026-14668/", "score": 8.1, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H", "description": "Type confusion regarding input of PostgreSQL ctid data type selectivity estimator allows an object creator to view a calculation derived from the value of an arbitrary 4-byte span of memory, via a chosen non-ctid input. While the calculation loses precision, substantial memory value recovery appears possible. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u8ba9 scalarineqsel() \u68c0\u67e5\u9884\u671f\u4e3a tid \u7c7b\u578b\u7684\u5e38\u91cf\u662f\u5426\u786e\u5b9e\u5c5e\u4e8e\u8be5\u7c7b\u578b", "url": "/docs/compare/?release=16.15#16.15-ae6cefffe2c19e7b"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14666", "title": "PostgreSQL row security caching disregards role modifications", "url": "https://www.postgresql.org/support/security/CVE-2026-14666/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Incomplete tracking in PostgreSQL of changes to role membership, role attributes, and database ownership allows a query to continue using cached row-level security policies after those changes require a different policy, via plan reuse. Stale policies continue until some other event invalidates the cache or connection termination ends the session. This permits a user to complete reads and modifications that were recently permitted but now forbidden. An attacker must tailor an attack to a particular application's pattern of privilege removal and role-specific row security policies. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u89d2\u8272\u53d1\u751f\u53d8\u66f4\u540e\u4f7f\u4f9d\u8d56\u89d2\u8272\u7684\u7f13\u5b58\u8ba1\u5212\u5931\u6548", "url": "/docs/compare/?release=16.15#16.15-c1ecfb608aa3193c"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14664", "title": "PostgreSQL regexp heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14664/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL regexp allows the query author to execute arbitrary code as the operating system user running the database, via text that would not pass encoding validation. This shares heritage with CVE-2026-2006, but this case involved unanticipated data growth when round-tripped through pg_wchar. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4fee\u590d\u6b63\u5219\u8868\u8fbe\u5f0f\u5339\u914d/\u62c6\u5206\u51fd\u6570\u4e2d\u7684\u7f13\u51b2\u533a\u8d8a\u754c\u5199\u5165", "url": "/docs/compare/?release=16.15#16.15-81cf49bd6b870f85"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14663", "title": "PostgreSQL pgcrypto, for OpenSSL-disabled ciphers, silently encrypts to and decrypts from cleartext", "url": "https://www.postgresql.org/support/security/CVE-2026-14663/", "score": 6.5, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "description": "Cleartext storage in PostgreSQL pgcrypto disabled ciphers allows a user to recover cleartext, via direct observation of the faulty ciphertext. The OpenSSL version and OpenSSL configuration determine the disabled ciphers. If the application accepts encrypted data as input, decryption will succeed even with the wrong key. This in turn loses the modest protection from the Modification Detection Code (MDC). Affected functions are pgp_sym_encrypt, pgp_sym_decrypt, pgp_pub_encrypt, pgp_pub_decrypt, pgp_sym_encrypt_bytea, pgp_sym_decrypt_bytea, pgp_pub_encrypt_bytea, and pgp_pub_decrypt_bytea. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "contrib module", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4fee\u590d contrib/pgcrypto \u7684 PGP \u52a0\u5bc6\uff0c\u4f7f\u5176\u80fd\u591f\u68c0\u6d4b\u4e0d\u53d7\u652f\u6301\u7684\u5bc6\u7801\u7b97\u6cd5", "url": "/docs/compare/?release=16.15#16.15-8ceb116fc33c62af"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14662", "title": "PostgreSQL tsvector and tsquery undersize allocations, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2026-14662/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Integer wraparound in PostgreSQL tsvector and tsquery data type functions allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds, via crafted large inputs. This may execute arbitrary code as the operating system user running the database. These types are typically sourced from application logic, not taken from the application's user. Hence, application users attacking the database, through the application as a conduit, are unlikely. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "description_language": "en", "fixed": "16.15", "fixed_url": "/docs/compare/?release=16.15", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u589e\u5f3a tsvector \u548c tsquery \u4ee3\u7801\u5bf9\u8d85\u957f\u503c\u7684\u9632\u62a4\uff08\u5305\u62ec\u5355\u4e2a\u8bcd\u4f4d\u4ee5\u53ca\u5411\u91cf/\u67e5\u8be2\u7684\u603b\u957f\u5ea6\uff09", "url": "/docs/compare/?release=16.15#16.15-60c62245c66747ba"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-8715", "title": "PostgreSQL pg_dump newline in object name executes arbitrary code in psql client and in restore target server", "url": "https://www.postgresql.org/support/security/CVE-2025-8715/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Improper neutralization of newlines in pg_dump in PostgreSQL allows a user of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands inside a purpose-crafted object name. The same attacks can achieve SQL injection as a superuser of the restore target server. pg_dumpall, pg_restore, and pg_upgrade are also affected. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected. Versions before 11.20 are unaffected. CVE-2012-0868 had fixed this class of problem, but version 11.20 reintroduced it.", "description_language": "en", "fixed": "16.10", "fixed_url": "/docs/compare/?release=16.10", "affected": "16", "component": "core server", "mentions": [{"build": "16.10", "version": "16.10", "title": "\u5728 pg_dump \u8f93\u51fa\u7684\u6ce8\u91ca\u4e2d\uff0c\u5c06\u540d\u79f0\u4e2d\u5305\u542b\u7684\u6362\u884c\u7b26\u8f6c\u6362\u4e3a\u7a7a\u683c", "url": "/docs/compare/?release=16.10#16.10-af4d8aac9b4f8e26"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-8714", "title": "PostgreSQL pg_dump lets superuser of origin server execute arbitrary code in psql client", "url": "https://www.postgresql.org/support/security/CVE-2025-8714/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. This is similar to MySQL CVE-2024-21096. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "description_language": "en", "fixed": "16.10", "fixed_url": "/docs/compare/?release=16.10", "affected": "16", "component": "core server", "mentions": [{"build": "16.15", "version": "16.15", "title": "\u4e0d\u8981\u5bf9 psql \u7684 \\unrestrict \u547d\u4ee4\u53c2\u6570\u6267\u884c\u53cd\u5f15\u53f7\u6269\u5c55", "url": "/docs/compare/?release=16.15#16.15-59649e9a46bbab2a"}, {"build": "16.10", "version": "16.10", "title": "\u9632\u6b62 pg_dump \u811a\u672c\u88ab\u7528\u4e8e\u653b\u51fb\u6267\u884c\u6062\u590d\u7684\u7528\u6237", "url": "/docs/compare/?release=16.10#16.10-631fe2b5cc95bf19"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-8713", "title": "PostgreSQL optimizer statistics can expose sampled data within a view, partition, or child table", "url": "https://www.postgresql.org/support/security/CVE-2025-8713/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "PostgreSQL optimizer statistics allow a user to read sampled data within a view that the user cannot access. Separately, statistics allow a user to read sampled data that a row security policy intended to hide. PostgreSQL maintains statistics for tables by sampling data available in columns; this data is consulted during the query planning process. Prior to this release, a user could craft a leaky operator that bypassed view access control lists (ACLs) and bypassed row security policies in partitioning or table inheritance hierarchies. Reachable statistics data notably included histograms and most-common-values lists. CVE-2017-7484 and CVE-2019-10130 intended to close this class of vulnerability, but this gap remained. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "description_language": "en", "fixed": "16.10", "fixed_url": "/docs/compare/?release=16.10", "affected": "16", "component": "core server", "mentions": [{"build": "16.10", "version": "16.10", "title": "\u52a0\u5f3a\u89c4\u5212\u5668\u4f30\u7b97\u51fd\u6570\u4e2d\u7684\u5b89\u5168\u68c0\u67e5", "url": "/docs/compare/?release=16.10#16.10-423dcb75ca30c201"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-4207", "title": "PostgreSQL GB18030 encoding validation can read one byte past end of allocation for text that fails validation", "url": "https://www.postgresql.org/support/security/CVE-2025-4207/", "score": 5.9, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "description": "Buffer over-read in PostgreSQL GB18030 encoding validation allows a database input provider to achieve temporary denial of service on platforms where a 1-byte over-read can elicit process termination. This affects the database server and also libpq. Versions before PostgreSQL 17.5, 16.9, 15.13, 14.18, and 13.21 are affected.", "description_language": "en", "fixed": "16.9", "fixed_url": "/docs/compare/?release=16.9", "affected": "16", "component": "core server", "mentions": [{"build": "16.9", "version": "16.9", "title": "\u907f\u514d\u5728\u68c0\u67e5\u58f0\u79f0\u4e3a GB18030 \u7f16\u7801\u7684\u65e0\u6548\u7f16\u7801\u5b57\u7b26\u4e32\u65f6\u53d1\u751f\u5355\u5b57\u8282\u7f13\u51b2\u533a\u8d8a\u754c\u8bfb\u53d6", "url": "/docs/compare/?release=16.9#16.9-9333e72b42f314f4"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-12818", "title": "PostgreSQL libpq undersizes allocations, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2025-12818/", "score": 5.9, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "description": "Integer wraparound in multiple PostgreSQL libpq client library functions allows an application input provider or network peer to cause libpq to undersize an allocation and write out-of-bounds by hundreds of megabytes. This results in a segmentation fault for the application using libpq. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "description_language": "en", "fixed": "16.11", "fixed_url": "/docs/compare/?release=16.11", "affected": "16", "component": "core server", "mentions": [{"build": "16.11", "version": "16.11", "title": "\u907f\u514d libpq \u4e2d\u5206\u914d\u5927\u5c0f\u8ba1\u7b97\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=16.11#16.11-c5f87912ec601f66"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-12817", "title": "PostgreSQL CREATE STATISTICS does not check for schema CREATE privilege", "url": "https://www.postgresql.org/support/security/CVE-2025-12817/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L", "description": "Missing authorization in PostgreSQL CREATE STATISTICS command allows a table owner to achieve denial of service against other CREATE STATISTICS users by creating in any schema. A later CREATE STATISTICS for the same name, from a user having the CREATE privilege, would then fail. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "description_language": "en", "fixed": "16.11", "fixed_url": "/docs/compare/?release=16.11", "affected": "16", "component": "core server", "mentions": [{"build": "16.11", "version": "16.11", "title": "\u68c0\u67e5 CREATE STATISTICS \u4e2d\u6a21\u5f0f\u7684 CREATE \u6743\u9650", "url": "/docs/compare/?release=16.11#16.11-de601249f8288957"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-1094", "title": "PostgreSQL quoting APIs miss neutralizing quoting syntax in text that fails encoding validation", "url": "https://www.postgresql.org/support/security/CVE-2025-1094/", "score": 8.1, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "description": "Improper neutralization of quoting syntax in PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() allows a database input provider to achieve SQL injection in certain usage patterns. Specifically, SQL injection requires the application to use the function result to construct input to psql, the PostgreSQL interactive terminal. Similarly, improper neutralization of quoting syntax in PostgreSQL command line utility programs allows a source of command line arguments to achieve SQL injection when client_encoding is BIG5 and server_encoding is one of EUC_TW or MULE_INTERNAL. Versions before PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 are affected.", "description_language": "en", "fixed": "16.7", "fixed_url": "/docs/compare/?release=16.7", "affected": "16", "component": "core server", "mentions": [{"build": "16.8", "version": "16.8", "title": "\u6539\u8fdb libpq \u5f15\u7528\u51fd\u6570\u7684\u884c\u4e3a", "url": "/docs/compare/?release=16.8#16.8-37cc8c2afc9a961e"}, {"build": "16.7", "version": "16.7", "title": "\u52a0\u5f3a PQescapeString \u53ca\u76f8\u5173\u51fd\u6570\u5bf9\u65e0\u6548\u7f16\u7801\u8f93\u5165\u5b57\u7b26\u4e32\u7684\u9632\u62a4", "url": "/docs/compare/?release=16.7#16.7-76a3b23ceb65c9a6"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-7348", "title": "PostgreSQL relation replacement during pg_dump executes arbitrary SQL", "url": "https://www.postgresql.org/support/security/CVE-2024-7348/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Time-of-check Time-of-use (TOCTOU) race condition in pg_dump in PostgreSQL allows an object creator to execute arbitrary SQL functions as the user running pg_dump, which is often a superuser. The attack involves replacing another relation type with a view or foreign table. The attack requires waiting for pg_dump to start, but winning the race condition is trivial if the attacker retains an open transaction. Versions before PostgreSQL 16.4, 15.8, 14.13, 13.16, and 12.20 are affected.\n\nThe PostgreSQL project thanks Noah Misch for reporting this problem.", "description_language": "en", "fixed": "16.4", "fixed_url": "/docs/compare/?release=16.4", "affected": "16", "component": "core server", "mentions": [{"build": "16.4", "version": "16.4", "title": "\u9632\u6b62\u5728 pg_dump \u671f\u95f4\u6267\u884c\u672a\u7ecf\u6388\u6743\u7684\u4ee3\u7801", "url": "/docs/compare/?release=16.4#16.4-24bc6aee30d87842"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-4317", "title": "Restrict visibility of \"pg_stats_ext\" and \"pg_stats_ext_exprs\" entries to the table owner", "url": "https://www.postgresql.org/support/security/CVE-2024-4317/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Missing authorization in PostgreSQL built-in views pg_stats_ext and pg_stats_ext_exprs allows an unprivileged database user to read most common values and other statistics from CREATE STATISTICS commands of other users. The most common values may reveal column values the eavesdropper could not otherwise read or results of functions they cannot execute. Installing an unaffected version only fixes fresh PostgreSQL installations, namely those that are created with the initdb utility after installing that version. Current PostgreSQL installations will remain vulnerable until they follow the instructions in the release notes, which are provided as a convenience in the below section. Within major versions 14-16, minor versions before PostgreSQL 16.3, 15.7, and 14.12 are affected. Versions before PostgreSQL 14 are unaffected.\n\nThis fix only fixes fresh PostgreSQL installations, namely those that are created with the initdb utility after this fix is applied. If you have a current PostgreSQL installation and are concerned about this issue, please use the following remediation steps to fix the issue:\n\nFrom the above URLs, you can click the URL that says \"raw\" to download a version that you can copy and paste.\n\nBe sure to use the script appropriate to your PostgreSQL major version. If you do not see this file, either your version is not vulnerable (only PostgreSQL 14, 15, and 16 are affected) or your minor version is too old to have the fix.\n\n\\i /usr/share/postgresql/fix-CVE-2024-4317.sql\n\nALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;\n\nAfter executing the fix-CVE-2024-4317.sql script in template0 and template1 , you should revoke the ability for template0 to accept connections. You can do this with the following command:\n\nALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;\n\nThe PostgreSQL project thanks Lukas Fittl for reporting this problem.", "description_language": "en", "fixed": "16.3", "fixed_url": "/docs/compare/?release=16.3", "affected": "16", "component": "core server", "mentions": [{"build": "16.3", "version": "16.3", "title": "\u5c06 pg_stats_ext \u548c pg_stats_ext_exprs \u6761\u76ee\u7684\u53ef\u89c1\u6027\u9650\u5236\u4e3a\u8868\u6240\u6709\u8005", "url": "/docs/compare/?release=16.3#16.3-933035d2b392d978"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-10979", "title": "PostgreSQL PL/Perl environment variable changes execute arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2024-10979/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Incorrect control of environment variables in PostgreSQL PL/Perl allows an unprivileged database user to change sensitive process environment variables (e.g. PATH ). That often suffices to enable arbitrary code execution, even if the attacker lacks a database server operating system user. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Coby Abrams for reporting this problem.", "description_language": "en", "fixed": "16.5", "fixed_url": "/docs/compare/?release=16.5", "affected": "16", "component": "core server", "mentions": [{"build": "16.5", "version": "16.5", "title": "\u9632\u6b62\u53d7\u4fe1\u4efb\u7684 PL/Perl \u4ee3\u7801\u66f4\u6539\u73af\u5883\u53d8\u91cf", "url": "/docs/compare/?release=16.5#16.5-3b4f7138a28e92e1"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-10978", "title": "PostgreSQL SET ROLE, SET SESSION AUTHORIZATION reset to wrong user ID", "url": "https://www.postgresql.org/support/security/CVE-2024-10978/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Incorrect privilege assignment in PostgreSQL allows a less-privileged application user to view or change different rows from those intended. An attack requires the application to use SET ROLE , SET SESSION AUTHORIZATION , or an equivalent feature. The problem arises when an application query uses parameters from the attacker or conveys query results to the attacker. If that query reacts to current_setting('role') or the current user ID, it may modify or return data as though the session had not used SET ROLE or SET SESSION AUTHORIZATION . The attacker does not control which incorrect user ID applies. Query text from less-privileged sources is not a concern here, because SET ROLE and SET SESSION AUTHORIZATION are not sandboxes for unvetted queries. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "description_language": "en", "fixed": "16.5", "fixed_url": "/docs/compare/?release=16.5", "affected": "16", "component": "core server", "mentions": [{"build": "16.6", "version": "16.6", "title": "\u6062\u590d ALTER {ROLE|DATABASE} SET role \u7684\u529f\u80fd", "url": "/docs/compare/?release=16.6#16.6-59096cd01766b695"}, {"build": "16.5", "version": "16.5", "title": "\u4fee\u590d SET SESSION AUTHORIZATION \u4e0e SET ROLE \u4e4b\u95f4\u610f\u5916\u7684\u4ea4\u4e92", "url": "/docs/compare/?release=16.5#16.5-315f7321f2990e19"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-10977", "title": "PostgreSQL libpq retains an error message from man-in-the-middle", "url": "https://www.postgresql.org/support/security/CVE-2024-10977/", "score": 3.1, "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N", "description": "Client use of server error message in PostgreSQL allows a server not trusted under current SSL or GSS settings to furnish arbitrary non-NUL bytes to the libpq application. For example, a man-in-the-middle attacker could send a long error message that a human or screen-scraper user of psql mistakes for valid query results. This is probably not a concern for clients where the user interface unambiguously indicates the boundary between one error message and other text. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "description_language": "en", "fixed": "16.5", "fixed_url": "/docs/compare/?release=16.5", "affected": "16", "component": "client", "mentions": [{"build": "16.5", "version": "16.5", "title": "\u4f7f libpq \u4e22\u5f03\u5728 SSL \u6216 GSS \u534f\u8bae\u534f\u5546\u671f\u95f4\u6536\u5230\u7684\u9519\u8bef\u6d88\u606f", "url": "/docs/compare/?release=16.5#16.5-9d380df74be2cafb"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-10976", "title": "PostgreSQL row security below e.g. subqueries disregards user ID changes", "url": "https://www.postgresql.org/support/security/CVE-2024-10976/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Incomplete tracking in PostgreSQL of tables with row security allows a reused query to view or change different rows from those intended. CVE-2023-2455 and CVE-2016-2193 fixed most interaction between row security and user ID changes. They missed cases where a subquery, WITH query, security invoker view, or SQL-language function references a table with a row-level security policy. This has the same consequences as the two earlier CVEs. That is to say, it leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles. This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLEs.\n\nApplying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications. This affects only databases that have used CREATE POLICY to define a row security policy. An attacker must tailor an attack to a particular application's pattern of query plan reuse, user ID changes, and role-specific row security policies. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.", "description_language": "en", "fixed": "16.5", "fixed_url": "/docs/compare/?release=16.5", "affected": "16", "component": "core server", "mentions": [{"build": "16.5", "version": "16.5", "title": "\u786e\u4fdd\u5f53 RLS \u5e94\u7528\u4e8e\u975e\u9876\u7ea7\u8868\u5f15\u7528\u65f6\uff0c\u7f13\u5b58\u7684\u6267\u884c\u8ba1\u5212\u88ab\u6807\u8bb0\u4e3a\u4f9d\u8d56\u4e8e\u8c03\u7528\u89d2\u8272", "url": "/docs/compare/?release=16.5#16.5-8836d65ec119a87b"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-0985", "title": "PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL", "url": "https://www.postgresql.org/support/security/CVE-2024-0985/", "score": 8.0, "vector": "AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H", "description": "UPDATE (June 19, 2024) : Added v16 as impacted. Updated description to clarify the attack vector.\n\nLate privilege drop in REFRESH MATERIALIZED VIEW CONCURRENTLY in PostgreSQL allows an object creator to execute arbitrary SQL functions as the command issuer. The command intends to run SQL functions as the owner of the materialized view, enabling safe refresh of untrusted materialized views. The victim is a superuser or member of one of the attacker's roles. The attack requires luring the victim into running REFRESH MATERIALIZED VIEW CONCURRENTLY on the attacker's materialized view.", "description_language": "en", "fixed": "16.2", "fixed_url": "/docs/compare/?release=16.2", "affected": "16", "component": "core server", "mentions": [{"build": "16.2", "version": "16.2", "title": "\u52a0\u5f3a REFRESH MATERIALIZED VIEW CONCURRENTLY \u4e2d\u7684\u5b89\u5168\u9650\u5236", "url": "/docs/compare/?release=16.2#16.2-b05f335b989f45c5"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-5870", "title": "Role \"pg_signal_backend\" can signal certain superuser processes", "url": "https://www.postgresql.org/support/security/CVE-2023-5870/", "score": 2.2, "vector": "AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L", "description": "Documentation says the pg_signal_backend role cannot signal \"a backend owned by a superuser\". On the contrary, it can signal background workers, including the logical replication launcher. It can signal autovacuum workers and the autovacuum launcher. Signaling autovacuum workers and those two launchers provides no meaningful exploit, so exploiting this vulnerability requires a non-core extension with a less-resilient background worker. For example, a non-core background worker that does not auto-restart would experience a denial of service with respect to that particular background worker.\n\nThe PostgreSQL project thanks Hemanth Sandrana and Mahendrakar Srinivasarao for reporting this problem.", "description_language": "en", "fixed": "16.1", "fixed_url": "/docs/compare/?release=16.1", "affected": "16", "component": "core server", "mentions": [{"build": "16.1", "version": "16.1", "title": "\u9632\u6b62 pg_signal_backend \u89d2\u8272\u5411\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\u548c\u81ea\u52a8\u6e05\u7406\u8fdb\u7a0b\u53d1\u9001\u4fe1\u53f7", "url": "/docs/compare/?release=16.1#16.1-bee2c1eaae999c16"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-5869", "title": "Buffer overrun from integer overflow in array modification", "url": "https://www.postgresql.org/support/security/CVE-2023-5869/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "While modifying certain SQL array values, missing overflow checks let authenticated database users write arbitrary bytes to a memory area that facilitates arbitrary code execution. Missing overflow checks also let authenticated database users read a wide area of server memory. The CVE-2021-32027 fix covered some attacks of this description, but it missed others.\n\nThe PostgreSQL project thanks Pedro Gallegos for reporting this problem.", "description_language": "en", "fixed": "16.1", "fixed_url": "/docs/compare/?release=16.1", "affected": "16", "component": "core server", "mentions": [{"build": "16.4", "version": "16.4", "title": "\u68c0\u6d4b\u8ba1\u7b97\u65b0\u6570\u7ec4\u7ef4\u5ea6\u65f6\u7684\u53e6\u4e00\u4e2a\u6574\u6570\u6ea2\u51fa\u60c5\u51b5", "url": "/docs/compare/?release=16.4#16.4-1c0606d0a0df7d1b"}, {"build": "16.1", "version": "16.1", "title": "\u68c0\u6d4b\u8ba1\u7b97\u65b0\u6570\u7ec4\u7ef4\u5ea6\u65f6\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=16.1#16.1-4c16ed3bd29aa177"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-5868", "title": "Memory disclosure in aggregate function calls", "url": "https://www.postgresql.org/support/security/CVE-2023-5868/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Certain aggregate function calls receiving \"unknown\"-type arguments could disclose bytes of server memory from the end of the \"unknown\"-type value to the next zero byte. One typically gets an \"unknown\"-type value via a string literal having no type designation. We have not confirmed or ruled out viability of attacks that arrange for presence of notable, confidential information in disclosed bytes.\n\nThe PostgreSQL project thanks Jingzhou Fu for reporting this problem.", "description_language": "en", "fixed": "16.1", "fixed_url": "/docs/compare/?release=16.1", "affected": "16", "component": "core server", "mentions": [{"build": "16.1", "version": "16.1", "title": "\u4fee\u590d DISTINCT \"any\" \u805a\u5408\u51fd\u6570\u4e2d\u5bf9\u672a\u77e5\u7c7b\u578b\u53c2\u6570\u7684\u5904\u7406", "url": "/docs/compare/?release=16.1#16.1-f4a32f59543aa7d4"}], "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": "16.10", "version": "16.10", "title": "\u52a0\u5f3a\u89c4\u5212\u5668\u4f30\u7b97\u51fd\u6570\u4e2d\u7684\u5b89\u5168\u68c0\u67e5", "url": "/docs/compare/?release=16.10#16.10-423dcb75ca30c201"}], "evidence": "release-note-mention"}, {"id": "CVE-2012-0868", "title": "Line breaks in object names can be exploited to execute arbitrary SQL when reloading a pg_dump file.", "url": "https://www.postgresql.org/support/security/CVE-2012-0868/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "", "mentions": [{"build": "16.10", "version": "16.10", "title": "\u5728 pg_dump \u8f93\u51fa\u7684\u6ce8\u91ca\u4e2d\uff0c\u5c06\u540d\u79f0\u4e2d\u5305\u542b\u7684\u6362\u884c\u7b26\u8f6c\u6362\u4e3a\u7a7a\u683c", "url": "/docs/compare/?release=16.10#16.10-af4d8aac9b4f8e26"}], "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": 16940648, "url": "/files/documentation/pdf/16/postgresql-16-A4.pdf"}, {"label": "US Letter PDF", "bytes": 16919542, "url": "/files/documentation/pdf/16/postgresql-16-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": ""}]}