{"format": 1, "version": {"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"}, "releases": [{"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}, {"version": "17.10", "build": "17.10", "status": "stable", "date": "2026-05-14", "source_as_of": "", "url": "/docs/compare/?release=17.10", "manual_url": "/docs/17/release-17-10.html", "source_url": "/docs/release/17.10/", "entry_count": 58, "categories": {"security": 13, "improvement": 21, "bugfix": 24}, "compatibility_count": 0, "cves": ["CVE-2026-6472", "CVE-2026-6473", "CVE-2026-6474", "CVE-2026-6475", "CVE-2026-6476", "CVE-2026-6477", "CVE-2026-6478", "CVE-2026-6479", "CVE-2026-6637", "CVE-2026-6638"], "cve_count": 10}, {"version": "17.9", "build": "17.9", "status": "stable", "date": "2026-02-26", "source_as_of": "", "url": "/docs/compare/?release=17.9", "manual_url": "/docs/17/release-17-9.html", "source_url": "/docs/release/17.9/", "entry_count": 6, "categories": {"bugfix": 5, "security": 1}, "compatibility_count": 0, "cves": ["CVE-2026-2006"], "cve_count": 1}, {"version": "17.8", "build": "17.8", "status": "stable", "date": "2026-02-12", "source_as_of": "", "url": "/docs/compare/?release=17.8", "manual_url": "/docs/17/release-17-8.html", "source_url": "/docs/release/17.8/", "entry_count": 52, "categories": {"security": 4, "improvement": 25, "bugfix": 23}, "compatibility_count": 0, "cves": ["CVE-2026-2003", "CVE-2026-2004", "CVE-2026-2005", "CVE-2026-2006"], "cve_count": 4}, {"version": "17.7", "build": "17.7", "status": "stable", "date": "2025-11-13", "source_as_of": "", "url": "/docs/compare/?release=17.7", "manual_url": "/docs/17/release-17-7.html", "source_url": "/docs/release/17.7/", "entry_count": 65, "categories": {"security": 2, "improvement": 28, "bugfix": 35}, "compatibility_count": 0, "cves": ["CVE-2025-12817", "CVE-2025-12818"], "cve_count": 2}, {"version": "17.6", "build": "17.6", "status": "stable", "date": "2025-08-14", "source_as_of": "", "url": "/docs/compare/?release=17.6", "manual_url": "/docs/17/release-17-6.html", "source_url": "/docs/release/17.6/", "entry_count": 71, "categories": {"security": 3, "bugfix": 25, "improvement": 43}, "compatibility_count": 0, "cves": ["CVE-2012-0868", "CVE-2017-7484", "CVE-2025-8713", "CVE-2025-8714", "CVE-2025-8715"], "cve_count": 5}, {"version": "17.5", "build": "17.5", "status": "stable", "date": "2025-05-08", "source_as_of": "", "url": "/docs/compare/?release=17.5", "manual_url": "/docs/17/release-17-5.html", "source_url": "/docs/release/17.5/", "entry_count": 61, "categories": {"security": 1, "improvement": 32, "bugfix": 28}, "compatibility_count": 0, "cves": ["CVE-2025-4207"], "cve_count": 1}, {"version": "17.4", "build": "17.4", "status": "stable", "date": "2025-02-20", "source_as_of": "", "url": "/docs/compare/?release=17.4", "manual_url": "/docs/17/release-17-4.html", "source_url": "/docs/release/17.4/", "entry_count": 3, "categories": {"security": 1, "bugfix": 2}, "compatibility_count": 0, "cves": ["CVE-2025-1094"], "cve_count": 1}, {"version": "17.3", "build": "17.3", "status": "stable", "date": "2025-02-13", "source_as_of": "", "url": "/docs/compare/?release=17.3", "manual_url": "/docs/17/release-17-3.html", "source_url": "/docs/release/17.3/", "entry_count": 71, "categories": {"security": 1, "improvement": 33, "bugfix": 37}, "compatibility_count": 0, "cves": ["CVE-2025-1094"], "cve_count": 1}, {"version": "17.2", "build": "17.2", "status": "stable", "date": "2024-11-21", "source_as_of": "", "url": "/docs/compare/?release=17.2", "manual_url": "/docs/17/release-17-2.html", "source_url": "/docs/release/17.2/", "entry_count": 8, "categories": {"bugfix": 4, "security": 1, "improvement": 3}, "compatibility_count": 0, "cves": ["CVE-2024-10978"], "cve_count": 1}, {"version": "17.1", "build": "17.1", "status": "stable", "date": "2024-11-14", "source_as_of": "", "url": "/docs/compare/?release=17.1", "manual_url": "/docs/17/release-17-1.html", "source_url": "/docs/release/17.1/", "entry_count": 41, "categories": {"security": 4, "bugfix": 21, "improvement": 16}, "compatibility_count": 0, "cves": ["CVE-2024-10976", "CVE-2024-10977", "CVE-2024-10978", "CVE-2024-10979"], "cve_count": 4}, {"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}], "initial_entries": [{"id": "17.0-d922e984bf9c8012", "cves": [], "html": "<p>\u66f4\u6539\u51fd\u6570\uff0c\u4f7f\u5176\u5728\u7ef4\u62a4\u64cd\u4f5c\u671f\u95f4\u4f7f\u7528\u5b89\u5168\u7684<a href=\"/docs/17/runtime-config-client.html#GUC-SEARCH-PATH\">search_path</a>\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/2af07e2f7\">\u00a7</a> <a href=\"https://postgr.es/c/b4da732fd64\">\u00a7</a></p>\n<p>\u8fd9\u53ef\u9632\u6b62\u7ef4\u62a4\u64cd\u4f5c\uff08<code>ANALYZE</code>\u3001<code>CLUSTER</code>\u3001<code>CREATE INDEX</code>\u3001<code>CREATE MATERIALIZED VIEW</code>\u3001<code>REFRESH MATERIALIZED VIEW</code>\u3001<code>REINDEX</code> \u6216 <code>VACUUM</code>\uff09\u6267\u884c\u4e0d\u5b89\u5168\u7684\u8bbf\u95ee\u3002\u8868\u8fbe\u5f0f\u7d22\u5f15\u548c\u7269\u5316\u89c6\u56fe\u4e2d\u4f7f\u7528\u3001\u4e14\u9700\u8981\u5f15\u7528\u975e\u9ed8\u8ba4 schema \u7684\u51fd\u6570\uff0c\u5fc5\u987b\u5728\u521b\u5efa\u51fd\u6570\u65f6\u6307\u5b9a search path\u3002</p>", "text": "\u66f4\u6539\u51fd\u6570\uff0c\u4f7f\u5176\u5728\u7ef4\u62a4\u64cd\u4f5c\u671f\u95f4\u4f7f\u7528\u5b89\u5168\u7684search_path\uff08Jeff Davis\uff09\u00a7 \u00a7 \u8fd9\u53ef\u9632\u6b62\u7ef4\u62a4\u64cd\u4f5c\uff08ANALYZE\u3001CLUSTER\u3001CREATE INDEX\u3001CREATE MATERIALIZED VIEW\u3001REFRESH MATERIALIZED VIEW\u3001REINDEX \u6216 VACUUM\uff09\u6267\u884c\u4e0d\u5b89\u5168\u7684\u8bbf\u95ee\u3002\u8868\u8fbe\u5f0f\u7d22\u5f15\u548c\u7269\u5316\u89c6\u56fe\u4e2d\u4f7f\u7528\u3001\u4e14\u9700\u8981\u5f15\u7528\u975e\u9ed8\u8ba4 schema \u7684\u51fd\u6570\uff0c\u5fc5\u987b\u5728\u521b\u5efa\u51fd\u6570\u65f6\u6307\u5b9a search path\u3002", "title": "\u66f4\u6539\u51fd\u6570\uff0c\u4f7f\u5176\u5728\u7ef4\u62a4\u64cd\u4f5c\u671f\u95f4\u4f7f\u7528\u5b89\u5168\u7684search_path", "commits": ["2af07e2f7", "b4da732fd64"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "64dff99310ae1cfd4ee409c78454de7b69434337010c91e0c087eba9a4ababe6", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["2af07e2f7"], ["b4da732fd64"]], "identity_text": "Change functions to use a safe guc-search-path during maintenance operations (Jeff Davis) This prevents maintenance operations (ANALYZE, CLUSTER, CREATE INDEX, CREATE MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW, REINDEX, or VACUUM) from performing unsafe access. Functions used by expression indexes and materialized views that need to reference non-default schemas must specify a search path during function creation.", "commit_aliases": ["2af07e2f7", "b4da732fd64"], "source_commits": ["2af07e2f7", "b4da732fd64"], "source_entry_id": "17.0/migration/001", "db_id": "cc672acc2498ddd239d6c029f970bad5", "patch_ids": ["27148e55a756fe36b1e6739f26c8b3c0", "b795341e3db72551c1e5eed3aaeee32b"], "statement_hash": "72d3a43b426e67d74c0baf2ac17235620dd45ed163a055d553de860d03e3cf13", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-d922e984bf9c8012", "migration": true}, {"id": "17.0-2ea1268a85e7d7da", "cves": [], "html": "<p>\u9650\u5236 <code>ago</code> \u53ea\u80fd\u51fa\u73b0\u5728 <code>interval</code> \u503c\u7684\u672b\u5c3e\uff08Joseph Koshakow\uff09<a href=\"https://postgr.es/c/165d581f1\">\u00a7</a> <a href=\"https://postgr.es/c/617f9b7d4\">\u00a7</a></p>\n<p>\u540c\u65f6\uff0c\u7981\u6b62\u7a7a interval \u5355\u4f4d\u51fa\u73b0\u591a\u6b21\u3002</p>", "text": "\u9650\u5236 ago \u53ea\u80fd\u51fa\u73b0\u5728 interval \u503c\u7684\u672b\u5c3e\uff08Joseph Koshakow\uff09\u00a7 \u00a7 \u540c\u65f6\uff0c\u7981\u6b62\u7a7a interval \u5355\u4f4d\u51fa\u73b0\u591a\u6b21\u3002", "title": "\u9650\u5236 ago \u53ea\u80fd\u51fa\u73b0\u5728 interval \u503c\u7684\u672b\u5c3e", "commits": ["165d581f1", "617f9b7d4"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "c7e922733164fa0a732f25838f27dc020fce3c1ec5663e40046c5cce9f7c8403", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["165d581f1"], ["617f9b7d4"]], "identity_text": "Restrict ago to only appear at the end in interval values (Joseph Koshakow) Also, prevent empty interval units from appearing multiple times.", "commit_aliases": ["165d581f1", "617f9b7d4"], "source_commits": ["165d581f1", "617f9b7d4"], "source_entry_id": "17.0/migration/002", "db_id": "6c0e19904987035c8733604999e0c848", "patch_ids": ["355ea5318d1f63a817910cdf1504f45f", "d49150cfc4dab109d6f8748b4f4f8b04"], "statement_hash": "4e053c43feb5a21ce495ca0f82a0f8473e143508210523c26fbb736ca1fdf21e", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-2ea1268a85e7d7da", "migration": true}, {"id": "17.0-61eed93d43a0c166", "cves": [], "html": "<p>\u79fb\u9664\u670d\u52a1\u5668\u53d8\u91cf <code>old_snapshot_threshold</code>\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/f691f5b80\">\u00a7</a></p>\n<p>\u8be5\u53d8\u91cf\u5141\u8bb8 vacuum \u79fb\u9664\u5bf9\u6b63\u5728\u8fd0\u884c\u4e8b\u52a1\u800c\u8a00\u7406\u8bba\u4e0a\u4ecd\u53ef\u80fd\u53ef\u89c1\u7684\u884c\uff0c\u4ece\u800c\u5728\u4e4b\u540e\u8bbf\u95ee\u65f6\u5f15\u53d1\u201csnapshot too old\u201d\u9519\u8bef\u3002\u5982\u679c\u5c06\u6765\u627e\u5230\u6539\u8fdb\u7684\u5b9e\u73b0\u65b9\u5f0f\uff0c\u6b64\u529f\u80fd\u53ef\u80fd\u4f1a\u91cd\u65b0\u52a0\u5165 <span>PostgreSQL</span>\u3002</p>", "text": "\u79fb\u9664\u670d\u52a1\u5668\u53d8\u91cf old_snapshot_threshold\uff08Thomas Munro\uff09\u00a7 \u8be5\u53d8\u91cf\u5141\u8bb8 vacuum \u79fb\u9664\u5bf9\u6b63\u5728\u8fd0\u884c\u4e8b\u52a1\u800c\u8a00\u7406\u8bba\u4e0a\u4ecd\u53ef\u80fd\u53ef\u89c1\u7684\u884c\uff0c\u4ece\u800c\u5728\u4e4b\u540e\u8bbf\u95ee\u65f6\u5f15\u53d1\u201csnapshot too old\u201d\u9519\u8bef\u3002\u5982\u679c\u5c06\u6765\u627e\u5230\u6539\u8fdb\u7684\u5b9e\u73b0\u65b9\u5f0f\uff0c\u6b64\u529f\u80fd\u53ef\u80fd\u4f1a\u91cd\u65b0\u52a0\u5165 PostgreSQL\u3002", "title": "\u79fb\u9664\u670d\u52a1\u5668\u53d8\u91cf old_snapshot_threshold", "commits": ["f691f5b80"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "5a82b8109b6d144744746866ac972043810705dd0189c0edee4dbbdaaab190ca", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["f691f5b80"]], "identity_text": "Remove server variable old_snapshot_threshold (Thomas Munro) This variable allowed vacuum to remove rows that potentially could be still visible to running transactions, causing \"snapshot too old\" errors later if accessed. This feature might be re-added to PostgreSQL later if an improved implementation is found.", "commit_aliases": ["f691f5b80"], "source_commits": ["f691f5b80"], "source_entry_id": "17.0/migration/003", "db_id": "b34074adfb3aeb3fe6a9be8015e49712", "patch_ids": ["8c5d8020ab90ccca65a49effd8b21ce0"], "statement_hash": "eb3cde61369c330b9e66df8de8f4b1dbeae90bcd57fd1218ce3850e1efcfd027", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-61eed93d43a0c166", "migration": true}, {"id": "17.0-253d40dcc032be94", "cves": [], "html": "<p>\u66f4\u6539 <a href=\"/docs/17/sql-set-session-authorization.html\" title=\"SET SESSION AUTHORIZATION\"><code>SET SESSION AUTHORIZATION</code></a> \u5bf9\u521d\u59cb\u4f1a\u8bdd\u7528\u6237\u8d85\u7ea7\u7528\u6237\u72b6\u6001\u7684\u5904\u7406\u65b9\u5f0f\uff08Joseph Koshakow\uff09<a href=\"https://postgr.es/c/a0363ab7a\">\u00a7</a></p>\n<p>\u65b0\u884c\u4e3a\u57fa\u4e8e\u53d1\u51fa <code>SET SESSION AUTHORIZATION</code> \u547d\u4ee4\u65f6\u4f1a\u8bdd\u7528\u6237\u7684\u8d85\u7ea7\u7528\u6237\u72b6\u6001\uff0c\u800c\u4e0d\u662f\u5176\u8fde\u63a5\u5efa\u7acb\u65f6\u7684\u8d85\u7ea7\u7528\u6237\u72b6\u6001\u3002</p>", "text": "\u66f4\u6539 SET SESSION AUTHORIZATION \u5bf9\u521d\u59cb\u4f1a\u8bdd\u7528\u6237\u8d85\u7ea7\u7528\u6237\u72b6\u6001\u7684\u5904\u7406\u65b9\u5f0f\uff08Joseph Koshakow\uff09\u00a7 \u65b0\u884c\u4e3a\u57fa\u4e8e\u53d1\u51fa SET SESSION AUTHORIZATION \u547d\u4ee4\u65f6\u4f1a\u8bdd\u7528\u6237\u7684\u8d85\u7ea7\u7528\u6237\u72b6\u6001\uff0c\u800c\u4e0d\u662f\u5176\u8fde\u63a5\u5efa\u7acb\u65f6\u7684\u8d85\u7ea7\u7528\u6237\u72b6\u6001\u3002", "title": "\u66f4\u6539 SET SESSION AUTHORIZATION \u5bf9\u521d\u59cb\u4f1a\u8bdd\u7528\u6237\u8d85\u7ea7\u7528\u6237\u72b6\u6001\u7684\u5904\u7406\u65b9\u5f0f", "commits": ["a0363ab7a"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "9f3d6d19c49c1ec62e4d87714e3d313b828647dd9e15902b1e8abf82f52aebb8", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["a0363ab7a"]], "identity_text": "Change SET SESSION AUTHORIZATION handling of the initial session user's superuser status (Joseph Koshakow) The new behavior is based on the session user's superuser status at the time the SET SESSION AUTHORIZATION command is issued, rather than their superuser status at connection time.", "commit_aliases": ["a0363ab7a"], "source_commits": ["a0363ab7a"], "source_entry_id": "17.0/migration/004", "db_id": "a284710c4e8e15eab0f4741705b57eac", "patch_ids": ["301cd2650bab634dc780a6ba3c515916"], "statement_hash": "dd14af4a215b4aa555a4eef2befdad1c9e39a80c16149e7dad092532b873e830", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-253d40dcc032be94", "migration": true}, {"id": "17.0-37f1a80c68dbef53", "cves": [], "html": "<p>\u79fb\u9664\u6a21\u62df\u6bcf\u6570\u636e\u5e93\u7528\u6237\u7684\u529f\u80fd\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/884eee5bf\">\u00a7</a></p>\n<p>\u8be5\u529f\u80fd\u5373 <code>db_user_namespace</code>\uff0c\u4f7f\u7528\u5f97\u5f88\u5c11\u3002</p>", "text": "\u79fb\u9664\u6a21\u62df\u6bcf\u6570\u636e\u5e93\u7528\u6237\u7684\u529f\u80fd\uff08Nathan Bossart\uff09\u00a7 \u8be5\u529f\u80fd\u5373 db_user_namespace\uff0c\u4f7f\u7528\u5f97\u5f88\u5c11\u3002", "title": "\u79fb\u9664\u6a21\u62df\u6bcf\u6570\u636e\u5e93\u7528\u6237\u7684\u529f\u80fd", "commits": ["884eee5bf"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "88ec7853163fc34a9953d41f7a25aa6663238fbac3188a3a448c1c31b7dac492", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["884eee5bf"]], "identity_text": "Remove feature which simulated per-database users (Nathan Bossart) The feature, db_user_namespace, was rarely used.", "commit_aliases": ["884eee5bf"], "source_commits": ["884eee5bf"], "source_entry_id": "17.0/migration/005", "db_id": "5f14c9997d29f2b62a899e7940c383cf", "patch_ids": ["edfe6268e4c801676c3acf1ddceffaba"], "statement_hash": "133f8e4a4ab49ace990b8cad84fe9fe5313becfcdbd2d51a22084268735d7ec8", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-37f1a80c68dbef53", "migration": true}, {"id": "17.0-710e087c1bef4846", "cves": [], "html": "<p>\u79fb\u9664 contrib \u6269\u5c55 <span>adminpack</span>\uff08Daniel Gustafsson\uff09<a href=\"https://postgr.es/c/cc09e6549\">\u00a7</a></p>\n<p>\u5b83\u66fe\u7531\u73b0\u5df2\u7ec8\u6b62\u652f\u6301\u7684 <span>pgAdmin III</span> \u4f7f\u7528\u3002</p>", "text": "\u79fb\u9664 contrib \u6269\u5c55 adminpack\uff08Daniel Gustafsson\uff09\u00a7 \u5b83\u66fe\u7531\u73b0\u5df2\u7ec8\u6b62\u652f\u6301\u7684 pgAdmin III \u4f7f\u7528\u3002", "title": "\u79fb\u9664 contrib \u6269\u5c55 adminpack", "commits": ["cc09e6549"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "ad86e2f1db9961ad07f2a20a39ce25e940d3fe8bff8cf4fed136f0900a1b84d7", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["cc09e6549"]], "identity_text": "Remove adminpack contrib extension (Daniel Gustafsson) This was used by now end-of-life pgAdmin III.", "commit_aliases": ["cc09e6549"], "source_commits": ["cc09e6549"], "source_entry_id": "17.0/migration/006", "db_id": "166c355517818678d393b7069567ebcc", "patch_ids": ["667f69d4b75688c6317ae5d996a65e38"], "statement_hash": "b675830b641f123992566dfa75b7b707a569d5aa68d9cf8407cf6231e92f53ab", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-710e087c1bef4846", "migration": true}, {"id": "17.0-138f57ed29e09c6d", "cves": [], "html": "<p>\u5728 <span>Windows</span> \u4e0a\u79fb\u9664<a href=\"/docs/17/runtime-config-wal.html#GUC-WAL-SYNC-METHOD\">wal_sync_method</a>\u7684 <code>fsync_writethrough</code> \u503c\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/d0c28601e\">\u00a7</a></p>\n<p>\u8be5\u503c\u5728 <span>Windows</span> \u4e0a\u4e0e <code>fsync</code> \u76f8\u540c\u3002</p>", "text": "\u5728 Windows \u4e0a\u79fb\u9664wal_sync_method\u7684 fsync_writethrough \u503c\uff08Thomas Munro\uff09\u00a7 \u8be5\u503c\u5728 Windows \u4e0a\u4e0e fsync \u76f8\u540c\u3002", "title": "\u5728 Windows \u4e0a\u79fb\u9664wal_sync_method\u7684 fsync_writethrough \u503c", "commits": ["d0c28601e"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "74036521b8c1d076fcbe40bcca1989f69e0278d6918f39aad6d1ae3a4e783d96", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["d0c28601e"]], "identity_text": "Remove guc-wal-sync-method value fsync_writethrough on Windows (Thomas Munro) This value was the same as fsync on Windows.", "commit_aliases": ["d0c28601e"], "source_commits": ["d0c28601e"], "source_entry_id": "17.0/migration/007", "db_id": "686b51dbf857b55e4493e96d25323fb7", "patch_ids": ["56a99d25aa1cfee9b865ec01242d5be9"], "statement_hash": "49d753c3c4b4df461d180e9b5c2fa04390d5f29a1619fb7486f3f3642a02e6c0", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-138f57ed29e09c6d", "migration": true}, {"id": "17.0-3cd4e0f22454d285", "cves": [], "html": "<p>\u66f4\u6539\u4e24\u4e2a <acronym>WAL</acronym> \u6587\u4ef6\u540d\u51fd\u6570\u5bf9\u6587\u4ef6\u8fb9\u754c\u7684\u5904\u7406\u65b9\u5f0f\uff08Kyotaro Horiguchi, Andres Freund, Bruce Momjian\uff09<a href=\"https://postgr.es/c/344afc776\">\u00a7</a></p>\n<p>\u5f53 <acronym>LSN</acronym> \u4f4d\u4e8e\u6587\u4ef6\u6bb5\u8fb9\u754c\u65f6\uff0c<a href=\"/docs/17/functions-admin.html#FUNCTIONS-ADMIN-BACKUP-TABLE\" title=\"\u8868\u00a09.95.\u00a0\u5907\u4efd\u63a7\u5236\u51fd\u6570\"><code>pg_walfile_name()</code></a> \u548c <code>pg_walfile_name_offset()</code> \u8fc7\u53bb\u4f1a\u62a5\u544a\u524d\u4e00\u4e2a <acronym>LSN</acronym> \u6bb5\u53f7\uff1b\u73b0\u5728\u5219\u8fd4\u56de\u5f53\u524d\u7684 <acronym>LSN</acronym> \u6bb5\u3002</p>", "text": "\u66f4\u6539\u4e24\u4e2a WAL \u6587\u4ef6\u540d\u51fd\u6570\u5bf9\u6587\u4ef6\u8fb9\u754c\u7684\u5904\u7406\u65b9\u5f0f\uff08Kyotaro Horiguchi, Andres Freund, Bruce Momjian\uff09\u00a7 \u5f53 LSN \u4f4d\u4e8e\u6587\u4ef6\u6bb5\u8fb9\u754c\u65f6\uff0cpg_walfile_name() \u548c pg_walfile_name_offset() \u8fc7\u53bb\u4f1a\u62a5\u544a\u524d\u4e00\u4e2a LSN \u6bb5\u53f7\uff1b\u73b0\u5728\u5219\u8fd4\u56de\u5f53\u524d\u7684 LSN \u6bb5\u3002", "title": "\u66f4\u6539\u4e24\u4e2a WAL \u6587\u4ef6\u540d\u51fd\u6570\u5bf9\u6587\u4ef6\u8fb9\u754c\u7684\u5904\u7406\u65b9\u5f0f", "commits": ["344afc776"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "4c017a2706ee6af77a5e1375ac9a7b1b5eb78f00b1538a868e611b47f4fe5aa4", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["344afc776"]], "identity_text": "Change file boundary handling of two WAL file name functions (Kyotaro Horiguchi, Andres Freund, Bruce Momjian) The functions pg_walfile_name() and pg_walfile_name_offset() used to report the previous LSN segment number when the LSN was on a file segment boundary; it now returns the current LSN segment.", "commit_aliases": ["344afc776"], "source_commits": ["344afc776"], "source_entry_id": "17.0/migration/008", "db_id": "74f74f51c54e1a4e800cca0d0dbad6e7", "patch_ids": ["7b5ba94e96e769d6dcb87c9b7bd4851c"], "statement_hash": "5d93d9f2dbe498ed1b19a20ae20a3f046e46ab976187bd5ca6490207fe428ffb", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-3cd4e0f22454d285", "migration": true}, {"id": "17.0-a946372026bf9605", "cves": [], "html": "<p>\u79fb\u9664\u5df2\u4e0d\u518d\u9700\u8981\u7684\u670d\u52a1\u5668\u53d8\u91cf <code>trace_recovery_messages</code>\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/c7a3e6b46\">\u00a7</a></p>", "text": "\u79fb\u9664\u5df2\u4e0d\u518d\u9700\u8981\u7684\u670d\u52a1\u5668\u53d8\u91cf trace_recovery_messages\uff08Bharath Rupireddy\uff09\u00a7", "title": "\u79fb\u9664\u5df2\u4e0d\u518d\u9700\u8981\u7684\u670d\u52a1\u5668\u53d8\u91cf trace_recovery_messages", "commits": ["c7a3e6b46"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "ce9369e2d0211d0cab863f3e49076330052d7966e2ea02a934e31f7e4bf04e2a", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["c7a3e6b46"]], "identity_text": "Remove server variable trace_recovery_messages since it is no longer needed (Bharath Rupireddy)", "commit_aliases": ["c7a3e6b46"], "source_commits": ["c7a3e6b46"], "source_entry_id": "17.0/migration/009", "db_id": "d5af5dde274ef58c2321c3ffbaafb5ef", "patch_ids": ["d5ea071446bbbe2a671d84cfc0242b19"], "statement_hash": "7aade84d3e7f620e4dd4bef9576c74f25c56e4202dde83bbf2b8df11a4bd7972", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-a946372026bf9605", "migration": true}, {"id": "17.0-f7c38114100e1337", "cves": [], "html": "<p>\u79fb\u9664 <a href=\"/docs/17/information-schema.html\" title=\"\u7b2c\u00a035\u00a0\u7ae0\u00a0\u4fe1\u606f\u6a21\u5f0f\">information schema</a> \u5217 <code>element_types</code>.<code>domain_default</code>\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/78806a950\">\u00a7</a></p>", "text": "\u79fb\u9664 information schema \u5217 element_types.domain_default\uff08Peter Eisentraut\uff09\u00a7", "title": "\u79fb\u9664 information schema \u5217 element_types.domain_default", "commits": ["78806a950"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "5d62346100402b6999b088d94d30476044d2c215e51414a4c8e98f55f4e3ecc2", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["78806a950"]], "identity_text": "Remove information schema column element_types.domain_default (Peter Eisentraut)", "commit_aliases": ["78806a950"], "source_commits": ["78806a950"], "source_entry_id": "17.0/migration/010", "db_id": "9c37cb22d8759b5d26153e1ea221cb69", "patch_ids": ["30cf237ba9cee48568f30ebbe683b9d0"], "statement_hash": "970aa10e9ccfcaf29ec3331161d989c81e2db7eb93ded7baa9e3248d8b60b334", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-f7c38114100e1337", "migration": true}, {"id": "17.0-fe778327ca66f6d8", "cves": [], "html": "<p>\u66f4\u6539 <span><a href=\"/docs/17/pgrowlocks.html\" title=\"F.29.\u00a0pgrowlocks \u2014 \u663e\u793a\u8868\u7684\u884c\u9501\u4fe1\u606f\">pgrowlocks</a></span> \u7684\u9501\u6a21\u5f0f\u8f93\u51fa\u6807\u7b7e\uff08Bruce Momjian\uff09<a href=\"https://postgr.es/c/15d5d7405\">\u00a7</a></p>", "text": "\u66f4\u6539 pgrowlocks \u7684\u9501\u6a21\u5f0f\u8f93\u51fa\u6807\u7b7e\uff08Bruce Momjian\uff09\u00a7", "title": "\u66f4\u6539 pgrowlocks \u7684\u9501\u6a21\u5f0f\u8f93\u51fa\u6807\u7b7e", "commits": ["15d5d7405"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "bf48956f4ebcb4404280648ff4274a48c3ddb1d6379aebcb646aeb60412ced22", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["15d5d7405"]], "identity_text": "Change pgrowlocks lock mode output labels (Bruce Momjian)", "commit_aliases": ["15d5d7405"], "source_commits": ["15d5d7405"], "source_entry_id": "17.0/migration/011", "db_id": "06ce9cce2fa546a03a191e28b7bd30ee", "patch_ids": ["e330c9f64ec04f17a9e8c6bf697de7ac"], "statement_hash": "9ba42b8852d0d181fb7574e0a5324e18eeef4be71dd49f40491f0f940508798b", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-fe778327ca66f6d8", "migration": true}, {"id": "17.0-efce6c2e39fd2d94", "cves": [], "html": "<p>\u4ece <a href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-BGWRITER-VIEW\" title=\"27.2.14.\u00a0pg_stat_bgwriter\"><code>pg_stat_bgwriter</code></a> \u4e2d\u79fb\u9664 <code>buffers_backend</code> \u548c <code>buffers_backend_fsync</code>\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/74604a37f\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u5b57\u6bb5\u88ab\u8ba4\u4e3a\u4e0e <a href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-IO-VIEW\" title=\"27.2.13.\u00a0pg_stat_io\"><code>pg_stat_io</code></a> \u4e2d\u7684\u7c7b\u4f3c\u5217\u91cd\u590d\u3002</p>", "text": "\u4ece pg_stat_bgwriter \u4e2d\u79fb\u9664 buffers_backend \u548c buffers_backend_fsync\uff08Bharath Rupireddy\uff09\u00a7 \u8fd9\u4e9b\u5b57\u6bb5\u88ab\u8ba4\u4e3a\u4e0e pg_stat_io \u4e2d\u7684\u7c7b\u4f3c\u5217\u91cd\u590d\u3002", "title": "\u4ece pg_stat_bgwriter \u4e2d\u79fb\u9664 buffers_backend \u548c buffers_backend_fsync", "commits": ["74604a37f"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "cc9214a923cc0764381fcdf9b2515a7e760e37a90a91916169ca50338a9c1050", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["74604a37f"]], "identity_text": "Remove buffers_backend and buffers_backend_fsync from pg_stat_bgwriter (Bharath Rupireddy) These fields are considered redundant to similar columns in pg_stat_io.", "commit_aliases": ["74604a37f"], "source_commits": ["74604a37f"], "source_entry_id": "17.0/migration/012", "db_id": "14ab5d3b90b1ea855319d818eb76eab5", "patch_ids": ["abfd4307ea94a77be4159e6d64f933b5"], "statement_hash": "17c3baca41bde637d84c1f675d6329efc1abaac3ea8d7b0059649d57205428f2", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-efce6c2e39fd2d94", "migration": true}, {"id": "17.0-3bc2316f8ee353e9", "cves": [], "html": "<p>\u91cd\u547d\u540d <span><a href=\"/docs/17/pgstatstatements.html\" title=\"F.30.\u00a0pg_stat_statements \u2014 \u8ddf\u8e2a SQL \u8ba1\u5212\u548c\u6267\u884c\u7edf\u8ba1\u4fe1\u606f\">pg_stat_statements</a></span> \u7684 I/O \u5757\u8bfb/\u5199\u8017\u65f6\u7edf\u8ba1\u5217\uff08Nazir Bilal Yavuz\uff09<a href=\"https://postgr.es/c/13d00729d\">\u00a7</a></p>\n<p>\u5373\u5c06 <code>blk_read_time</code> \u91cd\u547d\u540d\u4e3a <code>shared_blk_read_time</code>\uff0c\u5e76\u5c06 <code>blk_write_time</code> \u91cd\u547d\u540d\u4e3a <code>shared_blk_write_time</code>\u3002</p>", "text": "\u91cd\u547d\u540d pg_stat_statements \u7684 I/O \u5757\u8bfb/\u5199\u8017\u65f6\u7edf\u8ba1\u5217\uff08Nazir Bilal Yavuz\uff09\u00a7 \u5373\u5c06 blk_read_time \u91cd\u547d\u540d\u4e3a shared_blk_read_time\uff0c\u5e76\u5c06 blk_write_time \u91cd\u547d\u540d\u4e3a shared_blk_write_time\u3002", "title": "\u91cd\u547d\u540d pg_stat_statements \u7684 I/O \u5757\u8bfb/\u5199\u8017\u65f6\u7edf\u8ba1\u5217", "commits": ["13d00729d"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "3f6bc570146409810e5d6cb5f52cf5a0645b03ece5a11f10ab743c38ea6e2c4f", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["13d00729d"]], "identity_text": "Rename I/O block read/write timing statistics columns of pgstatstatements (Nazir Bilal Yavuz) This renames blk_read_time to shared_blk_read_time, and blk_write_time to shared_blk_write_time.", "commit_aliases": ["13d00729d"], "source_commits": ["13d00729d"], "source_entry_id": "17.0/migration/013", "db_id": "521858489a384102d9e8c61fd916177f", "patch_ids": ["ab363262e882ed9cfaced4d6c5deda53"], "statement_hash": "7a91b3290978bb385b007e52f8cd2e89093017ee02bdb6ffa835deade60c969f", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-3bc2316f8ee353e9", "migration": true}, {"id": "17.0-8e45fc51019a9684", "cves": [], "html": "<p>\u5c06 <a href=\"/docs/17/catalog-pg-attribute.html\" title=\"51.7.\u00a0pg_attribute\"><code>pg_attribute</code>.<code>attstattarget</code></a> \u548c <code>pg_statistic_ext</code>.<code>stxstattarget</code> \u8868\u793a\u9ed8\u8ba4\u7edf\u8ba1\u76ee\u6807\u7684\u65b9\u5f0f\u66f4\u6539\u4e3a <code>NULL</code>\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/4f622503d\">\u00a7</a> <a href=\"https://postgr.es/c/012460ee9\">\u00a7</a></p>", "text": "\u5c06 pg_attribute.attstattarget \u548c pg_statistic_ext.stxstattarget \u8868\u793a\u9ed8\u8ba4\u7edf\u8ba1\u76ee\u6807\u7684\u65b9\u5f0f\u66f4\u6539\u4e3a NULL\uff08Peter Eisentraut\uff09\u00a7 \u00a7", "title": "\u5c06 pg_attribute.attstattarget \u548c pg_statistic_ext.stxstattarget \u8868\u793a\u9ed8\u8ba4\u7edf\u8ba1\u76ee\u6807\u7684\u65b9\u5f0f\u66f4\u6539\u4e3a NULL", "commits": ["012460ee9", "4f622503d"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "ee9301abc5ba136b5310f2ba247b310e6f05a93b7eeb20e46912a9b9e1105ef2", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["012460ee9"], ["4f622503d"]], "identity_text": "Change pg_attribute.attstattarget and pg_statistic_ext.stxstattarget to represent the default statistics target as NULL (Peter Eisentraut)", "commit_aliases": ["012460ee9", "4f622503d"], "source_commits": ["012460ee9", "4f622503d"], "source_entry_id": "17.0/migration/014", "db_id": "55cac36d03b238bca53d532c65e1d15f", "patch_ids": ["4d496fe2fd867ecb3ba5df367b723dd0", "5ca9219021d08dfbe06ec44012775182"], "statement_hash": "9f8dd36740de6cc9002012a6b84508c090110858b69c66d48fe1b23559ef1ef2", "relations": [{"rule": 2, "type": "related", "target": "6092816ce66efe9e474514c27d1edf89", "evidence": {"same_day": true, "patch_ids": ["4d496fe2fd867ecb3ba5df367b723dd0"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-8e45fc51019a9684", "migration": true}, {"id": "17.0-9b65a0870aed3d75", "cves": [], "html": "<p>\u5c06 <a href=\"/docs/17/catalog-pg-collation.html\" title=\"51.12.\u00a0pg_collation\"><code>pg_collation</code>.<code>colliculocale</code></a> \u91cd\u547d\u540d\u4e3a <code>colllocale</code>\uff0c\u5e76\u5c06 <a href=\"/docs/17/catalog-pg-database.html\" title=\"51.15.\u00a0pg_database\"><code>pg_database</code>.<code>daticulocale</code></a> \u91cd\u547d\u540d\u4e3a <code>datlocale</code>\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/f696c0cd5\">\u00a7</a></p>", "text": "\u5c06 pg_collation.colliculocale \u91cd\u547d\u540d\u4e3a colllocale\uff0c\u5e76\u5c06 pg_database.daticulocale \u91cd\u547d\u540d\u4e3a datlocale\uff08Jeff Davis\uff09\u00a7", "title": "\u5c06 pg_collation.colliculocale \u91cd\u547d\u540d\u4e3a colllocale\uff0c\u5e76\u5c06 pg_database.daticulocale \u91cd\u547d\u540d\u4e3a datlocale", "commits": ["f696c0cd5"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "af8abeeb9a49d32e8211cd2706f29bb8263b9fd6192cf1c523b9f48c1970a015", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["f696c0cd5"]], "identity_text": "Rename pg_collation.colliculocale to colllocale and pg_database.daticulocale to datlocale (Jeff Davis)", "commit_aliases": ["f696c0cd5"], "source_commits": ["f696c0cd5"], "source_entry_id": "17.0/migration/015", "db_id": "2fc1ec23c0360d980ba0f5693d4723e3", "patch_ids": ["6bce4b4beb93e2fab15393aac74de9c5"], "statement_hash": "31b5beb1310fee3f35abba7fc3e4072aadf5a7c7ff9cf5d19212d6ac49d4a3e7", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-9b65a0870aed3d75", "migration": true}, {"id": "17.0-83ba247a819589ec", "cves": [], "html": "<p>\u5c06 <a href=\"/docs/17/progress-reporting.html#VACUUM-PROGRESS-REPORTING\" title=\"27.4.5.\u00a0VACUUM \u8fdb\u5ea6\u62a5\u544a\"><code>pg_stat_progress_vacuum</code></a> \u7684\u5217 <code>max_dead_tuples</code> \u91cd\u547d\u540d\u4e3a <code>max_dead_tuple_bytes</code>\uff0c\u5c06 <code>num_dead_tuples</code> \u91cd\u547d\u540d\u4e3a <code>num_dead_item_ids</code>\uff0c\u5e76\u65b0\u589e <code>dead_tuple_bytes</code>\uff08Masahiko Sawada\uff09<a href=\"https://postgr.es/c/667e65aac\">\u00a7</a> <a href=\"https://postgr.es/c/f1affb670\">\u00a7</a></p>", "text": "\u5c06 pg_stat_progress_vacuum \u7684\u5217 max_dead_tuples \u91cd\u547d\u540d\u4e3a max_dead_tuple_bytes\uff0c\u5c06 num_dead_tuples \u91cd\u547d\u540d\u4e3a num_dead_item_ids\uff0c\u5e76\u65b0\u589e dead_tuple_bytes\uff08Masahiko Sawada\uff09\u00a7 \u00a7", "title": "\u5c06 pg_stat_progress_vacuum \u7684\u5217 max_dead_tuples \u91cd\u547d\u540d\u4e3a max_dead_tuple_bytes\uff0c\u5c06 num_dead_tuples \u91cd\u547d\u540d\u4e3a num_dead_item_ids\uff0c\u5e76\u65b0\u589e dead_tuple_bytes", "commits": ["667e65aac", "f1affb670"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "65af897e2a50329f28af6aae9770ed9560293da4c8654adca7c0ddad884a339b", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["667e65aac"], ["f1affb670"]], "identity_text": "Rename pg_stat_progress_vacuum column max_dead_tuples to max_dead_tuple_bytes, rename num_dead_tuples to num_dead_item_ids, and add dead_tuple_bytes (Masahiko Sawada)", "commit_aliases": ["667e65aac", "f1affb670"], "source_commits": ["667e65aac", "f1affb670"], "source_entry_id": "17.0/migration/016", "db_id": "8b815f87d891f86edf6d47ab77ead937", "patch_ids": ["19217bd878f4c23be2e5b3f9cf78a8c5", "c3bd16b8d0e781c5494b9d539a9c8ca5"], "statement_hash": "1ec0e026d2f88826348b7e2efb08134a22a0db506d06897ee4468704cc8a9a07", "relations": [{"rule": 2, "type": "related", "target": "0321eade032d4cb38972f9e735a7b2c6", "evidence": {"same_day": true, "patch_ids": ["19217bd878f4c23be2e5b3f9cf78a8c5"], "ambiguous_patch_ids": ["5d86834128896d8abb2bc88737d46417"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-83ba247a819589ec", "migration": true}, {"id": "17.0-3340286b2ddec381", "cves": [], "html": "<p>\u91cd\u547d\u540d\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-SLRU-VIEW\" title=\"27.2.25.\u00a0pg_stat_slru\"><code>pg_stat_slru</code></a> \u4e2d\u7684 <acronym>SLRU</acronym> \u5217\uff08Alvaro Herrera\uff09<a href=\"https://postgr.es/c/bcdfa5f2e\">\u00a7</a></p>\n<p><a href=\"/docs/17/monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE\" title=\"\u8868\u00a027.36.\u00a0\u9644\u52a0\u7edf\u8ba1\u51fd\u6570\"><code>pg_stat_reset_slru()</code></a> \u63a5\u53d7\u7684\u5217\u540d\u4e5f\u968f\u4e4b\u66f4\u6539\u3002</p>", "text": "\u91cd\u547d\u540d\u7cfb\u7edf\u89c6\u56fe pg_stat_slru \u4e2d\u7684 SLRU \u5217\uff08Alvaro Herrera\uff09\u00a7 pg_stat_reset_slru() \u63a5\u53d7\u7684\u5217\u540d\u4e5f\u968f\u4e4b\u66f4\u6539\u3002", "title": "\u91cd\u547d\u540d\u7cfb\u7edf\u89c6\u56fe pg_stat_slru \u4e2d\u7684 SLRU \u5217", "commits": ["bcdfa5f2e"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/17.0/#RELEASE-17-MIGRATION", "source_hash": "a50a2fc722f62186e84169429a30b38153d552ded961651dc2e6c3f3837021d6", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["bcdfa5f2e"]], "identity_text": "Rename SLRU columns in system view pg_stat_slru (Alvaro Herrera) The column names accepted by pg_stat_reset_slru() are also changed.", "commit_aliases": ["bcdfa5f2e"], "source_commits": ["bcdfa5f2e"], "source_entry_id": "17.0/migration/017", "db_id": "e152ac4c1f5f8d987d2d4164db352c5d", "patch_ids": ["823fd6f92af518e49e4224ce249d8d5f"], "statement_hash": "f9dfa9d3d7a6e9d7b97c2431147c8763d3306f572c9616d361cfbc7d62e22366", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=17.0#17.0-3340286b2ddec381", "migration": true}, {"id": "17.0-21f3d2b047f89aaf", "cves": [], "html": "<p>\u5141\u8bb8\u4f18\u5316\u5668\u901a\u8fc7\u8003\u8651\u8f83\u65e9\u884c\u8f93\u51fa\u5b50\u53e5\u4e2d\u6240\u5f15\u7528\u5217\u7684\u7edf\u8ba1\u4fe1\u606f\u548c\u6392\u5e8f\u987a\u5e8f\u6765\u6539\u8fdb <acronym>CTE</acronym> \u8ba1\u5212\uff08Jian Guo, Richard Guo, Tom Lane\uff09<a href=\"https://postgr.es/c/f7816aec2\">\u00a7</a> <a href=\"https://postgr.es/c/a65724dfa\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4f18\u5316\u5668\u901a\u8fc7\u8003\u8651\u8f83\u65e9\u884c\u8f93\u51fa\u5b50\u53e5\u4e2d\u6240\u5f15\u7528\u5217\u7684\u7edf\u8ba1\u4fe1\u606f\u548c\u6392\u5e8f\u987a\u5e8f\u6765\u6539\u8fdb CTE \u8ba1\u5212\uff08Jian Guo, Richard Guo, Tom Lane\uff09\u00a7 \u00a7", "title": "\u5141\u8bb8\u4f18\u5316\u5668\u901a\u8fc7\u8003\u8651\u8f83\u65e9\u884c\u8f93\u51fa\u5b50\u53e5\u4e2d\u6240\u5f15\u7528\u5217\u7684\u7edf\u8ba1\u4fe1\u606f\u548c\u6392\u5e8f\u987a\u5e8f\u6765\u6539\u8fdb CTE \u8ba1\u5212", "commits": ["a65724dfa", "f7816aec2"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-OPTIMIZER", "source_hash": "eb7e5faf6f425197daedcb76b78cbc39f042ce8562cdef12882543b7d7b4070e", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["a65724dfa"], ["f7816aec2"]], "identity_text": "Allow the optimizer to improve CTE plans by considering the statistics and sort order of columns referenced in earlier row output clauses (Jian Guo, Richard Guo, Tom Lane)", "commit_aliases": ["a65724dfa", "f7816aec2"], "source_commits": ["a65724dfa", "f7816aec2"], "source_entry_id": "17.0/changes/001", "db_id": "1bb1a2c448bb08cbe14be346046d20fd", "patch_ids": ["dd6efb8af27f478ece630d77b62169aa", "e36c8e7bc021005d10ff030521cc9739"], "statement_hash": "4bf0f103f215559ebf931992edf6c51246aefce339d92536b4458efdd2e66ee7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-21f3d2b047f89aaf", "migration": false}, {"id": "17.0-cba148decc6176eb", "cves": [], "html": "<p>\u6539\u8fdb\u5bf9 <code>IS NOT NULL</code> \u548c <code>IS NULL</code> \u67e5\u8be2\u9650\u5236\u6761\u4ef6\u7684\u4f18\u5316\uff08David Rowley, Richard Guo, Andy Fan\uff09<a href=\"https://postgr.es/c/b262ad440\">\u00a7</a> <a href=\"https://postgr.es/c/3af704098\">\u00a7</a></p>\n<p>\u4ece\u5bf9 <code>NOT NULL</code> \u5217\u7684\u67e5\u8be2\u4e2d\u79fb\u9664 <code>IS NOT NULL</code> \u9650\u5236\u6761\u4ef6\uff0c\u5e76\u5728\u6307\u5b9a <code>IS NULL</code> \u65f6\u6d88\u9664\u5bf9 <code>NOT NULL</code> \u5217\u7684\u626b\u63cf\u3002</p>", "text": "\u6539\u8fdb\u5bf9 IS NOT NULL \u548c IS NULL \u67e5\u8be2\u9650\u5236\u6761\u4ef6\u7684\u4f18\u5316\uff08David Rowley, Richard Guo, Andy Fan\uff09\u00a7 \u00a7 \u4ece\u5bf9 NOT NULL \u5217\u7684\u67e5\u8be2\u4e2d\u79fb\u9664 IS NOT NULL \u9650\u5236\u6761\u4ef6\uff0c\u5e76\u5728\u6307\u5b9a IS NULL \u65f6\u6d88\u9664\u5bf9 NOT NULL \u5217\u7684\u626b\u63cf\u3002", "title": "\u6539\u8fdb\u5bf9 IS NOT NULL \u548c IS NULL \u67e5\u8be2\u9650\u5236\u6761\u4ef6\u7684\u4f18\u5316", "commits": ["3af704098", "b262ad440"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-OPTIMIZER", "source_hash": "7c05c9caff1d1ce0caea80d6711c0798c93c60e752dd8c7418b054db78b85639", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["3af704098"], ["b262ad440"]], "identity_text": "Improve optimization of IS NOT NULL and IS NULL query restrictions (David Rowley, Richard Guo, Andy Fan) Remove IS NOT NULL restrictions from queries on NOT NULL columns and eliminate scans on NOT NULL columns if IS NULL is specified.", "commit_aliases": ["3af704098", "b262ad440"], "source_commits": ["3af704098", "b262ad440"], "source_entry_id": "17.0/changes/002", "db_id": "6a8a68dcc3d0afa8fe41f9c0cb346cdb", "patch_ids": ["f0600bde890998500bbb618c1b685216", "ff7fbff5acc4e14db82db8a232d3033c"], "statement_hash": "5b89ca77e9383dc291180695491f866ffe59cf3f577677d5b7c4ce737ae70704", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-cba148decc6176eb", "migration": false}, {"id": "17.0-29e5b755857cf8f0", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u5e03\u5c14\u5217\u7684 <code>IS [NOT] UNKNOWN</code> \u6761\u4ef6\u4e0b\u8fdb\u884c\u5206\u533a\u526a\u679d\uff08David Rowley\uff09<a href=\"https://postgr.es/c/07c36c133\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728\u5e03\u5c14\u5217\u7684 IS [NOT] UNKNOWN \u6761\u4ef6\u4e0b\u8fdb\u884c\u5206\u533a\u526a\u679d\uff08David Rowley\uff09\u00a7", "title": "\u5141\u8bb8\u5728\u5e03\u5c14\u5217\u7684 IS [NOT] UNKNOWN \u6761\u4ef6\u4e0b\u8fdb\u884c\u5206\u533a\u526a\u679d", "commits": ["07c36c133"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-OPTIMIZER", "source_hash": "d331f3bd8a6586468f0229c43b2feee5a2f695567cd0e8dcdc42726c3c46211a", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["07c36c133"]], "identity_text": "Allow partition pruning on boolean columns on IS [NOT] UNKNOWN conditionals (David Rowley)", "commit_aliases": ["07c36c133"], "source_commits": ["07c36c133"], "source_entry_id": "17.0/changes/003", "db_id": "afda858770617dec4b1376034bb38216", "patch_ids": ["8ed535aa9c37315fc74364911854ff1a"], "statement_hash": "7ccc721d6d3c781fb621fd9ec123f4b31861655429858dc2d7b5fd09658778ed", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-29e5b755857cf8f0", "migration": false}, {"id": "17.0-f5b70abfde92c84e", "cves": [], "html": "<p>\u6539\u8fdb\u5728\u4f7f\u7528\u5305\u542b\u64cd\u4f5c\u7b26 &lt;@ \u548c @&gt; \u65f6\u5bf9\u8303\u56f4\u503c\u7684\u4f18\u5316\uff08Kim Johan Andersson, Jian He\uff09<a href=\"https://postgr.es/c/075df6b20\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5728\u4f7f\u7528\u5305\u542b\u64cd\u4f5c\u7b26 <@ \u548c @> \u65f6\u5bf9\u8303\u56f4\u503c\u7684\u4f18\u5316\uff08Kim Johan Andersson, Jian He\uff09\u00a7", "title": "\u6539\u8fdb\u5728\u4f7f\u7528\u5305\u542b\u64cd\u4f5c\u7b26 <@ \u548c @> \u65f6\u5bf9\u8303\u56f4\u503c\u7684\u4f18\u5316", "commits": ["075df6b20"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-OPTIMIZER", "source_hash": "aacddfb193bc2a88d93a27a0db3c55fe9903d1488e18294d0d495a09314a6258", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["075df6b20"]], "identity_text": "Improve optimization of range values when using containment operators <@ and @> (Kim Johan Andersson, Jian He)", "commit_aliases": ["075df6b20"], "source_commits": ["075df6b20"], "source_entry_id": "17.0/changes/004", "db_id": "d1f7be8974ba06dfc203556a75d0b63e", "patch_ids": ["9da08e61b99722f0b36328e0507510c9"], "statement_hash": "377e3b1f92476ceb43181983d5d69e7003385bb96cba0986365b251bdffb3e3a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-f5b70abfde92c84e", "migration": false}, {"id": "17.0-507120ad4033838d", "cves": [], "html": "<p>\u5141\u8bb8\u5c06\u76f8\u5173 <code>IN</code> \u5b50\u67e5\u8be2\u8f6c\u6362\u4e3a\u8fde\u63a5\uff08Andy Fan, Tom Lane\uff09<a href=\"https://postgr.es/c/9f1337639\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5c06\u76f8\u5173 IN \u5b50\u67e5\u8be2\u8f6c\u6362\u4e3a\u8fde\u63a5\uff08Andy Fan, Tom Lane\uff09\u00a7", "title": "\u5141\u8bb8\u5c06\u76f8\u5173 IN \u5b50\u67e5\u8be2\u8f6c\u6362\u4e3a\u8fde\u63a5", "commits": ["9f1337639"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-OPTIMIZER", "source_hash": "7a79baf5daa1de4f6a03744cccacba82c5839fa158e77bb1bb1f25a654a465e7", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["9f1337639"]], "identity_text": "Allow correlated IN subqueries to be transformed into joins (Andy Fan, Tom Lane)", "commit_aliases": ["9f1337639"], "source_commits": ["9f1337639"], "source_entry_id": "17.0/changes/005", "db_id": "bd6d6519713b08c9c7cf110314e70ea2", "patch_ids": ["9ff41ac8faf0b88877f55a3102aa7ca1"], "statement_hash": "291f61f422e10fcd5437a30e9e3675618ff3f18d9cc162e4146d6283e1f82851", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-507120ad4033838d", "migration": false}, {"id": "17.0-d3e2e7215929a4e8", "cves": [], "html": "<p>\u6539\u8fdb\u5728\u5206\u533a\u8868\u3001\u7ee7\u627f\u7236\u8868\u4ee5\u53ca <code>UNION ALL</code> \u67e5\u8be2\u4e0a\u5bf9 <code>LIMIT</code> \u5b50\u53e5\u7684\u4f18\u5316\uff08Andy Fan, David Rowley\uff09<a href=\"https://postgr.es/c/a8a968a82\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5728\u5206\u533a\u8868\u3001\u7ee7\u627f\u7236\u8868\u4ee5\u53ca UNION ALL \u67e5\u8be2\u4e0a\u5bf9 LIMIT \u5b50\u53e5\u7684\u4f18\u5316\uff08Andy Fan, David Rowley\uff09\u00a7", "title": "\u6539\u8fdb\u5728\u5206\u533a\u8868\u3001\u7ee7\u627f\u7236\u8868\u4ee5\u53ca UNION ALL \u67e5\u8be2\u4e0a\u5bf9 LIMIT \u5b50\u53e5\u7684\u4f18\u5316", "commits": ["a8a968a82"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-OPTIMIZER", "source_hash": "c20d48a847b378c3bd762b7d9a14f2460fd0fe52bebfc264431dc7ee88ee8c5f", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["a8a968a82"]], "identity_text": "Improve optimization of the LIMIT clause on partitioned tables, inheritance parents, and UNION ALL queries (Andy Fan, David Rowley)", "commit_aliases": ["a8a968a82"], "source_commits": ["a8a968a82"], "source_entry_id": "17.0/changes/006", "db_id": "83282acbc3be079c637d32e6d6cebf05", "patch_ids": ["62d46325d2a848ee5e5caa049662a48e"], "statement_hash": "d1029e52b0d66482bdf975a702319bffddd519a8ef83347d01199c89fd7c09ab", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-d3e2e7215929a4e8", "migration": false}, {"id": "17.0-ece45a3bbdee6c93", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u5e76\u884c\u8fd0\u884c\u67e5\u8be2\u8282\u70b9\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/e08d74ca1\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u5e76\u884c\u8fd0\u884c\u67e5\u8be2\u8282\u70b9\uff08Tom Lane\uff09\u00a7", "title": "\u5141\u8bb8\u5728\u66f4\u591a\u60c5\u51b5\u4e0b\u5e76\u884c\u8fd0\u884c\u67e5\u8be2\u8282\u70b9", "commits": ["e08d74ca1"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-OPTIMIZER", "source_hash": "2fc5e7bbf46cfd7d1e6bd86828ce9e60d4fd41ae29f16ceb508e584a880ca2b8", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["e08d74ca1"]], "identity_text": "Allow query nodes to be run in parallel in more cases (Tom Lane)", "commit_aliases": ["e08d74ca1"], "source_commits": ["e08d74ca1"], "source_entry_id": "17.0/changes/007", "db_id": "0fa6c000b6b77e4811956857239c9210", "patch_ids": ["8a7fca928d7277fb722987d1122d15ff"], "statement_hash": "f7b3830c016aba7f85d380badc1eb852144eb342878a16dafbc4505cc6aa5295", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-ece45a3bbdee6c93", "migration": false}, {"id": "17.0-cf4ceaa1bff1d02c", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u5185\u90e8\u91cd\u65b0\u6392\u5217 <code>GROUP BY</code> \u5217\uff0c\u4ee5\u5339\u914d <code>ORDER BY</code>\uff08Andrei Lepikhov, Teodor Sigaev\uff09<a href=\"https://postgr.es/c/0452b461b\">\u00a7</a></p>\n<p>\u8fd9\u53ef\u4f7f\u7528\u670d\u52a1\u5668\u53d8\u91cf<a href=\"/docs/17/runtime-config-query.html#GUC-ENABLE-GROUPBY-REORDERING\">enable_group_by_reordering</a>\u7981\u7528\u3002</p>", "text": "\u5141\u8bb8\u5728\u5185\u90e8\u91cd\u65b0\u6392\u5217 GROUP BY \u5217\uff0c\u4ee5\u5339\u914d ORDER BY\uff08Andrei Lepikhov, Teodor Sigaev\uff09\u00a7 \u8fd9\u53ef\u4f7f\u7528\u670d\u52a1\u5668\u53d8\u91cfenable_group_by_reordering\u7981\u7528\u3002", "title": "\u5141\u8bb8\u5728\u5185\u90e8\u91cd\u65b0\u6392\u5217 GROUP BY \u5217\uff0c\u4ee5\u5339\u914d ORDER BY", "commits": ["0452b461b"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-OPTIMIZER", "source_hash": "69a7a8adce04ec7d64e11c11fa22957f06009f1ebf52db9fbe59082ecb65e7b1", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["0452b461b"]], "identity_text": "Allow GROUP BY columns to be internally ordered to match ORDER BY (Andrei Lepikhov, Teodor Sigaev) This can be disabled using server variable guc-enable-groupby-reordering .", "commit_aliases": ["0452b461b"], "source_commits": ["0452b461b"], "source_entry_id": "17.0/changes/008", "db_id": "02f929ca7ad29c477bf05b612f478447", "patch_ids": ["31d9db254e62be9c4a36570707e5f98d"], "statement_hash": "540cd1f010beb51842f38059da03d4ee92041d1eb1624736616488927742e9b9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-cf4ceaa1bff1d02c", "migration": false}, {"id": "17.0-22c36132e8bec1c4", "cves": [], "html": "<p>\u5141\u8bb8 <code>UNION</code>\uff08\u4e0d\u5e26 <code>ALL</code>\uff09\u4f7f\u7528 MergeAppend\uff08David Rowley\uff09<a href=\"https://postgr.es/c/66c0185a3\">\u00a7</a></p>", "text": "\u5141\u8bb8 UNION\uff08\u4e0d\u5e26 ALL\uff09\u4f7f\u7528 MergeAppend\uff08David Rowley\uff09\u00a7", "title": "\u5141\u8bb8 UNION\uff08\u4e0d\u5e26 ALL\uff09\u4f7f\u7528 MergeAppend", "commits": ["66c0185a3"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-OPTIMIZER", "source_hash": "e539e116a16a6c36494f626d124d5c74cd131b41507643ef1dbb92491985d324", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["66c0185a3"]], "identity_text": "Allow UNION (without ALL) to use MergeAppend (David Rowley)", "commit_aliases": ["66c0185a3"], "source_commits": ["66c0185a3"], "source_entry_id": "17.0/changes/009", "db_id": "1b4c2b726811d73067a879fe0f452060", "patch_ids": ["f7a0eee21e8cda45a208b9a2c8ab935b"], "statement_hash": "c0538bd4e938c0a4a086c5cd87a4327760cbfadc09e5fca423956ff44d44a406", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-22c36132e8bec1c4", "migration": false}, {"id": "17.0-97a630bc1449a3d3", "cves": [], "html": "<p>\u4fee\u590d MergeAppend \u8ba1\u5212\uff0c\u4f7f\u5176\u66f4\u51c6\u786e\u5730\u8ba1\u7b97\u9700\u8981\u6392\u5e8f\u7684\u884c\u6570\uff08Alexander Kuzmenkov\uff09<a href=\"https://postgr.es/c/9d1a5354f\">\u00a7</a></p>", "text": "\u4fee\u590d MergeAppend \u8ba1\u5212\uff0c\u4f7f\u5176\u66f4\u51c6\u786e\u5730\u8ba1\u7b97\u9700\u8981\u6392\u5e8f\u7684\u884c\u6570\uff08Alexander Kuzmenkov\uff09\u00a7", "title": "\u4fee\u590d MergeAppend \u8ba1\u5212\uff0c\u4f7f\u5176\u66f4\u51c6\u786e\u5730\u8ba1\u7b97\u9700\u8981\u6392\u5e8f\u7684\u884c\u6570", "commits": ["9d1a5354f"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "bugfix", "source_url": "/docs/release/17.0/#RELEASE-17-OPTIMIZER", "source_hash": "91b1492c15711f380b4f4a5023adc25acd41631c44a22e0e49bd30385524a85a", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["9d1a5354f"]], "identity_text": "Fix MergeAppend plans to more accurately compute the number of rows that need to be sorted (Alexander Kuzmenkov)", "commit_aliases": ["9d1a5354f"], "source_commits": ["9d1a5354f"], "source_entry_id": "17.0/changes/010", "db_id": "3f2526f05d7f915d14b9d71a273f8a05", "patch_ids": ["51394b47048db81db5c8ca3b8f195e0c"], "statement_hash": "1b89e926d198570600425805c23c395ea3e13a6e84af61090ed0ada7f0584d69", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=17.0#17.0-97a630bc1449a3d3", "migration": false}, {"id": "17.0-f89209bb66394a3b", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/17/gist.html\" title=\"64.2.\u00a0GiST \u7d22\u5f15\">GiST</a> \u548c <a href=\"/docs/17/spgist.html\" title=\"64.3.\u00a0SP-GiST \u7d22\u5f15\">SP-GiST</a> \u7d22\u5f15\u53c2\u4e0e\u589e\u91cf\u6392\u5e8f\uff08Miroslav Bendik\uff09<a href=\"https://postgr.es/c/625d5b3ca\">\u00a7</a></p>\n<p>\u8fd9\u5bf9\u4e8e\u9996\u5217\u5177\u6709 GiST \u6216 SP-GiST \u7d22\u5f15\u800c\u5176\u4ed6\u5217\u6ca1\u6709\u7684 <code>ORDER BY</code> \u5b50\u53e5\u5c24\u5176\u6709\u7528\u3002</p>", "text": "\u5141\u8bb8 GiST \u548c SP-GiST \u7d22\u5f15\u53c2\u4e0e\u589e\u91cf\u6392\u5e8f\uff08Miroslav Bendik\uff09\u00a7 \u8fd9\u5bf9\u4e8e\u9996\u5217\u5177\u6709 GiST \u6216 SP-GiST \u7d22\u5f15\u800c\u5176\u4ed6\u5217\u6ca1\u6709\u7684 ORDER BY \u5b50\u53e5\u5c24\u5176\u6709\u7528\u3002", "title": "\u5141\u8bb8 GiST \u548c SP-GiST \u7d22\u5f15\u53c2\u4e0e\u589e\u91cf\u6392\u5e8f", "commits": ["625d5b3ca"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-OPTIMIZER", "source_hash": "61d6f668fbc86ce8556101e58d4a9a263c5ec7c6fcf48ab1111902ca64253204", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["625d5b3ca"]], "identity_text": "Allow GiST and SP-GiST indexes to be part of incremental sorts (Miroslav Bendik) This is particularly useful for ORDER BY clauses where the first column has a GiST and SP-GiST index, and other columns do not.", "commit_aliases": ["625d5b3ca"], "source_commits": ["625d5b3ca"], "source_entry_id": "17.0/changes/011", "db_id": "1e78c474d4dc8fead2cee8adc6b881e1", "patch_ids": ["dfbbdfe017c5c71c4ef9dfa0c1c47eb9"], "statement_hash": "94587849bd7b7e481c3f6b17c98668f4483a63ce346e12aef6e0b1a243ff9858", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-f89209bb66394a3b", "migration": false}, {"id": "17.0-5bdd18c3a0665318", "cves": [], "html": "<p>\u5411 <a href=\"/docs/17/view-pg-stats.html\" title=\"52.27.\u00a0pg_stats\"><code>pg_stats</code></a> \u6dfb\u52a0\u5217\uff0c\u4ee5\u62a5\u544a\u8303\u56f4\u7c7b\u578b\u7684\u76f4\u65b9\u56fe\u4fe1\u606f\uff08Egor Rogov, Soumyadeep Chakraborty\uff09<a href=\"https://postgr.es/c/bc3c8db8a\">\u00a7</a></p>", "text": "\u5411 pg_stats \u6dfb\u52a0\u5217\uff0c\u4ee5\u62a5\u544a\u8303\u56f4\u7c7b\u578b\u7684\u76f4\u65b9\u56fe\u4fe1\u606f\uff08Egor Rogov, Soumyadeep Chakraborty\uff09\u00a7", "title": "\u5411 pg_stats \u6dfb\u52a0\u5217\uff0c\u4ee5\u62a5\u544a\u8303\u56f4\u7c7b\u578b\u7684\u76f4\u65b9\u56fe\u4fe1\u606f", "commits": ["bc3c8db8a"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-OPTIMIZER", "source_hash": "2a5511c28248dc15f2f1b168c9387eec29b7ad33e15680f3c8d3d57fe1ae5fa7", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["bc3c8db8a"]], "identity_text": "Add columns to pg_stats to report range-type histogram information (Egor Rogov, Soumyadeep Chakraborty)", "commit_aliases": ["bc3c8db8a"], "source_commits": ["bc3c8db8a"], "source_entry_id": "17.0/changes/012", "db_id": "037099a7ff600d9768772dd9aa4fd36e", "patch_ids": ["a63e4162a922bb5fcc04165cdac5e2c6"], "statement_hash": "cf3c84a11f3b613b0a873d0b9a0575c0838ec84ca1864ada35f16c59866938af", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-5bdd18c3a0665318", "migration": false}, {"id": "17.0-d95aa3ed60f61d89", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/17/btree.html\" title=\"64.1.\u00a0B-\u6811\u7d22\u5f15\">B-\u6811</a>\u7d22\u5f15\u66f4\u9ad8\u6548\u5730\u67e5\u627e\u4e00\u7ec4\u503c\uff0c\u4f8b\u5982\u4f7f\u7528\u5e38\u91cf\u7684 <code>IN</code> \u5b50\u53e5\u6240\u63d0\u4f9b\u7684\u503c\uff08Peter Geoghegan, Matthias van de Meent\uff09<a href=\"https://postgr.es/c/5bf748b86\">\u00a7</a></p>", "text": "\u5141\u8bb8 B-\u6811\u7d22\u5f15\u66f4\u9ad8\u6548\u5730\u67e5\u627e\u4e00\u7ec4\u503c\uff0c\u4f8b\u5982\u4f7f\u7528\u5e38\u91cf\u7684 IN \u5b50\u53e5\u6240\u63d0\u4f9b\u7684\u503c\uff08Peter Geoghegan, Matthias van de Meent\uff09\u00a7", "title": "\u5141\u8bb8 B-\u6811\u7d22\u5f15\u66f4\u9ad8\u6548\u5730\u67e5\u627e\u4e00\u7ec4\u503c\uff0c\u4f8b\u5982\u4f7f\u7528\u5e38\u91cf\u7684 IN \u5b50\u53e5\u6240\u63d0\u4f9b\u7684\u503c", "commits": ["5bf748b86"], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-INDEXES", "source_hash": "b78577eba77ed7afb71b32e574365c6fc2aae6b448b0920298f0706a96cffef8", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["5bf748b86"]], "identity_text": "Allow btree indexes to more efficiently find a set of values, such as those supplied by IN clauses using constants (Peter Geoghegan, Matthias van de Meent)", "commit_aliases": ["5bf748b86"], "source_commits": ["5bf748b86"], "source_entry_id": "17.0/changes/013", "db_id": "e47d7b6056c6ec1e9e008a67eb552a53", "patch_ids": ["62f02f1e9bb968e242e65dd52e8d5cc8"], "statement_hash": "3ee0ee4a8dd9858c539ca1b15a832632c8c4d1dcce33b59c7bf1fe24a90b6473", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-d95aa3ed60f61d89", "migration": false}, {"id": "17.0-c837db8b17f85f1f", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u521b\u5efa <a href=\"/docs/17/brin.html\" title=\"64.5.\u00a0BRIN \u7d22\u5f15\"><acronym>BRIN</acronym></a> \u7d22\u5f15\uff08Tomas Vondra, Matthias van de Meent\uff09<a href=\"https://postgr.es/c/b43757171\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4f7f\u7528\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u521b\u5efa BRIN \u7d22\u5f15\uff08Tomas Vondra, Matthias van de Meent\uff09\u00a7", "title": "\u5141\u8bb8\u4f7f\u7528\u5e76\u884c\u5de5\u4f5c\u8fdb\u7a0b\u521b\u5efa BRIN \u7d22\u5f15", "commits": ["b43757171"], "section": "\u670d\u52a1\u5668 / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-INDEXES", "source_hash": "c770c0ed1566fb3735ece3a13dc379fd18ddafff4833a97d43abecbd1dbe6e30", "section_path": ["\u670d\u52a1\u5668", "\u7d22\u5f15"], "commit_groups": [["b43757171"]], "identity_text": "Allow BRIN indexes to be created using parallel workers (Tomas Vondra, Matthias van de Meent)", "commit_aliases": ["b43757171"], "source_commits": ["b43757171"], "source_entry_id": "17.0/changes/014", "db_id": "357f54e0344a35006dbfb9a0f7949ed5", "patch_ids": ["06897789dd8c7b7411b4080c6ca4173e"], "statement_hash": "92760d5d96ba8a77fdf7906cef8e52436561bf69711442768c57d6c0e0daca29", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-c837db8b17f85f1f", "migration": false}, {"id": "17.0-d9db03aa5820139c", "cves": [], "html": "<p>\u5141\u8bb8 vacuum \u66f4\u9ad8\u6548\u5730\u79fb\u9664\u548c\u51bb\u7ed3\u5143\u7ec4\uff08Melanie Plageman, Heikki Linnakangas\uff09<a href=\"https://postgr.es/c/6dbb49026\">\u00a7</a></p>\n<p>vacuum \u4ea7\u751f\u7684 <acronym>WAL</acronym> \u6d41\u91cf\u4e5f\u66f4\u7d27\u51d1\u3002</p>", "text": "\u5141\u8bb8 vacuum \u66f4\u9ad8\u6548\u5730\u79fb\u9664\u548c\u51bb\u7ed3\u5143\u7ec4\uff08Melanie Plageman, Heikki Linnakangas\uff09\u00a7 vacuum \u4ea7\u751f\u7684 WAL \u6d41\u91cf\u4e5f\u66f4\u7d27\u51d1\u3002", "title": "\u5141\u8bb8 vacuum \u66f4\u9ad8\u6548\u5730\u79fb\u9664\u548c\u51bb\u7ed3\u5143\u7ec4", "commits": ["6dbb49026"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/17.0/#RELEASE-17-PERFORMANCE", "source_hash": "8b0684783c44f4a5b4a678b52f856b2edff73b477c6a1537b0ac04cd3bba07d4", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["6dbb49026"]], "identity_text": "Allow vacuum to more efficiently remove and freeze tuples (Melanie Plageman, Heikki Linnakangas) WAL traffic caused by vacuum is also more compact.", "commit_aliases": ["6dbb49026"], "source_commits": ["6dbb49026"], "source_entry_id": "17.0/changes/015", "db_id": "89a653da6e7aa69a72c4cd8c75af4011", "patch_ids": ["5d86834128896d8abb2bc88737d46417"], "statement_hash": "863cb996bf9728565e861341970344c05db07fae1a00e77d1a4149fad751578b", "relations": [{"rule": 2, "type": "related", "target": "0321eade032d4cb38972f9e735a7b2c6", "evidence": {"same_day": true, "patch_ids": ["5d86834128896d8abb2bc88737d46417"], "ambiguous_patch_ids": ["5d86834128896d8abb2bc88737d46417"]}}], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=17.0#17.0-d9db03aa5820139c", "migration": false}, {"id": "17.0-fbfbfc68d8d0c85a", "cves": [], "html": "<p>\u5141\u8bb8 vacuum \u66f4\u9ad8\u6548\u5730\u5b58\u50a8\u5143\u7ec4\u5f15\u7528\uff08Masahiko Sawada, John Naylor\uff09<a href=\"https://postgr.es/c/ee1b30f12\">\u00a7</a> <a href=\"https://postgr.es/c/30e144287\">\u00a7</a> <a href=\"https://postgr.es/c/667e65aac\">\u00a7</a> <a href=\"https://postgr.es/c/6dbb49026\">\u00a7</a></p>\n<p>\u6b64\u5916\uff0c\u5f53<a href=\"/docs/17/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM\">maintenance_work_mem</a>\u6216<a href=\"/docs/17/runtime-config-resource.html#GUC-AUTOVACUUM-WORK-MEM\">autovacuum_work_mem</a>\u66f4\u9ad8\u65f6\uff0cvacuum \u4e0d\u518d\u88ab\u9759\u9ed8\u9650\u5236\u4e3a\u6700\u591a\u4f7f\u7528 1 GB \u5185\u5b58\u3002</p>", "text": "\u5141\u8bb8 vacuum \u66f4\u9ad8\u6548\u5730\u5b58\u50a8\u5143\u7ec4\u5f15\u7528\uff08Masahiko Sawada, John Naylor\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u6b64\u5916\uff0c\u5f53maintenance_work_mem\u6216autovacuum_work_mem\u66f4\u9ad8\u65f6\uff0cvacuum \u4e0d\u518d\u88ab\u9759\u9ed8\u9650\u5236\u4e3a\u6700\u591a\u4f7f\u7528 1 GB \u5185\u5b58\u3002", "title": "\u5141\u8bb8 vacuum \u66f4\u9ad8\u6548\u5730\u5b58\u50a8\u5143\u7ec4\u5f15\u7528", "commits": ["30e144287", "667e65aac", "6dbb49026", "ee1b30f12"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/17.0/#RELEASE-17-PERFORMANCE", "source_hash": "88aab9801a30303866f8b26ed1f8d771db39f2e1168233d760b9634698385d1e", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["30e144287"], ["667e65aac"], ["6dbb49026"], ["ee1b30f12"]], "identity_text": "Allow vacuum to more efficiently store tuple references (Masahiko Sawada, John Naylor) Additionally, vacuum is no longer silently limited to one gigabyte of memory when guc-maintenance-work-mem or guc-autovacuum-work-mem are higher.", "commit_aliases": ["30e144287", "667e65aac", "6dbb49026", "ee1b30f12"], "source_commits": ["30e144287", "667e65aac", "6dbb49026", "ee1b30f12"], "source_entry_id": "17.0/changes/016", "db_id": "0321eade032d4cb38972f9e735a7b2c6", "patch_ids": ["19217bd878f4c23be2e5b3f9cf78a8c5", "263f7b224629a60b546cdf35f2c8f04d", "5d86834128896d8abb2bc88737d46417", "d577808acab8c13e3546b8fdc5244b59"], "statement_hash": "3961e80042faf2476c0e265de934a1e6a51c2364064d288b1ef4b1ceac3951fd", "relations": [{"rule": 2, "type": "related", "target": "89a653da6e7aa69a72c4cd8c75af4011", "evidence": {"same_day": true, "patch_ids": ["5d86834128896d8abb2bc88737d46417"], "ambiguous_patch_ids": ["5d86834128896d8abb2bc88737d46417"]}}, {"rule": 2, "type": "related", "target": "8b815f87d891f86edf6d47ab77ead937", "evidence": {"same_day": true, "patch_ids": ["19217bd878f4c23be2e5b3f9cf78a8c5"], "ambiguous_patch_ids": ["5d86834128896d8abb2bc88737d46417"]}}], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=17.0#17.0-fbfbfc68d8d0c85a", "migration": false}, {"id": "17.0-874b4bd54a2c1d8a", "cves": [], "html": "<p>\u4f18\u5316\u5bf9\u6ca1\u6709\u7d22\u5f15\u7684\u5173\u7cfb\u6267\u884c vacuum\uff08Melanie Plageman\uff09<a href=\"https://postgr.es/c/c120550ed\">\u00a7</a></p>", "text": "\u4f18\u5316\u5bf9\u6ca1\u6709\u7d22\u5f15\u7684\u5173\u7cfb\u6267\u884c vacuum\uff08Melanie Plageman\uff09\u00a7", "title": "\u4f18\u5316\u5bf9\u6ca1\u6709\u7d22\u5f15\u7684\u5173\u7cfb\u6267\u884c vacuum", "commits": ["c120550ed"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/17.0/#RELEASE-17-PERFORMANCE", "source_hash": "26bdc93a519bcef710427cb4162833e37bc622f782d89cf18292a5115e90c369", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["c120550ed"]], "identity_text": "Optimize vacuuming of relations with no indexes (Melanie Plageman)", "commit_aliases": ["c120550ed"], "source_commits": ["c120550ed"], "source_entry_id": "17.0/changes/017", "db_id": "29c98733afaed69876880f25a5bd0a3a", "patch_ids": ["ae078cc360de92d7cd946d75c30a97ec"], "statement_hash": "051182da5dd288b44aa410530ab97cf2319fcf1d040f71e6501feac20e3225c8", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=17.0#17.0-874b4bd54a2c1d8a", "migration": false}, {"id": "17.0-c65ccd956d69cf60", "cves": [], "html": "<p>\u5c06<a href=\"/docs/17/runtime-config-resource.html#GUC-VACUUM-BUFFER-USAGE-LIMIT\">vacuum_buffer_usage_limit</a>\u7684\u9ed8\u8ba4\u503c\u63d0\u9ad8\u5230 2MB\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/98f320eb2\">\u00a7</a></p>", "text": "\u5c06vacuum_buffer_usage_limit\u7684\u9ed8\u8ba4\u503c\u63d0\u9ad8\u5230 2MB\uff08Thomas Munro\uff09\u00a7", "title": "\u5c06vacuum_buffer_usage_limit\u7684\u9ed8\u8ba4\u503c\u63d0\u9ad8\u5230 2MB", "commits": ["98f320eb2"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/17.0/#RELEASE-17-PERFORMANCE", "source_hash": "1fc1936feebddb0a83369b1307de0a6397a8d2f1f0ba15bf2accac68978c5868", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["98f320eb2"]], "identity_text": "Increase default guc-vacuum-buffer-usage-limit to 2MB (Thomas Munro)", "commit_aliases": ["98f320eb2"], "source_commits": ["98f320eb2"], "source_entry_id": "17.0/changes/018", "db_id": "429f08850a5507730819360568b7fd60", "patch_ids": ["cf3e200b56ea66a8ac20982966cc7e0a"], "statement_hash": "bff2838d1874f02abef53ccdae72774c30923efed6e73e07eab40437a98f44d2", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=17.0#17.0-c65ccd956d69cf60", "migration": false}, {"id": "17.0-799eff850bcef54e", "cves": [], "html": "<p>\u6539\u8fdb\u5728\u68c0\u67e5\u5177\u6709\u5927\u91cf\u6210\u5458\u5173\u7cfb\u7684\u89d2\u8272\u65f6\u7684\u6027\u80fd\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/d365ae705\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5728\u68c0\u67e5\u5177\u6709\u5927\u91cf\u6210\u5458\u5173\u7cfb\u7684\u89d2\u8272\u65f6\u7684\u6027\u80fd\uff08Nathan Bossart\uff09\u00a7", "title": "\u6539\u8fdb\u5728\u68c0\u67e5\u5177\u6709\u5927\u91cf\u6210\u5458\u5173\u7cfb\u7684\u89d2\u8272\u65f6\u7684\u6027\u80fd", "commits": ["d365ae705"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/17.0/#RELEASE-17-PERFORMANCE", "source_hash": "a5bab4fe4e0e2828cdb7f446e61cd01091f63865ddba851fba597fd574eff596", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["d365ae705"]], "identity_text": "Improve performance when checking roles with many memberships (Nathan Bossart)", "commit_aliases": ["d365ae705"], "source_commits": ["d365ae705"], "source_entry_id": "17.0/changes/019", "db_id": "1f69c59a8d7500e2107f67e43c831452", "patch_ids": ["7b48237dcb0079ef5c7120e5c665926b"], "statement_hash": "2000eb2cc1ec0d03372e17fc712f5c63189f1643f6dfccc4f94ce895057a1340", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=17.0#17.0-799eff850bcef54e", "migration": false}, {"id": "17.0-8ce446e784c1c780", "cves": [], "html": "<p>\u6539\u8fdb\u9ad8\u7ade\u4e89\u60c5\u51b5\u4e0b <acronym>WAL</acronym> \u5199\u5165\u7684\u6027\u80fd\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/71e4cc6b8\">\u00a7</a></p>", "text": "\u6539\u8fdb\u9ad8\u7ade\u4e89\u60c5\u51b5\u4e0b WAL \u5199\u5165\u7684\u6027\u80fd\uff08Bharath Rupireddy\uff09\u00a7", "title": "\u6539\u8fdb\u9ad8\u7ade\u4e89\u60c5\u51b5\u4e0b WAL \u5199\u5165\u7684\u6027\u80fd", "commits": ["71e4cc6b8"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/17.0/#RELEASE-17-PERFORMANCE", "source_hash": "b2e271cf4149ed959aa3318289bf0140336306ce01490fb429ce6d7aeec38890", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["71e4cc6b8"]], "identity_text": "Improve performance of heavily-contended WAL writes (Bharath Rupireddy)", "commit_aliases": ["71e4cc6b8"], "source_commits": ["71e4cc6b8"], "source_entry_id": "17.0/changes/020", "db_id": "d375c35da4155ab032e21fbcc476dd77", "patch_ids": ["b054c6c72fb3b0472bab138c84ff4fac"], "statement_hash": "bbb0111fa6745baeacf49d13736b2be398611d2221fb4e8d1f8d3d06c79130e9", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=17.0#17.0-8ce446e784c1c780", "migration": false}, {"id": "17.0-b7102f98a13db53a", "cves": [], "html": "<p>\u6539\u8fdb\u5411\u5ba2\u6237\u7aef\u4f20\u8f93\u5927\u5757\u6570\u636e\u65f6\u7684\u6027\u80fd\uff08Melih Mutlu\uff09<a href=\"https://postgr.es/c/c4ab7da60\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5411\u5ba2\u6237\u7aef\u4f20\u8f93\u5927\u5757\u6570\u636e\u65f6\u7684\u6027\u80fd\uff08Melih Mutlu\uff09\u00a7", "title": "\u6539\u8fdb\u5411\u5ba2\u6237\u7aef\u4f20\u8f93\u5927\u5757\u6570\u636e\u65f6\u7684\u6027\u80fd", "commits": ["c4ab7da60"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/17.0/#RELEASE-17-PERFORMANCE", "source_hash": "a9949c4f225707e425c687c60c71aa6f226a4d17fd57a7e488fb8504b40228ff", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["c4ab7da60"]], "identity_text": "Improve performance when transferring large blocks of data to a client (Melih Mutlu)", "commit_aliases": ["c4ab7da60"], "source_commits": ["c4ab7da60"], "source_entry_id": "17.0/changes/021", "db_id": "a8be4eab6c4155c2f1a285c8a63fbf57", "patch_ids": ["4a4db20a21552518a62918f9ed5ac8ae"], "statement_hash": "6c2257fb99e4b22d3aa1a5f070824710925a378ef24d8f53f3ffcb8d508fd612", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=17.0#17.0-b7102f98a13db53a", "migration": false}, {"id": "17.0-1228a167a39e7872", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528\u65b0\u7684\u7cfb\u7edf\u53d8\u91cf<a href=\"/docs/17/runtime-config-resource.html#GUC-IO-COMBINE-LIMIT\">io_combine_limit</a>\u5bf9\u6587\u4ef6\u7cfb\u7edf\u8bfb\u53d6\u8fdb\u884c\u5206\u7ec4\uff08Thomas Munro, Andres Freund, Melanie Plageman, Nazir Bilal Yavuz\uff09<a href=\"https://postgr.es/c/210622c60\">\u00a7</a> <a href=\"https://postgr.es/c/b7b0f3f27\">\u00a7</a> <a href=\"https://postgr.es/c/041b96802\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4f7f\u7528\u65b0\u7684\u7cfb\u7edf\u53d8\u91cfio_combine_limit\u5bf9\u6587\u4ef6\u7cfb\u7edf\u8bfb\u53d6\u8fdb\u884c\u5206\u7ec4\uff08Thomas Munro, Andres Freund, Melanie Plageman, Nazir Bilal Yavuz\uff09\u00a7 \u00a7 \u00a7", "title": "\u5141\u8bb8\u4f7f\u7528\u65b0\u7684\u7cfb\u7edf\u53d8\u91cfio_combine_limit\u5bf9\u6587\u4ef6\u7cfb\u7edf\u8bfb\u53d6\u8fdb\u884c\u5206\u7ec4", "commits": ["041b96802", "210622c60", "b7b0f3f27"], "section": "\u670d\u52a1\u5668 / \u4e00\u822c\u6027\u80fd", "category": "performance", "source_url": "/docs/release/17.0/#RELEASE-17-PERFORMANCE", "source_hash": "7a996e1e8d1e0db680837628d2311fd11fd77b422463dd8a5766b3f76e04a227", "section_path": ["\u670d\u52a1\u5668", "\u4e00\u822c\u6027\u80fd"], "commit_groups": [["041b96802"], ["210622c60"], ["b7b0f3f27"]], "identity_text": "Allow the grouping of file system reads with the new system variable guc-io-combine-limit (Thomas Munro, Andres Freund, Melanie Plageman, Nazir Bilal Yavuz)", "commit_aliases": ["041b96802", "210622c60", "b7b0f3f27"], "source_commits": ["041b96802", "210622c60", "b7b0f3f27"], "source_entry_id": "17.0/changes/022", "db_id": "12c213ac3532e0b672d8cd5c054de3b6", "patch_ids": ["71aa6e0943bc5420ec25b6b9d9ae11f8", "bfe9972f87a328ed7f16052e6163b069", "c61f80906577b0b3bb271a25cce60613"], "statement_hash": "b28444131aae3fe1f2a3b05878dddf96908adb9beb611ecfc33ce2fbc1d3704f", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=17.0#17.0-1228a167a39e7872", "migration": false}, {"id": "17.0-1cccee587cb0a42d", "cves": [], "html": "<p>\u521b\u5efa\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-CHECKPOINTER-VIEW\" title=\"27.2.15.\u00a0pg_stat_checkpointer\"><code>pg_stat_checkpointer</code></a>\uff08Bharath Rupireddy, Anton A. Melnikov, Alexander Korotkov\uff09<a href=\"https://postgr.es/c/96f052613\">\u00a7</a> <a href=\"https://postgr.es/c/12915a58e\">\u00a7</a> <a href=\"https://postgr.es/c/e820db5b5\">\u00a7</a></p>\n<p>\u5df2\u5c06\u76f8\u5173\u5217\u4ece <a href=\"/docs/17/monitoring-stats.html#PG-STAT-BGWRITER-VIEW\" title=\"\u8868\u00a027.24.\u00a0pg_stat_bgwriter \u89c6\u56fe\"><code>pg_stat_bgwriter</code></a> \u4e2d\u79fb\u9664\uff0c\u5e76\u52a0\u5165\u8fd9\u4e2a\u65b0\u7cfb\u7edf\u89c6\u56fe\u3002</p>", "text": "\u521b\u5efa\u7cfb\u7edf\u89c6\u56fe pg_stat_checkpointer\uff08Bharath Rupireddy, Anton A. Melnikov, Alexander Korotkov\uff09\u00a7 \u00a7 \u00a7 \u5df2\u5c06\u76f8\u5173\u5217\u4ece pg_stat_bgwriter \u4e2d\u79fb\u9664\uff0c\u5e76\u52a0\u5165\u8fd9\u4e2a\u65b0\u7cfb\u7edf\u89c6\u56fe\u3002", "title": "\u521b\u5efa\u7cfb\u7edf\u89c6\u56fe pg_stat_checkpointer", "commits": ["12915a58e", "96f052613", "e820db5b5"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MONITORING", "source_hash": "ce6909ffeb67901e0f2084b59385aa14d039d7b745560d56de4fae9972193996", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["12915a58e"], ["96f052613"], ["e820db5b5"]], "identity_text": "Create system view pg_stat_checkpointer (Bharath Rupireddy, Anton A. Melnikov, Alexander Korotkov) Relevant columns have been removed from pg_stat_bgwriter and added to this new system view.", "commit_aliases": ["12915a58e", "96f052613", "e820db5b5"], "source_commits": ["12915a58e", "96f052613", "e820db5b5"], "source_entry_id": "17.0/changes/023", "db_id": "4ff4dee639ca21ea61f8cdea1ee7877a", "patch_ids": ["087f770ccd9135f0e8e89744ec2a27a6", "742374f840e495b68971a6443adcdbc2", "cb09d0627a3b7b094f7b77724f47a27d"], "statement_hash": "bee5193ee322640d95b37ce95b101f1ab5429c4e2d2c28f0a6b8614b7a3cd6d0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-1cccee587cb0a42d", "migration": false}, {"id": "17.0-2d825eb8d3c5ff0e", "cves": [], "html": "<p>\u6539\u8fdb\u5bf9\u91cd\u7f6e\u7edf\u8ba1\u4fe1\u606f\u7684\u63a7\u5236\uff08Atsushi Torikoshi, Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/23c8c0c8f\">\u00a7</a> <a href=\"https://postgr.es/c/2e8a0edc2\">\u00a7</a> <a href=\"https://postgr.es/c/e5cca6288\">\u00a7</a></p>\n<p>\u5141\u8bb8 <a href=\"/docs/17/monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE\" title=\"\u8868\u00a027.36.\u00a0\u9644\u52a0\u7edf\u8ba1\u51fd\u6570\"><code>pg_stat_reset_shared()</code></a>\uff08\u65e0\u53c2\u6570\uff09\u548c pg_stat_reset_shared(<code>NULL</code>) \u91cd\u7f6e\u6240\u6709\u5171\u4eab\u7edf\u8ba1\u4fe1\u606f\u3002\u5141\u8bb8 pg_stat_reset_shared('slru') \u548c <a href=\"/docs/17/monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE\" title=\"\u8868\u00a027.36.\u00a0\u9644\u52a0\u7edf\u8ba1\u51fd\u6570\"><code>pg_stat_reset_slru()</code></a>\uff08\u65e0\u53c2\u6570\uff09\u91cd\u7f6e <acronym>SLRU</acronym> \u7edf\u8ba1\u4fe1\u606f\uff0c\u800c\u8fd9\u5728\u4ee5\u524d\u53ea\u80fd\u901a\u8fc7 pg_stat_reset_slru(NULL) \u5b9e\u73b0\u3002</p>", "text": "\u6539\u8fdb\u5bf9\u91cd\u7f6e\u7edf\u8ba1\u4fe1\u606f\u7684\u63a7\u5236\uff08Atsushi Torikoshi, Bharath Rupireddy\uff09\u00a7 \u00a7 \u00a7 \u5141\u8bb8 pg_stat_reset_shared()\uff08\u65e0\u53c2\u6570\uff09\u548c pg_stat_reset_shared(NULL) \u91cd\u7f6e\u6240\u6709\u5171\u4eab\u7edf\u8ba1\u4fe1\u606f\u3002\u5141\u8bb8 pg_stat_reset_shared('slru') \u548c pg_stat_reset_slru()\uff08\u65e0\u53c2\u6570\uff09\u91cd\u7f6e SLRU \u7edf\u8ba1\u4fe1\u606f\uff0c\u800c\u8fd9\u5728\u4ee5\u524d\u53ea\u80fd\u901a\u8fc7 pg_stat_reset_slru(NULL) \u5b9e\u73b0\u3002", "title": "\u6539\u8fdb\u5bf9\u91cd\u7f6e\u7edf\u8ba1\u4fe1\u606f\u7684\u63a7\u5236", "commits": ["23c8c0c8f", "2e8a0edc2", "e5cca6288"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MONITORING", "source_hash": "2bd79591fd925d674f888e34fecb0fd89ffba2a3e3706b105378a61942507b7e", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["23c8c0c8f"], ["2e8a0edc2"], ["e5cca6288"]], "identity_text": "Improve control over resetting statistics (Atsushi Torikoshi, Bharath Rupireddy) Allow pg_stat_reset_shared() (with no arguments) and pg_stat_reset_shared(NULL) to reset all shared statistics. Allow pg_stat_reset_shared('slru') and pg_stat_reset_slru() (with no arguments) to reset SLRU statistics, which was already possible with pg_stat_reset_slru(NULL).", "commit_aliases": ["23c8c0c8f", "2e8a0edc2", "e5cca6288"], "source_commits": ["23c8c0c8f", "2e8a0edc2", "e5cca6288"], "source_entry_id": "17.0/changes/024", "db_id": "f2b5aa80f146d0e7d1b3950b4f9af0a5", "patch_ids": ["0f89436d4abd3658e358b0083424c2db", "152cf4781cee5381f1b3c3c707b98b2a", "2a691e57c66c1c257390331e256a72b5"], "statement_hash": "ba0121413efd5b7bea0783769e5fe956746dd08cd6f5982f7e2aaed3f69424f2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-2d825eb8d3c5ff0e", "migration": false}, {"id": "17.0-a754f9aefb902646", "cves": [], "html": "<p>\u6dfb\u52a0\u4e0e\u4ece\u5907\u4efd\u6062\u590d <acronym>WAL</acronym> \u76f8\u5173\u7684\u65e5\u5fd7\u6d88\u606f\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/1d35f705e\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u4e0e\u4ece\u5907\u4efd\u6062\u590d WAL \u76f8\u5173\u7684\u65e5\u5fd7\u6d88\u606f\uff08Andres Freund\uff09\u00a7", "title": "\u6dfb\u52a0\u4e0e\u4ece\u5907\u4efd\u6062\u590d WAL \u76f8\u5173\u7684\u65e5\u5fd7\u6d88\u606f", "commits": ["1d35f705e"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MONITORING", "source_hash": "af3649c1b838530888d2aaff89eef7b48875e6620e0b1d10f9ac0d5500e874a9", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["1d35f705e", "8b34cff33", "edbd1b41a"]], "identity_text": "Add log messages related to WAL recovery from backups (Andres Freund)", "commit_aliases": ["1d35f705e", "8b34cff33", "edbd1b41a"], "source_commits": ["1d35f705e"], "source_entry_id": "17.0/changes/025", "db_id": "081db8f02dd3ff1c924983d249d21687", "patch_ids": ["a50efcd5666996dbc2b769e9fc73c42b"], "statement_hash": "78b1925536a684c59f0def51c40edf65a3f0ebed9c67f9fe2d98be549b76a0c0", "relations": [{"rule": 2, "type": "related", "target": "9cd394066681d267db871196e7aac9a5", "evidence": {"same_day": false, "patch_ids": ["a50efcd5666996dbc2b769e9fc73c42b"]}}, {"rule": 2, "type": "related", "target": "d9ceaf3109bc4845b8831721fb3487e2", "evidence": {"same_day": false, "patch_ids": ["a50efcd5666996dbc2b769e9fc73c42b"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-a754f9aefb902646", "migration": false}, {"id": "17.0-566d55cf042146a5", "cves": [], "html": "<p>\u4e3a <code>trust</code> \u8fde\u63a5\u6dfb\u52a0<a href=\"/docs/17/runtime-config-logging.html#GUC-LOG-CONNECTIONS\">log_connections</a>\u65e5\u5fd7\u884c\uff08Jacob Champion\uff09<a href=\"https://postgr.es/c/e48b19c5d\">\u00a7</a></p>", "text": "\u4e3a trust \u8fde\u63a5\u6dfb\u52a0log_connections\u65e5\u5fd7\u884c\uff08Jacob Champion\uff09\u00a7", "title": "\u4e3a trust \u8fde\u63a5\u6dfb\u52a0log_connections\u65e5\u5fd7\u884c", "commits": ["e48b19c5d"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MONITORING", "source_hash": "b2770477ea3879a0752b2f4622db20222820342b3484b16498ca54d5a5b029b3", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["e48b19c5d"]], "identity_text": "Add guc-log-connections log line for trust connections (Jacob Champion)", "commit_aliases": ["e48b19c5d"], "source_commits": ["e48b19c5d"], "source_entry_id": "17.0/changes/026", "db_id": "02d50f684e092404a61af07389c7bccb", "patch_ids": ["367c956098d0ca49d5c002320e082720"], "statement_hash": "827565d027538fdb6b92ada1eb79111f76750202d2af887855dd09d2dc7d19d5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-566d55cf042146a5", "migration": false}, {"id": "17.0-79325dc055bef580", "cves": [], "html": "<p>\u6dfb\u52a0\u65e5\u5fd7\u6d88\u606f\u4ee5\u62a5\u544a walsender \u83b7\u53d6\u548c\u91ca\u653e\u590d\u5236\u69fd\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/7c3fb505b\">\u00a7</a></p>\n<p>\u8fd9\u7531\u670d\u52a1\u5668\u53d8\u91cf<a href=\"/docs/17/runtime-config-logging.html#GUC-LOG-REPLICATION-COMMANDS\">log_replication_commands</a>\u542f\u7528\u3002</p>", "text": "\u6dfb\u52a0\u65e5\u5fd7\u6d88\u606f\u4ee5\u62a5\u544a walsender \u83b7\u53d6\u548c\u91ca\u653e\u590d\u5236\u69fd\uff08Bharath Rupireddy\uff09\u00a7 \u8fd9\u7531\u670d\u52a1\u5668\u53d8\u91cflog_replication_commands\u542f\u7528\u3002", "title": "\u6dfb\u52a0\u65e5\u5fd7\u6d88\u606f\u4ee5\u62a5\u544a walsender \u83b7\u53d6\u548c\u91ca\u653e\u590d\u5236\u69fd", "commits": ["7c3fb505b"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MONITORING", "source_hash": "9699908c99c547ef170b47cee317c402c77d68df6edde33ed1a057ca77b7797f", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["7c3fb505b"]], "identity_text": "Add log message to report walsender acquisition and release of replication slots (Bharath Rupireddy) This is enabled by the server variable guc-log-replication-commands .", "commit_aliases": ["7c3fb505b"], "source_commits": ["7c3fb505b"], "source_entry_id": "17.0/changes/027", "db_id": "ec20bac29969bfab10f2f2d62b191d5d", "patch_ids": ["eb924a0f2df506f5b700628a7f5f135e"], "statement_hash": "a98d6d9118479d4d4468c7e9487cc5017f02a43d3407d392d798108681b22d9e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-79325dc055bef580", "migration": false}, {"id": "17.0-b23f02f3ca5bb83b", "cves": [], "html": "<p>\u6dfb\u52a0\u7528\u4e8e\u62a5\u544a\u7b49\u5f85\u4e8b\u4ef6\u7c7b\u578b\u7684\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/17/view-pg-wait-events.html\" title=\"52.36.\u00a0pg_wait_events\"><code>pg_wait_events</code></a>\uff08Bertrand Drouvot\uff09<a href=\"https://postgr.es/c/1e68e43d3\">\u00a7</a></p>\n<p>\u8fd9\u6709\u52a9\u4e8e\u4e3a <a href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW\" title=\"27.2.3.\u00a0pg_stat_activity\"><code>pg_stat_activity</code></a> \u4e2d\u62a5\u544a\u7684\u7b49\u5f85\u4e8b\u4ef6\u8865\u5145\u63cf\u8ff0\u3002</p>", "text": "\u6dfb\u52a0\u7528\u4e8e\u62a5\u544a\u7b49\u5f85\u4e8b\u4ef6\u7c7b\u578b\u7684\u7cfb\u7edf\u89c6\u56fe pg_wait_events\uff08Bertrand Drouvot\uff09\u00a7 \u8fd9\u6709\u52a9\u4e8e\u4e3a pg_stat_activity \u4e2d\u62a5\u544a\u7684\u7b49\u5f85\u4e8b\u4ef6\u8865\u5145\u63cf\u8ff0\u3002", "title": "\u6dfb\u52a0\u7528\u4e8e\u62a5\u544a\u7b49\u5f85\u4e8b\u4ef6\u7c7b\u578b\u7684\u7cfb\u7edf\u89c6\u56fe pg_wait_events", "commits": ["1e68e43d3"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MONITORING", "source_hash": "27ae26ad8cc5a2d1f7096ed1606a2483d06a7583c94f6a42df8c254dad756062", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["1e68e43d3"]], "identity_text": "Add system view pg_wait_events that reports wait event types (Bertrand Drouvot) This is useful for adding descriptions to wait events reported in pg_stat_activity.", "commit_aliases": ["1e68e43d3"], "source_commits": ["1e68e43d3"], "source_entry_id": "17.0/changes/028", "db_id": "67eefbc682ee74a140bbc4e7ab7052e5", "patch_ids": ["afdfc65550d7b2d8273774dc2a6ad40e"], "statement_hash": "329e0406b985caaef112b3b714b1bd1e659323b624f805878ddabd3c1a8db9d5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-b23f02f3ca5bb83b", "migration": false}, {"id": "17.0-0df4c4c5a0657442", "cves": [], "html": "<p>\u4e3a\u68c0\u67e5\u70b9\u5ef6\u8fdf\u6dfb\u52a0<a href=\"/docs/17/view-pg-wait-events.html\" title=\"52.36.\u00a0pg_wait_events\">\u7b49\u5f85\u4e8b\u4ef6</a>\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/0013ba290\">\u00a7</a></p>", "text": "\u4e3a\u68c0\u67e5\u70b9\u5ef6\u8fdf\u6dfb\u52a0\u7b49\u5f85\u4e8b\u4ef6\uff08Thomas Munro\uff09\u00a7", "title": "\u4e3a\u68c0\u67e5\u70b9\u5ef6\u8fdf\u6dfb\u52a0\u7b49\u5f85\u4e8b\u4ef6", "commits": ["0013ba290"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MONITORING", "source_hash": "fb2754377ad0fca7e28ef81cd3ac93708f772f02907fc3fd4102022d576e893c", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["0013ba290"]], "identity_text": "Add wait events for checkpoint delays (Thomas Munro)", "commit_aliases": ["0013ba290"], "source_commits": ["0013ba290"], "source_entry_id": "17.0/changes/029", "db_id": "7ee802098f5e08ab4d48921edb84ad78", "patch_ids": ["7c35d8c42f00048e52b9c7bf593aedc9"], "statement_hash": "b8e3d1ea661bb8a6e52340233d110d5db405b0b4f710584f8c62526cd899e27a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-0df4c4c5a0657442", "migration": false}, {"id": "17.0-fa902bad70142407", "cves": [], "html": "<p>\u5141\u8bb8 vacuum \u62a5\u544a\u7d22\u5f15\u5904\u7406\u8fdb\u5ea6\uff08Sami Imseih\uff09<a href=\"https://postgr.es/c/46ebdfe16\">\u00a7</a></p>\n<p>\u8fd9\u663e\u793a\u5728\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/17/progress-reporting.html#PG-STAT-PROGRESS-VACUUM-VIEW\" title=\"\u8868\u00a027.45.\u00a0pg_stat_progress_vacuum \u89c6\u56fe\"><code>pg_stat_progress_vacuum</code></a> \u7684 <code>indexes_total</code> \u548c <code>indexes_processed</code> \u5217\u4e2d\u3002</p>", "text": "\u5141\u8bb8 vacuum \u62a5\u544a\u7d22\u5f15\u5904\u7406\u8fdb\u5ea6\uff08Sami Imseih\uff09\u00a7 \u8fd9\u663e\u793a\u5728\u7cfb\u7edf\u89c6\u56fe pg_stat_progress_vacuum \u7684 indexes_total \u548c indexes_processed \u5217\u4e2d\u3002", "title": "\u5141\u8bb8 vacuum \u62a5\u544a\u7d22\u5f15\u5904\u7406\u8fdb\u5ea6", "commits": ["46ebdfe16"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MONITORING", "source_hash": "dd8e0f3197528258609dfe0022a57bef954c7b0484009a66e8fe0080c848fb24", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["46ebdfe16"]], "identity_text": "Allow vacuum to report the progress of index processing (Sami Imseih) This appears in system view pg_stat_progress_vacuum columns indexes_total and indexes_processed.", "commit_aliases": ["46ebdfe16"], "source_commits": ["46ebdfe16"], "source_entry_id": "17.0/changes/030", "db_id": "c5c7cbdb59e6deed181907c953124138", "patch_ids": ["cafdf10d5ba59268c2e85d53aee580a0"], "statement_hash": "d23ac243a7bc5d546cf7df7711bfbc19cc0cd0c8e50d156dfcfd6e2a22e51987", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-fa902bad70142407", "migration": false}, {"id": "17.0-4d8398c063d79d83", "cves": [], "html": "<p>\u5141\u8bb8\u6388\u4e88\u6267\u884c\u7ef4\u62a4\u64cd\u4f5c\u7684\u6743\u9650\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/ecb0fd337\">\u00a7</a></p>\n<p>\u8be5\u6743\u9650\u53ef\u4ee5\u901a\u8fc7 <a href=\"/docs/17/ddl-priv.html#DDL-PRIV-MAINTAIN\"><code>MAINTAIN</code></a> \u6743\u9650\u6309\u8868\u6388\u4e88\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u9884\u5b9a\u4e49\u89d2\u8272 <a href=\"/docs/17/predefined-roles.html\" title=\"21.5.\u00a0\u9884\u5b9a\u4e49\u89d2\u8272\"><code>pg_maintain</code></a> \u6309\u89d2\u8272\u6388\u4e88\u3002\u5141\u8bb8\u7684\u64cd\u4f5c\u5305\u62ec <code>VACUUM</code>\u3001<code>ANALYZE</code>\u3001<code>REINDEX</code>\u3001<code>REFRESH MATERIALIZED VIEW</code>\u3001<code>CLUSTER</code> \u548c <code>LOCK TABLE</code>\u3002</p>", "text": "\u5141\u8bb8\u6388\u4e88\u6267\u884c\u7ef4\u62a4\u64cd\u4f5c\u7684\u6743\u9650\uff08Nathan Bossart\uff09\u00a7 \u8be5\u6743\u9650\u53ef\u4ee5\u901a\u8fc7 MAINTAIN \u6743\u9650\u6309\u8868\u6388\u4e88\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u9884\u5b9a\u4e49\u89d2\u8272 pg_maintain \u6309\u89d2\u8272\u6388\u4e88\u3002\u5141\u8bb8\u7684\u64cd\u4f5c\u5305\u62ec VACUUM\u3001ANALYZE\u3001REINDEX\u3001REFRESH MATERIALIZED VIEW\u3001CLUSTER \u548c LOCK TABLE\u3002", "title": "\u5141\u8bb8\u6388\u4e88\u6267\u884c\u7ef4\u62a4\u64cd\u4f5c\u7684\u6743\u9650", "commits": ["ecb0fd337"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PRIVILEGES", "source_hash": "1d5e47f964ed6d3c4db011ee49c95929bb92fe66f0dc0079b44508d70c910573", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["ecb0fd337"]], "identity_text": "Allow granting the right to perform maintenance operations (Nathan Bossart) The permission can be granted on a per-table basis using the MAINTAIN privilege and on a per-role basis via the pg_maintain predefined role. Permitted operations are VACUUM, ANALYZE, REINDEX, REFRESH MATERIALIZED VIEW, CLUSTER, and LOCK TABLE.", "commit_aliases": ["ecb0fd337"], "source_commits": ["ecb0fd337"], "source_entry_id": "17.0/changes/031", "db_id": "3c4ad5da1b8247231d399e670b07da7b", "patch_ids": ["aa0b503bc887127b8e5d3149c16e07e0"], "statement_hash": "fbeffe8eb5d4d5b6245edb61861482563d36590033be7d0d70030a552a3060a6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-4d8398c063d79d83", "migration": false}, {"id": "17.0-c36635dc495463b8", "cves": [], "html": "<p>\u5141\u8bb8\u62e5\u6709 <a href=\"/docs/17/predefined-roles.html\" title=\"21.5.\u00a0\u9884\u5b9a\u4e49\u89d2\u8272\"><code>pg_monitor</code></a> \u6210\u5458\u8d44\u683c\u7684\u89d2\u8272\u6267\u884c <a href=\"/docs/17/functions-info.html#FUNCTIONS-INFO-SESSION-TABLE\" title=\"\u8868\u00a09.69.\u00a0\u4f1a\u8bdd\u4fe1\u606f\u51fd\u6570\"><code>pg_current_logfile()</code></a>\uff08Pavlo Golub, Nathan Bossart\uff09<a href=\"https://postgr.es/c/8d8afd48d\">\u00a7</a></p>", "text": "\u5141\u8bb8\u62e5\u6709 pg_monitor \u6210\u5458\u8d44\u683c\u7684\u89d2\u8272\u6267\u884c pg_current_logfile()\uff08Pavlo Golub, Nathan Bossart\uff09\u00a7", "title": "\u5141\u8bb8\u62e5\u6709 pg_monitor \u6210\u5458\u8d44\u683c\u7684\u89d2\u8272\u6267\u884c pg_current_logfile()", "commits": ["8d8afd48d"], "section": "\u670d\u52a1\u5668 / \u6743\u9650", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PRIVILEGES", "source_hash": "2d6c7cb9d2c173633f6483c902dd8d68d8d9c2a9a31987a180db5fcce92f59d6", "section_path": ["\u670d\u52a1\u5668", "\u6743\u9650"], "commit_groups": [["8d8afd48d"]], "identity_text": "Allow roles with pg_monitor membership to execute pg_current_logfile() (Pavlo Golub, Nathan Bossart)", "commit_aliases": ["8d8afd48d"], "source_commits": ["8d8afd48d"], "source_entry_id": "17.0/changes/032", "db_id": "be8e2a4581679bfeccefddd4e31fb152", "patch_ids": ["57582ff9912b3675cea8b711467c32f9"], "statement_hash": "4b700a41fc70986c9af65fcbfa4bc4b6947ef052353d2930f51bbbd63c125f38", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-c36635dc495463b8", "migration": false}, {"id": "17.0-5ba1de59b0d7de2a", "cves": [], "html": "<p>\u6dfb\u52a0\u7cfb\u7edf\u53d8\u91cf<a href=\"/docs/17/runtime-config-compatible.html#GUC-ALLOW-ALTER-SYSTEM\">allow_alter_system</a>\uff0c\u4ee5\u7981\u6b62 <a href=\"/docs/17/sql-altersystem.html\" title=\"ALTER SYSTEM\"><code>ALTER SYSTEM</code></a>\uff08Jelte Fennema-Nio, Gabriele Bartolini\uff09<a href=\"https://postgr.es/c/d3ae2a24f\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u7cfb\u7edf\u53d8\u91cfallow_alter_system\uff0c\u4ee5\u7981\u6b62 ALTER SYSTEM\uff08Jelte Fennema-Nio, Gabriele Bartolini\uff09\u00a7", "title": "\u6dfb\u52a0\u7cfb\u7edf\u53d8\u91cfallow_alter_system\uff0c\u4ee5\u7981\u6b62 ALTER SYSTEM", "commits": ["d3ae2a24f"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-CONFIG", "source_hash": "88f6127163180e0ee409226148bb35afa26ada14b246c3a228571a4ed17c822e", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["d3ae2a24f"]], "identity_text": "Add system variable guc-allow-alter-system to disallow ALTER SYSTEM (Jelte Fennema-Nio, Gabriele Bartolini)", "commit_aliases": ["d3ae2a24f"], "source_commits": ["d3ae2a24f"], "source_entry_id": "17.0/changes/033", "db_id": "335f4d3b5a3daa9f992752bf2706358a", "patch_ids": ["f07abd4c68f23ba492eb27978c766e3b"], "statement_hash": "a19a91db051058837f8011545c9f3ca2adc6e84f1672ee35bbaa8ab0a4d3c9b6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-5ba1de59b0d7de2a", "migration": false}, {"id": "17.0-7915ee0b2bac2b4f", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/17/sql-altersystem.html\" title=\"ALTER SYSTEM\"><code>ALTER SYSTEM</code></a> \u8bbe\u7f6e\u672a\u8bc6\u522b\u7684\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u53d8\u91cf\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/2d870b4ae\">\u00a7</a></p>\n<p>\u8fd9\u4e5f\u53ef\u4ee5\u901a\u8fc7 <a href=\"/docs/17/sql-grant.html\" title=\"GRANT\"><code>GRANT ON PARAMETER</code></a> \u5b9e\u73b0\u3002</p>", "text": "\u5141\u8bb8 ALTER SYSTEM \u8bbe\u7f6e\u672a\u8bc6\u522b\u7684\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u53d8\u91cf\uff08Tom Lane\uff09\u00a7 \u8fd9\u4e5f\u53ef\u4ee5\u901a\u8fc7 GRANT ON PARAMETER \u5b9e\u73b0\u3002", "title": "\u5141\u8bb8 ALTER SYSTEM \u8bbe\u7f6e\u672a\u8bc6\u522b\u7684\u81ea\u5b9a\u4e49\u670d\u52a1\u5668\u53d8\u91cf", "commits": ["2d870b4ae"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-CONFIG", "source_hash": "5f355187378d93868a4a735da861f0b9756a645332b772d73b1a693de5a16923", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["2d870b4ae"]], "identity_text": "Allow ALTER SYSTEM to set unrecognized custom server variables (Tom Lane) This is also possible with GRANT ON PARAMETER.", "commit_aliases": ["2d870b4ae"], "source_commits": ["2d870b4ae"], "source_entry_id": "17.0/changes/034", "db_id": "18f85cfff077cc490ddbf8bbe52f2412", "patch_ids": ["0814af1fa093fb0ae26328d389428103"], "statement_hash": "81b4c4a9af4b2cc85dac9d6228b2b19809d7bf4f1c7c31ea9113f4c316922600", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-7915ee0b2bac2b4f", "migration": false}, {"id": "17.0-0efb5f0f3651ed18", "cves": [], "html": "<p>\u6dfb\u52a0\u670d\u52a1\u5668\u53d8\u91cf<a href=\"/docs/17/runtime-config-client.html#GUC-TRANSACTION-TIMEOUT\">transaction_timeout</a>\uff0c\u4ee5\u9650\u5236\u4e8b\u52a1\u6301\u7eed\u65f6\u95f4\uff08Andrey Borodin, Japin Li, Junwang Zhao, Alexander Korotkov\uff09<a href=\"https://postgr.es/c/51efe38cb\">\u00a7</a> <a href=\"https://postgr.es/c/bf82f4379\">\u00a7</a> <a href=\"https://postgr.es/c/28e858c0f\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u670d\u52a1\u5668\u53d8\u91cftransaction_timeout\uff0c\u4ee5\u9650\u5236\u4e8b\u52a1\u6301\u7eed\u65f6\u95f4\uff08Andrey Borodin, Japin Li, Junwang Zhao, Alexander Korotkov\uff09\u00a7 \u00a7 \u00a7", "title": "\u6dfb\u52a0\u670d\u52a1\u5668\u53d8\u91cftransaction_timeout\uff0c\u4ee5\u9650\u5236\u4e8b\u52a1\u6301\u7eed\u65f6\u95f4", "commits": ["28e858c0f", "51efe38cb", "bf82f4379"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-CONFIG", "source_hash": "7efb34482473dc8d860ad251f06b16387566a0c5cecbacc45c4847699d4eca42", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["28e858c0f"], ["51efe38cb"], ["bf82f4379"]], "identity_text": "Add server variable guc-transaction-timeout to restrict the duration of transactions (Andrey Borodin, Japin Li, Junwang Zhao, Alexander Korotkov)", "commit_aliases": ["28e858c0f", "51efe38cb", "bf82f4379"], "source_commits": ["28e858c0f", "51efe38cb", "bf82f4379"], "source_entry_id": "17.0/changes/035", "db_id": "718259631ded99b83361d9b63bd7fc36", "patch_ids": ["0c1e32e9c9b95597272ee20eaf39589f", "87004e34539666104318fc5a57fe0afa", "ffd30a9d40012c5126cd91352005d8de"], "statement_hash": "72d219d30d9e9405506944e5452bf1f7437dd8c634c2e7e22989da39ad97a388", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-0efb5f0f3651ed18", "migration": false}, {"id": "17.0-e062739079980155", "cves": [], "html": "<p>\u6dfb\u52a0\u5185\u7f6e\u7684\u5e73\u53f0\u65e0\u5173\u6392\u5e8f\u89c4\u5219\u63d0\u4f9b\u8005\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/2d819a08a\">\u00a7</a> <a href=\"https://postgr.es/c/846311051\">\u00a7</a> <a href=\"https://postgr.es/c/f69319f2f\">\u00a7</a> <a href=\"https://postgr.es/c/9acae56ce\">\u00a7</a></p>\n<p>\u8fd9\u652f\u6301 <code>C</code> \u548c <code>C.UTF-8</code> \u6392\u5e8f\u89c4\u5219\u3002</p>", "text": "\u6dfb\u52a0\u5185\u7f6e\u7684\u5e73\u53f0\u65e0\u5173\u6392\u5e8f\u89c4\u5219\u63d0\u4f9b\u8005\uff08Jeff Davis\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u8fd9\u652f\u6301 C \u548c C.UTF-8 \u6392\u5e8f\u89c4\u5219\u3002", "title": "\u6dfb\u52a0\u5185\u7f6e\u7684\u5e73\u53f0\u65e0\u5173\u6392\u5e8f\u89c4\u5219\u63d0\u4f9b\u8005", "commits": ["2d819a08a", "846311051", "9acae56ce", "f69319f2f"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-CONFIG", "source_hash": "15e2a4736d4126ffb9a59333bece9b7c6bb80c6464d093d609cead3be54ea0bc", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["2d819a08a"], ["846311051"], ["9acae56ce"], ["f69319f2f"]], "identity_text": "Add a builtin platform-independent collation provider (Jeff Davis) This supports C and C.UTF-8 collations.", "commit_aliases": ["2d819a08a", "846311051", "9acae56ce", "f69319f2f"], "source_commits": ["2d819a08a", "846311051", "9acae56ce", "f69319f2f"], "source_entry_id": "17.0/changes/036", "db_id": "80852fc36fa7987f1b089fc75f650204", "patch_ids": ["77be7335caaca5f9f06322d0797dda16", "81b6c4acbac9af2cc2bfef96cfd4b979", "c6ec2a1be78682d39fea62d97b958f98", "d64c324506fdd1d1f8e1dd79d3f4cfbe"], "statement_hash": "fbdf39f367ad8a7a21b34d7dc4dc5678b7f15eb4badce77f508c44b61e86d345", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-e062739079980155", "migration": false}, {"id": "17.0-21b14577a5530135", "cves": [], "html": "<p>\u6dfb\u52a0\u670d\u52a1\u5668\u53d8\u91cf<a href=\"/docs/17/runtime-config-preset.html#GUC-HUGE-PAGES-STATUS\">huge_pages_status</a>\uff0c\u7528\u4e8e\u62a5\u544a Postgres \u5bf9 huge pages \u7684\u4f7f\u7528\u60c5\u51b5\uff08Justin Pryzby\uff09<a href=\"https://postgr.es/c/a14354cac\">\u00a7</a></p>\n<p>\u5f53<a href=\"/docs/17/runtime-config-resource.html#GUC-HUGE-PAGES\">huge_pages</a>\u8bbe\u7f6e\u4e3a <code>try</code> \u65f6\uff0c\u8fd9\u5f88\u6709\u7528\u3002</p>", "text": "\u6dfb\u52a0\u670d\u52a1\u5668\u53d8\u91cfhuge_pages_status\uff0c\u7528\u4e8e\u62a5\u544a Postgres \u5bf9 huge pages \u7684\u4f7f\u7528\u60c5\u51b5\uff08Justin Pryzby\uff09\u00a7 \u5f53huge_pages\u8bbe\u7f6e\u4e3a try \u65f6\uff0c\u8fd9\u5f88\u6709\u7528\u3002", "title": "\u6dfb\u52a0\u670d\u52a1\u5668\u53d8\u91cfhuge_pages_status\uff0c\u7528\u4e8e\u62a5\u544a Postgres \u5bf9 huge pages \u7684\u4f7f\u7528\u60c5\u51b5", "commits": ["a14354cac"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-CONFIG", "source_hash": "122def5713c23eca2319d4626106646ed060bb64889d75fb851f397cb0ca7aff", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["a14354cac"]], "identity_text": "Add server variable guc-huge-pages-status to report the use of huge pages by Postgres (Justin Pryzby) This is useful when guc-huge-pages is set to try.", "commit_aliases": ["a14354cac"], "source_commits": ["a14354cac"], "source_entry_id": "17.0/changes/037", "db_id": "586987595a4170d7f74933b5f5dd5a46", "patch_ids": ["89c68b0b4082f533e10998c466dd35b6"], "statement_hash": "9a20765c86381cbf363b707e1acc20d471444cfb30caed24a1ba11b2246d2dd7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-21b14577a5530135", "migration": false}, {"id": "17.0-731c9e8a5142f36d", "cves": [], "html": "<p>\u6dfb\u52a0\u7528\u4e8e\u7981\u7528\u4e8b\u4ef6\u89e6\u53d1\u5668\u7684\u670d\u52a1\u5668\u53d8\u91cf\uff08Daniel Gustafsson\uff09<a href=\"https://postgr.es/c/7750fefdb\">\u00a7</a></p>\n<p>\u8be5\u8bbe\u7f6e<a href=\"/docs/17/runtime-config-client.html#GUC-EVENT-TRIGGERS\">event_triggers</a>\u5141\u8bb8\u4e3a\u8c03\u8bd5\u76ee\u7684\u4e34\u65f6\u7981\u7528\u4e8b\u4ef6\u89e6\u53d1\u5668\u3002</p>", "text": "\u6dfb\u52a0\u7528\u4e8e\u7981\u7528\u4e8b\u4ef6\u89e6\u53d1\u5668\u7684\u670d\u52a1\u5668\u53d8\u91cf\uff08Daniel Gustafsson\uff09\u00a7 \u8be5\u8bbe\u7f6eevent_triggers\u5141\u8bb8\u4e3a\u8c03\u8bd5\u76ee\u7684\u4e34\u65f6\u7981\u7528\u4e8b\u4ef6\u89e6\u53d1\u5668\u3002", "title": "\u6dfb\u52a0\u7528\u4e8e\u7981\u7528\u4e8b\u4ef6\u89e6\u53d1\u5668\u7684\u670d\u52a1\u5668\u53d8\u91cf", "commits": ["7750fefdb"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-CONFIG", "source_hash": "ce85c487050389af10d7375dba26b6b3636e76b8910d87d57f2ee1733b61b1e3", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["7750fefdb"]], "identity_text": "Add server variable to disable event triggers (Daniel Gustafsson) The setting, guc-event-triggers , allows for the temporary disabling of event triggers for debugging.", "commit_aliases": ["7750fefdb"], "source_commits": ["7750fefdb"], "source_entry_id": "17.0/changes/038", "db_id": "4b72618efd9956e3f676b7b80a796d3f", "patch_ids": ["8a7e47813e342e8c2228ebfe7fb76262"], "statement_hash": "a78fa35cf15a5c3a4d0f75d835c41c9257e8b5eff0454787a9a089070f104ae2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-731c9e8a5142f36d", "migration": false}, {"id": "17.0-f4a8d2364b8c4112", "cves": [], "html": "<p>\u5141\u8bb8\u914d\u7f6e <a href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-SLRU-VIEW\" title=\"27.2.25.\u00a0pg_stat_slru\"><acronym>SLRU</acronym></a> \u7f13\u5b58\u5927\u5c0f\uff08Andrey Borodin, Dilip Kumar, Alvaro Herrera\uff09<a href=\"https://postgr.es/c/53c2a97a9\">\u00a7</a></p>\n<p>\u65b0\u7684\u670d\u52a1\u5668\u53d8\u91cf\u5305\u62ec<a href=\"/docs/17/runtime-config-resource.html#GUC-COMMIT-TIMESTAMP-BUFFERS\">commit_timestamp_buffers</a>\u3001<a href=\"/docs/17/runtime-config-resource.html#GUC-MULTIXACT-MEMBER-BUFFERS\">multixact_member_buffers</a>\u3001<a href=\"/docs/17/runtime-config-resource.html#GUC-MULTIXACT-OFFSET-BUFFERS\">multixact_offset_buffers</a>\u3001<a href=\"/docs/17/runtime-config-resource.html#GUC-NOTIFY-BUFFERS\">notify_buffers</a>\u3001<a href=\"/docs/17/runtime-config-resource.html#GUC-SERIALIZABLE-BUFFERS\">serializable_buffers</a>\u3001<a href=\"/docs/17/runtime-config-resource.html#GUC-SUBTRANSACTION-BUFFERS\">subtransaction_buffers</a>\u548c<a href=\"/docs/17/runtime-config-resource.html#GUC-TRANSACTION-BUFFERS\">transaction_buffers</a>\u3002<a href=\"/docs/17/runtime-config-resource.html#GUC-COMMIT-TIMESTAMP-BUFFERS\">commit_timestamp_buffers</a>\u3001<a href=\"/docs/17/runtime-config-resource.html#GUC-TRANSACTION-BUFFERS\">transaction_buffers</a>\u4ee5\u53ca<a href=\"/docs/17/runtime-config-resource.html#GUC-SUBTRANSACTION-BUFFERS\">subtransaction_buffers</a>\u4f1a\u968f\u7740<a href=\"/docs/17/runtime-config-resource.html#GUC-SHARED-BUFFERS\">shared_buffers</a>\u81ea\u52a8\u6269\u5c55\u3002</p>", "text": "\u5141\u8bb8\u914d\u7f6e SLRU \u7f13\u5b58\u5927\u5c0f\uff08Andrey Borodin, Dilip Kumar, Alvaro Herrera\uff09\u00a7 \u65b0\u7684\u670d\u52a1\u5668\u53d8\u91cf\u5305\u62eccommit_timestamp_buffers\u3001multixact_member_buffers\u3001multixact_offset_buffers\u3001notify_buffers\u3001serializable_buffers\u3001subtransaction_buffers\u548ctransaction_buffers\u3002commit_timestamp_buffers\u3001transaction_buffers\u4ee5\u53casubtransaction_buffers\u4f1a\u968f\u7740shared_buffers\u81ea\u52a8\u6269\u5c55\u3002", "title": "\u5141\u8bb8\u914d\u7f6e SLRU \u7f13\u5b58\u5927\u5c0f", "commits": ["53c2a97a9"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-CONFIG", "source_hash": "6882b1afc0cfb0edf0a305155b1bfeee49505c75e159d2908fe7dded3370087d", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["53c2a97a9"]], "identity_text": "Allow the SLRU cache sizes to be configured (Andrey Borodin, Dilip Kumar, Alvaro Herrera) The new server variables are guc-commit-timestamp-buffers , guc-multixact-member-buffers , guc-multixact-offset-buffers , guc-notify-buffers , guc-serializable-buffers , guc-subtransaction-buffers , and guc-transaction-buffers . guc-commit-timestamp-buffers , guc-transaction-buffers , and guc-subtransaction-buffers scale up automatically with guc-shared-buffers .", "commit_aliases": ["53c2a97a9"], "source_commits": ["53c2a97a9"], "source_entry_id": "17.0/changes/039", "db_id": "054128c86cceaeccedc6fb785d67772f", "patch_ids": ["d22fe7881bafeca870baef76553a72ff"], "statement_hash": "7b33810afb851570f8c712e0489c6284bff4903bfc6947e2ceae3d857387e453", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-f4a8d2364b8c4112", "migration": false}, {"id": "17.0-9e98f7b93fb6d8ea", "cves": [], "html": "<p>\u6dfb\u52a0\u5bf9\u589e\u91cf\u6587\u4ef6\u7cfb\u7edf\u5907\u4efd\u7684\u652f\u6301\uff08Robert Haas, Jakub Wartak, Tomas Vondra\uff09<a href=\"https://postgr.es/c/dc2123400\">\u00a7</a> <a href=\"https://postgr.es/c/f8ce4ed78\">\u00a7</a></p>\n<p>\u53ef\u4f7f\u7528<a href=\"/docs/17/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a>\u7684\u65b0 <code>--incremental</code> \u9009\u9879\u521b\u5efa\u589e\u91cf\u5907\u4efd\u3002\u65b0\u7684\u5e94\u7528\u7a0b\u5e8f<a href=\"/docs/17/app-pgcombinebackup.html\" title=\"pg_combinebackup\"><span>pg_combinebackup</span></a>\u5141\u8bb8\u5904\u7406\u57fa\u7840\u548c\u589e\u91cf\u6587\u4ef6\u7cfb\u7edf\u5907\u4efd\u3002</p>", "text": "\u6dfb\u52a0\u5bf9\u589e\u91cf\u6587\u4ef6\u7cfb\u7edf\u5907\u4efd\u7684\u652f\u6301\uff08Robert Haas, Jakub Wartak, Tomas Vondra\uff09\u00a7 \u00a7 \u53ef\u4f7f\u7528pg_basebackup\u7684\u65b0 --incremental \u9009\u9879\u521b\u5efa\u589e\u91cf\u5907\u4efd\u3002\u65b0\u7684\u5e94\u7528\u7a0b\u5e8fpg_combinebackup\u5141\u8bb8\u5904\u7406\u57fa\u7840\u548c\u589e\u91cf\u6587\u4ef6\u7cfb\u7edf\u5907\u4efd\u3002", "title": "\u6dfb\u52a0\u5bf9\u589e\u91cf\u6587\u4ef6\u7cfb\u7edf\u5907\u4efd\u7684\u652f\u6301", "commits": ["dc2123400", "f8ce4ed78"], "section": "\u670d\u52a1\u5668 / \u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-REPLICATION", "source_hash": "53d4d6706e095584dad9b5a2c18559f1d8203b3a29895b8f3731da02db40d59c", "section_path": ["\u670d\u52a1\u5668", "\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["dc2123400"], ["f8ce4ed78"]], "identity_text": "Add support for incremental file system backup (Robert Haas, Jakub Wartak, Tomas Vondra) Incremental backups can be created using pg_basebackup's new --incremental option. The new application pg_combinebackup allows manipulation of base and incremental file system backups.", "commit_aliases": ["dc2123400", "f8ce4ed78"], "source_commits": ["dc2123400", "f8ce4ed78"], "source_entry_id": "17.0/changes/040", "db_id": "908cc33787f32c9dcd434c9726b2a90a", "patch_ids": ["141a067a67701032cf5092dd3dabd2d3", "3a11cab0d645672e4c0425fc530066ea"], "statement_hash": "76b76f7c699fb0ae8c99f721ad1e57cd1f5f3d11b1b1dc8d260d95046b38e08a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-9e98f7b93fb6d8ea", "migration": false}, {"id": "17.0-d8db67c4766dcbd2", "cves": [], "html": "<p>\u5141\u8bb8\u521b\u5efa <acronym>WAL</acronym> \u6458\u8981\u6587\u4ef6\uff08Robert Haas, Nathan Bossart, Hubert Depesz Lubaczewski\uff09<a href=\"https://postgr.es/c/174c48050\">\u00a7</a> <a href=\"https://postgr.es/c/d97ef756a\">\u00a7</a> <a href=\"https://postgr.es/c/f896057e4\">\u00a7</a> <a href=\"https://postgr.es/c/d9ef650fc\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u6587\u4ef6\u8bb0\u5f55\u67d0\u4e2a <a href=\"/docs/17/datatype-pg-lsn.html\" title=\"8.20.\u00a0pg_lsn \u7c7b\u578b\"><acronym>LSN</acronym></a> \u8303\u56f4\u5185\u53d1\u751f\u53d8\u5316\u7684\u5757\u53f7\uff0c\u5bf9\u589e\u91cf\u6587\u4ef6\u7cfb\u7edf\u5907\u4efd\u5f88\u6709\u7528\u3002\u8fd9\u7531\u670d\u52a1\u5668\u53d8\u91cf<a href=\"/docs/17/runtime-config-wal.html#GUC-SUMMARIZE-WAL\">summarize_wal</a>\u548c<a href=\"/docs/17/runtime-config-wal.html#GUC-WAL-SUMMARY-KEEP-TIME\">wal_summary_keep_time</a>\u63a7\u5236\uff0c\u5e76\u53ef\u901a\u8fc7 <a href=\"/docs/17/functions-info.html#FUNCTIONS-WAL-SUMMARY\" title=\"\u8868\u00a09.92.\u00a0WAL \u6c47\u603b\u4fe1\u606f\u51fd\u6570\"><code>pg_available_wal_summaries()</code></a>\u3001<code>pg_wal_summary_contents()</code> \u548c <code>pg_get_wal_summarizer_state()</code> \u8fdb\u884c\u67e5\u770b\u3002</p>", "text": "\u5141\u8bb8\u521b\u5efa WAL \u6458\u8981\u6587\u4ef6\uff08Robert Haas, Nathan Bossart, Hubert Depesz Lubaczewski\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u8fd9\u4e9b\u6587\u4ef6\u8bb0\u5f55\u67d0\u4e2a LSN \u8303\u56f4\u5185\u53d1\u751f\u53d8\u5316\u7684\u5757\u53f7\uff0c\u5bf9\u589e\u91cf\u6587\u4ef6\u7cfb\u7edf\u5907\u4efd\u5f88\u6709\u7528\u3002\u8fd9\u7531\u670d\u52a1\u5668\u53d8\u91cfsummarize_wal\u548cwal_summary_keep_time\u63a7\u5236\uff0c\u5e76\u53ef\u901a\u8fc7 pg_available_wal_summaries()\u3001pg_wal_summary_contents() \u548c pg_get_wal_summarizer_state() \u8fdb\u884c\u67e5\u770b\u3002", "title": "\u5141\u8bb8\u521b\u5efa WAL \u6458\u8981\u6587\u4ef6", "commits": ["174c48050", "d97ef756a", "d9ef650fc", "f896057e4"], "section": "\u670d\u52a1\u5668 / \u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-REPLICATION", "source_hash": "e957080e4a8ff4a994bf36bded8570d4e66a1f39225fc5ab1c66c981d9fa3797", "section_path": ["\u670d\u52a1\u5668", "\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["174c48050"], ["d97ef756a"], ["d9ef650fc"], ["f896057e4"]], "identity_text": "Allow the creation of WAL summarization files (Robert Haas, Nathan Bossart, Hubert Depesz Lubaczewski) These files record the block numbers that have changed within an LSN range and are useful for incremental file system backups. This is controlled by the server variables guc-summarize-wal and guc-wal-summary-keep-time , and introspected with pg_available_wal_summaries(), pg_wal_summary_contents(), and pg_get_wal_summarizer_state().", "commit_aliases": ["174c48050", "d97ef756a", "d9ef650fc", "f896057e4"], "source_commits": ["174c48050", "d97ef756a", "d9ef650fc", "f896057e4"], "source_entry_id": "17.0/changes/041", "db_id": "3cfae481b9dc3952fd1d2d10c2226677", "patch_ids": ["0af30f6d76f12ddff15d80cbf3011abd", "33f4516b6fa2cf93517d67160d2141ba", "4872bf1a258073370c7c0f5e333d405b", "8e2191b43c1299f8168150eaebfcc93f"], "statement_hash": "36d2ae84e4b827b48279c35dd15f6e680f1ee0571436c70ceca91d3823845a52", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-d8db67c4766dcbd2", "migration": false}, {"id": "17.0-c087b4f1d9cedbdb", "cves": [], "html": "<p>\u5c06\u7cfb\u7edf\u6807\u8bc6\u7b26\u6dfb\u52a0\u5230\u6587\u4ef6\u7cfb\u7edf <a href=\"/docs/17/backup-manifest-format.html\" title=\"\u7b2c\u00a069\u00a0\u7ae0\u00a0\u5907\u4efd\u6e05\u5355\u683c\u5f0f\">backup manifest</a> \u6587\u4ef6\u4e2d\uff08Amul Sul\uff09<a href=\"https://postgr.es/c/2041bc427\">\u00a7</a></p>\n<p>\u8fd9\u6709\u52a9\u4e8e\u68c0\u6d4b\u65e0\u6548\u7684 <acronym>WAL</acronym> \u4f7f\u7528\u3002</p>", "text": "\u5c06\u7cfb\u7edf\u6807\u8bc6\u7b26\u6dfb\u52a0\u5230\u6587\u4ef6\u7cfb\u7edf backup manifest \u6587\u4ef6\u4e2d\uff08Amul Sul\uff09\u00a7 \u8fd9\u6709\u52a9\u4e8e\u68c0\u6d4b\u65e0\u6548\u7684 WAL \u4f7f\u7528\u3002", "title": "\u5c06\u7cfb\u7edf\u6807\u8bc6\u7b26\u6dfb\u52a0\u5230\u6587\u4ef6\u7cfb\u7edf backup manifest \u6587\u4ef6\u4e2d", "commits": ["2041bc427"], "section": "\u670d\u52a1\u5668 / \u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-REPLICATION", "source_hash": "39983d93905cbdf2473bf697e5107733e558dee8ca0ba47c7ab7360dd505aa78", "section_path": ["\u670d\u52a1\u5668", "\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["2041bc427"]], "identity_text": "Add the system identifier to file system backup manifest files (Amul Sul) This helps detect invalid WAL usage.", "commit_aliases": ["2041bc427"], "source_commits": ["2041bc427"], "source_entry_id": "17.0/changes/042", "db_id": "6e2a2dd91621a281b6443f6be9448cdf", "patch_ids": ["52e80dff2dc717149b68413fccf953b2"], "statement_hash": "2e6e5badf7c93a9f7c90153ea649e08320978b670481f36c4cdc885137c0f6dd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-c087b4f1d9cedbdb", "migration": false}, {"id": "17.0-153d175118664d9f", "cves": [], "html": "<p>\u5141\u8bb8\u5728<a href=\"/docs/17/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a>\u5c06\u8fde\u63a5\u4fe1\u606f\u5199\u5165 <code>postgresql.auto.conf</code> \u65f6\u5199\u5165\u8fde\u63a5\u5b57\u7b26\u4e32\u503c <code>dbname</code>\uff08Vignesh C, Hayato Kuroda\uff09<a href=\"https://postgr.es/c/a145f424d\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728pg_basebackup\u5c06\u8fde\u63a5\u4fe1\u606f\u5199\u5165 postgresql.auto.conf \u65f6\u5199\u5165\u8fde\u63a5\u5b57\u7b26\u4e32\u503c dbname\uff08Vignesh C, Hayato Kuroda\uff09\u00a7", "title": "\u5141\u8bb8\u5728pg_basebackup\u5c06\u8fde\u63a5\u4fe1\u606f\u5199\u5165 postgresql.auto.conf \u65f6\u5199\u5165\u8fde\u63a5\u5b57\u7b26\u4e32\u503c dbname", "commits": ["a145f424d"], "section": "\u670d\u52a1\u5668 / \u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-REPLICATION", "source_hash": "f5a4189f6ac58a70012aeb1c9a3ae0f4f7b551fa57b3ad15025326d9d6fd83e2", "section_path": ["\u670d\u52a1\u5668", "\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["a145f424d"]], "identity_text": "Allow connection string value dbname to be written when pg_basebackup writes connection information to postgresql.auto.conf (Vignesh C, Hayato Kuroda)", "commit_aliases": ["a145f424d"], "source_commits": ["a145f424d"], "source_entry_id": "17.0/changes/043", "db_id": "df5b4c592c2663c6b6b2966294706337", "patch_ids": ["8a96c256ee8468512b69f6e4ee3bcbdd"], "statement_hash": "64810eaaeb8732246523d4b5acee711061833d0ccf9fdd227710930a3cdaaff0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-153d175118664d9f", "migration": false}, {"id": "17.0-636aaa579a0d8881", "cves": [], "html": "<p>\u6dfb\u52a0\u5217 <a href=\"/docs/17/view-pg-replication-slots.html\" title=\"52.19.\u00a0pg_replication_slots\"><code>pg_replication_slots</code>.<code>invalidation_reason</code></a>\uff0c\u7528\u4e8e\u62a5\u544a\u590d\u5236\u69fd\u5931\u6548\u7684\u539f\u56e0\uff08Shveta Malik, Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/007693f2a\">\u00a7</a> <a href=\"https://postgr.es/c/6ae701b43\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u5217 pg_replication_slots.invalidation_reason\uff0c\u7528\u4e8e\u62a5\u544a\u590d\u5236\u69fd\u5931\u6548\u7684\u539f\u56e0\uff08Shveta Malik, Bharath Rupireddy\uff09\u00a7 \u00a7", "title": "\u6dfb\u52a0\u5217 pg_replication_slots.invalidation_reason\uff0c\u7528\u4e8e\u62a5\u544a\u590d\u5236\u69fd\u5931\u6548\u7684\u539f\u56e0", "commits": ["007693f2a", "6ae701b43"], "section": "\u670d\u52a1\u5668 / \u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-REPLICATION", "source_hash": "b4d50c607aa978eeb579c940d2b9a4202a4f79fce246f9395d39eb3c77613e30", "section_path": ["\u670d\u52a1\u5668", "\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["007693f2a"], ["6ae701b43"]], "identity_text": "Add column pg_replication_slots.invalidation_reason to report the reason for invalid slots (Shveta Malik, Bharath Rupireddy)", "commit_aliases": ["007693f2a", "6ae701b43"], "source_commits": ["007693f2a", "6ae701b43"], "source_entry_id": "17.0/changes/044", "db_id": "bd3061007fc673bf70970dfbfeb55d08", "patch_ids": ["14f1da7973359b39660fcfe59ff48cc3", "9d580829a5809c9b9aefa1a05bfa78db"], "statement_hash": "aa758625648221fad436441c83da92b6802fa94fe1303ac6dd667c9398f11d3c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-636aaa579a0d8881", "migration": false}, {"id": "17.0-b088c75f386ad793", "cves": [], "html": "<p>\u6dfb\u52a0\u5217 <a href=\"/docs/17/view-pg-replication-slots.html\" title=\"52.19.\u00a0pg_replication_slots\"><code>pg_replication_slots</code>.<code>inactive_since</code></a>\uff0c\u7528\u4e8e\u62a5\u544a\u590d\u5236\u69fd\u7684\u4e0d\u6d3b\u52a8\u6301\u7eed\u65f6\u95f4\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/a11f330b5\">\u00a7</a> <a href=\"https://postgr.es/c/6d49c8d4b\">\u00a7</a> <a href=\"https://postgr.es/c/6f132ed69\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u5217 pg_replication_slots.inactive_since\uff0c\u7528\u4e8e\u62a5\u544a\u590d\u5236\u69fd\u7684\u4e0d\u6d3b\u52a8\u6301\u7eed\u65f6\u95f4\uff08Bharath Rupireddy\uff09\u00a7 \u00a7 \u00a7", "title": "\u6dfb\u52a0\u5217 pg_replication_slots.inactive_since\uff0c\u7528\u4e8e\u62a5\u544a\u590d\u5236\u69fd\u7684\u4e0d\u6d3b\u52a8\u6301\u7eed\u65f6\u95f4", "commits": ["6d49c8d4b", "6f132ed69", "a11f330b5"], "section": "\u670d\u52a1\u5668 / \u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-REPLICATION", "source_hash": "fb1f343a4366739955feb77a80da72ed28de6d0979ac730dcb05d7746ebc9136", "section_path": ["\u670d\u52a1\u5668", "\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["6d49c8d4b"], ["6f132ed69"], ["a11f330b5"]], "identity_text": "Add column pg_replication_slots.inactive_since to report slot inactivity duration (Bharath Rupireddy)", "commit_aliases": ["6d49c8d4b", "6f132ed69", "a11f330b5"], "source_commits": ["6d49c8d4b", "6f132ed69", "a11f330b5"], "source_entry_id": "17.0/changes/045", "db_id": "126a2f45e2604951effe4cbcfe0a23b7", "patch_ids": ["2f2378cce9a4797a2821d495a96f9801", "6fcb3b366bb79fbb49a97982b1a2fc2b", "73c9f29784a3a938138ec4941147cfcf"], "statement_hash": "8c48bbb47f1e02c7dc5505daf8f2c291f211ce76a8c9e6ae6e8e7fde8a5c69ae", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-b088c75f386ad793", "migration": false}, {"id": "17.0-2cb5d647382b4800", "cves": [], "html": "<p>\u6dfb\u52a0\u51fd\u6570 <a href=\"/docs/17/functions-admin.html#FUNCTIONS-REPLICATION-TABLE\" title=\"\u8868\u00a09.99.\u00a0\u590d\u5236\u7ba1\u7406\u51fd\u6570\"><code>pg_sync_replication_slots()</code></a>\uff0c\u7528\u4e8e\u540c\u6b65\u903b\u8f91\u590d\u5236\u69fd\uff08Hou Zhijie, Shveta Malik, Ajin Cherian, Peter Eisentraut\uff09<a href=\"https://postgr.es/c/ddd5f4f54\">\u00a7</a> <a href=\"https://postgr.es/c/7a424ece4\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u51fd\u6570 pg_sync_replication_slots()\uff0c\u7528\u4e8e\u540c\u6b65\u903b\u8f91\u590d\u5236\u69fd\uff08Hou Zhijie, Shveta Malik, Ajin Cherian, Peter Eisentraut\uff09\u00a7 \u00a7", "title": "\u6dfb\u52a0\u51fd\u6570 pg_sync_replication_slots()\uff0c\u7528\u4e8e\u540c\u6b65\u903b\u8f91\u590d\u5236\u69fd", "commits": ["7a424ece4", "ddd5f4f54"], "section": "\u670d\u52a1\u5668 / \u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-REPLICATION", "source_hash": "b5fed7c2c4c64ce67b18c6f50300e9f3b7f9aa301d650bfd4939c1e7ba82c9ce", "section_path": ["\u670d\u52a1\u5668", "\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["7a424ece4"], ["ddd5f4f54"]], "identity_text": "Add function pg_sync_replication_slots() to synchronize logical replication slots (Hou Zhijie, Shveta Malik, Ajin Cherian, Peter Eisentraut)", "commit_aliases": ["7a424ece4", "ddd5f4f54"], "source_commits": ["7a424ece4", "ddd5f4f54"], "source_entry_id": "17.0/changes/046", "db_id": "c8c655e14dfb4508100100546aec9853", "patch_ids": ["022fd912ba37827f2bcb9d18044894e2", "4c4b9c78e0e2b2d68645e7cbcc7f4481"], "statement_hash": "2d60afa777919cda9a60602da42951ed7b67aa6c9c464e127ff1e1c6c6b344b4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-2cb5d647382b4800", "migration": false}, {"id": "17.0-68d1331960696226", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/17/protocol-replication.html\" title=\"53.4.\u00a0\u6d41\u590d\u5236\u534f\u8bae\">\u590d\u5236\u534f\u8bae</a>\u6dfb\u52a0 <code>failover</code> \u5c5e\u6027\uff08Hou Zhijie, Shveta Malik\uff09<a href=\"https://postgr.es/c/732924043\">\u00a7</a></p>", "text": "\u4e3a\u590d\u5236\u534f\u8bae\u6dfb\u52a0 failover \u5c5e\u6027\uff08Hou Zhijie, Shveta Malik\uff09\u00a7", "title": "\u4e3a\u590d\u5236\u534f\u8bae\u6dfb\u52a0 failover \u5c5e\u6027", "commits": ["732924043"], "section": "\u670d\u52a1\u5668 / \u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-REPLICATION", "source_hash": "829081c25bfc7a772b12a699f3842754e7d9fd439216f5f3fd71c5e06a225f39", "section_path": ["\u670d\u52a1\u5668", "\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["732924043"]], "identity_text": "Add the failover property to the replication protocol (Hou Zhijie, Shveta Malik)", "commit_aliases": ["732924043"], "source_commits": ["732924043"], "source_entry_id": "17.0/changes/047", "db_id": "317f0c30f6256158bebb45c7506802f7", "patch_ids": ["1051164f270319e76a0f1b5c258ff8ad"], "statement_hash": "a8f3ae3b1baea1a639b8ad1a9b0a8e51a9ee7511bf96da1149f50ce8d74c74ea", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-68d1331960696226", "migration": false}, {"id": "17.0-a8e9fc312b39a889", "cves": [], "html": "<p>\u6dfb\u52a0\u5e94\u7528\u7a0b\u5e8f<a href=\"/docs/17/app-pgcreatesubscriber.html\" title=\"pg_createsubscriber\"><span>pg_createsubscriber</span></a>\uff0c\u7528\u4e8e\u4ece\u7269\u7406\u5907\u5e93\u521b\u5efa\u903b\u8f91\u526f\u672c\uff08Euler Taveira\uff09<a href=\"https://postgr.es/c/d44032d01\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u5e94\u7528\u7a0b\u5e8fpg_createsubscriber\uff0c\u7528\u4e8e\u4ece\u7269\u7406\u5907\u5e93\u521b\u5efa\u903b\u8f91\u526f\u672c\uff08Euler Taveira\uff09\u00a7", "title": "\u6dfb\u52a0\u5e94\u7528\u7a0b\u5e8fpg_createsubscriber\uff0c\u7528\u4e8e\u4ece\u7269\u7406\u5907\u5e93\u521b\u5efa\u903b\u8f91\u526f\u672c", "commits": ["d44032d01"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LOGICAL", "source_hash": "466936f38be5f58de7511dcc6b9a38a2fa7ce4b6f585b83aeb6d6174060b0bee", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["d44032d01"]], "identity_text": "Add application pg_createsubscriber to create a logical replica from a physical standby server (Euler Taveira)", "commit_aliases": ["d44032d01"], "source_commits": ["d44032d01"], "source_entry_id": "17.0/changes/048", "db_id": "25c38f5599c3ec62c0eeea763de804ba", "patch_ids": ["47f654ff6a5b0bbd918666de657a7f51"], "statement_hash": "81c9adee62ba1074dc6668d92855ea2f6c0131be9bd0c7162eacdc94aaebb777", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-a8e9fc312b39a889", "migration": false}, {"id": "17.0-676ce7ec9d3c36a0", "cves": [], "html": "<p>\u8ba9<a href=\"/docs/17/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a>\u8fc1\u79fb\u6709\u6548\u7684\u903b\u8f91\u69fd\u548c\u8ba2\u9605\uff08Hayato Kuroda, Hou Zhijie, Vignesh C, Julien Rouhaud, Shlok Kyal\uff09<a href=\"https://postgr.es/c/29d0a77fa\">\u00a7</a> <a href=\"https://postgr.es/c/9a17be1e2\">\u00a7</a></p>\n<p>\u8fd9\u4f7f\u903b\u8f91\u590d\u5236\u80fd\u591f\u5728\u5347\u7ea7\u540e\u5feb\u901f\u7ee7\u7eed\u3002\u6b64\u529f\u80fd\u4ec5\u9002\u7528\u4e8e\u7248\u672c\u4e3a 17 \u6216\u66f4\u9ad8\u7684\u65e7 <span>PostgreSQL</span> \u96c6\u7c07\u3002</p>", "text": "\u8ba9pg_upgrade\u8fc1\u79fb\u6709\u6548\u7684\u903b\u8f91\u69fd\u548c\u8ba2\u9605\uff08Hayato Kuroda, Hou Zhijie, Vignesh C, Julien Rouhaud, Shlok Kyal\uff09\u00a7 \u00a7 \u8fd9\u4f7f\u903b\u8f91\u590d\u5236\u80fd\u591f\u5728\u5347\u7ea7\u540e\u5feb\u901f\u7ee7\u7eed\u3002\u6b64\u529f\u80fd\u4ec5\u9002\u7528\u4e8e\u7248\u672c\u4e3a 17 \u6216\u66f4\u9ad8\u7684\u65e7 PostgreSQL \u96c6\u7c07\u3002", "title": "\u8ba9pg_upgrade\u8fc1\u79fb\u6709\u6548\u7684\u903b\u8f91\u69fd\u548c\u8ba2\u9605", "commits": ["29d0a77fa", "9a17be1e2"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LOGICAL", "source_hash": "54eeccdb18fb7fd67a8f61d23a838b094fd46401996f83cb044a29d7eaf1a0ee", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["29d0a77fa"], ["9a17be1e2"]], "identity_text": "Have pg_upgrade migrate valid logical slots and subscriptions (Hayato Kuroda, Hou Zhijie, Vignesh C, Julien Rouhaud, Shlok Kyal) This allows logical replication to continue quickly after the upgrade. This only works for old PostgreSQL clusters that are version 17 or later.", "commit_aliases": ["29d0a77fa", "9a17be1e2"], "source_commits": ["29d0a77fa", "9a17be1e2"], "source_entry_id": "17.0/changes/049", "db_id": "e7e439b9160cab86c5bf72fcd5dc5ffd", "patch_ids": ["46c515d821dc69b7fb156f5163a38761", "79d297e1202815a7d2282b5617914920"], "statement_hash": "46e644aff19fc32497f2502ae839da451b4b9e32e84dbac888aa1709a3b79c77", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-676ce7ec9d3c36a0", "migration": false}, {"id": "17.0-392db410b758d878", "cves": [], "html": "<p>\u542f\u7528<a href=\"/docs/17/logical-replication-subscription.html#LOGICAL-REPLICATION-SUBSCRIPTION-SLOT\" title=\"29.2.1.\u00a0\u590d\u5236\u69fd\u7ba1\u7406\">\u903b\u8f91\u69fd</a>\u7684\u6545\u969c\u5207\u6362\uff08Hou Zhijie, Shveta Malik, Ajin Cherian\uff09<a href=\"https://postgr.es/c/c393308b6\">\u00a7</a></p>\n<p>\u8fd9\u7531 <a href=\"/docs/17/functions-admin.html#FUNCTIONS-REPLICATION-TABLE\" title=\"\u8868\u00a09.99.\u00a0\u590d\u5236\u7ba1\u7406\u51fd\u6570\"><code>pg_create_logical_replication_slot()</code></a> \u7684\u53ef\u9009\u7b2c\u4e94\u4e2a\u53c2\u6570\u63a7\u5236\u3002</p>", "text": "\u542f\u7528\u903b\u8f91\u69fd\u7684\u6545\u969c\u5207\u6362\uff08Hou Zhijie, Shveta Malik, Ajin Cherian\uff09\u00a7 \u8fd9\u7531 pg_create_logical_replication_slot() \u7684\u53ef\u9009\u7b2c\u4e94\u4e2a\u53c2\u6570\u63a7\u5236\u3002", "title": "\u542f\u7528\u903b\u8f91\u69fd\u7684\u6545\u969c\u5207\u6362", "commits": ["c393308b6"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LOGICAL", "source_hash": "6c09d40ce378d69cf1f5bda41d75d34a0ca025cff0ed4c9ff925c761c0a5e4a0", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["c393308b6"]], "identity_text": "Enable the failover of logical slots (Hou Zhijie, Shveta Malik, Ajin Cherian) This is controlled by an optional fifth argument to pg_create_logical_replication_slot().", "commit_aliases": ["c393308b6"], "source_commits": ["c393308b6"], "source_entry_id": "17.0/changes/050", "db_id": "c4939635a2188cada37a365eaa1e2af1", "patch_ids": ["1d32c3e59369bcbe8de6d58ee2057c83"], "statement_hash": "22c84998971757d8e8e83c67a5d40bf26af401f87faf85fd76fde6184431a93b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-392db410b758d878", "migration": false}, {"id": "17.0-a62654c344e7d77e", "cves": [], "html": "<p>\u6dfb\u52a0\u670d\u52a1\u5668\u53d8\u91cf<a href=\"/docs/17/runtime-config-replication.html#GUC-SYNC-REPLICATION-SLOTS\">sync_replication_slots</a>\uff0c\u4ee5\u542f\u7528\u6545\u969c\u5207\u6362\u903b\u8f91\u69fd\u540c\u6b65\uff08Shveta Malik, Hou Zhijie, Peter Smith\uff09<a href=\"https://postgr.es/c/93db6cbda\">\u00a7</a> <a href=\"https://postgr.es/c/60c07820d\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u670d\u52a1\u5668\u53d8\u91cfsync_replication_slots\uff0c\u4ee5\u542f\u7528\u6545\u969c\u5207\u6362\u903b\u8f91\u69fd\u540c\u6b65\uff08Shveta Malik, Hou Zhijie, Peter Smith\uff09\u00a7 \u00a7", "title": "\u6dfb\u52a0\u670d\u52a1\u5668\u53d8\u91cfsync_replication_slots\uff0c\u4ee5\u542f\u7528\u6545\u969c\u5207\u6362\u903b\u8f91\u69fd\u540c\u6b65", "commits": ["60c07820d", "93db6cbda"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LOGICAL", "source_hash": "3b6b45c237569e305b5434b96d85bb7e0a91f8b2bc4067bf571e88ea587db648", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["60c07820d"], ["93db6cbda"]], "identity_text": "Add server variable guc-sync-replication-slots to enable failover logical slot synchronization (Shveta Malik, Hou Zhijie, Peter Smith)", "commit_aliases": ["60c07820d", "93db6cbda"], "source_commits": ["60c07820d", "93db6cbda"], "source_entry_id": "17.0/changes/051", "db_id": "8c343eb28e4f2f35de4c934ed2d348dd", "patch_ids": ["b4ecc525dca1d03b2e5b4a1d18beee57", "fba3bec073133d9593881abc45607059"], "statement_hash": "7b1e99545e49529033cf741fef92e78b2ae8dec03c1ed72c0043d42df9329e2b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-a62654c344e7d77e", "migration": false}, {"id": "17.0-1ba2eafc920bdbc5", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/17/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>CREATE/ALTER SUBSCRIPTION</code></a> \u6dfb\u52a0\u903b\u8f91\u590d\u5236\u6545\u969c\u5207\u6362\u63a7\u5236\uff08Shveta Malik, Hou Zhijie, Ajin Cherian\uff09<a href=\"https://postgr.es/c/776621a5e\">\u00a7</a> <a href=\"https://postgr.es/c/22f7e61a6\">\u00a7</a></p>", "text": "\u4e3a CREATE/ALTER SUBSCRIPTION \u6dfb\u52a0\u903b\u8f91\u590d\u5236\u6545\u969c\u5207\u6362\u63a7\u5236\uff08Shveta Malik, Hou Zhijie, Ajin Cherian\uff09\u00a7 \u00a7", "title": "\u4e3a CREATE/ALTER SUBSCRIPTION \u6dfb\u52a0\u903b\u8f91\u590d\u5236\u6545\u969c\u5207\u6362\u63a7\u5236", "commits": ["22f7e61a6", "776621a5e"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LOGICAL", "source_hash": "fba0b70d11bac81e64da7d9adec10f23720705b03184510436eeccdc310280f9", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["22f7e61a6"], ["776621a5e"]], "identity_text": "Add logical replication failover control to CREATE/ALTER SUBSCRIPTION (Shveta Malik, Hou Zhijie, Ajin Cherian)", "commit_aliases": ["22f7e61a6", "776621a5e"], "source_commits": ["22f7e61a6", "776621a5e"], "source_entry_id": "17.0/changes/052", "db_id": "b57b9d35ac49f1dad946caf43d44dccb", "patch_ids": ["1c86d4f80cf36b4ce2a250316d3ebbbb", "ec1cbeb637f1dbbdbee28255309d0095"], "statement_hash": "63f4112091a51dcc31b95c347053bafb3bf1cf99ffe39167b06483b874e87637", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-1ba2eafc920bdbc5", "migration": false}, {"id": "17.0-1dc2d47442902d7d", "cves": [], "html": "<p>\u5141\u8bb8\u903b\u8f91\u590d\u5236\u53d8\u66f4\u7684\u5e94\u7528\u5728\u8ba2\u9605\u7aef\u4f7f\u7528 <a href=\"/docs/17/hash-index.html\" title=\"64.6.\u00a0Hash \u7d22\u5f15\">hash</a> \u7d22\u5f15\uff08Hayato Kuroda\uff09<a href=\"https://postgr.es/c/edca34243\">\u00a7</a></p>\n<p>\u4ee5\u524d\u53ea\u6709 <a href=\"/docs/17/btree.html\" title=\"64.1.\u00a0B-\u6811\u7d22\u5f15\">B-\u6811</a>\u7d22\u5f15\u53ef\u7528\u4e8e\u6b64\u76ee\u7684\u3002</p>", "text": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u53d8\u66f4\u7684\u5e94\u7528\u5728\u8ba2\u9605\u7aef\u4f7f\u7528 hash \u7d22\u5f15\uff08Hayato Kuroda\uff09\u00a7 \u4ee5\u524d\u53ea\u6709 B-\u6811\u7d22\u5f15\u53ef\u7528\u4e8e\u6b64\u76ee\u7684\u3002", "title": "\u5141\u8bb8\u903b\u8f91\u590d\u5236\u53d8\u66f4\u7684\u5e94\u7528\u5728\u8ba2\u9605\u7aef\u4f7f\u7528 hash \u7d22\u5f15", "commits": ["edca34243"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LOGICAL", "source_hash": "52806172c8b6b609ed02f1b2331d1102a79c1f1a6a976e074e106a8f623b4840", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["edca34243"]], "identity_text": "Allow the application of logical replication changes to use hash indexes on the subscriber (Hayato Kuroda) Previously only btree indexes could be used for this purpose.", "commit_aliases": ["edca34243"], "source_commits": ["edca34243"], "source_entry_id": "17.0/changes/053", "db_id": "76c2b77af322eb64cca203b894ae4987", "patch_ids": ["351f3ecff1d2ec06824ce82da89bc8e7"], "statement_hash": "643d4371972dca0ee68c4fbe7f82ef7dfa333aa939596a5e3f11c623ad9724a0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-1dc2d47442902d7d", "migration": false}, {"id": "17.0-01dbae7271ee7b5d", "cves": [], "html": "<p>\u6539\u8fdb\u5728\u5b58\u5728\u5927\u91cf\u5b50\u4e8b\u52a1\u65f6<a href=\"/docs/17/logicaldecoding.html\" title=\"\u7b2c\u00a047\u00a0\u7ae0\u00a0\u903b\u8f91\u89e3\u7801\">\u903b\u8f91\u89e3\u7801</a>\u7684\u6027\u80fd\uff08Masahiko Sawada\uff09<a href=\"https://postgr.es/c/5bec1d6bc\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5728\u5b58\u5728\u5927\u91cf\u5b50\u4e8b\u52a1\u65f6\u903b\u8f91\u89e3\u7801\u7684\u6027\u80fd\uff08Masahiko Sawada\uff09\u00a7", "title": "\u6539\u8fdb\u5728\u5b58\u5728\u5927\u91cf\u5b50\u4e8b\u52a1\u65f6\u903b\u8f91\u89e3\u7801\u7684\u6027\u80fd", "commits": ["5bec1d6bc"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "performance", "source_url": "/docs/release/17.0/#RELEASE-17-LOGICAL", "source_hash": "907b0bb80ba99cfe8b07a8ecdc8cac23e9cd50d50d62860fbc58de910fd10091", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["5bec1d6bc"]], "identity_text": "Improve logical decoding performance in cases where there are many subtransactions (Masahiko Sawada)", "commit_aliases": ["5bec1d6bc"], "source_commits": ["5bec1d6bc"], "source_entry_id": "17.0/changes/054", "db_id": "13e9e56d75399c0a3d2a68e52c334106", "patch_ids": ["3790ad2bce6b204989db4719e2fe2d72"], "statement_hash": "72c2381cddbfa5a317e6d3bbf449f9d9c82a35ed6b428c4b5f6d7a262eb800ec", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=17.0#17.0-01dbae7271ee7b5d", "migration": false}, {"id": "17.0-7d8a57f2a06fe4c7", "cves": [], "html": "<p>\u5982\u679c\u64a4\u9500\u8ba2\u9605\u6240\u6709\u8005\u7684\u8d85\u7ea7\u7528\u6237\u6743\u9650\uff0c\u5219\u91cd\u542f\u5e94\u7528\u5de5\u4f5c\u8fdb\u7a0b\uff08Vignesh C\uff09<a href=\"https://postgr.es/c/79243de13\">\u00a7</a></p>\n<p>\u8fd9\u4f1a\u5f3a\u5236\u91cd\u65b0\u8ba4\u8bc1\u3002</p>", "text": "\u5982\u679c\u64a4\u9500\u8ba2\u9605\u6240\u6709\u8005\u7684\u8d85\u7ea7\u7528\u6237\u6743\u9650\uff0c\u5219\u91cd\u542f\u5e94\u7528\u5de5\u4f5c\u8fdb\u7a0b\uff08Vignesh C\uff09\u00a7 \u8fd9\u4f1a\u5f3a\u5236\u91cd\u65b0\u8ba4\u8bc1\u3002", "title": "\u5982\u679c\u64a4\u9500\u8ba2\u9605\u6240\u6709\u8005\u7684\u8d85\u7ea7\u7528\u6237\u6743\u9650\uff0c\u5219\u91cd\u542f\u5e94\u7528\u5de5\u4f5c\u8fdb\u7a0b", "commits": ["79243de13"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LOGICAL", "source_hash": "f8f586d461a36e84ccd0c5fb60653e1130c50a1b5022a7f721796654600851cb", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["79243de13"]], "identity_text": "Restart apply workers if subscription owner's superuser privileges are revoked (Vignesh C) This forces reauthentication.", "commit_aliases": ["79243de13"], "source_commits": ["79243de13"], "source_entry_id": "17.0/changes/055", "db_id": "4545b17ab8113547542da114c77d5573", "patch_ids": ["64d8f5d679a4beaf4606e9c3ef1d7e5a"], "statement_hash": "b2198c55fb50f158b72cadb4b806fc3ca139464035a44556ba7aa7f47684a3f3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-7d8a57f2a06fe4c7", "migration": false}, {"id": "17.0-b66a05a4072c8a24", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/17/functions-admin.html#FUNCTIONS-REPLICATION-TABLE\" title=\"\u8868\u00a09.99.\u00a0\u590d\u5236\u7ba1\u7406\u51fd\u6570\"><code>pg_logical_emit_message()</code></a> \u6dfb\u52a0 <code>flush</code> \u9009\u9879\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/173b56f1e\">\u00a7</a></p>\n<p>\u8fd9\u4f1a\u4f7f\u8be5\u6d88\u606f\u5177\u6709\u6301\u4e45\u6027\u3002</p>", "text": "\u4e3a pg_logical_emit_message() \u6dfb\u52a0 flush \u9009\u9879\uff08Michael Paquier\uff09\u00a7 \u8fd9\u4f1a\u4f7f\u8be5\u6d88\u606f\u5177\u6709\u6301\u4e45\u6027\u3002", "title": "\u4e3a pg_logical_emit_message() \u6dfb\u52a0 flush \u9009\u9879", "commits": ["173b56f1e"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LOGICAL", "source_hash": "7d9eb5bcd667d310d84bd4d4bdb365d37eaba933d0549184f7f8c8cbf6756991", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["173b56f1e"]], "identity_text": "Add flush option to pg_logical_emit_message() (Michael Paquier) This makes the message durable.", "commit_aliases": ["173b56f1e"], "source_commits": ["173b56f1e"], "source_entry_id": "17.0/changes/056", "db_id": "d85be09c70a59028ea78df7318a28627", "patch_ids": ["d5627808d42f38ca807d7013e994b1ab"], "statement_hash": "dd1b3a50f262acdfeeacf766d8d2e1f81b58a5231666d1eb453b6183a1864e25", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-b66a05a4072c8a24", "migration": false}, {"id": "17.0-b2fec9bbe6071300", "cves": [], "html": "<p>\u5141\u8bb8\u6307\u5b9a\u5728\u5bf9\u8ba2\u9605\u8005\u53ef\u89c1\u4e4b\u524d\u5fc5\u987b\u5148\u5b8c\u6210\u540c\u6b65\u7684\u7269\u7406\u5907\u5e93\uff08Hou Zhijie, Shveta Malik\uff09<a href=\"https://postgr.es/c/bf279ddd1\">\u00a7</a> <a href=\"https://postgr.es/c/0f934b073\">\u00a7</a></p>\n<p>\u65b0\u7684\u670d\u52a1\u5668\u53d8\u91cf\u662f<a href=\"/docs/17/runtime-config-replication.html#GUC-SYNCHRONIZED-STANDBY-SLOTS\">synchronized_standby_slots</a>\u3002</p>", "text": "\u5141\u8bb8\u6307\u5b9a\u5728\u5bf9\u8ba2\u9605\u8005\u53ef\u89c1\u4e4b\u524d\u5fc5\u987b\u5148\u5b8c\u6210\u540c\u6b65\u7684\u7269\u7406\u5907\u5e93\uff08Hou Zhijie, Shveta Malik\uff09\u00a7 \u00a7 \u65b0\u7684\u670d\u52a1\u5668\u53d8\u91cf\u662fsynchronized_standby_slots\u3002", "title": "\u5141\u8bb8\u6307\u5b9a\u5728\u5bf9\u8ba2\u9605\u8005\u53ef\u89c1\u4e4b\u524d\u5fc5\u987b\u5148\u5b8c\u6210\u540c\u6b65\u7684\u7269\u7406\u5907\u5e93", "commits": ["0f934b073", "bf279ddd1"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LOGICAL", "source_hash": "7bd3441fcd067f84b47d6bc29c7425094a0590e6a7ef421e0c3529aa20ee405d", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["0f934b073"], ["bf279ddd1"]], "identity_text": "Allow specification of physical standbys that must be synchronized before they are visible to subscribers (Hou Zhijie, Shveta Malik) The new server variable is guc-synchronized-standby-slots .", "commit_aliases": ["0f934b073", "bf279ddd1"], "source_commits": ["0f934b073", "bf279ddd1"], "source_entry_id": "17.0/changes/057", "db_id": "402fd0f262a268f27c9aeff2183e2b1a", "patch_ids": ["cab42c75bbb23030aff44fe28f8e1061", "e4760edb9a3eb2b2cf4a7e394e971890"], "statement_hash": "8c320dd8759eeefe5c2d2126ca9614de88a131911aff182ecd7ff84a1e5f8de5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-b2fec9bbe6071300", "migration": false}, {"id": "17.0-88a693b64faf728c", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION\" title=\"27.2.8.\u00a0pg_stat_subscription\"><code>pg_stat_subscription</code></a> \u6dfb\u52a0\u5de5\u4f5c\u8fdb\u7a0b\u7c7b\u578b\u5217\uff08Peter Smith\uff09<a href=\"https://postgr.es/c/13aeaf079\">\u00a7</a></p>", "text": "\u4e3a pg_stat_subscription \u6dfb\u52a0\u5de5\u4f5c\u8fdb\u7a0b\u7c7b\u578b\u5217\uff08Peter Smith\uff09\u00a7", "title": "\u4e3a pg_stat_subscription \u6dfb\u52a0\u5de5\u4f5c\u8fdb\u7a0b\u7c7b\u578b\u5217", "commits": ["13aeaf079"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LOGICAL", "source_hash": "ef53508d9036941925e4ac87c43c0e354ec1f40b043bf70d3e34cca564e4fe88", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["13aeaf079"]], "identity_text": "Add worker type column to pg_stat_subscription (Peter Smith)", "commit_aliases": ["13aeaf079"], "source_commits": ["13aeaf079"], "source_entry_id": "17.0/changes/058", "db_id": "c96da6b6d0807ab405a7877449d5df44", "patch_ids": ["b137ed957df07f42c12c231224879bfc"], "statement_hash": "d3ed7f8916271e01e9a6d5ab15de3383836a50a244709a8381d8cd2901e5d50f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-88a693b64faf728c", "migration": false}, {"id": "17.0-0b465e28b7772a91", "cves": [], "html": "<p>\u6dfb\u52a0\u65b0\u7684 <a href=\"/docs/17/sql-copy.html\" title=\"COPY\"><code>COPY</code></a> \u9009\u9879 <code>ON_ERROR ignore</code>\uff0c\u7528\u4e8e\u4e22\u5f03\u9519\u8bef\u884c\uff08Damir Belyalov, Atsushi Torikoshi, Alex Shulgin, Jian He, Yugo Nagata\uff09<a href=\"https://postgr.es/c/9e2d87011\">\u00a7</a> <a href=\"https://postgr.es/c/b725b7eec\">\u00a7</a> <a href=\"https://postgr.es/c/40bbc8cf0\">\u00a7</a> <a href=\"https://postgr.es/c/a6d0fa5ef\">\u00a7</a></p>\n<p>\u9ed8\u8ba4\u884c\u4e3a\u662f <code>ON_ERROR stop</code>\u3002</p>", "text": "\u6dfb\u52a0\u65b0\u7684 COPY \u9009\u9879 ON_ERROR ignore\uff0c\u7528\u4e8e\u4e22\u5f03\u9519\u8bef\u884c\uff08Damir Belyalov, Atsushi Torikoshi, Alex Shulgin, Jian He, Yugo Nagata\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u9ed8\u8ba4\u884c\u4e3a\u662f ON_ERROR stop\u3002", "title": "\u6dfb\u52a0\u65b0\u7684 COPY \u9009\u9879 ON_ERROR ignore\uff0c\u7528\u4e8e\u4e22\u5f03\u9519\u8bef\u884c", "commits": ["40bbc8cf0", "9e2d87011", "a6d0fa5ef", "b725b7eec"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "4173f286dab7721379678db6b89f9e4dd7efdb2bd28ab37da9c190ba8e5de82d", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["40bbc8cf0"], ["9e2d87011"], ["a6d0fa5ef"], ["b725b7eec"]], "identity_text": "Add new COPY option ON_ERROR ignore to discard error rows (Damir Belyalov, Atsushi Torikoshi, Alex Shulgin, Jian He, Yugo Nagata) The default behavior is ON_ERROR stop.", "commit_aliases": ["40bbc8cf0", "9e2d87011", "a6d0fa5ef", "b725b7eec"], "source_commits": ["40bbc8cf0", "9e2d87011", "a6d0fa5ef", "b725b7eec"], "source_entry_id": "17.0/changes/059", "db_id": "365709962f047e6f729f62ea0f2866a1", "patch_ids": ["5c73418a2456682094c6ccabeca20104", "a6abd373ab86aa7d6b820b6866590914", "b9446bd4b0350ff0915cb348599fc516", "c33ab49aa06c6ed448604bd209dbf660"], "statement_hash": "cf2016041c04a6ad7e46adaca307bfdcb3b9661648c9a993b89be6af96e3a0be", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-0b465e28b7772a91", "migration": false}, {"id": "17.0-9cd9df2cea85ffd0", "cves": [], "html": "<p>\u6dfb\u52a0\u65b0\u7684 <code>COPY</code> \u9009\u9879 <code>LOG_VERBOSITY</code>\uff0c\u7528\u4e8e\u62a5\u544a <code>COPY FROM</code> \u5ffd\u7565\u7684\u9519\u8bef\u884c\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/f5a227895\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u65b0\u7684 COPY \u9009\u9879 LOG_VERBOSITY\uff0c\u7528\u4e8e\u62a5\u544a COPY FROM \u5ffd\u7565\u7684\u9519\u8bef\u884c\uff08Bharath Rupireddy\uff09\u00a7", "title": "\u6dfb\u52a0\u65b0\u7684 COPY \u9009\u9879 LOG_VERBOSITY\uff0c\u7528\u4e8e\u62a5\u544a COPY FROM \u5ffd\u7565\u7684\u9519\u8bef\u884c", "commits": ["f5a227895"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "1bd4a48d8505938fe39646bdc806f5ddebf0f4045cc37d48c9a7b53212d1266e", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["f5a227895"]], "identity_text": "Add new COPY option LOG_VERBOSITY which reports COPY FROM ignored error rows (Bharath Rupireddy)", "commit_aliases": ["f5a227895"], "source_commits": ["f5a227895"], "source_entry_id": "17.0/changes/060", "db_id": "8f4240a426fab219d05af381844421c5", "patch_ids": ["7a12c77d052db950b856e11512ade308"], "statement_hash": "74d16a0eee3425bd37b740054702560b393ffe40b0238c59371faca7a8b53447", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-9cd9df2cea85ffd0", "migration": false}, {"id": "17.0-8b7664f25d04be5c", "cves": [], "html": "<p>\u5141\u8bb8 <code>COPY FROM</code> \u5728\u5904\u7406\u671f\u95f4\u62a5\u544a\u88ab\u8df3\u8fc7\u7684\u884c\u6570\uff08Atsushi Torikoshi\uff09<a href=\"https://postgr.es/c/729439607\">\u00a7</a></p>\n<p>\u8fd9\u663e\u793a\u5728\u7cfb\u7edf\u89c6\u56fe\u5217 <a href=\"/docs/17/progress-reporting.html#COPY-PROGRESS-REPORTING\" title=\"27.4.3.\u00a0COPY \u8fdb\u5ea6\u62a5\u544a\"><code>pg_stat_progress_copy</code>.<code>tuples_skipped</code></a> \u4e2d\u3002</p>", "text": "\u5141\u8bb8 COPY FROM \u5728\u5904\u7406\u671f\u95f4\u62a5\u544a\u88ab\u8df3\u8fc7\u7684\u884c\u6570\uff08Atsushi Torikoshi\uff09\u00a7 \u8fd9\u663e\u793a\u5728\u7cfb\u7edf\u89c6\u56fe\u5217 pg_stat_progress_copy.tuples_skipped \u4e2d\u3002", "title": "\u5141\u8bb8 COPY FROM \u5728\u5904\u7406\u671f\u95f4\u62a5\u544a\u88ab\u8df3\u8fc7\u7684\u884c\u6570", "commits": ["729439607"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "7d4933ce512bec16cb37b9929e1c88b8f0545988d1749e3607e708eb39da256d", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["729439607"]], "identity_text": "Allow COPY FROM to report the number of skipped rows during processing (Atsushi Torikoshi) This appears in system view column pg_stat_progress_copy.tuples_skipped.", "commit_aliases": ["729439607"], "source_commits": ["729439607"], "source_entry_id": "17.0/changes/061", "db_id": "d5cb9bc41572f0e8d078f64daf384557", "patch_ids": ["0afc944187e2b98a0c4a4ef02ac871e6"], "statement_hash": "959f6a9f3d8f9f5b976eaf5c9a2aae915b1859e65354db8dd2a786312e33a3ee", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-8b7664f25d04be5c", "migration": false}, {"id": "17.0-fed8ea398f2597e2", "cves": [], "html": "<p>\u5728 <code>COPY FROM</code> \u4e2d\uff0c\u5141\u8bb8\u65b9\u4fbf\u5730\u6307\u5b9a\u6240\u6709\u5217\u90fd\u5e94\u88ab\u5f3a\u5236\u8bbe\u4e3a null \u6216 not null\uff08Zhang Mingli\uff09<a href=\"https://postgr.es/c/f6d4c9cf1\">\u00a7</a></p>", "text": "\u5728 COPY FROM \u4e2d\uff0c\u5141\u8bb8\u65b9\u4fbf\u5730\u6307\u5b9a\u6240\u6709\u5217\u90fd\u5e94\u88ab\u5f3a\u5236\u8bbe\u4e3a null \u6216 not null\uff08Zhang Mingli\uff09\u00a7", "title": "\u5728 COPY FROM \u4e2d\uff0c\u5141\u8bb8\u65b9\u4fbf\u5730\u6307\u5b9a\u6240\u6709\u5217\u90fd\u5e94\u88ab\u5f3a\u5236\u8bbe\u4e3a null \u6216 not null", "commits": ["f6d4c9cf1"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "e1ea6d6d63d884aae7ed748ba25f75f44970323bbd153b7d9ba78f8ba6e80d88", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["f6d4c9cf1"]], "identity_text": "In COPY FROM, allow easy specification that all columns should be forced null or not null (Zhang Mingli)", "commit_aliases": ["f6d4c9cf1"], "source_commits": ["f6d4c9cf1"], "source_entry_id": "17.0/changes/062", "db_id": "263d1d0cc371d97f055522d42beb04a7", "patch_ids": ["0f2ac90c75aba410d511036497a989ce"], "statement_hash": "9849b1a30dd7f31662322117df5348b5e8e969812ede23c4edb861b3daeafeee", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-fed8ea398f2597e2", "migration": false}, {"id": "17.0-f894aedbe8966c4b", "cves": [], "html": "<p>\u5141\u8bb8\u5206\u533a\u8868\u62e5\u6709\u6807\u8bc6\u5217\uff08Ashutosh Bapat\uff09<a href=\"https://postgr.es/c/699586315\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5206\u533a\u8868\u62e5\u6709\u6807\u8bc6\u5217\uff08Ashutosh Bapat\uff09\u00a7", "title": "\u5141\u8bb8\u5206\u533a\u8868\u62e5\u6709\u6807\u8bc6\u5217", "commits": ["699586315"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "d6773ffc45256b40173b8f32f1599e692da3f22be3112807add72e473449cee7", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["699586315"]], "identity_text": "Allow partitioned tables to have identity columns (Ashutosh Bapat)", "commit_aliases": ["699586315"], "source_commits": ["699586315"], "source_entry_id": "17.0/changes/063", "db_id": "d68483b69562373262a0bcbf0eb8f379", "patch_ids": ["e223295279c5c1549441d329e725f1f5"], "statement_hash": "0c352aff4194ec7d6aa8b23e700fce9724023fec4040a6c696163d485698550f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-f894aedbe8966c4b", "migration": false}, {"id": "17.0-ffa1a9847a50964b", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u4f7f\u7528<a href=\"/docs/17/ddl-constraints.html#DDL-CONSTRAINTS-EXCLUSION\" title=\"5.5.6.\u00a0\u6392\u4ed6\u7ea6\u675f\">\u6392\u4ed6\u7ea6\u675f</a>\uff08Paul A. Jungwirth\uff09<a href=\"https://postgr.es/c/8c852ba9a\">\u00a7</a></p>\n<p>\u53ea\u8981\u6392\u4ed6\u7ea6\u675f\u4ee5\u76f8\u7b49\u6bd4\u8f83\u5206\u533a\u952e\u5217\uff0c\u5176\u4ed6\u5217\u5c31\u53ef\u4ee5\u4f7f\u7528\u6392\u4ed6\u7ea6\u675f\u7279\u6709\u7684\u6bd4\u8f83\u65b9\u5f0f\u3002</p>", "text": "\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u4f7f\u7528\u6392\u4ed6\u7ea6\u675f\uff08Paul A. Jungwirth\uff09\u00a7 \u53ea\u8981\u6392\u4ed6\u7ea6\u675f\u4ee5\u76f8\u7b49\u6bd4\u8f83\u5206\u533a\u952e\u5217\uff0c\u5176\u4ed6\u5217\u5c31\u53ef\u4ee5\u4f7f\u7528\u6392\u4ed6\u7ea6\u675f\u7279\u6709\u7684\u6bd4\u8f83\u65b9\u5f0f\u3002", "title": "\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u4f7f\u7528\u6392\u4ed6\u7ea6\u675f", "commits": ["8c852ba9a"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "fb4777f26494f716ed6568697ee6d8cc5caf427022357d99cbc2e62281103506", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["8c852ba9a"]], "identity_text": "Allow exclusion constraints on partitioned tables (Paul A. Jungwirth) As long as exclusion constraints compare partition key columns for equality, other columns can use exclusion constraint-specific comparisons.", "commit_aliases": ["8c852ba9a"], "source_commits": ["8c852ba9a"], "source_entry_id": "17.0/changes/064", "db_id": "a6d414dedb1f3a32209a6d5c975f9fd3", "patch_ids": ["171e5b635a45df92bbdf17f0e9771da3"], "statement_hash": "92d39333322480eb6c7266bf2a0426abeab386bd0a7140a07b2bbd2962fddbed", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-ffa1a9847a50964b", "migration": false}, {"id": "17.0-787ff7a0336bc432", "cves": [], "html": "<p>\u4e3a\u5c06\u5217\u8bbe\u7f6e\u4e3a\u9ed8\u8ba4\u7edf\u8ba1\u76ee\u6807\u6dfb\u52a0\u66f4\u6e05\u6670\u7684 <a href=\"/docs/17/sql-altertable.html\" title=\"ALTER TABLE\"><code>ALTER TABLE</code></a> \u65b9\u6cd5\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/4f622503d\">\u00a7</a></p>\n<p>\u65b0\u8bed\u6cd5\u662f <code>ALTER TABLE ... SET STATISTICS DEFAULT</code>\uff1b\u4ecd\u7136\u652f\u6301\u4f7f\u7528 <code>SET STATISTICS -1</code>\u3002</p>", "text": "\u4e3a\u5c06\u5217\u8bbe\u7f6e\u4e3a\u9ed8\u8ba4\u7edf\u8ba1\u76ee\u6807\u6dfb\u52a0\u66f4\u6e05\u6670\u7684 ALTER TABLE \u65b9\u6cd5\uff08Peter Eisentraut\uff09\u00a7 \u65b0\u8bed\u6cd5\u662f ALTER TABLE ... SET STATISTICS DEFAULT\uff1b\u4ecd\u7136\u652f\u6301\u4f7f\u7528 SET STATISTICS -1\u3002", "title": "\u4e3a\u5c06\u5217\u8bbe\u7f6e\u4e3a\u9ed8\u8ba4\u7edf\u8ba1\u76ee\u6807\u6dfb\u52a0\u66f4\u6e05\u6670\u7684 ALTER TABLE \u65b9\u6cd5", "commits": ["4f622503d"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "26e5380d56453682cf806c80cd75bd54d638455642421958df6009f56e40281a", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["4f622503d"]], "identity_text": "Add clearer ALTER TABLE method to set a column to the default statistics target (Peter Eisentraut) The new syntax is ALTER TABLE ... SET STATISTICS DEFAULT; using SET STATISTICS -1 is still supported.", "commit_aliases": ["4f622503d"], "source_commits": ["4f622503d"], "source_entry_id": "17.0/changes/065", "db_id": "6092816ce66efe9e474514c27d1edf89", "patch_ids": ["4d496fe2fd867ecb3ba5df367b723dd0"], "statement_hash": "acfec4a190118ae3ba311a502fe0bacf4bfec8bc1bab7e70582acd98ecd0426d", "relations": [{"rule": 2, "type": "related", "target": "55cac36d03b238bca53d532c65e1d15f", "evidence": {"same_day": true, "patch_ids": ["4d496fe2fd867ecb3ba5df367b723dd0"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-787ff7a0336bc432", "migration": false}, {"id": "17.0-cf3bb6016951814b", "cves": [], "html": "<p>\u5141\u8bb8 <code>ALTER TABLE</code> \u66f4\u6539\u5217\u7684\u751f\u6210\u8868\u8fbe\u5f0f\uff08Amul Sul\uff09<a href=\"https://postgr.es/c/5d06e99a3\">\u00a7</a></p>\n<p>\u8bed\u6cd5\u4e3a <code>ALTER TABLE ... ALTER COLUMN ... SET EXPRESSION</code>\u3002</p>", "text": "\u5141\u8bb8 ALTER TABLE \u66f4\u6539\u5217\u7684\u751f\u6210\u8868\u8fbe\u5f0f\uff08Amul Sul\uff09\u00a7 \u8bed\u6cd5\u4e3a ALTER TABLE ... ALTER COLUMN ... SET EXPRESSION\u3002", "title": "\u5141\u8bb8 ALTER TABLE \u66f4\u6539\u5217\u7684\u751f\u6210\u8868\u8fbe\u5f0f", "commits": ["5d06e99a3"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "d68eb3005be15dfca37b86149a1eab65687f34d8deb3912d886afe377b47865d", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["5d06e99a3"]], "identity_text": "Allow ALTER TABLE to change a column's generation expression (Amul Sul) The syntax is ALTER TABLE ... ALTER COLUMN ... SET EXPRESSION.", "commit_aliases": ["5d06e99a3"], "source_commits": ["5d06e99a3"], "source_entry_id": "17.0/changes/066", "db_id": "7526fd7c1aab47310de7f8871d5df6aa", "patch_ids": ["c3b9ff98023ddcbc946dbb3937a67397"], "statement_hash": "d03bfa91d58f2c27c3d434cf4174ee7f149d63c3e3516c09f5bc77617f8b45a2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-cf3bb6016951814b", "migration": false}, {"id": "17.0-049cb251128661c0", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u6307\u5b9a<a href=\"/docs/17/tableam.html\" title=\"\u7b2c\u00a061\u00a0\u7ae0\u00a0\u8868\u8bbf\u95ee\u65b9\u6cd5\u63a5\u53e3\u5b9a\u4e49\">\u8868\u8bbf\u95ee\u65b9\u6cd5</a>\uff08Justin Pryzby, Soumyadeep Chakraborty, Michael Paquier\uff09<a href=\"https://postgr.es/c/374c7a229\">\u00a7</a> <a href=\"https://postgr.es/c/e2395cdbe\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u6307\u5b9a\u8868\u8bbf\u95ee\u65b9\u6cd5\uff08Justin Pryzby, Soumyadeep Chakraborty, Michael Paquier\uff09\u00a7 \u00a7", "title": "\u5141\u8bb8\u5728\u5206\u533a\u8868\u4e0a\u6307\u5b9a\u8868\u8bbf\u95ee\u65b9\u6cd5", "commits": ["374c7a229", "e2395cdbe"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "58ed2b89b695cb6bf19b0e65b5b8685c2c18e39550cbd5917765d539c98e57f3", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["374c7a229"], ["e2395cdbe"]], "identity_text": "Allow specification of table access methods on partitioned tables (Justin Pryzby, Soumyadeep Chakraborty, Michael Paquier)", "commit_aliases": ["374c7a229", "e2395cdbe"], "source_commits": ["374c7a229", "e2395cdbe"], "source_entry_id": "17.0/changes/067", "db_id": "62582f5907336949f9efd19673964ecc", "patch_ids": ["d8c678c4367013caa41719514512deaa", "e5b02f4aca72c82315ce2a39bff0c870"], "statement_hash": "a705a4cebfc30dc70c9ce00a90e9adaf7fa9a90303224410fe646bf4e61547a8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-049cb251128661c0", "migration": false}, {"id": "17.0-494d942b4e2523b3", "cves": [], "html": "<p>\u4e3a <code>ALTER TABLE .. SET ACCESS METHOD</code> \u6dfb\u52a0 <code>DEFAULT</code> \u8bbe\u7f6e\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/d61a6cad6\">\u00a7</a></p>", "text": "\u4e3a ALTER TABLE .. SET ACCESS METHOD \u6dfb\u52a0 DEFAULT \u8bbe\u7f6e\uff08Michael Paquier\uff09\u00a7", "title": "\u4e3a ALTER TABLE .. SET ACCESS METHOD \u6dfb\u52a0 DEFAULT \u8bbe\u7f6e", "commits": ["d61a6cad6"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "416f5f66d5ba4650150fc3007b0218d18c91ff7ae7cd6fe5dd613bbc9ad1d23f", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["d61a6cad6"]], "identity_text": "Add DEFAULT setting for ALTER TABLE .. SET ACCESS METHOD (Michael Paquier)", "commit_aliases": ["d61a6cad6"], "source_commits": ["d61a6cad6"], "source_entry_id": "17.0/changes/068", "db_id": "02aaff9e81f82f1da8e8990a0a588b4f", "patch_ids": ["8bb0d47105275c28fc445857675584fa"], "statement_hash": "cab1533c7828d51817a48001dc366370824716f564de2a8490608f32577dc178", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-494d942b4e2523b3", "migration": false}, {"id": "17.0-7d3688ffdf807e4e", "cves": [], "html": "<p>\u6dfb\u52a0\u5bf9\u5728\u8fde\u63a5\u65f6\u89e6\u53d1\u7684<a href=\"/docs/17/sql-createeventtrigger.html\" title=\"CREATE EVENT TRIGGER\">\u4e8b\u4ef6\u89e6\u53d1\u5668</a>\u7684\u652f\u6301\uff08Konstantin Knizhnik, Mikhail Gribkov\uff09<a href=\"https://postgr.es/c/e83d1b0c4\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u5bf9\u5728\u8fde\u63a5\u65f6\u89e6\u53d1\u7684\u4e8b\u4ef6\u89e6\u53d1\u5668\u7684\u652f\u6301\uff08Konstantin Knizhnik, Mikhail Gribkov\uff09\u00a7", "title": "\u6dfb\u52a0\u5bf9\u5728\u8fde\u63a5\u65f6\u89e6\u53d1\u7684\u4e8b\u4ef6\u89e6\u53d1\u5668\u7684\u652f\u6301", "commits": ["e83d1b0c4"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "28030046e1a700e7b3da9438cdfa90ddef97bafb92193632fd6df01c3077c616", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["e83d1b0c4"]], "identity_text": "Add support for event triggers that fire at connection time (Konstantin Knizhnik, Mikhail Gribkov)", "commit_aliases": ["e83d1b0c4"], "source_commits": ["e83d1b0c4"], "source_entry_id": "17.0/changes/069", "db_id": "6a0b049ca5010efe61d38bf6dd3266f5", "patch_ids": ["81d2b85442f53f5aae778ed487591a0e"], "statement_hash": "f2526b5708edc82c47132a1620cc8b0e64a3699d8c1efeba55fe964960cce461", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-7d3688ffdf807e4e", "migration": false}, {"id": "17.0-43f3afd9c441cc91", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/17/sql-reindex.html\" title=\"REINDEX\"><code>REINDEX</code></a> \u6dfb\u52a0\u4e8b\u4ef6\u89e6\u53d1\u5668\u652f\u6301\uff08Garrett Thornburg, Jian He\uff09<a href=\"https://postgr.es/c/f21848de2\">\u00a7</a></p>", "text": "\u4e3a REINDEX \u6dfb\u52a0\u4e8b\u4ef6\u89e6\u53d1\u5668\u652f\u6301\uff08Garrett Thornburg, Jian He\uff09\u00a7", "title": "\u4e3a REINDEX \u6dfb\u52a0\u4e8b\u4ef6\u89e6\u53d1\u5668\u652f\u6301", "commits": ["f21848de2"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "17455ef14238956f534688dc513015d05d1a9a0e221d27b67d021b2a4eafcff7", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["f21848de2"]], "identity_text": "Add event trigger support for REINDEX (Garrett Thornburg, Jian He)", "commit_aliases": ["f21848de2"], "source_commits": ["f21848de2"], "source_entry_id": "17.0/changes/070", "db_id": "fcd308f571631c763de01309c3cb4c09", "patch_ids": ["8302e0e533a7421fbae210668443c136"], "statement_hash": "45418b1481cebd92285301651d9ee095012d2bfd7749baa103981dccad07ee0e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-43f3afd9c441cc91", "migration": false}, {"id": "17.0-161eda21ac95b359", "cves": [], "html": "<p>\u5982\u679c\u672a\u6307\u5b9a\u8868\u540d\uff0c\u5219\u5141\u8bb8 <a href=\"/docs/17/sql-cluster.html\" title=\"CLUSTER\"><code>CLUSTER</code></a> \u9009\u9879\u4f7f\u7528\u5e26\u62ec\u53f7\u7684\u8bed\u6cd5\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/cdaedfc96\">\u00a7</a></p>", "text": "\u5982\u679c\u672a\u6307\u5b9a\u8868\u540d\uff0c\u5219\u5141\u8bb8 CLUSTER \u9009\u9879\u4f7f\u7528\u5e26\u62ec\u53f7\u7684\u8bed\u6cd5\uff08Nathan Bossart\uff09\u00a7", "title": "\u5982\u679c\u672a\u6307\u5b9a\u8868\u540d\uff0c\u5219\u5141\u8bb8 CLUSTER \u9009\u9879\u4f7f\u7528\u5e26\u62ec\u53f7\u7684\u8bed\u6cd5", "commits": ["cdaedfc96"], "section": "\u5de5\u5177\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-UTILITY", "source_hash": "99d61ca022448a0a5a5c450ba9edd277dd8f7e8b0c8754c586effa312b63a778", "section_path": ["\u5de5\u5177\u547d\u4ee4"], "commit_groups": [["cdaedfc96"]], "identity_text": "Allow parenthesized syntax for CLUSTER options if a table name is not specified (Nathan Bossart)", "commit_aliases": ["cdaedfc96"], "source_commits": ["cdaedfc96"], "source_entry_id": "17.0/changes/071", "db_id": "c98666cbc1ccf226e8383a8e54298655", "patch_ids": ["d93decf7641cabc5deb7a2fc6e85a2b7"], "statement_hash": "00eaff8d7fa0509a53d7cd5a746bd90ea2f5b6e4f4e459e8bdf12b8b7f408c6d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-161eda21ac95b359", "migration": false}, {"id": "17.0-4834f8b764dc204a", "cves": [], "html": "<p>\u5141\u8bb8 <code>EXPLAIN</code> \u62a5\u544a\u4f18\u5316\u5668\u5185\u5b58\u4f7f\u7528\u60c5\u51b5\uff08Ashutosh Bapat\uff09<a href=\"https://postgr.es/c/5de890e36\">\u00a7</a></p>\n<p>\u8be5\u9009\u9879\u540d\u4e3a <code>MEMORY</code>\u3002</p>", "text": "\u5141\u8bb8 EXPLAIN \u62a5\u544a\u4f18\u5316\u5668\u5185\u5b58\u4f7f\u7528\u60c5\u51b5\uff08Ashutosh Bapat\uff09\u00a7 \u8be5\u9009\u9879\u540d\u4e3a MEMORY\u3002", "title": "\u5141\u8bb8 EXPLAIN \u62a5\u544a\u4f18\u5316\u5668\u5185\u5b58\u4f7f\u7528\u60c5\u51b5", "commits": ["5de890e36"], "section": "\u5de5\u5177\u547d\u4ee4 / EXPLAIN", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-EXPLAIN", "source_hash": "df62ec5e427baba9f1a68c67a0fc4b0a1771853730714e2f0fec766a680eeb5e", "section_path": ["\u5de5\u5177\u547d\u4ee4", "EXPLAIN"], "commit_groups": [["5de890e36"]], "identity_text": "Allow EXPLAIN to report optimizer memory usage (Ashutosh Bapat) The option is called MEMORY.", "commit_aliases": ["5de890e36"], "source_commits": ["5de890e36"], "source_entry_id": "17.0/changes/072", "db_id": "71bed92339c3f3de0a86b6d3a9e0402e", "patch_ids": ["15c76db82c589c26fa4aff3ded39fd2a"], "statement_hash": "c00457662f0e50af98fecdda7c5860246233624cfa685f472f01f8847be3523d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-4834f8b764dc204a", "migration": false}, {"id": "17.0-59564320f7abfbbf", "cves": [], "html": "<p>\u6dfb\u52a0 <code>EXPLAIN</code> \u9009\u9879 <code>SERIALIZE</code>\uff0c\u7528\u4e8e\u62a5\u544a\u4e3a\u7f51\u7edc\u4f20\u8f93\u8f6c\u6362\u6570\u636e\u7684\u4ee3\u4ef7\uff08Stepan Rutz, Matthias van de Meent\uff09<a href=\"https://postgr.es/c/06286709e\">\u00a7</a></p>", "text": "\u6dfb\u52a0 EXPLAIN \u9009\u9879 SERIALIZE\uff0c\u7528\u4e8e\u62a5\u544a\u4e3a\u7f51\u7edc\u4f20\u8f93\u8f6c\u6362\u6570\u636e\u7684\u4ee3\u4ef7\uff08Stepan Rutz, Matthias van de Meent\uff09\u00a7", "title": "\u6dfb\u52a0 EXPLAIN \u9009\u9879 SERIALIZE\uff0c\u7528\u4e8e\u62a5\u544a\u4e3a\u7f51\u7edc\u4f20\u8f93\u8f6c\u6362\u6570\u636e\u7684\u4ee3\u4ef7", "commits": ["06286709e"], "section": "\u5de5\u5177\u547d\u4ee4 / EXPLAIN", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-EXPLAIN", "source_hash": "e8b472e48caac5191de15ffbf6600fd4fbf694fa6082f21315b77399225d2af2", "section_path": ["\u5de5\u5177\u547d\u4ee4", "EXPLAIN"], "commit_groups": [["06286709e"]], "identity_text": "Add EXPLAIN option SERIALIZE to report the cost of converting data for network transmission (Stepan Rutz, Matthias van de Meent)", "commit_aliases": ["06286709e"], "source_commits": ["06286709e"], "source_entry_id": "17.0/changes/073", "db_id": "97daae7ca392b85d0b1d17e931861cd8", "patch_ids": ["bdfaec7d62abe43f514139e272c051cc"], "statement_hash": "1d9bd86e2a9f38de5d25e356e2382a057efe88eff00bf1142389566ea7ae5a51", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-59564320f7abfbbf", "migration": false}, {"id": "17.0-70a7093e20ba6cd2", "cves": [], "html": "<p>\u4e3a <code>EXPLAIN</code> \u7684 <code>BUFFERS</code> \u8f93\u51fa\u6dfb\u52a0\u672c\u5730 I/O \u5757\u8bfb/\u5199\u8017\u65f6\u7edf\u8ba1\u4fe1\u606f\uff08Nazir Bilal Yavuz\uff09<a href=\"https://postgr.es/c/295c36c0c\">\u00a7</a></p>", "text": "\u4e3a EXPLAIN \u7684 BUFFERS \u8f93\u51fa\u6dfb\u52a0\u672c\u5730 I/O \u5757\u8bfb/\u5199\u8017\u65f6\u7edf\u8ba1\u4fe1\u606f\uff08Nazir Bilal Yavuz\uff09\u00a7", "title": "\u4e3a EXPLAIN \u7684 BUFFERS \u8f93\u51fa\u6dfb\u52a0\u672c\u5730 I/O \u5757\u8bfb/\u5199\u8017\u65f6\u7edf\u8ba1\u4fe1\u606f", "commits": ["295c36c0c"], "section": "\u5de5\u5177\u547d\u4ee4 / EXPLAIN", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-EXPLAIN", "source_hash": "de34753602be6a6963efeae2cc431f7e76b6c3da2246b4e1baf66443089fe100", "section_path": ["\u5de5\u5177\u547d\u4ee4", "EXPLAIN"], "commit_groups": [["295c36c0c"]], "identity_text": "Add local I/O block read/write timing statistics to EXPLAIN's BUFFERS output (Nazir Bilal Yavuz)", "commit_aliases": ["295c36c0c"], "source_commits": ["295c36c0c"], "source_entry_id": "17.0/changes/074", "db_id": "3a8f2092e95f906fe2ba774157ee86a4", "patch_ids": ["5bbfcb7876ccc999e0bc578d10ccf3d1"], "statement_hash": "14a0f420e6fdce8e907b562e8b737826172d9e6da9085f5efe07db0de1a13e0a", "relations": [{"rule": 2, "type": "related", "target": "a487787ae801d826d7c42eb4f15dd2e9", "evidence": {"same_day": true, "patch_ids": ["5bbfcb7876ccc999e0bc578d10ccf3d1"], "ambiguous_patch_ids": ["5bbfcb7876ccc999e0bc578d10ccf3d1"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-70a7093e20ba6cd2", "migration": false}, {"id": "17.0-73bb5a163fd3f295", "cves": [], "html": "<p>\u6539\u8fdb <code>EXPLAIN</code> \u5bf9 SubPlan \u8282\u70b9\u548c\u8f93\u51fa\u53c2\u6570\u7684\u663e\u793a\uff08Tom Lane, Dean Rasheed\uff09<a href=\"https://postgr.es/c/fd0398fcb\">\u00a7</a></p>", "text": "\u6539\u8fdb EXPLAIN \u5bf9 SubPlan \u8282\u70b9\u548c\u8f93\u51fa\u53c2\u6570\u7684\u663e\u793a\uff08Tom Lane, Dean Rasheed\uff09\u00a7", "title": "\u6539\u8fdb EXPLAIN \u5bf9 SubPlan \u8282\u70b9\u548c\u8f93\u51fa\u53c2\u6570\u7684\u663e\u793a", "commits": ["fd0398fcb"], "section": "\u5de5\u5177\u547d\u4ee4 / EXPLAIN", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-EXPLAIN", "source_hash": "8de10e075d3a3a3f910aa6e30549cddd065a9648a70fd829574a4da7ec5b3a4e", "section_path": ["\u5de5\u5177\u547d\u4ee4", "EXPLAIN"], "commit_groups": [["fd0398fcb"]], "identity_text": "Improve EXPLAIN's display of SubPlan nodes and output parameters (Tom Lane, Dean Rasheed)", "commit_aliases": ["fd0398fcb"], "source_commits": ["fd0398fcb"], "source_entry_id": "17.0/changes/075", "db_id": "c47f831b9c89bc80c9d9bed926c01e11", "patch_ids": ["bd71d58ddd079130d8bcb6140dca138a"], "statement_hash": "ef2b0f1b56499d7ea432798a077b5f335c1c1a385cde35670b8dcda2eef45d21", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-73bb5a163fd3f295", "migration": false}, {"id": "17.0-b17cc37285e213a8", "cves": [], "html": "<p>\u4e3a <code>EXPLAIN</code> \u6dfb\u52a0 <acronym>JIT</acronym> <code>deform_counter</code> \u7ec6\u8282\uff08Dmitry Dolgov\uff09<a href=\"https://postgr.es/c/5a3423ad8\">\u00a7</a></p>", "text": "\u4e3a EXPLAIN \u6dfb\u52a0 JIT deform_counter \u7ec6\u8282\uff08Dmitry Dolgov\uff09\u00a7", "title": "\u4e3a EXPLAIN \u6dfb\u52a0 JIT deform_counter \u7ec6\u8282", "commits": ["5a3423ad8"], "section": "\u5de5\u5177\u547d\u4ee4 / EXPLAIN", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-EXPLAIN", "source_hash": "eaf00283591cbcad72f2ed135a5c0cf1140c22b3584f62f60be1d4f8f585482a", "section_path": ["\u5de5\u5177\u547d\u4ee4", "EXPLAIN"], "commit_groups": [["5a3423ad8"]], "identity_text": "Add JIT deform_counter details to EXPLAIN (Dmitry Dolgov)", "commit_aliases": ["5a3423ad8"], "source_commits": ["5a3423ad8"], "source_entry_id": "17.0/changes/076", "db_id": "14f807d67bbb33e16136e47a0d977573", "patch_ids": ["69b5f4ac2075731de6ade1ebfae6e6c3"], "statement_hash": "3bc4030554843738c8a6339ba9875ea48730c6393f452b7c2474543a48de9ec5", "relations": [{"rule": 2, "type": "related", "target": "cfc33f9d4d45dd958c4e7f050c7845a6", "evidence": {"same_day": true, "patch_ids": ["69b5f4ac2075731de6ade1ebfae6e6c3"], "ambiguous_patch_ids": ["69b5f4ac2075731de6ade1ebfae6e6c3"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-b17cc37285e213a8", "migration": false}, {"id": "17.0-5dddac4281e029d5", "cves": [], "html": "<p>\u5141\u8bb8 <code>interval</code> \u6570\u636e\u7c7b\u578b\u652f\u6301 <code>+/-infinity</code> \u503c\uff08Joseph Koshakow, Jian He, Ashutosh Bapat\uff09<a href=\"https://postgr.es/c/519fc1bd9\">\u00a7</a></p>", "text": "\u5141\u8bb8 interval \u6570\u636e\u7c7b\u578b\u652f\u6301 +/-infinity \u503c\uff08Joseph Koshakow, Jian He, Ashutosh Bapat\uff09\u00a7", "title": "\u5141\u8bb8 interval \u6570\u636e\u7c7b\u578b\u652f\u6301 +/-infinity \u503c", "commits": ["519fc1bd9"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-DATATYPES", "source_hash": "57d8671681af0916c481def50a42c7c50a641c1d43a0cdbd5b989e6c0690210a", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["519fc1bd9"]], "identity_text": "Allow the interval data type to support +/-infinity values (Joseph Koshakow, Jian He, Ashutosh Bapat)", "commit_aliases": ["519fc1bd9"], "source_commits": ["519fc1bd9"], "source_entry_id": "17.0/changes/077", "db_id": "21e19c5c09084391af043fdfb894e330", "patch_ids": ["b91938e8420c533dc224e7b125b6abb3"], "statement_hash": "d15ddf43fef7d9894b24b27706b8cb8b690ac81aed3b281e59237148f0f47f68", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-5dddac4281e029d5", "migration": false}, {"id": "17.0-5764d88da88cc2f7", "cves": [], "html": "<p>\u5982\u679c\u8be5\u7c7b\u578b\u662f\u5728\u540c\u4e00\u4e8b\u52a1\u4e2d\u521b\u5efa\u7684\uff0c\u5219\u5141\u8bb8\u4f7f\u7528\u901a\u8fc7 <a href=\"/docs/17/sql-altertype.html\" title=\"ALTER TYPE\"><code>ALTER TYPE</code></a> \u65b0\u589e\u7684 <a href=\"/docs/17/datatype-enum.html\" title=\"8.7.\u00a0\u679a\u4e3e\u7c7b\u578b\"><code>ENUM</code></a> \u503c\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/af1d39584\">\u00a7</a></p>\n<p>\u8fd9\u5728\u4ee5\u524d\u662f\u4e0d\u5141\u8bb8\u7684\u3002</p>", "text": "\u5982\u679c\u8be5\u7c7b\u578b\u662f\u5728\u540c\u4e00\u4e8b\u52a1\u4e2d\u521b\u5efa\u7684\uff0c\u5219\u5141\u8bb8\u4f7f\u7528\u901a\u8fc7 ALTER TYPE \u65b0\u589e\u7684 ENUM \u503c\uff08Tom Lane\uff09\u00a7 \u8fd9\u5728\u4ee5\u524d\u662f\u4e0d\u5141\u8bb8\u7684\u3002", "title": "\u5982\u679c\u8be5\u7c7b\u578b\u662f\u5728\u540c\u4e00\u4e8b\u52a1\u4e2d\u521b\u5efa\u7684\uff0c\u5219\u5141\u8bb8\u4f7f\u7528\u901a\u8fc7 ALTER TYPE \u65b0\u589e\u7684 ENUM \u503c", "commits": ["af1d39584"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-DATATYPES", "source_hash": "1b54e6f54d9debea581b57bd116ccdd1ca2f74bab99289355269d7fc57624785", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["af1d39584"]], "identity_text": "Allow the use of an ENUM added via ALTER TYPE if the type was created in the same transaction (Tom Lane) This was previously disallowed.", "commit_aliases": ["af1d39584"], "source_commits": ["af1d39584"], "source_entry_id": "17.0/changes/078", "db_id": "bb4b92fac7d7bf27bbf2a3c676960bb1", "patch_ids": ["4a8aa96d2b3f72c17cca83bb033799f9"], "statement_hash": "df9e6a22a08482e477e5d5f873e5f54b9cd9b8aa522560fdc6cac13d9137c604", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-5764d88da88cc2f7", "migration": false}, {"id": "17.0-f678dfc6392caa4d", "cves": [], "html": "<p>\u5141\u8bb8 <code>MERGE</code> \u4fee\u6539\u53ef\u66f4\u65b0\u89c6\u56fe\uff08Dean Rasheed\uff09<a href=\"https://postgr.es/c/5f2e179bd\">\u00a7</a></p>", "text": "\u5141\u8bb8 MERGE \u4fee\u6539\u53ef\u66f4\u65b0\u89c6\u56fe\uff08Dean Rasheed\uff09\u00a7", "title": "\u5141\u8bb8 MERGE \u4fee\u6539\u53ef\u66f4\u65b0\u89c6\u56fe", "commits": ["5f2e179bd"], "section": "MERGE", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MERGE", "source_hash": "2f73e95958319080e5040b3e1271ce2c829be7874fe2ce0c80aff15b4009699d", "section_path": ["MERGE"], "commit_groups": [["5f2e179bd"]], "identity_text": "Allow MERGE to modify updatable views (Dean Rasheed)", "commit_aliases": ["5f2e179bd"], "source_commits": ["5f2e179bd"], "source_entry_id": "17.0/changes/079", "db_id": "d6ae6c853adaf39f35ba6ae35112094c", "patch_ids": ["ae64a98f80ec7bf32d31aabe70bb3a8c"], "statement_hash": "76e8a3a1ee7a4639111f47ff871c659e6aa5893a7a84fc3a17173c1eacdaea38", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-f678dfc6392caa4d", "migration": false}, {"id": "17.0-562401d3e7ee1c60", "cves": [], "html": "<p>\u4e3a <code>MERGE</code> \u6dfb\u52a0 <code>WHEN NOT MATCHED BY SOURCE</code>\uff08Dean Rasheed\uff09<a href=\"https://postgr.es/c/0294df2f1\">\u00a7</a></p>\n<p>\u4ee5\u524d\u5df2\u7ecf\u652f\u6301\u5728\u76ee\u6807\u884c\u4e0a\u4f7f\u7528 <code>WHEN NOT MATCHED</code>\u3002</p>", "text": "\u4e3a MERGE \u6dfb\u52a0 WHEN NOT MATCHED BY SOURCE\uff08Dean Rasheed\uff09\u00a7 \u4ee5\u524d\u5df2\u7ecf\u652f\u6301\u5728\u76ee\u6807\u884c\u4e0a\u4f7f\u7528 WHEN NOT MATCHED\u3002", "title": "\u4e3a MERGE \u6dfb\u52a0 WHEN NOT MATCHED BY SOURCE", "commits": ["0294df2f1"], "section": "MERGE", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MERGE", "source_hash": "8ef1e26d38e863b544f0e125e1251ceaa64e9e5c824c4915f85724da77dcead4", "section_path": ["MERGE"], "commit_groups": [["0294df2f1"]], "identity_text": "Add WHEN NOT MATCHED BY SOURCE to MERGE (Dean Rasheed) WHEN NOT MATCHED on target rows was already supported.", "commit_aliases": ["0294df2f1"], "source_commits": ["0294df2f1"], "source_entry_id": "17.0/changes/080", "db_id": "68ca5745ae12c64f23b5edcc507fbd7d", "patch_ids": ["de2d02cea48c4be3dd7df067cd971800"], "statement_hash": "cada5f1d9f0edc113c09a36c592fba8e5ef5d012b10b6271f1c6af7f11f327ed", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-562401d3e7ee1c60", "migration": false}, {"id": "17.0-970b310040a2c152", "cves": [], "html": "<p>\u5141\u8bb8 <code>MERGE</code> \u4f7f\u7528 <code>RETURNING</code> \u5b50\u53e5\uff08Dean Rasheed\uff09<a href=\"https://postgr.es/c/c649fa24a\">\u00a7</a></p>\n<p>\u65b0\u7684 <code>RETURNING</code> \u51fd\u6570 <code>merge_action()</code> \u4f1a\u62a5\u544a\u751f\u6210\u8be5\u884c\u7684 <acronym>DML</acronym> \u64cd\u4f5c\u3002</p>", "text": "\u5141\u8bb8 MERGE \u4f7f\u7528 RETURNING \u5b50\u53e5\uff08Dean Rasheed\uff09\u00a7 \u65b0\u7684 RETURNING \u51fd\u6570 merge_action() \u4f1a\u62a5\u544a\u751f\u6210\u8be5\u884c\u7684 DML \u64cd\u4f5c\u3002", "title": "\u5141\u8bb8 MERGE \u4f7f\u7528 RETURNING \u5b50\u53e5", "commits": ["c649fa24a"], "section": "MERGE", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MERGE", "source_hash": "0ed35771443ac01bb89c6249564ad4e3cdfe7a5d39b142e751055c63c83a78a4", "section_path": ["MERGE"], "commit_groups": [["c649fa24a"]], "identity_text": "Allow MERGE to use the RETURNING clause (Dean Rasheed) The new RETURNING function merge_action() reports on the DML that generated the row.", "commit_aliases": ["c649fa24a"], "source_commits": ["c649fa24a"], "source_entry_id": "17.0/changes/081", "db_id": "126f05e11609c4529c0e084a8fa399eb", "patch_ids": ["9b6645a437b79d8fa2c57824a45c59e3"], "statement_hash": "613d6ca6525351d206e387de3bbbbd36934a63b88a05a516969d9c7b3f07e9f2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-970b310040a2c152", "migration": false}, {"id": "17.0-50934f8be2eb3c55", "cves": [], "html": "<p>\u6dfb\u52a0\u51fd\u6570 <a href=\"/docs/17/functions-json.html#FUNCTIONS-SQLJSON-TABLE\" title=\"9.16.4.\u00a0JSON_TABLE\"><code>JSON_TABLE()</code></a>\uff0c\u7528\u4e8e\u5c06 <code>JSON</code> \u6570\u636e\u8f6c\u6362\u4e3a\u8868\u8868\u793a\u5f62\u5f0f\uff08Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Jian He\uff09<a href=\"https://postgr.es/c/de3600452\">\u00a7</a> <a href=\"https://postgr.es/c/bb766cde6\">\u00a7</a></p>\n<p>\u8be5\u51fd\u6570\u53ef\u5728 <code>SELECT</code> \u67e5\u8be2\u7684 <code>FROM</code> \u5b50\u53e5\u4e2d\u7528\u4f5c\u5143\u7ec4\u6e90\u3002</p>", "text": "\u6dfb\u52a0\u51fd\u6570 JSON_TABLE()\uff0c\u7528\u4e8e\u5c06 JSON \u6570\u636e\u8f6c\u6362\u4e3a\u8868\u8868\u793a\u5f62\u5f0f\uff08Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Jian He\uff09\u00a7 \u00a7 \u8be5\u51fd\u6570\u53ef\u5728 SELECT \u67e5\u8be2\u7684 FROM \u5b50\u53e5\u4e2d\u7528\u4f5c\u5143\u7ec4\u6e90\u3002", "title": "\u6dfb\u52a0\u51fd\u6570 JSON_TABLE()\uff0c\u7528\u4e8e\u5c06 JSON \u6570\u636e\u8f6c\u6362\u4e3a\u8868\u8868\u793a\u5f62\u5f0f", "commits": ["bb766cde6", "de3600452"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "5298e1149453b597f22af3d1a2139f1682be6ebb692bd53bb15f0ea26b9191b9", "section_path": ["\u51fd\u6570"], "commit_groups": [["bb766cde6"], ["de3600452"]], "identity_text": "Add function JSON_TABLE() to convert JSON data to a table representation (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Jian He) This function can be used in the FROM clause of SELECT queries as a tuple source.", "commit_aliases": ["bb766cde6", "de3600452"], "source_commits": ["bb766cde6", "de3600452"], "source_entry_id": "17.0/changes/082", "db_id": "f81a9564db2ca7fd0b33004b18e5f87b", "patch_ids": ["827c683d8288891738cf31a5945db549", "a88ddc4b39ea92b620999c2ad59eb410"], "statement_hash": "c9ae5e14a1f857cc5ffad59dc3b48e6c0fa04a887bae8a96f1c48d9a6724b755", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-50934f8be2eb3c55", "migration": false}, {"id": "17.0-a2bfdd62593cd133", "cves": [], "html": "<p>\u6dfb\u52a0 <acronym>SQL/JSON</acronym> \u6784\u9020\u51fd\u6570 <a href=\"/docs/17/functions-json.html#FUNCTIONS-JSON-CREATION-TABLE\" title=\"\u8868\u00a09.47.\u00a0JSON \u521b\u5efa\u51fd\u6570\"><code>JSON()</code></a>\u3001<code>JSON_SCALAR()</code> \u548c <code>JSON_SERIALIZE()</code>\uff08Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote\uff09<a href=\"https://postgr.es/c/03734a7fe\">\u00a7</a></p>", "text": "\u6dfb\u52a0 SQL/JSON \u6784\u9020\u51fd\u6570 JSON()\u3001JSON_SCALAR() \u548c JSON_SERIALIZE()\uff08Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote\uff09\u00a7", "title": "\u6dfb\u52a0 SQL/JSON \u6784\u9020\u51fd\u6570 JSON()\u3001JSON_SCALAR() \u548c JSON_SERIALIZE()", "commits": ["03734a7fe"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "f26755de813f4c7388a75ef86c3be47ee7d376876625d89373573ded1c7ff9b4", "section_path": ["\u51fd\u6570"], "commit_groups": [["03734a7fe"]], "identity_text": "Add SQL/JSON constructor functions JSON(), JSON_SCALAR(), and JSON_SERIALIZE() (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote)", "commit_aliases": ["03734a7fe"], "source_commits": ["03734a7fe"], "source_entry_id": "17.0/changes/083", "db_id": "cd6bbeaf341c7a0bc5aa8e262b47fceb", "patch_ids": ["9e77c2d2411f443655e00ae4c5699084"], "statement_hash": "aef51a5c4c10b92624cda2ada0393face18bdf494faeeb3acff0bd965617147f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-a2bfdd62593cd133", "migration": false}, {"id": "17.0-63c921731ac73ee3", "cves": [], "html": "<p>\u6dfb\u52a0 <acronym>SQL/JSON</acronym> \u67e5\u8be2\u51fd\u6570 <a href=\"/docs/17/functions-json.html#FUNCTIONS-SQLJSON-QUERYING\" title=\"\u8868\u00a09.52.\u00a0SQL/JSON \u67e5\u8be2\u51fd\u6570\"><code>JSON_EXISTS()</code></a>\u3001<code>JSON_QUERY()</code> \u548c <code>JSON_VALUE()</code>\uff08Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Peter Eisentraut, Jian He\uff09<a href=\"https://postgr.es/c/aaaf9449e\">\u00a7</a> <a href=\"https://postgr.es/c/1edb3b491\">\u00a7</a> <a href=\"https://postgr.es/c/6185c9737\">\u00a7</a> <a href=\"https://postgr.es/c/c0fc07518\">\u00a7</a> <a href=\"https://postgr.es/c/ef744ebb7\">\u00a7</a></p>", "text": "\u6dfb\u52a0 SQL/JSON \u67e5\u8be2\u51fd\u6570 JSON_EXISTS()\u3001JSON_QUERY() \u548c JSON_VALUE()\uff08Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Peter Eisentraut, Jian He\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u00a7", "title": "\u6dfb\u52a0 SQL/JSON \u67e5\u8be2\u51fd\u6570 JSON_EXISTS()\u3001JSON_QUERY() \u548c JSON_VALUE()", "commits": ["1edb3b491", "6185c9737", "aaaf9449e", "c0fc07518", "ef744ebb7"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "194e21e26f79c8b2e08789e69a959c7a5a069fff7917ca57b19069d1ae273b3b", "section_path": ["\u51fd\u6570"], "commit_groups": [["1edb3b491"], ["6185c9737"], ["aaaf9449e"], ["c0fc07518"], ["ef744ebb7"]], "identity_text": "Add SQL/JSON query functions JSON_EXISTS(), JSON_QUERY(), and JSON_VALUE() (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Peter Eisentraut, Jian He)", "commit_aliases": ["1edb3b491", "6185c9737", "aaaf9449e", "c0fc07518", "ef744ebb7"], "source_commits": ["1edb3b491", "6185c9737", "aaaf9449e", "c0fc07518", "ef744ebb7"], "source_entry_id": "17.0/changes/084", "db_id": "703cebe523925aa6ca4d8351ad6135ce", "patch_ids": ["742f62635fd9242ed92e4993e85e3573", "8beac13a47ca2ea95e530d5caddcda1f", "ced2d75f90b885737e9967460711c76a", "e26ce5b9ac68c76ff6a5e663948f4a05", "e4419c99647e51878f7770e80deb37be"], "statement_hash": "6c40c1de4c211c42bec095edfbc37479f4c11aac565dff6a9a69df03d3720734", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-63c921731ac73ee3", "migration": false}, {"id": "17.0-671eb1d0eabe7589", "cves": [], "html": "<p>\u6dfb\u52a0 <a href=\"/docs/17/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.16.2.3.\u00a0SQL/JSON \u8def\u5f84\u64cd\u4f5c\u7b26\u548c\u65b9\u6cd5\">jsonpath</a> \u65b9\u6cd5\uff0c\u7528\u4e8e\u5c06 <code>JSON</code> \u503c\u8f6c\u6362\u4e3a\u5176\u4ed6\u6570\u636e\u7c7b\u578b\uff08Jeevan Chalke\uff09<a href=\"https://postgr.es/c/66ea94e8e\">\u00a7</a></p>\n<p>\u8fd9\u4e9b jsonpath \u65b9\u6cd5\u5305\u62ec <code>.bigint()</code>\u3001<code>.boolean()</code>\u3001<code>.date()</code>\u3001<code>.decimal([precision [, scale]])</code>\u3001<code>.integer()</code>\u3001<code>.number()</code>\u3001<code>.string()</code>\u3001<code>.time()</code>\u3001<code>.time_tz()</code>\u3001<code>.timestamp()</code>\u3001\u4ee5\u53ca <code>.timestamp_tz()</code>\u3002</p>", "text": "\u6dfb\u52a0 jsonpath \u65b9\u6cd5\uff0c\u7528\u4e8e\u5c06 JSON \u503c\u8f6c\u6362\u4e3a\u5176\u4ed6\u6570\u636e\u7c7b\u578b\uff08Jeevan Chalke\uff09\u00a7 \u8fd9\u4e9b jsonpath \u65b9\u6cd5\u5305\u62ec .bigint()\u3001.boolean()\u3001.date()\u3001.decimal([precision [, scale]])\u3001.integer()\u3001.number()\u3001.string()\u3001.time()\u3001.time_tz()\u3001.timestamp()\u3001\u4ee5\u53ca .timestamp_tz()\u3002", "title": "\u6dfb\u52a0 jsonpath \u65b9\u6cd5\uff0c\u7528\u4e8e\u5c06 JSON \u503c\u8f6c\u6362\u4e3a\u5176\u4ed6\u6570\u636e\u7c7b\u578b", "commits": ["66ea94e8e"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "6299725100304538ac11191f4687474c5aa2badab23efb9be0d0541d1518d170", "section_path": ["\u51fd\u6570"], "commit_groups": [["66ea94e8e"]], "identity_text": "Add jsonpath methods to convert JSON values to other JSON data types (Jeevan Chalke) The jsonpath methods are .bigint(), .boolean(), .date(), .decimal([precision [, scale]]), .integer(), .number(), .string(), .time(), .time_tz(), .timestamp(), and .timestamp_tz().", "commit_aliases": ["66ea94e8e"], "source_commits": ["66ea94e8e"], "source_entry_id": "17.0/changes/085", "db_id": "cf230e53eba840d6dc4a5db3dc7855b6", "patch_ids": ["508b378763d6201a25a6d3f302d6aef0"], "statement_hash": "170c8a60fe7819d38cf5ec8af4189a18358a1ee9f890bedf1c3ebcaeb13203da", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-671eb1d0eabe7589", "migration": false}, {"id": "17.0-a989828fde2e2ef1", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/17/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE\" title=\"\u8868\u00a09.26.\u00a0\u683c\u5f0f\u5316\u51fd\u6570\"><code>to_timestamp()</code></a> \u6dfb\u52a0\u65f6\u533a\u683c\u5f0f\u8bf4\u660e\u7b26\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/8ba6fdf90\">\u00a7</a></p>\n<p><code>TZ</code> \u63a5\u53d7\u65f6\u533a\u7f29\u5199\u6216\u6570\u5b57\u504f\u79fb\uff0c\u800c <code>OF</code> \u53ea\u63a5\u53d7\u6570\u5b57\u504f\u79fb\u3002</p>", "text": "\u4e3a to_timestamp() \u6dfb\u52a0\u65f6\u533a\u683c\u5f0f\u8bf4\u660e\u7b26\uff08Tom Lane\uff09\u00a7 TZ \u63a5\u53d7\u65f6\u533a\u7f29\u5199\u6216\u6570\u5b57\u504f\u79fb\uff0c\u800c OF \u53ea\u63a5\u53d7\u6570\u5b57\u504f\u79fb\u3002", "title": "\u4e3a to_timestamp() \u6dfb\u52a0\u65f6\u533a\u683c\u5f0f\u8bf4\u660e\u7b26", "commits": ["8ba6fdf90"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "e743a5205bfa8c7f118647b56e6089f98a0a9e76edc400726ce600298e2cc55e", "section_path": ["\u51fd\u6570"], "commit_groups": [["8ba6fdf90"]], "identity_text": "Add to_timestamp() time zone format specifiers (Tom Lane) TZ accepts time zone abbreviations or numeric offsets, while OF accepts only numeric offsets.", "commit_aliases": ["8ba6fdf90"], "source_commits": ["8ba6fdf90"], "source_entry_id": "17.0/changes/086", "db_id": "6560f09c8fbe53b0bd652ce7c2b89173", "patch_ids": ["91055d3ffb63717414d185dd38bde979"], "statement_hash": "1b688041d44b8fad2d2ae8b2d513b6dbb609cc76f6c5238a13b4e3320799b229", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-a989828fde2e2ef1", "migration": false}, {"id": "17.0-d08795a05f3e6f6b", "cves": [], "html": "<p>\u5141\u8bb8\u901a\u8fc7 <code>AT LOCAL</code> \u6307\u5b9a\u4f1a\u8bdd<a href=\"/docs/17/runtime-config-client.html#GUC-TIMEZONE\">\u65f6\u533a</a>\uff08Vik Fearing\uff09<a href=\"https://postgr.es/c/97957fdba\">\u00a7</a></p>\n<p>\u8fd9\u5728\u4e3a\u65f6\u95f4\u6233\u503c\u6dfb\u52a0\u6216\u79fb\u9664\u65f6\u533a\uff0c\u800c\u4e0d\u662f\u663e\u5f0f\u6307\u5b9a\u4f1a\u8bdd\u65f6\u533a\u5b57\u9762\u91cf\u65f6\u5f88\u6709\u7528\u3002</p>", "text": "\u5141\u8bb8\u901a\u8fc7 AT LOCAL \u6307\u5b9a\u4f1a\u8bdd\u65f6\u533a\uff08Vik Fearing\uff09\u00a7 \u8fd9\u5728\u4e3a\u65f6\u95f4\u6233\u503c\u6dfb\u52a0\u6216\u79fb\u9664\u65f6\u533a\uff0c\u800c\u4e0d\u662f\u663e\u5f0f\u6307\u5b9a\u4f1a\u8bdd\u65f6\u533a\u5b57\u9762\u91cf\u65f6\u5f88\u6709\u7528\u3002", "title": "\u5141\u8bb8\u901a\u8fc7 AT LOCAL \u6307\u5b9a\u4f1a\u8bdd\u65f6\u533a", "commits": ["97957fdba"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "381a3df7224cf58bbb21d1adca418e4ef00dff29d87b5bdbb03ad0919c9c029e", "section_path": ["\u51fd\u6570"], "commit_groups": [["97957fdba"]], "identity_text": "Allow the session time zone to be specified by AT LOCAL (Vik Fearing) This is useful when converting adding and removing time zones from time stamps values, rather than specifying the literal session time zone.", "commit_aliases": ["97957fdba"], "source_commits": ["97957fdba"], "source_entry_id": "17.0/changes/087", "db_id": "dd05696b9334a5a4f66ae3607a1502db", "patch_ids": ["56e48bbda9ba4c5f8386bfd60b2f6b1e"], "statement_hash": "b3b1850bd0c882795cbf14fc12e51334556d3072863022b12a9fff41690e6465", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-d08795a05f3e6f6b", "migration": false}, {"id": "17.0-1252be3d097bc82d", "cves": [], "html": "<p>\u6dfb\u52a0\u51fd\u6570 <a href=\"/docs/17/functions-uuid.html\" title=\"9.14.\u00a0UUID \u51fd\u6570\"><code>uuid_extract_timestamp()</code></a> \u548c <code>uuid_extract_version()</code>\uff0c\u7528\u4e8e\u8fd4\u56de <acronym>UUID</acronym> \u4fe1\u606f\uff08Andrey Borodin\uff09<a href=\"https://postgr.es/c/794f10f6b\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u51fd\u6570 uuid_extract_timestamp() \u548c uuid_extract_version()\uff0c\u7528\u4e8e\u8fd4\u56de UUID \u4fe1\u606f\uff08Andrey Borodin\uff09\u00a7", "title": "\u6dfb\u52a0\u51fd\u6570 uuid_extract_timestamp() \u548c uuid_extract_version()\uff0c\u7528\u4e8e\u8fd4\u56de UUID \u4fe1\u606f", "commits": ["794f10f6b"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "18a9b883b77bc3d08cfdee373283b004d00fb66024d59b250ae45b665720c390", "section_path": ["\u51fd\u6570"], "commit_groups": [["794f10f6b"]], "identity_text": "Add functions uuid_extract_timestamp() and uuid_extract_version() to return UUID information (Andrey Borodin)", "commit_aliases": ["794f10f6b"], "source_commits": ["794f10f6b"], "source_entry_id": "17.0/changes/088", "db_id": "1ca69f05ab160e002d694711d3fcfe01", "patch_ids": ["800ea20d57723701a28e3a149aab3fbc"], "statement_hash": "fc3077e1c87f31ed7c24a5e77c2e9587acc9adce7f767fa6cabf6d0a37b843dd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-1252be3d097bc82d", "migration": false}, {"id": "17.0-4f3b9df121a021ed", "cves": [], "html": "<p>\u6dfb\u52a0\u7528\u4e8e\u5728\u6307\u5b9a\u8303\u56f4\u5185\u751f\u6210\u968f\u673a\u6570\u7684\u51fd\u6570\uff08Dean Rasheed\uff09<a href=\"https://postgr.es/c/e6341323a\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u51fd\u6570\u662f <a href=\"/docs/17/functions-math.html#FUNCTIONS-MATH-RANDOM-TABLE\" title=\"\u8868\u00a09.6.\u00a0\u968f\u673a\u51fd\u6570\"><code>random(min, max)</code></a>\uff0c\u5176\u53c2\u6570\u53ef\u4e3a <code>integer</code>\u3001<code>bigint</code> \u548c <code>numeric</code> \u7c7b\u578b\u7684\u503c\u3002</p>", "text": "\u6dfb\u52a0\u7528\u4e8e\u5728\u6307\u5b9a\u8303\u56f4\u5185\u751f\u6210\u968f\u673a\u6570\u7684\u51fd\u6570\uff08Dean Rasheed\uff09\u00a7 \u8fd9\u4e9b\u51fd\u6570\u662f random(min, max)\uff0c\u5176\u53c2\u6570\u53ef\u4e3a integer\u3001bigint \u548c numeric \u7c7b\u578b\u7684\u503c\u3002", "title": "\u6dfb\u52a0\u7528\u4e8e\u5728\u6307\u5b9a\u8303\u56f4\u5185\u751f\u6210\u968f\u673a\u6570\u7684\u51fd\u6570", "commits": ["e6341323a"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "8a7e21c27820b56f351bdf30c437288bcf7182efc4557b3a2c44d744c09ec7c8", "section_path": ["\u51fd\u6570"], "commit_groups": [["e6341323a"]], "identity_text": "Add functions to generate random numbers in a specified range (Dean Rasheed) The functions are random(min, max) and they take values of type integer, bigint, and numeric.", "commit_aliases": ["e6341323a"], "source_commits": ["e6341323a"], "source_entry_id": "17.0/changes/089", "db_id": "15f76b84a9cf872bac04242c665d6baf", "patch_ids": ["487fe43ea5826fdd1bd827f2dbfa3d8c"], "statement_hash": "2d790131c07f98882ff147f13c1ed85b4e631a47de66a6bb25cd12e9e13239d9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-4f3b9df121a021ed", "migration": false}, {"id": "17.0-70100a8ca562fb61", "cves": [], "html": "<p>\u6dfb\u52a0\u5c06\u6574\u6570\u8f6c\u6362\u4e3a\u4e8c\u8fdb\u5236\u548c\u516b\u8fdb\u5236\u5b57\u7b26\u4e32\u7684\u51fd\u6570\uff08Eric Radman, Nathan Bossart\uff09<a href=\"https://postgr.es/c/260a1f18d\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u51fd\u6570\u662f <a href=\"/docs/17/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"\u8868\u00a09.10.\u00a0\u5176\u4ed6\u5b57\u7b26\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>to_bin()</code></a> \u548c <code>to_oct()</code>\u3002</p>", "text": "\u6dfb\u52a0\u5c06\u6574\u6570\u8f6c\u6362\u4e3a\u4e8c\u8fdb\u5236\u548c\u516b\u8fdb\u5236\u5b57\u7b26\u4e32\u7684\u51fd\u6570\uff08Eric Radman, Nathan Bossart\uff09\u00a7 \u8fd9\u4e9b\u51fd\u6570\u662f to_bin() \u548c to_oct()\u3002", "title": "\u6dfb\u52a0\u5c06\u6574\u6570\u8f6c\u6362\u4e3a\u4e8c\u8fdb\u5236\u548c\u516b\u8fdb\u5236\u5b57\u7b26\u4e32\u7684\u51fd\u6570", "commits": ["260a1f18d"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "9b9d0f78bc2165c7d009f505c7b680d3abccc24486339914c69037cc042b40d2", "section_path": ["\u51fd\u6570"], "commit_groups": [["260a1f18d"]], "identity_text": "Add functions to convert integers to binary and octal strings (Eric Radman, Nathan Bossart) The functions are to_bin() and to_oct().", "commit_aliases": ["260a1f18d"], "source_commits": ["260a1f18d"], "source_entry_id": "17.0/changes/090", "db_id": "e7ea8e9b047e9df45b8e052b1fe861b8", "patch_ids": ["b85ba41fc9ae02aae058e57694a4e20e"], "statement_hash": "cb8199f4455dc9385eea98bbbd277b341b818b5fc4509f10e332ebd9c7b0f8f5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-70100a8ca562fb61", "migration": false}, {"id": "17.0-4c0677f8341cdc5f", "cves": [], "html": "<p>\u6dfb\u52a0 Unicode \u4fe1\u606f\u51fd\u6570\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/a02b37fc0\">\u00a7</a></p>\n<p>\u51fd\u6570 <a href=\"/docs/17/functions-info.html#FUNCTIONS-INFO-VERSION\" title=\"9.27.11.\u00a0\u7248\u672c\u4fe1\u606f\u51fd\u6570\"><code>unicode_version()</code></a> \u8fd4\u56de Unicode \u7248\u672c\uff0c<code>icu_unicode_version()</code> \u8fd4\u56de <acronym>ICU</acronym> \u7248\u672c\uff0c\u800c <code>unicode_assigned()</code> \u8fd4\u56de\u5b57\u7b26\u662f\u5426\u5df2\u5206\u914d Unicode \u4ee3\u7801\u70b9\u3002</p>", "text": "\u6dfb\u52a0 Unicode \u4fe1\u606f\u51fd\u6570\uff08Jeff Davis\uff09\u00a7 \u51fd\u6570 unicode_version() \u8fd4\u56de Unicode \u7248\u672c\uff0cicu_unicode_version() \u8fd4\u56de ICU \u7248\u672c\uff0c\u800c unicode_assigned() \u8fd4\u56de\u5b57\u7b26\u662f\u5426\u5df2\u5206\u914d Unicode \u4ee3\u7801\u70b9\u3002", "title": "\u6dfb\u52a0 Unicode \u4fe1\u606f\u51fd\u6570", "commits": ["a02b37fc0"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "cc44735a328c5003cc930a3cd22d093eb987f9f35465efa045b11f64f247c3b1", "section_path": ["\u51fd\u6570"], "commit_groups": [["a02b37fc0"]], "identity_text": "Add Unicode informational functions (Jeff Davis) Function unicode_version() returns the Unicode version, icu_unicode_version() returns the ICU version, and unicode_assigned() returns if the characters are assigned Unicode codepoints.", "commit_aliases": ["a02b37fc0"], "source_commits": ["a02b37fc0"], "source_entry_id": "17.0/changes/091", "db_id": "d461ed69798162833d67b79760bc6525", "patch_ids": ["79931fb543631c90cf16f622153dcdc3"], "statement_hash": "a1d1655351883763ed2a864b4deec2ce5e85fccaea293c517129d5e0c9702f96", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-4c0677f8341cdc5f", "migration": false}, {"id": "17.0-f1a812077d590a07", "cves": [], "html": "<p>\u6dfb\u52a0\u51fd\u6570 <a href=\"/docs/17/functions-xml.html#FUNCTIONS-PRODUCING-XML-XMLTEXT\" title=\"9.15.1.1.\u00a0xmltext\"><code>xmltext()</code></a>\uff0c\u7528\u4e8e\u5c06\u6587\u672c\u8f6c\u6362\u4e3a\u5355\u4e2a <code>XML</code> \u6587\u672c\u8282\u70b9\uff08Jim Jones\uff09<a href=\"https://postgr.es/c/526fe0d79\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u51fd\u6570 xmltext()\uff0c\u7528\u4e8e\u5c06\u6587\u672c\u8f6c\u6362\u4e3a\u5355\u4e2a XML \u6587\u672c\u8282\u70b9\uff08Jim Jones\uff09\u00a7", "title": "\u6dfb\u52a0\u51fd\u6570 xmltext()\uff0c\u7528\u4e8e\u5c06\u6587\u672c\u8f6c\u6362\u4e3a\u5355\u4e2a XML \u6587\u672c\u8282\u70b9", "commits": ["526fe0d79"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "a8547f5cf6e52679045cac92e08ad98b7c6ed7bd7e428b1d7933b00151b10475", "section_path": ["\u51fd\u6570"], "commit_groups": [["526fe0d79"]], "identity_text": "Add function xmltext() to convert text to a single XML text node (Jim Jones)", "commit_aliases": ["526fe0d79"], "source_commits": ["526fe0d79"], "source_entry_id": "17.0/changes/092", "db_id": "1877441fdff0113af5f67821ab127f39", "patch_ids": ["9c6951624d11cf3d980c925a55d8604b"], "statement_hash": "603c2a1c52b94398ad4435b66a1a0c7ea097cc75143f6817eadf051c5692a51d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-f1a812077d590a07", "migration": false}, {"id": "17.0-c1bb2831f5dc6038", "cves": [], "html": "<p>\u6dfb\u52a0\u51fd\u6570 <a href=\"/docs/17/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"\u8868\u00a09.74.\u00a0\u7cfb\u7edf\u76ee\u5f55\u4fe1\u606f\u51fd\u6570\"><code>to_regtypemod()</code></a>\uff0c\u7528\u4e8e\u8fd4\u56de\u7c7b\u578b\u8bf4\u660e\u7684\u7c7b\u578b\u4fee\u9970\u7b26\uff08David Wheeler, Erik Wienhold\uff09<a href=\"https://postgr.es/c/1218ca995\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u51fd\u6570 to_regtypemod()\uff0c\u7528\u4e8e\u8fd4\u56de\u7c7b\u578b\u8bf4\u660e\u7684\u7c7b\u578b\u4fee\u9970\u7b26\uff08David Wheeler, Erik Wienhold\uff09\u00a7", "title": "\u6dfb\u52a0\u51fd\u6570 to_regtypemod()\uff0c\u7528\u4e8e\u8fd4\u56de\u7c7b\u578b\u8bf4\u660e\u7684\u7c7b\u578b\u4fee\u9970\u7b26", "commits": ["1218ca995"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "31b0aef9ac9e882d085f454104b14628907596f21025d6090bf9be74e6fa58e4", "section_path": ["\u51fd\u6570"], "commit_groups": [["1218ca995"]], "identity_text": "Add function to_regtypemod() to return the type modifier of a type specification (David Wheeler, Erik Wienhold)", "commit_aliases": ["1218ca995"], "source_commits": ["1218ca995"], "source_entry_id": "17.0/changes/093", "db_id": "243583233ea3761d5c32bc0a323576bb", "patch_ids": ["eee42d82f43164744d81f88a590991e5"], "statement_hash": "88fe82e132fbfb440b0373e765d49d5eff84d502cbf9ed87c8f952702df07468", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-c1bb2831f5dc6038", "migration": false}, {"id": "17.0-559f5e1ec1cfec05", "cves": [], "html": "<p>\u6dfb\u52a0\u51fd\u6570 <a href=\"/docs/17/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"\u8868\u00a09.74.\u00a0\u7cfb\u7edf\u76ee\u5f55\u4fe1\u606f\u51fd\u6570\"><code>pg_basetype()</code></a>\uff0c\u7528\u4e8e\u8fd4\u56de\u57df\u7684\u57fa\u7840\u7c7b\u578b\uff08Steve Chavez\uff09<a href=\"https://postgr.es/c/b154d8a6d\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u51fd\u6570 pg_basetype()\uff0c\u7528\u4e8e\u8fd4\u56de\u57df\u7684\u57fa\u7840\u7c7b\u578b\uff08Steve Chavez\uff09\u00a7", "title": "\u6dfb\u52a0\u51fd\u6570 pg_basetype()\uff0c\u7528\u4e8e\u8fd4\u56de\u57df\u7684\u57fa\u7840\u7c7b\u578b", "commits": ["b154d8a6d"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "159230e4dc9d755ccc2796fcb674ef0c6b101fcaea5c451a972ef93023aa68fc", "section_path": ["\u51fd\u6570"], "commit_groups": [["b154d8a6d"]], "identity_text": "Add pg_basetype() function to return a domain's base type (Steve Chavez)", "commit_aliases": ["b154d8a6d"], "source_commits": ["b154d8a6d"], "source_entry_id": "17.0/changes/094", "db_id": "1ac6aae931b6885a5a1689d1feca85be", "patch_ids": ["041c481b6638d7c950ec3b00379b1cda"], "statement_hash": "e0870c59d10b8c2c382a4f599f5b3e18b71c988021e88534d3592f4e89f1db87", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-559f5e1ec1cfec05", "migration": false}, {"id": "17.0-db4f7869884326c5", "cves": [], "html": "<p>\u6dfb\u52a0\u51fd\u6570 <a href=\"/docs/17/functions-admin.html#FUNCTIONS-ADMIN-DBSIZE\" title=\"\u8868\u00a09.100.\u00a0\u6570\u636e\u5e93\u5bf9\u8c61\u5c3a\u5bf8\u51fd\u6570\"><code>pg_column_toast_chunk_id()</code></a>\uff0c\u7528\u4e8e\u8fd4\u56de\u67d0\u4e2a\u503c\u7684 <a href=\"/docs/17/storage-toast.html\" title=\"65.2.\u00a0TOAST\"><acronym>TOAST</acronym></a> \u6807\u8bc6\u7b26\uff08Yugo Nagata\uff09<a href=\"https://postgr.es/c/d1162cfda\">\u00a7</a></p>\n<p>\u5982\u679c\u8be5\u503c\u672a\u5b58\u50a8\u5728 <acronym>TOAST</acronym> \u4e2d\uff0c\u5219\u8fd4\u56de <code>NULL</code>\u3002</p>", "text": "\u6dfb\u52a0\u51fd\u6570 pg_column_toast_chunk_id()\uff0c\u7528\u4e8e\u8fd4\u56de\u67d0\u4e2a\u503c\u7684 TOAST \u6807\u8bc6\u7b26\uff08Yugo Nagata\uff09\u00a7 \u5982\u679c\u8be5\u503c\u672a\u5b58\u50a8\u5728 TOAST \u4e2d\uff0c\u5219\u8fd4\u56de NULL\u3002", "title": "\u6dfb\u52a0\u51fd\u6570 pg_column_toast_chunk_id()\uff0c\u7528\u4e8e\u8fd4\u56de\u67d0\u4e2a\u503c\u7684 TOAST \u6807\u8bc6\u7b26", "commits": ["d1162cfda"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-FUNCTIONS", "source_hash": "89b555b5746d659d0b70ee1ae06db67f62b70fa77a20a2a75ef5bcee32bdad4c", "section_path": ["\u51fd\u6570"], "commit_groups": [["d1162cfda"]], "identity_text": "Add function pg_column_toast_chunk_id() to return a value's TOAST identifier (Yugo Nagata) This returns NULL if the value is not stored in TOAST.", "commit_aliases": ["d1162cfda"], "source_commits": ["d1162cfda"], "source_entry_id": "17.0/changes/095", "db_id": "63d8497e4d9efcd3afe8781f8345c5a2", "patch_ids": ["a55e787266d1dd8899bfb8744ace2c9e"], "statement_hash": "aeb0aaf8e1c69a242a8a4eccd846a7c4ae99ec503f7418091059cd8d67a0228b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-db4f7869884326c5", "migration": false}, {"id": "17.0-82dca12de35b6b18", "cves": [], "html": "<p>\u5141\u8bb8 plpgsql \u7684 <a href=\"/docs/17/plpgsql-declarations.html#PLPGSQL-DECLARATION-TYPE\" title=\"41.3.3.\u00a0\u590d\u5236\u7c7b\u578b\"><code>%TYPE</code></a> \u548c <code>%ROWTYPE</code> \u8bf4\u660e\u8868\u793a\u975e\u6570\u7ec4\u7c7b\u578b\u7684\u6570\u7ec4\uff08Quan Zongliang, Pavel Stehule\uff09<a href=\"https://postgr.es/c/5e8674dc8\">\u00a7</a></p>", "text": "\u5141\u8bb8 plpgsql \u7684 %TYPE \u548c %ROWTYPE \u8bf4\u660e\u8868\u793a\u975e\u6570\u7ec4\u7c7b\u578b\u7684\u6570\u7ec4\uff08Quan Zongliang, Pavel Stehule\uff09\u00a7", "title": "\u5141\u8bb8 plpgsql \u7684 %TYPE \u548c %ROWTYPE \u8bf4\u660e\u8868\u793a\u975e\u6570\u7ec4\u7c7b\u578b\u7684\u6570\u7ec4", "commits": ["5e8674dc8"], "section": "PL/pgSQL", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PLPGSQL", "source_hash": "d2d82be0430588de611f07e64029399a56514fd2ccf8e80fb469c30f20202b2c", "section_path": ["PL/pgSQL"], "commit_groups": [["5e8674dc8"]], "identity_text": "Allow plpgsql %TYPE and %ROWTYPE specifications to represent arrays of non-array types (Quan Zongliang, Pavel Stehule)", "commit_aliases": ["5e8674dc8"], "source_commits": ["5e8674dc8"], "source_entry_id": "17.0/changes/096", "db_id": "27417eec43c1f8b072777de9836477dd", "patch_ids": ["991a7837ed74853ade1ccbe83142e661"], "statement_hash": "d7f7c1a225fbb8c7456af5a794b6bf2e168476b0fa702e72a124cc016c4f5f5b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-82dca12de35b6b18", "migration": false}, {"id": "17.0-a8e1488e653aa8bd", "cves": [], "html": "<p>\u5141\u8bb8 plpgsql \u7684 <code>%TYPE</code> \u8bf4\u660e\u5f15\u7528\u590d\u5408\u5217\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/43b46aae1\">\u00a7</a></p>", "text": "\u5141\u8bb8 plpgsql \u7684 %TYPE \u8bf4\u660e\u5f15\u7528\u590d\u5408\u5217\uff08Tom Lane\uff09\u00a7", "title": "\u5141\u8bb8 plpgsql \u7684 %TYPE \u8bf4\u660e\u5f15\u7528\u590d\u5408\u5217", "commits": ["43b46aae1"], "section": "PL/pgSQL", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PLPGSQL", "source_hash": "8fb53a2c86d97e1743dbbae9deedea2ff680d532e4f352320f737685f43c6d78", "section_path": ["PL/pgSQL"], "commit_groups": [["43b46aae1"]], "identity_text": "Allow plpgsql %TYPE specification to reference composite column (Tom Lane)", "commit_aliases": ["43b46aae1"], "source_commits": ["43b46aae1"], "source_entry_id": "17.0/changes/097", "db_id": "9219928ca5c3c63ead4103ee4da5e78e", "patch_ids": ["3cf692449e6e9aff99468579d31d1c7b"], "statement_hash": "23c35f3cfba2e9ae18301738baf9d3427a025672ca765e43b2d92f71ad17bb47", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-a8e1488e653aa8bd", "migration": false}, {"id": "17.0-8f1363ef60c2ee48", "cves": [], "html": "<p>\u6dfb\u52a0\u7528\u4e8e\u66f4\u6539\u89d2\u8272\u5bc6\u7801\u7684 libpq \u51fd\u6570\uff08Joe Conway\uff09<a href=\"https://postgr.es/c/a7be2a6c2\">\u00a7</a></p>\n<p>\u65b0\u51fd\u6570 <a href=\"/docs/17/libpq-misc.html#LIBPQ-PQCHANGEPASSWORD\"><code>PQchangePassword()</code></a> \u4f1a\u5728\u5c06\u65b0\u5bc6\u7801\u53d1\u9001\u5230\u670d\u52a1\u5668\u4e4b\u524d\u5148\u5bf9\u5176\u8fdb\u884c hash \u8fd0\u7b97\u3002</p>", "text": "\u6dfb\u52a0\u7528\u4e8e\u66f4\u6539\u89d2\u8272\u5bc6\u7801\u7684 libpq \u51fd\u6570\uff08Joe Conway\uff09\u00a7 \u65b0\u51fd\u6570 PQchangePassword() \u4f1a\u5728\u5c06\u65b0\u5bc6\u7801\u53d1\u9001\u5230\u670d\u52a1\u5668\u4e4b\u524d\u5148\u5bf9\u5176\u8fdb\u884c hash \u8fd0\u7b97\u3002", "title": "\u6dfb\u52a0\u7528\u4e8e\u66f4\u6539\u89d2\u8272\u5bc6\u7801\u7684 libpq \u51fd\u6570", "commits": ["a7be2a6c2"], "section": "libpq", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LIBPQ", "source_hash": "9fc576c104bc59f8fbf48e1e63483098eb99a4c5d90785bc6b0d201c892484cf", "section_path": ["libpq"], "commit_groups": [["a7be2a6c2"]], "identity_text": "Add libpq function to change role passwords (Joe Conway) The new function, PQchangePassword(), hashes the new password before sending it to the server.", "commit_aliases": ["a7be2a6c2"], "source_commits": ["a7be2a6c2"], "source_entry_id": "17.0/changes/098", "db_id": "15829665cb6976b143b7486cff36a909", "patch_ids": ["7464bef8a4865a6f9545e62e22109345"], "statement_hash": "5133f17d17db2d9bdf071e8102e6f07998fd2a0144edc54550b05dcdb95a96d2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-8f1363ef60c2ee48", "migration": false}, {"id": "17.0-c80a0f021b695098", "cves": [], "html": "<p>\u6dfb\u52a0\u7528\u4e8e\u5173\u95ed portal \u548c\u9884\u5907\u8bed\u53e5\u7684 libpq \u51fd\u6570\uff08Jelte Fennema-Nio\uff09<a href=\"https://postgr.es/c/28b572656\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u51fd\u6570\u662f <a href=\"/docs/17/libpq-exec.html#LIBPQ-PQCLOSEPREPARED\"><code>PQclosePrepared()</code></a>\u3001<a href=\"/docs/17/libpq-exec.html#LIBPQ-PQCLOSEPORTAL\"><code>PQclosePortal()</code></a>\u3001<a href=\"/docs/17/libpq-async.html#LIBPQ-PQSENDCLOSEPREPARED\"><code>PQsendClosePrepared()</code></a> \u4ee5\u53ca <a href=\"/docs/17/libpq-async.html#LIBPQ-PQSENDCLOSEPORTAL\"><code>PQsendClosePortal()</code></a>\u3002</p>", "text": "\u6dfb\u52a0\u7528\u4e8e\u5173\u95ed portal \u548c\u9884\u5907\u8bed\u53e5\u7684 libpq \u51fd\u6570\uff08Jelte Fennema-Nio\uff09\u00a7 \u8fd9\u4e9b\u51fd\u6570\u662f PQclosePrepared()\u3001PQclosePortal()\u3001PQsendClosePrepared() \u4ee5\u53ca PQsendClosePortal()\u3002", "title": "\u6dfb\u52a0\u7528\u4e8e\u5173\u95ed portal \u548c\u9884\u5907\u8bed\u53e5\u7684 libpq \u51fd\u6570", "commits": ["28b572656"], "section": "libpq", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LIBPQ", "source_hash": "ab56a143b585bdba8c62b390dc65d84b22d44fb878c5b2daa1d68049be1ee8b6", "section_path": ["libpq"], "commit_groups": [["28b572656"]], "identity_text": "Add libpq functions to close portals and prepared statements (Jelte Fennema-Nio) The functions are PQclosePrepared(), PQclosePortal(), PQsendClosePrepared(), and PQsendClosePortal().", "commit_aliases": ["28b572656"], "source_commits": ["28b572656"], "source_entry_id": "17.0/changes/099", "db_id": "bc87b74f9a0f17afe1a8ebc55c34a059", "patch_ids": ["0889393c3a80d3b2375dc7514ff6ce53"], "statement_hash": "5b993bad378b1ae709505bb74f286b257857b424ad8c211f48e92006b5919bc8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-c80a0f021b695098", "migration": false}, {"id": "17.0-d7d9937299d79c81", "cves": [], "html": "<p>\u6dfb\u52a0 libpq <acronym>API</acronym>\uff0c\u5141\u8bb8\u53d1\u8d77\u963b\u585e\u548c\u975e\u963b\u585e\u7684<a href=\"/docs/17/libpq-cancel.html\" title=\"32.7.\u00a0\u53d6\u6d88\u8fdb\u884c\u4e2d\u7684\u67e5\u8be2\">\u53d6\u6d88\u8bf7\u6c42</a>\uff0c\u5e76\u5728\u5df2\u542f\u7528\u52a0\u5bc6\u65f6\u4f7f\u7528\u52a0\u5bc6\uff08Jelte Fennema-Nio\uff09<a href=\"https://postgr.es/c/61461a300\">\u00a7</a></p>\n<p>\u5148\u524d\u53ea\u652f\u6301\u963b\u585e\u4e14\u672a\u52a0\u5bc6\u7684\u53d6\u6d88\u8bf7\u6c42\u3002</p>", "text": "\u6dfb\u52a0 libpq API\uff0c\u5141\u8bb8\u53d1\u8d77\u963b\u585e\u548c\u975e\u963b\u585e\u7684\u53d6\u6d88\u8bf7\u6c42\uff0c\u5e76\u5728\u5df2\u542f\u7528\u52a0\u5bc6\u65f6\u4f7f\u7528\u52a0\u5bc6\uff08Jelte Fennema-Nio\uff09\u00a7 \u5148\u524d\u53ea\u652f\u6301\u963b\u585e\u4e14\u672a\u52a0\u5bc6\u7684\u53d6\u6d88\u8bf7\u6c42\u3002", "title": "\u6dfb\u52a0 libpq API\uff0c\u5141\u8bb8\u53d1\u8d77\u963b\u585e\u548c\u975e\u963b\u585e\u7684\u53d6\u6d88\u8bf7\u6c42\uff0c\u5e76\u5728\u5df2\u542f\u7528\u52a0\u5bc6\u65f6\u4f7f\u7528\u52a0\u5bc6", "commits": ["61461a300"], "section": "libpq", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LIBPQ", "source_hash": "d54e119a239b7eb1cae8c3130cd0674ae27b7ef92186f73d91ffc7bf6852ad29", "section_path": ["libpq"], "commit_groups": [["61461a300"]], "identity_text": "Add libpq API which allows for blocking and non-blocking cancel requests, with encryption if already in use (Jelte Fennema-Nio) Previously only blocking, unencrypted cancel requests were supported.", "commit_aliases": ["61461a300"], "source_commits": ["61461a300"], "source_entry_id": "17.0/changes/100", "db_id": "c41ab395c090156bd1e99f1f0bcb60ee", "patch_ids": ["895b811a613eec2d6f1b1e045c75002d"], "statement_hash": "dc23fb5befb8e28cecd4ba96534d7c822571aae4d3edc69402ad77c648851df8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-d7d9937299d79c81", "migration": false}, {"id": "17.0-70a8f09f04e91acb", "cves": [], "html": "<p>\u6dfb\u52a0 libpq \u51fd\u6570 <a href=\"/docs/17/libpq-connect.html#LIBPQ-PQSOCKETPOLL\"><code>PQsocketPoll()</code></a>\uff0c\u4ee5\u5141\u8bb8\u5bf9\u7f51\u7edc\u5957\u63a5\u5b57\u8fdb\u884c\u8f6e\u8be2\uff08Tristan Partin, Tom Lane\uff09<a href=\"https://postgr.es/c/f5e4dedfa\">\u00a7</a> <a href=\"https://postgr.es/c/105024a47\">\u00a7</a></p>", "text": "\u6dfb\u52a0 libpq \u51fd\u6570 PQsocketPoll()\uff0c\u4ee5\u5141\u8bb8\u5bf9\u7f51\u7edc\u5957\u63a5\u5b57\u8fdb\u884c\u8f6e\u8be2\uff08Tristan Partin, Tom Lane\uff09\u00a7 \u00a7", "title": "\u6dfb\u52a0 libpq \u51fd\u6570 PQsocketPoll()\uff0c\u4ee5\u5141\u8bb8\u5bf9\u7f51\u7edc\u5957\u63a5\u5b57\u8fdb\u884c\u8f6e\u8be2", "commits": ["105024a47", "f5e4dedfa"], "section": "libpq", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LIBPQ", "source_hash": "48303b5fe0787d7cd3241263413ef7e33b22fedf5103c236ffab2bcab83e5853", "section_path": ["libpq"], "commit_groups": [["105024a47"], ["f5e4dedfa"]], "identity_text": "Add libpq function PQsocketPoll() to allow polling of network sockets (Tristan Partin, Tom Lane)", "commit_aliases": ["105024a47", "f5e4dedfa"], "source_commits": ["105024a47", "f5e4dedfa"], "source_entry_id": "17.0/changes/101", "db_id": "cbaf3bd64377062f45eb643434a082da", "patch_ids": ["1d6b53edfe0dfa07054804b7886c5f0f", "5dc602181eb1c14c50c7859db0730c15"], "statement_hash": "c22c6425617054d93f26eb1659d3959ffeff78ab6808c2b85d4884450d064a1d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-70a8f09f04e91acb", "migration": false}, {"id": "17.0-6c38a752a789111c", "cves": [], "html": "<p>\u6dfb\u52a0 libpq \u51fd\u6570 <a href=\"/docs/17/libpq-pipeline-mode.html#LIBPQ-PQSENDPIPELINESYNC\"><code>PQsendPipelineSync()</code></a>\uff0c\u7528\u4e8e\u53d1\u9001\u7ba1\u9053\u540c\u6b65\u70b9\uff08Anton Kirilov\uff09<a href=\"https://postgr.es/c/4794c2d31\">\u00a7</a></p>\n<p>\u8fd9\u4e0e <a href=\"/docs/17/libpq-pipeline-mode.html#LIBPQ-PQPIPELINESYNC\"><code>PQpipelineSync()</code></a> \u7c7b\u4f3c\uff0c\u4f46\u9664\u975e\u8fbe\u5230\u8f93\u51fa\u7f13\u51b2\u533a\u7684\u5927\u5c0f\u9608\u503c\uff0c\u5426\u5219\u4e0d\u4f1a\u5c06\u6570\u636e\u5237\u65b0\u5230\u670d\u52a1\u5668\u3002</p>", "text": "\u6dfb\u52a0 libpq \u51fd\u6570 PQsendPipelineSync()\uff0c\u7528\u4e8e\u53d1\u9001\u7ba1\u9053\u540c\u6b65\u70b9\uff08Anton Kirilov\uff09\u00a7 \u8fd9\u4e0e PQpipelineSync() \u7c7b\u4f3c\uff0c\u4f46\u9664\u975e\u8fbe\u5230\u8f93\u51fa\u7f13\u51b2\u533a\u7684\u5927\u5c0f\u9608\u503c\uff0c\u5426\u5219\u4e0d\u4f1a\u5c06\u6570\u636e\u5237\u65b0\u5230\u670d\u52a1\u5668\u3002", "title": "\u6dfb\u52a0 libpq \u51fd\u6570 PQsendPipelineSync()\uff0c\u7528\u4e8e\u53d1\u9001\u7ba1\u9053\u540c\u6b65\u70b9", "commits": ["4794c2d31"], "section": "libpq", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LIBPQ", "source_hash": "8189d6207100374bd35e8290afa5e52e847ee3e93677bccbfa70981e5e50a7af", "section_path": ["libpq"], "commit_groups": [["4794c2d31"]], "identity_text": "Add libpq function PQsendPipelineSync() to send a pipeline synchronization point (Anton Kirilov) This is similar to PQpipelineSync() but it does not flush to the server unless the size threshold of the output buffer is reached.", "commit_aliases": ["4794c2d31"], "source_commits": ["4794c2d31"], "source_entry_id": "17.0/changes/102", "db_id": "fec589edef84133148b8e4f4604a3e3b", "patch_ids": ["3d5d00ece3bd96007583518d3b3e0e60"], "statement_hash": "f24a3ad0b4080f9dcdaae066bff38f70a2920434f9e3854a6b1890794b058986", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-6c38a752a789111c", "migration": false}, {"id": "17.0-3b4a443271748749", "cves": [], "html": "<p>\u6dfb\u52a0 libpq \u51fd\u6570 <a href=\"/docs/17/libpq-single-row-mode.html#LIBPQ-PQSETCHUNKEDROWSMODE\"><code>PQsetChunkedRowsMode()</code></a>\uff0c\u4ee5\u5141\u8bb8\u5206\u5757\u83b7\u53d6\u7ed3\u679c\uff08Daniel V\u00e9rit\u00e9\uff09<a href=\"https://postgr.es/c/4643a2b26\">\u00a7</a></p>", "text": "\u6dfb\u52a0 libpq \u51fd\u6570 PQsetChunkedRowsMode()\uff0c\u4ee5\u5141\u8bb8\u5206\u5757\u83b7\u53d6\u7ed3\u679c\uff08Daniel V\u00e9rit\u00e9\uff09\u00a7", "title": "\u6dfb\u52a0 libpq \u51fd\u6570 PQsetChunkedRowsMode()\uff0c\u4ee5\u5141\u8bb8\u5206\u5757\u83b7\u53d6\u7ed3\u679c", "commits": ["4643a2b26"], "section": "libpq", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LIBPQ", "source_hash": "8aa8cff2a847cbac68b2ae2a469967a4cf97cc0874f466b050a47300adc8f9df", "section_path": ["libpq"], "commit_groups": [["4643a2b26"]], "identity_text": "Add libpq function PQsetChunkedRowsMode() to allow retrieval of results in chunks (Daniel V\u00e9rit\u00e9)", "commit_aliases": ["4643a2b26"], "source_commits": ["4643a2b26"], "source_entry_id": "17.0/changes/103", "db_id": "165ca2b770af42738a526033a6a7fa80", "patch_ids": ["ab07549493f029cf0fa1f28f879b6f5f"], "statement_hash": "3927bb31374c19f76299bfb5efb43c7cd17dbc30022d8220b2040405cd597014", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-3b4a443271748749", "migration": false}, {"id": "17.0-f7ebd67eecc76635", "cves": [], "html": "<p>\u5141\u8bb8 <acronym>TLS</acronym> \u8fde\u63a5\u65e0\u9700\u7f51\u7edc\u5f80\u8fd4\u534f\u5546\uff08Greg Stark, Heikki Linnakangas, Peter Eisentraut, Michael Paquier, Daniel Gustafsson\uff09<a href=\"https://postgr.es/c/d39a49c1e\">\u00a7</a> <a href=\"https://postgr.es/c/91044ae4b\">\u00a7</a> <a href=\"https://postgr.es/c/44e27f0a6\">\u00a7</a> <a href=\"https://postgr.es/c/d80f2ce29\">\u00a7</a> <a href=\"https://postgr.es/c/03a0e0d4b\">\u00a7</a> <a href=\"https://postgr.es/c/17a834a04\">\u00a7</a> <a href=\"https://postgr.es/c/407e0b023\">\u00a7</a> <a href=\"https://postgr.es/c/fb5718f35\">\u00a7</a></p>\n<p>\u8fd9\u901a\u8fc7\u5ba2\u6237\u7aef\u9009\u9879 <a href=\"/docs/17/libpq-connect.html#LIBPQ-CONNECT-SSLNEGOTIATION\"><code>sslnegotiation=direct</code></a>\uff0c\u542f\u7528\uff0c\u9700\u8981 <acronym>ALPN</acronym>\uff0c\u5e76\u4e14\u4ec5\u9002\u7528\u4e8e <span>PostgreSQL</span> 17 \u53ca\u66f4\u9ad8\u7248\u672c\u7684\u670d\u52a1\u5668\u3002</p>", "text": "\u5141\u8bb8 TLS \u8fde\u63a5\u65e0\u9700\u7f51\u7edc\u5f80\u8fd4\u534f\u5546\uff08Greg Stark, Heikki Linnakangas, Peter Eisentraut, Michael Paquier, Daniel Gustafsson\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u8fd9\u901a\u8fc7\u5ba2\u6237\u7aef\u9009\u9879 sslnegotiation=direct\uff0c\u542f\u7528\uff0c\u9700\u8981 ALPN\uff0c\u5e76\u4e14\u4ec5\u9002\u7528\u4e8e PostgreSQL 17 \u53ca\u66f4\u9ad8\u7248\u672c\u7684\u670d\u52a1\u5668\u3002", "title": "\u5141\u8bb8 TLS \u8fde\u63a5\u65e0\u9700\u7f51\u7edc\u5f80\u8fd4\u534f\u5546", "commits": ["03a0e0d4b", "17a834a04", "407e0b023", "44e27f0a6", "91044ae4b", "d39a49c1e", "d80f2ce29", "fb5718f35"], "section": "libpq", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-LIBPQ", "source_hash": "f68bb7d963740e1fac33c19d5831fce83b430b07aad2b1e8c08df801f63fe84f", "section_path": ["libpq"], "commit_groups": [["03a0e0d4b"], ["17a834a04"], ["407e0b023"], ["44e27f0a6"], ["91044ae4b"], ["d39a49c1e"], ["d80f2ce29"], ["fb5718f35"]], "identity_text": "Allow TLS connections without requiring a network round-trip negotiation (Greg Stark, Heikki Linnakangas, Peter Eisentraut, Michael Paquier, Daniel Gustafsson) This is enabled with the client-side option sslnegotiation=direct, requires ALPN, and only works on PostgreSQL 17 and later servers.", "commit_aliases": ["03a0e0d4b", "17a834a04", "407e0b023", "44e27f0a6", "91044ae4b", "d39a49c1e", "d80f2ce29", "fb5718f35"], "source_commits": ["03a0e0d4b", "17a834a04", "407e0b023", "44e27f0a6", "91044ae4b", "d39a49c1e", "d80f2ce29", "fb5718f35"], "source_entry_id": "17.0/changes/104", "db_id": "fb19ddd358bfbe1c1292f9b00df8a32f", "patch_ids": ["0859fade916556a425d8d800b9b339e3", "3977f3fad04ce8a2b910b61e555db125", "51564b11e695ac56a10791153869fe5e", "6251866539f346c6cb889d2fa2d25f55", "682c4e3071cd582a50bb0e71fda920b3", "88ec9faec3acf974fc1e2b60029bc059", "916ece1653632e038584ec18ff29655e", "aa89e4b3b0a69caec96cfd02910b6cfe"], "statement_hash": "749c6dad575a6af589dc46a8832a99dd52f11e5f0daf4d29c7c76d203ff294b0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-f7ebd67eecc76635", "migration": false}, {"id": "17.0-25d32605e982883f-1", "cves": [], "html": "<p>\u6539\u8fdb <span>psql</span> \u5bf9\u9ed8\u8ba4\u6743\u9650\u548c\u7a7a\u6743\u9650\u7684\u663e\u793a\uff08Erik Wienhold, Laurenz Albe\uff09<a href=\"https://postgr.es/c/d1379ebf4\">\u00a7</a></p>\n<p><code>\\dp</code> \u547d\u4ee4\u73b0\u5728\u5bf9\u7a7a\u6743\u9650\u663e\u793a <code>(none)</code>\uff1b\u9ed8\u8ba4\u6743\u9650\u4ecd\u663e\u793a\u4e3a\u7a7a\u3002</p>", "text": "\u6539\u8fdb psql \u5bf9\u9ed8\u8ba4\u6743\u9650\u548c\u7a7a\u6743\u9650\u7684\u663e\u793a\uff08Erik Wienhold, Laurenz Albe\uff09\u00a7 \\dp \u547d\u4ee4\u73b0\u5728\u5bf9\u7a7a\u6743\u9650\u663e\u793a (none)\uff1b\u9ed8\u8ba4\u6743\u9650\u4ecd\u663e\u793a\u4e3a\u7a7a\u3002", "title": "\u6539\u8fdb psql \u5bf9\u9ed8\u8ba4\u6743\u9650\u548c\u7a7a\u6743\u9650\u7684\u663e\u793a", "commits": ["d1379ebf4"], "section": "psql", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PSQL", "source_hash": "d4afbedc055942c8a9811944814c172c0d0ba38bfc5a8232093abd9e0db38e13", "section_path": ["psql"], "commit_groups": [["d1379ebf4"]], "identity_text": "Improve psql display of default and empty privileges (Erik Wienhold, Laurenz Albe) Command \\dp now displays (none) for empty privileges; default still displays as empty.", "commit_aliases": ["d1379ebf4"], "source_commits": ["d1379ebf4"], "source_entry_id": "17.0/changes/105", "db_id": "a3feb7cbb6e76e80ed09f7b28383c023", "patch_ids": ["842b2ae80cd9f3d47a7a7e791f8289a8"], "statement_hash": "55a4a8f4f1450e89b21e7fe47bcac030b79e7db736f92f904303eb06839cba7c", "relations": [{"rule": 2, "type": "related", "target": "d8a972240c18977c1d8140fe0ed0dce3", "evidence": {"same_day": true, "patch_ids": ["842b2ae80cd9f3d47a7a7e791f8289a8"], "ambiguous_patch_ids": ["842b2ae80cd9f3d47a7a7e791f8289a8"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-25d32605e982883f-1", "migration": false}, {"id": "17.0-25d32605e982883f-2", "cves": [], "html": "<p>\u4f7f\u53cd\u659c\u6760\u547d\u4ee4\u9075\u5faa <code>\\pset null</code>\uff08Erik Wienhold, Laurenz Albe\uff09<a href=\"https://postgr.es/c/d1379ebf4\">\u00a7</a></p>\n<p>\u5148\u524d <code>\\pset null</code> \u4f1a\u88ab\u5ffd\u7565\u3002</p>", "text": "\u4f7f\u53cd\u659c\u6760\u547d\u4ee4\u9075\u5faa \\pset null\uff08Erik Wienhold, Laurenz Albe\uff09\u00a7 \u5148\u524d \\pset null \u4f1a\u88ab\u5ffd\u7565\u3002", "title": "\u4f7f\u53cd\u659c\u6760\u547d\u4ee4\u9075\u5faa \\pset null", "commits": ["d1379ebf4"], "section": "psql", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PSQL", "source_hash": "5689d9179a0d774614c82a48d411ff08f745291a58b25bbdff92ea18d479bd74", "section_path": ["psql"], "commit_groups": [["d1379ebf4"]], "identity_text": "Have backslash commands honor \\pset null (Erik Wienhold, Laurenz Albe) Previously \\pset null was ignored.", "commit_aliases": ["d1379ebf4"], "source_commits": ["d1379ebf4"], "source_entry_id": "17.0/changes/106", "db_id": "d8a972240c18977c1d8140fe0ed0dce3", "patch_ids": ["842b2ae80cd9f3d47a7a7e791f8289a8"], "statement_hash": "f692c90220e75dc03007d5e5881cea74d5ea774be7f28b89b2d90f17facccfe9", "relations": [{"rule": 2, "type": "related", "target": "a3feb7cbb6e76e80ed09f7b28383c023", "evidence": {"same_day": true, "patch_ids": ["842b2ae80cd9f3d47a7a7e791f8289a8"], "ambiguous_patch_ids": ["842b2ae80cd9f3d47a7a7e791f8289a8"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-25d32605e982883f-2", "migration": false}, {"id": "17.0-3334181adffd92fa", "cves": [], "html": "<p>\u5141\u8bb8 <span>psql</span> \u7684 <code>\\watch</code> \u5728\u8fd4\u56de\u884c\u6570\u8fbe\u5230\u6700\u5c0f\u503c\u540e\u505c\u6b62\uff08Greg Sabino Mullane\uff09<a href=\"https://postgr.es/c/f347ec76e\">\u00a7</a></p>\n<p>\u8be5\u53c2\u6570\u662f <code>min_rows</code>\u3002</p>", "text": "\u5141\u8bb8 psql \u7684 \\watch \u5728\u8fd4\u56de\u884c\u6570\u8fbe\u5230\u6700\u5c0f\u503c\u540e\u505c\u6b62\uff08Greg Sabino Mullane\uff09\u00a7 \u8be5\u53c2\u6570\u662f min_rows\u3002", "title": "\u5141\u8bb8 psql \u7684 \\watch \u5728\u8fd4\u56de\u884c\u6570\u8fbe\u5230\u6700\u5c0f\u503c\u540e\u505c\u6b62", "commits": ["f347ec76e"], "section": "psql", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PSQL", "source_hash": "7107b65aadf1179e0ea1259bb1b753457a6a68c9b73cee13845f7e5b6618a0d6", "section_path": ["psql"], "commit_groups": [["f347ec76e"]], "identity_text": "Allow psql's \\watch to stop after a minimum number of rows returned (Greg Sabino Mullane) The parameter is min_rows.", "commit_aliases": ["f347ec76e"], "source_commits": ["f347ec76e"], "source_entry_id": "17.0/changes/107", "db_id": "45ff7c8c03d6e4103c9e41abb47b1842", "patch_ids": ["8fed80202eb4723f794e4f8125adef5c"], "statement_hash": "dfa38800684886dcdb5c7fe6179c692535d6511a0ae88ffa932b5c3c42306105", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-3334181adffd92fa", "migration": false}, {"id": "17.0-cfdb9648451933ed", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 control-C \u53d6\u6d88 <span>psql</span> \u7684\u8fde\u63a5\u5c1d\u8bd5\uff08Tristan Partin\uff09<a href=\"https://postgr.es/c/cafe10565\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4f7f\u7528 control-C \u53d6\u6d88 psql \u7684\u8fde\u63a5\u5c1d\u8bd5\uff08Tristan Partin\uff09\u00a7", "title": "\u5141\u8bb8\u4f7f\u7528 control-C \u53d6\u6d88 psql \u7684\u8fde\u63a5\u5c1d\u8bd5", "commits": ["cafe10565"], "section": "psql", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PSQL", "source_hash": "a229fbb00722a40bf043a201d2213121b68758f1fc7a9696ec6f512a332219de", "section_path": ["psql"], "commit_groups": [["cafe10565"]], "identity_text": "Allow psql connection attempts to be canceled with control-C (Tristan Partin)", "commit_aliases": ["cafe10565"], "source_commits": ["cafe10565"], "source_entry_id": "17.0/changes/108", "db_id": "49dd3ce0aded54b35e4242824e547154", "patch_ids": ["3ad09a5ea75ff8abcb322c7fb9ec1ea8"], "statement_hash": "32418ca3ad990c96973186460ab2da2a7d3a31af0f39d15632c0ec4506068398", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-cfdb9648451933ed", "migration": false}, {"id": "17.0-977aedb721071846", "cves": [], "html": "<p>\u5141\u8bb8 <span>psql</span> \u5728\u975e <code>SELECT</code> \u67e5\u8be2\u4e2d\u9075\u5faa <code>FETCH_COUNT</code>\uff08Daniel V\u00e9rit\u00e9\uff09<a href=\"https://postgr.es/c/90f517821\">\u00a7</a></p>", "text": "\u5141\u8bb8 psql \u5728\u975e SELECT \u67e5\u8be2\u4e2d\u9075\u5faa FETCH_COUNT\uff08Daniel V\u00e9rit\u00e9\uff09\u00a7", "title": "\u5141\u8bb8 psql \u5728\u975e SELECT \u67e5\u8be2\u4e2d\u9075\u5faa FETCH_COUNT", "commits": ["90f517821"], "section": "psql", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PSQL", "source_hash": "5b873d1cc1fefc393c34e069c2986b611c283c347cc6c996df3412f2cb25de75", "section_path": ["psql"], "commit_groups": [["90f517821"]], "identity_text": "Allow psql to honor FETCH_COUNT for non-SELECT queries (Daniel V\u00e9rit\u00e9)", "commit_aliases": ["90f517821"], "source_commits": ["90f517821"], "source_entry_id": "17.0/changes/109", "db_id": "39a7fad6f3d8673b8fb6a1a7dc7d81be", "patch_ids": ["f9a1e3c0862a9d53dd1a1ad0eab6ecc7"], "statement_hash": "83d091a0e7acbf30315e09e51164b1345c97a8a59b2b9ed1517b7ce088a9797d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-977aedb721071846", "migration": false}, {"id": "17.0-93a6ad1bd3c065d9", "cves": [], "html": "<p>\u6539\u8fdb <span>psql</span> \u7684 Tab \u8865\u5168\uff08Dagfinn Ilmari Manns\u00e5ker, Gilles Darold, Christoph Heiss, Steve Chavez, Vignesh C, Pavel Borisov, Jian He\uff09<a href=\"https://postgr.es/c/c951e9042\">\u00a7</a> <a href=\"https://postgr.es/c/d16eb83ab\">\u00a7</a> <a href=\"https://postgr.es/c/cd3424748\">\u00a7</a> <a href=\"https://postgr.es/c/816f10564\">\u00a7</a> <a href=\"https://postgr.es/c/927332b95\">\u00a7</a> <a href=\"https://postgr.es/c/f1bb9284f\">\u00a7</a> <a href=\"https://postgr.es/c/304b6b1a6\">\u00a7</a> <a href=\"https://postgr.es/c/2800fbb2b\">\u00a7</a></p>", "text": "\u6539\u8fdb psql \u7684 Tab \u8865\u5168\uff08Dagfinn Ilmari Manns\u00e5ker, Gilles Darold, Christoph Heiss, Steve Chavez, Vignesh C, Pavel Borisov, Jian He\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7", "title": "\u6539\u8fdb psql \u7684 Tab \u8865\u5168", "commits": ["2800fbb2b", "304b6b1a6", "816f10564", "927332b95", "c951e9042", "cd3424748", "d16eb83ab", "f1bb9284f"], "section": "psql", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PSQL", "source_hash": "5ec74edd9164024c9c6f26a998c983938ae467504edf3382816a070717dd2cb9", "section_path": ["psql"], "commit_groups": [["2800fbb2b"], ["304b6b1a6"], ["816f10564"], ["927332b95"], ["c951e9042"], ["cd3424748"], ["d16eb83ab"], ["f1bb9284f"]], "identity_text": "Improve psql tab completion (Dagfinn Ilmari Manns\u00e5ker, Gilles Darold, Christoph Heiss, Steve Chavez, Vignesh C, Pavel Borisov, Jian He)", "commit_aliases": ["2800fbb2b", "304b6b1a6", "816f10564", "927332b95", "c951e9042", "cd3424748", "d16eb83ab", "f1bb9284f"], "source_commits": ["2800fbb2b", "304b6b1a6", "816f10564", "927332b95", "c951e9042", "cd3424748", "d16eb83ab", "f1bb9284f"], "source_entry_id": "17.0/changes/110", "db_id": "8a83a68cf9c642d6f0d81dd5c4538939", "patch_ids": ["30b0e0d67c96e1af3a5dcb5764554836", "322a658f6fe8acba4737659a5aa67064", "47b0c548f88b8732b47e85c8d15f6508", "4c89f0d9a6a6f19c5e8f969fa03dc795", "89e3073da799734a59c68448468364a2", "8f0cd536103759c943a4a1f4310b1a31", "9913c02b11bf9cd854643f389b9fbb2f", "9fbd7907ba6c4447e8fcd062aed96976"], "statement_hash": "0e0c30574ccccd247ef0267b9022929d97ae219ca405903d917fa8b9c007e2fd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-93a6ad1bd3c065d9", "migration": false}, {"id": "17.0-3289f2c3702b97c1", "cves": [], "html": "<p>\u6dfb\u52a0\u5e94\u7528\u7a0b\u5e8f<a href=\"/docs/17/app-pgwalsummary.html\" title=\"pg_walsummary\"><span>pg_walsummary</span></a>\uff0c\u7528\u4e8e\u8f6c\u50a8 <acronym>WAL</acronym> \u6458\u8981\u6587\u4ef6\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/ee1bfd168\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u5e94\u7528\u7a0b\u5e8fpg_walsummary\uff0c\u7528\u4e8e\u8f6c\u50a8 WAL \u6458\u8981\u6587\u4ef6\uff08Robert Haas\uff09\u00a7", "title": "\u6dfb\u52a0\u5e94\u7528\u7a0b\u5e8fpg_walsummary\uff0c\u7528\u4e8e\u8f6c\u50a8 WAL \u6458\u8981\u6587\u4ef6", "commits": ["ee1bfd168"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "be92d8f8d514c31de3e7864da8bc02d1082f90ce243b5ac0122a1f15ca057984", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["ee1bfd168"]], "identity_text": "Add application pg_walsummary to dump WAL summary files (Robert Haas)", "commit_aliases": ["ee1bfd168"], "source_commits": ["ee1bfd168"], "source_entry_id": "17.0/changes/111", "db_id": "d3dc6ba36a8f40a3270798a39dc903da", "patch_ids": ["17673204e54def221f01494b2d75083a"], "statement_hash": "4e29b800a84b12f2c104da5f4dede1f0b3f3c8b23e25b94008bff0587ef561d2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-3289f2c3702b97c1", "migration": false}, {"id": "17.0-383c090b1fcc8262", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/17/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>\u7684\u5927\u578b\u5bf9\u8c61\u5206\u6279\u6062\u590d\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/a45c78e32\">\u00a7</a></p>\n<p>\u8fd9\u4f7f\u5927\u91cf\u5927\u578b\u5bf9\u8c61\u7684\u6062\u590d\u80fd\u591f\u907f\u5f00\u4e8b\u52a1\u9650\u5236\uff0c\u5e76\u652f\u6301\u5e76\u884c\u6062\u590d\u3002</p>", "text": "\u5141\u8bb8pg_dump\u7684\u5927\u578b\u5bf9\u8c61\u5206\u6279\u6062\u590d\uff08Tom Lane\uff09\u00a7 \u8fd9\u4f7f\u5927\u91cf\u5927\u578b\u5bf9\u8c61\u7684\u6062\u590d\u80fd\u591f\u907f\u5f00\u4e8b\u52a1\u9650\u5236\uff0c\u5e76\u652f\u6301\u5e76\u884c\u6062\u590d\u3002", "title": "\u5141\u8bb8pg_dump\u7684\u5927\u578b\u5bf9\u8c61\u5206\u6279\u6062\u590d", "commits": ["a45c78e32"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "e19c0d4e8698607c86d131f57ccec046853a089f8dbd7ba4f7ec1e2a0f642799", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["a45c78e32"]], "identity_text": "Allow pg_dump's large objects to be restorable in batches (Tom Lane) This allows the restoration of many large objects to avoid transaction limits and to be restored in parallel.", "commit_aliases": ["a45c78e32"], "source_commits": ["a45c78e32"], "source_entry_id": "17.0/changes/112", "db_id": "062c082924121dc8b43d7d09e1fa17d4", "patch_ids": ["01587d1147cb509a46ece174e411b501"], "statement_hash": "d574aaffe562e11a8f628d13c56040f9dbe7164043c409abcf6ab7703802d162", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-383c090b1fcc8262", "migration": false}, {"id": "17.0-58a8f8f586d29467", "cves": [], "html": "<p>\u6dfb\u52a0 <span>pg_dump</span> \u9009\u9879 <code>--exclude-extension</code>\uff08Ayush Vatsa\uff09<a href=\"https://postgr.es/c/522ed12f7\">\u00a7</a></p>", "text": "\u6dfb\u52a0 pg_dump \u9009\u9879 --exclude-extension\uff08Ayush Vatsa\uff09\u00a7", "title": "\u6dfb\u52a0 pg_dump \u9009\u9879 --exclude-extension", "commits": ["522ed12f7"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "09f31e6990e10c24ef444387656c434b2c3127d0f34794bc1853569e1a269e09", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["522ed12f7"]], "identity_text": "Add pg_dump option --exclude-extension (Ayush Vatsa)", "commit_aliases": ["522ed12f7"], "source_commits": ["522ed12f7"], "source_entry_id": "17.0/changes/113", "db_id": "c720c385368aecd31b17498de49a0e31", "patch_ids": ["955aad17a791ac5c652f14bb03633841"], "statement_hash": "4b3a5ac8af8590ad6d797832622ecb139520115a75a5d57e67d899f1f2fdd40a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-58a8f8f586d29467", "migration": false}, {"id": "17.0-1c019602b8c4664f", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/17/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>\u3001<a href=\"/docs/17/app-pg-dumpall.html\" title=\"pg_dumpall\"><span>pg_dumpall</span></a>\u548c<a href=\"/docs/17/app-pgrestore.html\" title=\"pg_restore\"><span>pg_restore</span></a>\u5728\u6587\u4ef6\u4e2d\u6307\u5b9a\u8981\u5305\u542b\u6216\u6392\u9664\u7684\u5bf9\u8c61\uff08Pavel Stehule, Daniel Gustafsson\uff09<a href=\"https://postgr.es/c/a5cf808be\">\u00a7</a></p>\n<p>\u8be5\u9009\u9879\u540d\u4e3a <code>--filter</code>\u3002</p>", "text": "\u5141\u8bb8pg_dump\u3001pg_dumpall\u548cpg_restore\u5728\u6587\u4ef6\u4e2d\u6307\u5b9a\u8981\u5305\u542b\u6216\u6392\u9664\u7684\u5bf9\u8c61\uff08Pavel Stehule, Daniel Gustafsson\uff09\u00a7 \u8be5\u9009\u9879\u540d\u4e3a --filter\u3002", "title": "\u5141\u8bb8pg_dump\u3001pg_dumpall\u548cpg_restore\u5728\u6587\u4ef6\u4e2d\u6307\u5b9a\u8981\u5305\u542b\u6216\u6392\u9664\u7684\u5bf9\u8c61", "commits": ["a5cf808be"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "01c1d7619eb94b800b69c839e53f60adf6ec57e8bdedb78c92cbac9d9d11c233", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["a5cf808be"]], "identity_text": "Allow pg_dump, pg_dumpall, and pg_restore to specify include/exclude objects in a file (Pavel Stehule, Daniel Gustafsson) The option is called --filter.", "commit_aliases": ["a5cf808be"], "source_commits": ["a5cf808be"], "source_entry_id": "17.0/changes/114", "db_id": "6e921a29d96eba39cb9a12aca845c19d", "patch_ids": ["0ed3de9da8db79e916dcff314dc14916"], "statement_hash": "e985ba10a8d813ffd4dcb78315ec3677ea1c684b78d9b1a616df0199244e0733", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-1c019602b8c4664f", "migration": false}, {"id": "17.0-3f028c249c82a4c8", "cves": [], "html": "<p>\u4e3a\u591a\u4e2a\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f\u6dfb\u52a0 <code>--sync-method</code> \u53c2\u6570\uff08Justin Pryzby, Nathan Bossart\uff09<a href=\"https://postgr.es/c/8c16ad3b4\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u5e94\u7528\u7a0b\u5e8f\u662f<a href=\"/docs/17/app-initdb.html\" title=\"initdb\"><span>initdb</span></a>\u3001<a href=\"/docs/17/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a>\u3001<a href=\"/docs/17/app-pgchecksums.html\" title=\"pg_checksums\"><span>pg_checksums</span></a>\u3001<a href=\"/docs/17/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>\u3001<a href=\"/docs/17/app-pgrewind.html\" title=\"pg_rewind\"><span>pg_rewind</span></a>\u548c<a href=\"/docs/17/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a>\u3002</p>", "text": "\u4e3a\u591a\u4e2a\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f\u6dfb\u52a0 --sync-method \u53c2\u6570\uff08Justin Pryzby, Nathan Bossart\uff09\u00a7 \u8fd9\u4e9b\u5e94\u7528\u7a0b\u5e8f\u662finitdb\u3001pg_basebackup\u3001pg_checksums\u3001pg_dump\u3001pg_rewind\u548cpg_upgrade\u3002", "title": "\u4e3a\u591a\u4e2a\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f\u6dfb\u52a0 --sync-method \u53c2\u6570", "commits": ["8c16ad3b4"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "1303e5e826a2bb3868d866cad3c1ae1ac22fa9613a4c4ea2e013b36b2ac1bdc8", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["8c16ad3b4"]], "identity_text": "Add the --sync-method parameter to several client applications (Justin Pryzby, Nathan Bossart) The applications are initdb, pg_basebackup, pg_checksums, pg_dump, pg_rewind, and pg_upgrade.", "commit_aliases": ["8c16ad3b4"], "source_commits": ["8c16ad3b4"], "source_entry_id": "17.0/changes/115", "db_id": "5be03430ce72863326f86554786d4856", "patch_ids": ["a77cb2d9cdf142e159627eaeacab0702"], "statement_hash": "e682acccfcf90a57d337b76922612b805d21091f20bf6c6623dff3be080bcb8a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-3f028c249c82a4c8", "migration": false}, {"id": "17.0-62b0b2dae08594f2", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/17/app-pgrestore.html\" title=\"pg_restore\"><span>pg_restore</span></a>\u6dfb\u52a0 <code>--transaction-size</code> \u9009\u9879\uff0c\u5141\u8bb8\u6309\u4e8b\u52a1\u6279\u6b21\u6062\u590d\u5bf9\u8c61\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/959b38d77\">\u00a7</a></p>\n<p>\u8fd9\u65e2\u80fd\u83b7\u5f97\u4e8b\u52a1\u6279\u5904\u7406\u7684\u6027\u80fd\u6536\u76ca\uff0c\u53c8\u80fd\u907f\u514d\u4e8b\u52a1\u5757\u8fc7\u5927\u7684\u95ee\u9898\u3002</p>", "text": "\u4e3apg_restore\u6dfb\u52a0 --transaction-size \u9009\u9879\uff0c\u5141\u8bb8\u6309\u4e8b\u52a1\u6279\u6b21\u6062\u590d\u5bf9\u8c61\uff08Tom Lane\uff09\u00a7 \u8fd9\u65e2\u80fd\u83b7\u5f97\u4e8b\u52a1\u6279\u5904\u7406\u7684\u6027\u80fd\u6536\u76ca\uff0c\u53c8\u80fd\u907f\u514d\u4e8b\u52a1\u5757\u8fc7\u5927\u7684\u95ee\u9898\u3002", "title": "\u4e3apg_restore\u6dfb\u52a0 --transaction-size \u9009\u9879\uff0c\u5141\u8bb8\u6309\u4e8b\u52a1\u6279\u6b21\u6062\u590d\u5bf9\u8c61", "commits": ["959b38d77"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "17267ef422c757038cdb1494e4f7f2868de188fab8e78a8f8b25421498561393", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["959b38d77"]], "identity_text": "Add pg_restore option --transaction-size to allow object restores in transaction batches (Tom Lane) This allows the performance benefits of transaction batches without the problems of excessively large transaction blocks.", "commit_aliases": ["959b38d77"], "source_commits": ["959b38d77"], "source_entry_id": "17.0/changes/116", "db_id": "d3fce2adcba58fc12b1abe09c1296c03", "patch_ids": ["5e34e60bd114dee6d27de4ef07db683e"], "statement_hash": "a3f29534cc391a88f5718d81056174323b7b0ffdf74ce97b2ca813e2124e10fe", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-62b0b2dae08594f2", "migration": false}, {"id": "17.0-4dabdcd85c321b44", "cves": [], "html": "<p>\u5c06<a href=\"/docs/17/pgbench.html\" title=\"pgbench\"><span>pgbench</span></a>\u7684\u8c03\u8bd5\u6a21\u5f0f\u9009\u9879\u4ece <code>-d</code> \u6539\u4e3a <code>--debug</code>\uff08Greg Sabino Mullane\uff09<a href=\"https://postgr.es/c/3ff01b2b6\">\u00a7</a></p>\n<p><code>-d</code> \u73b0\u5728\u7528\u4e8e\u6570\u636e\u5e93\u540d\uff0c\u540c\u65f6\u4e5f\u53ef\u4ee5\u4f7f\u7528\u65b0\u7684 <code>--dbname</code> \u9009\u9879\u3002</p>", "text": "\u5c06pgbench\u7684\u8c03\u8bd5\u6a21\u5f0f\u9009\u9879\u4ece -d \u6539\u4e3a --debug\uff08Greg Sabino Mullane\uff09\u00a7 -d \u73b0\u5728\u7528\u4e8e\u6570\u636e\u5e93\u540d\uff0c\u540c\u65f6\u4e5f\u53ef\u4ee5\u4f7f\u7528\u65b0\u7684 --dbname \u9009\u9879\u3002", "title": "\u5c06pgbench\u7684\u8c03\u8bd5\u6a21\u5f0f\u9009\u9879\u4ece -d \u6539\u4e3a --debug", "commits": ["3ff01b2b6"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "8f8c127f9354a296b7177dce7556a770360b2d079c7a04e96681ee7b782983c6", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["3ff01b2b6"]], "identity_text": "Change pgbench debug mode option from -d to --debug (Greg Sabino Mullane) Option -d is now used for the database name, and the new --dbname option can be used as well.", "commit_aliases": ["3ff01b2b6"], "source_commits": ["3ff01b2b6"], "source_entry_id": "17.0/changes/117", "db_id": "814b6163607242f0a5325bfdd8d812c7", "patch_ids": ["199b1468636df5e00d3df58106afc14f"], "statement_hash": "261df8ddab2c41253badc617f040f9c03111599a5c7a54bdb1efd5c9e963aa17", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-4dabdcd85c321b44", "migration": false}, {"id": "17.0-b0d9d8ecac0ad499", "cves": [], "html": "<p>\u6dfb\u52a0 pgbench \u9009\u9879 <code>--exit-on-abort</code>\uff0c\u4ee5\u4fbf\u5728\u4efb\u4e00\u5ba2\u6237\u7aef\u4e2d\u6b62\u540e\u9000\u51fa\uff08Yugo Nagata\uff09<a href=\"https://postgr.es/c/3c662643c\">\u00a7</a></p>", "text": "\u6dfb\u52a0 pgbench \u9009\u9879 --exit-on-abort\uff0c\u4ee5\u4fbf\u5728\u4efb\u4e00\u5ba2\u6237\u7aef\u4e2d\u6b62\u540e\u9000\u51fa\uff08Yugo Nagata\uff09\u00a7", "title": "\u6dfb\u52a0 pgbench \u9009\u9879 --exit-on-abort\uff0c\u4ee5\u4fbf\u5728\u4efb\u4e00\u5ba2\u6237\u7aef\u4e2d\u6b62\u540e\u9000\u51fa", "commits": ["3c662643c"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "40657065824bc654fec133d919f02654aa046a2f83ebe8bbda2f58f5cf5bcf31", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["3c662643c"]], "identity_text": "Add pgbench option --exit-on-abort to exit after any client aborts (Yugo Nagata)", "commit_aliases": ["3c662643c"], "source_commits": ["3c662643c"], "source_entry_id": "17.0/changes/118", "db_id": "a25ce17e6f8114f0d076f7a1742f9dfe", "patch_ids": ["fc15b08e3c71549c3ca32d04f9daa421"], "statement_hash": "3c07aae40b3a8ad1e44701b70006b4cbe2fb1e03274bcb81df11c4a5bcf24e33", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-b0d9d8ecac0ad499", "migration": false}, {"id": "17.0-3c9e49a6a6f47409", "cves": [], "html": "<p>\u6dfb\u52a0 pgbench \u547d\u4ee4 <code>\\syncpipeline</code>\uff0c\u7528\u4e8e\u53d1\u9001\u540c\u6b65\u6d88\u606f\uff08Anthonin Bonnefoy\uff09<a href=\"https://postgr.es/c/94edfe250\">\u00a7</a></p>", "text": "\u6dfb\u52a0 pgbench \u547d\u4ee4 \\syncpipeline\uff0c\u7528\u4e8e\u53d1\u9001\u540c\u6b65\u6d88\u606f\uff08Anthonin Bonnefoy\uff09\u00a7", "title": "\u6dfb\u52a0 pgbench \u547d\u4ee4 \\syncpipeline\uff0c\u7528\u4e8e\u53d1\u9001\u540c\u6b65\u6d88\u606f", "commits": ["94edfe250"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "03a82448689e24e5d029010ce0b7e47a3ec65ba2e3eb0045cda192d4463f6de8", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["94edfe250"]], "identity_text": "Add pgbench command \\syncpipeline to allow sending of sync messages (Anthonin Bonnefoy)", "commit_aliases": ["94edfe250"], "source_commits": ["94edfe250"], "source_entry_id": "17.0/changes/119", "db_id": "ee70b5491bf8a49ce7c18314a2ab3e7c", "patch_ids": ["5ca1e32d081de48ad74233cbb08afb22"], "statement_hash": "46a5465945c7e7b3ba2391bb4c7f284171defd7bbec08ff89ff0b01f417ea2c3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-3c9e49a6a6f47409", "migration": false}, {"id": "17.0-8fceea9da078d961", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/17/pgarchivecleanup.html\" title=\"pg_archivecleanup\"><span>pg_archivecleanup</span></a>\u5220\u9664\u5907\u4efd\u5386\u53f2\u6587\u4ef6\uff08Atsushi Torikoshi\uff09<a href=\"https://postgr.es/c/3f8c98d0b\">\u00a7</a></p>\n<p>\u8be5\u9009\u9879\u662f <code>--clean-backup-history</code>\u3002</p>", "text": "\u5141\u8bb8pg_archivecleanup\u5220\u9664\u5907\u4efd\u5386\u53f2\u6587\u4ef6\uff08Atsushi Torikoshi\uff09\u00a7 \u8be5\u9009\u9879\u662f --clean-backup-history\u3002", "title": "\u5141\u8bb8pg_archivecleanup\u5220\u9664\u5907\u4efd\u5386\u53f2\u6587\u4ef6", "commits": ["3f8c98d0b"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "fa178bd435d168b9d0925d1bc986681c590b0c0fea8917a798a931aab42d2621", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["3f8c98d0b"]], "identity_text": "Allow pg_archivecleanup to remove backup history files (Atsushi Torikoshi) The option is --clean-backup-history.", "commit_aliases": ["3f8c98d0b"], "source_commits": ["3f8c98d0b"], "source_entry_id": "17.0/changes/120", "db_id": "43de9c53a3b095b00a1c2d972cc4cd14", "patch_ids": ["880da8d0f1844f2cffcfb62d7caa2733"], "statement_hash": "18444fb728c062492ca13445b872237928821d56bd050da684f8558cbb5266fe", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-8fceea9da078d961", "migration": false}, {"id": "17.0-6f038d76fa8c5ad7", "cves": [], "html": "<p>\u4e3a <span>pg_archivecleanup</span> \u6dfb\u52a0\u4e00\u4e9b\u957f\u9009\u9879\uff08Atsushi Torikoshi\uff09<a href=\"https://postgr.es/c/dd7c60f19\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u957f\u9009\u9879\u662f <code>--debug</code>\u3001<code>--dry-run</code> \u548c <code>--strip-extension</code>\u3002</p>", "text": "\u4e3a pg_archivecleanup \u6dfb\u52a0\u4e00\u4e9b\u957f\u9009\u9879\uff08Atsushi Torikoshi\uff09\u00a7 \u8fd9\u4e9b\u957f\u9009\u9879\u662f --debug\u3001--dry-run \u548c --strip-extension\u3002", "title": "\u4e3a pg_archivecleanup \u6dfb\u52a0\u4e00\u4e9b\u957f\u9009\u9879", "commits": ["dd7c60f19"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "c64dda46baf6ccf879bf963b03618238b918615147472ab58bf96e8ddc400ea7", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["dd7c60f19"]], "identity_text": "Add some long options to pg_archivecleanup (Atsushi Torikoshi) The long options are --debug, --dry-run, and --strip-extension.", "commit_aliases": ["dd7c60f19"], "source_commits": ["dd7c60f19"], "source_entry_id": "17.0/changes/121", "db_id": "01de18fe9f80c42de97f1e13ebb9087a", "patch_ids": ["d92935efb7fbe57a9923613e2a39db2f"], "statement_hash": "04eec46d490d77a1fadbc0a2f019b90e37fb6bdf271b81857633c422c897562f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-6f038d76fa8c5ad7", "migration": false}, {"id": "17.0-1c7cefd452c4088a", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/17/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a>\u548c<a href=\"/docs/17/app-pgreceivewal.html\" title=\"pg_receivewal\"><span>pg_receivewal</span></a>\u5728\u5176\u8fde\u63a5\u5b57\u7b26\u4e32\u4e2d\u4f7f\u7528 dbname\uff08Jelte Fennema-Nio\uff09<a href=\"https://postgr.es/c/cca97ce6a\">\u00a7</a></p>\n<p>\u8fd9\u5bf9\u90a3\u4e9b\u5bf9\u6570\u636e\u5e93\u540d\u654f\u611f\u7684\u8fde\u63a5\u6c60\u5f88\u6709\u7528\u3002</p>", "text": "\u5141\u8bb8pg_basebackup\u548cpg_receivewal\u5728\u5176\u8fde\u63a5\u5b57\u7b26\u4e32\u4e2d\u4f7f\u7528 dbname\uff08Jelte Fennema-Nio\uff09\u00a7 \u8fd9\u5bf9\u90a3\u4e9b\u5bf9\u6570\u636e\u5e93\u540d\u654f\u611f\u7684\u8fde\u63a5\u6c60\u5f88\u6709\u7528\u3002", "title": "\u5141\u8bb8pg_basebackup\u548cpg_receivewal\u5728\u5176\u8fde\u63a5\u5b57\u7b26\u4e32\u4e2d\u4f7f\u7528 dbname", "commits": ["cca97ce6a"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "4e6811fae28628c05efb289637958ce018fc9a8114cff89b29d602d888f740b1", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["cca97ce6a"]], "identity_text": "Allow pg_basebackup and pg_receivewal to use dbname in their connection specification (Jelte Fennema-Nio) This is useful for connection poolers that are sensitive to the database name.", "commit_aliases": ["cca97ce6a"], "source_commits": ["cca97ce6a"], "source_entry_id": "17.0/changes/122", "db_id": "268281a16c5db7f57f2c0b6d9d6807d8", "patch_ids": ["b7c713bf4459c507781f24392f77d777"], "statement_hash": "0fb3f8d72c23fb88b1aa1b1207fff42015397df8eee0d64415e7c9d903b73234", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-1c7cefd452c4088a", "migration": false}, {"id": "17.0-4c719d2b3e168ee2", "cves": [], "html": "<p>\u6dfb\u52a0<a href=\"/docs/17/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a>\u9009\u9879 <code>--copy-file-range</code>\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/d93627bcb\">\u00a7</a></p>\n<p>\u8fd9\u5728 <span>Linux</span> \u548c <span>FreeBSD</span> \u4e0a\u53d7\u652f\u6301\u3002</p>", "text": "\u6dfb\u52a0pg_upgrade\u9009\u9879 --copy-file-range\uff08Thomas Munro\uff09\u00a7 \u8fd9\u5728 Linux \u548c FreeBSD \u4e0a\u53d7\u652f\u6301\u3002", "title": "\u6dfb\u52a0pg_upgrade\u9009\u9879 --copy-file-range", "commits": ["d93627bcb"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "962dcd4ff0150d4d31960c278d8555a1487cd81282a4d228efeaebd361448276", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["d93627bcb"]], "identity_text": "Add pg_upgrade option --copy-file-range (Thomas Munro) This is supported on Linux and FreeBSD.", "commit_aliases": ["d93627bcb"], "source_commits": ["d93627bcb"], "source_entry_id": "17.0/changes/123", "db_id": "d9eb158bf4232ae62487876af438c06d", "patch_ids": ["e3b451bd7f1062b048f221eb095d7fbe"], "statement_hash": "c36ff478955582e7fe6ea357a4490710a32eadf2bc24a85a1303eaf4756f4024", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-4c719d2b3e168ee2", "migration": false}, {"id": "17.0-3b1333e81de46fc0", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/17/app-reindexdb.html\" title=\"reindexdb\"><span>reindexdb</span></a>\u7684 <code>--index</code> \u5e76\u884c\u5904\u7406\u6765\u81ea\u4e0d\u540c\u8868\u7684\u7d22\u5f15\uff08Maxim Orlov, Svetlana Derevyanko, Alexander Korotkov\uff09<a href=\"https://postgr.es/c/47f99a407\">\u00a7</a></p>", "text": "\u5141\u8bb8reindexdb\u7684 --index \u5e76\u884c\u5904\u7406\u6765\u81ea\u4e0d\u540c\u8868\u7684\u7d22\u5f15\uff08Maxim Orlov, Svetlana Derevyanko, Alexander Korotkov\uff09\u00a7", "title": "\u5141\u8bb8reindexdb\u7684 --index \u5e76\u884c\u5904\u7406\u6765\u81ea\u4e0d\u540c\u8868\u7684\u7d22\u5f15", "commits": ["47f99a407"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "19efd2508ff8388f3d7d9c9845a189c6ccb76da3e48d6daab301e4d1285bce2f", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["47f99a407"]], "identity_text": "Allow reindexdb --index to process indexes from different tables in parallel (Maxim Orlov, Svetlana Derevyanko, Alexander Korotkov)", "commit_aliases": ["47f99a407"], "source_commits": ["47f99a407"], "source_entry_id": "17.0/changes/124", "db_id": "0776c9ea52ffd9c02157b2f0809ba028", "patch_ids": ["28bfcb20ba62300331e0a36f918cae7e"], "statement_hash": "c66494bd2e04274838c5afdcd3573e9a45de801c0aa76670112c73e8bb956653", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-3b1333e81de46fc0", "migration": false}, {"id": "17.0-9af7f64df979bee6", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/17/app-reindexdb.html\" title=\"reindexdb\">reindexdb</a>\u3001<a href=\"/docs/17/app-vacuumdb.html\" title=\"vacuumdb\">vacuumdb</a> \u548c <a href=\"/docs/17/app-clusterdb.html\" title=\"clusterdb\">clusterdb</a> \u5728\u6240\u6709\u5339\u914d\u6a21\u5f0f\u7684\u6570\u636e\u5e93\u4e2d\u5904\u7406\u5bf9\u8c61\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/24c928ad9\">\u00a7</a> <a href=\"https://postgr.es/c/648928c79\">\u00a7</a> <a href=\"https://postgr.es/c/1b49d56d3\">\u00a7</a></p>\n<p>\u65b0\u9009\u9879 <code>--all</code> \u63a7\u5236\u6b64\u884c\u4e3a\u3002</p>", "text": "\u5141\u8bb8 reindexdb\u3001vacuumdb \u548c clusterdb \u5728\u6240\u6709\u5339\u914d\u6a21\u5f0f\u7684\u6570\u636e\u5e93\u4e2d\u5904\u7406\u5bf9\u8c61\uff08Nathan Bossart\uff09\u00a7 \u00a7 \u00a7 \u65b0\u9009\u9879 --all \u63a7\u5236\u6b64\u884c\u4e3a\u3002", "title": "\u5141\u8bb8 reindexdb\u3001vacuumdb \u548c clusterdb \u5728\u6240\u6709\u5339\u914d\u6a21\u5f0f\u7684\u6570\u636e\u5e93\u4e2d\u5904\u7406\u5bf9\u8c61", "commits": ["1b49d56d3", "24c928ad9", "648928c79"], "section": "\u670d\u52a1\u5668\u5e94\u7528", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SERVER-APPS", "source_hash": "5ea98d742f69f17e58536b1bfc7681fad738dba7a69c98c496b46f83a7250514", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528"], "commit_groups": [["1b49d56d3"], ["24c928ad9"], ["648928c79"]], "identity_text": "Allow reindexdb, vacuumdb, and clusterdb to process objects in all databases matching a pattern (Nathan Bossart) The new option --all controls this behavior.", "commit_aliases": ["1b49d56d3", "24c928ad9", "648928c79"], "source_commits": ["1b49d56d3", "24c928ad9", "648928c79"], "source_entry_id": "17.0/changes/125", "db_id": "d7c4b4af13cad8fc21fb707416814193", "patch_ids": ["749a7b012112b5be8b3472d52b0e5295", "7f350c546f239bf502c3caa964d420d2", "c09c04601275da0c67baf88657973e40"], "statement_hash": "5748536b79b3c28a70f0e46452935a4506292db1f62a618b48318f8725ae3f13", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-9af7f64df979bee6", "migration": false}, {"id": "17.0-5f04cbc23b8851f9", "cves": [], "html": "<p>\u79fb\u9664\u5bf9 <span>OpenSSL</span> 1.0.1 \u7684\u652f\u6301\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/8e278b657\">\u00a7</a></p>", "text": "\u79fb\u9664\u5bf9 OpenSSL 1.0.1 \u7684\u652f\u6301\uff08Michael Paquier\uff09\u00a7", "title": "\u79fb\u9664\u5bf9 OpenSSL 1.0.1 \u7684\u652f\u6301", "commits": ["8e278b657"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "7e44f1fe34b165c7ebe8923f46994be66dd2b06293fa2dd9c4665be35958c0d9", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["8e278b657"]], "identity_text": "Remove support for OpenSSL 1.0.1 (Michael Paquier)", "commit_aliases": ["8e278b657"], "source_commits": ["8e278b657"], "source_entry_id": "17.0/changes/126", "db_id": "15880c76c3e7729f30f021b7f43fcc9a", "patch_ids": ["a5ad3055fd5c20cd11fdafa89115d124"], "statement_hash": "7e67783296f70fe16e14d5afa052aa466a00e45ac0785f565c674fdbb98cb79a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-5f04cbc23b8851f9", "migration": false}, {"id": "17.0-7a9b019b505f601e", "cves": [], "html": "<p>\u5141\u8bb8\u6d4b\u8bd5\u5728 <span>OpenSSL</span> <acronym>FIPS</acronym> \u6a21\u5f0f\u4e0b\u901a\u8fc7\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/284cbaea7\">\u00a7</a> <a href=\"https://postgr.es/c/3c44e7d8d\">\u00a7</a></p>", "text": "\u5141\u8bb8\u6d4b\u8bd5\u5728 OpenSSL FIPS \u6a21\u5f0f\u4e0b\u901a\u8fc7\uff08Peter Eisentraut\uff09\u00a7 \u00a7", "title": "\u5141\u8bb8\u6d4b\u8bd5\u5728 OpenSSL FIPS \u6a21\u5f0f\u4e0b\u901a\u8fc7", "commits": ["284cbaea7", "3c44e7d8d"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "959f6399dda44f54bec76f7817e641068c40725031f832b87b6fa7e8504a0128", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["284cbaea7"], ["3c44e7d8d"]], "identity_text": "Allow tests to pass in OpenSSL FIPS mode (Peter Eisentraut)", "commit_aliases": ["284cbaea7", "3c44e7d8d"], "source_commits": ["284cbaea7", "3c44e7d8d"], "source_entry_id": "17.0/changes/127", "db_id": "a135f4fb35c7906e97c207b90bb26ab9", "patch_ids": ["27a23a56070ade180b93c4102d39aa9b", "789709d46dfe5351bc11694318517651"], "statement_hash": "c3cbba5e48f72814686215398317fdc78d97e033a969893d623bc5ec615958aa", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-7a9b019b505f601e", "migration": false}, {"id": "17.0-15b3e73a9cacd640", "cves": [], "html": "<p>\u4f7f\u7528 <acronym>CPU AVX</acronym>-512 \u6307\u4ee4\u8fdb\u884c\u4f4d\u8ba1\u6570\uff08Paul Amonson, Nathan Bossart, Ants Aasma\uff09<a href=\"https://postgr.es/c/792752af4\">\u00a7</a> <a href=\"https://postgr.es/c/41c51f0c6\">\u00a7</a></p>", "text": "\u4f7f\u7528 CPU AVX-512 \u6307\u4ee4\u8fdb\u884c\u4f4d\u8ba1\u6570\uff08Paul Amonson, Nathan Bossart, Ants Aasma\uff09\u00a7 \u00a7", "title": "\u4f7f\u7528 CPU AVX-512 \u6307\u4ee4\u8fdb\u884c\u4f4d\u8ba1\u6570", "commits": ["41c51f0c6", "792752af4"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "45cda86246e42712a462a54e5a683e75d514d046e2f6010a20d9ec242a413216", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["41c51f0c6"], ["792752af4"]], "identity_text": "Use CPU AVX-512 instructions for bit counting (Paul Amonson, Nathan Bossart, Ants Aasma)", "commit_aliases": ["41c51f0c6", "792752af4"], "source_commits": ["41c51f0c6", "792752af4"], "source_entry_id": "17.0/changes/128", "db_id": "326ef8392ee61620a3d0ab1e397c477b", "patch_ids": ["797825bf52ab1ddd6d748e9df6e04632", "de087c782c5665286971401f760dcb6f"], "statement_hash": "2a9647601d42364819fca9d36293b39dd2ddf93995d9e2b4d68b42b379124bdf", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-15b3e73a9cacd640", "migration": false}, {"id": "17.0-21c3d14115014c02", "cves": [], "html": "<p>\u8981\u6c42 <span><acronym>LLVM</acronym></span> \u7248\u672c\u4e3a 10 \u6216\u66f4\u9ad8\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/820b5af73\">\u00a7</a></p>", "text": "\u8981\u6c42 LLVM \u7248\u672c\u4e3a 10 \u6216\u66f4\u9ad8\uff08Thomas Munro\uff09\u00a7", "title": "\u8981\u6c42 LLVM \u7248\u672c\u4e3a 10 \u6216\u66f4\u9ad8", "commits": ["820b5af73"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "fabeefc089e24f4a3c12c459dab4138165912759268b17a27c98575b1b7952b1", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["820b5af73"]], "identity_text": "Require LLVM version 10 or later (Thomas Munro)", "commit_aliases": ["820b5af73"], "source_commits": ["820b5af73"], "source_entry_id": "17.0/changes/129", "db_id": "72eee7416e63a4bcb16849b9e21c657e", "patch_ids": ["baa483078b0978ee35a1076715b8bab0"], "statement_hash": "bc510a4a245912e1390d02ffb70b8a64616e38b63a8092f3ce6c78293ceac58c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-21c3d14115014c02", "migration": false}, {"id": "17.0-3ed1b2b031ea0bc6", "cves": [], "html": "<p>\u5728 64 \u4f4d <span>LoongArch</span> CPU \u4e0a\u4f7f\u7528\u539f\u751f <acronym>CRC</acronym> \u6307\u4ee4\uff08Xudong Yang\uff09<a href=\"https://postgr.es/c/4d14ccd6a\">\u00a7</a></p>", "text": "\u5728 64 \u4f4d LoongArch CPU \u4e0a\u4f7f\u7528\u539f\u751f CRC \u6307\u4ee4\uff08Xudong Yang\uff09\u00a7", "title": "\u5728 64 \u4f4d LoongArch CPU \u4e0a\u4f7f\u7528\u539f\u751f CRC \u6307\u4ee4", "commits": ["4d14ccd6a"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "b24d213afc567210c77934ede0a5ef95aaf687bce473cf1813bd9c9c9b1a2a5f", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["4d14ccd6a"]], "identity_text": "Use native CRC instructions on 64-bit LoongArch CPUs (Xudong Yang)", "commit_aliases": ["4d14ccd6a"], "source_commits": ["4d14ccd6a"], "source_entry_id": "17.0/changes/130", "db_id": "7ea245e9c033fe8b075904f92a913e12", "patch_ids": ["aed8d765ef17f0d03df77dab0ec16518"], "statement_hash": "ff8157f877083a7f8679d72b455b383d8cb83ecb25761d068c3fc97919ca6eda", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-3ed1b2b031ea0bc6", "migration": false}, {"id": "17.0-d0d32394c87a028c", "cves": [], "html": "<p>\u79fb\u9664\u5bf9 <span><acronym>AIX</acronym></span> \u7684\u652f\u6301\uff08Heikki Linnakangas\uff09<a href=\"https://postgr.es/c/0b16bb877\">\u00a7</a></p>", "text": "\u79fb\u9664\u5bf9 AIX \u7684\u652f\u6301\uff08Heikki Linnakangas\uff09\u00a7", "title": "\u79fb\u9664\u5bf9 AIX \u7684\u652f\u6301", "commits": ["0b16bb877"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "5841f180a5041cf50a274e1f9fd698322aafb08ae8fa8da1e59d66844ea73305", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["0b16bb877"]], "identity_text": "Remove AIX support (Heikki Linnakangas)", "commit_aliases": ["0b16bb877"], "source_commits": ["0b16bb877"], "source_entry_id": "17.0/changes/131", "db_id": "f4840b20dc32c3b9f047dd82de33efb9", "patch_ids": ["de2c7811e07614defe533d1bf93a3090"], "statement_hash": "0e3d50f0888d20c3ac42aba16cf6e299c1b83550abd1fa2f6110c4367a8eb7ac", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-d0d32394c87a028c", "migration": false}, {"id": "17.0-5f376f1cb263f72c", "cves": [], "html": "<p>\u79fb\u9664 <span>Microsoft Visual Studio</span> \u4e13\u7528\u7684 <span>PostgreSQL</span> \u6784\u5efa\u9009\u9879\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/1301c80b2\">\u00a7</a></p>\n<p><span>Meson</span> \u73b0\u5728\u662f <span>Visual Studio</span> \u6784\u5efa\u7684\u552f\u4e00\u53ef\u7528\u65b9\u6cd5\u3002</p>", "text": "\u79fb\u9664 Microsoft Visual Studio \u4e13\u7528\u7684 PostgreSQL \u6784\u5efa\u9009\u9879\uff08Michael Paquier\uff09\u00a7 Meson \u73b0\u5728\u662f Visual Studio \u6784\u5efa\u7684\u552f\u4e00\u53ef\u7528\u65b9\u6cd5\u3002", "title": "\u79fb\u9664 Microsoft Visual Studio \u4e13\u7528\u7684 PostgreSQL \u6784\u5efa\u9009\u9879", "commits": ["1301c80b2"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "987f3c37a3e15e3e1b2cb19b584c749b0a70b49ac562e91f45a7c7298f7ae16b", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["1301c80b2"]], "identity_text": "Remove the Microsoft Visual Studio-specific PostgreSQL build option (Michael Paquier) Meson is now the only available method for Visual Studio builds.", "commit_aliases": ["1301c80b2"], "source_commits": ["1301c80b2"], "source_entry_id": "17.0/changes/132", "db_id": "913c5fefc2c5e537af5898076b56e56d", "patch_ids": ["6e75731134cc82e8f61c2df316928cf7"], "statement_hash": "a2c8190c49c3b8cb801ae88e65a9613c2c1609d3a9a58ae454c3dd9193be9367", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-5f376f1cb263f72c", "migration": false}, {"id": "17.0-22b1094344f0b77e", "cves": [], "html": "<p>\u79fb\u9664 configure \u9009\u9879 <code>--disable-thread-safety</code>\uff08Thomas Munro, Heikki Linnakangas\uff09<a href=\"https://postgr.es/c/68a4b58ec\">\u00a7</a> <a href=\"https://postgr.es/c/ce0b0fa3e\">\u00a7</a></p>\n<p>\u6211\u4eec\u73b0\u5728\u5047\u5b9a\u6240\u6709\u53d7\u652f\u6301\u7684\u5e73\u53f0\u90fd\u5177\u6709\u8db3\u591f\u7684\u7ebf\u7a0b\u652f\u6301\u3002</p>", "text": "\u79fb\u9664 configure \u9009\u9879 --disable-thread-safety\uff08Thomas Munro, Heikki Linnakangas\uff09\u00a7 \u00a7 \u6211\u4eec\u73b0\u5728\u5047\u5b9a\u6240\u6709\u53d7\u652f\u6301\u7684\u5e73\u53f0\u90fd\u5177\u6709\u8db3\u591f\u7684\u7ebf\u7a0b\u652f\u6301\u3002", "title": "\u79fb\u9664 configure \u9009\u9879 --disable-thread-safety", "commits": ["68a4b58ec", "ce0b0fa3e"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "2c40ba40d696bf2ee743f2efa7d58b56cc5a38cff1611a62d4cfedfa7163904f", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["68a4b58ec"], ["ce0b0fa3e"]], "identity_text": "Remove configure option --disable-thread-safety (Thomas Munro, Heikki Linnakangas) We now assume all supported platforms have sufficient thread support.", "commit_aliases": ["68a4b58ec", "ce0b0fa3e"], "source_commits": ["68a4b58ec", "ce0b0fa3e"], "source_entry_id": "17.0/changes/133", "db_id": "42e9fb2f361ae69f03f41e8114726ed6", "patch_ids": ["36537238f32d9a7bb09808780a5910de", "50964d12e5d1abbad098eb65bd55c133"], "statement_hash": "a7d2a76c0b3c298d869b8d9dbecc0cff3c0985357e98da13117747645d02575a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-22b1094344f0b77e", "migration": false}, {"id": "17.0-a51fb3f19f4d14f4", "cves": [], "html": "<p>\u79fb\u9664 <span>configure</span> \u9009\u9879 <code>--with-CC</code>\uff08Heikki Linnakangas\uff09<a href=\"https://postgr.es/c/1c1eec0f2\">\u00a7</a></p>\n<p>\u73b0\u5728\u6307\u5b9a\u7f16\u8bd1\u5668\u7684\u552f\u4e00\u53d7\u652f\u6301\u65b9\u6cd5\u662f\u8bbe\u7f6e <code>CC</code> \u73af\u5883\u53d8\u91cf\u3002</p>", "text": "\u79fb\u9664 configure \u9009\u9879 --with-CC\uff08Heikki Linnakangas\uff09\u00a7 \u73b0\u5728\u6307\u5b9a\u7f16\u8bd1\u5668\u7684\u552f\u4e00\u53d7\u652f\u6301\u65b9\u6cd5\u662f\u8bbe\u7f6e CC \u73af\u5883\u53d8\u91cf\u3002", "title": "\u79fb\u9664 configure \u9009\u9879 --with-CC", "commits": ["1c1eec0f2"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "d95dbe422cc4b30443e33ef408727f4dac473726b6a3a6230eb2620223f29622", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["1c1eec0f2"]], "identity_text": "Remove configure option --with-CC (Heikki Linnakangas) Setting the CC environment variable is now the only supported method for specifying the compiler.", "commit_aliases": ["1c1eec0f2"], "source_commits": ["1c1eec0f2"], "source_entry_id": "17.0/changes/134", "db_id": "143ea66288ccbf63707e044df80c9ad6", "patch_ids": ["7e98f7d00edb150581c9e82e62d11be0"], "statement_hash": "2cb754acc6c28932f79d5bc3d331a21391776e24922e5dacd5d5960d95a1cb33", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-a51fb3f19f4d14f4", "migration": false}, {"id": "17.0-19b8e105b95e4947", "cves": [], "html": "<p>\u7528\u6237\u5b9a\u4e49\u7684\u6570\u636e\u7c7b\u578b\u63a5\u6536\u51fd\u6570\u5c06\u4e0d\u518d\u63a5\u6536\u5230\u4ee5\u7a7a\u5b57\u7b26\u7ec8\u6b62\u7684\u6570\u636e\uff08David Rowley\uff09<a href=\"https://postgr.es/c/f0efa5aec\">\u00a7</a></p>", "text": "\u7528\u6237\u5b9a\u4e49\u7684\u6570\u636e\u7c7b\u578b\u63a5\u6536\u51fd\u6570\u5c06\u4e0d\u518d\u63a5\u6536\u5230\u4ee5\u7a7a\u5b57\u7b26\u7ec8\u6b62\u7684\u6570\u636e\uff08David Rowley\uff09\u00a7", "title": "\u7528\u6237\u5b9a\u4e49\u7684\u6570\u636e\u7c7b\u578b\u63a5\u6536\u51fd\u6570\u5c06\u4e0d\u518d\u63a5\u6536\u5230\u4ee5\u7a7a\u5b57\u7b26\u7ec8\u6b62\u7684\u6570\u636e", "commits": ["f0efa5aec"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "83baab6057f34f99e4db488768cb432760dba78c093f4d1620e620abd2683c28", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["f0efa5aec"]], "identity_text": "User-defined data type receive functions will no longer receive their data null-terminated (David Rowley)", "commit_aliases": ["f0efa5aec"], "source_commits": ["f0efa5aec"], "source_entry_id": "17.0/changes/135", "db_id": "19d0f5adfeea701c31b8e22525e6fad2", "patch_ids": ["6b82f3e7159caf6a3bfa7b3269e4a5d8"], "statement_hash": "24812cf4b627a7a7f317c84d2e00b69d5d0fd88d2fda6b1a6181d0390567ab8b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-19b8e105b95e4947", "migration": false}, {"id": "17.0-e23526721ccb2109", "cves": [], "html": "<p>\u6dfb\u52a0\u589e\u91cf\u5f0f <code>JSON</code> \u89e3\u6790\u5668\uff0c\u4ee5\u7528\u4e8e\u8d85\u5927\u7684 <code>JSON</code> \u6587\u6863\uff08Andrew Dunstan\uff09<a href=\"https://postgr.es/c/3311ea86e\">\u00a7</a></p>", "text": "\u6dfb\u52a0\u589e\u91cf\u5f0f JSON \u89e3\u6790\u5668\uff0c\u4ee5\u7528\u4e8e\u8d85\u5927\u7684 JSON \u6587\u6863\uff08Andrew Dunstan\uff09\u00a7", "title": "\u6dfb\u52a0\u589e\u91cf\u5f0f JSON \u89e3\u6790\u5668\uff0c\u4ee5\u7528\u4e8e\u8d85\u5927\u7684 JSON \u6587\u6863", "commits": ["3311ea86e"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "5873b1f249baebe7b7426d1b9ee4cb0e4c3bf69aca662d372c98a79072c9131e", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["3311ea86e"]], "identity_text": "Add incremental JSON parser for use with huge JSON documents (Andrew Dunstan)", "commit_aliases": ["3311ea86e"], "source_commits": ["3311ea86e"], "source_entry_id": "17.0/changes/136", "db_id": "019541f2e3f2021f9da6a24500d7182b", "patch_ids": ["2cbbd6ee4e3a4c628d75f3c25057b54f"], "statement_hash": "ddddb8565374e9a832c7ea9a2dc932e14bf0da6c2914474639e77911dd4e7523", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-e23526721ccb2109", "migration": false}, {"id": "17.0-e372a638516fe0ef", "cves": [], "html": "<p>\u5c06\u9876\u5c42 <code>README</code> \u6587\u4ef6\u8f6c\u6362\u4e3a <span>Markdown</span>\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/363eb0599\">\u00a7</a></p>", "text": "\u5c06\u9876\u5c42 README \u6587\u4ef6\u8f6c\u6362\u4e3a Markdown\uff08Nathan Bossart\uff09\u00a7", "title": "\u5c06\u9876\u5c42 README \u6587\u4ef6\u8f6c\u6362\u4e3a Markdown", "commits": ["363eb0599"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "097e0892fe4a698341b7504a391033efd56aef053f3e70f9997902cb071eb1d5", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["363eb0599"]], "identity_text": "Convert top-level README file to Markdown (Nathan Bossart)", "commit_aliases": ["363eb0599"], "source_commits": ["363eb0599"], "source_entry_id": "17.0/changes/137", "db_id": "16fe37ee9bc09439954284db0c23d26c", "patch_ids": ["78c6b6fc4a88360bc43a03406176a1f1"], "statement_hash": "94273fdf864232478f3e27128fad502df5e5acab604b948733ad710110dae971", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-e372a638516fe0ef", "migration": false}, {"id": "17.0-ac5282e34853d381", "cves": [], "html": "<p>\u79fb\u9664\u4e0d\u518d\u9700\u8981\u7684\u9876\u5c42 <code>INSTALL</code> \u6587\u4ef6\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/e2b73f4a4\">\u00a7</a></p>", "text": "\u79fb\u9664\u4e0d\u518d\u9700\u8981\u7684\u9876\u5c42 INSTALL \u6587\u4ef6\uff08Tom Lane\uff09\u00a7", "title": "\u79fb\u9664\u4e0d\u518d\u9700\u8981\u7684\u9876\u5c42 INSTALL \u6587\u4ef6", "commits": ["e2b73f4a4"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "6166d3146ccb98d090223b85adff0250ef2e889ef1e3b69f19f79119da452725", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["e2b73f4a4"]], "identity_text": "Remove no longer needed top-level INSTALL file (Tom Lane)", "commit_aliases": ["e2b73f4a4"], "source_commits": ["e2b73f4a4"], "source_entry_id": "17.0/changes/138", "db_id": "fd4c39a1596258c7e0dd1558e77e4391", "patch_ids": ["b1e4e1b6cf4abd002cee1318af0191b0"], "statement_hash": "a43e44e9c5e60b1187431df61de5c9dfae8e42b272e82cf7e0ac3786de2ec5e3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-ac5282e34853d381", "migration": false}, {"id": "17.0-f9497f0aa345abfe", "cves": [], "html": "<p>\u79fb\u9664 <span>make</span> \u7684 <code>distprep</code> \u9009\u9879\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/721856ff2\">\u00a7</a></p>", "text": "\u79fb\u9664 make \u7684 distprep \u9009\u9879\uff08Peter Eisentraut\uff09\u00a7", "title": "\u79fb\u9664 make \u7684 distprep \u9009\u9879", "commits": ["721856ff2"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "e279dd987a80bb20f15a3e6f3c37a0ff8fc1a65148153b85ae5303def96a1663", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["721856ff2"]], "identity_text": "Remove make's distprep option (Peter Eisentraut)", "commit_aliases": ["721856ff2"], "source_commits": ["721856ff2"], "source_entry_id": "17.0/changes/139", "db_id": "044abf4589a4c75e032d01967bfeb006", "patch_ids": ["a2127535e57564bc451f6f84f53c5799"], "statement_hash": "b660c155b2c6b26c23d07d60f5eab3d2829df09314527cb5f6509312fa611c96", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-f9497f0aa345abfe", "migration": false}, {"id": "17.0-7852b5eb45e0f709", "cves": [], "html": "<p>\u4e3a <span>make</span> \u6dfb\u52a0\u5bf9 <span>Android</span> \u5171\u4eab\u5e93\u7684\u652f\u6301\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/79b03dbb3\">\u00a7</a></p>", "text": "\u4e3a make \u6dfb\u52a0\u5bf9 Android \u5171\u4eab\u5e93\u7684\u652f\u6301\uff08Peter Eisentraut\uff09\u00a7", "title": "\u4e3a make \u6dfb\u52a0\u5bf9 Android \u5171\u4eab\u5e93\u7684\u652f\u6301", "commits": ["79b03dbb3"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "c3cdbab64bcba9765ee387b35484548fd70f7dde0b8554a2c772ff1a542f4c93", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["79b03dbb3"]], "identity_text": "Add make support for Android shared libraries (Peter Eisentraut)", "commit_aliases": ["79b03dbb3"], "source_commits": ["79b03dbb3"], "source_entry_id": "17.0/changes/140", "db_id": "b13e641ad6d53b97d02e6d3d3b07c68f", "patch_ids": ["fa62aee2e0aab2024628c6430f6233f8"], "statement_hash": "b608dc60bda89d6268229b9def92c090148bdbeb107de5d8b0b702e03115530c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-7852b5eb45e0f709", "migration": false}, {"id": "17.0-abace7ae3098409d", "cves": [], "html": "<p>\u6dfb\u52a0\u540e\u7aef\u5bf9\u6ce8\u5165\u70b9\u7684\u652f\u6301\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/d86d20f0b\">\u00a7</a> <a href=\"https://postgr.es/c/37b369dc6\">\u00a7</a> <a href=\"https://postgr.es/c/f587338de\">\u00a7</a> <a href=\"https://postgr.es/c/bb93640a6\">\u00a7</a></p>\n<p>\u8fd9\u7528\u4e8e\u670d\u52a1\u5668\u8c03\u8bd5\uff0c\u5e76\u4e14\u5fc5\u987b\u5728\u670d\u52a1\u5668\u7f16\u8bd1\u65f6\u542f\u7528\u3002</p>", "text": "\u6dfb\u52a0\u540e\u7aef\u5bf9\u6ce8\u5165\u70b9\u7684\u652f\u6301\uff08Michael Paquier\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u8fd9\u7528\u4e8e\u670d\u52a1\u5668\u8c03\u8bd5\uff0c\u5e76\u4e14\u5fc5\u987b\u5728\u670d\u52a1\u5668\u7f16\u8bd1\u65f6\u542f\u7528\u3002", "title": "\u6dfb\u52a0\u540e\u7aef\u5bf9\u6ce8\u5165\u70b9\u7684\u652f\u6301", "commits": ["37b369dc6", "bb93640a6", "d86d20f0b", "f587338de"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "d73fb629fc7f4b2ed93b13e455a0433f40e2386e2790224bfa3043abec807ac4", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["37b369dc6"], ["bb93640a6"], ["d86d20f0b"], ["f587338de"]], "identity_text": "Add backend support for injection points (Michael Paquier) This is used for server debugging and they must be enabled at server compile time.", "commit_aliases": ["37b369dc6", "bb93640a6", "d86d20f0b", "f587338de"], "source_commits": ["37b369dc6", "bb93640a6", "d86d20f0b", "f587338de"], "source_entry_id": "17.0/changes/141", "db_id": "e75a9a23e2348482eff198030b472f0e", "patch_ids": ["0873e7b8344960a2aee60a48bee2194e", "4796ea611cbe705f67adb3528e0f5b11", "caa959fbfcefd2de2cb9e4dcf8981841", "f55703cb1ff5c35f0cd1165772407317"], "statement_hash": "d5d0072341b44815f49a413e883adc199119d202250d83568629a792d6b2e24e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-abace7ae3098409d", "migration": false}, {"id": "17.0-464339e819ae6a08", "cves": [], "html": "<p>\u6dfb\u52a0\u52a8\u6001\u5171\u4eab\u5185\u5b58\u6ce8\u518c\u8868\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/8b2bcf3f2\">\u00a7</a></p>\n<p>\u8fd9\u4f7f\u5f97\u90a3\u4e9b\u672a\u5728\u542f\u52a8\u65f6\u521d\u59cb\u5316\u7684\u5171\u4eab\u5e93\u4e5f\u80fd\u591f\u534f\u8c03\u5bf9\u52a8\u6001\u5171\u4eab\u5185\u5b58\u7684\u8bbf\u95ee\u3002</p>", "text": "\u6dfb\u52a0\u52a8\u6001\u5171\u4eab\u5185\u5b58\u6ce8\u518c\u8868\uff08Nathan Bossart\uff09\u00a7 \u8fd9\u4f7f\u5f97\u90a3\u4e9b\u672a\u5728\u542f\u52a8\u65f6\u521d\u59cb\u5316\u7684\u5171\u4eab\u5e93\u4e5f\u80fd\u591f\u534f\u8c03\u5bf9\u52a8\u6001\u5171\u4eab\u5185\u5b58\u7684\u8bbf\u95ee\u3002", "title": "\u6dfb\u52a0\u52a8\u6001\u5171\u4eab\u5185\u5b58\u6ce8\u518c\u8868", "commits": ["8b2bcf3f2"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "7973e9c417d977667928cc28fdc2120634a2839d8f60c586af619727b1a67281", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["8b2bcf3f2"]], "identity_text": "Add dynamic shared memory registry (Nathan Bossart) This allows shared libraries which are not initialized at startup to coordinate dynamic shared memory access.", "commit_aliases": ["8b2bcf3f2"], "source_commits": ["8b2bcf3f2"], "source_entry_id": "17.0/changes/142", "db_id": "c5316f39fd5729475b6bb8ac9bcb82cd", "patch_ids": ["e00bd8d7f257fd3730d3a711e4315f46"], "statement_hash": "5fa223044d973d2145d53255450dcc74827b5e1c458ad518195e0a6a328090c5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-464339e819ae6a08", "migration": false}, {"id": "17.0-52c7a0c027abfc95", "cves": [], "html": "<p>\u4fee\u590d <code>emit_log_hook</code>\uff0c\u4f7f\u5176\u5bf9\u540c\u4e00\u67e5\u8be2\u4f7f\u7528\u4e0e\u5176\u4ed6\u65e5\u5fd7\u8bb0\u5f55\u76f8\u540c\u7684\u65f6\u95f4\u503c\uff08Kambam Vinay, Michael Paquier\uff09<a href=\"https://postgr.es/c/2a217c371\">\u00a7</a></p>", "text": "\u4fee\u590d emit_log_hook\uff0c\u4f7f\u5176\u5bf9\u540c\u4e00\u67e5\u8be2\u4f7f\u7528\u4e0e\u5176\u4ed6\u65e5\u5fd7\u8bb0\u5f55\u76f8\u540c\u7684\u65f6\u95f4\u503c\uff08Kambam Vinay, Michael Paquier\uff09\u00a7", "title": "\u4fee\u590d emit_log_hook\uff0c\u4f7f\u5176\u5bf9\u540c\u4e00\u67e5\u8be2\u4f7f\u7528\u4e0e\u5176\u4ed6\u65e5\u5fd7\u8bb0\u5f55\u76f8\u540c\u7684\u65f6\u95f4\u503c", "commits": ["2a217c371"], "section": "\u6e90\u4ee3\u7801", "category": "bugfix", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "f42bef9789ddc4e7eb837c73c4b61fa5b8f1841fad1f52ece9b6fc74944327ad", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["2a217c371"]], "identity_text": "Fix emit_log_hook to use the same time value as other log records for the same query (Kambam Vinay, Michael Paquier)", "commit_aliases": ["2a217c371"], "source_commits": ["2a217c371"], "source_entry_id": "17.0/changes/143", "db_id": "96896e827fdb47d395edc2e3b8c4a934", "patch_ids": ["82c0b254fcf4409e51d539c22a6b8cf2"], "statement_hash": "882e8a0f6fac1a739aea9a40ccee25d6d89c28cf47b64f68de68183a8bfe3fbd", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=17.0#17.0-52c7a0c027abfc95", "migration": false}, {"id": "17.0-2216de92719f80f3", "cves": [], "html": "<p>\u6539\u8fdb\u5173\u4e8e\u4f7f\u7528 <code>jsonpath</code> \u8fdb\u884c\u8c13\u8bcd\u68c0\u67e5\u7684\u6587\u6863\uff08David Wheeler\uff09<a href=\"https://postgr.es/c/7014c9a4b\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5173\u4e8e\u4f7f\u7528 jsonpath \u8fdb\u884c\u8c13\u8bcd\u68c0\u67e5\u7684\u6587\u6863\uff08David Wheeler\uff09\u00a7", "title": "\u6539\u8fdb\u5173\u4e8e\u4f7f\u7528 jsonpath \u8fdb\u884c\u8c13\u8bcd\u68c0\u67e5\u7684\u6587\u6863", "commits": ["7014c9a4b"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-SOURCE-CODE", "source_hash": "917d48df4a3e2aaa0eb690c94f5195f2c5c35b9d75b35f56bf63522433584aa4", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["7014c9a4b"]], "identity_text": "Improve documentation for using jsonpath for predicate checks (David Wheeler)", "commit_aliases": ["7014c9a4b"], "source_commits": ["7014c9a4b"], "source_entry_id": "17.0/changes/144", "db_id": "671cfd4d77d6dc423a470d85daeb1533", "patch_ids": ["378142bba840712753071ce7149f892c"], "statement_hash": "bd74d3f3a12cdf95c6426e5e24eceb582d94b3ab8e7d610f388b821b476efb1c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-2216de92719f80f3", "migration": false}, {"id": "17.0-1d07545fbc415c94", "cves": [], "html": "<p>\u5141\u8bb8\u5c06\u5e26\u6709\u975e\u8fde\u63a5\u9650\u5236\u6761\u4ef6\u7684\u8fde\u63a5\u4e0b\u63a8\u5230\u5916\u90e8\u670d\u52a1\u5668\u548c\u81ea\u5b9a\u4e49\u626b\u63cf\u4e2d\uff08Richard Guo, Etsuro Fujita\uff09<a href=\"https://postgr.es/c/9e9931d2b\">\u00a7</a></p>\n<p>\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u548c\u81ea\u5b9a\u4e49\u626b\u63cf\u9700\u8981\u4fee\u6539\u624d\u80fd\u5904\u7406\u8fd9\u4e9b\u60c5\u51b5\u3002</p>", "text": "\u5141\u8bb8\u5c06\u5e26\u6709\u975e\u8fde\u63a5\u9650\u5236\u6761\u4ef6\u7684\u8fde\u63a5\u4e0b\u63a8\u5230\u5916\u90e8\u670d\u52a1\u5668\u548c\u81ea\u5b9a\u4e49\u626b\u63cf\u4e2d\uff08Richard Guo, Etsuro Fujita\uff09\u00a7 \u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u548c\u81ea\u5b9a\u4e49\u626b\u63cf\u9700\u8981\u4fee\u6539\u624d\u80fd\u5904\u7406\u8fd9\u4e9b\u60c5\u51b5\u3002", "title": "\u5141\u8bb8\u5c06\u5e26\u6709\u975e\u8fde\u63a5\u9650\u5236\u6761\u4ef6\u7684\u8fde\u63a5\u4e0b\u63a8\u5230\u5916\u90e8\u670d\u52a1\u5668\u548c\u81ea\u5b9a\u4e49\u626b\u63cf\u4e2d", "commits": ["9e9931d2b"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "90b0331f7787b3811b14cca6d244c14bf435769131dd5f970a146404d370defa", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["9e9931d2b"]], "identity_text": "Allow joins with non-join qualifications to be pushed down to foreign servers and custom scans (Richard Guo, Etsuro Fujita) Foreign data wrappers and custom scans will need to be modified to handle these cases.", "commit_aliases": ["9e9931d2b"], "source_commits": ["9e9931d2b"], "source_entry_id": "17.0/changes/145", "db_id": "602370a8e6f22b00d8b169c31ac92c51", "patch_ids": ["fa2badd8ad71f4912f69362e47f47050"], "statement_hash": "532e397bc4b9ae95eb4b1cac0ae38f563f22359b43b0ed380e7d93423bfc8f47", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-1d07545fbc415c94", "migration": false}, {"id": "17.0-35dea19dd423d972", "cves": [], "html": "<p>\u5141\u8bb8\u5c06 <code>EXISTS</code> \u548c <code>IN</code> \u5b50\u67e5\u8be2\u4e0b\u63a8\u5230<a href=\"/docs/17/postgres-fdw.html\" title=\"F.36.\u00a0postgres_fdw \u2014 \u8bbf\u95ee\u5b58\u50a8\u5728\u5916\u90e8 PostgreSQL \u670d\u52a1\u5668\u4e2d\u7684\u6570\u636e\">postgres_fdw</a>\u5916\u90e8\u670d\u52a1\u5668\uff08Alexander Pyhalov\uff09<a href=\"https://postgr.es/c/824dbea3e\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5c06 EXISTS \u548c IN \u5b50\u67e5\u8be2\u4e0b\u63a8\u5230postgres_fdw\u5916\u90e8\u670d\u52a1\u5668\uff08Alexander Pyhalov\uff09\u00a7", "title": "\u5141\u8bb8\u5c06 EXISTS \u548c IN \u5b50\u67e5\u8be2\u4e0b\u63a8\u5230postgres_fdw\u5916\u90e8\u670d\u52a1\u5668", "commits": ["824dbea3e"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "5ec6b1f8e99d7958930bbbae13f623d3b269b51c64e026a231117b812f4104df", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["824dbea3e"]], "identity_text": "Allow pushdown of EXISTS and IN subqueries to postgres-fdw foreign servers (Alexander Pyhalov)", "commit_aliases": ["824dbea3e"], "source_commits": ["824dbea3e"], "source_entry_id": "17.0/changes/146", "db_id": "7a3f28e9806d19d8460db56a25188a6b", "patch_ids": ["4c6c6dbde603026434419ffb07dff549"], "statement_hash": "fd127259ef3624c6e64b5ed145e3b39227521cd4cfcdaf0d5a755959571bb809", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-35dea19dd423d972", "migration": false}, {"id": "17.0-34b1727d98ec1f24", "cves": [], "html": "<p>\u63d0\u9ad8\u9ed8\u8ba4\u7684\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u5143\u7ec4\u4ee3\u4ef7\uff08David Rowley, Umair Shahid\uff09<a href=\"https://postgr.es/c/cac169d68\">\u00a7</a> <a href=\"https://postgr.es/c/f7f694b21\">\u00a7</a></p>\n<p>\u8be5\u503c\u7531\u4f18\u5316\u5668\u4f7f\u7528\u3002</p>", "text": "\u63d0\u9ad8\u9ed8\u8ba4\u7684\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u5143\u7ec4\u4ee3\u4ef7\uff08David Rowley, Umair Shahid\uff09\u00a7 \u00a7 \u8be5\u503c\u7531\u4f18\u5316\u5668\u4f7f\u7528\u3002", "title": "\u63d0\u9ad8\u9ed8\u8ba4\u7684\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u5143\u7ec4\u4ee3\u4ef7", "commits": ["cac169d68", "f7f694b21"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "b72bdd8aa977a12b63e5763b222efdebb7baabb4f926a57d2e94ff919456bda8", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["cac169d68"], ["f7f694b21"]], "identity_text": "Increase the default foreign data wrapper tuple cost (David Rowley, Umair Shahid) This value is used by the optimizer.", "commit_aliases": ["cac169d68", "f7f694b21"], "source_commits": ["cac169d68", "f7f694b21"], "source_entry_id": "17.0/changes/147", "db_id": "76f362f84f6f7f42131c7dc3660710f3", "patch_ids": ["11934dd9267f219b5187d05144d80710", "e0d966edc0bfb9957736dd9b41557265"], "statement_hash": "924c645b841c23c66da984f6da1bc2438b270e1c903201191ef9958088fe599d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-34b1727d98ec1f24", "migration": false}, {"id": "17.0-c135726fca211e84", "cves": [], "html": "<p>\u5141\u8bb8\u4e2d\u65ad<a href=\"/docs/17/dblink.html\" title=\"F.11.\u00a0dblink \u2014 \u8fde\u63a5\u5230\u5176\u4ed6 PostgreSQL \u6570\u636e\u5e93\"><span>dblink</span></a>\u7684\u6570\u636e\u5e93\u64cd\u4f5c\uff08Noah Misch\uff09<a href=\"https://postgr.es/c/d3c5f37dd\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4e2d\u65addblink\u7684\u6570\u636e\u5e93\u64cd\u4f5c\uff08Noah Misch\uff09\u00a7", "title": "\u5141\u8bb8\u4e2d\u65addblink\u7684\u6570\u636e\u5e93\u64cd\u4f5c", "commits": ["d3c5f37dd"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "14050614fc744646952c5710d1d85b92f8421c7c466422b8fa867ba67cfeabbc", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["d3c5f37dd"]], "identity_text": "Allow dblink database operations to be interrupted (Noah Misch)", "commit_aliases": ["d3c5f37dd"], "source_commits": ["d3c5f37dd"], "source_entry_id": "17.0/changes/148", "db_id": "0e31dead73a9f8e498071f9525ac49a6", "patch_ids": ["2f9e7d71050455b05ec5e7c18af39bcc"], "statement_hash": "13ea52e38638c9d65409e2d059873b618bfad8b134d7c35409391c6eed91fb0e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-c135726fca211e84", "migration": false}, {"id": "17.0-b42a568f683128e5", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <span><a href=\"/docs/17/ltree.html\" title=\"F.22.\u00a0ltree \u2014 \u5c42\u6b21\u6811\u72b6\u6570\u636e\u7c7b\u578b\">ltree</a></span> \u5217\u4e0a\u521b\u5efa hash \u7d22\u5f15\uff08Tommy Pavlicek\uff09<a href=\"https://postgr.es/c/485f0aa85\">\u00a7</a></p>\n<p>\u8fd9\u4e5f\u4f7f\u5f97\u80fd\u591f\u5728 <span>ltree</span> \u5217\u4e0a\u8fdb\u884c\u54c8\u5e0c\u8fde\u63a5\u548c hash \u805a\u5408\u3002</p>", "text": "\u5141\u8bb8\u5728 ltree \u5217\u4e0a\u521b\u5efa hash \u7d22\u5f15\uff08Tommy Pavlicek\uff09\u00a7 \u8fd9\u4e5f\u4f7f\u5f97\u80fd\u591f\u5728 ltree \u5217\u4e0a\u8fdb\u884c\u54c8\u5e0c\u8fde\u63a5\u548c hash \u805a\u5408\u3002", "title": "\u5141\u8bb8\u5728 ltree \u5217\u4e0a\u521b\u5efa hash \u7d22\u5f15", "commits": ["485f0aa85"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "90fb4a30d48d077a56d56afbc21845e659a494f255b6f74487cd4ec9a5f648ed", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["485f0aa85"]], "identity_text": "Allow the creation of hash indexes on ltree columns (Tommy Pavlicek) This also enables hash join and hash aggregation on ltree columns.", "commit_aliases": ["485f0aa85"], "source_commits": ["485f0aa85"], "source_entry_id": "17.0/changes/149", "db_id": "0fcd097972303bafdda7763698cf849d", "patch_ids": ["9a2b84416f651f19ea2147bbbe22ed42"], "statement_hash": "2ff06487c7f977a34b9e12883d8baa57125e4609fab6ad7cecd0d93fde55cb3b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-b42a568f683128e5", "migration": false}, {"id": "17.0-daa430d9f1f9f4c9", "cves": [], "html": "<p>\u5141\u8bb8 <span><a href=\"/docs/17/unaccent.html\" title=\"F.46.\u00a0unaccent \u2014 \u53bb\u9664\u53d8\u97f3\u7b26\u53f7\u7684\u6587\u672c\u68c0\u7d22\u8bcd\u5178\">unaccent</a></span> \u7684\u5b57\u7b26\u8f6c\u6362\u89c4\u5219\u5305\u542b\u7a7a\u767d\u5b57\u7b26\u548c\u5f15\u53f7\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/59f47fb98\">\u00a7</a></p>\n<p><code>unaccent.rules</code> \u6587\u4ef6\u7684\u8bed\u6cd5\u5df2\u66f4\u6539\u3002</p>", "text": "\u5141\u8bb8 unaccent \u7684\u5b57\u7b26\u8f6c\u6362\u89c4\u5219\u5305\u542b\u7a7a\u767d\u5b57\u7b26\u548c\u5f15\u53f7\uff08Michael Paquier\uff09\u00a7 unaccent.rules \u6587\u4ef6\u7684\u8bed\u6cd5\u5df2\u66f4\u6539\u3002", "title": "\u5141\u8bb8 unaccent \u7684\u5b57\u7b26\u8f6c\u6362\u89c4\u5219\u5305\u542b\u7a7a\u767d\u5b57\u7b26\u548c\u5f15\u53f7", "commits": ["59f47fb98"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "43e706578a3b5a9be257ce12defe01320b816965750a56a6766aaa962c2e4377", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["59f47fb98"]], "identity_text": "Allow unaccent character translation rules to contain whitespace and quotes (Michael Paquier) The syntax for the unaccent.rules file has changed.", "commit_aliases": ["59f47fb98"], "source_commits": ["59f47fb98"], "source_entry_id": "17.0/changes/150", "db_id": "931e088d46958c6478eb7d2f30c51887", "patch_ids": ["bd31157f2a7afdf08a60d3946fd8d008"], "statement_hash": "c3082f051a4a8eeb36497acdbe5ba3a49fe0701fd780b4f9fccba48025a091af", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-daa430d9f1f9f4c9", "migration": false}, {"id": "17.0-8920b48ede92f031", "cves": [], "html": "<p>\u5141\u8bb8 <span><a href=\"/docs/17/amcheck.html\" title=\"F.1.\u00a0amcheck \u2014 \u7528\u4e8e\u9a8c\u8bc1\u8868\u548c\u7d22\u5f15\u4e00\u81f4\u6027\u7684\u5de5\u5177\">amcheck</a></span> \u4f7f\u7528\u65b0\u9009\u9879 <code>--checkunique</code> \u68c0\u67e5\u552f\u4e00\u7ea6\u675f\u8fdd\u53cd\uff08Anastasia Lubennikova, Pavel Borisov, Maxim Orlov\uff09<a href=\"https://postgr.es/c/5ae208720\">\u00a7</a></p>", "text": "\u5141\u8bb8 amcheck \u4f7f\u7528\u65b0\u9009\u9879 --checkunique \u68c0\u67e5\u552f\u4e00\u7ea6\u675f\u8fdd\u53cd\uff08Anastasia Lubennikova, Pavel Borisov, Maxim Orlov\uff09\u00a7", "title": "\u5141\u8bb8 amcheck \u4f7f\u7528\u65b0\u9009\u9879 --checkunique \u68c0\u67e5\u552f\u4e00\u7ea6\u675f\u8fdd\u53cd", "commits": ["5ae208720"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "cdfbcd3008f1d07349161bbaf954fe0e6bfec5792669bee987b15382321f3744", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["5ae208720"]], "identity_text": "Allow amcheck to check for unique constraint violations using new option --checkunique (Anastasia Lubennikova, Pavel Borisov, Maxim Orlov)", "commit_aliases": ["5ae208720"], "source_commits": ["5ae208720"], "source_entry_id": "17.0/changes/151", "db_id": "2eddc8ab5f67ad39560cadf774fa268a", "patch_ids": ["5050adf66866d77bc15d0a59087af2f3"], "statement_hash": "c86fe5631c56eb258fd536f2567f63d1ecd4b20c8865fd419789aba61f6f66c1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-8920b48ede92f031", "migration": false}, {"id": "17.0-f2405aff84dc3798", "cves": [], "html": "<p>\u5141\u8bb8 <span><a href=\"/docs/17/citext.html\" title=\"F.9.\u00a0citext \u2014 \u5927\u5c0f\u5199\u4e0d\u654f\u611f\u7684\u5b57\u7b26\u4e32\u7c7b\u578b\">citext</a></span> \u7684\u6d4b\u8bd5\u5728 OpenSSL <acronym>FIPS</acronym> \u6a21\u5f0f\u4e0b\u901a\u8fc7\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/3c551ebed\">\u00a7</a></p>", "text": "\u5141\u8bb8 citext \u7684\u6d4b\u8bd5\u5728 OpenSSL FIPS \u6a21\u5f0f\u4e0b\u901a\u8fc7\uff08Peter Eisentraut\uff09\u00a7", "title": "\u5141\u8bb8 citext \u7684\u6d4b\u8bd5\u5728 OpenSSL FIPS \u6a21\u5f0f\u4e0b\u901a\u8fc7", "commits": ["3c551ebed"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "ae7e08b05987732a2bfeccd8963683628531014ec419a7d0016723c8b800edad", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["3c551ebed"]], "identity_text": "Allow citext tests to pass in OpenSSL FIPS mode (Peter Eisentraut)", "commit_aliases": ["3c551ebed"], "source_commits": ["3c551ebed"], "source_entry_id": "17.0/changes/152", "db_id": "d4df432082891f8eedc5722ec92c4cf3", "patch_ids": ["e7858ef4fe4eec42ceaeb0d73e09397b"], "statement_hash": "633b209b121df3f7a1b3866423fe949c44297e36eaa76eb7a421268ee00950bf", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-f2405aff84dc3798", "migration": false}, {"id": "17.0-9a07120b177f57e1", "cves": [], "html": "<p>\u5141\u8bb8 <span><a href=\"/docs/17/pgcrypto.html\" title=\"F.26.\u00a0pgcrypto \u2014 \u5bc6\u7801\u5b66\u51fd\u6570\">pgcrypto</a></span> \u7684\u6d4b\u8bd5\u5728 OpenSSL <acronym>FIPS</acronym> \u6a21\u5f0f\u4e0b\u901a\u8fc7\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/795592865\">\u00a7</a></p>", "text": "\u5141\u8bb8 pgcrypto \u7684\u6d4b\u8bd5\u5728 OpenSSL FIPS \u6a21\u5f0f\u4e0b\u901a\u8fc7\uff08Peter Eisentraut\uff09\u00a7", "title": "\u5141\u8bb8 pgcrypto \u7684\u6d4b\u8bd5\u5728 OpenSSL FIPS \u6a21\u5f0f\u4e0b\u901a\u8fc7", "commits": ["795592865"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "bfa7242196ca8f07fddc2d907ac32183f7e1924f168cea723e5030b91bf0cb01", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["795592865"]], "identity_text": "Allow pgcrypto tests to pass in OpenSSL FIPS mode (Peter Eisentraut)", "commit_aliases": ["795592865"], "source_commits": ["795592865"], "source_entry_id": "17.0/changes/153", "db_id": "76a6f403888ab03b534bce8c3f9d7249", "patch_ids": ["08761b8e5c59750f736a18305612fd1c"], "statement_hash": "f531e471fa3af9c32a7d13871ca045c429ac9b29a2b80f11eebee0c789094d00", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-9a07120b177f57e1", "migration": false}, {"id": "17.0-400b3d20a9f78618", "cves": [], "html": "<p>\u79fb\u9664\u4e00\u4e9b\u672a\u4f7f\u7528\u7684 <a href=\"/docs/17/spi.html\" title=\"\u7b2c\u00a045\u00a0\u7ae0\u00a0\u670d\u52a1\u5668\u7f16\u7a0b\u63a5\u53e3\"><acronym>SPI</acronym></a> \u5b8f\uff08Bharath Rupireddy\uff09<a href=\"https://postgr.es/c/75680c3d8\">\u00a7</a></p>", "text": "\u79fb\u9664\u4e00\u4e9b\u672a\u4f7f\u7528\u7684 SPI \u5b8f\uff08Bharath Rupireddy\uff09\u00a7", "title": "\u79fb\u9664\u4e00\u4e9b\u672a\u4f7f\u7528\u7684 SPI \u5b8f", "commits": ["75680c3d8"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "32667365507ac2e744afee032cf8e3036c1d483ae7d3da7b1b9b9d4c2c0f8083", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["75680c3d8"]], "identity_text": "Remove some unused SPI macros (Bharath Rupireddy)", "commit_aliases": ["75680c3d8"], "source_commits": ["75680c3d8"], "source_entry_id": "17.0/changes/154", "db_id": "85f03f7e098e7244c189f0de6da4683f", "patch_ids": ["8eb02210c953013409d5689d896ae0e9"], "statement_hash": "f3d1a646d47946f1e78824bc03ada29979b7403151fa61c3ea5272d498053d75", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-400b3d20a9f78618", "migration": false}, {"id": "17.0-17bbfb671e78c3ef", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/17/sql-alteroperator.html\" title=\"ALTER OPERATOR\"><code>ALTER OPERATOR</code></a> \u8bbe\u7f6e\u66f4\u591a\u4f18\u5316\u5c5e\u6027\uff08Tommy Pavlicek\uff09<a href=\"https://postgr.es/c/2b5154bea\">\u00a7</a></p>\n<p>\u8fd9\u5bf9\u6269\u5c55\u5f88\u6709\u7528\u3002</p>", "text": "\u5141\u8bb8 ALTER OPERATOR \u8bbe\u7f6e\u66f4\u591a\u4f18\u5316\u5c5e\u6027\uff08Tommy Pavlicek\uff09\u00a7 \u8fd9\u5bf9\u6269\u5c55\u5f88\u6709\u7528\u3002", "title": "\u5141\u8bb8 ALTER OPERATOR \u8bbe\u7f6e\u66f4\u591a\u4f18\u5316\u5c5e\u6027", "commits": ["2b5154bea"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "147eff46f4e56400f3e7013a5fcd6170a1e254db439cb2e6040367f7767d5105", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["2b5154bea"]], "identity_text": "Allow ALTER OPERATOR to set more optimization attributes (Tommy Pavlicek) This is useful for extensions.", "commit_aliases": ["2b5154bea"], "source_commits": ["2b5154bea"], "source_entry_id": "17.0/changes/155", "db_id": "f77fab23da18005f8e03d14d7c6c5b7a", "patch_ids": ["83b25dff27e72215ff6388400399430e"], "statement_hash": "5369619e8fafe7aab9c1a1d35d794b1c2d2f6e8a6f88922a3229d202113d0c5f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-17bbfb671e78c3ef", "migration": false}, {"id": "17.0-7c44dc6fa66788c5", "cves": [], "html": "<p>\u5141\u8bb8\u6269\u5c55\u5b9a\u4e49<a href=\"/docs/17/xfunc-c.html#XFUNC-ADDIN-WAIT-EVENTS\" title=\"36.10.12.\u00a0\u81ea\u5b9a\u4e49\u7b49\u5f85\u4e8b\u4ef6\">\u81ea\u5b9a\u4e49\u7b49\u5f85\u4e8b\u4ef6</a>\uff08Masahiro Ikeda\uff09<a href=\"https://postgr.es/c/c9af05465\">\u00a7</a> <a href=\"https://postgr.es/c/c8e318b1b\">\u00a7</a> <a href=\"https://postgr.es/c/d61f2538a\">\u00a7</a> <a href=\"https://postgr.es/c/c789f0f6c\">\u00a7</a></p>\n<p>\u5df2\u4e3a <span><a href=\"/docs/17/postgres-fdw.html\" title=\"F.36.\u00a0postgres_fdw \u2014 \u8bbf\u95ee\u5b58\u50a8\u5728\u5916\u90e8 PostgreSQL \u670d\u52a1\u5668\u4e2d\u7684\u6570\u636e\">postgres_fdw</a></span> \u548c <span><a href=\"/docs/17/dblink.html\" title=\"F.11.\u00a0dblink \u2014 \u8fde\u63a5\u5230\u5176\u4ed6 PostgreSQL \u6570\u636e\u5e93\">dblink</a></span> \u6dfb\u52a0\u81ea\u5b9a\u4e49\u7b49\u5f85\u4e8b\u4ef6\u3002</p>", "text": "\u5141\u8bb8\u6269\u5c55\u5b9a\u4e49\u81ea\u5b9a\u4e49\u7b49\u5f85\u4e8b\u4ef6\uff08Masahiro Ikeda\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u5df2\u4e3a postgres_fdw \u548c dblink \u6dfb\u52a0\u81ea\u5b9a\u4e49\u7b49\u5f85\u4e8b\u4ef6\u3002", "title": "\u5141\u8bb8\u6269\u5c55\u5b9a\u4e49\u81ea\u5b9a\u4e49\u7b49\u5f85\u4e8b\u4ef6", "commits": ["c789f0f6c", "c8e318b1b", "c9af05465", "d61f2538a"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "3e18bb054099b012337f229bfd16abbbe7cd8ac7aa3e1f71d01fd0b4a9369325", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["c789f0f6c"], ["c8e318b1b"], ["c9af05465"], ["d61f2538a"]], "identity_text": "Allow extensions to define custom wait events (Masahiro Ikeda) Custom wait events have been added to postgres-fdw and dblink .", "commit_aliases": ["c789f0f6c", "c8e318b1b", "c9af05465", "d61f2538a"], "source_commits": ["c789f0f6c", "c8e318b1b", "c9af05465", "d61f2538a"], "source_entry_id": "17.0/changes/156", "db_id": "d63e44947b60988f27614175b5661fa5", "patch_ids": ["551282438ee8bf65b5ce0ff14356c112", "685609f4c41ca3f1d73cec33965d58de", "c3c2943815691b7f043da5e16bf4734b", "e8405f8c4ac1936e911a805cbc0c70d9"], "statement_hash": "a8ce5486d4288a9668f620699027d38aab125e45c30eef32f07c3765898aaf7e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-7c44dc6fa66788c5", "migration": false}, {"id": "17.0-00fe19218934a128", "cves": [], "html": "<p>\u6dfb\u52a0 <span><a href=\"/docs/17/pgbuffercache.html\" title=\"F.25.\u00a0pg_buffercache \u2014 \u68c0\u67e5 PostgreSQL \u7f13\u51b2\u533a\u7f13\u5b58\u72b6\u6001\">pg_buffercache</a></span> \u51fd\u6570 <code>pg_buffercache_evict()</code>\uff0c\u4ee5\u5141\u8bb8\u9010\u51fa\u5171\u4eab\u7f13\u51b2\u533a\uff08Palak Chaturvedi, Thomas Munro\uff09<a href=\"https://postgr.es/c/13453eedd\">\u00a7</a></p>\n<p>\u8fd9\u5bf9\u6d4b\u8bd5\u5f88\u6709\u7528\u3002</p>", "text": "\u6dfb\u52a0 pg_buffercache \u51fd\u6570 pg_buffercache_evict()\uff0c\u4ee5\u5141\u8bb8\u9010\u51fa\u5171\u4eab\u7f13\u51b2\u533a\uff08Palak Chaturvedi, Thomas Munro\uff09\u00a7 \u8fd9\u5bf9\u6d4b\u8bd5\u5f88\u6709\u7528\u3002", "title": "\u6dfb\u52a0 pg_buffercache \u51fd\u6570 pg_buffercache_evict()\uff0c\u4ee5\u5141\u8bb8\u9010\u51fa\u5171\u4eab\u7f13\u51b2\u533a", "commits": ["13453eedd"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-MODULES", "source_hash": "25fb5ba59857633a6ef736bcfdd9e285cb3152201b9b8d65bf8306e2092aad24", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["13453eedd"]], "identity_text": "Add pgbuffercache function pg_buffercache_evict() to allow shared buffer eviction (Palak Chaturvedi, Thomas Munro) This is useful for testing.", "commit_aliases": ["13453eedd"], "source_commits": ["13453eedd"], "source_entry_id": "17.0/changes/157", "db_id": "61ff3b352b52e9e18577a69aead34ffe", "patch_ids": ["843c758478199eec5fc56a1397918d2f"], "statement_hash": "5e43907c0ac2702df89595e19c2322444d4bf17b01e71c309f06b9aaf0ae3785", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-00fe19218934a128", "migration": false}, {"id": "17.0-429b01a8f50d3937", "cves": [], "html": "<p>\u5c06 <span>pg_stat_statements</span> \u4e2d <a href=\"/docs/17/sql-call.html\" title=\"CALL\"><code>CALL</code></a> \u7684\u53c2\u6570\u66ff\u6362\u4e3a\u5360\u4f4d\u7b26\uff08Sami Imseih\uff09<a href=\"https://postgr.es/c/11c34b342\">\u00a7</a></p>", "text": "\u5c06 pg_stat_statements \u4e2d CALL \u7684\u53c2\u6570\u66ff\u6362\u4e3a\u5360\u4f4d\u7b26\uff08Sami Imseih\uff09\u00a7", "title": "\u5c06 pg_stat_statements \u4e2d CALL \u7684\u53c2\u6570\u66ff\u6362\u4e3a\u5360\u4f4d\u7b26", "commits": ["11c34b342"], "section": "\u9644\u52a0\u6a21\u5757 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS", "source_hash": "90c50c720ef38c7ba0b62ef3aedb2e049a0351d05cee703b97d5942d5f84fb82", "section_path": ["\u9644\u52a0\u6a21\u5757", "pg_stat_statements"], "commit_groups": [["11c34b342"]], "identity_text": "Replace CALL parameters in pg_stat_statements with placeholders (Sami Imseih)", "commit_aliases": ["11c34b342"], "source_commits": ["11c34b342"], "source_entry_id": "17.0/changes/158", "db_id": "829435fcd9a5204bcfac577c982e3469", "patch_ids": ["87f5e7d8ff2e863ba43e78ee25116ca8"], "statement_hash": "cc9275113678c3de5e0d531bb7a7a3e8bd0eb99035fef99019d8ced640b7bbc1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-429b01a8f50d3937", "migration": false}, {"id": "17.0-7b19fbc72a1eca37", "cves": [], "html": "<p>\u5c06\u5b58\u50a8\u5728 <code>pg_stat_statements</code> \u4e2d\u7684\u4fdd\u5b58\u70b9\u540d\u79f0\u66ff\u6362\u4e3a\u5360\u4f4d\u7b26\uff08Greg Sabino Mullane\uff09<a href=\"https://postgr.es/c/31de7e60d\">\u00a7</a></p>\n<p>\u8fd9\u4f1a\u5927\u5e45\u51cf\u5c11\u8bb0\u5f55 <a href=\"/docs/17/sql-savepoint.html\" title=\"SAVEPOINT\"><code>SAVEPOINT</code></a>\u3001<a href=\"/docs/17/sql-release-savepoint.html\" title=\"RELEASE SAVEPOINT\"><code>RELEASE SAVEPOINT</code></a> \u548c <a href=\"/docs/17/sql-rollback-to.html\" title=\"ROLLBACK TO SAVEPOINT\"><code>ROLLBACK TO SAVEPOINT</code></a> \u547d\u4ee4\u6240\u9700\u7684\u6761\u76ee\u6570\u91cf\u3002</p>", "text": "\u5c06\u5b58\u50a8\u5728 pg_stat_statements \u4e2d\u7684\u4fdd\u5b58\u70b9\u540d\u79f0\u66ff\u6362\u4e3a\u5360\u4f4d\u7b26\uff08Greg Sabino Mullane\uff09\u00a7 \u8fd9\u4f1a\u5927\u5e45\u51cf\u5c11\u8bb0\u5f55 SAVEPOINT\u3001RELEASE SAVEPOINT \u548c ROLLBACK TO SAVEPOINT \u547d\u4ee4\u6240\u9700\u7684\u6761\u76ee\u6570\u91cf\u3002", "title": "\u5c06\u5b58\u50a8\u5728 pg_stat_statements \u4e2d\u7684\u4fdd\u5b58\u70b9\u540d\u79f0\u66ff\u6362\u4e3a\u5360\u4f4d\u7b26", "commits": ["31de7e60d"], "section": "\u9644\u52a0\u6a21\u5757 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS", "source_hash": "c50057061161192a2379d4bfbff725627b34cd605c895a85c386ec953ee4420f", "section_path": ["\u9644\u52a0\u6a21\u5757", "pg_stat_statements"], "commit_groups": [["31de7e60d"]], "identity_text": "Replace savepoint names stored in pg_stat_statements with placeholders (Greg Sabino Mullane) This greatly reduces the number of entries needed to record SAVEPOINT, RELEASE SAVEPOINT, and ROLLBACK TO SAVEPOINT commands.", "commit_aliases": ["31de7e60d"], "source_commits": ["31de7e60d"], "source_entry_id": "17.0/changes/159", "db_id": "2a21b91a16c60f8e844182a824561a87", "patch_ids": ["e60205f9422d47db4fe5f9b3f589b3f2"], "statement_hash": "bd64485b74b9e153addf621c9eba9c447fbc0b45f5bbe26fab1e255398ea8edd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-7b19fbc72a1eca37", "migration": false}, {"id": "17.0-d2115aec8d497c4a", "cves": [], "html": "<p>\u5c06\u5b58\u50a8\u5728 <code>pg_stat_statements</code> \u4e2d\u7684\u4e24\u9636\u6bb5\u63d0\u4ea4 <acronym>GID</acronym> \u66ff\u6362\u4e3a\u5360\u4f4d\u7b26\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/638d42a3c\">\u00a7</a></p>\n<p>\u8fd9\u4f1a\u5927\u5e45\u51cf\u5c11\u8bb0\u5f55 <a href=\"/docs/17/sql-prepare-transaction.html\" title=\"PREPARE TRANSACTION\"><code>PREPARE TRANSACTION</code></a>\u3001<a href=\"/docs/17/sql-commit-prepared.html\" title=\"COMMIT PREPARED\"><code>COMMIT PREPARED</code></a> \u548c <a href=\"/docs/17/sql-rollback-prepared.html\" title=\"ROLLBACK PREPARED\"><code>ROLLBACK PREPARED</code></a> \u6240\u9700\u7684\u6761\u76ee\u6570\u91cf\u3002</p>", "text": "\u5c06\u5b58\u50a8\u5728 pg_stat_statements \u4e2d\u7684\u4e24\u9636\u6bb5\u63d0\u4ea4 GID \u66ff\u6362\u4e3a\u5360\u4f4d\u7b26\uff08Michael Paquier\uff09\u00a7 \u8fd9\u4f1a\u5927\u5e45\u51cf\u5c11\u8bb0\u5f55 PREPARE TRANSACTION\u3001COMMIT PREPARED \u548c ROLLBACK PREPARED \u6240\u9700\u7684\u6761\u76ee\u6570\u91cf\u3002", "title": "\u5c06\u5b58\u50a8\u5728 pg_stat_statements \u4e2d\u7684\u4e24\u9636\u6bb5\u63d0\u4ea4 GID \u66ff\u6362\u4e3a\u5360\u4f4d\u7b26", "commits": ["638d42a3c"], "section": "\u9644\u52a0\u6a21\u5757 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS", "source_hash": "6678359f9464015d398365b004a42f49431b6266264ad35b6ed6fc67b612a7e1", "section_path": ["\u9644\u52a0\u6a21\u5757", "pg_stat_statements"], "commit_groups": [["638d42a3c"]], "identity_text": "Replace the two-phase commit GIDs stored in pg_stat_statements with placeholders (Michael Paquier) This greatly reduces the number of entries needed to record PREPARE TRANSACTION, COMMIT PREPARED, and ROLLBACK PREPARED.", "commit_aliases": ["638d42a3c"], "source_commits": ["638d42a3c"], "source_entry_id": "17.0/changes/160", "db_id": "b33f56a77ff25930b3040bfc942613b5", "patch_ids": ["57b4c7be3c57b33edc95595f13341b10"], "statement_hash": "9fa3b83bd74b30a68b6780fde124f414b7aee39d0beb27daa6a9bde01041969f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-d2115aec8d497c4a", "migration": false}, {"id": "17.0-4bb3e59515088f2f", "cves": [], "html": "<p>\u5728 <code>pg_stat_statements</code> \u4e2d\u8ddf\u8e2a <a href=\"/docs/17/sql-deallocate.html\" title=\"DEALLOCATE\"><code>DEALLOCATE</code></a>\uff08Dagfinn Ilmari Manns\u00e5ker, Michael Paquier\uff09<a href=\"https://postgr.es/c/bb45156f3\">\u00a7</a></p>\n<p><code>DEALLOCATE</code> \u540d\u79f0\u5728 <code>pg_stat_statements</code> \u4e2d\u5b58\u50a8\u4e3a\u5360\u4f4d\u7b26\u3002</p>", "text": "\u5728 pg_stat_statements \u4e2d\u8ddf\u8e2a DEALLOCATE\uff08Dagfinn Ilmari Manns\u00e5ker, Michael Paquier\uff09\u00a7 DEALLOCATE \u540d\u79f0\u5728 pg_stat_statements \u4e2d\u5b58\u50a8\u4e3a\u5360\u4f4d\u7b26\u3002", "title": "\u5728 pg_stat_statements \u4e2d\u8ddf\u8e2a DEALLOCATE", "commits": ["bb45156f3"], "section": "\u9644\u52a0\u6a21\u5757 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS", "source_hash": "a592f4b812f8966cda97db262c24f01e7c1c6a4e472ff15446e81e012657ee1b", "section_path": ["\u9644\u52a0\u6a21\u5757", "pg_stat_statements"], "commit_groups": [["bb45156f3"]], "identity_text": "Track DEALLOCATE in pg_stat_statements (Dagfinn Ilmari Manns\u00e5ker, Michael Paquier) DEALLOCATE names are stored in pg_stat_statements as placeholders.", "commit_aliases": ["bb45156f3"], "source_commits": ["bb45156f3"], "source_entry_id": "17.0/changes/161", "db_id": "5951b4d43885e4df40c6caf1c30a6ea4", "patch_ids": ["056d4a0cbce0e0223cbd0767af1dda9e"], "statement_hash": "f2259aba30c6564e7836765ac064b24dc77c1d6b0cfd71f91b1c1e8b16971140", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-4bb3e59515088f2f", "migration": false}, {"id": "17.0-843394b54569c073", "cves": [], "html": "<p>\u4e3a <code>pg_stat_statements</code> \u6dfb\u52a0\u672c\u5730 I/O \u5757\u8bfb/\u5199\u8017\u65f6\u7edf\u8ba1\u5217\uff08Nazir Bilal Yavuz\uff09<a href=\"https://postgr.es/c/295c36c0c\">\u00a7</a> <a href=\"https://postgr.es/c/5147ab1dd\">\u00a7</a></p>\n<p>\u65b0\u5217\u662f <code>local_blk_read_time</code> \u548c <code>local_blk_write_time</code>\u3002</p>", "text": "\u4e3a pg_stat_statements \u6dfb\u52a0\u672c\u5730 I/O \u5757\u8bfb/\u5199\u8017\u65f6\u7edf\u8ba1\u5217\uff08Nazir Bilal Yavuz\uff09\u00a7 \u00a7 \u65b0\u5217\u662f local_blk_read_time \u548c local_blk_write_time\u3002", "title": "\u4e3a pg_stat_statements \u6dfb\u52a0\u672c\u5730 I/O \u5757\u8bfb/\u5199\u8017\u65f6\u7edf\u8ba1\u5217", "commits": ["295c36c0c", "5147ab1dd"], "section": "\u9644\u52a0\u6a21\u5757 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS", "source_hash": "b6c1e6dfc39523b1bbc567f56280f7d73996ef76d15743118b7affb6a69bf8e3", "section_path": ["\u9644\u52a0\u6a21\u5757", "pg_stat_statements"], "commit_groups": [["295c36c0c"], ["5147ab1dd"]], "identity_text": "Add local I/O block read/write timing statistics columns of pg_stat_statements (Nazir Bilal Yavuz) The new columns are local_blk_read_time and local_blk_write_time.", "commit_aliases": ["295c36c0c", "5147ab1dd"], "source_commits": ["295c36c0c", "5147ab1dd"], "source_entry_id": "17.0/changes/162", "db_id": "a487787ae801d826d7c42eb4f15dd2e9", "patch_ids": ["5bbfcb7876ccc999e0bc578d10ccf3d1", "fed9aec98df0f1a466087cc808bd62be"], "statement_hash": "278c2b09b36f008be4c98de8c051e5fe1acff3e3f2e90db73286bc0b444f7454", "relations": [{"rule": 2, "type": "related", "target": "3a8f2092e95f906fe2ba774157ee86a4", "evidence": {"same_day": true, "patch_ids": ["5bbfcb7876ccc999e0bc578d10ccf3d1"], "ambiguous_patch_ids": ["5bbfcb7876ccc999e0bc578d10ccf3d1"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-843394b54569c073", "migration": false}, {"id": "17.0-0a15ab0156dc13fd", "cves": [], "html": "<p>\u4e3a <code>pg_stat_statements</code> \u6dfb\u52a0 <acronym>JIT</acronym> <code>deform_counter</code> \u7ec6\u8282\uff08Dmitry Dolgov\uff09<a href=\"https://postgr.es/c/5a3423ad8\">\u00a7</a></p>", "text": "\u4e3a pg_stat_statements \u6dfb\u52a0 JIT deform_counter \u7ec6\u8282\uff08Dmitry Dolgov\uff09\u00a7", "title": "\u4e3a pg_stat_statements \u6dfb\u52a0 JIT deform_counter \u7ec6\u8282", "commits": ["5a3423ad8"], "section": "\u9644\u52a0\u6a21\u5757 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS", "source_hash": "aa717c9cf9462f74ba98dab59847f2045b8215f349a843cb548b29b2a845da97", "section_path": ["\u9644\u52a0\u6a21\u5757", "pg_stat_statements"], "commit_groups": [["5a3423ad8"]], "identity_text": "Add JIT deform_counter details to pg_stat_statements (Dmitry Dolgov)", "commit_aliases": ["5a3423ad8"], "source_commits": ["5a3423ad8"], "source_entry_id": "17.0/changes/163", "db_id": "cfc33f9d4d45dd958c4e7f050c7845a6", "patch_ids": ["69b5f4ac2075731de6ade1ebfae6e6c3"], "statement_hash": "e9e315333b7c76b331b16fb18be5f5185d899d1ff9058a43131cfdb7073d9ccf", "relations": [{"rule": 2, "type": "related", "target": "14f807d67bbb33e16136e47a0d977573", "evidence": {"same_day": true, "patch_ids": ["69b5f4ac2075731de6ade1ebfae6e6c3"], "ambiguous_patch_ids": ["69b5f4ac2075731de6ade1ebfae6e6c3"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-0a15ab0156dc13fd", "migration": false}, {"id": "17.0-e35b1e500c1f3cd8-1", "cves": [], "html": "<p>\u4e3a <code>pg_stat_statements_reset()</code> \u6dfb\u52a0\u53ef\u9009\u7684\u7b2c\u56db\u4e2a\u53c2\u6570\uff08<code>minmax_only</code>\uff09\uff0c\u4ee5\u5141\u8bb8\u4ec5\u91cd\u7f6e\u6700\u5c0f/\u6700\u5927\u7edf\u8ba1\u4fe1\u606f\uff08Andrei Zubkov\uff09<a href=\"https://postgr.es/c/dc9f8a798\">\u00a7</a></p>\n<p>\u8be5\u53c2\u6570\u9ed8\u8ba4\u4e3a <code>false</code>\u3002</p>", "text": "\u4e3a pg_stat_statements_reset() \u6dfb\u52a0\u53ef\u9009\u7684\u7b2c\u56db\u4e2a\u53c2\u6570\uff08minmax_only\uff09\uff0c\u4ee5\u5141\u8bb8\u4ec5\u91cd\u7f6e\u6700\u5c0f/\u6700\u5927\u7edf\u8ba1\u4fe1\u606f\uff08Andrei Zubkov\uff09\u00a7 \u8be5\u53c2\u6570\u9ed8\u8ba4\u4e3a false\u3002", "title": "\u4e3a pg_stat_statements_reset() \u6dfb\u52a0\u53ef\u9009\u7684\u7b2c\u56db\u4e2a\u53c2\u6570\uff08minmax_only\uff09\uff0c\u4ee5\u5141\u8bb8\u4ec5\u91cd\u7f6e\u6700\u5c0f/\u6700\u5927\u7edf\u8ba1\u4fe1\u606f", "commits": ["dc9f8a798"], "section": "\u9644\u52a0\u6a21\u5757 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS", "source_hash": "aa11a76de656b08b40e0985b99fe88255608b5a625ea489eb21fc718bfbd828f", "section_path": ["\u9644\u52a0\u6a21\u5757", "pg_stat_statements"], "commit_groups": [["dc9f8a798"]], "identity_text": "Add optional fourth argument (minmax_only) to pg_stat_statements_reset() to allow for the resetting of only min/max statistics (Andrei Zubkov) This argument defaults to false.", "commit_aliases": ["dc9f8a798"], "source_commits": ["dc9f8a798"], "source_entry_id": "17.0/changes/164", "db_id": "bc79670356131e39aad8d56b8b59d119", "patch_ids": ["db7ed1ad22868410847bd9e5deaf33a5"], "statement_hash": "1e200afd7116407e1b97f88b968e3951d1029d4f7f611df985043c99d4d4df8b", "relations": [{"rule": 2, "type": "related", "target": "93ab538cead5b7f1878a5a35ff9096e8", "evidence": {"same_day": true, "patch_ids": ["db7ed1ad22868410847bd9e5deaf33a5"], "ambiguous_patch_ids": ["db7ed1ad22868410847bd9e5deaf33a5"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-e35b1e500c1f3cd8-1", "migration": false}, {"id": "17.0-e35b1e500c1f3cd8-2", "cves": [], "html": "<p>\u4e3a <code>pg_stat_statements</code> \u6dfb\u52a0\u5217 <code>stats_since</code> \u548c <code>minmax_stats_since</code>\uff0c\u7528\u4e8e\u8ddf\u8e2a\u6761\u76ee\u521b\u5efa\u65f6\u95f4\u4ee5\u53ca\u4e0a\u6b21\u6700\u5c0f/\u6700\u5927\u503c\u91cd\u7f6e\u65f6\u95f4\uff08Andrei Zubkov\uff09<a href=\"https://postgr.es/c/dc9f8a798\">\u00a7</a></p>", "text": "\u4e3a pg_stat_statements \u6dfb\u52a0\u5217 stats_since \u548c minmax_stats_since\uff0c\u7528\u4e8e\u8ddf\u8e2a\u6761\u76ee\u521b\u5efa\u65f6\u95f4\u4ee5\u53ca\u4e0a\u6b21\u6700\u5c0f/\u6700\u5927\u503c\u91cd\u7f6e\u65f6\u95f4\uff08Andrei Zubkov\uff09\u00a7", "title": "\u4e3a pg_stat_statements \u6dfb\u52a0\u5217 stats_since \u548c minmax_stats_since\uff0c\u7528\u4e8e\u8ddf\u8e2a\u6761\u76ee\u521b\u5efa\u65f6\u95f4\u4ee5\u53ca\u4e0a\u6b21\u6700\u5c0f/\u6700\u5927\u503c\u91cd\u7f6e\u65f6\u95f4", "commits": ["dc9f8a798"], "section": "\u9644\u52a0\u6a21\u5757 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS", "source_hash": "78310acbc382ecef0bd777a01f5ac39f0d3565334f68fb387ff6a0e10c7dfeaf", "section_path": ["\u9644\u52a0\u6a21\u5757", "pg_stat_statements"], "commit_groups": [["dc9f8a798"]], "identity_text": "Add pg_stat_statements columns stats_since and minmax_stats_since to track entry creation time and last min/max reset time (Andrei Zubkov)", "commit_aliases": ["dc9f8a798"], "source_commits": ["dc9f8a798"], "source_entry_id": "17.0/changes/165", "db_id": "93ab538cead5b7f1878a5a35ff9096e8", "patch_ids": ["db7ed1ad22868410847bd9e5deaf33a5"], "statement_hash": "a1116325aeacc525e218e293d407fa884f808e5cadf4ef8a70b574a33284f053", "relations": [{"rule": 2, "type": "related", "target": "bc79670356131e39aad8d56b8b59d119", "evidence": {"same_day": true, "patch_ids": ["db7ed1ad22868410847bd9e5deaf33a5"], "ambiguous_patch_ids": ["db7ed1ad22868410847bd9e5deaf33a5"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=17.0#17.0-e35b1e500c1f3cd8-2", "migration": false}], "initial_entry_count": 182, "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/17/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/17/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/17/upgrading.html\" title=\"18.6.\u00a0\u5347\u7ea7 PostgreSQL \u96c6\u7c07\">\u7b2c\u00a018.6\u00a0\u8282</a>\u3002</p>\n<p>\u7248\u672c 17 \u5305\u542b\u8bb8\u591a\u53ef\u80fd\u5f71\u54cd\u4e0e\u4ee5\u524d\u7248\u672c\u517c\u5bb9\u6027\u7684\u66f4\u6539\u3002\u8bf7\u6ce8\u610f\u4ee5\u4e0b\u4e0d\u517c\u5bb9\u9879\uff1a</p>\n<div>\n</div>", "category_filters": [{"key": "feature", "label": "\u65b0\u529f\u80fd", "count": 154}, {"key": "bugfix", "label": "BUG \u4fee\u590d", "count": 2}, {"key": "security", "label": "\u5b89\u5168\u76f8\u5173", "count": 0}, {"key": "performance", "label": "\u6027\u80fd\u6539\u8fdb", "count": 9}, {"key": "compatibility", "label": "\u517c\u5bb9\u6027\u53d8\u5316", "count": 17}, {"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": "17.10", "fixed_url": "/docs/compare/?release=17.10", "affected": "17", "component": "core server", "mentions": [{"build": "17.10", "version": "17.10", "title": "\u5728\u903b\u8f91\u590d\u5236\u6e90\u68c0\u67e5\u4e2d\u6b63\u786e\u5f15\u7528\u5bf9\u8c61\u540d\u79f0", "url": "/docs/compare/?release=17.10#17.10-fdd0ba1867f4cdc1"}], "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": "17.10", "fixed_url": "/docs/compare/?release=17.10", "affected": "17", "component": "contrib module", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u907f\u514d contrib/refint \u7684 check_foreign_key() \u4e2d\u89e3\u5f15\u7528 NULL \u6307\u9488", "url": "/docs/compare/?release=17.11#17.11-3c3f973709d9fe9a"}, {"build": "17.10", "version": "17.10", "title": "\u9632\u6b62 contrib/spi \u4e2d\u7684 SQL \u6ce8\u5165\u548c\u7f13\u51b2\u533a\u8d8a\u754c\u5199", "url": "/docs/compare/?release=17.10#17.10-24a0ab68af146f7d"}], "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": "17.10", "fixed_url": "/docs/compare/?release=17.10", "affected": "17", "component": "core server", "mentions": [{"build": "17.10", "version": "17.10", "title": "\u9632\u6b62\u5904\u7406\u542f\u52a8\u5305\u65f6\u53d1\u751f\u65e0\u754c\u9012\u5f52", "url": "/docs/compare/?release=17.10#17.10-11e46f0b0085f2d6"}], "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": "17.10", "fixed_url": "/docs/compare/?release=17.10", "affected": "17", "component": "core server", "mentions": [{"build": "17.10", "version": "17.10", "title": "\u5728\u8ba4\u8bc1\u4ee3\u7801\u4e2d\u4f7f\u7528\u65f6\u5e8f\u5b89\u5168\u7684\u5b57\u7b26\u4e32\u6bd4\u8f83", "url": "/docs/compare/?release=17.10#17.10-61c7a5bccb286bea"}], "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": "17.10", "fixed_url": "/docs/compare/?release=17.10", "affected": "17", "component": "client", "mentions": [{"build": "17.10", "version": "17.10", "title": "\u5c06 PQfn() \u6807\u8bb0\u4e3a\u4e0d\u5b89\u5168\uff0c\u5e76\u907f\u514d\u5728 libpq \u5185\u90e8\u4f7f\u7528\u5b83", "url": "/docs/compare/?release=17.10#17.10-a3a6ffe2e68f9c70"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6476", "title": "PostgreSQL pg_createsubscriber allows SQL injection via subscription name", "url": "https://www.postgresql.org/support/security/CVE-2026-6476/", "score": 7.2, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "description": "SQL injection in PostgreSQL pg_createsubscriber allows an attacker with pg_create_subscription rights to execute arbitrary SQL as a superuser. The attack takes effect when pg_createsubscriber next runs. Within major versions 17 and 18, minor versions before PostgreSQL 18.4 and 17.10 are affected. Versions before PostgreSQL 17 are unaffected.", "description_language": "en", "fixed": "17.10", "fixed_url": "/docs/compare/?release=17.10", "affected": "17", "component": "client", "mentions": [{"build": "17.10", "version": "17.10", "title": "\u5728 pg_createsubscriber \u4e2d\u6b63\u786e\u4e3a\u8ba2\u9605\u540d\u79f0\u52a0\u5f15\u53f7", "url": "/docs/compare/?release=17.10#17.10-927543ba721f9720"}], "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": "17.10", "fixed_url": "/docs/compare/?release=17.10", "affected": "17", "component": "client", "mentions": [{"build": "17.10", "version": "17.10", "title": "\u9632\u6b62 pg_basebackup \u548c pg_rewind \u4e2d\u7684\u8def\u5f84\u904d\u5386", "url": "/docs/compare/?release=17.10#17.10-91d502adb9e9905a"}], "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": "17.10", "fixed_url": "/docs/compare/?release=17.10", "affected": "17", "component": "core server", "mentions": [{"build": "17.10", "version": "17.10", "title": "\u9632\u8303 timeofday() \u548c pg_strftime() \u4e2d\u7684\u6076\u610f\u65f6\u533a\u540d", "url": "/docs/compare/?release=17.10#17.10-f68835d296474e15"}], "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": "17.10", "fixed_url": "/docs/compare/?release=17.10", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u4fee\u590d PL/Perl \u548c PL/Tcl \u5185\u5b58\u5206\u914d\u8ba1\u7b97\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=17.11#17.11-7026dc1b76714418"}, {"build": "17.10", "version": "17.10", "title": "\u4fee\u590d\u5185\u5b58\u5206\u914d\u8ba1\u7b97\u4e2d\u7684\u591a\u5904\u6574\u6570\u6ea2\u51fa\u95ee\u9898", "url": "/docs/compare/?release=17.10#17.10-a0bf50b47f7c6ba2"}, {"build": "17.10", "version": "17.10", "title": "\u62d2\u7edd ts_headline() \u4e2d\u8fc7\u957f\u7684\u9009\u9879", "url": "/docs/compare/?release=17.10#17.10-b66b265350df29d2"}, {"build": "17.10", "version": "17.10", "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=17.10#17.10-992f2d3fb9146406"}, {"build": "17.10", "version": "17.10", "title": "\u9632\u8303 contrib/ltree \u7684 lquery \u7c7b\u578b\u4e2d\u8fc7\u957f\u7684\u503c", "url": "/docs/compare/?release=17.10#17.10-ac24cc16660e8737"}], "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": "17.10", "fixed_url": "/docs/compare/?release=17.10", "affected": "17", "component": "core server", "mentions": [{"build": "17.10", "version": "17.10", "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=17.10#17.10-7b894433ca4b5fde"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "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=17.11#17.11-ccab0c809e14d029"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u5728\u6b64\u524d\u6f0f\u68c0\u7684\u573a\u666f\u4e2d\u68c0\u67e5\u6570\u636e\u7c7b\u578b\u7684 USAGE \u6743\u9650", "url": "/docs/compare/?release=17.11#17.11-575634f97737603c"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "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=17.11#17.11-50a00c5a01592c04"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "client", "mentions": [{"build": "17.11", "version": "17.11", "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=17.11#17.11-8dd81897faaffe37"}], "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": "17.8", "fixed_url": "/docs/compare/?release=17.8", "affected": "17", "component": "core server", "mentions": [{"build": "17.9", "version": "17.9", "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=17.9#17.9-24d7e69f6ec0ae9a"}, {"build": "17.8", "version": "17.8", "title": "\u4fee\u590d\u591a\u5b57\u8282\u5b57\u7b26\u957f\u5ea6\u9a8c\u8bc1\u4e0d\u5145\u5206\u7684\u95ee\u9898", "url": "/docs/compare/?release=17.8#17.8-0378679c62701a5e"}], "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": "17.8", "fixed_url": "/docs/compare/?release=17.8", "affected": "17", "component": "contrib module", "mentions": [{"build": "17.8", "version": "17.8", "title": "\u4fee\u590d contrib/pgcrypto PGP \u89e3\u5bc6\u51fd\u6570\u4e2d\u7684\u7f13\u51b2\u533a\u6ea2\u51fa\u95ee\u9898", "url": "/docs/compare/?release=17.8#17.8-ad02898fb1831e36"}], "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": "17.8", "fixed_url": "/docs/compare/?release=17.8", "affected": "17", "component": "contrib module", "mentions": [{"build": "17.8", "version": "17.8", "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=17.8#17.8-66e960e22441cfaa"}], "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": "17.8", "fixed_url": "/docs/compare/?release=17.8", "affected": "17", "component": "core server", "mentions": [{"build": "17.8", "version": "17.8", "title": "\u9632\u6b62 oidvector/int2vector \u51fa\u73b0\u610f\u5916\u7684\u7ef4\u5ea6", "url": "/docs/compare/?release=17.8#17.8-a1109c4f32ae03d0"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "client", "mentions": [{"build": "17.11", "version": "17.11", "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=17.11#17.11-f6aaa44b60ea5479"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "client", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u4e0d\u8981\u5bf9 psql \u7684 \\unrestrict \u547d\u4ee4\u53c2\u6570\u6267\u884c\u53cd\u5f15\u53f7\u6269\u5c55", "url": "/docs/compare/?release=17.11#17.11-7f417b32587acff8"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u589e\u5f3a ascii() \u51fd\u6570\u5bf9\u65e0\u6548\u8f93\u5165\u7684\u9632\u62a4", "url": "/docs/compare/?release=17.11#17.11-e6de3d1ea5ee5a52"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "client", "mentions": [{"build": "17.11", "version": "17.11", "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=17.11#17.11-368d04431d80a7fd"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u4ea4\u53c9\u68c0\u67e5\u8fd0\u884c EXECUTE \u6216 FETCH \u7684 portal \u7684\u8f93\u51fa\u884c\u7c7b\u578b", "url": "/docs/compare/?release=17.11#17.11-b9a0ccf8cc602cca"}], "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": "17.11", "version": "17.11", "title": "\u4fee\u590d pg_restore_attribute_stats() \u5bf9\u591a\u8303\u56f4\u7c7b\u578b\u7684\u5904\u7406", "url": "/docs/compare/?release=17.11#17.11-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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "contrib module", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u4fee\u590d contrib/fuzzystrmatch \u7684 levenshtein() \u548c levenshtein_less_equal() \u51fd\u6570\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=17.11#17.11-8ee281616fb9fd49"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u9006\u89e3\u6790 EXTRACT() \u51fd\u6570\u8c03\u7528\u65f6\uff0c\u6309\u9700\u4e3a\u5b57\u6bb5\u540d\u52a0\u5f15\u53f7", "url": "/docs/compare/?release=17.11#17.11-2bafbd49437d6dde"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u5728\u76f4\u63a5 SSL \u8fde\u63a5\u4e4b\u540e\u62d2\u7edd GSSEncRequest", "url": "/docs/compare/?release=17.11#17.11-1d103f53312d0305"}], "evidence": "branch-matrix"}, {"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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u62d2\u7edd\u4ece SQL \u8c03\u7528\u63a5\u53d7\u6216\u8fd4\u56de internal \u7c7b\u578b\u7684\u51fd\u6570", "url": "/docs/compare/?release=17.11#17.11-ea70ef62a58da283"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "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=17.11#17.11-dd9a429d3ce13500"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "contrib module", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u4fee\u590d contrib/pg_trgm \u7684 GiST picksplit \u51fd\u6570\u4e2d\u7684\u6570\u636e\u7c7b\u578b\u9519\u8bef", "url": "/docs/compare/?release=17.11#17.11-caca197ce0ba4b3f"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u4fee\u590d PL/Perl \u548c PL/Tcl \u5185\u5b58\u5206\u914d\u8ba1\u7b97\u4e2d\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=17.11#17.11-7026dc1b76714418"}], "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": "17.11", "version": "17.11", "title": "\u4fee\u590d contrib/pg_stat_statements \u4e2d\u7684\u7f13\u51b2\u533a\u8d8a\u754c\u5199\u5165", "url": "/docs/compare/?release=17.11#17.11-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": "", "fixed_url": "", "affected": "", "component": "contrib module", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u786e\u4fdd contrib/amcheck \u51fd\u6570\u5728\u6267\u884c\u7d22\u5f15\u8868\u8fbe\u5f0f\u524d\u9650\u5236 search_path", "url": "/docs/compare/?release=17.11#17.11-ee34ba8ba8f4fa3d"}], "evidence": "release-note-mention"}, {"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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u8ba9\u6a21\u62df\u7684 SCRAM secret \u66f4\u53ef\u4fe1", "url": "/docs/compare/?release=17.11#17.11-f319d2c2bdee8718"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "contrib module", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u79fb\u9664 contrib/refint \u4e2d\u7684\u8ba1\u5212\u7f13\u5b58", "url": "/docs/compare/?release=17.11#17.11-9677b8014f265a17"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u589e\u5f3a PL/Perl \u5bf9 \u201ctied\u201d Perl \u6570\u7ec4\u548c hash \u7684\u9632\u62a4", "url": "/docs/compare/?release=17.11#17.11-58243a045a5d2555"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "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=17.11#17.11-9aaf551ddc6d8e1b"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "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=17.11#17.11-3000fb5c37bacd7b"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u89d2\u8272\u53d1\u751f\u53d8\u66f4\u540e\u4f7f\u4f9d\u8d56\u89d2\u8272\u7684\u7f13\u5b58\u8ba1\u5212\u5931\u6548", "url": "/docs/compare/?release=17.11#17.11-43977a837123cada"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "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=17.11#17.11-cb1b743a0208c3c0"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "contrib module", "mentions": [{"build": "17.11", "version": "17.11", "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=17.11#17.11-165fa935d28df7f1"}], "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": "17.11", "fixed_url": "/docs/compare/?release=17.11", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "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=17.11#17.11-730aec962ef92894"}], "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": "17.6", "fixed_url": "/docs/compare/?release=17.6", "affected": "17", "component": "core server", "mentions": [{"build": "17.6", "version": "17.6", "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=17.6#17.6-85269ca5c1610b49"}], "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": "17.6", "fixed_url": "/docs/compare/?release=17.6", "affected": "17", "component": "core server", "mentions": [{"build": "17.11", "version": "17.11", "title": "\u4e0d\u8981\u5bf9 psql \u7684 \\unrestrict \u547d\u4ee4\u53c2\u6570\u6267\u884c\u53cd\u5f15\u53f7\u6269\u5c55", "url": "/docs/compare/?release=17.11#17.11-7f417b32587acff8"}, {"build": "17.6", "version": "17.6", "title": "\u9632\u6b62 pg_dump \u811a\u672c\u88ab\u7528\u4e8e\u653b\u51fb\u6267\u884c\u6062\u590d\u7684\u7528\u6237", "url": "/docs/compare/?release=17.6#17.6-5be27cec56fb902a"}], "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": "17.6", "fixed_url": "/docs/compare/?release=17.6", "affected": "17", "component": "core server", "mentions": [{"build": "17.6", "version": "17.6", "title": "\u52a0\u5f3a\u89c4\u5212\u5668\u4f30\u7b97\u51fd\u6570\u4e2d\u7684\u5b89\u5168\u68c0\u67e5", "url": "/docs/compare/?release=17.6#17.6-235b908f6ae5f3ee"}], "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": "17.5", "fixed_url": "/docs/compare/?release=17.5", "affected": "17", "component": "core server", "mentions": [{"build": "17.5", "version": "17.5", "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=17.5#17.5-811aed0b2b3689f8"}], "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": "17.7", "fixed_url": "/docs/compare/?release=17.7", "affected": "17", "component": "core server", "mentions": [{"build": "17.7", "version": "17.7", "title": "\u907f\u514d libpq \u4e2d\u5206\u914d\u5927\u5c0f\u8ba1\u7b97\u7684\u6574\u6570\u6ea2\u51fa", "url": "/docs/compare/?release=17.7#17.7-a326b8fad6479f02"}], "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": "17.7", "fixed_url": "/docs/compare/?release=17.7", "affected": "17", "component": "core server", "mentions": [{"build": "17.7", "version": "17.7", "title": "\u68c0\u67e5 CREATE STATISTICS \u4e2d\u6a21\u5f0f\u7684 CREATE \u6743\u9650", "url": "/docs/compare/?release=17.7#17.7-36aab10e5138d3d1"}], "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": "17.3", "fixed_url": "/docs/compare/?release=17.3", "affected": "17", "component": "core server", "mentions": [{"build": "17.4", "version": "17.4", "title": "\u6539\u8fdb libpq \u5f15\u7528\u51fd\u6570\u7684\u884c\u4e3a", "url": "/docs/compare/?release=17.4#17.4-d477ecad89a3b81e"}, {"build": "17.3", "version": "17.3", "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=17.3#17.3-ec56c13500d18830"}], "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": "17.1", "fixed_url": "/docs/compare/?release=17.1", "affected": "17", "component": "core server", "mentions": [{"build": "17.1", "version": "17.1", "title": "\u9632\u6b62\u53d7\u4fe1\u4efb\u7684 PL/Perl \u4ee3\u7801\u66f4\u6539\u73af\u5883\u53d8\u91cf", "url": "/docs/compare/?release=17.1#17.1-17e0d808d28707ff"}], "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": "17.1", "fixed_url": "/docs/compare/?release=17.1", "affected": "17", "component": "core server", "mentions": [{"build": "17.2", "version": "17.2", "title": "\u6062\u590d ALTER {ROLE|DATABASE} SET role \u7684\u529f\u80fd", "url": "/docs/compare/?release=17.2#17.2-d77293a82e3a14e5"}, {"build": "17.1", "version": "17.1", "title": "\u4fee\u590d SET SESSION AUTHORIZATION \u4e0e SET ROLE \u4e4b\u95f4\u610f\u5916\u7684\u4ea4\u4e92", "url": "/docs/compare/?release=17.1#17.1-bcd14383964f2685"}], "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": "17.1", "fixed_url": "/docs/compare/?release=17.1", "affected": "17", "component": "client", "mentions": [{"build": "17.1", "version": "17.1", "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=17.1#17.1-1082f03d8cb14619"}], "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": "17.1", "fixed_url": "/docs/compare/?release=17.1", "affected": "17", "component": "core server", "mentions": [{"build": "17.1", "version": "17.1", "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=17.1#17.1-4318690b9c90f7f0"}], "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": "17.6", "version": "17.6", "title": "\u52a0\u5f3a\u89c4\u5212\u5668\u4f30\u7b97\u51fd\u6570\u4e2d\u7684\u5b89\u5168\u68c0\u67e5", "url": "/docs/compare/?release=17.6#17.6-235b908f6ae5f3ee"}], "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": "17.6", "version": "17.6", "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=17.6#17.6-85269ca5c1610b49"}], "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": 17395836, "url": "/files/documentation/pdf/17/postgresql-17-A4.pdf"}, {"label": "US Letter PDF", "bytes": 17366603, "url": "/files/documentation/pdf/17/postgresql-17-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": ""}]}