{"format": 1, "version": {"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": ""}, "releases": [{"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}], "initial_entries": [{"id": "19.0-c33e9c850ed0c4c0", "cves": [], "html": "<p>\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-connection.html#GUC-PASSWORD-EXPIRATION-WARNING-THRESHOLD\"><code>password_expiration_warning_threshold</code></a>\uff0c\u7528\u4e8e\u63d0\u793a\u5bc6\u7801\u5373\u5c06\u8fc7\u671f\uff08Gilles Darold\uff0cNathan Bossart\uff09<a href=\"https://postgr.es/c/1d92e0c2c\">\u00a7</a></p>\n<p>\u9ed8\u8ba4\u8b66\u544a\u671f\u4e3a\u4e03\u5929\u3002</p>", "text": "\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf password_expiration_warning_threshold\uff0c\u7528\u4e8e\u63d0\u793a\u5bc6\u7801\u5373\u5c06\u8fc7\u671f\uff08Gilles Darold\uff0cNathan Bossart\uff09\u00a7 \u9ed8\u8ba4\u8b66\u544a\u671f\u4e3a\u4e03\u5929\u3002", "title": "\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf password_expiration_warning_threshold\uff0c\u7528\u4e8e\u63d0\u793a\u5bc6\u7801\u5373\u5c06\u8fc7\u671f", "commits": ["1d92e0c2c"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "7c339ee9b358a11a561d28ca346ffcac404600694f6da2b380ae9bb7cd6af403", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["1d92e0c2c"]], "identity_text": "Add server variable password_expiration_warning_threshold to warn about password expiration (Gilles Darold, Nathan Bossart) The default warning period is seven days.", "commit_aliases": ["1d92e0c2c"], "source_commits": ["1d92e0c2c"], "source_entry_id": "19.0/migration/001", "db_id": "0ee1d9c8286e1e1c3bca823c4ad8e489", "patch_ids": ["095ffa220dd9def37aacae10519edc44"], "statement_hash": "ed4b6567c72fb14f34d3ff078e46845e06ac97abc4729230f6ded8d82025c9a1", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-c33e9c850ed0c4c0", "migration": true}, {"id": "19.0-4ae2c09be676b418", "cves": [], "html": "<p>\u5728\u6210\u529f\u5b8c\u6210 MD5 \u5bc6\u7801\u8ba4\u8bc1\u540e\u53d1\u51fa\u8b66\u544a\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/bc60ee860\">\u00a7</a></p>\n<p>\u53ef\u4ee5\u901a\u8fc7\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-connection.html#GUC-MD5-PASSWORD-WARNINGS\"><code>md5_password_warnings</code></a> \u7981\u7528\u8be5\u8b66\u544a\u3002MD5 \u5bc6\u7801\u5df2\u5728 <span>PostgreSQL</span> 18 \u4e2d\u88ab\u6807\u8bb0\u4e3a\u5f03\u7528\u3002</p>", "text": "\u5728\u6210\u529f\u5b8c\u6210 MD5 \u5bc6\u7801\u8ba4\u8bc1\u540e\u53d1\u51fa\u8b66\u544a\uff08Nathan Bossart\uff09\u00a7 \u53ef\u4ee5\u901a\u8fc7\u670d\u52a1\u5668\u53d8\u91cf md5_password_warnings \u7981\u7528\u8be5\u8b66\u544a\u3002MD5 \u5bc6\u7801\u5df2\u5728 PostgreSQL 18 \u4e2d\u88ab\u6807\u8bb0\u4e3a\u5f03\u7528\u3002", "title": "\u5728\u6210\u529f\u5b8c\u6210 MD5 \u5bc6\u7801\u8ba4\u8bc1\u540e\u53d1\u51fa\u8b66\u544a", "commits": ["bc60ee860"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "60ee25c9ca51965424a96f772be18ed1f7e232d038ccecdab33d99841f5ca2ac", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["bc60ee860"]], "identity_text": "Issue a warning after successful MD5 password authentication (Nathan Bossart) The warning can be disabled via server variable md5_password_warnings. MD5 passwords were marked as deprecated in PostgreSQL 18.", "commit_aliases": ["bc60ee860"], "source_commits": ["bc60ee860"], "source_entry_id": "19.0/migration/002", "db_id": "0df2f58e5c4562435db359e9744c01ef", "patch_ids": ["267b13bdefd84f24147ca4222f8da5df"], "statement_hash": "1c58a524004805cb3f88bc6eb135171feb7d551a6e610c6e4172bcb2cdd09ffd", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-4ae2c09be676b418", "migration": true}, {"id": "19.0-22c41cab584065b7", "cves": [], "html": "<p>\u79fb\u9664 <acronym>RADIUS</acronym> \u652f\u6301\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/a1643d40b\">\u00a7</a></p>\n<p><span>PostgreSQL</span> \u53ea\u652f\u6301\u901a\u8fc7 <acronym>UDP</acronym> \u7684 <acronym>RADIUS</acronym>\uff0c\u800c\u8fd9\u5b58\u5728\u65e0\u6cd5\u4fee\u590d\u7684\u5b89\u5168\u95ee\u9898\u3002</p>", "text": "\u79fb\u9664 RADIUS \u652f\u6301\uff08Thomas Munro\uff09\u00a7 PostgreSQL \u53ea\u652f\u6301\u901a\u8fc7 UDP \u7684 RADIUS\uff0c\u800c\u8fd9\u5b58\u5728\u65e0\u6cd5\u4fee\u590d\u7684\u5b89\u5168\u95ee\u9898\u3002", "title": "\u79fb\u9664 RADIUS \u652f\u6301", "commits": ["a1643d40b"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "b6868a5d55a4fbb9bf73a4ae19630c1778ac28754527bdd8b67b584d64f02e99", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["a1643d40b"]], "identity_text": "Remove RADIUS support (Thomas Munro) PostgreSQL only supported RADIUS over UDP, which is unfixably insecure.", "commit_aliases": ["a1643d40b"], "source_commits": ["a1643d40b"], "source_entry_id": "19.0/migration/003", "db_id": "46f63ce5de5d054a9ff5ef111cb12f89", "patch_ids": ["fa7631c26a75fe98210f67a23a547046"], "statement_hash": "bb5a1ec62f0b8029c0c2d01824ad69a33b4621e98c08fea042bb2990d855978d", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-22c41cab584065b7", "migration": true}, {"id": "19.0-2c213911526432f1", "cves": [], "html": "<p>\u5f3a\u5236\u6570\u636e\u5e93\u670d\u52a1\u5668\u4e2d\u7684 <a href=\"/docs/19/runtime-config-compatible.html#GUC-STANDARD-CONFORMING-STRINGS\"><code>standard_conforming_strings</code></a> \u59cb\u7ec8\u4e3a <code>on</code>\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/457620845\">\u00a7</a></p>\n<p>\u4f7f\u7528 <span>PostgreSQL</span> 19 \u4e4b\u524d\u7248\u672c\u7684<a href=\"/docs/19/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>\u6216<a href=\"/docs/19/app-pg-dumpall.html\" title=\"pg_dumpall\"><span>pg_dumpall</span></a>\u521b\u5efa\u3001\u4e14\u4f7f\u7528\u4e86 <code>standard_conforming_strings = off</code> \u7684\u8f6c\u50a8\uff0c\u5c06\u65e0\u6cd5\u6b63\u786e\u8f7d\u5165 <span>PostgreSQL</span> 19 \u53ca\u66f4\u9ad8\u7248\u672c\u7684\u670d\u52a1\u5668\u3002\u7528\u6237\u5e94\u4f7f\u7528\u8fd9\u4e9b\u5e94\u7528\u7a0b\u5e8f\u7684 <span>PostgreSQL</span> 19 \u6216\u66f4\u9ad8\u7248\u672c\u521b\u5efa\u8f6c\u50a8\uff0c\u6216\u8005\u4f7f\u7528 <code>standard_conforming_strings = on</code>\u3002</p>\n<p>\u4e3a\u4e86\u517c\u5bb9\u65e7\u670d\u52a1\u5668\uff0c\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f\u4ecd\u7136\u652f\u6301\u5728 <code>standard_conforming_strings = off</code> \u7684\u670d\u52a1\u5668\u4e0a\u6267\u884c\u64cd\u4f5c\u3002\u670d\u52a1\u5668\u53d8\u91cf <code>escape_string_warning</code> \u5df2\u88ab\u79fb\u9664\uff0c\u56e0\u4e3a\u5df2\u65e0\u5fc5\u8981\u3002</p>", "text": "\u5f3a\u5236\u6570\u636e\u5e93\u670d\u52a1\u5668\u4e2d\u7684 standard_conforming_strings \u59cb\u7ec8\u4e3a on\uff08Tom Lane\uff09\u00a7 \u4f7f\u7528 PostgreSQL 19 \u4e4b\u524d\u7248\u672c\u7684pg_dump\u6216pg_dumpall\u521b\u5efa\u3001\u4e14\u4f7f\u7528\u4e86 standard_conforming_strings = off \u7684\u8f6c\u50a8\uff0c\u5c06\u65e0\u6cd5\u6b63\u786e\u8f7d\u5165 PostgreSQL 19 \u53ca\u66f4\u9ad8\u7248\u672c\u7684\u670d\u52a1\u5668\u3002\u7528\u6237\u5e94\u4f7f\u7528\u8fd9\u4e9b\u5e94\u7528\u7a0b\u5e8f\u7684 PostgreSQL 19 \u6216\u66f4\u9ad8\u7248\u672c\u521b\u5efa\u8f6c\u50a8\uff0c\u6216\u8005\u4f7f\u7528 standard_conforming_strings = on\u3002 \u4e3a\u4e86\u517c\u5bb9\u65e7\u670d\u52a1\u5668\uff0c\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f\u4ecd\u7136\u652f\u6301\u5728 standard_conforming_strings = off \u7684\u670d\u52a1\u5668\u4e0a\u6267\u884c\u64cd\u4f5c\u3002\u670d\u52a1\u5668\u53d8\u91cf escape_string_warning \u5df2\u88ab\u79fb\u9664\uff0c\u56e0\u4e3a\u5df2\u65e0\u5fc5\u8981\u3002", "title": "\u5f3a\u5236\u6570\u636e\u5e93\u670d\u52a1\u5668\u4e2d\u7684 standard_conforming_strings \u59cb\u7ec8\u4e3a on", "commits": ["457620845"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "c4f9f9d32fefdf6df8ccf581a3a9d881e4c09bd24359b11641136a0fd1cb5db6", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["457620845"]], "identity_text": "Force standard_conforming_strings to always be on in the database server (Tom Lane) Dumps created using pre-PostgreSQL 19 versions of pg_dump or pg_dumpall, and using standard_conforming_strings = off, will not properly load into PostgreSQL 19 and later servers. Users should create dumps using PostgreSQL 19 or later versions of these applications, or use standard_conforming_strings = on. Client applications still support operations with servers having standard_conforming_strings = off, for compatibility with old servers. The server variable escape_string_warning has been removed as unnecessary.", "commit_aliases": ["457620845"], "source_commits": ["457620845"], "source_entry_id": "19.0/migration/004", "db_id": "5f25dd2107e85b9059d37535d1950ec9", "patch_ids": ["f5987b8788598cff2c835051633022a4"], "statement_hash": "696303749de67371484ae06d069e6d9d01ae9401a71810e825dcc4efda391fa3", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-2c213911526432f1", "migration": true}, {"id": "19.0-07f0137a38635d0b", "cves": [], "html": "<p>\u7981\u6b62\u6570\u636e\u5e93\u540d\u3001\u89d2\u8272\u540d\u548c\u8868\u7a7a\u95f4\u540d\u4e2d\u51fa\u73b0\u56de\u8f66\u548c\u6362\u884c\uff08Mahendra Singh Thalor\uff09<a href=\"https://postgr.es/c/b380a56a3\">\u00a7</a></p>\n<p>\u8fd9\u6837\u505a\u662f\u4e3a\u4e86\u907f\u514d\u5b89\u5168\u95ee\u9898\u3002<a href=\"/docs/19/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a>\u4e5f\u4f1a\u62d2\u7edd\u5347\u7ea7\u90a3\u4e9b\u4f7f\u7528\u6b64\u7c7b\u540d\u79f0\u7684\u6570\u636e\u5e93\u96c6\u7c07\u3002</p>", "text": "\u7981\u6b62\u6570\u636e\u5e93\u540d\u3001\u89d2\u8272\u540d\u548c\u8868\u7a7a\u95f4\u540d\u4e2d\u51fa\u73b0\u56de\u8f66\u548c\u6362\u884c\uff08Mahendra Singh Thalor\uff09\u00a7 \u8fd9\u6837\u505a\u662f\u4e3a\u4e86\u907f\u514d\u5b89\u5168\u95ee\u9898\u3002pg_upgrade\u4e5f\u4f1a\u62d2\u7edd\u5347\u7ea7\u90a3\u4e9b\u4f7f\u7528\u6b64\u7c7b\u540d\u79f0\u7684\u6570\u636e\u5e93\u96c6\u7c07\u3002", "title": "\u7981\u6b62\u6570\u636e\u5e93\u540d\u3001\u89d2\u8272\u540d\u548c\u8868\u7a7a\u95f4\u540d\u4e2d\u51fa\u73b0\u56de\u8f66\u548c\u6362\u884c", "commits": ["b380a56a3"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "d9d6648afb875ea815d9ead2982f136ba6f41ae97c8305e53b58b65c7486235a", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["b380a56a3"]], "identity_text": "Disallow carriage returns and line feeds in database, role, and tablespace names (Mahendra Singh Thalor) pg_upgrade will also disallow upgrading of clusters that use such names. This was changed to avoid security problems.", "commit_aliases": ["b380a56a3"], "source_commits": ["b380a56a3"], "source_entry_id": "19.0/migration/005", "db_id": "0f8efb4cff76fe54d45530b1262f678a", "patch_ids": ["4c82032b0e66552171db30560a84fcf6"], "statement_hash": "ad32dd3c8f6a910d242148086becb69efd82cd95622b540fa6f3ad7a4e16f429", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-07f0137a38635d0b", "migration": true}, {"id": "19.0-e5009c4b0e44386f", "cves": [], "html": "<p>\u5c06 <a href=\"/docs/19/datatype-net-types.html\" title=\"8.9.\u00a0\u7f51\u7edc\u5730\u5740\u7c7b\u578b\"><code>inet</code></a> \u548c <a href=\"/docs/19/datatype-net-types.html\" title=\"8.9.\u00a0\u7f51\u7edc\u5730\u5740\u7c7b\u578b\"><code>cidr</code></a> \u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u7d22\u5f15\u64cd\u4f5c\u7b26\u7c7b\u4ece<a href=\"/docs/19/btree-gist.html\" title=\"F.8.\u00a0btree_gist \u2014 \u5177\u6709 B-\u6811\u884c\u4e3a\u7684 GiST \u64cd\u4f5c\u7b26\u7c7b\">btree_gist</a>\u6539\u4e3a <a href=\"/docs/19/gist.html\" title=\"65.2.\u00a0GiST \u7d22\u5f15\">GiST</a>\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/b3b0b4571\">\u00a7</a> <a href=\"https://postgr.es/c/b352d3d80\">\u00a7</a></p>\n<p><a href=\"/docs/19/btree-gist.html\" title=\"F.8.\u00a0btree_gist \u2014 \u5177\u6709 B-\u6811\u884c\u4e3a\u7684 GiST \u64cd\u4f5c\u7b26\u7c7b\">btree_gist</a>\u7684 <code>inet</code>/<code>cidr</code> \u64cd\u4f5c\u7b26\u7c7b\u5b58\u5728\u7f3a\u9677\uff0c\u56e0\u4e3a\u5b83\u4eec\u53ef\u80fd\u6392\u9664\u672c\u5e94\u8fd4\u56de\u7684\u884c\u3002<a href=\"/docs/19/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a>\u5c06\u62d2\u7edd\u5347\u7ea7\u5305\u542b<a href=\"/docs/19/btree-gist.html\" title=\"F.8.\u00a0btree_gist \u2014 \u5177\u6709 B-\u6811\u884c\u4e3a\u7684 GiST \u64cd\u4f5c\u7b26\u7c7b\">btree_gist</a> <code>inet</code>/<code>cidr</code> \u7d22\u5f15\u7684\u6570\u636e\u5e93\u96c6\u7c07\u3002</p>", "text": "\u5c06 inet \u548c cidr \u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u7d22\u5f15\u64cd\u4f5c\u7b26\u7c7b\u4ecebtree_gist\u6539\u4e3a GiST\uff08Tom Lane\uff09\u00a7 \u00a7 btree_gist\u7684 inet/cidr \u64cd\u4f5c\u7b26\u7c7b\u5b58\u5728\u7f3a\u9677\uff0c\u56e0\u4e3a\u5b83\u4eec\u53ef\u80fd\u6392\u9664\u672c\u5e94\u8fd4\u56de\u7684\u884c\u3002pg_upgrade\u5c06\u62d2\u7edd\u5347\u7ea7\u5305\u542bbtree_gist inet/cidr \u7d22\u5f15\u7684\u6570\u636e\u5e93\u96c6\u7c07\u3002", "title": "\u5c06 inet \u548c cidr \u6570\u636e\u7c7b\u578b\u7684\u9ed8\u8ba4\u7d22\u5f15\u64cd\u4f5c\u7b26\u7c7b\u4ecebtree_gist\u6539\u4e3a GiST", "commits": ["b352d3d80", "b3b0b4571"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "bcad9b83405cd9f68ea551fb80f30d2d8da8c52009e65b68dabd4e687f1f8110", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["b352d3d80"], ["b3b0b4571"]], "identity_text": "Change the default index opclasses for inet and cidr data types from btree-gist to GiST (Tom Lane) The btree-gist inet/cidr opclasses are broken because they can exclude rows that should be returned. pg_upgrade will disallow upgrading of clusters with btree-gist inet/cidr indexes.", "commit_aliases": ["b352d3d80", "b3b0b4571"], "source_commits": ["b352d3d80", "b3b0b4571"], "source_entry_id": "19.0/migration/006", "db_id": "bbd6b84aeeaf610165c06bae2b0299d6", "patch_ids": ["5f29df7f225f782b9684cc42760b7f96", "9c1098e770febac330c7cc44915cac6b"], "statement_hash": "1b48edee148244a08df9c9fc19d5499e8f3e93d313d216e6a12d4aea70e762bb", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-e5009c4b0e44386f", "migration": true}, {"id": "19.0-940009c2e7beae07", "cves": [], "html": "<p>\u7981\u6b62\u5728 <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY FROM ... WHERE</code></a> \u4e2d\u4f7f\u7528\u7cfb\u7edf\u5217\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/21c69dc73\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u5217\u7684\u503c\u5e76\u672a\u660e\u786e\u5b9a\u4e49\u3002</p>", "text": "\u7981\u6b62\u5728 COPY FROM ... WHERE \u4e2d\u4f7f\u7528\u7cfb\u7edf\u5217\uff08Tom Lane\uff09\u00a7 \u8fd9\u4e9b\u5217\u7684\u503c\u5e76\u672a\u660e\u786e\u5b9a\u4e49\u3002", "title": "\u7981\u6b62\u5728 COPY FROM ... WHERE \u4e2d\u4f7f\u7528\u7cfb\u7edf\u5217", "commits": ["21c69dc73"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "10e8dbc64b58cb2e6f2e54867daffca75598a704fdd023899c025327e183c54c", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["21c69dc73"]], "identity_text": "Disallow system columns from being used in COPY FROM ... WHERE (Tom Lane) The values of such columns were not well-defined.", "commit_aliases": ["21c69dc73"], "source_commits": ["21c69dc73"], "source_entry_id": "19.0/migration/007", "db_id": "778475a1b837861f70094d5ceb2c5e00", "patch_ids": ["4b03e5cd2822d97a82583c446462a0fc"], "statement_hash": "579a9ff0903438067962eb326e682f0081809e9b7f29423e0d2af99e7d40eed6", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-940009c2e7beae07", "migration": true}, {"id": "19.0-28887c6175f1aca5", "cves": [], "html": "<p>\u5c06\u4e0d\u8fd4\u56de\u4efb\u4f55\u884c\u7684 <a href=\"/docs/19/functions-json.html\" title=\"9.17.\u00a0JSON \u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>json_array()</code></a> \u8c03\u7528\u6539\u4e3a\u8fd4\u56de\u7a7a <acronym>JSON</acronym> \u6570\u7ec4\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/8d829f5a0\">\u00a7</a></p>\n<p>\u6b64\u524d\u4f1a\u8fd4\u56de <code>NULL</code>\u3002</p>", "text": "\u5c06\u4e0d\u8fd4\u56de\u4efb\u4f55\u884c\u7684 json_array() \u8c03\u7528\u6539\u4e3a\u8fd4\u56de\u7a7a JSON \u6570\u7ec4\uff08Richard Guo\uff09\u00a7 \u6b64\u524d\u4f1a\u8fd4\u56de NULL\u3002", "title": "\u5c06\u4e0d\u8fd4\u56de\u4efb\u4f55\u884c\u7684 json_array() \u8c03\u7528\u6539\u4e3a\u8fd4\u56de\u7a7a JSON \u6570\u7ec4", "commits": ["8d829f5a0"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "c9026a8f7dc5b8e5ee222913b32528ec83fd880eb76ec6075ea29ef169bc6302", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["8d829f5a0"]], "identity_text": "Change a json_array() call which returns no rows to return an empty JSON array (Richard Guo) This previously returned NULL.", "commit_aliases": ["8d829f5a0"], "source_commits": ["8d829f5a0"], "source_entry_id": "19.0/migration/008", "db_id": "211e837dc7f9cc71a096ad987b1144ac", "patch_ids": ["733a64f5cc78dfc189cdc0be1e7005a2"], "statement_hash": "91028f49e3f39916e3f88fd906dc82c048f83731d9e3eae83630f455228e1a60", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-28887c6175f1aca5", "migration": true}, {"id": "19.0-c8cd45a36d0a5393", "cves": [], "html": "<p>\u8ba9\u4e8b\u52a1\u628a\u5176 <code>READ ONLY</code> \u548c <code>DEFERRABLE</code> \u72b6\u6001\u4f20\u9012\u7ed9<a href=\"/docs/19/postgres-fdw.html\" title=\"F.40.\u00a0postgres_fdw \u2014 \u8bbf\u95ee\u5b58\u50a8\u5728\u5916\u90e8 PostgreSQL \u670d\u52a1\u5668\u4e2d\u7684\u6570\u636e\">postgres_fdw</a>\u4f1a\u8bdd\uff08Etsuro Fujita\uff09<a href=\"https://postgr.es/c/de28140de\">\u00a7</a></p>\n<p>\u8fd9\u610f\u5473\u7740 <code>READ ONLY</code> \u4e8b\u52a1\u5c06\u4e0d\u80fd\u518d\u4fee\u6539\u7531<a href=\"/docs/19/postgres-fdw.html\" title=\"F.40.\u00a0postgres_fdw \u2014 \u8bbf\u95ee\u5b58\u50a8\u5728\u5916\u90e8 PostgreSQL \u670d\u52a1\u5668\u4e2d\u7684\u6570\u636e\">postgres_fdw</a>\u4f1a\u8bdd\u5904\u7406\u7684\u884c\u3002</p>", "text": "\u8ba9\u4e8b\u52a1\u628a\u5176 READ ONLY \u548c DEFERRABLE \u72b6\u6001\u4f20\u9012\u7ed9postgres_fdw\u4f1a\u8bdd\uff08Etsuro Fujita\uff09\u00a7 \u8fd9\u610f\u5473\u7740 READ ONLY \u4e8b\u52a1\u5c06\u4e0d\u80fd\u518d\u4fee\u6539\u7531postgres_fdw\u4f1a\u8bdd\u5904\u7406\u7684\u884c\u3002", "title": "\u8ba9\u4e8b\u52a1\u628a\u5176 READ ONLY \u548c DEFERRABLE \u72b6\u6001\u4f20\u9012\u7ed9postgres_fdw\u4f1a\u8bdd", "commits": ["de28140de"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "aedfab70eafb85c9a3ebed4170e316ccb68c5d66f2c9d87e1d276b2877ac8094", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["de28140de"]], "identity_text": "Cause transactions to pass their READ ONLY and DEFERRABLE status to postgres-fdw sessions (Etsuro Fujita) This means READ ONLY transactions can no longer modify rows processed by postgres-fdw sessions.", "commit_aliases": ["de28140de"], "source_commits": ["de28140de"], "source_entry_id": "19.0/migration/009", "db_id": "beedc195aa1ee31a93e09290f46c1a76", "patch_ids": ["efb80ef332b64868d899df491adab085"], "statement_hash": "a1cca77513b91f2bc10a1b05552526e2158b9c52c70de896bdbfddb837974d2b", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-c8cd45a36d0a5393", "migration": true}, {"id": "19.0-0f6fe2deb41d452f", "cves": [], "html": "<p>\u5c06 <a href=\"/docs/19/runtime-config-locks.html#GUC-MAX-LOCKS-PER-TRANSACTION\"><code>max_locks_per_transaction</code></a> \u7684\u9ed8\u8ba4\u503c\u4ece 64 \u6539\u4e3a 128\uff08Heikki Linnakangas\uff09<a href=\"https://postgr.es/c/79534f906\">\u00a7</a></p>\n<p>\u9501\u5927\u5c0f\u5206\u914d\u65b9\u5f0f\u5df2\u7ecf\u6539\u53d8\uff0c\u56e0\u6b64\u8981\u8fbe\u5230\u4e0e\u5148\u524d\u7248\u672c\u76f8\u540c\u7684\u5bb9\u91cf\uff0c\u5b9e\u9645\u4e0a\u73b0\u5728\u5fc5\u987b\u5c06\u8bbe\u7f6e\u503c\u7ffb\u500d\u3002</p>", "text": "\u5c06 max_locks_per_transaction \u7684\u9ed8\u8ba4\u503c\u4ece 64 \u6539\u4e3a 128\uff08Heikki Linnakangas\uff09\u00a7 \u9501\u5927\u5c0f\u5206\u914d\u65b9\u5f0f\u5df2\u7ecf\u6539\u53d8\uff0c\u56e0\u6b64\u8981\u8fbe\u5230\u4e0e\u5148\u524d\u7248\u672c\u76f8\u540c\u7684\u5bb9\u91cf\uff0c\u5b9e\u9645\u4e0a\u73b0\u5728\u5fc5\u987b\u5c06\u8bbe\u7f6e\u503c\u7ffb\u500d\u3002", "title": "\u5c06 max_locks_per_transaction \u7684\u9ed8\u8ba4\u503c\u4ece 64 \u6539\u4e3a 128", "commits": ["79534f906"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "77109b01dcfb7956ff1d2d5d39ab548e9520cfe4164c1927463934a1cf43e715", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["79534f906"]], "identity_text": "Change default of max_locks_per_transaction from 64 to 128 (Heikki Linnakangas) Lock size allocation has changed, so effectively settings must now be doubled to match their capacity in previous releases.", "commit_aliases": ["79534f906"], "source_commits": ["79534f906"], "source_entry_id": "19.0/migration/010", "db_id": "b49e1630d4751a0a3391d1c9cda2c73c", "patch_ids": ["39ca5de25df82eeade6fa15b148cba38"], "statement_hash": "b047f9fc149f0588327f77f9adf686e5da4c3cc852f9df57e36cee3c9a3ff845", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-0f6fe2deb41d452f", "migration": true}, {"id": "19.0-2d1995791bfba273", "cves": [], "html": "<p>\u9ed8\u8ba4\u7981\u7528 <a href=\"/docs/19/jit.html\" title=\"\u7b2c\u00a030\u00a0\u7ae0\u00a0\u5373\u65f6\u7f16\u8bd1\uff08JIT\uff09\"><acronym>JIT</acronym></a>\uff08Jelte Fennema-Nio\uff09<a href=\"https://postgr.es/c/7f8c88c2b\">\u00a7</a></p>\n<p>\u4e4b\u524d <acronym>JIT</acronym> \u9ed8\u8ba4\u542f\u7528\uff0c\u5e76\u6839\u636e\u4f18\u5316\u5668\u4ee3\u4ef7\u51b3\u5b9a\u662f\u5426\u6fc0\u6d3b\u3002\u4e0d\u5e78\u7684\u662f\uff0c\u8fd9\u79cd\u4ee3\u4ef7\u4f30\u7b97\u88ab\u8ba4\u4e3a\u5e76\u4e0d\u53ef\u9760\uff0c\u56e0\u6b64\u9700\u8981\u5927\u91cf\u8fd0\u884c\u5927\u578b\u5206\u6790\u67e5\u8be2\u7684\u7ad9\u70b9\u624b\u5de5\u542f\u7528 <acronym>JIT</acronym>\u3002</p>", "text": "\u9ed8\u8ba4\u7981\u7528 JIT\uff08Jelte Fennema-Nio\uff09\u00a7 \u4e4b\u524d JIT \u9ed8\u8ba4\u542f\u7528\uff0c\u5e76\u6839\u636e\u4f18\u5316\u5668\u4ee3\u4ef7\u51b3\u5b9a\u662f\u5426\u6fc0\u6d3b\u3002\u4e0d\u5e78\u7684\u662f\uff0c\u8fd9\u79cd\u4ee3\u4ef7\u4f30\u7b97\u88ab\u8ba4\u4e3a\u5e76\u4e0d\u53ef\u9760\uff0c\u56e0\u6b64\u9700\u8981\u5927\u91cf\u8fd0\u884c\u5927\u578b\u5206\u6790\u67e5\u8be2\u7684\u7ad9\u70b9\u624b\u5de5\u542f\u7528 JIT\u3002", "title": "\u9ed8\u8ba4\u7981\u7528 JIT", "commits": ["7f8c88c2b"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "d5d7f48ee4c1effa36bf0427d8b159eb540c0335fb0e7d37c451e2f950663546", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["7f8c88c2b"]], "identity_text": "Change JIT to be disabled by default (Jelte Fennema-Nio) Previously JIT was enabled by default, and activated based on optimizer costs, but this costing has been determined to be unreliable. This change requires sites that are doing many large analytical queries to manually enable JIT.", "commit_aliases": ["7f8c88c2b"], "source_commits": ["7f8c88c2b"], "source_entry_id": "19.0/migration/011", "db_id": "6b3e754eb033e05517d5e01c53cbb26f", "patch_ids": ["df6972f1b29556533e8f1d64ffe7c753"], "statement_hash": "532c84b6fa800a1060de0ff778f814cfac6bef59a00a8aff7b59d1e42bb1bef4", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-2d1995791bfba273", "migration": true}, {"id": "19.0-b1c1710fd414582c", "cves": [], "html": "<p>\u5c06 <code>sync_error_count</code> \u91cd\u547d\u540d\u4e3a <code>sync_table_error_count</code>\uff0c\u8be5\u5217\u4f4d\u4e8e\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/monitoring-stats.html#PG-STAT-SUBSCRIPTION-STATS\" title=\"\u8868\u00a027.20.\u00a0pg_stat_subscription_stats \u89c6\u56fe\"><code>pg_stat_subscription_stats</code></a> \u4e2d\uff08Vignesh C\uff09<a href=\"https://postgr.es/c/3edaf29fa\">\u00a7</a></p>\n<p>\u8fd9\u662f\u56e0\u4e3a\u73b0\u5728\u4f1a\u5355\u72ec\u8ddf\u8e2a\u5e8f\u5217\u9519\u8bef\u3002</p>", "text": "\u5c06 sync_error_count \u91cd\u547d\u540d\u4e3a sync_table_error_count\uff0c\u8be5\u5217\u4f4d\u4e8e\u7cfb\u7edf\u89c6\u56fe pg_stat_subscription_stats \u4e2d\uff08Vignesh C\uff09\u00a7 \u8fd9\u662f\u56e0\u4e3a\u73b0\u5728\u4f1a\u5355\u72ec\u8ddf\u8e2a\u5e8f\u5217\u9519\u8bef\u3002", "title": "\u5c06 sync_error_count \u91cd\u547d\u540d\u4e3a sync_table_error_count\uff0c\u8be5\u5217\u4f4d\u4e8e\u7cfb\u7edf\u89c6\u56fe pg_stat_subscription_stats \u4e2d", "commits": ["3edaf29fa"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "a14e8b11a625b613af50951c94510fbe64a46f611fc59e78fcaaffe25b659690", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["3edaf29fa"]], "identity_text": "Rename column sync_error_count to sync_table_error_count in system view pg_stat_subscription_stats (Vignesh C) This is necessary since sequence errors are now tracked separately.", "commit_aliases": ["3edaf29fa"], "source_commits": ["3edaf29fa"], "source_entry_id": "19.0/migration/012", "db_id": "70cd59be0b3b3c22c3c028193c91e416", "patch_ids": ["612943743e97964090c65bd7f4cdedca"], "statement_hash": "1f4f95c0813c6e77c441fd924e4b2ab8e496ff881eefbd3447d3f107e05fe57e", "relations": [{"rule": 2, "type": "related", "target": "9a6f7f73dea73507b7e7d161044aa58a", "evidence": {"same_day": false, "patch_ids": ["612943743e97964090c65bd7f4cdedca"]}}], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-b1c1710fd414582c", "migration": true}, {"id": "19.0-81577b68a3e9a3cd", "cves": [], "html": "<p>\u5c06\u7b49\u5f85\u4e8b\u4ef6\u7c7b\u578b <code>BUFFERPIN</code> \u91cd\u547d\u540d\u4e3a <code>BUFFER</code>\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/6c5c393b7\">\u00a7</a></p>", "text": "\u5c06\u7b49\u5f85\u4e8b\u4ef6\u7c7b\u578b BUFFERPIN \u91cd\u547d\u540d\u4e3a BUFFER\uff08Andres Freund\uff09\u00a7", "title": "\u5c06\u7b49\u5f85\u4e8b\u4ef6\u7c7b\u578b BUFFERPIN \u91cd\u547d\u540d\u4e3a BUFFER", "commits": ["6c5c393b7"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "1c827752bc91870e249ffe8959c9bb2f54d7f1d069aaf5d2e31c31dd3bb5f640", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["6c5c393b7"]], "identity_text": "Rename wait event type BUFFERPIN to BUFFER (Andres Freund)", "commit_aliases": ["6c5c393b7"], "source_commits": ["6c5c393b7"], "source_entry_id": "19.0/migration/013", "db_id": "1ecc37a4bc0681ac63229c9b83f896ff", "patch_ids": ["05a4d97cfbb6a11f234cd121c8a4175b"], "statement_hash": "f95959a5ae8abdf9d088444fdc699e05d3883f7bcc008adc16e100c5e8e5a2db", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-81577b68a3e9a3cd", "migration": true}, {"id": "19.0-02d55f924e33d8e5", "cves": [], "html": "<p>\u5c06\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5\u5904\u7406\u5668\u6539\u4e3a\u4f7f\u7528\u9759\u6001\u5206\u914d\u7684 <a href=\"/docs/19/indexam.html\" title=\"\u7b2c\u00a063\u00a0\u7ae0\u00a0\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5\u63a5\u53e3\u5b9a\u4e49\"><code>IndexAmRoutines</code></a> \u7ed3\u6784\u4f53\uff0c\u800c\u4e0d\u662f\u52a8\u6001\u5206\u914d\u7684\u7ed3\u6784\u4f53\uff08Matthias van de Meent\uff09<a href=\"https://postgr.es/c/bc6374cd7\">\u00a7</a></p>", "text": "\u5c06\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5\u5904\u7406\u5668\u6539\u4e3a\u4f7f\u7528\u9759\u6001\u5206\u914d\u7684 IndexAmRoutines \u7ed3\u6784\u4f53\uff0c\u800c\u4e0d\u662f\u52a8\u6001\u5206\u914d\u7684\u7ed3\u6784\u4f53\uff08Matthias van de Meent\uff09\u00a7", "title": "\u5c06\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5\u5904\u7406\u5668\u6539\u4e3a\u4f7f\u7528\u9759\u6001\u5206\u914d\u7684 IndexAmRoutines \u7ed3\u6784\u4f53\uff0c\u800c\u4e0d\u662f\u52a8\u6001\u5206\u914d\u7684\u7ed3\u6784\u4f53", "commits": ["bc6374cd7"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "8d57149ef038da9610e4d527d1b77c67a259a9a2d5db45bfe77b68c2ac0f956a", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["bc6374cd7"]], "identity_text": "Change index access method handlers to use a static IndexAmRoutines structure, rather than dynamically allocated ones (Matthias van de Meent)", "commit_aliases": ["bc6374cd7"], "source_commits": ["bc6374cd7"], "source_entry_id": "19.0/migration/014", "db_id": "419bfd0eee41078235d947a0cb18b85a", "patch_ids": ["309ecd676dbc1e378df3e762b4e43d07"], "statement_hash": "77ac996dcd32cd0c913325b06fad5609fb2d0a07a577f342baba7263879bf0fc", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-02d55f924e33d8e5", "migration": true}, {"id": "19.0-6aed8df8f1048b04", "cves": [], "html": "<p>\u79fb\u9664\u4f18\u5316\u5668\u94a9\u5b50 get_relation_info_hook\uff0c\u5e76\u65b0\u589e\u4f4d\u7f6e\u66f4\u5408\u9002\u7684\u94a9\u5b50 build_simple_rel_hook\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/91f33a2ae\">\u00a7</a></p>", "text": "\u79fb\u9664\u4f18\u5316\u5668\u94a9\u5b50 get_relation_info_hook\uff0c\u5e76\u65b0\u589e\u4f4d\u7f6e\u66f4\u5408\u9002\u7684\u94a9\u5b50 build_simple_rel_hook\uff08Robert Haas\uff09\u00a7", "title": "\u79fb\u9664\u4f18\u5316\u5668\u94a9\u5b50 get_relation_info_hook\uff0c\u5e76\u65b0\u589e\u4f4d\u7f6e\u66f4\u5408\u9002\u7684\u94a9\u5b50 build_simple_rel_hook", "commits": ["91f33a2ae"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "a9ee2d58ff00b61b8ad6674b0481dbe65812e81f01e72a6177ac42169670f1b5", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["91f33a2ae"]], "identity_text": "Remove optimizer hook get_relation_info_hook and add better-placed hook build_simple_rel_hook (Robert Haas)", "commit_aliases": ["91f33a2ae"], "source_commits": ["91f33a2ae"], "source_entry_id": "19.0/migration/015", "db_id": "9eb7c5f55e60c1774249ad77a6e3e680", "patch_ids": ["ad735bfab9018bd4e9455caa63620d0e"], "statement_hash": "1262304b32f806dbc40ddb3a8a7dbc07bd5c934aa44cbe10f9aae2da5a799e17", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-6aed8df8f1048b04", "migration": true}, {"id": "19.0-57a268be8495814f", "cves": [], "html": "<p>\u4fee\u6539<a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a>\u7684 <code>\\crosstabview</code> \u547d\u4ee4\uff0c\u4f7f\u5176\u9075\u5faa <code>\\pset null</code> \u8bbe\u7f6e\uff08Chao Li\uff09<a href=\"https://postgr.es/c/4df5fe383\">\u00a7</a></p>", "text": "\u4fee\u6539psql\u7684 \\crosstabview \u547d\u4ee4\uff0c\u4f7f\u5176\u9075\u5faa \\pset null \u8bbe\u7f6e\uff08Chao Li\uff09\u00a7", "title": "\u4fee\u6539psql\u7684 \\crosstabview \u547d\u4ee4\uff0c\u4f7f\u5176\u9075\u5faa \\pset null \u8bbe\u7f6e", "commits": ["4df5fe383"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "9be60c7c3f3e576d0ce8811dbb5c156484f00b4dbc81d97ca985d4a9208f2844", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["4df5fe383"]], "identity_text": "Change psql's \\crosstabview command to honor the \\pset null setting (Chao Li)", "commit_aliases": ["4df5fe383"], "source_commits": ["4df5fe383"], "source_entry_id": "19.0/migration/016", "db_id": "24d706693cffbda588c92cb4158295d1", "patch_ids": ["48547778883b24941cb761a838f78799"], "statement_hash": "88e115335c8f352de42a90fea375b95f3f56eab41a01210d8134cd525b47789d", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-57a268be8495814f", "migration": true}, {"id": "19.0-b575f973d52cf40d", "cves": [], "html": "<p>\u79fb\u9664 <code>MULE_INTERNAL</code> \u7f16\u7801\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/77645d44e\">\u00a7</a></p>\n<p>\u8fd9\u79cd\u7f16\u7801\u5f88\u590d\u6742\uff0c\u800c\u4e14\u5f88\u5c11\u4f7f\u7528\u3002\u4f7f\u7528\u5b83\u7684\u6570\u636e\u5e93\u5c06\u9700\u8981\u4f7f\u7528\u4e0d\u540c\u7684\u7f16\u7801\u8fdb\u884c\u5bfc\u51fa\u548c\u6062\u590d\u3002</p>", "text": "\u79fb\u9664 MULE_INTERNAL \u7f16\u7801\uff08Thomas Munro\uff09\u00a7 \u8fd9\u79cd\u7f16\u7801\u5f88\u590d\u6742\uff0c\u800c\u4e14\u5f88\u5c11\u4f7f\u7528\u3002\u4f7f\u7528\u5b83\u7684\u6570\u636e\u5e93\u5c06\u9700\u8981\u4f7f\u7528\u4e0d\u540c\u7684\u7f16\u7801\u8fdb\u884c\u5bfc\u51fa\u548c\u6062\u590d\u3002", "title": "\u79fb\u9664 MULE_INTERNAL \u7f16\u7801", "commits": ["77645d44e"], "section": "\u517c\u5bb9\u6027", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "bbd1a72fdae94e463059def85d49a5f2971302c20887b0b7f5942e747617ecb3", "section_path": ["\u517c\u5bb9\u6027"], "commit_groups": [["77645d44e"]], "identity_text": "Remove MULE_INTERNAL encoding (Thomas Munro) This encoding was complex and rarely used. Databases using it will need to be dumped and restored with a different encoding.", "commit_aliases": ["77645d44e"], "source_commits": ["77645d44e"], "source_entry_id": "19.0/migration/017", "db_id": "23f95991b047086faa8e13abfe46f775", "patch_ids": ["8d7fc34088b380faed06d973ad51df33"], "statement_hash": "0bcba35e6ec3fed48fcf47b2a0c8c06360235579f1c905251cbb0ae5c682c2e8", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=19.0#19.0-b575f973d52cf40d", "migration": true}, {"id": "19.0-ed47226a272cd207", "cves": [], "html": "<p>\u5728\u4e0d\u5b58\u5728 NULL \u65f6\uff0c\u5141\u8bb8\u5c06 <code>NOT IN</code> \u8f6c\u6362\u4e3a\u66f4\u9ad8\u6548\u7684 <code>ANTI JOIN</code>\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/383eb21eb\">\u00a7</a></p>", "text": "\u5728\u4e0d\u5b58\u5728 NULL \u65f6\uff0c\u5141\u8bb8\u5c06 NOT IN \u8f6c\u6362\u4e3a\u66f4\u9ad8\u6548\u7684 ANTI JOIN\uff08Richard Guo\uff09\u00a7", "title": "\u5728\u4e0d\u5b58\u5728 NULL \u65f6\uff0c\u5141\u8bb8\u5c06 NOT IN \u8f6c\u6362\u4e3a\u66f4\u9ad8\u6548\u7684 ANTI JOIN", "commits": ["383eb21eb"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "4c50ca5897e46247f8e4b6f59a28f8aa3ce02b3ee0834a0431a0a78515a3d073", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["383eb21eb"]], "identity_text": "Allow NOT IN clauses to be converted to more efficient ANTI JOINs when NULLs are not present (Richard Guo)", "commit_aliases": ["383eb21eb"], "source_commits": ["383eb21eb"], "source_entry_id": "19.0/changes/001", "db_id": "39c117f3fa7adf79da47166f4825b1dc", "patch_ids": ["5afcd1265980a140ea7dd0e9cb066b15"], "statement_hash": "fb215706df436cf3276a0acf413da59db60cc02e3d1216b1d1d0b439382e7249", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-ed47226a272cd207", "migration": false}, {"id": "19.0-1ea26a6708614047", "cves": [], "html": "<p>\u5141\u8bb8\u66f4\u591a <code>LEFT JOIN</code> \u8f6c\u6362\u4e3a <code>ANTI JOIN</code>\uff08Tender Wang\uff0cRichard Guo\uff09<a href=\"https://postgr.es/c/cf74558fe\">\u00a7</a></p>", "text": "\u5141\u8bb8\u66f4\u591a LEFT JOIN \u8f6c\u6362\u4e3a ANTI JOIN\uff08Tender Wang\uff0cRichard Guo\uff09\u00a7", "title": "\u5141\u8bb8\u66f4\u591a LEFT JOIN \u8f6c\u6362\u4e3a ANTI JOIN", "commits": ["cf74558fe"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "7e327562d4a6b632797fe90482e8dc13f67f69aaa89cb9db338af40677140e00", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["cf74558fe"]], "identity_text": "Allow more LEFT JOINs to be converted to ANTI JOINs (Tender Wang, Richard Guo)", "commit_aliases": ["cf74558fe"], "source_commits": ["cf74558fe"], "source_entry_id": "19.0/changes/002", "db_id": "b14ad51258f5cdaacbbfcc642a4e2e5a", "patch_ids": ["34be0ad8c51c6d6c8e622c145dc771f9"], "statement_hash": "40cd753f910f478e2dce62e7dba53068faa04cb06f20e30ecf2411ca8a5b0363", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-1ea26a6708614047", "migration": false}, {"id": "19.0-9f9ed9ab8122d02e", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u552f\u4e00\u5185\u4fa7\u7684 <code>ANTI JOIN</code> \u4e2d\u4f7f\u7528 Memoize\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/0da29e4cb\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728\u552f\u4e00\u5185\u4fa7\u7684 ANTI JOIN \u4e2d\u4f7f\u7528 Memoize\uff08Richard Guo\uff09\u00a7", "title": "\u5141\u8bb8\u5728\u552f\u4e00\u5185\u4fa7\u7684 ANTI JOIN \u4e2d\u4f7f\u7528 Memoize", "commits": ["0da29e4cb"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "bdb07863cf84925c4e542062653780456747d761f7832054ff2835a51e429405", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["0da29e4cb"]], "identity_text": "Allow use of Memoize for ANTI JOINs with unique inner sides (Richard Guo)", "commit_aliases": ["0da29e4cb"], "source_commits": ["0da29e4cb"], "source_entry_id": "19.0/changes/003", "db_id": "0f0d884ae845f9038785e481172d1f4f", "patch_ids": ["8b76681fe126b848fe98cb7d5af237a6"], "statement_hash": "d1a634c1f6b4d823672618004f88435d00388c69514631952683becc4a53d7ea", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-9f9ed9ab8122d02e", "migration": false}, {"id": "19.0-48a24ee5e518138a", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u8fde\u63a5\u4e4b\u524d\u5148\u6267\u884c\u67d0\u4e9b\u805a\u5408\u5904\u7406\uff08Richard Guo\uff0cAntonin Houska\uff09<a href=\"https://postgr.es/c/8e1185910\">\u00a7</a><a href=\"https://postgr.es/c/bd94845e8\">\u00a7</a><a href=\"https://postgr.es/c/3a08a2a8b\">\u00a7</a></p>\n<p>\u8fd9\u53ef\u4ee5\u51cf\u5c11\u9700\u8981\u5904\u7406\u7684\u884c\u6570\u3002</p>", "text": "\u5141\u8bb8\u5728\u8fde\u63a5\u4e4b\u524d\u5148\u6267\u884c\u67d0\u4e9b\u805a\u5408\u5904\u7406\uff08Richard Guo\uff0cAntonin Houska\uff09\u00a7\u00a7\u00a7 \u8fd9\u53ef\u4ee5\u51cf\u5c11\u9700\u8981\u5904\u7406\u7684\u884c\u6570\u3002", "title": "\u5141\u8bb8\u5728\u8fde\u63a5\u4e4b\u524d\u5148\u6267\u884c\u67d0\u4e9b\u805a\u5408\u5904\u7406", "commits": ["3a08a2a8b", "8e1185910", "bd94845e8"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "7f74d6348893d4c4907c7fdba9651e0097c05a2f55b4edd383a1c9577534d377", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["3a08a2a8b"], ["8e1185910"], ["bd94845e8"]], "identity_text": "Allow some aggregate processing to be performed before joins (Richard Guo, Antonin Houska) This can reduce the number of rows needed to be processed.", "commit_aliases": ["3a08a2a8b", "8e1185910", "bd94845e8"], "source_commits": ["3a08a2a8b", "8e1185910", "bd94845e8"], "source_entry_id": "19.0/changes/004", "db_id": "2c9e35c599775907c3b3bdda01894b08", "patch_ids": ["5913f214801aba0a67487defef3e5b0d", "8291b2a60abb0fe5a064be000be5f8fa", "cffcdfa6b2dc4400ca76dfa397fae5ef"], "statement_hash": "ebcf53889c9089799193d955b5499ed5608d3ed9bebbf5f510a69c50c88d2a6a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-48a24ee5e518138a", "migration": false}, {"id": "19.0-240f02bcc93c509f", "cves": [], "html": "<p>\u6539\u8fdb\u54c8\u5e0c\u8fde\u63a5\u5bf9\u5e26 <code>NULL</code> \u8fde\u63a5\u952e\u5143\u7ec4\u7684\u5904\u7406\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/1811f1af9\">\u00a7</a></p>", "text": "\u6539\u8fdb\u54c8\u5e0c\u8fde\u63a5\u5bf9\u5e26 NULL \u8fde\u63a5\u952e\u5143\u7ec4\u7684\u5904\u7406\uff08Tom Lane\uff09\u00a7", "title": "\u6539\u8fdb\u54c8\u5e0c\u8fde\u63a5\u5bf9\u5e26 NULL \u8fde\u63a5\u952e\u5143\u7ec4\u7684\u5904\u7406", "commits": ["1811f1af9"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "ea2def5dda27297a9c9b9dc23f0a71bceb2c7afa4043ffe0486ecf5cdb577f91", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["1811f1af9"]], "identity_text": "Improve hash join's handling of tuples with NULL join keys (Tom Lane)", "commit_aliases": ["1811f1af9"], "source_commits": ["1811f1af9"], "source_entry_id": "19.0/changes/005", "db_id": "f09575e09ca42ed766499dd663fde44f", "patch_ids": ["210e0aafe9768e27a805d2751403fe01"], "statement_hash": "4be393e01014eee5764cb829f8dfa6740a5ed45cd6dcfe1ec9bcde4508adf99a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-240f02bcc93c509f", "migration": false}, {"id": "19.0-6b2101a8e979009b", "cves": [], "html": "<p>\u6539\u8fdb\u534a\u8fde\u63a5\u89c4\u5212\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/24225ad9a\">\u00a7</a></p>", "text": "\u6539\u8fdb\u534a\u8fde\u63a5\u89c4\u5212\uff08Richard Guo\uff09\u00a7", "title": "\u6539\u8fdb\u534a\u8fde\u63a5\u89c4\u5212", "commits": ["24225ad9a"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "75942474d30819e9e00598e0c7237ad5f11d5d761f5effe8cff1d0eeca807b75", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["24225ad9a"]], "identity_text": "Improve the planning of semijoins (Richard Guo)", "commit_aliases": ["24225ad9a"], "source_commits": ["24225ad9a"], "source_entry_id": "19.0/changes/006", "db_id": "5e54b3a7512536e84f3ce0af31e9f570", "patch_ids": ["12f0b9df9adf791089766c7b6965b423"], "statement_hash": "3fd89272a005636d87d53bdef6753d0bc89ae0d9a98d441084003e15c79228f9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-6b2101a8e979009b", "migration": false}, {"id": "19.0-d9b16eaa714a4a8b", "cves": [], "html": "<p>\u5141\u8bb8 Append \u548c MergeAppend \u8003\u8651\u663e\u5f0f\u589e\u91cf\u6392\u5e8f\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/55a780e94\">\u00a7</a></p>", "text": "\u5141\u8bb8 Append \u548c MergeAppend \u8003\u8651\u663e\u5f0f\u589e\u91cf\u6392\u5e8f\uff08Richard Guo\uff09\u00a7", "title": "\u5141\u8bb8 Append \u548c MergeAppend \u8003\u8651\u663e\u5f0f\u589e\u91cf\u6392\u5e8f", "commits": ["55a780e94"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "168d85d328dd11f20f1143c8a296e6e58847c424d173b21a50778b8fd9926fc7", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["55a780e94"]], "identity_text": "Allow Append and MergeAppend to consider explicit incremental sorts (Richard Guo)", "commit_aliases": ["55a780e94"], "source_commits": ["55a780e94"], "source_entry_id": "19.0/changes/007", "db_id": "6203b6154c3f44bfeba263b117e32150", "patch_ids": ["27e38922acefd323b2455933decbe319"], "statement_hash": "8157792aabe82a5852660e085153c9a6bf0beab886d8b8c2b2ede534649d2d3f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-d9b16eaa714a4a8b", "migration": false}, {"id": "19.0-624a89f78af89233", "cves": [], "html": "<p>\u5728\u5e38\u91cf\u6298\u53e0\u671f\u95f4\u5c06 <a href=\"/docs/19/functions-comparison.html#FUNCTIONS-COMPARISON-PRED-TABLE\" title=\"\u8868\u00a09.2.\u00a0\u6bd4\u8f83\u8c13\u8bcd\"><code>IS [NOT] DISTINCT FROM NULL</code></a> \u8f6c\u6362\u4e3a <code>IS [NOT] NULL</code>\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/f41ab5157\">\u00a7</a></p>\n<p>\u540e\u4e00\u79cd\u5f62\u5f0f\u66f4\u6613\u4f18\u5316\u3002</p>", "text": "\u5728\u5e38\u91cf\u6298\u53e0\u671f\u95f4\u5c06 IS [NOT] DISTINCT FROM NULL \u8f6c\u6362\u4e3a IS [NOT] NULL\uff08Richard Guo\uff09\u00a7 \u540e\u4e00\u79cd\u5f62\u5f0f\u66f4\u6613\u4f18\u5316\u3002", "title": "\u5728\u5e38\u91cf\u6298\u53e0\u671f\u95f4\u5c06 IS [NOT] DISTINCT FROM NULL \u8f6c\u6362\u4e3a IS [NOT] NULL", "commits": ["f41ab5157"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "f8cee679d25843f381baa6003d11f6160d2534997063e623fea3e5946afc7e7e", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["f41ab5157"]], "identity_text": "Convert IS [NOT] DISTINCT FROM NULL to IS [NOT] NULL during constant folding (Richard Guo) The latter form is more easily optimized.", "commit_aliases": ["f41ab5157"], "source_commits": ["f41ab5157"], "source_entry_id": "19.0/changes/008", "db_id": "5338907e026429e992a5d52baa60153c", "patch_ids": ["a2fb1e20430f831c885b369e3405d403"], "statement_hash": "584ad92a9292ff29cd0d6cbda4cca44bf3e68f1d8d60a18c5eed98840068e80e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-624a89f78af89233", "migration": false}, {"id": "19.0-ce270a5acc606cd6", "cves": [], "html": "<p>\u5f53\u8f93\u5165\u88ab\u8bc1\u660e\u975e\u7a7a\u65f6\uff0c\u5c06 <a href=\"/docs/19/functions-comparison.html#FUNCTIONS-COMPARISON-PRED-TABLE\" title=\"\u8868\u00a09.2.\u00a0\u6bd4\u8f83\u8c13\u8bcd\"><code>IS [NOT] DISTINCT FROM</code></a> \u7b80\u5316\u4e3a\u7b49\u503c/\u4e0d\u7b49\u503c\u64cd\u4f5c\u7b26\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/0a3796125\">\u00a7</a></p>", "text": "\u5f53\u8f93\u5165\u88ab\u8bc1\u660e\u975e\u7a7a\u65f6\uff0c\u5c06 IS [NOT] DISTINCT FROM \u7b80\u5316\u4e3a\u7b49\u503c/\u4e0d\u7b49\u503c\u64cd\u4f5c\u7b26\uff08Richard Guo\uff09\u00a7", "title": "\u5f53\u8f93\u5165\u88ab\u8bc1\u660e\u975e\u7a7a\u65f6\uff0c\u5c06 IS [NOT] DISTINCT FROM \u7b80\u5316\u4e3a\u7b49\u503c/\u4e0d\u7b49\u503c\u64cd\u4f5c\u7b26", "commits": ["0a3796125"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "f37bbc446a232ba86a7f726cccd2db4d1b24885ba64e8a8a9984d4b45ecc6793", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["0a3796125"]], "identity_text": "Simplify IS [NOT] DISTINCT FROM to equality/inequality operators when inputs are proven non-nullable (Richard Guo)", "commit_aliases": ["0a3796125"], "source_commits": ["0a3796125"], "source_entry_id": "19.0/changes/009", "db_id": "11fc82a446b38332c14ca15e6502c3ba", "patch_ids": ["606b2febb5bf8d1ba041bc732eecd82c"], "statement_hash": "3ed3189a74dce28a3d35d0aeaf5af4e7c8c37ad2e2379cbe85ac4005bcb5a604", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-ce270a5acc606cd6", "migration": false}, {"id": "19.0-515f3f8d5df3eb02", "cves": [], "html": "<p>\u5728\u4f18\u5316\u5668\u4e2d\u66f4\u65e9\u5730\u5bf9 <em><code>var</code></em> <code>IS [NOT] NULL</code> \u505a\u5e38\u91cf\u6298\u53e0\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/e2debb643\">\u00a7</a></p>\n<p>\u8fd9\u4e3a\u540e\u7eed\u4f18\u5316\u521b\u9020\u4e86\u6761\u4ef6\u3002</p>", "text": "\u5728\u4f18\u5316\u5668\u4e2d\u66f4\u65e9\u5730\u5bf9 var IS [NOT] NULL \u505a\u5e38\u91cf\u6298\u53e0\uff08Richard Guo\uff09\u00a7 \u8fd9\u4e3a\u540e\u7eed\u4f18\u5316\u521b\u9020\u4e86\u6761\u4ef6\u3002", "title": "\u5728\u4f18\u5316\u5668\u4e2d\u66f4\u65e9\u5730\u5bf9 var IS [NOT] NULL \u505a\u5e38\u91cf\u6298\u53e0", "commits": ["e2debb643"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "207dee13849180dc9608920be0724e490b3efe178b8488272a97eae878b1ec8d", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["e2debb643"]], "identity_text": "Perform earlier constant folding of var IS [NOT] NULL in the optimizer (Richard Guo) This allows for later optimizations.", "commit_aliases": ["e2debb643"], "source_commits": ["e2debb643"], "source_entry_id": "19.0/changes/010", "db_id": "be54aea280d26ed11021e92f08c48471", "patch_ids": ["4da26000bced26e6b5a890ab16d061f3"], "statement_hash": "2effe9bc40747a1dedba1a62ebceecfe10a353e6c2d7defc920764e73507eb25", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-515f3f8d5df3eb02", "migration": false}, {"id": "19.0-8d2f357a55f7037f", "cves": [], "html": "<p>\u7b80\u5316 <a href=\"/docs/19/functions-conditional.html#FUNCTIONS-COALESCE-NVL-IFNULL\" title=\"9.19.2.\u00a0COALESCE\"><code>COALESCE()</code></a> \u548c <code>ROW(...) IS [NOT] NULL</code>\uff0c\u4ee5\u907f\u514d\u6c42\u503c\u4e0d\u5fc5\u8981\u7684\u53c2\u6570\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/10c4fe074\">\u00a7</a><a href=\"https://postgr.es/c/cb7b7ec7a\">\u00a7</a></p>", "text": "\u7b80\u5316 COALESCE() \u548c ROW(...) IS [NOT] NULL\uff0c\u4ee5\u907f\u514d\u6c42\u503c\u4e0d\u5fc5\u8981\u7684\u53c2\u6570\uff08Richard Guo\uff09\u00a7\u00a7", "title": "\u7b80\u5316 COALESCE() \u548c ROW(...) IS [NOT] NULL\uff0c\u4ee5\u907f\u514d\u6c42\u503c\u4e0d\u5fc5\u8981\u7684\u53c2\u6570", "commits": ["10c4fe074", "cb7b7ec7a"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "4034bfc0738904fac7539b3194238c49a2b12d2ec8df9a88b15e47b198438015", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["10c4fe074"], ["cb7b7ec7a"]], "identity_text": "Simplify COALESCE() and ROW(...) IS [NOT] NULL to avoid evaluating unnecessary arguments (Richard Guo)", "commit_aliases": ["10c4fe074", "cb7b7ec7a"], "source_commits": ["10c4fe074", "cb7b7ec7a"], "source_entry_id": "19.0/changes/011", "db_id": "57a1b62101caf6d36235619e5c096df9", "patch_ids": ["68ba954bf29231cce3aacd7fdf28101a", "aa728d0817a40cedb9a213b1975b65ea"], "statement_hash": "016988a4c3afa7c989ab9e051214f974ecb92bcc3e8e5e6cf41a6588a8eb08c0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-8d2f357a55f7037f", "migration": false}, {"id": "19.0-6b8d92824549bd0e", "cves": [], "html": "<p>\u5f53\u8f93\u5165\u88ab\u8bc1\u660e\u975e\u7a7a\u65f6\uff0c\u5c06 <code>IS [NOT] TRUE/FALSE/UNKNOWN</code> \u7b80\u5316\u4e3a\u666e\u901a boolean \u8868\u8fbe\u5f0f\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/0aaf0de7f\">\u00a7</a></p>", "text": "\u5f53\u8f93\u5165\u88ab\u8bc1\u660e\u975e\u7a7a\u65f6\uff0c\u5c06 IS [NOT] TRUE/FALSE/UNKNOWN \u7b80\u5316\u4e3a\u666e\u901a boolean \u8868\u8fbe\u5f0f\uff08Richard Guo\uff09\u00a7", "title": "\u5f53\u8f93\u5165\u88ab\u8bc1\u660e\u975e\u7a7a\u65f6\uff0c\u5c06 IS [NOT] TRUE/FALSE/UNKNOWN \u7b80\u5316\u4e3a\u666e\u901a boolean \u8868\u8fbe\u5f0f", "commits": ["0aaf0de7f"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "47bcecc2c61cb3dedbf4fab001e38ad8110978c5f866a29caed2ef4a26df71ae", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["0aaf0de7f"]], "identity_text": "Simplify IS [NOT] TRUE/FALSE/UNKNOWN to plain boolean expressions when the input is proven non-nullable (Richard Guo)", "commit_aliases": ["0aaf0de7f"], "source_commits": ["0aaf0de7f"], "source_entry_id": "19.0/changes/012", "db_id": "8e5dddf4bed1eba38b72b9274cbe91d0", "patch_ids": ["659aa13e96e6ca9a33f132d2e1273d81"], "statement_hash": "148a783b056c99a1f445e04204b2be1219aa7430b2007ed469c4d0f59279b2ff", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-6b8d92824549bd0e", "migration": false}, {"id": "19.0-f1508e3c09a02f6a", "cves": [], "html": "<p>\u52a0\u5feb\u5927\u7edf\u8ba1\u76ee\u6807\u4e0b\u7684\u8fde\u63a5\u9009\u62e9\u7387\u8ba1\u7b97\uff08Ilia Evdokimov\uff0cDavid Geier\uff09<a href=\"https://postgr.es/c/057012b20\">\u00a7</a></p>", "text": "\u52a0\u5feb\u5927\u7edf\u8ba1\u76ee\u6807\u4e0b\u7684\u8fde\u63a5\u9009\u62e9\u7387\u8ba1\u7b97\uff08Ilia Evdokimov\uff0cDavid Geier\uff09\u00a7", "title": "\u52a0\u5feb\u5927\u7edf\u8ba1\u76ee\u6807\u4e0b\u7684\u8fde\u63a5\u9009\u62e9\u7387\u8ba1\u7b97", "commits": ["057012b20"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "cb5816282635fc4ea2cac9e1dada380cf14eabdd7423586d7e0ad26b80739f00", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["057012b20"]], "identity_text": "Speed up join selectivity computations for large optimizer statistics targets (Ilia Evdokimov, David Geier)", "commit_aliases": ["057012b20"], "source_commits": ["057012b20"], "source_entry_id": "19.0/changes/013", "db_id": "731ee1882a965fff802edea15955fc65", "patch_ids": ["05810a8a82ed49e8d50c9a8d2307b017"], "statement_hash": "84bbb53ff5d48be13b424836a4e7afe094b25441ba268a7491cfa5b6fedd4a8d", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-f1508e3c09a02f6a", "migration": false}, {"id": "19.0-c358e009273564cd", "cves": [], "html": "<p>\u4e3a\u8fd4\u56de boolean \u503c\u7684\u51fd\u6570\u542f\u7528\u6b63\u786e\u7684\u4f18\u5316\u5668\u7edf\u8ba1\u4fe1\u606f\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/1eccb9315\">\u00a7</a></p>", "text": "\u4e3a\u8fd4\u56de boolean \u503c\u7684\u51fd\u6570\u542f\u7528\u6b63\u786e\u7684\u4f18\u5316\u5668\u7edf\u8ba1\u4fe1\u606f\uff08Tom Lane\uff09\u00a7", "title": "\u4e3a\u8fd4\u56de boolean \u503c\u7684\u51fd\u6570\u542f\u7528\u6b63\u786e\u7684\u4f18\u5316\u5668\u7edf\u8ba1\u4fe1\u606f", "commits": ["1eccb9315"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "d5709e222aeb794df1186d7bfc6866f6314cc7c5d808163a04d35452e7811b6d", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["1eccb9315"]], "identity_text": "Enable proper optimizer statistics for functions returning boolean values (Tom Lane)", "commit_aliases": ["1eccb9315"], "source_commits": ["1eccb9315"], "source_entry_id": "19.0/changes/014", "db_id": "7f294ecac4e9a1916f488d72859c484d", "patch_ids": ["f46850b6c4c52bf1a7b94d806ec57249"], "statement_hash": "5d42b8b729544c58d41a4a5d300b78e9cab3bfc0edd1d32a68ff9e0627aa4d24", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-c358e009273564cd", "migration": false}, {"id": "19.0-27e354b00ed2166b", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u865a\u62df\u751f\u6210\u5217\u4e0a\u4f7f\u7528<a href=\"/docs/19/sql-createstatistics.html\" title=\"CREATE STATISTICS\">\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f</a>\uff08Yugo Nagata\uff09<a href=\"https://postgr.es/c/f7f4052a4\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728\u865a\u62df\u751f\u6210\u5217\u4e0a\u4f7f\u7528\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\uff08Yugo Nagata\uff09\u00a7", "title": "\u5141\u8bb8\u5728\u865a\u62df\u751f\u6210\u5217\u4e0a\u4f7f\u7528\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f", "commits": ["f7f4052a4"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "5a074288a48869ff3a55a55fc43a11169ebfbd3cbd4eb589c0dcdf4fb7fb8318", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["f7f4052a4"]], "identity_text": "Allow extended statistics on virtual generated columns (Yugo Nagata)", "commit_aliases": ["f7f4052a4"], "source_commits": ["f7f4052a4"], "source_entry_id": "19.0/changes/015", "db_id": "e521d4153b595d7b0a4bd84a7f2997b5", "patch_ids": ["5fd1f955452ebdb244af256249b84e03"], "statement_hash": "f08840b159de68e3dfb347da5a75c110c84bb48e47d4d2bfb5133dc5919c168f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-27e354b00ed2166b", "migration": false}, {"id": "19.0-eb45123fe56770bd", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/functions-admin.html#FUNCTIONS-ADMIN-STATSMOD\" title=\"\u8868\u00a09.106.\u00a0\u6570\u636e\u5e93\u5bf9\u8c61\u7edf\u8ba1\u4fe1\u606f\u64cd\u7eb5\u51fd\u6570\"><code>pg_restore_extended_stats()</code></a> \u6062\u590d\u4f18\u5316\u5668\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\uff08Corey Huinker\uff0cMichael Paquier\uff0cChao Li\uff09<a href=\"https://postgr.es/c/0e80f3f88\">\u00a7</a><a href=\"https://postgr.es/c/302879bd6\">\u00a7</a><a href=\"https://postgr.es/c/efbebb4e8\">\u00a7</a><a href=\"https://postgr.es/c/ba97bf9cb\">\u00a7</a></p>", "text": "\u5141\u8bb8 pg_restore_extended_stats() \u6062\u590d\u4f18\u5316\u5668\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\uff08Corey Huinker\uff0cMichael Paquier\uff0cChao Li\uff09\u00a7\u00a7\u00a7\u00a7", "title": "\u5141\u8bb8 pg_restore_extended_stats() \u6062\u590d\u4f18\u5316\u5668\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f", "commits": ["0e80f3f88", "302879bd6", "ba97bf9cb", "efbebb4e8"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "5d2ac60236272372b0b5df8707f760cf8c56aab84ea246fc1425d1da72001ee7", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["0e80f3f88"], ["302879bd6"], ["ba97bf9cb"], ["efbebb4e8"]], "identity_text": "Allow function pg_restore_extended_stats() to restore optimizer extended statistics (Corey Huinker, Michael Paquier, Chao Li)", "commit_aliases": ["0e80f3f88", "302879bd6", "ba97bf9cb", "efbebb4e8"], "source_commits": ["0e80f3f88", "302879bd6", "ba97bf9cb", "efbebb4e8"], "source_entry_id": "19.0/changes/016", "db_id": "754bc8e61d68041704cf28e4bd68d59d", "patch_ids": ["3aac308aad808487c34815e62a11c19b", "754bade21783a1ed8ea2e5108389871a", "7e47934dd8f6f597a4afdaa4cf023ea4", "f7d7d21b159965e6b044a55c33ef754e"], "statement_hash": "7d3748c033b3d8c7b34fb4d592a19202a21b00a59e5444ec84f5222e9c8449eb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-eb45123fe56770bd", "migration": false}, {"id": "19.0-06795fad84eeac75", "cves": [], "html": "<p>\u65b0\u589e\u51fd\u6570 <a href=\"/docs/19/functions-admin.html#FUNCTIONS-ADMIN-STATSMOD\" title=\"\u8868\u00a09.106.\u00a0\u6570\u636e\u5e93\u5bf9\u8c61\u7edf\u8ba1\u4fe1\u606f\u64cd\u7eb5\u51fd\u6570\"><code>pg_clear_extended_stats()</code></a> \u7528\u4e8e\u5220\u9664\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\uff08Corey Huinker\uff0cMichael Paquier\uff09<a href=\"https://postgr.es/c/d756fa101\">\u00a7</a></p>", "text": "\u65b0\u589e\u51fd\u6570 pg_clear_extended_stats() \u7528\u4e8e\u5220\u9664\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\uff08Corey Huinker\uff0cMichael Paquier\uff09\u00a7", "title": "\u65b0\u589e\u51fd\u6570 pg_clear_extended_stats() \u7528\u4e8e\u5220\u9664\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f", "commits": ["d756fa101"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "0143240d5d549c74da704a02c410b989b9d211c3681fdc39e588bb837092328c", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["d756fa101"]], "identity_text": "Add function pg_clear_extended_stats() to remove extended statistics (Corey Huinker, Michael Paquier)", "commit_aliases": ["d756fa101"], "source_commits": ["d756fa101"], "source_entry_id": "19.0/changes/017", "db_id": "41aba3ef33942d6a6ed5d8ff2097d288", "patch_ids": ["f8f7de025b1acbacc549bb2543ec6f8d"], "statement_hash": "0f4709c90206a532b27695343de92dbdd6e33aee5d3e711aa3d4169d99bafa27", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-06795fad84eeac75", "migration": false}, {"id": "19.0-fcf2f288ee8ee0b7", "cves": [], "html": "<p>\u8c03\u6574\u4f18\u5316\u5668\uff0c\u4f7f\u5176\u5728\u90e8\u5206\u8def\u5f84\u51b3\u7b56\u65f6\u8003\u8651\u542f\u52a8\u4ee3\u4ef7\uff08Robert Haas\uff0cTomas Vondra\uff09<a href=\"https://postgr.es/c/8300d3ad4\">\u00a7</a></p>", "text": "\u8c03\u6574\u4f18\u5316\u5668\uff0c\u4f7f\u5176\u5728\u90e8\u5206\u8def\u5f84\u51b3\u7b56\u65f6\u8003\u8651\u542f\u52a8\u4ee3\u4ef7\uff08Robert Haas\uff0cTomas Vondra\uff09\u00a7", "title": "\u8c03\u6574\u4f18\u5316\u5668\uff0c\u4f7f\u5176\u5728\u90e8\u5206\u8def\u5f84\u51b3\u7b56\u65f6\u8003\u8651\u542f\u52a8\u4ee3\u4ef7", "commits": ["8300d3ad4"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "0979d34b0375be1003ebc03dfc24a3731e87f34dbd17f20d10a0e3cc2d409ab6", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["8300d3ad4"]], "identity_text": "Adjust the optimizer to consider startup costs of partial paths (Robert Haas, Tomas Vondra)", "commit_aliases": ["8300d3ad4"], "source_commits": ["8300d3ad4"], "source_entry_id": "19.0/changes/018", "db_id": "4a027a3ab087d156be5cbf23dd9efa7b", "patch_ids": ["d2ad0209d8ff2c3963c69fa63df1925a"], "statement_hash": "a1a8105573366e0b72a29f2a7c0159bf1ad23b35b98c09a09132c8cc4a182cab", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-fcf2f288ee8ee0b7", "migration": false}, {"id": "19.0-3331d23627fad1b8", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/catalog-pg-aggregate.html\" title=\"52.2.\u00a0pg_aggregate\"><code>pg_aggregate</code></a>.<a href=\"/docs/19/catalog-pg-aggregate.html\" title=\"52.2.\u00a0pg_aggregate\"><code>aggtransspace</code></a> \u4e3a\u8d1f\u503c\uff0c\u4ee5\u8868\u793a\u5185\u5b58\u4f7f\u7528\u6ca1\u6709\u4e0a\u9650\uff08Richard Guo\uff09<a href=\"https://postgr.es/c/185e30426\">\u00a7</a></p>\n<p>\u8be5\u4fe1\u606f\u4f1a\u88ab\u4f18\u5316\u5668\u7528\u4e8e\u89c4\u5212\u5185\u5b58\u4f7f\u7528\u3002</p>", "text": "\u5141\u8bb8 pg_aggregate.aggtransspace \u4e3a\u8d1f\u503c\uff0c\u4ee5\u8868\u793a\u5185\u5b58\u4f7f\u7528\u6ca1\u6709\u4e0a\u9650\uff08Richard Guo\uff09\u00a7 \u8be5\u4fe1\u606f\u4f1a\u88ab\u4f18\u5316\u5668\u7528\u4e8e\u89c4\u5212\u5185\u5b58\u4f7f\u7528\u3002", "title": "\u5141\u8bb8 pg_aggregate.aggtransspace \u4e3a\u8d1f\u503c\uff0c\u4ee5\u8868\u793a\u5185\u5b58\u4f7f\u7528\u6ca1\u6709\u4e0a\u9650", "commits": ["185e30426"], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "0c15dfb6a376f19e29ce81b360b538607797f23fa3726050cf2a9f1133f94697", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [["185e30426"]], "identity_text": "Allow negative values of pg_aggregate.aggtransspace to indicate unbounded memory usage (Richard Guo) This information is used by the optimizer in planning memory usage.", "commit_aliases": ["185e30426"], "source_commits": ["185e30426"], "source_entry_id": "19.0/changes/019", "db_id": "f3d3c220e6026e0eeda7bd6d56f665e5", "patch_ids": ["5492488c92f30a827563d46acd1c15ba"], "statement_hash": "46976883fce19440f738354918a608956e7c2ca5a90ad03c654003c69efbe7ab", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-3331d23627fad1b8", "migration": false}, {"id": "19.0-e60811349444510a", "cves": [], "html": "<p>\u6539\u8fdb\u5916\u952e\u7ea6\u675f\u68c0\u67e5\u6027\u80fd\uff08Junwang Zhao\uff0cAmit Langote\uff0cChao Li\uff09<a href=\"https://postgr.es/c/2da86c1ef\">\u00a7</a><a href=\"https://postgr.es/c/e484b0eea\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5916\u952e\u7ea6\u675f\u68c0\u67e5\u6027\u80fd\uff08Junwang Zhao\uff0cAmit Langote\uff0cChao Li\uff09\u00a7\u00a7", "title": "\u6539\u8fdb\u5916\u952e\u7ea6\u675f\u68c0\u67e5\u6027\u80fd", "commits": ["2da86c1ef", "e484b0eea"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "4b1fa21f0dd9a6dc0c815850b02898286ac0f028cce3bf0a783f11095fbaf499", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["2da86c1ef"], ["e484b0eea"]], "identity_text": "Improve performance of foreign key constraint checks (Junwang Zhao, Amit Langote, Chao Li)", "commit_aliases": ["2da86c1ef", "e484b0eea"], "source_commits": ["2da86c1ef", "e484b0eea"], "source_entry_id": "19.0/changes/020", "db_id": "b1f9f55a512602ec9cd060bc2bc4371e", "patch_ids": ["00cf015ee47213a43181fb99b66a0771", "f4628d8586bd3ee7fa856a2b048ac468"], "statement_hash": "6721bd85527a6ca1358f80844fdc7e6fed859721c8241c12cec9e382035b32e7", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-e60811349444510a", "migration": false}, {"id": "19.0-f417f817672bff47", "cves": [], "html": "<p>\u6539\u8fdb\u5927\u8bf7\u6c42\u4e0b<a href=\"/docs/19/runtime-config-resource.html#GUC-IO-METHOD\">\u5f02\u6b65 I/O</a>\u8bfb\u9884\u53d6\u8c03\u5ea6\uff08Andres Freund\uff09<a href=\"https://postgr.es/c/a9ee66881\">\u00a7</a><a href=\"https://postgr.es/c/8ca147d58\">\u00a7</a><a href=\"https://postgr.es/c/f63ca3379\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5927\u8bf7\u6c42\u4e0b\u5f02\u6b65 I/O\u8bfb\u9884\u53d6\u8c03\u5ea6\uff08Andres Freund\uff09\u00a7\u00a7\u00a7", "title": "\u6539\u8fdb\u5927\u8bf7\u6c42\u4e0b\u5f02\u6b65 I/O\u8bfb\u9884\u53d6\u8c03\u5ea6", "commits": ["8ca147d58", "a9ee66881", "f63ca3379"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "387f271f171b23c761d21c0ad07898142ffcb42364770d68d60cc9d395101b9a", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["8ca147d58"], ["a9ee66881"], ["f63ca3379"]], "identity_text": "Improve asynchronous I/O read-ahead scheduling for large requests (Andres Freund)", "commit_aliases": ["8ca147d58", "a9ee66881", "f63ca3379"], "source_commits": ["8ca147d58", "a9ee66881", "f63ca3379"], "source_entry_id": "19.0/changes/021", "db_id": "b4d4b57a7f99bc9f44ad1314afae429b", "patch_ids": ["2072501f14b820f1bfe35915d8b30158", "e087def6571d3f6e5a061dae62c2fd7c", "fe9957778679eb91b18205b9537edb64"], "statement_hash": "6cfcc165edbe911269bd81960b16bec9e8a30a5f6f44ec922baa64b01873c0ed", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-f417f817672bff47", "migration": false}, {"id": "19.0-1a286e47a7833938", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/runtime-config-resource.html#GUC-IO-METHOD\"><code>io_method</code></a> = \"<code>worker</code>\" \u81ea\u52a8\u63a7\u5236\u6240\u9700\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\uff08Thomas Munro\uff09<a href=\"https://postgr.es/c/d1c01b79d\">\u00a7</a></p>\n<p>\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-resource.html#GUC-IO-MIN-WORKERS\"><code>io_min_workers</code></a>\u3001<a href=\"/docs/19/runtime-config-resource.html#GUC-IO-MAX-WORKERS\"><code>io_max_workers</code></a>\u3001<a href=\"/docs/19/runtime-config-resource.html#GUC-IO-WORKER-IDLE-TIMEOUT\"><code>io_worker_idle_timeout</code></a> \u548c <a href=\"/docs/19/runtime-config-resource.html#GUC-IO-WORKER-LAUNCH-INTERVAL\"><code>io_worker_launch_interval</code></a>\u3002</p>", "text": "\u5141\u8bb8 io_method = \"worker\" \u81ea\u52a8\u63a7\u5236\u6240\u9700\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\uff08Thomas Munro\uff09\u00a7 \u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf io_min_workers\u3001io_max_workers\u3001io_worker_idle_timeout \u548c io_worker_launch_interval\u3002", "title": "\u5141\u8bb8 io_method = \"worker\" \u81ea\u52a8\u63a7\u5236\u6240\u9700\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b", "commits": ["d1c01b79d"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "0a9bfdeaf6759e077b7807eee93e8e6e53ab1c3ce3e64d1437c539d72ffb6f32", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["d1c01b79d"]], "identity_text": "Allow io_method method worker to automatically control needed background workers (Thomas Munro) The new server variables are io_min_workers, io_max_workers, io_worker_idle_timeout, and io_worker_launch_interval.", "commit_aliases": ["d1c01b79d"], "source_commits": ["d1c01b79d"], "source_entry_id": "19.0/changes/022", "db_id": "c5e682edb6d0e753a07c754d48223848", "patch_ids": ["a169ee84ddbd574a455365395bab1dc4"], "statement_hash": "33d169ec095b66285e4a86bc4f2e5ede3e62f3090896d379a607543d557df376", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-1a286e47a7833938", "migration": false}, {"id": "19.0-552fbeaf9dd98203", "cves": [], "html": "<p>\u5141\u8bb8\u67e5\u8be2\u4e2d\u7684\u8868\u626b\u63cf\u5728<a href=\"/docs/19/routine-vacuuming.html#VACUUM-FOR-VISIBILITY-MAP\" title=\"24.1.4.\u00a0\u66f4\u65b0\u53ef\u89c1\u6027\u6620\u5c04\">\u53ef\u89c1\u6027\u6620\u5c04</a>\u4e2d\u5c06\u9875\u9762\u6807\u8bb0\u4e3a\u5168\u53ef\u89c1\uff08Melanie Plageman\uff09<a href=\"https://postgr.es/c/b46e1e54d\">\u00a7</a></p>\n<p>\u6b64\u524d\u53ea\u6709 <a href=\"/docs/19/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> \u548c <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY ... FREEZE</code></a> \u53ef\u4ee5\u505a\u5230\u8fd9\u4e00\u70b9\u3002</p>", "text": "\u5141\u8bb8\u67e5\u8be2\u4e2d\u7684\u8868\u626b\u63cf\u5728\u53ef\u89c1\u6027\u6620\u5c04\u4e2d\u5c06\u9875\u9762\u6807\u8bb0\u4e3a\u5168\u53ef\u89c1\uff08Melanie Plageman\uff09\u00a7 \u6b64\u524d\u53ea\u6709 VACUUM \u548c COPY ... FREEZE \u53ef\u4ee5\u505a\u5230\u8fd9\u4e00\u70b9\u3002", "title": "\u5141\u8bb8\u67e5\u8be2\u4e2d\u7684\u8868\u626b\u63cf\u5728\u53ef\u89c1\u6027\u6620\u5c04\u4e2d\u5c06\u9875\u9762\u6807\u8bb0\u4e3a\u5168\u53ef\u89c1", "commits": ["b46e1e54d"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "9273e2b732c863827162b3d04de6d8f12e99b5109b31cd73b73178ec8a593a8b", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["b46e1e54d"]], "identity_text": "Allow query table scans to mark pages as all-visible in the visibility map (Melanie Plageman) Previously only VACUUM and COPY ... FREEZE could do this.", "commit_aliases": ["b46e1e54d"], "source_commits": ["b46e1e54d"], "source_entry_id": "19.0/changes/023", "db_id": "76b13e4c8fc284cc32adc9b29d10b363", "patch_ids": ["6a8f27889e6200ee92a2c2b96e0a1e62"], "statement_hash": "f7b21665ddffe4d56df3b384fa639c09064ad5d485c15b1843643bba88575b1e", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-552fbeaf9dd98203", "migration": false}, {"id": "19.0-d02b208d03c2469f", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/routine-vacuuming.html#AUTOVACUUM\" title=\"24.1.6.\u00a0\u81ea\u52a8\u6e05\u7406\u5b88\u62a4\u8fdb\u7a0b\">\u81ea\u52a8\u6e05\u7406</a>\u4f7f\u7528<a href=\"/docs/19/sql-createtable.html#RELOPTION-AUTOVACUUM-PARALLEL-WORKERS\"><code>\u5e76\u884c\u81ea\u52a8\u6e05\u7406\u5de5\u4f5c\u8fdb\u7a0b</code></a>\uff08Daniil Davydov\uff09<a href=\"https://postgr.es/c/1ff3180ca\">\u00a7</a><a href=\"https://postgr.es/c/2a3d2f9f6\">\u00a7</a></p>\n<p>\u5de5\u4f5c\u8fdb\u7a0b\u7684\u6700\u5927\u6570\u91cf\u7531\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-MAX-PARALLEL-WORKERS\"><code>autovacuum_max_parallel_workers</code></a> \u548c\u6bcf\u8868\u5b58\u50a8\u53c2\u6570 <code>autovacuum_parallel_workers</code> \u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8\u81ea\u52a8\u6e05\u7406\u4f7f\u7528\u5e76\u884c\u81ea\u52a8\u6e05\u7406\u5de5\u4f5c\u8fdb\u7a0b\uff08Daniil Davydov\uff09\u00a7\u00a7 \u5de5\u4f5c\u8fdb\u7a0b\u7684\u6700\u5927\u6570\u91cf\u7531\u670d\u52a1\u5668\u53d8\u91cf autovacuum_max_parallel_workers \u548c\u6bcf\u8868\u5b58\u50a8\u53c2\u6570 autovacuum_parallel_workers \u63a7\u5236\u3002", "title": "\u5141\u8bb8\u81ea\u52a8\u6e05\u7406\u4f7f\u7528\u5e76\u884c\u81ea\u52a8\u6e05\u7406\u5de5\u4f5c\u8fdb\u7a0b", "commits": ["1ff3180ca", "2a3d2f9f6"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "08cc8f291983d4a09b820ae5af6e83c5ad36422f0a9e2ba758dcf31316c34dda", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["1ff3180ca"], ["2a3d2f9f6"]], "identity_text": "Allow autovacuum to use parallel autovacuum workers (Daniil Davydov) The maximum number of workers is controlled by server variable autovacuum_max_parallel_workers and per-table storage parameter autovacuum_parallel_workers.", "commit_aliases": ["1ff3180ca", "2a3d2f9f6"], "source_commits": ["1ff3180ca", "2a3d2f9f6"], "source_entry_id": "19.0/changes/024", "db_id": "0d35219da77f982b814f937702009bc4", "patch_ids": ["d00bb448799a8e00977cd00e9bf68cfc", "e7ff818d9fede0e1f491e0948f7bf314"], "statement_hash": "20d308cd68e961bab7637b3cd372a4abdc0257b9ce19be99488cf441e1c53b74", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-d02b208d03c2469f", "migration": false}, {"id": "19.0-11c70cb05f85d692", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/datatype-oid.html\" title=\"8.19.\u00a0\u5bf9\u8c61\u6807\u8bc6\u7b26\u7c7b\u578b\"><code>TID</code></a> \u8303\u56f4\u626b\u63cf\u5e76\u884c\u6267\u884c\uff08Cary Huang\uff0cDavid Rowley\uff09<a href=\"https://postgr.es/c/0ca3b1697\">\u00a7</a></p>", "text": "\u5141\u8bb8 TID \u8303\u56f4\u626b\u63cf\u5e76\u884c\u6267\u884c\uff08Cary Huang\uff0cDavid Rowley\uff09\u00a7", "title": "\u5141\u8bb8 TID \u8303\u56f4\u626b\u63cf\u5e76\u884c\u6267\u884c", "commits": ["0ca3b1697"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "918f82ee3ea04c6a8849f3ae4cd14b49af4f4aa3425b9fef00f6a50f7543e71e", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["0ca3b1697"]], "identity_text": "Allow TID Range Scans to be parallelized (Cary Huang, David Rowley)", "commit_aliases": ["0ca3b1697"], "source_commits": ["0ca3b1697"], "source_entry_id": "19.0/changes/025", "db_id": "7c3eedfe04103a4350c1c749f105b5d3", "patch_ids": ["7d9994e362750e4bcfdb237f48d39ad0"], "statement_hash": "7152ed59ec02612602e221661cc104efc7e6a70fcc85a8a34f9ef6bac4c337da", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-11c70cb05f85d692", "migration": false}, {"id": "19.0-b1723e951085af50", "cves": [], "html": "<p>\u4f7f\u7528 <acronym>SIMD</acronym> CPU \u6307\u4ee4\u63d0\u5347 <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a> \u5904\u7406\u6587\u672c\u548c <acronym>CSV</acronym> \u8f93\u5165\u7684\u6027\u80fd\uff08Nazir Bilal Yavuz\uff0cShinya Kato\uff09<a href=\"https://postgr.es/c/e0a3a3fd5\">\u00a7</a></p>", "text": "\u4f7f\u7528 SIMD CPU \u6307\u4ee4\u63d0\u5347 COPY FROM \u5904\u7406\u6587\u672c\u548c CSV \u8f93\u5165\u7684\u6027\u80fd\uff08Nazir Bilal Yavuz\uff0cShinya Kato\uff09\u00a7", "title": "\u4f7f\u7528 SIMD CPU \u6307\u4ee4\u63d0\u5347 COPY FROM \u5904\u7406\u6587\u672c\u548c CSV \u8f93\u5165\u7684\u6027\u80fd", "commits": ["e0a3a3fd5"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "861106e022a1790aa6ba93ac6e264c93e0c4aa74ee673d0a357f2c0b381127aa", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["e0a3a3fd5"]], "identity_text": "Improve COPY FROM performance for text and CSV input using SIMD CPU instructions (Nazir Bilal Yavuz, Shinya Kato)", "commit_aliases": ["e0a3a3fd5"], "source_commits": ["e0a3a3fd5"], "source_entry_id": "19.0/changes/026", "db_id": "45aec4e1ec99e2006c53a4a19c340728", "patch_ids": ["7c26e1aeba8ab71718c7ba308657e115"], "statement_hash": "7589e7db24f5e61f7e42a40c7d945736722c212686b401443969a3bdde2d3193", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-b1723e951085af50", "migration": false}, {"id": "19.0-74f15db550e51aa0", "cves": [], "html": "<p>\u6539\u8fdb <a href=\"/docs/19/sql-notify.html\" title=\"NOTIFY\"><code>NOTIFY</code></a>\uff0c\u4f7f\u5176\u53ea\u5524\u9192\u6b63\u5728\u76d1\u542c\u6307\u5b9a\u901a\u77e5\u7684\u540e\u7aef\uff08Joel Jacobson\uff09<a href=\"https://postgr.es/c/282b1cde9\">\u00a7</a></p>\n<p>\u6b64\u524d\u5927\u591a\u6570\u540e\u7aef\u90fd\u4f1a\u88ab <a href=\"/docs/19/sql-notify.html\" title=\"NOTIFY\"><code>NOTIFY</code></a> \u5524\u9192\u3002</p>", "text": "\u6539\u8fdb NOTIFY\uff0c\u4f7f\u5176\u53ea\u5524\u9192\u6b63\u5728\u76d1\u542c\u6307\u5b9a\u901a\u77e5\u7684\u540e\u7aef\uff08Joel Jacobson\uff09\u00a7 \u6b64\u524d\u5927\u591a\u6570\u540e\u7aef\u90fd\u4f1a\u88ab NOTIFY \u5524\u9192\u3002", "title": "\u6539\u8fdb NOTIFY\uff0c\u4f7f\u5176\u53ea\u5524\u9192\u6b63\u5728\u76d1\u542c\u6307\u5b9a\u901a\u77e5\u7684\u540e\u7aef", "commits": ["282b1cde9"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "df21472d59db9cf0b82f24566eea1c581540d88262bf11418b8f74e2df43dd44", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["282b1cde9"]], "identity_text": "Improve NOTIFY to only wake up backends that are listening to specified notifications (Joel Jacobson) Previously most backends were woken by NOTIFY.", "commit_aliases": ["282b1cde9"], "source_commits": ["282b1cde9"], "source_entry_id": "19.0/changes/027", "db_id": "740592d064a218404af7794a0ce22ef9", "patch_ids": ["69192acbcef0c7cc8306f425878ffcd1"], "statement_hash": "5cdbf10e4e6459c3301ea94f1ad2a26d4796c69d3bc8738282269937d109dd09", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-74f15db550e51aa0", "migration": false}, {"id": "19.0-adac5ed1f8101e89", "cves": [], "html": "<p>\u5c06 <a href=\"/docs/19/runtime-config-wal.html#GUC-WAL-COMPRESSION\"><code>wal_compression</code></a> \u7b49\u4e8e <code>on</code> \u65f6\u7684\u884c\u4e3a\u6539\u4e3a\u4f7f\u7528\u53ef\u7528\u7684\u6700\u4f73 WAL \u538b\u7f29\u65b9\u6cd5\uff08wenhui qiu\uff09<a href=\"https://postgr.es/c/5838806ce\">\u00a7</a></p>\n<p>\u6b64\u524d\u59cb\u7ec8\u4f7f\u7528 <code>pglz</code>\u3002</p>", "text": "\u5c06 wal_compression \u7b49\u4e8e on \u65f6\u7684\u884c\u4e3a\u6539\u4e3a\u4f7f\u7528\u53ef\u7528\u7684\u6700\u4f73 WAL \u538b\u7f29\u65b9\u6cd5\uff08wenhui qiu\uff09\u00a7 \u6b64\u524d\u59cb\u7ec8\u4f7f\u7528 pglz\u3002", "title": "\u5c06 wal_compression \u7b49\u4e8e on \u65f6\u7684\u884c\u4e3a\u6539\u4e3a\u4f7f\u7528\u53ef\u7528\u7684\u6700\u4f73 WAL \u538b\u7f29\u65b9\u6cd5", "commits": ["5838806ce"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "aba2eb3f517338208c84699f266e4df29998ad5c20b0b06c14325b7218dee683", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["5838806ce"]], "identity_text": "Change wal_compression equals on to use the best WAL compression method available (wenhui qiu) Previously this always used pglz.", "commit_aliases": ["5838806ce"], "source_commits": ["5838806ce"], "source_entry_id": "19.0/changes/028", "db_id": "e8b8f569bd0fb639a31dc56b11694455", "patch_ids": ["dd17331bcd4d09ddee436f175a988bf0"], "statement_hash": "6d23e95d15eb514f2c8a4fd77247d4901de44495448847d7876f3406ef645d9c", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-adac5ed1f8101e89", "migration": false}, {"id": "19.0-f9faf33f2e42f662", "cves": [], "html": "<p>\u5c06 <a href=\"/docs/19/storage-toast.html\" title=\"66.2.\u00a0TOAST\"><acronym>TOAST</acronym></a> \u538b\u7f29\u9ed8\u8ba4\u65b9\u6cd5\u4ece <code>pglz</code> \u6539\u4e3a\u66f4\u9ad8\u6548\u7684 <code>lz4</code>\uff08Euler Taveira\uff09<a href=\"https://postgr.es/c/34dfca293\">\u00a7</a></p>\n<p>\u901a\u8fc7\u4fee\u6539\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-client.html#GUC-DEFAULT-TOAST-COMPRESSION\"><code>default_toast_compression</code></a> \u7684\u9ed8\u8ba4\u503c\u5b9e\u73b0\u3002</p>", "text": "\u5c06 TOAST \u538b\u7f29\u9ed8\u8ba4\u65b9\u6cd5\u4ece pglz \u6539\u4e3a\u66f4\u9ad8\u6548\u7684 lz4\uff08Euler Taveira\uff09\u00a7 \u901a\u8fc7\u4fee\u6539\u670d\u52a1\u5668\u53d8\u91cf default_toast_compression \u7684\u9ed8\u8ba4\u503c\u5b9e\u73b0\u3002", "title": "\u5c06 TOAST \u538b\u7f29\u9ed8\u8ba4\u65b9\u6cd5\u4ece pglz \u6539\u4e3a\u66f4\u9ad8\u6548\u7684 lz4", "commits": ["34dfca293"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "b88ef72eb13e9528daa12b0f19ac0801bd11b0aed4868c5689f961b303474e4b", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["34dfca293"]], "identity_text": "Change the default TOAST compression method from pglz to the more efficient lz4 (Euler Taveira) This is done by changing the default for server variable default_toast_compression.", "commit_aliases": ["34dfca293"], "source_commits": ["34dfca293"], "source_entry_id": "19.0/changes/029", "db_id": "7be022908421d8c0bc76e88a85d61f08", "patch_ids": ["bc9f523e595d44cb2f23bf171fd8252e"], "statement_hash": "539bef1bd8c30f8c6cd23968ebfa3e8c836fd4a0051075fc361a1b1574e36f0b", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-f9faf33f2e42f662", "migration": false}, {"id": "19.0-4790bea65d4b1b64", "cves": [], "html": "<p>\u6539\u8fdb\u5185\u90e8\u884c\u5c55\u5f00\u6027\u80fd\uff08David Rowley\uff09<a href=\"https://postgr.es/c/c456e3911\">\u00a7</a></p>", "text": "\u6539\u8fdb\u5185\u90e8\u884c\u5c55\u5f00\u6027\u80fd\uff08David Rowley\uff09\u00a7", "title": "\u6539\u8fdb\u5185\u90e8\u884c\u5c55\u5f00\u6027\u80fd", "commits": ["c456e3911"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "e33ca61d27b34df73309428a3e161efa1d449ee1044142dba15d9d538241ec2b", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["c456e3911"]], "identity_text": "Improve performance of internal row deformation (David Rowley)", "commit_aliases": ["c456e3911"], "source_commits": ["c456e3911"], "source_entry_id": "19.0/changes/030", "db_id": "2f44033f40c98ee6a912c206532f6743", "patch_ids": ["2fb9e9b84098734ad1a8377076eb1c47"], "statement_hash": "1e8e65e0cb1dcba0aa0c3976cbd782de234996f92acb56d493eea9b3f4ad1817", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-4790bea65d4b1b64", "migration": false}, {"id": "19.0-395cf0cc621146d2", "cves": [], "html": "<p>\u6539\u8fdb\u91cd\u590d\u6267\u884c <acronym>UTF-8</acronym> \u5927\u5c0f\u5199\u6298\u53e0\u64cd\u4f5c\u7684\u6027\u80fd\uff08Andreas Karlsson\uff09<a href=\"https://postgr.es/c/c4ff35f10\">\u00a7</a></p>", "text": "\u6539\u8fdb\u91cd\u590d\u6267\u884c UTF-8 \u5927\u5c0f\u5199\u6298\u53e0\u64cd\u4f5c\u7684\u6027\u80fd\uff08Andreas Karlsson\uff09\u00a7", "title": "\u6539\u8fdb\u91cd\u590d\u6267\u884c UTF-8 \u5927\u5c0f\u5199\u6298\u53e0\u64cd\u4f5c\u7684\u6027\u80fd", "commits": ["c4ff35f10"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "db8fbfa4cae3f4ce9ea41e2d7646f765107a8c90c00b50a26b5ab10d56937494", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["c4ff35f10"]], "identity_text": "Improve performance of repeated UTF-8 case-folding operations (Andreas Karlsson)", "commit_aliases": ["c4ff35f10"], "source_commits": ["c4ff35f10"], "source_entry_id": "19.0/changes/031", "db_id": "1910f331f0c069a5c4fed4524f4347c2", "patch_ids": ["ae87a7eb7068ebcf4d1d2b57fc639c7c"], "statement_hash": "9e3af8a44d0dedeb1741e935ea02b4dcc4de7cf406fe2bfb5e5b1435a115b5e0", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-395cf0cc621146d2", "migration": false}, {"id": "19.0-8bab904eae83bd1e", "cves": [], "html": "<p>\u4f7f\u7528\u6d41\u5f0f\u8bfb\u53d6\u6539\u8fdb hash \u7d22\u5f15\u6279\u91cf\u5220\u9664\u548c <a href=\"/docs/19/gin.html\" title=\"65.4.\u00a0GIN \u7d22\u5f15\"><code>GIN</code></a> \u7d22\u5f15\u6e05\u7406\u7684\u6027\u80fd\uff08Xuneng Zhou\uff09<a href=\"https://postgr.es/c/bfa3c4f10\">\u00a7</a> <a href=\"https://postgr.es/c/6c228755a\">\u00a7</a></p>", "text": "\u4f7f\u7528\u6d41\u5f0f\u8bfb\u53d6\u6539\u8fdb hash \u7d22\u5f15\u6279\u91cf\u5220\u9664\u548c GIN \u7d22\u5f15\u6e05\u7406\u7684\u6027\u80fd\uff08Xuneng Zhou\uff09\u00a7 \u00a7", "title": "\u4f7f\u7528\u6d41\u5f0f\u8bfb\u53d6\u6539\u8fdb hash \u7d22\u5f15\u6279\u91cf\u5220\u9664\u548c GIN \u7d22\u5f15\u6e05\u7406\u7684\u6027\u80fd", "commits": ["6c228755a", "bfa3c4f10"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "22dc347e00791c8cd097d440c9a650b0d9254cd0cdb4cd2305424237995540dd", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["6c228755a"], ["bfa3c4f10"]], "identity_text": "Improve performance of hash index bulk-deletion and GIN index vacuuming using streaming reads (Xuneng Zhou)", "commit_aliases": ["6c228755a", "bfa3c4f10"], "source_commits": ["6c228755a", "bfa3c4f10"], "source_entry_id": "19.0/changes/032", "db_id": "1ed1f0b5b015c26ff52c733bbcedbaa2", "patch_ids": ["84df054e8c1e0c6d9cb21616a9603f21", "9bbf9f028b97b0ec01a849288c885031"], "statement_hash": "8739a01f6a76fc5153326e7601d455c0e78e7547b96bd1f198775b7b537f56f3", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-8bab904eae83bd1e", "migration": false}, {"id": "19.0-3249f6c7511a5af6", "cves": [], "html": "<p>\u4f7f\u7528\u57fa\u6570\u6392\u5e8f\u6539\u8fdb\u6392\u5e8f\u6027\u80fd\uff08John Naylor\uff09<a href=\"https://postgr.es/c/ef3c3cf6d\">\u00a7</a></p>", "text": "\u4f7f\u7528\u57fa\u6570\u6392\u5e8f\u6539\u8fdb\u6392\u5e8f\u6027\u80fd\uff08John Naylor\uff09\u00a7", "title": "\u4f7f\u7528\u57fa\u6570\u6392\u5e8f\u6539\u8fdb\u6392\u5e8f\u6027\u80fd", "commits": ["ef3c3cf6d"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "053bf7d1a7a9e0349a991795e9476aaf1a1d59d2c0987e3bd5b973099c87cc5a", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["ef3c3cf6d"]], "identity_text": "Improve sort performance using radix sort (John Naylor)", "commit_aliases": ["ef3c3cf6d"], "source_commits": ["ef3c3cf6d"], "source_entry_id": "19.0/changes/033", "db_id": "e92f77f792175055754151b811c7e66f", "patch_ids": ["e549bc058c224184a36dddee5ed0274a"], "statement_hash": "1e58055dc676b28011576896b1a0c5617750d18c1bc9d507b6607e36ed2e726f", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-3249f6c7511a5af6", "migration": false}, {"id": "19.0-cd84e486027cb3ba", "cves": [], "html": "<p>\u6539\u8fdb\u8ba1\u65f6\u6027\u80fd\u6d4b\u91cf\uff08Lukas Fittl\u3001Andres Freund\u3001David Geier\uff09<a href=\"https://postgr.es/c/294520c44\">\u00a7</a><a href=\"https://postgr.es/c/16fca4825\">\u00a7</a></p>\n<p>\u8fd9\u6709\u5229\u4e8e <a href=\"/docs/19/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN (ANALYZE, TIMING)</code></a> \u548c<a href=\"/docs/19/pgtesttiming.html\" title=\"pg_test_timing\"><span>pg_test_timing</span></a>\uff0c\u5e76\u7531\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-resource.html#GUC-TIMING-CLOCK-SOURCE\"><code>timing_clock_source</code></a> \u63a7\u5236\u3002</p>", "text": "\u6539\u8fdb\u8ba1\u65f6\u6027\u80fd\u6d4b\u91cf\uff08Lukas Fittl\u3001Andres Freund\u3001David Geier\uff09\u00a7\u00a7 \u8fd9\u6709\u5229\u4e8e EXPLAIN (ANALYZE, TIMING) \u548cpg_test_timing\uff0c\u5e76\u7531\u670d\u52a1\u5668\u53d8\u91cf timing_clock_source \u63a7\u5236\u3002", "title": "\u6539\u8fdb\u8ba1\u65f6\u6027\u80fd\u6d4b\u91cf", "commits": ["16fca4825", "294520c44"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "e26c03be8a2498ef24139bd777cd064eaf8931a86634dac1da1c142a30e3de04", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["16fca4825"], ["294520c44"]], "identity_text": "Improve timing performance measurements (Lukas Fittl, Andres Freund, David Geier) This benefits EXPLAIN (ANALYZE, TIMING) and pg_test_timing, and is controlled via server variable timing_clock_source.", "commit_aliases": ["16fca4825", "294520c44"], "source_commits": ["16fca4825", "294520c44"], "source_entry_id": "19.0/changes/034", "db_id": "a83a0fc0f22b72a243cc7f01e5ad26bd", "patch_ids": ["044cc323577cc5c4ab019ae421fcef93", "17be2bf9f9491bba9792f2204daac4e2"], "statement_hash": "7111ea49b63b8a127f7b829866f597d67366f4dac2b861092e418abd1b5eacca", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-cd84e486027cb3ba", "migration": false}, {"id": "19.0-bf3b7d599cc4c9b7", "cves": [], "html": "<p>\u4f18\u5316<a href=\"/docs/19/plpgsql.html\" title=\"\u7b2c\u00a041\u00a0\u7ae0\u00a0PL/pgSQL \u2014 SQL \u8fc7\u7a0b\u8bed\u8a00\"><span>plpgsql</span></a>\u8bed\u6cd5 <code>SELECT simple-expression INTO</code> <em><code>var</code></em>\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/ce8d5fe0e\">\u00a7</a></p>", "text": "\u4f18\u5316plpgsql\u8bed\u6cd5 SELECT simple-expression INTO var\uff08Tom Lane\uff09\u00a7", "title": "\u4f18\u5316plpgsql\u8bed\u6cd5 SELECT simple-expression INTO var", "commits": ["ce8d5fe0e"], "section": "\u670d\u52a1\u5668 / \u5e38\u89c4\u6027\u80fd", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "a7328fdab461c4a7f5765f22692be28bd8444c4ebc98090a9006fa9fcdfe017a", "section_path": ["\u670d\u52a1\u5668", "\u5e38\u89c4\u6027\u80fd"], "commit_groups": [["ce8d5fe0e"]], "identity_text": "Optimize plpgsql syntax SELECT simple-expression INTO var (Tom Lane)", "commit_aliases": ["ce8d5fe0e"], "source_commits": ["ce8d5fe0e"], "source_entry_id": "19.0/changes/035", "db_id": "4d225e8d71194b0baf4576a57c89ab79", "patch_ids": ["cd90e593838a9a8b99f37f022aa98785"], "statement_hash": "9a10d3f3b495e42819480723274145cddba7d6c1c40840d9c022fd9f3e77a500", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-bf3b7d599cc4c9b7", "migration": false}, {"id": "19.0-7eab7e5c5f2203f0", "cves": [], "html": "<p>\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/monitoring-stats.html#PG-STAT-LOCK-VIEW\" title=\"\u8868\u00a027.25.\u00a0pg_stat_lock \u89c6\u56fe\"><code>pg_stat_lock</code></a> \u548c\u51fd\u6570 <a href=\"/docs/19/monitoring-stats.html#MONITORING-PG-STAT-LOCK-VIEW\" title=\"27.2.15.\u00a0pg_stat_lock\"><code>pg_stat_get_lock()</code></a>\uff0c\u7528\u4e8e\u62a5\u544a\u6bcf\u79cd\u9501\u7c7b\u578b\u7684\u7edf\u8ba1\u4fe1\u606f\uff08Bertrand Drouvot\uff09<a href=\"https://postgr.es/c/4019f725f\">\u00a7</a></p>", "text": "\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe pg_stat_lock \u548c\u51fd\u6570 pg_stat_get_lock()\uff0c\u7528\u4e8e\u62a5\u544a\u6bcf\u79cd\u9501\u7c7b\u578b\u7684\u7edf\u8ba1\u4fe1\u606f\uff08Bertrand Drouvot\uff09\u00a7", "title": "\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe pg_stat_lock \u548c\u51fd\u6570 pg_stat_get_lock()\uff0c\u7528\u4e8e\u62a5\u544a\u6bcf\u79cd\u9501\u7c7b\u578b\u7684\u7edf\u8ba1\u4fe1\u606f", "commits": ["4019f725f"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "37efdb27ab007ade80935ccaea7356ddd09826bbd3ce38aa55146629a022e581", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["4019f725f"]], "identity_text": "Add system view pg_stat_lock and function pg_stat_get_lock() to report per-lock-type statistics (Bertrand Drouvot)", "commit_aliases": ["4019f725f"], "source_commits": ["4019f725f"], "source_entry_id": "19.0/changes/036", "db_id": "cbe2559482ddfa2aac4eadad6b946745", "patch_ids": ["03976a5a4c07338afa4fc0ae987faf36"], "statement_hash": "4c2f5fb37b196485646d5b56fe524181d9b5d5a77b18be93c2eb7d8d9d2a7621", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-7eab7e5c5f2203f0", "migration": false}, {"id": "19.0-2dc9324572e0e9bd", "cves": [], "html": "<p>\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/monitoring-stats.html#PG-STAT-RECOVERY-VIEW\" title=\"\u8868\u00a027.17.\u00a0pg_stat_recovery \u89c6\u56fe\"><code>pg_stat_recovery</code></a>\uff0c\u7528\u4e8e\u62a5\u544a\u6062\u590d\u72b6\u6001\uff08Xuneng Zhou\uff0cShinya Kato\uff09<a href=\"https://postgr.es/c/01d485b14\">\u00a7</a><a href=\"https://postgr.es/c/2d4ead6f4\">\u00a7</a></p>", "text": "\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe pg_stat_recovery\uff0c\u7528\u4e8e\u62a5\u544a\u6062\u590d\u72b6\u6001\uff08Xuneng Zhou\uff0cShinya Kato\uff09\u00a7\u00a7", "title": "\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe pg_stat_recovery\uff0c\u7528\u4e8e\u62a5\u544a\u6062\u590d\u72b6\u6001", "commits": ["01d485b14", "2d4ead6f4"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "37d67636bdd05f427f9dd03cdff499a490caff9af499fac2e73b3342b6bdebf2", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["01d485b14"], ["2d4ead6f4"]], "identity_text": "Add system view pg_stat_recovery to report recovery status (Xuneng Zhou, Shinya Kato)", "commit_aliases": ["01d485b14", "2d4ead6f4"], "source_commits": ["01d485b14", "2d4ead6f4"], "source_entry_id": "19.0/changes/037", "db_id": "c3ccf79bde29fe3f2a6585993778288e", "patch_ids": ["6c47e71ee584566e1cdb6e6915ba46e7", "8de33246b266e818b5e8222fb7036aac"], "statement_hash": "a312179476848e405d3eec1ec3f1b961060cdb77b82ace73eadf06d15dd2704a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-2dc9324572e0e9bd", "migration": false}, {"id": "19.0-fdff1e49427bb3a5", "cves": [], "html": "<p>\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/monitoring-stats.html#PG-STAT-AUTOVACUUM-SCORES-VIEW\" title=\"\u8868\u00a027.32.\u00a0pg_stat_autovacuum_scores \u89c6\u56fe\"><code>pg_stat_autovacuum_scores</code></a>\uff0c\u7528\u4e8e\u62a5\u544a\u6bcf\u8868<a href=\"/docs/19/routine-vacuuming.html#AUTOVACUUM\" title=\"24.1.6.\u00a0\u81ea\u52a8\u6e05\u7406\u5b88\u62a4\u8fdb\u7a0b\">\u81ea\u52a8\u6e05\u7406</a>\u7ec6\u8282\uff08Sami Imseih\uff09<a href=\"https://postgr.es/c/87f61f0c8\">\u00a7</a></p>", "text": "\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe pg_stat_autovacuum_scores\uff0c\u7528\u4e8e\u62a5\u544a\u6bcf\u8868\u81ea\u52a8\u6e05\u7406\u7ec6\u8282\uff08Sami Imseih\uff09\u00a7", "title": "\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe pg_stat_autovacuum_scores\uff0c\u7528\u4e8e\u62a5\u544a\u6bcf\u8868\u81ea\u52a8\u6e05\u7406\u7ec6\u8282", "commits": ["87f61f0c8"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "a678ad181bdebb8c940d335eebc166e6c276977bd45c033617fa8b96195b825e", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["87f61f0c8"]], "identity_text": "Add system view pg_stat_autovacuum_scores to report per-table autovacuum details (Sami Imseih)", "commit_aliases": ["87f61f0c8"], "source_commits": ["87f61f0c8"], "source_entry_id": "19.0/changes/038", "db_id": "d276cd666e065e08277d26a8fb7a03c9", "patch_ids": ["d450bec36782c81f2954fd59737e1b76"], "statement_hash": "5b2fafd5b31336ec04a99dd9300d4f02447b330a666d12cdde0d0ab82cda8b4f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-fdff1e49427bb3a5", "migration": false}, {"id": "19.0-4eda824cbd18c741", "cves": [], "html": "<p>\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/view-pg-dsm-registry-allocations.html\" title=\"53.8.\u00a0pg_dsm_registry_allocations\"><code>pg_dsm_registry_allocations</code></a>\uff0c\u7528\u4e8e\u62a5\u544a<a href=\"/docs/19/runtime-config-resource.html#GUC-DYNAMIC-SHARED-MEMORY-TYPE\">\u52a8\u6001\u5171\u4eab\u5185\u5b58</a>\u7ec6\u8282\uff08Florents Tselai\uff0cNathan Bossart\uff09<a href=\"https://postgr.es/c/167ed8082\">\u00a7</a><a href=\"https://postgr.es/c/f894acb24\">\u00a7</a></p>", "text": "\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe pg_dsm_registry_allocations\uff0c\u7528\u4e8e\u62a5\u544a\u52a8\u6001\u5171\u4eab\u5185\u5b58\u7ec6\u8282\uff08Florents Tselai\uff0cNathan Bossart\uff09\u00a7\u00a7", "title": "\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe pg_dsm_registry_allocations\uff0c\u7528\u4e8e\u62a5\u544a\u52a8\u6001\u5171\u4eab\u5185\u5b58\u7ec6\u8282", "commits": ["167ed8082", "f894acb24"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "743de4c0c002fc4d25f4eef8f59d8c0468cf8ba628bef172a5ab979be42b2437", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["167ed8082"], ["f894acb24"]], "identity_text": "Add system view pg_dsm_registry_allocations to report dynamic shared memory details (Florents Tselai, Nathan Bossart)", "commit_aliases": ["167ed8082", "f894acb24"], "source_commits": ["167ed8082", "f894acb24"], "source_entry_id": "19.0/changes/039", "db_id": "8d5c14fd4c3bc12fb519c4510b35f42c", "patch_ids": ["060c65df4ae439e5472616eec5529041", "c4785fc6a14fe381b6b90b2cef4ee762"], "statement_hash": "119d2154117d747839a9b58b3105a16e1269592a95c0bc1c2fdbe60b8de77eec", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-4eda824cbd18c741", "migration": false}, {"id": "19.0-2022d52df786edbf", "cves": [], "html": "<p>\u5728\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/progress-reporting.html#PG-STAT-PROGRESS-VACUUM-VIEW\" title=\"\u8868\u00a027.50.\u00a0pg_stat_progress_vacuum \u89c6\u56fe\"><code>pg_stat_progress_vacuum</code></a> \u4e2d\u65b0\u589e\u6e05\u7406\u542f\u52a8\u7ec6\u8282\uff08Shinya Kato\uff09<a href=\"https://postgr.es/c/0d7895206\">\u00a7</a></p>\n<p>\u65b0\u7684 <code>started_by</code> \u5217\u62a5\u544a\u6e05\u7406\u7684\u53d1\u8d77\u8005\uff0c<code>mode</code> \u5219\u8868\u793a\u5176\u6fc0\u8fdb\u7a0b\u5ea6\u3002</p>", "text": "\u5728\u7cfb\u7edf\u89c6\u56fe pg_stat_progress_vacuum \u4e2d\u65b0\u589e\u6e05\u7406\u542f\u52a8\u7ec6\u8282\uff08Shinya Kato\uff09\u00a7 \u65b0\u7684 started_by \u5217\u62a5\u544a\u6e05\u7406\u7684\u53d1\u8d77\u8005\uff0cmode \u5219\u8868\u793a\u5176\u6fc0\u8fdb\u7a0b\u5ea6\u3002", "title": "\u5728\u7cfb\u7edf\u89c6\u56fe pg_stat_progress_vacuum \u4e2d\u65b0\u589e\u6e05\u7406\u542f\u52a8\u7ec6\u8282", "commits": ["0d7895206"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "08b41e29b56616a89d15fdda018887ee63aa2468db1b971948c92c2797fcf67b", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["0d7895206"]], "identity_text": "Add vacuum initiation details to system view pg_stat_progress_vacuum (Shinya Kato) The new started_by column reports the initiator of the vacuum, and mode indicates its aggressiveness.", "commit_aliases": ["0d7895206"], "source_commits": ["0d7895206"], "source_entry_id": "19.0/changes/040", "db_id": "597e42cd38d0142a7294cfc00b0ea553", "patch_ids": ["4ceb582980f8563371f6a0af79a43561"], "statement_hash": "0c2fe2ec3463ea493c65bc087b8c40e071a68217606d0ae0ad7660a5d3ee1c2b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-2022d52df786edbf", "migration": false}, {"id": "19.0-f32a113de8b8698c", "cves": [], "html": "<p>\u5728\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/progress-reporting.html#PG-STAT-PROGRESS-ANALYZE-VIEW\" title=\"\u8868\u00a027.41.\u00a0pg_stat_progress_analyze \u89c6\u56fe\"><code>pg_stat_progress_analyze</code></a> \u4e2d\u65b0\u589e\u5206\u6790\u542f\u52a8\u7ec6\u8282\uff08Shinya Kato\uff09<a href=\"https://postgr.es/c/ab40db385\">\u00a7</a></p>\n<p>\u65b0\u7684 <code>started_by</code> \u5217\u62a5\u544a\u5206\u6790\u7684\u53d1\u8d77\u8005\u3002</p>", "text": "\u5728\u7cfb\u7edf\u89c6\u56fe pg_stat_progress_analyze \u4e2d\u65b0\u589e\u5206\u6790\u542f\u52a8\u7ec6\u8282\uff08Shinya Kato\uff09\u00a7 \u65b0\u7684 started_by \u5217\u62a5\u544a\u5206\u6790\u7684\u53d1\u8d77\u8005\u3002", "title": "\u5728\u7cfb\u7edf\u89c6\u56fe pg_stat_progress_analyze \u4e2d\u65b0\u589e\u5206\u6790\u542f\u52a8\u7ec6\u8282", "commits": ["ab40db385"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "295f6c0e94da76415499091ec783deb623ba17d901e9405b783f275b58078e68", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["ab40db385"]], "identity_text": "Add analyze initiation details to system view pg_stat_progress_analyze (Shinya Kato) The new started_by column reports the initiator of the analyze.", "commit_aliases": ["ab40db385"], "source_commits": ["ab40db385"], "source_entry_id": "19.0/changes/041", "db_id": "83371b692e03bed12c01afb91f634c59", "patch_ids": ["85a304775ef09a3db732c65c90dbb93c"], "statement_hash": "0ae5046ad3625b53619771311a85697633bcb03d86d8b3422e09717bd8d2639d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-f32a113de8b8698c", "migration": false}, {"id": "19.0-fb858df928861e81", "cves": [], "html": "<p>\u65b0\u589e <code>mem_exceeded_count</code> \u5217\u5230\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/monitoring-stats.html#PG-STAT-REPLICATION-SLOTS-VIEW\" title=\"\u8868\u00a027.15.\u00a0pg_stat_replication_slots \u89c6\u56fe\"><code>pg_stat_replication_slots</code></a>\uff08Bertrand Drouvot\uff09<a href=\"https://postgr.es/c/d3b6183dd\">\u00a7</a></p>\n<p>\u5b83\u7528\u4e8e\u62a5\u544a <a href=\"/docs/19/runtime-config-resource.html#GUC-LOGICAL-DECODING-WORK-MEM\"><code>logical_decoding_work_mem</code></a> \u88ab\u8d85\u8fc7\u7684\u6b21\u6570\u3002</p>", "text": "\u65b0\u589e mem_exceeded_count \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_stat_replication_slots\uff08Bertrand Drouvot\uff09\u00a7 \u5b83\u7528\u4e8e\u62a5\u544a logical_decoding_work_mem \u88ab\u8d85\u8fc7\u7684\u6b21\u6570\u3002", "title": "\u65b0\u589e mem_exceeded_count \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_stat_replication_slots", "commits": ["d3b6183dd"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "cd6ff3d1ae5cce3e471706a1f8c90ba383913fb149a5da203542c8a21605535b", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["d3b6183dd"]], "identity_text": "Add mem_exceeded_count column to system view pg_stat_replication_slots (Bertrand Drouvot) This reports the number of times that logical_decoding_work_mem was exceeded.", "commit_aliases": ["d3b6183dd"], "source_commits": ["d3b6183dd"], "source_entry_id": "19.0/changes/042", "db_id": "a948b3c31c4bf7a7079ca074363c24ec", "patch_ids": ["bab99a2ad0f86c4e3fe094c15a2628d6"], "statement_hash": "95592ae4253188ff868760c27a10b1d1a8699d3fb22bb5ab2e0b3d025ab1435f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-fb858df928861e81", "migration": false}, {"id": "19.0-3e489f75bc72adde", "cves": [], "html": "<p>\u5728 <a href=\"/docs/19/monitoring-stats.html#PG-STAT-REPLICATION-SLOTS-VIEW\" title=\"\u8868\u00a027.15.\u00a0pg_stat_replication_slots \u89c6\u56fe\"><code>pg_stat_replication_slots</code></a> \u548c <a href=\"/docs/19/view-pg-replication-slots.html\" title=\"53.22.\u00a0pg_replication_slots\"><code>pg_replication_slots</code></a> \u4e2d\u65b0\u589e\u590d\u5236\u69fd\u540c\u6b65\u8df3\u8fc7\u4fe1\u606f\uff08Shlok Kyal\uff09<a href=\"https://postgr.es/c/76b78721c\">\u00a7</a><a href=\"https://postgr.es/c/e68b6adad\">\u00a7</a><a href=\"https://postgr.es/c/5db6a344a\">\u00a7</a></p>\n<p>\u65b0\u589e\u5217\u4e3a <code>slotsync_skip_count</code>\u3001<code>slotsync_last_skip</code> \u548c <code>slotsync_skip_reason</code>\u3002</p>", "text": "\u5728 pg_stat_replication_slots \u548c pg_replication_slots \u4e2d\u65b0\u589e\u590d\u5236\u69fd\u540c\u6b65\u8df3\u8fc7\u4fe1\u606f\uff08Shlok Kyal\uff09\u00a7\u00a7\u00a7 \u65b0\u589e\u5217\u4e3a slotsync_skip_count\u3001slotsync_last_skip \u548c slotsync_skip_reason\u3002", "title": "\u5728 pg_stat_replication_slots \u548c pg_replication_slots \u4e2d\u65b0\u589e\u590d\u5236\u69fd\u540c\u6b65\u8df3\u8fc7\u4fe1\u606f", "commits": ["5db6a344a", "76b78721c", "e68b6adad"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "d8925eb2bfe689f63e69e6dae4f48d8b75956d2bfac70bec609edde9645fd958", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["5db6a344a"], ["76b78721c"], ["e68b6adad"]], "identity_text": "Add slot synchronization skip information to pg_stat_replication_slots and pg_replication_slots (Shlok Kyal) The new columns are slotsync_skip_count, slotsync_last_skip, and slotsync_skip_reason.", "commit_aliases": ["5db6a344a", "76b78721c", "e68b6adad"], "source_commits": ["5db6a344a", "76b78721c", "e68b6adad"], "source_entry_id": "19.0/changes/043", "db_id": "33312541b869a3ced60958b7fac86cfd", "patch_ids": ["2a7b52fc9cc0f09a034684e0e8729874", "3f9abdfe57a57258c11ccd012d52f696", "79aef1d91f4c48cc5dc9d3fbdf73d16b"], "statement_hash": "60dfecd88c78ab30c21adbfd57195484a37caeb6244ae6caa9b12c827cdbe934", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-3e489f75bc72adde", "migration": false}, {"id": "19.0-e92035bd8571211b", "cves": [], "html": "<p>\u65b0\u589e <code>update_deleted</code> \u5217\u5230\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATS\" title=\"27.2.10.\u00a0pg_stat_subscription_stats\"><code>pg_stat_subscription_stats</code></a>\uff08Zhijie Hou\uff09<a href=\"https://postgr.es/c/fd5a1a0c3\">\u00a7</a></p>\n<p>\u8be5\u5217\u62a5\u544a\u56e0\u5e76\u53d1\u5220\u9664\u800c\u5ffd\u7565\u66f4\u65b0\u7684\u884c\u6570\u3002\u8fd9\u8981\u6c42\u8ba2\u9605\u8005\u542f\u7528 <code>retain_dead_tuples</code>\u3002</p>", "text": "\u65b0\u589e update_deleted \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_stat_subscription_stats\uff08Zhijie Hou\uff09\u00a7 \u8be5\u5217\u62a5\u544a\u56e0\u5e76\u53d1\u5220\u9664\u800c\u5ffd\u7565\u66f4\u65b0\u7684\u884c\u6570\u3002\u8fd9\u8981\u6c42\u8ba2\u9605\u8005\u542f\u7528 retain_dead_tuples\u3002", "title": "\u65b0\u589e update_deleted \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_stat_subscription_stats", "commits": ["fd5a1a0c3"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "eac82733178f8d7d2986eda92cbd034efffab1d4ee8f03d308bcac6f716879c7", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["fd5a1a0c3"]], "identity_text": "Add update_deleted column to system view pg_stat_subscription_stats (Zhijie Hou) This reports the number of rows where updates were ignored due to concurrent deletes. This requires the subscriber have retain_dead_tuples enabled.", "commit_aliases": ["fd5a1a0c3"], "source_commits": ["fd5a1a0c3"], "source_entry_id": "19.0/changes/044", "db_id": "f89a6e0c5a92f39d190d76e75a70f8a7", "patch_ids": ["37275251cc82b9be0c185ced82ebe5d1"], "statement_hash": "2f7dca5ad2be2e9b0291ba662276ebf16720d5ebbec006b272a0b9d0f4cc6a10", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-e92035bd8571211b", "migration": false}, {"id": "19.0-1e43385099e277ba", "cves": [], "html": "<p>\u65b0\u589e <code>sync_seq_error_count</code> \u5217\u5230\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/monitoring-stats.html#PG-STAT-SUBSCRIPTION-STATS\" title=\"\u8868\u00a027.20.\u00a0pg_stat_subscription_stats \u89c6\u56fe\"><code>pg_stat_subscription_stats</code></a>\uff0c\u7528\u4e8e\u62a5\u544a\u5e8f\u5217\u540c\u6b65\u9519\u8bef\uff08Vignesh C\uff09<a href=\"https://postgr.es/c/f6a4c498d\">\u00a7</a><a href=\"https://postgr.es/c/3edaf29fa\">\u00a7</a></p>", "text": "\u65b0\u589e sync_seq_error_count \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_stat_subscription_stats\uff0c\u7528\u4e8e\u62a5\u544a\u5e8f\u5217\u540c\u6b65\u9519\u8bef\uff08Vignesh C\uff09\u00a7\u00a7", "title": "\u65b0\u589e sync_seq_error_count \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_stat_subscription_stats\uff0c\u7528\u4e8e\u62a5\u544a\u5e8f\u5217\u540c\u6b65\u9519\u8bef", "commits": ["3edaf29fa", "f6a4c498d"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "d12f91fffa8e66aee24b6460682a940e68cbd0c438cac3277879b4f9ffed9017", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["3edaf29fa"], ["f6a4c498d"]], "identity_text": "Add sync_seq_error_count column to system view pg_stat_subscription_stats to report sequence synchronization errors (Vignesh C)", "commit_aliases": ["3edaf29fa", "f6a4c498d"], "source_commits": ["3edaf29fa", "f6a4c498d"], "source_entry_id": "19.0/changes/045", "db_id": "9a6f7f73dea73507b7e7d161044aa58a", "patch_ids": ["612943743e97964090c65bd7f4cdedca", "b5c7665c4c4526a9da93257182f99c1e"], "statement_hash": "399cd3f98c899e5b18290991e66a6551d45be708e894e76dd6bfeb0d481afa6f", "relations": [{"rule": 2, "type": "related", "target": "70cd59be0b3b3c22c3c028193c91e416", "evidence": {"same_day": false, "patch_ids": ["612943743e97964090c65bd7f4cdedca"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-1e43385099e277ba", "migration": false}, {"id": "19.0-e0c9a7668fc6f797", "cves": [], "html": "<p>\u65b0\u589e <code>stats_reset</code> \u5217\u5230\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW\" title=\"\u8868\u00a027.31.\u00a0pg_stat_all_tables \u89c6\u56fe\"><code>pg_stat_all_tables</code></a>\u3001<a href=\"/docs/19/monitoring-stats.html#PG-STAT-ALL-INDEXES-VIEW\" title=\"\u8868\u00a027.33.\u00a0pg_stat_all_indexes \u89c6\u56fe\"><code>pg_stat_all_indexes</code></a> \u548c <a href=\"/docs/19/monitoring-stats.html#PG-STATIO-ALL-SEQUENCES-VIEW\" title=\"\u8868\u00a027.36.\u00a0pg_statio_all_sequences \u89c6\u56fe\"><code>pg_statio_all_sequences</code></a>\uff08Bertrand Drouvot\uff0cSami Imseih\uff0cShihao Zhong\uff09<a href=\"https://postgr.es/c/a5b543258\">\u00a7</a></p>\n<p>\u5b83\u4e5f\u51fa\u73b0\u5728 <code>sys</code> \u548c <code>user</code> \u53d8\u4f53\u89c6\u56fe\u4e2d\u3002</p>", "text": "\u65b0\u589e stats_reset \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_stat_all_tables\u3001pg_stat_all_indexes \u548c pg_statio_all_sequences\uff08Bertrand Drouvot\uff0cSami Imseih\uff0cShihao Zhong\uff09\u00a7 \u5b83\u4e5f\u51fa\u73b0\u5728 sys \u548c user \u53d8\u4f53\u89c6\u56fe\u4e2d\u3002", "title": "\u65b0\u589e stats_reset \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_stat_all_tables\u3001pg_stat_all_indexes \u548c pg_statio_all_sequences", "commits": ["a5b543258"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "39ca4dd394136b917b921549a4735d5e4badc65fdb01ad5b9791dc48ddd972b7", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["a5b543258"]], "identity_text": "Add stats_reset column to system views pg_stat_all_tables, pg_stat_all_indexes, and pg_statio_all_sequences (Bertrand Drouvot, Sami Imseih, Shihao Zhong) It also appears in the sys and user view variants.", "commit_aliases": ["a5b543258"], "source_commits": ["a5b543258"], "source_entry_id": "19.0/changes/046", "db_id": "f5c7e7c69cfdca9250acd3ee36e9c748", "patch_ids": ["b94fddee8119e23ed09407730cab96ee"], "statement_hash": "cb024b7464e21b154d2ac4a89912f39aa5989c4dc45edefc0432e4b61cbcf586", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-e0c9a7668fc6f797", "migration": false}, {"id": "19.0-50be28a4084e9067", "cves": [], "html": "<p>\u65b0\u589e <code>stats_reset</code> \u5217\u5230\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/monitoring-stats.html#PG-STAT-USER-FUNCTIONS-VIEW\" title=\"\u8868\u00a027.37.\u00a0pg_stat_user_functions \u89c6\u56fe\"><code>pg_stat_user_functions</code></a> \u548c <a href=\"/docs/19/monitoring-stats.html#PG-STAT-DATABASE-CONFLICTS-VIEW\" title=\"\u8868\u00a027.30.\u00a0pg_stat_database_conflicts \u89c6\u56fe\"><code>pg_stat_database_conflicts</code></a>\uff08Bertrand Drouvot\uff0cShihao Zhong\uff09<a href=\"https://postgr.es/c/b71bae41a\">\u00a7</a><a href=\"https://postgr.es/c/8fe315f18\">\u00a7</a></p>", "text": "\u65b0\u589e stats_reset \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_stat_user_functions \u548c pg_stat_database_conflicts\uff08Bertrand Drouvot\uff0cShihao Zhong\uff09\u00a7\u00a7", "title": "\u65b0\u589e stats_reset \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_stat_user_functions \u548c pg_stat_database_conflicts", "commits": ["8fe315f18", "b71bae41a"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "614ec509248545f6812f20962edda14d8096d7113923d5facc811f363211db45", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["8fe315f18"], ["b71bae41a"]], "identity_text": "Add stats_reset column to system views pg_stat_user_functions and pg_stat_database_conflicts (Bertrand Drouvot, Shihao Zhong)", "commit_aliases": ["8fe315f18", "b71bae41a"], "source_commits": ["8fe315f18", "b71bae41a"], "source_entry_id": "19.0/changes/047", "db_id": "505b4dd55dff2c91658e2a2d1715bdc4", "patch_ids": ["d5de6bdab3281831e2e8260330bfa7d6", "fc9ce8f2f50f1d20581255dcbf9d63c6"], "statement_hash": "e3e54c16b395124e7f99d30b786922557116cf96924b7e69b79afe9c18c019c2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-50be28a4084e9067", "migration": false}, {"id": "19.0-4019554496bae5ca", "cves": [], "html": "<p>\u65b0\u589e <code>location</code> \u5217\u5230\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/view-pg-available-extensions.html\" title=\"53.3.\u00a0pg_available_extensions\"><code>pg_available_extensions</code></a> \u548c <a href=\"/docs/19/view-pg-available-extension-versions.html\" title=\"53.4.\u00a0pg_available_extension_versions\"><code>pg_available_extension_versions</code></a>\uff0c\u7528\u4e8e\u62a5\u544a\u6269\u5c55\u6240\u5728\u7684\u6587\u4ef6\u7cfb\u7edf\u76ee\u5f55\uff08Matheus Alcantara\uff09<a href=\"https://postgr.es/c/f3c9e341c\">\u00a7</a></p>", "text": "\u65b0\u589e location \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_available_extensions \u548c pg_available_extension_versions\uff0c\u7528\u4e8e\u62a5\u544a\u6269\u5c55\u6240\u5728\u7684\u6587\u4ef6\u7cfb\u7edf\u76ee\u5f55\uff08Matheus Alcantara\uff09\u00a7", "title": "\u65b0\u589e location \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_available_extensions \u548c pg_available_extension_versions\uff0c\u7528\u4e8e\u62a5\u544a\u6269\u5c55\u6240\u5728\u7684\u6587\u4ef6\u7cfb\u7edf\u76ee\u5f55", "commits": ["f3c9e341c"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "bd4f62431beab10b72bd1d87afc469e9a8a94163423213a9810e2833de74f13a", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["f3c9e341c"]], "identity_text": "Add location column to system views pg_available_extensions and pg_available_extension_versions to report the file system directory of extensions (Matheus Alcantara)", "commit_aliases": ["f3c9e341c"], "source_commits": ["f3c9e341c"], "source_entry_id": "19.0/changes/048", "db_id": "f1b35f8c303382fe0fb2d0980b35c48e", "patch_ids": ["8c2b61f2e68b7748094e89a3e7bdcbda"], "statement_hash": "6b6cd5af842618c2f752830802047edc7f1ed45b71dc2499c2309fbead9aaf0b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-4019554496bae5ca", "migration": false}, {"id": "19.0-99c97397f9958339", "cves": [], "html": "<p>\u65b0\u589e <code>backup_type</code> \u5217\u5230\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/progress-reporting.html#PG-STAT-PROGRESS-BASEBACKUP-VIEW\" title=\"\u8868\u00a027.52.\u00a0pg_stat_progress_basebackup \u89c6\u56fe\"><code>pg_stat_progress_basebackup</code></a>\uff0c\u7528\u4e8e\u62a5\u544a\u5907\u4efd\u7c7b\u578b\uff08Shinya Kato\uff09<a href=\"https://postgr.es/c/deb674454\">\u00a7</a></p>\n<p>\u53ef\u80fd\u7684\u503c\u4e3a <code>full</code> \u6216 <code>incremental</code>\u3002</p>", "text": "\u65b0\u589e backup_type \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_stat_progress_basebackup\uff0c\u7528\u4e8e\u62a5\u544a\u5907\u4efd\u7c7b\u578b\uff08Shinya Kato\uff09\u00a7 \u53ef\u80fd\u7684\u503c\u4e3a full \u6216 incremental\u3002", "title": "\u65b0\u589e backup_type \u5217\u5230\u7cfb\u7edf\u89c6\u56fe pg_stat_progress_basebackup\uff0c\u7528\u4e8e\u62a5\u544a\u5907\u4efd\u7c7b\u578b", "commits": ["deb674454"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "fc26cc2b937113e8336cebcfa15d2737b8980f1373b9e949ad88646e70cd6231", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["deb674454"]], "identity_text": "Add backup_type column to system view pg_stat_progress_basebackup to report the type of backup (Shinya Kato) Possible values are full or incremental.", "commit_aliases": ["deb674454"], "source_commits": ["deb674454"], "source_entry_id": "19.0/changes/049", "db_id": "1f9f8ed94d3c59c2eda6090a073ad7e2", "patch_ids": ["0e7f9ff1a56b8d6464997f032f104edf"], "statement_hash": "b93e2ee71cbbcdc1a03bc1ac1c70dddd165abdc3b2cba5f51a6dd03422b673db", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-99c97397f9958339", "migration": false}, {"id": "19.0-2df353c6ff64577c", "cves": [], "html": "<p>\u65b0\u589e <code>connecting</code> \u503c\u5230\u7cfb\u7edf\u89c6\u56fe\u5217 <a href=\"/docs/19/monitoring-stats.html#PG-STAT-WAL-RECEIVER-VIEW\" title=\"\u8868\u00a027.16.\u00a0pg_stat_wal_receiver \u89c6\u56fe\"><code>pg_stat_wal_receiver</code></a>.<a href=\"/docs/19/monitoring-stats.html#PG-STAT-WAL-RECEIVER-VIEW\" title=\"\u8868\u00a027.16.\u00a0pg_stat_wal_receiver \u89c6\u56fe\"><code>status</code></a>\uff08Xuneng Zhou\uff09<a href=\"https://postgr.es/c/a36164e74\">\u00a7</a></p>", "text": "\u65b0\u589e connecting \u503c\u5230\u7cfb\u7edf\u89c6\u56fe\u5217 pg_stat_wal_receiver.status\uff08Xuneng Zhou\uff09\u00a7", "title": "\u65b0\u589e connecting \u503c\u5230\u7cfb\u7edf\u89c6\u56fe\u5217 pg_stat_wal_receiver.status", "commits": ["a36164e74"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "b92a46a95d3bbdc52c8cd87d6c05c9c69b51eca943b6ac75a91f7bfef8fc424e", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["a36164e74"]], "identity_text": "Add connecting value to system view column pg_stat_wal_receiver.status (Xuneng Zhou)", "commit_aliases": ["a36164e74"], "source_commits": ["a36164e74"], "source_entry_id": "19.0/changes/050", "db_id": "896b36096549f4229d02416c3d5820d6", "patch_ids": ["f9eed4e89f63f05e1078d7540fc2a0ee"], "statement_hash": "9df65d2de7d50d88bfb2f0b9d13bf18655a5643ec30dea8eb6b4f90f6e63cb0b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-2df353c6ff64577c", "migration": false}, {"id": "19.0-debc6a808b6ef0f9", "cves": [], "html": "<p>\u65b0\u589e\u5bf9\u5199\u5165 <acronym>WAL</acronym> \u7684\u6574\u9875\u955c\u50cf\u5b57\u8282\u6570\u7684\u62a5\u544a\uff08Shinya Kato\uff09<a href=\"https://postgr.es/c/f9a09aa29\">\u00a7</a></p>\n<p>\u53ef\u901a\u8fc7\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/monitoring-stats.html#PG-STAT-WAL-VIEW\" title=\"\u8868\u00a027.28.\u00a0pg_stat_wal \u89c6\u56fe\"><code>pg_stat_wal</code></a> \u548c\u51fd\u6570 <a href=\"/docs/19/monitoring-stats.html#PG-STAT-GET-BACKEND-WAL\"><code>pg_stat_get_backend_wal()</code></a> \u8bbf\u95ee\u3002</p>", "text": "\u65b0\u589e\u5bf9\u5199\u5165 WAL \u7684\u6574\u9875\u955c\u50cf\u5b57\u8282\u6570\u7684\u62a5\u544a\uff08Shinya Kato\uff09\u00a7 \u53ef\u901a\u8fc7\u7cfb\u7edf\u89c6\u56fe pg_stat_wal \u548c\u51fd\u6570 pg_stat_get_backend_wal() \u8bbf\u95ee\u3002", "title": "\u65b0\u589e\u5bf9\u5199\u5165 WAL \u7684\u6574\u9875\u955c\u50cf\u5b57\u8282\u6570\u7684\u62a5\u544a", "commits": ["f9a09aa29"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "dcec56ab9d88744d8c71c3102ff80da549e3026d2abfb849cb643c40c3f742e1", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["f9a09aa29"]], "identity_text": "Add reporting of the bytes written to WAL for full page images (Shinya Kato) This is accessible via system view pg_stat_wal and function pg_stat_get_backend_wal().", "commit_aliases": ["f9a09aa29"], "source_commits": ["f9a09aa29"], "source_entry_id": "19.0/changes/051", "db_id": "ffa410b8956c468fd5b1d6ca8f0bb0f2", "patch_ids": ["97045c11cebea7be33f1e014d9f1bcec"], "statement_hash": "c762b46b810558e16db8b5d877553814f88bf9b0ffbad7b67bcfcc0f548b0f96", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-debc6a808b6ef0f9", "migration": false}, {"id": "19.0-acddee022cbbb5c8", "cves": [], "html": "<p>\u5728\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/view-pg-stats.html\" title=\"53.31.\u00a0pg_stats\"><code>pg_stats</code></a>\u3001<a href=\"/docs/19/view-pg-stats-ext.html\" title=\"53.32.\u00a0pg_stats_ext\"><code>pg_stats_ext</code></a> \u548c <a href=\"/docs/19/view-pg-stats-ext-exprs.html\" title=\"53.33.\u00a0pg_stats_ext_exprs\"><code>pg_stats_ext_exprs</code></a> \u4e2d\u65b0\u589e\u5217\uff08Corey Huinker\uff09<a href=\"https://postgr.es/c/3b88e50d6\">\u00a7</a></p>\n<p>\u65b0\u589e\u8868 <code>OID</code> \u548c\u5c5e\u6027\u53f7\u5217\u5230 <a href=\"/docs/19/view-pg-stats.html\" title=\"53.31.\u00a0pg_stats\"><code>pg_stats</code></a>\uff0c\u5e76\u4e3a\u53e6\u5916\u4e24\u4e2a\u89c6\u56fe\u65b0\u589e\u8868 <code>OID</code> \u548c\u7edf\u8ba1\u5bf9\u8c61 <code>OID</code> \u5217\u3002</p>", "text": "\u5728\u7cfb\u7edf\u89c6\u56fe pg_stats\u3001pg_stats_ext \u548c pg_stats_ext_exprs \u4e2d\u65b0\u589e\u5217\uff08Corey Huinker\uff09\u00a7 \u65b0\u589e\u8868 OID \u548c\u5c5e\u6027\u53f7\u5217\u5230 pg_stats\uff0c\u5e76\u4e3a\u53e6\u5916\u4e24\u4e2a\u89c6\u56fe\u65b0\u589e\u8868 OID \u548c\u7edf\u8ba1\u5bf9\u8c61 OID \u5217\u3002", "title": "\u5728\u7cfb\u7edf\u89c6\u56fe pg_stats\u3001pg_stats_ext \u548c pg_stats_ext_exprs \u4e2d\u65b0\u589e\u5217", "commits": ["3b88e50d6"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "77a507a60e5bb6de26e73824f5eab9e337ebfb84afe0035ece07905867de0aee", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["3b88e50d6"]], "identity_text": "Add columns to system views pg_stats, pg_stats_ext, and pg_stats_ext_exprs (Corey Huinker) Adds table OID and attribute number columns to pg_stats, and table OID and statistics object OID columns to the other two.", "commit_aliases": ["3b88e50d6"], "source_commits": ["3b88e50d6"], "source_entry_id": "19.0/changes/052", "db_id": "12db9d49dbacdd3acd3097499d95257b", "patch_ids": ["167e0c8c1a26c272980190d8e7a0e270"], "statement_hash": "0f862843f1f0944fb238a9e11512a752eb6794b9a8b72ff5efa632c311c6e038", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-acddee022cbbb5c8", "migration": false}, {"id": "19.0-5f34e7a99a37e89e", "cves": [], "html": "<p>\u4e3a\u8303\u56f4\u7c7b\u578b\u7684<a href=\"/docs/19/sql-createstatistics.html\" title=\"CREATE STATISTICS\">\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f</a>\u5728\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/19/view-pg-stats-ext-exprs.html\" title=\"53.33.\u00a0pg_stats_ext_exprs\"><code>pg_stats_ext_exprs</code></a> \u4e2d\u65b0\u589e\u76f8\u5173\u4fe1\u606f\uff08Corey Huinker\uff0cMichael Paquier\uff09<a href=\"https://postgr.es/c/307447e6d\">\u00a7</a></p>", "text": "\u4e3a\u8303\u56f4\u7c7b\u578b\u7684\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\u5728\u7cfb\u7edf\u89c6\u56fe pg_stats_ext_exprs \u4e2d\u65b0\u589e\u76f8\u5173\u4fe1\u606f\uff08Corey Huinker\uff0cMichael Paquier\uff09\u00a7", "title": "\u4e3a\u8303\u56f4\u7c7b\u578b\u7684\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\u5728\u7cfb\u7edf\u89c6\u56fe pg_stats_ext_exprs \u4e2d\u65b0\u589e\u76f8\u5173\u4fe1\u606f", "commits": ["307447e6d"], "section": "\u670d\u52a1\u5668 / \u7cfb\u7edf\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "7004b133b9a4e3e0727d2816fd789a780834eb4ce50bd9597676936bc9b2cb83", "section_path": ["\u670d\u52a1\u5668", "\u7cfb\u7edf\u89c6\u56fe"], "commit_groups": [["307447e6d"]], "identity_text": "Add information about range type extended statistics to system view pg_stats_ext_exprs (Corey Huinker, Michael Paquier)", "commit_aliases": ["307447e6d"], "source_commits": ["307447e6d"], "source_entry_id": "19.0/changes/053", "db_id": "2652a7114a139c675a08bcc66bca5c29", "patch_ids": ["a3f874f89e51ed918a91885a562fc58a"], "statement_hash": "a3e7d5a72903aacf1d92bd38b10a48ee7596723c687678c56503c342ea5cb53b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-5f34e7a99a37e89e", "migration": false}, {"id": "19.0-dcbbc283cdde6ee1", "cves": [], "html": "<p>\u5141\u8bb8\u6309\u8fdb\u7a0b\u7c7b\u578b\u6307\u5b9a <a href=\"/docs/19/runtime-config-logging.html#GUC-LOG-MIN-MESSAGES\"><code>log_min_messages</code></a> \u65e5\u5fd7\u7ea7\u522b\uff08Euler Taveira\uff09<a href=\"https://postgr.es/c/38e0190ce\">\u00a7</a></p>\n<p>\u65b0\u683c\u5f0f\u4e3a \"<em><code>type</code></em>:<em><code>level</code></em>\"\u3002\u4e0d\u5e26\u5192\u53f7\u7684\u503c\u63a7\u5236\u6240\u6709\u8fdb\u7a0b\u7c7b\u578b\uff0c\u4ee5\u4fdd\u6301\u5411\u540e\u517c\u5bb9\u3002</p>", "text": "\u5141\u8bb8\u6309\u8fdb\u7a0b\u7c7b\u578b\u6307\u5b9a log_min_messages \u65e5\u5fd7\u7ea7\u522b\uff08Euler Taveira\uff09\u00a7 \u65b0\u683c\u5f0f\u4e3a \"type:level\"\u3002\u4e0d\u5e26\u5192\u53f7\u7684\u503c\u63a7\u5236\u6240\u6709\u8fdb\u7a0b\u7c7b\u578b\uff0c\u4ee5\u4fdd\u6301\u5411\u540e\u517c\u5bb9\u3002", "title": "\u5141\u8bb8\u6309\u8fdb\u7a0b\u7c7b\u578b\u6307\u5b9a log_min_messages \u65e5\u5fd7\u7ea7\u522b", "commits": ["38e0190ce"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "be7290339ed3386b65ba52e168d8f8e299a2362e9999cbad239f7d391974f0a4", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["38e0190ce"]], "identity_text": "Allow log_min_messages log levels to be specified by process type (Euler Taveira) The new format is type:level. A value without a colon controls all process types, allowing backward compatibility.", "commit_aliases": ["38e0190ce"], "source_commits": ["38e0190ce"], "source_entry_id": "19.0/changes/054", "db_id": "ac30fd513b37b90f8faa730408010b32", "patch_ids": ["66cbc829f955df84710d975f92c71012"], "statement_hash": "7f05b75ae5b85f970d1b12a0689bf0272dc6ceff5685156ccecbf05b22fe4414", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-dcbbc283cdde6ee1", "migration": false}, {"id": "19.0-0ec2796c19e26ca7", "cves": [], "html": "<p>\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-logging.html#GUC-LOG-AUTOANALYZE-MIN-DURATION\"><code>log_autoanalyze_min_duration</code></a>\uff0c\u7528\u4e8e\u8bb0\u5f55<a href=\"/docs/19/routine-vacuuming.html#AUTOVACUUM\" title=\"24.1.6.\u00a0\u81ea\u52a8\u6e05\u7406\u5b88\u62a4\u8fdb\u7a0b\">\u81ea\u52a8\u6e05\u7406</a>\u6267\u884c\u7684\u8017\u65f6\u8f83\u957f\u7684\u5206\u6790\u64cd\u4f5c\uff08Shinya Kato\uff09<a href=\"https://postgr.es/c/dd3ae3783\">\u00a7</a></p>\n<p>\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-logging.html#GUC-LOG-AUTOVACUUM-MIN-DURATION\"><code>log_autovacuum_min_duration</code></a> \u73b0\u5728\u53ea\u63a7\u5236\u81ea\u52a8\u6e05\u7406\u6267\u884c\u7684\u6e05\u7406\u64cd\u4f5c\u65e5\u5fd7\u3002</p>", "text": "\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf log_autoanalyze_min_duration\uff0c\u7528\u4e8e\u8bb0\u5f55\u81ea\u52a8\u6e05\u7406\u6267\u884c\u7684\u8017\u65f6\u8f83\u957f\u7684\u5206\u6790\u64cd\u4f5c\uff08Shinya Kato\uff09\u00a7 \u670d\u52a1\u5668\u53d8\u91cf log_autovacuum_min_duration \u73b0\u5728\u53ea\u63a7\u5236\u81ea\u52a8\u6e05\u7406\u6267\u884c\u7684\u6e05\u7406\u64cd\u4f5c\u65e5\u5fd7\u3002", "title": "\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf log_autoanalyze_min_duration\uff0c\u7528\u4e8e\u8bb0\u5f55\u81ea\u52a8\u6e05\u7406\u6267\u884c\u7684\u8017\u65f6\u8f83\u957f\u7684\u5206\u6790\u64cd\u4f5c", "commits": ["dd3ae3783"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "3ab69293512f4b1b4b7de4192280ae028f260485f379c42bf7328c01d1cf13ec", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["dd3ae3783"]], "identity_text": "Add server variable log_autoanalyze_min_duration to log long-running analyze operations by autovacuum operations (Shinya Kato) Server variable log_autovacuum_min_duration now only controls logging of vacuum operations by autovacuum.", "commit_aliases": ["dd3ae3783"], "source_commits": ["dd3ae3783"], "source_entry_id": "19.0/changes/055", "db_id": "58e5a1965b6c9bd4c80f9ab5181ecfc4", "patch_ids": ["84b365b1be8baa0d0a64ba5ea86f4c79"], "statement_hash": "82a3f532d09f34212cda73df8c277f405507eca0db1af1dc032e3dbb92d90fa7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-0ec2796c19e26ca7", "migration": false}, {"id": "19.0-c42f7b629365e319", "cves": [], "html": "<p>\u9ed8\u8ba4\u542f\u7528\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-logging.html#GUC-LOG-LOCK-WAITS\"><code>log_lock_waits</code></a>\uff08Laurenz Albe\uff09<a href=\"https://postgr.es/c/2aac62be8\">\u00a7</a></p>", "text": "\u9ed8\u8ba4\u542f\u7528\u670d\u52a1\u5668\u53d8\u91cf log_lock_waits\uff08Laurenz Albe\uff09\u00a7", "title": "\u9ed8\u8ba4\u542f\u7528\u670d\u52a1\u5668\u53d8\u91cf log_lock_waits", "commits": ["2aac62be8"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "d8803b32a7ee48607b51d287f97cf4bd9a75011cd6bbfd480c270c372aefc5f9", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["2aac62be8"]], "identity_text": "Enable server variable log_lock_waits by default (Laurenz Albe)", "commit_aliases": ["2aac62be8"], "source_commits": ["2aac62be8"], "source_entry_id": "19.0/changes/056", "db_id": "862330852250e39402618fa205b0a7f7", "patch_ids": ["ebb36d7ba1d8de32a89cb9080070a98e"], "statement_hash": "fca93df9b61caa1563288978fbd0271a240aa3aa5cfa56c90e992a3f9750caba", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-c42f7b629365e319", "migration": false}, {"id": "19.0-b8850f1136aa7e26", "cves": [], "html": "<p>\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-logging.html#GUC-DEBUG-PRINT-RAW-PARSE\"><code>debug_print_raw_parse</code></a>\uff0c\u7528\u4e8e\u8bb0\u5f55\u539f\u59cb\u89e3\u6790\u6811\uff08Chao Li\uff09<a href=\"https://postgr.es/c/06473f5a3\">\u00a7</a></p>\n<p>\u5f53\u670d\u52a1\u5668\u4ee5 debug \u7ea7\u522b 3 \u53ca\u4ee5\u4e0a\u542f\u52a8\u65f6\uff0c\u4e5f\u4f1a\u542f\u7528\u8be5\u8f93\u51fa\u3002</p>", "text": "\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf debug_print_raw_parse\uff0c\u7528\u4e8e\u8bb0\u5f55\u539f\u59cb\u89e3\u6790\u6811\uff08Chao Li\uff09\u00a7 \u5f53\u670d\u52a1\u5668\u4ee5 debug \u7ea7\u522b 3 \u53ca\u4ee5\u4e0a\u542f\u52a8\u65f6\uff0c\u4e5f\u4f1a\u542f\u7528\u8be5\u8f93\u51fa\u3002", "title": "\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf debug_print_raw_parse\uff0c\u7528\u4e8e\u8bb0\u5f55\u539f\u59cb\u89e3\u6790\u6811", "commits": ["06473f5a3"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "cf2b08c6678a0a1a1b8123788c8c9b909cd72f7ab49aa1b35cd5d06be6b81989", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["06473f5a3"]], "identity_text": "Add server variable debug_print_raw_parse to log raw parse trees (Chao Li) This is also enabled when the server is started with debug level three and higher.", "commit_aliases": ["06473f5a3"], "source_commits": ["06473f5a3"], "source_entry_id": "19.0/changes/057", "db_id": "5646c356710a0ff468e680767a12145f", "patch_ids": ["35275b87d078704b84093abdbb33b317"], "statement_hash": "888aed639a6c6d53026c2715f12cfbf15bb0732325722454f20900b5f470d25d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-b8850f1136aa7e26", "migration": false}, {"id": "19.0-77afbd85e35a3a16", "cves": [], "html": "<p>\u8ba9\u6765\u81ea\u8fdc\u7aef\u670d\u52a1\u5668\u7684\u6d88\u606f\u4ee5\u4e0e\u672c\u5730\u670d\u52a1\u5668\u6d88\u606f\u76f8\u540c\u7684\u683c\u5f0f\u51fa\u73b0\u5728\u670d\u52a1\u5668\u65e5\u5fd7\u4e2d\uff08Vignesh C\uff09<a href=\"https://postgr.es/c/112faf137\">\u00a7</a></p>\n<p>\u8fd9\u5305\u62ec replication\u3001<a href=\"/docs/19/postgres-fdw.html\" title=\"F.40.\u00a0postgres_fdw \u2014 \u8bbf\u95ee\u5b58\u50a8\u5728\u5916\u90e8 PostgreSQL \u670d\u52a1\u5668\u4e2d\u7684\u6570\u636e\">postgres_fdw</a>\u548c<a href=\"/docs/19/dblink.html\" title=\"F.11.\u00a0dblink \u2014 \u8fde\u63a5\u5230\u5176\u4ed6 PostgreSQL \u6570\u636e\u5e93\">dblink</a>\u670d\u52a1\u5668\u3002</p>", "text": "\u8ba9\u6765\u81ea\u8fdc\u7aef\u670d\u52a1\u5668\u7684\u6d88\u606f\u4ee5\u4e0e\u672c\u5730\u670d\u52a1\u5668\u6d88\u606f\u76f8\u540c\u7684\u683c\u5f0f\u51fa\u73b0\u5728\u670d\u52a1\u5668\u65e5\u5fd7\u4e2d\uff08Vignesh C\uff09\u00a7 \u8fd9\u5305\u62ec replication\u3001postgres_fdw\u548cdblink\u670d\u52a1\u5668\u3002", "title": "\u8ba9\u6765\u81ea\u8fdc\u7aef\u670d\u52a1\u5668\u7684\u6d88\u606f\u4ee5\u4e0e\u672c\u5730\u670d\u52a1\u5668\u6d88\u606f\u76f8\u540c\u7684\u683c\u5f0f\u51fa\u73b0\u5728\u670d\u52a1\u5668\u65e5\u5fd7\u4e2d", "commits": ["112faf137"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "4ae996182bc6ba341f5e82fada3ae225f941056fba9d335934e5a8ae1b3733fb", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["112faf137"]], "identity_text": "Make messages coming from remote servers appear in the server logs in the same format as local server messages (Vignesh C) These include replication, postgres-fdw , and dblink servers.", "commit_aliases": ["112faf137"], "source_commits": ["112faf137"], "source_entry_id": "19.0/changes/058", "db_id": "2cd99aa5d193f608f0189a8061cb76f6", "patch_ids": ["ccf9c16787dca7d50e3a9153f9cfb579"], "statement_hash": "77ed52b035fe5f53546a51163df4617c0ab7ab64f9c6bced5a8bf49f6daca771", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-77afbd85e35a3a16", "migration": false}, {"id": "19.0-784899b25393e573", "cves": [], "html": "<p>\u65b0\u589e <acronym>WAL</acronym> <a href=\"/docs/19/runtime-config-wal.html#GUC-FULL-PAGE-WRITES\">\u6574\u9875\u5199\u5165</a>\u5b57\u8282\u62a5\u544a\u5230 <a href=\"/docs/19/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> \u548c <a href=\"/docs/19/sql-analyze.html\" title=\"ANALYZE\"><code>ANALYZE</code></a> \u65e5\u5fd7\uff08Shinya Kato\uff09<a href=\"https://postgr.es/c/ad25744f4\">\u00a7</a></p>", "text": "\u65b0\u589e WAL \u6574\u9875\u5199\u5165\u5b57\u8282\u62a5\u544a\u5230 VACUUM \u548c ANALYZE \u65e5\u5fd7\uff08Shinya Kato\uff09\u00a7", "title": "\u65b0\u589e WAL \u6574\u9875\u5199\u5165\u5b57\u8282\u62a5\u544a\u5230 VACUUM \u548c ANALYZE \u65e5\u5fd7", "commits": ["ad25744f4"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "e4d576827da843c05aebed37f9de9df430acabe17e1ee06c9455ef6850ce86cd", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["ad25744f4"]], "identity_text": "Add reporting of WAL full-page write bytes to VACUUM and ANALYZE logging (Shinya Kato)", "commit_aliases": ["ad25744f4"], "source_commits": ["ad25744f4"], "source_entry_id": "19.0/changes/059", "db_id": "955d9e4b2698a280b008c584d9539486", "patch_ids": ["94a3f0e4a3b21f2c53910cfca81db9ff"], "statement_hash": "a44cec2b41fa334c464c3877a0ebf1d70f42fabbbc377f9751741f45ee8cde36", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-784899b25393e573", "migration": false}, {"id": "19.0-9b6c5e6a79abfc98", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY FROM/TO</code></a> \u5728\u7ba1\u9053\u3001\u6587\u4ef6\u6216\u7a0b\u5e8f\u4e0a\u65b0\u589e I/O \u7b49\u5f85\u4e8b\u4ef6\uff08Nikolay Samokhvalov\uff09<a href=\"https://postgr.es/c/e05a24c2d\">\u00a7</a></p>", "text": "\u4e3a COPY FROM/TO \u5728\u7ba1\u9053\u3001\u6587\u4ef6\u6216\u7a0b\u5e8f\u4e0a\u65b0\u589e I/O \u7b49\u5f85\u4e8b\u4ef6\uff08Nikolay Samokhvalov\uff09\u00a7", "title": "\u4e3a COPY FROM/TO \u5728\u7ba1\u9053\u3001\u6587\u4ef6\u6216\u7a0b\u5e8f\u4e0a\u65b0\u589e I/O \u7b49\u5f85\u4e8b\u4ef6", "commits": ["e05a24c2d"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "5396bad096ad5313b40ecedabf957cdd0804d5e03395a39537797401e355c0b2", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["e05a24c2d"]], "identity_text": "Add IO wait events for COPY FROM/TO on a pipe, file, or program (Nikolay Samokhvalov)", "commit_aliases": ["e05a24c2d"], "source_commits": ["e05a24c2d"], "source_entry_id": "19.0/changes/060", "db_id": "b3b01a7c701b61ef5858222373ff004a", "patch_ids": ["2630f9bc0cce8bc4ebf35ca0c0d14d12"], "statement_hash": "5de254cc8cd56e901c00de548a4109f9ca758ba8ef1f2a39432e282362c077d9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-9b6c5e6a79abfc98", "migration": false}, {"id": "19.0-028c1424830a912c", "cves": [], "html": "<p>\u65b0\u589e<a href=\"/docs/19/runtime-config-wal.html#GUC-COMMIT-DELAY\">commit_delay</a>\u4ee5\u53ca <acronym>WAL</acronym> \u5199\u5165\u548c\u5237\u76d8 <a href=\"/docs/19/wal-internals.html\" title=\"28.6.\u00a0WAL \u5185\u90e8\u673a\u5236\">LSN</a> \u7684\u7b49\u5f85\u4e8b\u4ef6\uff08Xuneng Zhou\uff09<a href=\"https://postgr.es/c/7a39f43d8\">\u00a7</a><a href=\"https://postgr.es/c/3cb5808bd\">\u00a7</a></p>", "text": "\u65b0\u589ecommit_delay\u4ee5\u53ca WAL \u5199\u5165\u548c\u5237\u76d8 LSN \u7684\u7b49\u5f85\u4e8b\u4ef6\uff08Xuneng Zhou\uff09\u00a7\u00a7", "title": "\u65b0\u589ecommit_delay\u4ee5\u53ca WAL \u5199\u5165\u548c\u5237\u76d8 LSN \u7684\u7b49\u5f85\u4e8b\u4ef6", "commits": ["3cb5808bd", "7a39f43d8"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "b6cdd2c52e3d79b26d3f29232151d98d568bf6c9066cf95a0b816da2483f1c53", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["3cb5808bd"], ["7a39f43d8"]], "identity_text": "Add wait events for guc-commit-delay and for WAL write and flush LSNs (Xuneng Zhou)", "commit_aliases": ["3cb5808bd", "7a39f43d8"], "source_commits": ["3cb5808bd", "7a39f43d8"], "source_entry_id": "19.0/changes/061", "db_id": "9ce16931b04b6b8074722b817754bc63", "patch_ids": ["1f0d51e7a5eb278056c49933b60ca129", "aa919e1de06d26365f9c5f03b3bcdf3a"], "statement_hash": "971e2da0d9f5c4e877063d950e28551c7a6d2239996851345a33279cfbe6c6c3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-028c1424830a912c", "migration": false}, {"id": "19.0-0ec6a0479820a04f", "cves": [], "html": "<p>\u8ba9 <a href=\"/docs/19/functions-sequence.html#FUNC-PG-GET-SEQUENCE-DATA\"><code>pg_get_sequence_data()</code></a> \u8fd4\u56de\u5e8f\u5217\u9875 <a href=\"/docs/19/wal-internals.html\" title=\"28.6.\u00a0WAL \u5185\u90e8\u673a\u5236\"><acronym>LSN</acronym></a>\uff08Vignesh C\uff09<a href=\"https://postgr.es/c/b93172ca5\">\u00a7</a></p>", "text": "\u8ba9 pg_get_sequence_data() \u8fd4\u56de\u5e8f\u5217\u9875 LSN\uff08Vignesh C\uff09\u00a7", "title": "\u8ba9 pg_get_sequence_data() \u8fd4\u56de\u5e8f\u5217\u9875 LSN", "commits": ["b93172ca5"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "01e5953fadc89c81a681f12c7123f2d6105b9af0f43071e0f43a34b22826174d", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["b93172ca5"]], "identity_text": "Have pg_get_sequence_data() return the sequence page LSN (Vignesh C)", "commit_aliases": ["b93172ca5"], "source_commits": ["b93172ca5"], "source_entry_id": "19.0/changes/062", "db_id": "5c4b41b07ad5a6846d0f88875676a366", "patch_ids": ["ca358649ef732c7b4f3918d56e59e40a"], "statement_hash": "0d6a38307641d0f3030b9c7495bfa8fae80ef337dafac322eea8a774c6c546c8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-0ec6a0479820a04f", "migration": false}, {"id": "19.0-fe3f69664fac6b04", "cves": [], "html": "<p>\u65b0\u589e\u51fd\u6570 <a href=\"/docs/19/functions-info.html#FUNCTIONS-INFO-SNAPSHOT\" title=\"9.28.8.\u00a0\u4e8b\u52a1 ID \u548c\u5feb\u7167\u4fe1\u606f\u51fd\u6570\"><code>pg_get_multixact_stats()</code></a>\uff0c\u7528\u4e8e\u62a5\u544a <a href=\"/docs/19/routine-vacuuming.html#VACUUM-FOR-MULTIXACT-WRAPAROUND\" title=\"24.1.5.1.\u00a0\u591a\u4e8b\u52a1\u4e0e\u56de\u5377\">multixact</a> \u6d3b\u52a8\uff08Naga Appani\uff09<a href=\"https://postgr.es/c/97b101776\">\u00a7</a></p>", "text": "\u65b0\u589e\u51fd\u6570 pg_get_multixact_stats()\uff0c\u7528\u4e8e\u62a5\u544a multixact \u6d3b\u52a8\uff08Naga Appani\uff09\u00a7", "title": "\u65b0\u589e\u51fd\u6570 pg_get_multixact_stats()\uff0c\u7528\u4e8e\u62a5\u544a multixact \u6d3b\u52a8", "commits": ["97b101776"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "4d55154169088eccde38cc1ff20475d6012724007fdacd5c597a43bd5a9772c2", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["97b101776"]], "identity_text": "Add function pg_get_multixact_stats() to report multixact activity (Naga Appani)", "commit_aliases": ["97b101776"], "source_commits": ["97b101776"], "source_entry_id": "19.0/changes/063", "db_id": "bf2a05dc98b437e70313063ece4b32a8", "patch_ids": ["0d2af11dadc727e6184dfcf0ec4cd491"], "statement_hash": "ccd410072bda5c9bf21cdd7f9c9b21c66a942c5b683eaa70c7fe9c3ea332f5d2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-fe3f69664fac6b04", "migration": false}, {"id": "19.0-9763b20f67b56c79", "cves": [], "html": "<p>\u5f53 xid \u548c multi-xids \u7684<a href=\"/docs/19/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND\" title=\"24.1.5.\u00a0\u9632\u6b62\u4e8b\u52a1 ID \u56de\u5377\u5931\u8d25\">\u56de\u5377</a>\u8ddd\u79bb\u5c0f\u4e8e 1 \u4ebf\u65f6\u53d1\u51fa\u8b66\u544a\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/48f11bfa0\">\u00a7</a></p>\n<p>\u6b64\u524d\u7684\u8b66\u544a\u9608\u503c\u4e3a 4000 \u4e07\u3002\u8b66\u544a\u4f1a\u53d1\u9001\u7ed9\u5ba2\u6237\u7aef\u5e76\u5199\u5165\u670d\u52a1\u5668\u65e5\u5fd7\u3002</p>", "text": "\u5f53 xid \u548c multi-xids \u7684\u56de\u5377\u8ddd\u79bb\u5c0f\u4e8e 1 \u4ebf\u65f6\u53d1\u51fa\u8b66\u544a\uff08Nathan Bossart\uff09\u00a7 \u6b64\u524d\u7684\u8b66\u544a\u9608\u503c\u4e3a 4000 \u4e07\u3002\u8b66\u544a\u4f1a\u53d1\u9001\u7ed9\u5ba2\u6237\u7aef\u5e76\u5199\u5165\u670d\u52a1\u5668\u65e5\u5fd7\u3002", "title": "\u5f53 xid \u548c multi-xids \u7684\u56de\u5377\u8ddd\u79bb\u5c0f\u4e8e 1 \u4ebf\u65f6\u53d1\u51fa\u8b66\u544a", "commits": ["48f11bfa0"], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "c5e174788f858c1ea39304f17b2f2e66d81fbe3a3b5cbce9ae18976d4b3b960b", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [["48f11bfa0"]], "identity_text": "Issue warnings when the wraparound of xid and multi-xids is less than 100 million (Nathan Bossart) The previous warning was 40 million. Warnings are issued to clients and in the server log.", "commit_aliases": ["48f11bfa0"], "source_commits": ["48f11bfa0"], "source_entry_id": "19.0/changes/064", "db_id": "c86b2dfd0978d65014a81a022bfc457e", "patch_ids": ["56cc61cb3c8c85c3391226a6d84b88b9"], "statement_hash": "fbeacdf215797907d57b49f52da6308db6ae4242af2333d2566670274680679c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-9763b20f67b56c79", "migration": false}, {"id": "19.0-cb5aee5db55b65e0", "cves": [], "html": "<p>\u65b0\u589e\u8bc4\u5206\u7cfb\u7edf\uff0c\u7528\u4e8e\u63a7\u5236<a href=\"/docs/19/routine-vacuuming.html#AUTOVACUUM\" title=\"24.1.6.\u00a0\u81ea\u52a8\u6e05\u7406\u5b88\u62a4\u8fdb\u7a0b\">\u81ea\u52a8\u6e05\u7406</a>\u5904\u7406\u8868\u7684\u987a\u5e8f\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/d7965d65f\">\u00a7</a></p>\n<p>\u65b0\u589e\u7684\u670d\u52a1\u5668\u53d8\u91cf\u6709 <a href=\"/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-FREEZE-SCORE-WEIGHT\"><code>autovacuum_freeze_score_weight</code></a>\u3001<a href=\"/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-MULTIXACT-FREEZE-SCORE-WEIGHT\"><code>autovacuum_multixact_freeze_score_weight</code></a>\u3001<a href=\"/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-VACUUM-SCORE-WEIGHT\"><code>autovacuum_vacuum_score_weight</code></a>\u3001<a href=\"/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-VACUUM-INSERT-SCORE-WEIGHT\"><code>autovacuum_vacuum_insert_score_weight</code></a> \u548c <a href=\"/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-ANALYZE-SCORE-WEIGHT\"><code>autovacuum_analyze_score_weight</code></a>\u3002</p>", "text": "\u65b0\u589e\u8bc4\u5206\u7cfb\u7edf\uff0c\u7528\u4e8e\u63a7\u5236\u81ea\u52a8\u6e05\u7406\u5904\u7406\u8868\u7684\u987a\u5e8f\uff08Nathan Bossart\uff09\u00a7 \u65b0\u589e\u7684\u670d\u52a1\u5668\u53d8\u91cf\u6709 autovacuum_freeze_score_weight\u3001autovacuum_multixact_freeze_score_weight\u3001autovacuum_vacuum_score_weight\u3001autovacuum_vacuum_insert_score_weight \u548c autovacuum_analyze_score_weight\u3002", "title": "\u65b0\u589e\u8bc4\u5206\u7cfb\u7edf\uff0c\u7528\u4e8e\u63a7\u5236\u81ea\u52a8\u6e05\u7406\u5904\u7406\u8868\u7684\u987a\u5e8f", "commits": ["d7965d65f"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "d8b3f9b36a9bdfec1ee792da2576f86cdfbc83d6d11f47e3f6a5ce182f6d9c4f", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["d7965d65f"]], "identity_text": "Add scoring system to control the order that tables are processed by autovacuum (Nathan Bossart) The new server variables are autovacuum_freeze_score_weight, autovacuum_multixact_freeze_score_weight, autovacuum_vacuum_score_weight, autovacuum_vacuum_insert_score_weight, and autovacuum_analyze_score_weight.", "commit_aliases": ["d7965d65f"], "source_commits": ["d7965d65f"], "source_entry_id": "19.0/changes/065", "db_id": "0d9f9454c64cc4b7eedd304905ab4a38", "patch_ids": ["76b377a180730964486ff9a5ba182cb0"], "statement_hash": "3f0ba68cd9ab64f66d615898394c7a5b6c80ea26b2fda9fbc05de01328ca52eb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-cb5aee5db55b65e0", "migration": false}, {"id": "19.0-f7f6d4b0ac5b0751", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/19/ssl-tcp.html#SSL-SNI\" title=\"18.9.6.\u00a0SNI \u914d\u7f6e\"><acronym>SNI</acronym></a>\uff08Server Name Indication\uff09\u670d\u52a1\u7aef\u652f\u6301\uff08Daniel Gustafsson\uff0cJacob Champion\uff09<a href=\"https://postgr.es/c/4f433025f\">\u00a7</a></p>\n<p>\u65b0\u7684\u914d\u7f6e\u6587\u4ef6 <a href=\"/docs/19/runtime-config-file-locations.html#GUC-HOSTS-FILE\"><code>PGDATA/pg_hosts.conf</code></a> \u6307\u5b9a\u4e3b\u673a\u540d/\u5bc6\u94a5\u5bf9\u3002</p>", "text": "\u65b0\u589e SNI\uff08Server Name Indication\uff09\u670d\u52a1\u7aef\u652f\u6301\uff08Daniel Gustafsson\uff0cJacob Champion\uff09\u00a7 \u65b0\u7684\u914d\u7f6e\u6587\u4ef6 PGDATA/pg_hosts.conf \u6307\u5b9a\u4e3b\u673a\u540d/\u5bc6\u94a5\u5bf9\u3002", "title": "\u65b0\u589e SNI\uff08Server Name Indication\uff09\u670d\u52a1\u7aef\u652f\u6301", "commits": ["4f433025f"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "5396b0786935e53ff282bb1bcbacbed3145bc9f074c3ef37e13b7de884b63a8f", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["4f433025f"]], "identity_text": "Add server-side support for SNI (Server Name Indication) (Daniel Gustafsson, Jacob Champion) New configuration file PGDATA/pg_hosts.conf specifies hostname/key pairs.", "commit_aliases": ["4f433025f"], "source_commits": ["4f433025f"], "source_entry_id": "19.0/changes/066", "db_id": "06e99b63f9b1a29614cfa69977c749fe", "patch_ids": ["7ce29b9884bd363f5cf3fd82d02f9636"], "statement_hash": "0bca0f0700c01e6cfc8f695015587f5958945bd3795e2ebb116b677ec0be540b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-f7f6d4b0ac5b0751", "migration": false}, {"id": "19.0-58c725ecf0deb3e0", "cves": [], "html": "<p>\u5141\u8bb8 OAuth \u9a8c\u8bc1\u5668\u6ce8\u518c\u81ea\u5b9a\u4e49 <a href=\"/docs/19/auth-pg-hba-conf.html\" title=\"20.1.\u00a0pg_hba.conf \u6587\u4ef6\"><code>pg_hba.conf</code></a> \u8ba4\u8bc1\u9009\u9879\uff08Jacob Champion\uff0cZsolt Parragi\uff09<a href=\"https://postgr.es/c/b977bd308\">\u00a7</a></p>", "text": "\u5141\u8bb8 OAuth \u9a8c\u8bc1\u5668\u6ce8\u518c\u81ea\u5b9a\u4e49 pg_hba.conf \u8ba4\u8bc1\u9009\u9879\uff08Jacob Champion\uff0cZsolt Parragi\uff09\u00a7", "title": "\u5141\u8bb8 OAuth \u9a8c\u8bc1\u5668\u6ce8\u518c\u81ea\u5b9a\u4e49 pg_hba.conf \u8ba4\u8bc1\u9009\u9879", "commits": ["b977bd308"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "b9cd2f6fe915572004508203dea57ce73e713ab594c4763e21184f480036dff4", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["b977bd308"]], "identity_text": "Allow OAuth validators to register custom pg_hba.conf authentication options (Jacob Champion, Zsolt Parragi)", "commit_aliases": ["b977bd308"], "source_commits": ["b977bd308"], "source_entry_id": "19.0/changes/067", "db_id": "6af79610fa6d25b69fac86cc1b525a9a", "patch_ids": ["5b9e5d4e7cef9936983e3f65efaa6693"], "statement_hash": "2e148139c5c99b96fdb277c39e38ba6347c5afec649c1cd7f9022d3f9f2f16bc", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-58c725ecf0deb3e0", "migration": false}, {"id": "19.0-45b2ab0ca584ec8a", "cves": [], "html": "<p>\u5141\u8bb8\u89d2\u8272 <a href=\"/docs/19/predefined-roles.html#PREDEFINED-ROLE-PG-READ-ALL-DATA\"><code>pg_read_all_data</code></a> \u548c <a href=\"/docs/19/predefined-roles.html#PREDEFINED-ROLE-PG-READ-ALL-DATA\"><code>pg_write_all_data</code></a> \u8bfb\u5199\u5927\u5bf9\u8c61\uff08Nitin Motiani\uff0cNathan Bossart\uff09<a href=\"https://postgr.es/c/d98197602\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u89d2\u8272\u65e8\u5728\u5141\u8bb8\u975e\u8d85\u7ea7\u7528\u6237\u8fd0\u884c<a href=\"/docs/19/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>\u3002</p>", "text": "\u5141\u8bb8\u89d2\u8272 pg_read_all_data \u548c pg_write_all_data \u8bfb\u5199\u5927\u5bf9\u8c61\uff08Nitin Motiani\uff0cNathan Bossart\uff09\u00a7 \u8fd9\u4e9b\u89d2\u8272\u65e8\u5728\u5141\u8bb8\u975e\u8d85\u7ea7\u7528\u6237\u8fd0\u884cpg_dump\u3002", "title": "\u5141\u8bb8\u89d2\u8272 pg_read_all_data \u548c pg_write_all_data \u8bfb\u5199\u5927\u5bf9\u8c61", "commits": ["d98197602"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "127199712cb45ed03c695d443c22da7886e43b5a3c861863e0938e4249869482", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["d98197602"]], "identity_text": "Allow roles pg_read_all_data and pg_write_all_data to read/write large objects (Nitin Motiani, Nathan Bossart) These roles are designed to allow non-super users to run pg_dump.", "commit_aliases": ["d98197602"], "source_commits": ["d98197602"], "source_entry_id": "19.0/changes/068", "db_id": "7546efde38c27c3ea4c44d31a764c942", "patch_ids": ["e8821ab803267cd9177e8f533e609ff5"], "statement_hash": "f78ec1c3d3366a20842cbbac9665c0542dda68d3cb6ea036006fe09bdf6d8e89", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-45b2ab0ca584ec8a", "migration": false}, {"id": "19.0-e8ecfac629a33f48", "cves": [], "html": "<p>\u5141\u8bb8\u914d\u7f6e\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\uff0c\u4f7f\u5176\u5728\u6570\u636e\u5e93\u7ea7\u64cd\u4f5c\u4e4b\u524d\u7ec8\u6b62\uff08Aya Iwata\uff09<a href=\"https://postgr.es/c/f1e251be8\">\u00a7</a></p>\n<p>\u7531\u4e8e\u73b0\u5728\u53ef\u4ee5\u7ec8\u6b62\u9020\u6210\u963b\u585e\u7684\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\uff0c\u6570\u636e\u5e93\u7ea7\u64cd\u4f5c\u53ef\u4ee5\u66f4\u5feb\u5b8c\u6210\u3002</p>", "text": "\u5141\u8bb8\u914d\u7f6e\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\uff0c\u4f7f\u5176\u5728\u6570\u636e\u5e93\u7ea7\u64cd\u4f5c\u4e4b\u524d\u7ec8\u6b62\uff08Aya Iwata\uff09\u00a7 \u7531\u4e8e\u73b0\u5728\u53ef\u4ee5\u7ec8\u6b62\u9020\u6210\u963b\u585e\u7684\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\uff0c\u6570\u636e\u5e93\u7ea7\u64cd\u4f5c\u53ef\u4ee5\u66f4\u5feb\u5b8c\u6210\u3002", "title": "\u5141\u8bb8\u914d\u7f6e\u540e\u53f0\u5de5\u4f5c\u8fdb\u7a0b\uff0c\u4f7f\u5176\u5728\u6570\u636e\u5e93\u7ea7\u64cd\u4f5c\u4e4b\u524d\u7ec8\u6b62", "commits": ["f1e251be8"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "3b253bfaa88968971752451a8075a5a5a8c7c5e429269c6607cc4ca273a01257", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["f1e251be8"]], "identity_text": "Allow background workers to be configured to terminate before database-level operations (Aya Iwata) This allows database-level operations to complete more quickly since blocking background workers can now be terminated.", "commit_aliases": ["f1e251be8"], "source_commits": ["f1e251be8"], "source_entry_id": "19.0/changes/069", "db_id": "94d0fbd1cd265761e78acc6492d37d07", "patch_ids": ["5a78770d7da2184228f0ab9685eafd9e"], "statement_hash": "828364cf1cc33ec4d8b84f8666275ef6a299eb947bab17da8e236dec761121c1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-e8ecfac629a33f48", "migration": false}, {"id": "19.0-64612256f1602740", "cves": [], "html": "<p>\u5141\u8bb8\u5c06\u8868\u793a\u5217\u8868\u7684<a href=\"/docs/19/config-setting.html\" title=\"19.1.\u00a0\u8bbe\u7f6e\u53c2\u6570\">\u670d\u52a1\u5668\u53d8\u91cf</a>\u503c\u8bbe\u4e3a <code>NULL</code> \u6765\u6e05\u7a7a\u5b83\u4eec\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/ff4597acd\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5c06\u8868\u793a\u5217\u8868\u7684\u670d\u52a1\u5668\u53d8\u91cf\u503c\u8bbe\u4e3a NULL \u6765\u6e05\u7a7a\u5b83\u4eec\uff08Tom Lane\uff09\u00a7", "title": "\u5141\u8bb8\u5c06\u8868\u793a\u5217\u8868\u7684\u670d\u52a1\u5668\u53d8\u91cf\u503c\u8bbe\u4e3a NULL \u6765\u6e05\u7a7a\u5b83\u4eec", "commits": ["ff4597acd"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "176c9e7d279e68d5d2a7b25b882d8a4254df4dcc4d87ef46cb8580a081f3a183", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["ff4597acd"]], "identity_text": "Allow server variables that represent lists to be emptied by setting the value to NULL (Tom Lane)", "commit_aliases": ["ff4597acd"], "source_commits": ["ff4597acd"], "source_entry_id": "19.0/changes/070", "db_id": "a5d855186d463c3452a21cc5487e0301", "patch_ids": ["04793e08fa193196f782ebd8711ddfaf"], "statement_hash": "5816d3ee299a6bce320a65a558ad08dc9ac81ad2bcbe613dd407a003cf3c5cfd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-64612256f1602740", "migration": false}, {"id": "19.0-2dbb2275f18e0901", "cves": [], "html": "<p>\u5c06<a href=\"/docs/19/multibyte.html#MULTIBYTE-CHARSET-SUPPORTED\" title=\"23.3.1.\u00a0\u652f\u6301\u7684\u5b57\u7b26\u96c6\">GB18030 \u7f16\u7801</a>\u4ece 2000 \u7248\u66f4\u65b0\u5230 2022 \u7248\uff08Chao Li\uff0cZheng Tao\uff09<a href=\"https://postgr.es/c/5334620ee\">\u00a7</a></p>\n<p>\u517c\u5bb9\u6027\u7ec6\u8282\u8bf7\u53c2\u89c1\u63d0\u4ea4\u8bf4\u660e\u3002</p>", "text": "\u5c06GB18030 \u7f16\u7801\u4ece 2000 \u7248\u66f4\u65b0\u5230 2022 \u7248\uff08Chao Li\uff0cZheng Tao\uff09\u00a7 \u517c\u5bb9\u6027\u7ec6\u8282\u8bf7\u53c2\u89c1\u63d0\u4ea4\u8bf4\u660e\u3002", "title": "\u5c06GB18030 \u7f16\u7801\u4ece 2000 \u7248\u66f4\u65b0\u5230 2022 \u7248", "commits": ["5334620ee"], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u914d\u7f6e", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "ee2981026ec290bb348e89954c5b60c8d9c4483c6d0eaabe3b08b41689028924", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u914d\u7f6e"], "commit_groups": [["5334620ee"]], "identity_text": "Update GB18030 encoding from version 2000 to 2022 (Chao Li, Zheng Tao) See the commit message for compatibility details.", "commit_aliases": ["5334620ee"], "source_commits": ["5334620ee"], "source_entry_id": "19.0/changes/071", "db_id": "3cb57e2d01a6cd251c7c76adc4b04cd3", "patch_ids": ["48b8aca46ccc0401e45a940f9c75b966"], "statement_hash": "594deded9e558041e87867a80a07ef79e230cbd6044de59b45a32f09dc48c45e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-2dbb2275f18e0901", "migration": false}, {"id": "19.0-f16d6c76b149aa22", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/19/sql-wait.html\" title=\"WAIT\"><code>WAIT</code></a> \u547d\u4ee4\uff0c\u5141\u8bb8\u5907\u5e93\u7b49\u5f85 <a href=\"/docs/19/wal-internals.html\" title=\"28.6.\u00a0WAL \u5185\u90e8\u673a\u5236\"><acronym>LSN</acronym></a> \u503c\u88ab\u5199\u5165\u3001\u5237\u76d8\u6216\u91cd\u653e\uff08Kartyshov Ivan\uff0cAlexander Korotkov\uff0cXuneng Zhou\uff09<a href=\"https://postgr.es/c/447aae13b\">\u00a7</a> <a href=\"https://postgr.es/c/49a181b5d\">\u00a7</a></p>", "text": "\u65b0\u589e WAIT \u547d\u4ee4\uff0c\u5141\u8bb8\u5907\u5e93\u7b49\u5f85 LSN \u503c\u88ab\u5199\u5165\u3001\u5237\u76d8\u6216\u91cd\u653e\uff08Kartyshov Ivan\uff0cAlexander Korotkov\uff0cXuneng Zhou\uff09\u00a7 \u00a7", "title": "\u65b0\u589e WAIT \u547d\u4ee4\uff0c\u5141\u8bb8\u5907\u5e93\u7b49\u5f85 LSN \u503c\u88ab\u5199\u5165\u3001\u5237\u76d8\u6216\u91cd\u653e", "commits": ["447aae13b", "49a181b5d"], "section": "\u670d\u52a1\u5668 / \u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-REPLICATION", "source_hash": "7643753f4bdb59e3f5037f26f940fb5694e77c0975eb0cf59a6f9c0f6f1a166f", "section_path": ["\u670d\u52a1\u5668", "\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["447aae13b"], ["49a181b5d"]], "identity_text": "Add WAIT command to allow standbys to wait for LSN values to be written, flushed, or replayed (Kartyshov Ivan, Alexander Korotkov, Xuneng Zhou)", "commit_aliases": ["447aae13b", "49a181b5d"], "source_commits": ["447aae13b", "49a181b5d"], "source_entry_id": "19.0/changes/072", "db_id": "8510af8d8e9389f36a5077fe08ccb6bb", "patch_ids": ["ab4333cd6963f42a7e4f86aa337dea68", "b64769bf59f0f77abf2b0a0a53a251d2"], "statement_hash": "4357b28480e90e33d602b88e9ee9bd5d1d009e4ee3b3ac8d0e4c2b48b44ae249", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-f16d6c76b149aa22", "migration": false}, {"id": "19.0-568de1b0b34a1f5f", "cves": [], "html": "<p>\u6539\u8fdb <a href=\"/docs/19/functions-admin.html#PG-SYNC-REPLICATION-SLOTS\"><code>pg_sync_replication_slots()</code></a>\uff0c\u4f7f\u5176\u7b49\u5f85\u540c\u6b65\u5b8c\u6210\uff08Ajin Cherian\uff0cZhijie Hou\uff09<a href=\"https://postgr.es/c/0d2d4a0ec\">\u00a7</a></p>\n<p>\u6b64\u524d\u67d0\u4e9b\u540c\u6b65\u5931\u8d25\u4e0d\u4f1a\u88ab\u62a5\u544a\u3002</p>", "text": "\u6539\u8fdb pg_sync_replication_slots()\uff0c\u4f7f\u5176\u7b49\u5f85\u540c\u6b65\u5b8c\u6210\uff08Ajin Cherian\uff0cZhijie Hou\uff09\u00a7 \u6b64\u524d\u67d0\u4e9b\u540c\u6b65\u5931\u8d25\u4e0d\u4f1a\u88ab\u62a5\u544a\u3002", "title": "\u6539\u8fdb pg_sync_replication_slots()\uff0c\u4f7f\u5176\u7b49\u5f85\u540c\u6b65\u5b8c\u6210", "commits": ["0d2d4a0ec"], "section": "\u670d\u52a1\u5668 / \u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-REPLICATION", "source_hash": "d681defc763334271c6eabcffe2479e61a6f41208cdbe9de86a02faf459c7d7d", "section_path": ["\u670d\u52a1\u5668", "\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["0d2d4a0ec"]], "identity_text": "Improve function pg_sync_replication_slots() to wait for replication synchronization completion (Ajin Cherian, Zhijie Hou) Previously, certain synchronization failures would not be reported.", "commit_aliases": ["0d2d4a0ec"], "source_commits": ["0d2d4a0ec"], "source_entry_id": "19.0/changes/073", "db_id": "45a31034a4672bd881e44cbe52066ccc", "patch_ids": ["338e3e19e235235f0275be20e543213b"], "statement_hash": "425b216f04b5fec1c9f6f6ba4f6eb2025d2d607e4b08e81c19bfc08de35595e5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-568de1b0b34a1f5f", "migration": false}, {"id": "19.0-64eb720430cf7823", "cves": [], "html": "<p>\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-replication.html#GUC-WAL-SENDER-SHUTDOWN-TIMEOUT\"><code>wal_sender_shutdown_timeout</code></a>\uff0c\u7528\u4e8e\u9650\u5236\u5173\u95ed\u671f\u95f4\u7684\u526f\u672c\u540c\u6b65\u7b49\u5f85\uff08Andrey Silitskiy\uff0cHayato Kuroda\uff09<a href=\"https://postgr.es/c/a8f45dee9\">\u00a7</a></p>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0csender \u4ecd\u4f1a\u4e00\u76f4\u7b49\u5f85\u540c\u6b65\u3002</p>", "text": "\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf wal_sender_shutdown_timeout\uff0c\u7528\u4e8e\u9650\u5236\u5173\u95ed\u671f\u95f4\u7684\u526f\u672c\u540c\u6b65\u7b49\u5f85\uff08Andrey Silitskiy\uff0cHayato Kuroda\uff09\u00a7 \u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0csender \u4ecd\u4f1a\u4e00\u76f4\u7b49\u5f85\u540c\u6b65\u3002", "title": "\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf wal_sender_shutdown_timeout\uff0c\u7528\u4e8e\u9650\u5236\u5173\u95ed\u671f\u95f4\u7684\u526f\u672c\u540c\u6b65\u7b49\u5f85", "commits": ["a8f45dee9"], "section": "\u670d\u52a1\u5668 / \u6d41\u590d\u5236\u4e0e\u6062\u590d", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-REPLICATION", "source_hash": "f041fedc21d2d911223dcb4d84e0a674aa4569686f06d1f85deeea135f2a1bd5", "section_path": ["\u670d\u52a1\u5668", "\u6d41\u590d\u5236\u4e0e\u6062\u590d"], "commit_groups": [["a8f45dee9"]], "identity_text": "Add server variable wal_sender_shutdown_timeout to limit replica synchronization waits during shutdown (Andrey Silitskiy, Hayato Kuroda) By default, senders still wait forever for synchronization.", "commit_aliases": ["a8f45dee9"], "source_commits": ["a8f45dee9"], "source_entry_id": "19.0/changes/074", "db_id": "203a2adcedefdb3edd8d755c8e8d5ca4", "patch_ids": ["08ebe665d7e0f34213e1790cadf03a27"], "statement_hash": "9e31240cd0f7357f5add0456a9f2241263b7e5ee8e97793d13a6536581761a05", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-64eb720430cf7823", "migration": false}, {"id": "19.0-a87bfb7f681749d4", "cves": [], "html": "<p>\u5141\u8bb8\u8ba2\u9605\u8005\u4e2d\u5b58\u50a8\u7684\u5e8f\u5217\u503c\u4e0e\u53d1\u5e03\u8005\u4e00\u81f4\uff08Vignesh C\uff09<a href=\"https://postgr.es/c/f0b3573c3\">\u00a7</a><a href=\"https://postgr.es/c/5509055d6\">\u00a7</a><a href=\"https://postgr.es/c/55cefadde\">\u00a7</a></p>\n<p>\u53ef\u5728 <a href=\"/docs/19/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>CREATE SUBSCRIPTION</code></a>\u3001<a href=\"/docs/19/sql-altersubscription.html\" title=\"ALTER SUBSCRIPTION\"><code>ALTER SUBSCRIPTION ... REFRESH PUBLICATION</code></a> \u548c <a href=\"/docs/19/sql-altersubscription.html\" title=\"ALTER SUBSCRIPTION\"><code>ALTER SUBSCRIPTION ... REFRESH SEQUENCES</code></a> \u4e2d\u542f\u7528\u3002\u540e\u8005\u53ea\u66f4\u65b0\u503c\uff0c\u4e0d\u66f4\u65b0\u5e8f\u5217\u5b58\u5728\u6027\u3002\u51fd\u6570 <a href=\"/docs/19/functions-sequence.html#FUNC-PG-GET-SEQUENCE-DATA\"><code>pg_get_sequence_data()</code></a> \u53ef\u7528\u4e8e\u68c0\u67e5\u5e8f\u5217\u540c\u6b65\u3002</p>", "text": "\u5141\u8bb8\u8ba2\u9605\u8005\u4e2d\u5b58\u50a8\u7684\u5e8f\u5217\u503c\u4e0e\u53d1\u5e03\u8005\u4e00\u81f4\uff08Vignesh C\uff09\u00a7\u00a7\u00a7 \u53ef\u5728 CREATE SUBSCRIPTION\u3001ALTER SUBSCRIPTION ... REFRESH PUBLICATION \u548c ALTER SUBSCRIPTION ... REFRESH SEQUENCES \u4e2d\u542f\u7528\u3002\u540e\u8005\u53ea\u66f4\u65b0\u503c\uff0c\u4e0d\u66f4\u65b0\u5e8f\u5217\u5b58\u5728\u6027\u3002\u51fd\u6570 pg_get_sequence_data() \u53ef\u7528\u4e8e\u68c0\u67e5\u5e8f\u5217\u540c\u6b65\u3002", "title": "\u5141\u8bb8\u8ba2\u9605\u8005\u4e2d\u5b58\u50a8\u7684\u5e8f\u5217\u503c\u4e0e\u53d1\u5e03\u8005\u4e00\u81f4", "commits": ["5509055d6", "55cefadde", "f0b3573c3"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "9f09aa078415ea67b6079c74b3e7a62a610d470763926babca29ef1182402f68", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["5509055d6"], ["55cefadde"], ["f0b3573c3"]], "identity_text": "Allow sequence values stored in subscribers to match the publisher (Vignesh C) This is enabled during CREATE SUBSCRIPTION, ALTER SUBSCRIPTION ... REFRESH PUBLICATION, and ALTER SUBSCRIPTION ... REFRESH SEQUENCES. The latter only updates values, not sequence existence. Function pg_get_sequence_data() allows inspection of sequence synchronization.", "commit_aliases": ["5509055d6", "55cefadde", "f0b3573c3"], "source_commits": ["5509055d6", "55cefadde", "f0b3573c3"], "source_entry_id": "19.0/changes/075", "db_id": "1bcb34dd87395b8706657d95a9d380c8", "patch_ids": ["7396c95164ecdf33b3c5be1ac8d17db2", "75a3ccc0bc352fa3cf35ea1fcd009658", "ba5b8b155d6cfe4af0fbdc66344dd227"], "statement_hash": "c563c445b3e3a69a7e0fda4a2cd8bc8569be441cc025ac431f63a6f4608f6ff3", "relations": [{"rule": 2, "type": "related", "target": "996e3bd3bf7e98b761d055951e1f5713", "evidence": {"same_day": false, "patch_ids": ["7396c95164ecdf33b3c5be1ac8d17db2"], "ambiguous_patch_ids": ["7396c95164ecdf33b3c5be1ac8d17db2"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-a87bfb7f681749d4", "migration": false}, {"id": "19.0-3b2ad2c40d11ee7d", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/sql-createpublication.html\" title=\"CREATE PUBLICATION\"><code>CREATE</code></a>/<a href=\"/docs/19/sql-alterpublication.html\" title=\"ALTER PUBLICATION\"><code>ALTER PUBLICATION</code></a> \u53d1\u5e03\u6240\u6709\u5e8f\u5217\uff08Vignesh C\uff0cTomas Vondra\uff09<a href=\"https://postgr.es/c/96b378497\">\u00a7</a></p>\n<p>\u6b64\u529f\u80fd\u901a\u8fc7 <code>ALL SEQUENCES</code> \u5b50\u53e5\u542f\u7528\u3002</p>", "text": "\u5141\u8bb8 CREATE/ALTER PUBLICATION \u53d1\u5e03\u6240\u6709\u5e8f\u5217\uff08Vignesh C\uff0cTomas Vondra\uff09\u00a7 \u6b64\u529f\u80fd\u901a\u8fc7 ALL SEQUENCES \u5b50\u53e5\u542f\u7528\u3002", "title": "\u5141\u8bb8 CREATE/ALTER PUBLICATION \u53d1\u5e03\u6240\u6709\u5e8f\u5217", "commits": ["96b378497"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "9b69c386997655647beb8bc0fee83b1bab50a968b584732f01516c72429673a2", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["96b378497"]], "identity_text": "Allow CREATE/ALTER PUBLICATION to publish all sequences (Vignesh C, Tomas Vondra) This is enabled with the ALL SEQUENCES clause.", "commit_aliases": ["96b378497"], "source_commits": ["96b378497"], "source_entry_id": "19.0/changes/076", "db_id": "bcd2c7510de55a68e35c9f1706065cdc", "patch_ids": ["bbabaab10a2510ae96a8a0ebf6cde506"], "statement_hash": "dc7e697f8265c2a641e236dfb948a4a9c664ff306099fef7d6b46615a71f6ab7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-3b2ad2c40d11ee7d", "migration": false}, {"id": "19.0-c3728c7f7fa4218a", "cves": [], "html": "<p>\u5141\u8bb8\u9488\u5bf9\u53d1\u5e03\u6267\u884c <a href=\"/docs/19/sql-altersubscription.html\" title=\"ALTER SUBSCRIPTION\"><code>ALTER SUBSCRIPTION</code></a>\uff0c\u4ee5\u540c\u6b65\u8ba2\u9605\u7aef\u4e0a\u7684\u5e8f\u5217\u5b58\u5728\u6027\uff0c\u4f7f\u5176\u4e0e\u53d1\u5e03\u7aef\u4e00\u81f4\uff08Vignesh C\uff09<a href=\"https://postgr.es/c/f0b3573c3\">\u00a7</a></p>\n<p>\u901a\u8fc7 <code>REFRESH SEQUENCES</code> \u5b50\u53e5\u542f\u7528\u6b64\u529f\u80fd\u3002</p>", "text": "\u5141\u8bb8\u9488\u5bf9\u53d1\u5e03\u6267\u884c ALTER SUBSCRIPTION\uff0c\u4ee5\u540c\u6b65\u8ba2\u9605\u7aef\u4e0a\u7684\u5e8f\u5217\u5b58\u5728\u6027\uff0c\u4f7f\u5176\u4e0e\u53d1\u5e03\u7aef\u4e00\u81f4\uff08Vignesh C\uff09\u00a7 \u901a\u8fc7 REFRESH SEQUENCES \u5b50\u53e5\u542f\u7528\u6b64\u529f\u80fd\u3002", "title": "\u5141\u8bb8\u9488\u5bf9\u53d1\u5e03\u6267\u884c ALTER SUBSCRIPTION\uff0c\u4ee5\u540c\u6b65\u8ba2\u9605\u7aef\u4e0a\u7684\u5e8f\u5217\u5b58\u5728\u6027\uff0c\u4f7f\u5176\u4e0e\u53d1\u5e03\u7aef\u4e00\u81f4", "commits": ["f0b3573c3"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "f4844fb9e2636fc38fec0e95b86852d706e56d6c194ba248889c29bee565099d", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["f0b3573c3"]], "identity_text": "Allow ALTER SUBSCRIPTION on publications to synchronize the existence of sequences on subscribers to match the publisher (Vignesh C) This is enabled with the REFRESH SEQUENCES clause.", "commit_aliases": ["f0b3573c3"], "source_commits": ["f0b3573c3"], "source_entry_id": "19.0/changes/077", "db_id": "996e3bd3bf7e98b761d055951e1f5713", "patch_ids": ["7396c95164ecdf33b3c5be1ac8d17db2"], "statement_hash": "ba372e33556cba1bdbe885f8e042be73fa28b81551562a51792dd829c022c4b9", "relations": [{"rule": 2, "type": "related", "target": "1bcb34dd87395b8706657d95a9d380c8", "evidence": {"same_day": false, "patch_ids": ["7396c95164ecdf33b3c5be1ac8d17db2"], "ambiguous_patch_ids": ["7396c95164ecdf33b3c5be1ac8d17db2"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-c3728c7f7fa4218a", "migration": false}, {"id": "19.0-fbe241b2726d6df5", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/sql-createpublication.html\" title=\"CREATE PUBLICATION\"><code>CREATE</code></a>/<a href=\"/docs/19/sql-alterpublication.html\" title=\"ALTER PUBLICATION\"><code>ALTER PUBLICATION</code></a> \u6392\u9664\u67d0\u4e9b\u8868\uff08Vignesh C\uff0cShlok Kyal\uff09<a href=\"https://postgr.es/c/493f8c643\">\u00a7</a><a href=\"https://postgr.es/c/6b0550c45\">\u00a7</a><a href=\"https://postgr.es/c/fd366065e\">\u00a7</a><a href=\"https://postgr.es/c/5984ea868\">\u00a7</a></p>\n<p>\u8be5\u529f\u80fd\u901a\u8fc7 <code>EXCEPT</code> \u5b50\u53e5\u63a7\u5236\uff0c\u5728\u6307\u5b9a <code>ALL TABLES</code> \u65f6\u5c24\u5176\u6709\u7528\u3002</p>", "text": "\u5141\u8bb8 CREATE/ALTER PUBLICATION \u6392\u9664\u67d0\u4e9b\u8868\uff08Vignesh C\uff0cShlok Kyal\uff09\u00a7\u00a7\u00a7\u00a7 \u8be5\u529f\u80fd\u901a\u8fc7 EXCEPT \u5b50\u53e5\u63a7\u5236\uff0c\u5728\u6307\u5b9a ALL TABLES \u65f6\u5c24\u5176\u6709\u7528\u3002", "title": "\u5141\u8bb8 CREATE/ALTER PUBLICATION \u6392\u9664\u67d0\u4e9b\u8868", "commits": ["493f8c643", "5984ea868", "6b0550c45", "fd366065e"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "0de1497e8d29c5a4aeb513914368dbc21745118d78d5885334c14eb0159ef2da", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["493f8c643"], ["5984ea868"], ["6b0550c45"], ["fd366065e"]], "identity_text": "Allow CREATE/ALTER PUBLICATION to exclude some tables (Vignesh C, Shlok Kyal) This is controlled with the EXCEPT clause, and is useful when specifying ALL TABLES.", "commit_aliases": ["493f8c643", "5984ea868", "6b0550c45", "fd366065e"], "source_commits": ["493f8c643", "5984ea868", "6b0550c45", "fd366065e"], "source_entry_id": "19.0/changes/078", "db_id": "1427e7989a842983af15cb751ae5f406", "patch_ids": ["0cc6456fa8230d1d1c8abfc4830c412c", "4c8d1d6d522d1fa72b10f6199add0dae", "aa0b79f04fd24f394e1bab0e0bacd569", "cb0a176eb8ce94beca71d1b54ed6b044"], "statement_hash": "24c8ffacbc9b8016d921e666d8c2941e4f7b5186c872d16d56b00b545261893f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-fbe241b2726d6df5", "migration": false}, {"id": "19.0-7698dbd9370caee7", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/19/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>CREATE</code></a>/<a href=\"/docs/19/sql-altersubscription.html\" title=\"ALTER SUBSCRIPTION\"><code>ALTER SUBSCRIPTION</code></a> \u65b0\u589e\u8bbe\u7f6e <a href=\"/docs/19/sql-createsubscription.html#SQL-CREATESUBSCRIPTION-PARAMS-WITH-RETAIN-DEAD-TUPLES\"><code>retain_dead_tuples</code></a>\uff0c\u7528\u4e8e\u4fdd\u7559\u51b2\u7a81\u68c0\u6d4b\u6240\u9700\u7684\u4fe1\u606f\uff08Zhijie Hou\uff09<a href=\"https://postgr.es/c/228c37086\">\u00a7</a> <a href=\"https://postgr.es/c/0d48d393d\">\u00a7</a> <a href=\"https://postgr.es/c/a850be2fe\">\u00a7</a></p>\n<p>\u540c\u65f6\u65b0\u589e\u8bbe\u7f6e <a href=\"/docs/19/sql-createsubscription.html#SQL-CREATESUBSCRIPTION-PARAMS-WITH-MAX-RETENTION-DURATION\"><code>max_retention_duration</code></a>\uff0c\u7528\u4e8e\u9650\u5236 <code>retain_dead_tuples</code> \u7684\u4fdd\u7559\u65f6\u95f4\u3002</p>", "text": "\u4e3a CREATE/ALTER SUBSCRIPTION \u65b0\u589e\u8bbe\u7f6e retain_dead_tuples\uff0c\u7528\u4e8e\u4fdd\u7559\u51b2\u7a81\u68c0\u6d4b\u6240\u9700\u7684\u4fe1\u606f\uff08Zhijie Hou\uff09\u00a7 \u00a7 \u00a7 \u540c\u65f6\u65b0\u589e\u8bbe\u7f6e max_retention_duration\uff0c\u7528\u4e8e\u9650\u5236 retain_dead_tuples \u7684\u4fdd\u7559\u65f6\u95f4\u3002", "title": "\u4e3a CREATE/ALTER SUBSCRIPTION \u65b0\u589e\u8bbe\u7f6e retain_dead_tuples\uff0c\u7528\u4e8e\u4fdd\u7559\u51b2\u7a81\u68c0\u6d4b\u6240\u9700\u7684\u4fe1\u606f", "commits": ["0d48d393d", "228c37086", "a850be2fe"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "f974b2519f95c5aac7fddc360e4b12efd1a9b3e267363b398ba7d49fc5e96945", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["0d48d393d"], ["228c37086"], ["a850be2fe"]], "identity_text": "Add CREATE/ALTER SUBSCRIPTION setting retain_dead_tuples to retain information needed for conflict detection (Zhijie Hou) Also add setting max_retention_duration to limit retain_dead_tuples retention.", "commit_aliases": ["0d48d393d", "228c37086", "a850be2fe"], "source_commits": ["0d48d393d", "228c37086", "a850be2fe"], "source_entry_id": "19.0/changes/079", "db_id": "dd5f5929f31ea1804fa29e15ecb4f18d", "patch_ids": ["09547163b0a75be144bc2b3b8ce00313", "853a232d0ea1e00bce5d08b65c0617bd", "a43f06af255c6d3e05fd6bd4199d1a4d"], "statement_hash": "55936f865412ede59d3c85f0b4d0644af7a4caac91a936d93d398f109a24808a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-7698dbd9370caee7", "migration": false}, {"id": "19.0-8af09db87ea2dee8", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>CREATE SUBSCRIPTION</code></a> \u4f7f\u7528<a href=\"/docs/19/postgres-fdw.html\" title=\"F.40.\u00a0postgres_fdw \u2014 \u8bbf\u95ee\u5b58\u50a8\u5728\u5916\u90e8 PostgreSQL \u670d\u52a1\u5668\u4e2d\u7684\u6570\u636e\">postgres_fdw</a>\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u8fde\u63a5\u53c2\u6570\uff08Jeff Davis\uff09<a href=\"https://postgr.es/c/8185bb534\">\u00a7</a></p>\n<p>\u8fde\u63a5\u53c2\u6570\u901a\u8fc7 <a href=\"/docs/19/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>CREATE SUBSCRIPTION ... SERVER</code></a> \u5f15\u7528\u3002</p>", "text": "\u5141\u8bb8 CREATE SUBSCRIPTION \u4f7f\u7528postgres_fdw\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u8fde\u63a5\u53c2\u6570\uff08Jeff Davis\uff09\u00a7 \u8fde\u63a5\u53c2\u6570\u901a\u8fc7 CREATE SUBSCRIPTION ... SERVER \u5f15\u7528\u3002", "title": "\u5141\u8bb8 CREATE SUBSCRIPTION \u4f7f\u7528postgres_fdw\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u8fde\u63a5\u53c2\u6570", "commits": ["8185bb534"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "5b59a781b1ae38d4a222ffe38b2c4316f3e5eeb8064465fad551e729ace5fcc4", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["8185bb534"]], "identity_text": "Allow CREATE SUBSCRIPTION to use postgres-fdw foreign data wrapper connection parameters (Jeff Davis) The connection parameters are referenced via CREATE SUBSCRIPTION ... SERVER.", "commit_aliases": ["8185bb534"], "source_commits": ["8185bb534"], "source_entry_id": "19.0/changes/080", "db_id": "47e454508abec09ac7daa7c10f5ece63", "patch_ids": ["febd0018cba9b0e2ffbea6dcc5062e97"], "statement_hash": "852b9e6768aabc1f7c2ba1560b8e9081767eb0bdb63c10c78dff5f1f945a53bb", "relations": [{"rule": 2, "type": "related", "target": "5f133f6beeea4e4cfc7c17b4fc43de69", "evidence": {"same_day": false, "patch_ids": ["febd0018cba9b0e2ffbea6dcc5062e97"], "ambiguous_patch_ids": ["febd0018cba9b0e2ffbea6dcc5062e97"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-8af09db87ea2dee8", "migration": false}, {"id": "19.0-f0a2911ec12b1891", "cves": [], "html": "<p>\u5f53 <a href=\"/docs/19/runtime-config-wal.html#GUC-WAL-LEVEL\"><code>wal_level</code></a> \u4e3a \"<code>replica</code>\" \u65f6\uff0c\u5141\u8bb8\u5728\u9700\u8981\u65f6\u81ea\u52a8\u542f\u7528\u903b\u8f91\u590d\u5236\uff08Masahiko Sawada\uff09<a href=\"https://postgr.es/c/67c20979c\">\u00a7</a></p>\n<p>\u65b0\u589e\u7684\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-preset.html#GUC-EFFECTIVE-WAL-LEVEL\"><code>effective_wal_level</code></a>\uff0c\u4ee5\u53ca\u7a0b\u5e8f<a href=\"/docs/19/app-pgcontroldata.html\" title=\"pg_controldata\"><span>pg_controldata</span></a>\u548c\u51fd\u6570 <a href=\"/docs/19/functions-info.html#FUNCTIONS-PG-CONTROL-CHECKPOINT\" title=\"\u8868\u00a09.90.\u00a0pg_control_checkpoint \u8f93\u51fa\u5217\"><code>pg_control_checkpoint()</code></a>\uff0c\u90fd\u4f1a\u62a5\u544a\u6709\u6548 <acronym>WAL</acronym> \u7ea7\u522b\u3002</p>", "text": "\u5f53 wal_level \u4e3a \"replica\" \u65f6\uff0c\u5141\u8bb8\u5728\u9700\u8981\u65f6\u81ea\u52a8\u542f\u7528\u903b\u8f91\u590d\u5236\uff08Masahiko Sawada\uff09\u00a7 \u65b0\u589e\u7684\u670d\u52a1\u5668\u53d8\u91cf effective_wal_level\uff0c\u4ee5\u53ca\u7a0b\u5e8fpg_controldata\u548c\u51fd\u6570 pg_control_checkpoint()\uff0c\u90fd\u4f1a\u62a5\u544a\u6709\u6548 WAL \u7ea7\u522b\u3002", "title": "\u5f53 wal_level \u4e3a \"replica\" \u65f6\uff0c\u5141\u8bb8\u5728\u9700\u8981\u65f6\u81ea\u52a8\u542f\u7528\u903b\u8f91\u590d\u5236", "commits": ["67c20979c"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "f54aa21d322b5e6cb226b1ba121bfe28deaa378fb85d008cf390f29a8eca5e7f", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["67c20979c"]], "identity_text": "When server variable wal_level is replica, allow automatic enablement of logical replication when needed (Masahiko Sawada) New server variable effective_wal_level, application pg_controldata, and function pg_control_checkpoint() report the effective WAL level.", "commit_aliases": ["67c20979c"], "source_commits": ["67c20979c"], "source_entry_id": "19.0/changes/081", "db_id": "b156408eaee32da05c4e148c9ad5cb4e", "patch_ids": ["1b447ce3fc7c212bd0078cbf09acbada"], "statement_hash": "fb8817161b2c95ca04bc5e654fe4ff0277fffbd2d23afd38885de50ebbc5f9d3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-f0a2911ec12b1891", "migration": false}, {"id": "19.0-85073c238ff45842", "cves": [], "html": "<p>\u5141\u8bb8\u6309\u8ba2\u9605\u548c\u7528\u6237\u8bbe\u7f6e <a href=\"/docs/19/runtime-config-replication.html#GUC-WAL-RECEIVER-TIMEOUT\"><code>wal_receiver_timeout</code></a>\uff08Fujii Masao\uff09<a href=\"https://postgr.es/c/8a6af3ad0\">\u00a7</a><a href=\"https://postgr.es/c/fb80f388f\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u4e0d\u540c\u8ba2\u9605\u7aef\u4f7f\u7528\u4e0d\u540c\u7684 <a href=\"/docs/19/runtime-config-replication.html#GUC-WAL-RECEIVER-TIMEOUT\"><code>wal_receiver_timeout</code></a> \u503c\u3002</p>", "text": "\u5141\u8bb8\u6309\u8ba2\u9605\u548c\u7528\u6237\u8bbe\u7f6e wal_receiver_timeout\uff08Fujii Masao\uff09\u00a7\u00a7 \u8fd9\u5141\u8bb8\u4e0d\u540c\u8ba2\u9605\u7aef\u4f7f\u7528\u4e0d\u540c\u7684 wal_receiver_timeout \u503c\u3002", "title": "\u5141\u8bb8\u6309\u8ba2\u9605\u548c\u7528\u6237\u8bbe\u7f6e wal_receiver_timeout", "commits": ["8a6af3ad0", "fb80f388f"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "b5d367b96ca6484ffda31390e759a24cc6f2f77736a0faf4f738e66f3bc52cd0", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["8a6af3ad0"], ["fb80f388f"]], "identity_text": "Allow wal_receiver_timeout to be set per-subscription and user (Fujii Masao) This allows subscribers to use different wal_receiver_timeout values.", "commit_aliases": ["8a6af3ad0", "fb80f388f"], "source_commits": ["8a6af3ad0", "fb80f388f"], "source_entry_id": "19.0/changes/082", "db_id": "fff6b4278c91db1954d8a063023528f7", "patch_ids": ["4762611feb8b656d7d6576e269990dbc", "9b99cbeed684d26ae90dd81120affee5"], "statement_hash": "a975a735faf6ba59286ec0651e9050d9e76e6a39880097aca6149a2f5a313191", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-85073c238ff45842", "migration": false}, {"id": "19.0-6f7107a4eb17af78", "cves": [], "html": "<p>\u65b0\u589e\u53ef\u9009 pid \u53c2\u6570\u5230 <a href=\"/docs/19/functions-admin.html#PG-REPLICATION-ORIGIN-SESSION-SETUP\"><code>pg_replication_origin_session_setup()</code></a>\uff0c\u4ee5\u5141\u8bb8 <acronym>SQL</acronym> \u7ea7\u590d\u5236\u65b9\u6848\u5e76\u884c\u5316\uff08Doruk Yilmaz\uff0cHayato Kuroda\uff09<a href=\"https://postgr.es/c/5b148706c\">\u00a7</a></p>", "text": "\u65b0\u589e\u53ef\u9009 pid \u53c2\u6570\u5230 pg_replication_origin_session_setup()\uff0c\u4ee5\u5141\u8bb8 SQL \u7ea7\u590d\u5236\u65b9\u6848\u5e76\u884c\u5316\uff08Doruk Yilmaz\uff0cHayato Kuroda\uff09\u00a7", "title": "\u65b0\u589e\u53ef\u9009 pid \u53c2\u6570\u5230 pg_replication_origin_session_setup()\uff0c\u4ee5\u5141\u8bb8 SQL \u7ea7\u590d\u5236\u65b9\u6848\u5e76\u884c\u5316", "commits": ["5b148706c"], "section": "\u670d\u52a1\u5668 / \u903b\u8f91\u590d\u5236", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "6cf0cc99aa0de0d81c2c485689858b16ca6e18ff12b32acd03cdef1406881557", "section_path": ["\u670d\u52a1\u5668", "\u903b\u8f91\u590d\u5236"], "commit_groups": [["5b148706c"]], "identity_text": "Add optional pid parameter to pg_replication_origin_session_setup() to allow parallelization of SQL-level replication solutions (Doruk Yilmaz, Hayato Kuroda)", "commit_aliases": ["5b148706c"], "source_commits": ["5b148706c"], "source_entry_id": "19.0/changes/083", "db_id": "10e10044a97f6745d8d2a55bb0a4a335", "patch_ids": ["6f814eee337708f4b09c14341d2d4d56"], "statement_hash": "1ef80b924bc3348cedd377c2225455261f04f7fb4d562626cbaa193aee11d86b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-6f7107a4eb17af78", "migration": false}, {"id": "19.0-8df9a60d26022ffb", "cves": [], "html": "<p>\u5141\u8bb8 <code>GROUP BY</code> \u5904\u7406\u76ee\u6807\u5217\u8868\u4e2d\u7684\u5b50\u67e5\u8be2\uff0c\u5373\u4f7f\u5176\u4e2d\u7684\u8868\u8fbe\u5f0f\u5f15\u7528\u4e86\u5b50\u67e5\u8be2\u4e4b\u5916\u7684\u5217\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/415100aa6\">\u00a7</a></p>\n<p>\u540c\u65f6\u4fee\u590d\u4e86 <a href=\"/docs/19/functions-aggregate.html#FUNCTIONS-GROUPING-TABLE\" title=\"\u8868\u00a09.67.\u00a0\u5206\u7ec4\u64cd\u4f5c\"><code>GROUPING()</code></a> \u5904\u7406\u76ee\u6807\u5217\u8868\u4e2d\u7684\u5b50\u67e5\u8be2\u522b\u540d\u65f6\u7684\u4e00\u4e2a bug\u3002</p>", "text": "\u5141\u8bb8 GROUP BY \u5904\u7406\u76ee\u6807\u5217\u8868\u4e2d\u7684\u5b50\u67e5\u8be2\uff0c\u5373\u4f7f\u5176\u4e2d\u7684\u8868\u8fbe\u5f0f\u5f15\u7528\u4e86\u5b50\u67e5\u8be2\u4e4b\u5916\u7684\u5217\uff08Tom Lane\uff09\u00a7 \u540c\u65f6\u4fee\u590d\u4e86 GROUPING() \u5904\u7406\u76ee\u6807\u5217\u8868\u4e2d\u7684\u5b50\u67e5\u8be2\u522b\u540d\u65f6\u7684\u4e00\u4e2a bug\u3002", "title": "\u5141\u8bb8 GROUP BY \u5904\u7406\u76ee\u6807\u5217\u8868\u4e2d\u7684\u5b50\u67e5\u8be2\uff0c\u5373\u4f7f\u5176\u4e2d\u7684\u8868\u8fbe\u5f0f\u5f15\u7528\u4e86\u5b50\u67e5\u8be2\u4e4b\u5916\u7684\u5217", "commits": ["415100aa6"], "section": "\u67e5\u8be2\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-QUERY", "source_hash": "c969b731a919d4ee9e9931d9dada8bf77efa7eb7867882237d8059c12abbfb8d", "section_path": ["\u67e5\u8be2\u547d\u4ee4"], "commit_groups": [["415100aa6"]], "identity_text": "Allow GROUP BY to process target list subqueries that have expressions referencing non-subquery columns (Tom Lane) Also fix a bug in how GROUPING() handles target list subquery aliases.", "commit_aliases": ["415100aa6"], "source_commits": ["415100aa6"], "source_entry_id": "19.0/changes/084", "db_id": "7b826edf8ca7e11fa78fcdb327a6542f", "patch_ids": ["ff9a81072e25cbb2930ae0d12bea809e"], "statement_hash": "2eeda24a87cfc5d18569e86160dfbbe9f810adef674ac89d561dc2bccf0ab1b5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-8df9a60d26022ffb", "migration": false}, {"id": "19.0-45dd0b4675226480", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/functions-window.html\" title=\"9.23.\u00a0\u7a97\u53e3\u51fd\u6570\">\u7a97\u53e3\u51fd\u6570</a>\u4f7f\u7528 <code>IGNORE NULLS</code>/<code>RESPECT NULLS</code> \u5b50\u53e5\u5ffd\u7565 NULL\uff08Oliver Ford\uff0cTatsuo Ishii\uff09<a href=\"https://postgr.es/c/25a30bbd4\">\u00a7</a></p>\n<p>\u652f\u6301\u7684\u7a97\u53e3\u51fd\u6570\u6709 <code>lead()</code>\u3001<code>lag()</code>\u3001<code>first_value()</code>\u3001<code>last_value()</code> \u548c <code>nth_value()</code>\u3002</p>", "text": "\u5141\u8bb8\u7a97\u53e3\u51fd\u6570\u4f7f\u7528 IGNORE NULLS/RESPECT NULLS \u5b50\u53e5\u5ffd\u7565 NULL\uff08Oliver Ford\uff0cTatsuo Ishii\uff09\u00a7 \u652f\u6301\u7684\u7a97\u53e3\u51fd\u6570\u6709 lead()\u3001lag()\u3001first_value()\u3001last_value() \u548c nth_value()\u3002", "title": "\u5141\u8bb8\u7a97\u53e3\u51fd\u6570\u4f7f\u7528 IGNORE NULLS/RESPECT NULLS \u5b50\u53e5\u5ffd\u7565 NULL", "commits": ["25a30bbd4"], "section": "\u67e5\u8be2\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-QUERY", "source_hash": "4ed93af241880bc752b234d5be9d13f0e22f846a5b267d7bcb8ab33ba7b66bd5", "section_path": ["\u67e5\u8be2\u547d\u4ee4"], "commit_groups": [["25a30bbd4"]], "identity_text": "Allow window functions to ignore NULLs with the IGNORE NULLS/RESPECT NULLS clause (Oliver Ford, Tatsuo Ishii) Supported window functions are lead(), lag(), first_value(), last_value(), and nth_value().", "commit_aliases": ["25a30bbd4"], "source_commits": ["25a30bbd4"], "source_entry_id": "19.0/changes/085", "db_id": "fc76c9ab338b764d42fe01dbcc5fab7a", "patch_ids": ["0cbae49839826de1b9c942edadae0056"], "statement_hash": "14969c11d44f8b8e794e74c450ab41d70e5a8252162dcfc26b08db4228c7bbdd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-45dd0b4675226480", "migration": false}, {"id": "19.0-c8ac3f6cefddf54f", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/19/sql-insert.html\" title=\"INSERT\"><code>INSERT ... ON CONFLICT DO SELECT ... RETURNING</code></a> \u652f\u6301\uff08Andreas Karlsson\uff0cMarko Tiikkaja\uff0cViktor Holmberg\uff09<a href=\"https://postgr.es/c/88327092f\">\u00a7</a></p>\n<p>\u8fd9\u5141\u8bb8\u8fd4\u56de\u51b2\u7a81\u884c\uff0c\u5e76\u53ef\u9009\u7528 <code>FOR UPDATE</code>/<code>SHARE</code> \u52a0\u9501\u3002</p>", "text": "\u65b0\u589e INSERT ... ON CONFLICT DO SELECT ... RETURNING \u652f\u6301\uff08Andreas Karlsson\uff0cMarko Tiikkaja\uff0cViktor Holmberg\uff09\u00a7 \u8fd9\u5141\u8bb8\u8fd4\u56de\u51b2\u7a81\u884c\uff0c\u5e76\u53ef\u9009\u7528 FOR UPDATE/SHARE \u52a0\u9501\u3002", "title": "\u65b0\u589e INSERT ... ON CONFLICT DO SELECT ... RETURNING \u652f\u6301", "commits": ["88327092f"], "section": "\u67e5\u8be2\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-QUERY", "source_hash": "a31d264335380289e428eab9a7ff3fb352cf20d8401904d1c591637d0d678504", "section_path": ["\u67e5\u8be2\u547d\u4ee4"], "commit_groups": [["88327092f"]], "identity_text": "Add support for INSERT ... ON CONFLICT DO SELECT ... RETURNING (Andreas Karlsson, Marko Tiikkaja, Viktor Holmberg) This allows conflicting rows to be returned, and optionally locked with FOR UPDATE/SHARE.", "commit_aliases": ["88327092f"], "source_commits": ["88327092f"], "source_entry_id": "19.0/changes/086", "db_id": "e2a3b88e98a0effa6c84811c4014a0a5", "patch_ids": ["8f40ec27c413c9929a8aae9b9d6d2f9f"], "statement_hash": "12622a20ef823f3e1cd7aa5d9891b3e572a5ebac45e07240eaf4e2179df0acb7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-c8ac3f6cefddf54f", "migration": false}, {"id": "19.0-2b5a7cb482da1aa9", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/19/sql-repack.html\" title=\"REPACK\"><code>REPACK</code></a> \u547d\u4ee4\uff0c\u7528\u4e8e\u66ff\u4ee3 <a href=\"/docs/19/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM FULL</code></a> \u548c <a href=\"/docs/19/sql-cluster.html\" title=\"CLUSTER\"><code>CLUSTER</code></a>\uff08Antonin Houska\uff09<a href=\"https://postgr.es/c/ac58465e0\">\u00a7</a></p>\n<p>\u524d\u4e24\u4e2a\u547d\u4ee4\u6267\u884c\u7c7b\u4f3c\u7684\u64cd\u4f5c\uff0c\u4f46\u540d\u79f0\u5bb9\u6613\u5f15\u8d77\u6df7\u6dc6\uff0c\u56e0\u6b64\u5c06\u5b83\u4eec\u7edf\u4e00\u4e3a <a href=\"/docs/19/sql-repack.html\" title=\"REPACK\"><code>REPACK</code></a>\u3002\u65e7\u547d\u4ee4\u4ecd\u4e88\u4fdd\u7559\uff0c\u4ee5\u4fdd\u6301\u517c\u5bb9\u6027\u3002</p>", "text": "\u65b0\u589e REPACK \u547d\u4ee4\uff0c\u7528\u4e8e\u66ff\u4ee3 VACUUM FULL \u548c CLUSTER\uff08Antonin Houska\uff09\u00a7 \u524d\u4e24\u4e2a\u547d\u4ee4\u6267\u884c\u7c7b\u4f3c\u7684\u64cd\u4f5c\uff0c\u4f46\u540d\u79f0\u5bb9\u6613\u5f15\u8d77\u6df7\u6dc6\uff0c\u56e0\u6b64\u5c06\u5b83\u4eec\u7edf\u4e00\u4e3a REPACK\u3002\u65e7\u547d\u4ee4\u4ecd\u4e88\u4fdd\u7559\uff0c\u4ee5\u4fdd\u6301\u517c\u5bb9\u6027\u3002", "title": "\u65b0\u589e REPACK \u547d\u4ee4\uff0c\u7528\u4e8e\u66ff\u4ee3 VACUUM FULL \u548c CLUSTER", "commits": ["ac58465e0"], "section": "\u5b9e\u7528\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "630cec51a1602d8623f7f85c8f4365837bb6923352b6c1aafca77489a08c6cdf", "section_path": ["\u5b9e\u7528\u547d\u4ee4"], "commit_groups": [["ac58465e0"]], "identity_text": "Add REPACK command which replaces VACUUM FULL and CLUSTER (Antonin Houska) The two former commands did similar things, but with confusing names, so unify them as REPACK. The old commands have been retained for compatibility.", "commit_aliases": ["ac58465e0"], "source_commits": ["ac58465e0"], "source_entry_id": "19.0/changes/087", "db_id": "8f43f4e6977627cde85434089db0dcbe", "patch_ids": ["72720531b76f8f1ae5f8cfe24294dead"], "statement_hash": "8aa8d080a5763457851b51f1b6e3fbad9975b3f716044e9630d4dfcaa39b4069", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-2b5a7cb482da1aa9", "migration": false}, {"id": "19.0-1012c7ab2bdf0c62", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/sql-repack.html\" title=\"REPACK\"><code>REPACK</code></a> \u5728\u4e0d\u83b7\u53d6 ACCESS EXCLUSIVE \u9501\u7684\u60c5\u51b5\u4e0b\u91cd\u5efa\u8868\uff08Antonin Houska\uff0cMihail Nikalayeu\uff0c\u00c1lvaro Herrera\uff09<a href=\"https://postgr.es/c/28d534e2a\">\u00a7</a><a href=\"https://postgr.es/c/8fb95a8ab\">\u00a7</a><a href=\"https://postgr.es/c/e76d8c749\">\u00a7</a></p>\n<p>\u901a\u8fc7 <code>CONCURRENTLY</code> \u9009\u9879\u542f\u7528\u3002\u8fd8\u65b0\u589e\u4e86\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-replication.html#GUC-MAX-REPACK-REPLICATION-SLOTS\"><code>max_repack_replication_slots</code></a>\u3002</p>", "text": "\u5141\u8bb8 REPACK \u5728\u4e0d\u83b7\u53d6 ACCESS EXCLUSIVE \u9501\u7684\u60c5\u51b5\u4e0b\u91cd\u5efa\u8868\uff08Antonin Houska\uff0cMihail Nikalayeu\uff0c\u00c1lvaro Herrera\uff09\u00a7\u00a7\u00a7 \u901a\u8fc7 CONCURRENTLY \u9009\u9879\u542f\u7528\u3002\u8fd8\u65b0\u589e\u4e86\u670d\u52a1\u5668\u53d8\u91cf max_repack_replication_slots\u3002", "title": "\u5141\u8bb8 REPACK \u5728\u4e0d\u83b7\u53d6 ACCESS EXCLUSIVE \u9501\u7684\u60c5\u51b5\u4e0b\u91cd\u5efa\u8868", "commits": ["28d534e2a", "8fb95a8ab", "e76d8c749"], "section": "\u5b9e\u7528\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "081c3bafd32fe09532f32fb03fe4d58c1641f1f052e558c04f89901ae5b9223c", "section_path": ["\u5b9e\u7528\u547d\u4ee4"], "commit_groups": [["28d534e2a"], ["8fb95a8ab"], ["e76d8c749"]], "identity_text": "Allow REPACK to rebuild tables without access-exclusive locking (Antonin Houska, Mihail Nikalayeu, \u00c1lvaro Herrera) This is enabled via the CONCURRENTLY option. Server variable max_repack_replication_slots was also added.", "commit_aliases": ["28d534e2a", "8fb95a8ab", "e76d8c749"], "source_commits": ["28d534e2a", "8fb95a8ab", "e76d8c749"], "source_entry_id": "19.0/changes/088", "db_id": "4fa6b1815627146fe52e9fa63e15bab3", "patch_ids": ["5470d4b92cfc988f8d5b09d391acfc28", "92693606a33231c9a1b5a5ea7331dc3c", "ed58e7ae4e17679a610cb766e27eabdb"], "statement_hash": "75e285708c4cb3bba55af078faf2ad320270e52b74c12f70f18246f26317851f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-1012c7ab2bdf0c62", "migration": false}, {"id": "19.0-408b6ed4fa9fd82a", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a>/<a href=\"/docs/19/sql-revoke.html\" title=\"REVOKE\"><code>REVOKE</code></a> \u6307\u5b9a\u6267\u884c\u6743\u9650\u8c03\u6574\u7684\u6709\u6548\u89d2\u8272\uff08Nathan Bossart\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/dd1398f13\">\u00a7</a></p>\n<p>\u901a\u8fc7 <code>GRANTED BY</code> \u5b50\u53e5\u63a7\u5236\u3002</p>", "text": "\u5141\u8bb8 GRANT/REVOKE \u6307\u5b9a\u6267\u884c\u6743\u9650\u8c03\u6574\u7684\u6709\u6548\u89d2\u8272\uff08Nathan Bossart\uff0cTom Lane\uff09\u00a7 \u901a\u8fc7 GRANTED BY \u5b50\u53e5\u63a7\u5236\u3002", "title": "\u5141\u8bb8 GRANT/REVOKE \u6307\u5b9a\u6267\u884c\u6743\u9650\u8c03\u6574\u7684\u6709\u6548\u89d2\u8272", "commits": ["dd1398f13"], "section": "\u5b9e\u7528\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "3a2dee1a3fd7222bc6f27819d0deb2413a9634a278d7dce7f891c6af8f2cd504", "section_path": ["\u5b9e\u7528\u547d\u4ee4"], "commit_groups": [["dd1398f13"]], "identity_text": "Allow GRANT/REVOKE to specify the effective role performing the privileges adjustment (Nathan Bossart, Tom Lane) The GRANTED BY clause controls this.", "commit_aliases": ["dd1398f13"], "source_commits": ["dd1398f13"], "source_entry_id": "19.0/changes/089", "db_id": "1d507c7d53dc5fc242fe1e2c4534361a", "patch_ids": ["5552f58b479fba69c769bcdfa079b225"], "statement_hash": "32de521e03d44fc8a9ad53f5deb3dbfb0c896a52d61a7efe01bbd3393a281b40", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-408b6ed4fa9fd82a", "migration": false}, {"id": "19.0-3b57314d11cf41de", "cves": [], "html": "<p>\u652f\u6301\u5728 <a href=\"/docs/19/sql-createschema.html\" title=\"CREATE SCHEMA\"><code>CREATE SCHEMA</code></a> \u5185\u7684 <code>FOREIGN KEY</code> \u7ea6\u675f\u5b50\u53e5\u4e2d\u4f7f\u7528\u524d\u5411\u5f15\u7528\uff08Jian He\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/404db8f9e\">\u00a7</a></p>", "text": "\u652f\u6301\u5728 CREATE SCHEMA \u5185\u7684 FOREIGN KEY \u7ea6\u675f\u5b50\u53e5\u4e2d\u4f7f\u7528\u524d\u5411\u5f15\u7528\uff08Jian He\uff0cTom Lane\uff09\u00a7", "title": "\u652f\u6301\u5728 CREATE SCHEMA \u5185\u7684 FOREIGN KEY \u7ea6\u675f\u5b50\u53e5\u4e2d\u4f7f\u7528\u524d\u5411\u5f15\u7528", "commits": ["404db8f9e"], "section": "\u5b9e\u7528\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "d92be051c84d6e86ddc18f18fd59abc10cd6814ab671684806459bd44e452a0f", "section_path": ["\u5b9e\u7528\u547d\u4ee4"], "commit_groups": [["404db8f9e"]], "identity_text": "Support forward references in FOREIGN KEY constraint clauses within CREATE SCHEMA (Jian He, Tom Lane)", "commit_aliases": ["404db8f9e"], "source_commits": ["404db8f9e"], "source_entry_id": "19.0/changes/090", "db_id": "a030d232dae44097057e87c961e0d719", "patch_ids": ["417529d51611637068ea91e3a5598101"], "statement_hash": "0d2d12d555ba647d0361bc0b3997cccd7bbcb911e591eae0a057ee864d34eaca", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-3b57314d11cf41de", "migration": false}, {"id": "19.0-cd8612a9c2790622", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/sql-checkpoint.html\" title=\"CHECKPOINT\"><code>CHECKPOINT</code></a> \u63a5\u53d7\u9009\u9879\u5217\u8868\uff08Christoph Berg\uff09<a href=\"https://postgr.es/c/a4f126516\">\u00a7</a><a href=\"https://postgr.es/c/2f698d7f4\">\u00a7</a><a href=\"https://postgr.es/c/8d33fbacb\">\u00a7</a></p>\n<p>\u652f\u6301\u7684\u9009\u9879\u4e3a <code>MODE</code> \u548c <code>FLUSH_UNLOGGED</code>\u3002</p>", "text": "\u5141\u8bb8 CHECKPOINT \u63a5\u53d7\u9009\u9879\u5217\u8868\uff08Christoph Berg\uff09\u00a7\u00a7\u00a7 \u652f\u6301\u7684\u9009\u9879\u4e3a MODE \u548c FLUSH_UNLOGGED\u3002", "title": "\u5141\u8bb8 CHECKPOINT \u63a5\u53d7\u9009\u9879\u5217\u8868", "commits": ["2f698d7f4", "8d33fbacb", "a4f126516"], "section": "\u5b9e\u7528\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "d644ff2d10dc9c00ea6bdccc7367cb8353977e582a571dd09c11613d4db1e645", "section_path": ["\u5b9e\u7528\u547d\u4ee4"], "commit_groups": [["2f698d7f4"], ["8d33fbacb"], ["a4f126516"]], "identity_text": "Allow CHECKPOINT to accept a list of options (Christoph Berg) Supported options are MODE and FLUSH_UNLOGGED.", "commit_aliases": ["2f698d7f4", "8d33fbacb", "a4f126516"], "source_commits": ["2f698d7f4", "8d33fbacb", "a4f126516"], "source_entry_id": "19.0/changes/091", "db_id": "16c0c2ab318ab0b6abb8481c56eb3c73", "patch_ids": ["6530b6dd276ce99090984339db4f966a", "b2ea7f4532560e0f93f946bd1ad65cf3", "d5e89446328e23bde303f46ae736809a"], "statement_hash": "ae2ff63033ae887ee2e199bed6feb1e7647b6ee074f37b1e0ba6acfa534bfd7a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-cd8612a9c2790622", "migration": false}, {"id": "19.0-e8531725126db94b", "cves": [], "html": "<p>\u65b0\u589e <code>CONNECTION</code> \u5b50\u53e5\u5230 <a href=\"/docs/19/sql-createforeigndatawrapper.html\" title=\"CREATE FOREIGN DATA WRAPPER\"><code>CREATE FOREIGN DATA WRAPPER</code></a>\uff0c\u7528\u4e8e\u6307\u5b9a\u5c06\u4e3a\u8ba2\u9605\u8fde\u63a5\u53c2\u6570\u8c03\u7528\u7684\u51fd\u6570\uff08Jeff Davis\uff0cNoriyoshi Shinoda\uff09<a href=\"https://postgr.es/c/8185bb534\">\u00a7</a><a href=\"https://postgr.es/c/90630ec42\">\u00a7</a></p>", "text": "\u65b0\u589e CONNECTION \u5b50\u53e5\u5230 CREATE FOREIGN DATA WRAPPER\uff0c\u7528\u4e8e\u6307\u5b9a\u5c06\u4e3a\u8ba2\u9605\u8fde\u63a5\u53c2\u6570\u8c03\u7528\u7684\u51fd\u6570\uff08Jeff Davis\uff0cNoriyoshi Shinoda\uff09\u00a7\u00a7", "title": "\u65b0\u589e CONNECTION \u5b50\u53e5\u5230 CREATE FOREIGN DATA WRAPPER\uff0c\u7528\u4e8e\u6307\u5b9a\u5c06\u4e3a\u8ba2\u9605\u8fde\u63a5\u53c2\u6570\u8c03\u7528\u7684\u51fd\u6570", "commits": ["8185bb534", "90630ec42"], "section": "\u5b9e\u7528\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "2331510708ff3568fdc62c43abaa6ebd99180a57a890a61d72b21b15de2256d2", "section_path": ["\u5b9e\u7528\u547d\u4ee4"], "commit_groups": [["8185bb534"], ["90630ec42"]], "identity_text": "Add CONNECTION clause to CREATE FOREIGN DATA WRAPPER to specify a function to be called for subscription connection parameters (Jeff Davis, Noriyoshi Shinoda)", "commit_aliases": ["8185bb534", "90630ec42"], "source_commits": ["8185bb534", "90630ec42"], "source_entry_id": "19.0/changes/092", "db_id": "5f133f6beeea4e4cfc7c17b4fc43de69", "patch_ids": ["faf351cd42e202b83aa8a85635d9341f", "febd0018cba9b0e2ffbea6dcc5062e97"], "statement_hash": "39146283f620f6e16d5d9cbd8d10a71b483147562f21949a6306fc1cfa4756c5", "relations": [{"rule": 2, "type": "related", "target": "47e454508abec09ac7daa7c10f5ece63", "evidence": {"same_day": false, "patch_ids": ["febd0018cba9b0e2ffbea6dcc5062e97"], "ambiguous_patch_ids": ["febd0018cba9b0e2ffbea6dcc5062e97"]}}], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-e8531725126db94b", "migration": false}, {"id": "19.0-12f838aaeeda6aa4", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/19/sql-createaggregate.html\" title=\"CREATE AGGREGATE\"><code>CREATE AGGREGATE</code></a> \u65b0\u589e <code>SUPPORT</code> \u5b50\u53e5\uff0c\u4f7f\u6269\u5c55\u53ef\u4ee5\u6307\u5b9a\u652f\u6301\u51fd\u6570\u6765\u4f18\u5316\u805a\u5408\u8c03\u7528\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/165aa5040\">\u00a7</a></p>", "text": "\u4e3a CREATE AGGREGATE \u65b0\u589e SUPPORT \u5b50\u53e5\uff0c\u4f7f\u6269\u5c55\u53ef\u4ee5\u6307\u5b9a\u652f\u6301\u51fd\u6570\u6765\u4f18\u5316\u805a\u5408\u8c03\u7528\uff08Tom Lane\uff09\u00a7", "title": "\u4e3a CREATE AGGREGATE \u65b0\u589e SUPPORT \u5b50\u53e5\uff0c\u4f7f\u6269\u5c55\u53ef\u4ee5\u6307\u5b9a\u652f\u6301\u51fd\u6570\u6765\u4f18\u5316\u805a\u5408\u8c03\u7528", "commits": ["165aa5040"], "section": "\u5b9e\u7528\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "4adbfa7e4ed74b2d875ed4083192fb236db8707a0c5c8528784ebe9d7ecc2215", "section_path": ["\u5b9e\u7528\u547d\u4ee4"], "commit_groups": [["165aa5040"]], "identity_text": "Add SUPPORT clause to CREATE AGGREGATE so extensions can specify support functions to optimize aggregate calls (Tom Lane)", "commit_aliases": ["165aa5040"], "source_commits": ["165aa5040"], "source_entry_id": "19.0/changes/093", "db_id": "7f34663e8a95242f473169207150d9a7", "patch_ids": ["1242e00c743fcef88eeae6549eac1176"], "statement_hash": "db54531e43c8455dcea0bd59907b76c1a88adc0cc3f2394613a019143d573d7f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-12f838aaeeda6aa4", "migration": false}, {"id": "19.0-14f0420e91cf5aeb", "cves": [], "html": "<p>\u5728 <a href=\"/docs/19/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM (VERBOSE)</code></a> \u548c<a href=\"/docs/19/routine-vacuuming.html#AUTOVACUUM\" title=\"24.1.6.\u00a0\u81ea\u52a8\u6e05\u7406\u5b88\u62a4\u8fdb\u7a0b\">\u81ea\u52a8\u6e05\u7406</a>\u65e5\u5fd7\u4e2d\u65b0\u589e\u5185\u5b58\u4f7f\u7528\u548c\u5e76\u884c\u5ea6\u62a5\u544a\uff08Tatsuya Kawata\uff0cDaniil Davydov\uff09<a href=\"https://postgr.es/c/736f754ee\">\u00a7</a><a href=\"https://postgr.es/c/adcdbe938\">\u00a7</a></p>", "text": "\u5728 VACUUM (VERBOSE) \u548c\u81ea\u52a8\u6e05\u7406\u65e5\u5fd7\u4e2d\u65b0\u589e\u5185\u5b58\u4f7f\u7528\u548c\u5e76\u884c\u5ea6\u62a5\u544a\uff08Tatsuya Kawata\uff0cDaniil Davydov\uff09\u00a7\u00a7", "title": "\u5728 VACUUM (VERBOSE) \u548c\u81ea\u52a8\u6e05\u7406\u65e5\u5fd7\u4e2d\u65b0\u589e\u5185\u5b58\u4f7f\u7528\u548c\u5e76\u884c\u5ea6\u62a5\u544a", "commits": ["736f754ee", "adcdbe938"], "section": "\u5b9e\u7528\u547d\u4ee4", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "f38585cef8c7f3c0270764dfc3e34c97746d6937951213f4b671a16953c738bb", "section_path": ["\u5b9e\u7528\u547d\u4ee4"], "commit_groups": [["736f754ee"], ["adcdbe938"]], "identity_text": "Add memory usage and parallelism reporting to VACUUM (VERBOSE) and autovacuum logs (Tatsuya Kawata, Daniil Davydov)", "commit_aliases": ["736f754ee", "adcdbe938"], "source_commits": ["736f754ee", "adcdbe938"], "source_entry_id": "19.0/changes/094", "db_id": "0cdc44f7c352ccf972b3f4e4cab7ec3a", "patch_ids": ["5eb6a0527d43cf5479bc4c9a473687e4", "c374375304847fc9131392904a492452"], "statement_hash": "0b0bdf3d64a37736b65e0ec58cc8802287e0f9201ecf288c3d66011967c83d74", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-14f0420e91cf5aeb", "migration": false}, {"id": "19.0-6802e760e47743f8", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 <a href=\"/docs/19/sql-altertable.html\" title=\"ALTER TABLE\"><code>ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED</code></a> \u4fee\u6539 <code>CHECK</code> \u7ea6\u675f\uff08Jian He\uff09<a href=\"https://postgr.es/c/342051d73\">\u00a7</a></p>\n<p>\u6b64\u524d\u53ea\u6709\u5916\u952e\u7ea6\u675f\u652f\u6301\u66f4\u6539\u5f3a\u5236\u6267\u884c\u72b6\u6001\u3002</p>", "text": "\u5141\u8bb8\u4f7f\u7528 ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED \u4fee\u6539 CHECK \u7ea6\u675f\uff08Jian He\uff09\u00a7 \u6b64\u524d\u53ea\u6709\u5916\u952e\u7ea6\u675f\u652f\u6301\u66f4\u6539\u5f3a\u5236\u6267\u884c\u72b6\u6001\u3002", "title": "\u5141\u8bb8\u4f7f\u7528 ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED \u4fee\u6539 CHECK \u7ea6\u675f", "commits": ["342051d73"], "section": "\u5b9e\u7528\u547d\u4ee4 / \u7ea6\u675f", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-CONSTRAINTS", "source_hash": "59987e86b56cfee4e8c516b2af161abe361b198473f75625fa488ce050eda323", "section_path": ["\u5b9e\u7528\u547d\u4ee4", "\u7ea6\u675f"], "commit_groups": [["342051d73"]], "identity_text": "Allow ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED for CHECK constraints (Jian He) Previously enforcement changes were only supported for foreign key constraints.", "commit_aliases": ["342051d73"], "source_commits": ["342051d73"], "source_entry_id": "19.0/changes/095", "db_id": "55915420081329c439adbcc41b75c155", "patch_ids": ["250565e38eddc1be4c0b9329b8d17ed9"], "statement_hash": "08ad7dcf1b13ccb659e6746561b917ccdb0988d6f6241b71489006dc339388cc", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-6802e760e47743f8", "migration": false}, {"id": "19.0-e6014fdde753cd9e", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u865a\u62df\u5217\u4e0a\u6210\u529f\u6267\u884c <a href=\"/docs/19/sql-altertable.html\" title=\"ALTER TABLE\"><code>ALTER TABLE ... COLUMN SET EXPRESSION</code></a>\uff0c\u5373\u4f7f\u5b83\u5e26\u6709 <code>CHECK</code> \u7ea6\u675f\uff08Jian He\uff09<a href=\"https://postgr.es/c/f80bedd52\">\u00a7</a></p>\n<p>\u6b64\u524d\u8fd9\u662f\u88ab\u7981\u6b62\u7684\u3002</p>", "text": "\u5141\u8bb8\u5728\u865a\u62df\u5217\u4e0a\u6210\u529f\u6267\u884c ALTER TABLE ... COLUMN SET EXPRESSION\uff0c\u5373\u4f7f\u5b83\u5e26\u6709 CHECK \u7ea6\u675f\uff08Jian He\uff09\u00a7 \u6b64\u524d\u8fd9\u662f\u88ab\u7981\u6b62\u7684\u3002", "title": "\u5141\u8bb8\u5728\u865a\u62df\u5217\u4e0a\u6210\u529f\u6267\u884c ALTER TABLE ... COLUMN SET EXPRESSION\uff0c\u5373\u4f7f\u5b83\u5e26\u6709 CHECK \u7ea6\u675f", "commits": ["f80bedd52"], "section": "\u5b9e\u7528\u547d\u4ee4 / \u7ea6\u675f", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-CONSTRAINTS", "source_hash": "14269a8de80a7ac83d0de53334935a73013e09e60261599a0695a77127c07d37", "section_path": ["\u5b9e\u7528\u547d\u4ee4", "\u7ea6\u675f"], "commit_groups": [["f80bedd52"]], "identity_text": "Allow ALTER TABLE ... COLUMN SET EXPRESSION to succeed on virtual columns with CHECK constraints (Jian He) This was previously prohibited.", "commit_aliases": ["f80bedd52"], "source_commits": ["f80bedd52"], "source_entry_id": "19.0/changes/096", "db_id": "719650dd55687b1d229757e6fc2b2d76", "patch_ids": ["638ada60613f5b5c1d2e3938cfc3c57d"], "statement_hash": "b7e3c7509d7d7a6f40c833dc8faf0c1b6189d02d88ec226ae4acae22ccc46dde", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-e6014fdde753cd9e", "migration": false}, {"id": "19.0-07cba192165856da", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a> \u8df3\u8fc7\u591a\u884c\u8868\u5934\uff08Shinya Kato\uff0cFujii Masao\uff09<a href=\"https://postgr.es/c/bc2f348e8\">\u00a7</a></p>\n<p>\u6b64\u524d\u53ea\u80fd\u8df3\u8fc7\u4e00\u884c\u8868\u5934\u3002</p>", "text": "\u5141\u8bb8 COPY FROM \u8df3\u8fc7\u591a\u884c\u8868\u5934\uff08Shinya Kato\uff0cFujii Masao\uff09\u00a7 \u6b64\u524d\u53ea\u80fd\u8df3\u8fc7\u4e00\u884c\u8868\u5934\u3002", "title": "\u5141\u8bb8 COPY FROM \u8df3\u8fc7\u591a\u884c\u8868\u5934", "commits": ["bc2f348e8"], "section": "\u5b9e\u7528\u547d\u4ee4 / COPY", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-COPY", "source_hash": "a5ea76193731276bde664acb67390f8ca66e4b28e5fe6f2356bd94e59c267a28", "section_path": ["\u5b9e\u7528\u547d\u4ee4", "COPY"], "commit_groups": [["bc2f348e8"]], "identity_text": "Allow multiple headers lines to be skipped by COPY FROM (Shinya Kato, Fujii Masao) Previously only a single header line could be skipped.", "commit_aliases": ["bc2f348e8"], "source_commits": ["bc2f348e8"], "source_entry_id": "19.0/changes/097", "db_id": "9e69371e828ab9188c2acff849734796", "patch_ids": ["05e2d08f24f6389cee7e47f4b967632f"], "statement_hash": "8b018f13b141716433f2b822df1fff84f0687b9057f813d40f36d04cf818f38c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-07cba192165856da", "migration": false}, {"id": "19.0-7ed8f05578b99096", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a> \u628a\u65e0\u6548\u8f93\u5165\u503c\u8bbe\u7f6e\u4e3a <code>NULL</code>\uff08Jian He\uff0cKirill Reshke\uff09<a href=\"https://postgr.es/c/2a525cc97\">\u00a7</a></p>\n<p>\u901a\u8fc7 <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY</code></a> \u9009\u9879 <code>ON_ERROR SET_NULL</code> \u5b9e\u73b0\u3002</p>", "text": "\u5141\u8bb8 COPY FROM \u628a\u65e0\u6548\u8f93\u5165\u503c\u8bbe\u7f6e\u4e3a NULL\uff08Jian He\uff0cKirill Reshke\uff09\u00a7 \u901a\u8fc7 COPY \u9009\u9879 ON_ERROR SET_NULL \u5b9e\u73b0\u3002", "title": "\u5141\u8bb8 COPY FROM \u628a\u65e0\u6548\u8f93\u5165\u503c\u8bbe\u7f6e\u4e3a NULL", "commits": ["2a525cc97"], "section": "\u5b9e\u7528\u547d\u4ee4 / COPY", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-COPY", "source_hash": "411b5af6288019d0864a318b65117743e196f4be2b09d7b3b6e3d5b25b3c076c", "section_path": ["\u5b9e\u7528\u547d\u4ee4", "COPY"], "commit_groups": [["2a525cc97"]], "identity_text": "Allow COPY FROM to set invalid input values to NULL (Jian He, Kirill Reshke) This is done using the COPY option ON_ERROR SET_NULL.", "commit_aliases": ["2a525cc97"], "source_commits": ["2a525cc97"], "source_entry_id": "19.0/changes/098", "db_id": "21a312a7b331df0eb0ab4f6b89ed7a9a", "patch_ids": ["8602a6751d550c8bec8f9776978131c9"], "statement_hash": "37b776ff346f7746bbc976b9ff80fa7f92e77f43be6e8fcf030e58963a57a4f9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-7ed8f05578b99096", "migration": false}, {"id": "19.0-1006776340ef2fd6", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY TO</code></a> \u8f93\u51fa <acronym>JSON</acronym> \u683c\u5f0f\uff08Joe Conway\uff0cJian He\uff0cAndrew Dunstan\uff09<a href=\"https://postgr.es/c/7dadd38cd\">\u00a7</a> <a href=\"https://postgr.es/c/4c0390ac5\">\u00a7</a></p>\n<p>\u8fd8\u53ef\u4ee5\u628a <acronym>JSON</acronym> \u8f93\u51fa\u751f\u6210\u4e3a\u5355\u4e2a <acronym>JSON</acronym> \u6570\u7ec4\uff0c\u65b9\u6cd5\u662f\u4f7f\u7528 <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY</code></a> \u9009\u9879 <code>FORCE_ARRAY</code>\u3002</p>", "text": "\u5141\u8bb8 COPY TO \u8f93\u51fa JSON \u683c\u5f0f\uff08Joe Conway\uff0cJian He\uff0cAndrew Dunstan\uff09\u00a7 \u00a7 \u8fd8\u53ef\u4ee5\u628a JSON \u8f93\u51fa\u751f\u6210\u4e3a\u5355\u4e2a JSON \u6570\u7ec4\uff0c\u65b9\u6cd5\u662f\u4f7f\u7528 COPY \u9009\u9879 FORCE_ARRAY\u3002", "title": "\u5141\u8bb8 COPY TO \u8f93\u51fa JSON \u683c\u5f0f", "commits": ["4c0390ac5", "7dadd38cd"], "section": "\u5b9e\u7528\u547d\u4ee4 / COPY", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-COPY", "source_hash": "ab055af4a41ee3cf8d0b6f8f004d9489d1ec3215b4c8114329921042bbba57fe", "section_path": ["\u5b9e\u7528\u547d\u4ee4", "COPY"], "commit_groups": [["4c0390ac5"], ["7dadd38cd"]], "identity_text": "Allow COPY TO to output JSON format (Joe Conway, Jian He, Andrew Dunstan) JSON output can also be a single JSON array using the COPY option FORCE_ARRAY.", "commit_aliases": ["4c0390ac5", "7dadd38cd"], "source_commits": ["4c0390ac5", "7dadd38cd"], "source_entry_id": "19.0/changes/099", "db_id": "e626db65bdfc5b639ca4b0cbe3b065b4", "patch_ids": ["1003eee16009c6b31935c95d41625114", "6044d610c82a493183f9c7c70d296766"], "statement_hash": "df60771a015c095320f31f7048d459f41332f9116fc2e2044f18cca22d561d55", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-1006776340ef2fd6", "migration": false}, {"id": "19.0-49731de35745273a", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY TO</code></a> \u5904\u7406\u5206\u533a\u8868\uff08Jian He\uff0cAjin Cherian\uff09<a href=\"https://postgr.es/c/4bea91f21\">\u00a7</a><a href=\"https://postgr.es/c/266543a62\">\u00a7</a></p>\n<p>\u6b64\u524d\u5fc5\u987b\u4f7f\u7528 <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY (SELECT ...)</code></a> \u624d\u80fd\u8f93\u51fa\u5206\u533a\u8868\u3002\u8fd9\u4e5f\u6539\u8fdb\u4e86\u903b\u8f91\u590d\u5236\u4e2d\u7684\u8868\u540c\u6b65\u3002</p>", "text": "\u5141\u8bb8 COPY TO \u5904\u7406\u5206\u533a\u8868\uff08Jian He\uff0cAjin Cherian\uff09\u00a7\u00a7 \u6b64\u524d\u5fc5\u987b\u4f7f\u7528 COPY (SELECT ...) \u624d\u80fd\u8f93\u51fa\u5206\u533a\u8868\u3002\u8fd9\u4e5f\u6539\u8fdb\u4e86\u903b\u8f91\u590d\u5236\u4e2d\u7684\u8868\u540c\u6b65\u3002", "title": "\u5141\u8bb8 COPY TO \u5904\u7406\u5206\u533a\u8868", "commits": ["266543a62", "4bea91f21"], "section": "\u5b9e\u7528\u547d\u4ee4 / COPY", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-COPY", "source_hash": "7a4ba98538e27af3bd81def2671ad53f82e42a871643d389b015310364eac4ca", "section_path": ["\u5b9e\u7528\u547d\u4ee4", "COPY"], "commit_groups": [["266543a62"], ["4bea91f21"]], "identity_text": "Allow COPY TO to process partitioned tables (Jian He, Ajin Cherian) Previously COPY (SELECT ...) had to be used to output partitioned tables. This also improves logical replication table synchronization.", "commit_aliases": ["266543a62", "4bea91f21"], "source_commits": ["266543a62", "4bea91f21"], "source_entry_id": "19.0/changes/100", "db_id": "8df18db3c5920c2d3bf566be085cbf59", "patch_ids": ["c5244890a1aa2e88fa88e9e30eae7984", "eb19ba34134e942c28c15630c0426e62"], "statement_hash": "dccc14b6c8331925af51c0c6ff36c27bd88b1cbf57b993533a80d9344d85a4a0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-49731de35745273a", "migration": false}, {"id": "19.0-fc47b3b359c27c50", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/19/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN ANALYZE</code></a> \u9009\u9879 <code>IO</code>\uff0c\u7528\u4e8e\u62a5\u544a\u5f02\u6b65 I/O \u6d3b\u52a8\uff08Tomas Vondra\uff09<a href=\"https://postgr.es/c/681daed93\">\u00a7</a><a href=\"https://postgr.es/c/3b1117d6e\">\u00a7</a><a href=\"https://postgr.es/c/e157fe6f7\">\u00a7</a></p>", "text": "\u65b0\u589e EXPLAIN ANALYZE \u9009\u9879 IO\uff0c\u7528\u4e8e\u62a5\u544a\u5f02\u6b65 I/O \u6d3b\u52a8\uff08Tomas Vondra\uff09\u00a7\u00a7\u00a7", "title": "\u65b0\u589e EXPLAIN ANALYZE \u9009\u9879 IO\uff0c\u7528\u4e8e\u62a5\u544a\u5f02\u6b65 I/O \u6d3b\u52a8", "commits": ["3b1117d6e", "681daed93", "e157fe6f7"], "section": "\u5b9e\u7528\u547d\u4ee4 / EXPLAIN", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-EXPLAIN", "source_hash": "f8980607d55d286c44c2a04d3b3a9922e326c46c929064a5dadafbd369927376", "section_path": ["\u5b9e\u7528\u547d\u4ee4", "EXPLAIN"], "commit_groups": [["3b1117d6e"], ["681daed93"], ["e157fe6f7"]], "identity_text": "Add EXPLAIN ANALYZE option IO to report asynchronous IO activity (Tomas Vondra)", "commit_aliases": ["3b1117d6e", "681daed93", "e157fe6f7"], "source_commits": ["3b1117d6e", "681daed93", "e157fe6f7"], "source_entry_id": "19.0/changes/101", "db_id": "c9b9920fd71621cadfa3de7d17106ca3", "patch_ids": ["745c7a44fb371afe8c071e28f06f4a6c", "af71abcd051d247322ca2cd12e6de750", "b9076b39125167b5cdcc0e73079d6a8e"], "statement_hash": "dbff7373edcc5dd7d5c612c6fd3bca3cb5adab38c509ca897095c97b0285c01d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-fc47b3b359c27c50", "migration": false}, {"id": "19.0-075a42807f7dfb1b", "cves": [], "html": "<p>\u65b0\u589e <acronym>WAL</acronym> <a href=\"/docs/19/runtime-config-wal.html#GUC-FULL-PAGE-WRITES\">\u6574\u9875\u5199\u5165</a>\u5b57\u8282\u6570\u62a5\u544a\u5230 <a href=\"/docs/19/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN (ANALYZE, WAL)</code></a> \u8f93\u51fa\uff08Shinya Kato\uff09<a href=\"https://postgr.es/c/5ab0b6a24\">\u00a7</a></p>", "text": "\u65b0\u589e WAL \u6574\u9875\u5199\u5165\u5b57\u8282\u6570\u62a5\u544a\u5230 EXPLAIN (ANALYZE, WAL) \u8f93\u51fa\uff08Shinya Kato\uff09\u00a7", "title": "\u65b0\u589e WAL \u6574\u9875\u5199\u5165\u5b57\u8282\u6570\u62a5\u544a\u5230 EXPLAIN (ANALYZE, WAL) \u8f93\u51fa", "commits": ["5ab0b6a24"], "section": "\u5b9e\u7528\u547d\u4ee4 / EXPLAIN", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-EXPLAIN", "source_hash": "81d3d84f5f8e85de761bdae08c324c764f3b282aaf75f9abe1031e30be1efcf3", "section_path": ["\u5b9e\u7528\u547d\u4ee4", "EXPLAIN"], "commit_groups": [["5ab0b6a24"]], "identity_text": "Add reporting of WAL full-page write bytes to EXPLAIN (ANALYZE, WAL) output (Shinya Kato)", "commit_aliases": ["5ab0b6a24"], "source_commits": ["5ab0b6a24"], "source_entry_id": "19.0/changes/102", "db_id": "94538c466d0b9338c05a6dea60115cfd", "patch_ids": ["0b3579e25d92b2b18f9325522f393db7"], "statement_hash": "42a88618a9feab76a812fbe5b2bf9abc433def60f07cb5e9931d660906fe19e9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-075a42807f7dfb1b", "migration": false}, {"id": "19.0-0bf95c0eca4485a9", "cves": [], "html": "<p>\u5728 <a href=\"/docs/19/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN</code></a> \u8f93\u51fa\u4e2d\u65b0\u589e Memoize \u7f13\u5b58\u548c\u67e5\u627e\u4f30\u8ba1\u503c\uff08Ilia Evdokimov\uff0cLukas Fittl\uff09<a href=\"https://postgr.es/c/4bc62b868\">\u00a7</a></p>\n<p>\u8fd9\u6709\u52a9\u4e8e\u8bf4\u660e\u4e3a\u4ec0\u4e48\u9009\u62e9\u4e86 Memoize\u3002</p>", "text": "\u5728 EXPLAIN \u8f93\u51fa\u4e2d\u65b0\u589e Memoize \u7f13\u5b58\u548c\u67e5\u627e\u4f30\u8ba1\u503c\uff08Ilia Evdokimov\uff0cLukas Fittl\uff09\u00a7 \u8fd9\u6709\u52a9\u4e8e\u8bf4\u660e\u4e3a\u4ec0\u4e48\u9009\u62e9\u4e86 Memoize\u3002", "title": "\u5728 EXPLAIN \u8f93\u51fa\u4e2d\u65b0\u589e Memoize \u7f13\u5b58\u548c\u67e5\u627e\u4f30\u8ba1\u503c", "commits": ["4bc62b868"], "section": "\u5b9e\u7528\u547d\u4ee4 / EXPLAIN", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-EXPLAIN", "source_hash": "7ec0d59ce6bd88b207b85ec2706b87f29bdb673ed9807ee038c96b08f6907cb2", "section_path": ["\u5b9e\u7528\u547d\u4ee4", "EXPLAIN"], "commit_groups": [["4bc62b868"]], "identity_text": "Add Memoize cache and lookup estimates to EXPLAIN output (Ilia Evdokimov, Lukas Fittl) This can show why Memoize was chosen.", "commit_aliases": ["4bc62b868"], "source_commits": ["4bc62b868"], "source_entry_id": "19.0/changes/103", "db_id": "200882adc883b5bad6075b2ec5fa4eba", "patch_ids": ["362813dc72ebd4c49399fe5c80a3b8c0"], "statement_hash": "8f74f54c172bca3c1e922da2e18aae3836cd815d80f79316224dfd9b1c0d5ca4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-0bf95c0eca4485a9", "migration": false}, {"id": "19.0-4b82a2b1e4849c93", "cves": [], "html": "<p>\u65b0\u589e 64 \u4f4d\u65e0\u7b26\u53f7\u6570\u636e\u7c7b\u578b <a href=\"/docs/19/datatype-oid.html\" title=\"8.19.\u00a0\u5bf9\u8c61\u6807\u8bc6\u7b26\u7c7b\u578b\"><code>oid8</code></a>\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/b139bd3b6\">\u00a7</a></p>", "text": "\u65b0\u589e 64 \u4f4d\u65e0\u7b26\u53f7\u6570\u636e\u7c7b\u578b oid8\uff08Michael Paquier\uff09\u00a7", "title": "\u65b0\u589e 64 \u4f4d\u65e0\u7b26\u53f7\u6570\u636e\u7c7b\u578b oid8", "commits": ["b139bd3b6"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-DATATYPES", "source_hash": "bb9f122a829c2adbe907b7ce615e5881637a55dd3511e8957a1d3ace8d9abd0a", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["b139bd3b6"]], "identity_text": "Add the 64-bit unsigned data type oid8 (Michael Paquier)", "commit_aliases": ["b139bd3b6"], "source_commits": ["b139bd3b6"], "source_entry_id": "19.0/changes/104", "db_id": "825a8973d33b00834597d9b46e29d115", "patch_ids": ["e0b7170809704e61b7933051991bf328"], "statement_hash": "201885b92aa138aa45d3ce8ed717f2e400c3924a7053d55fdd541a3c9fd94a94", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-4b82a2b1e4849c93", "migration": false}, {"id": "19.0-af2743eff0e34fa0", "cves": [], "html": "<p>\u65b0\u589e\u66f4\u591a <a href=\"/docs/19/datatype-json.html#DATATYPE-JSONPATH\" title=\"8.14.7.\u00a0jsonpath \u7c7b\u578b\"><code>jsonpath</code></a> \u5b57\u7b26\u4e32\u65b9\u6cd5\uff08Florents Tselai\uff0cDavid E. Wheeler\uff09<a href=\"https://postgr.es/c/bd4f879a9\">\u00a7</a></p>\n<p>\u5305\u62ec <a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON \u8def\u5f84\u64cd\u4f5c\u7b26\u548c\u65b9\u6cd5\"><code>ltrim()</code></a>\u3001<a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON \u8def\u5f84\u64cd\u4f5c\u7b26\u548c\u65b9\u6cd5\"><code>rtrim()</code></a>\u3001<a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON \u8def\u5f84\u64cd\u4f5c\u7b26\u548c\u65b9\u6cd5\"><code>btrim()</code></a>\u3001<a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON \u8def\u5f84\u64cd\u4f5c\u7b26\u548c\u65b9\u6cd5\"><code>lower()</code></a>\u3001<a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON \u8def\u5f84\u64cd\u4f5c\u7b26\u548c\u65b9\u6cd5\"><code>upper()</code></a>\u3001<a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON \u8def\u5f84\u64cd\u4f5c\u7b26\u548c\u65b9\u6cd5\"><code>initcap()</code></a>\u3001<a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON \u8def\u5f84\u64cd\u4f5c\u7b26\u548c\u65b9\u6cd5\"><code>replace()</code></a> \u548c <a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON \u8def\u5f84\u64cd\u4f5c\u7b26\u548c\u65b9\u6cd5\"><code>split_part()</code></a>\u3002\u5b83\u4eec\u4e0e\u975e <acronym>JSON</acronym> \u5b57\u7b26\u4e32\u53d8\u4f53\u4e00\u6837\u662f\u4e0d\u53ef\u53d8\u7684\u3002</p>", "text": "\u65b0\u589e\u66f4\u591a jsonpath \u5b57\u7b26\u4e32\u65b9\u6cd5\uff08Florents Tselai\uff0cDavid E. Wheeler\uff09\u00a7 \u5305\u62ec ltrim()\u3001rtrim()\u3001btrim()\u3001lower()\u3001upper()\u3001initcap()\u3001replace() \u548c split_part()\u3002\u5b83\u4eec\u4e0e\u975e JSON \u5b57\u7b26\u4e32\u53d8\u4f53\u4e00\u6837\u662f\u4e0d\u53ef\u53d8\u7684\u3002", "title": "\u65b0\u589e\u66f4\u591a jsonpath \u5b57\u7b26\u4e32\u65b9\u6cd5", "commits": ["bd4f879a9"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-DATATYPES", "source_hash": "2cf3c11635bfb1c2cd384a1b312c49b6516d00eca48ecb45b545269d26488dc6", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["bd4f879a9"]], "identity_text": "Add more jsonpath string methods (Florents Tselai, David E. Wheeler) They are ltrim(), rtrim(), btrim(), lower(), upper(), initcap(), replace(), and split_part(). These are immutable like their non-JSON string variants.", "commit_aliases": ["bd4f879a9"], "source_commits": ["bd4f879a9"], "source_entry_id": "19.0/changes/105", "db_id": "19676c3c340ca8cc7c37a53c4e91b032", "patch_ids": ["85a7c4c070b81548aa43b56e93d9f013"], "statement_hash": "5ac1fb152d58dea8d0216ca7dc5ce2e5030cbc15d1c1d24f537021440e9d453e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-af2743eff0e34fa0", "migration": false}, {"id": "19.0-dd70e63a54f95305", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <a href=\"/docs/19/datatype-binary.html\" title=\"8.4.\u00a0\u4e8c\u8fdb\u5236\u6570\u636e\u7c7b\u578b\"><code>bytea</code></a> \u548c <a href=\"/docs/19/datatype-uuid.html\" title=\"8.12.\u00a0UUID\u7c7b\u578b\"><code>uuid</code></a> \u4e4b\u95f4\u8fdb\u884c\u7c7b\u578b\u8f6c\u6362\uff08Dagfinn Ilmari Manns\u00e5ker\uff0cAleksander Alekseev\uff09<a href=\"https://postgr.es/c/ba21f5bf8\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728 bytea \u548c uuid \u4e4b\u95f4\u8fdb\u884c\u7c7b\u578b\u8f6c\u6362\uff08Dagfinn Ilmari Manns\u00e5ker\uff0cAleksander Alekseev\uff09\u00a7", "title": "\u5141\u8bb8\u5728 bytea \u548c uuid \u4e4b\u95f4\u8fdb\u884c\u7c7b\u578b\u8f6c\u6362", "commits": ["ba21f5bf8"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-DATATYPES", "source_hash": "c7ce78cdd015de9b3fedd176296573eb251272d7cefc64b5876705fec2da7fd9", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["ba21f5bf8"]], "identity_text": "Allow casts between bytea and uuid data types (Dagfinn Ilmari Manns\u00e5ker, Aleksander Alekseev)", "commit_aliases": ["ba21f5bf8"], "source_commits": ["ba21f5bf8"], "source_entry_id": "19.0/changes/106", "db_id": "57e8f049fc17a1ebfa78a069f87af9d5", "patch_ids": ["79dfe5a7aa3ae37007d07b69656134ad"], "statement_hash": "1a7732ecad352f8f83f7f60e962966a4196990275053699ac9d410e3584cd499", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-dd70e63a54f95305", "migration": false}, {"id": "19.0-1fdd2d6f6cb50ff4", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 <a href=\"/docs/19/datatype-oid.html\" title=\"8.19.\u00a0\u5bf9\u8c61\u6807\u8bc6\u7b26\u7c7b\u578b\"><code>regdatabase</code></a> \u5728\u6570\u636e\u5e93\u540d\u548c <a href=\"/docs/19/datatype-oid.html\" title=\"8.19.\u00a0\u5bf9\u8c61\u6807\u8bc6\u7b26\u7c7b\u578b\"><code>oid</code></a> \u4e4b\u95f4\u8f6c\u6362\uff08Ian Lawrence Barwick\uff09<a href=\"https://postgr.es/c/bd09f024a\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4f7f\u7528 regdatabase \u5728\u6570\u636e\u5e93\u540d\u548c oid \u4e4b\u95f4\u8f6c\u6362\uff08Ian Lawrence Barwick\uff09\u00a7", "title": "\u5141\u8bb8\u4f7f\u7528 regdatabase \u5728\u6570\u636e\u5e93\u540d\u548c oid \u4e4b\u95f4\u8f6c\u6362", "commits": ["bd09f024a"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-DATATYPES", "source_hash": "aa215150f023f58369e6d04698fa8ebd6f2744c972261292d0a4bad2aa53b789", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["bd09f024a"]], "identity_text": "Add ability to cast between database names and oids using regdatabase (Ian Lawrence Barwick)", "commit_aliases": ["bd09f024a"], "source_commits": ["bd09f024a"], "source_entry_id": "19.0/changes/107", "db_id": "fa6edc92ae5927848154347862d836e2", "patch_ids": ["699308b41bd67d6a6194dfaa2aae2f99"], "statement_hash": "7181425fd8e60ef76072279859312846a2ce1424bb5656cdd85a4199e55d352d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-1fdd2d6f6cb50ff4", "migration": false}, {"id": "19.0-b73201d56dd16d2a", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/19/functions-tid.html\" title=\"9.14.\u00a0TID \u51fd\u6570\"><code>tid_block()</code></a> \u548c <a href=\"/docs/19/functions-tid.html\" title=\"9.14.\u00a0TID \u51fd\u6570\"><code>tid_offset()</code></a> \u51fd\u6570\uff0c\u7528\u4e8e\u4ece <a href=\"/docs/19/datatype-oid.html\" title=\"8.19.\u00a0\u5bf9\u8c61\u6807\u8bc6\u7b26\u7c7b\u578b\"><code>tid</code></a> \u503c\u4e2d\u63d0\u53d6\u5757\u53f7\u548c\u504f\u79fb\u91cf\uff08Ayush Tiwari\uff09<a href=\"https://postgr.es/c/df6949ccf\">\u00a7</a></p>", "text": "\u65b0\u589e tid_block() \u548c tid_offset() \u51fd\u6570\uff0c\u7528\u4e8e\u4ece tid \u503c\u4e2d\u63d0\u53d6\u5757\u53f7\u548c\u504f\u79fb\u91cf\uff08Ayush Tiwari\uff09\u00a7", "title": "\u65b0\u589e tid_block() \u548c tid_offset() \u51fd\u6570\uff0c\u7528\u4e8e\u4ece tid \u503c\u4e2d\u63d0\u53d6\u5757\u53f7\u548c\u504f\u79fb\u91cf", "commits": ["df6949ccf"], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-DATATYPES", "source_hash": "ed777f011cb41e4521d02201190fefe2dbb70f4fd69051821e13cc8113193b05", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [["df6949ccf"]], "identity_text": "Add functions tid_block() and tid_offset() to extract block numbers and offsets from tid values (Ayush Tiwari)", "commit_aliases": ["df6949ccf"], "source_commits": ["df6949ccf"], "source_entry_id": "19.0/changes/108", "db_id": "df2a8577838b926e76c38171f060886e", "patch_ids": ["80376c5aae62da913eecf01d58b58884"], "statement_hash": "c024a01d8e0c602e154f076bec837fe884838addda2499ec491b058eb813f441", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-b73201d56dd16d2a", "migration": false}, {"id": "19.0-7e3726de1225809f", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/19/datatype-datetime.html\" title=\"8.5.\u00a0\u65e5\u671f/\u65f6\u95f4\u7c7b\u578b\"><code>date</code></a>\u3001<a href=\"/docs/19/datatype-datetime.html\" title=\"8.5.\u00a0\u65e5\u671f/\u65f6\u95f4\u7c7b\u578b\"><code>timestamp</code></a> \u548c <a href=\"/docs/19/datatype-datetime.html\" title=\"8.5.\u00a0\u65e5\u671f/\u65f6\u95f4\u7c7b\u578b\"><code>timestamptz</code></a> \u7248\u672c\u7684 <a href=\"/docs/19/functions-math.html#FUNCTIONS-MATH-RANDOM-TABLE\" title=\"\u8868\u00a09.6.\u00a0\u968f\u673a\u51fd\u6570\"><code>random(min, max)</code></a>\uff08Damien Clochard\uff0cDean Rasheed\uff09<a href=\"https://postgr.es/c/faf071b55\">\u00a7</a><a href=\"https://postgr.es/c/9c24111c4\">\u00a7</a></p>", "text": "\u65b0\u589e date\u3001timestamp \u548c timestamptz \u7248\u672c\u7684 random(min, max)\uff08Damien Clochard\uff0cDean Rasheed\uff09\u00a7\u00a7", "title": "\u65b0\u589e date\u3001timestamp \u548c timestamptz \u7248\u672c\u7684 random(min, max)", "commits": ["9c24111c4", "faf071b55"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "a839078a3b5c4dd8be0190945641f495e688ab0f9eb757b4bd909dff67529d3e", "section_path": ["\u51fd\u6570"], "commit_groups": [["9c24111c4"], ["faf071b55"]], "identity_text": "Add date, timestamp, and timestamptz versions of random(min, max) (Damien Clochard, Dean Rasheed)", "commit_aliases": ["9c24111c4", "faf071b55"], "source_commits": ["9c24111c4", "faf071b55"], "source_entry_id": "19.0/changes/109", "db_id": "a285e4910874d03aac540644095cf79d", "patch_ids": ["407a606b6d3de896d7a98c0eb9f90fcf", "c5fb9e2800842db8d8e24b8f1cc21391"], "statement_hash": "6c33a20a9d60637e158f968566e9ba936be7ada695fd5a89621a3e2ed7efdbbf", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-7e3726de1225809f", "migration": false}, {"id": "19.0-7e3776b1bc04d8fc", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/functions-binarystring.html#FUNCTIONS-BINARYSTRING-CONVERSIONS\" title=\"\u8868\u00a09.13.\u00a0\u6587\u672c/\u4e8c\u8fdb\u5236\u4e32\u8f6c\u6362\u51fd\u6570\"><code>encode()</code></a> \u548c <a href=\"/docs/19/functions-binarystring.html#FUNCTIONS-BINARYSTRING-CONVERSIONS\" title=\"\u8868\u00a09.13.\u00a0\u6587\u672c/\u4e8c\u8fdb\u5236\u4e32\u8f6c\u6362\u51fd\u6570\"><code>decode()</code></a> \u5904\u7406 <code>base64url</code> \u548c <code>base32hex</code> \u683c\u5f0f\u7684\u6570\u636e\uff08Andrey Borodin\uff0cAleksander Alekseev\uff0cFlorents Tselai\uff09<a href=\"https://postgr.es/c/497c1170c\">\u00a7</a><a href=\"https://postgr.es/c/e752a2ccc\">\u00a7</a><a href=\"https://postgr.es/c/e1d917182\">\u00a7</a></p>\n<p>\u8fd9\u79cd\u683c\u5f0f\u4fdd\u7559\u987a\u5e8f\uff0c\u4e0d\u50cf <code>base32</code>\u3002</p>", "text": "\u5141\u8bb8 encode() \u548c decode() \u5904\u7406 base64url \u548c base32hex \u683c\u5f0f\u7684\u6570\u636e\uff08Andrey Borodin\uff0cAleksander Alekseev\uff0cFlorents Tselai\uff09\u00a7\u00a7\u00a7 \u8fd9\u79cd\u683c\u5f0f\u4fdd\u7559\u987a\u5e8f\uff0c\u4e0d\u50cf base32\u3002", "title": "\u5141\u8bb8 encode() \u548c decode() \u5904\u7406 base64url \u548c base32hex \u683c\u5f0f\u7684\u6570\u636e", "commits": ["497c1170c", "e1d917182", "e752a2ccc"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "fae527f7b48e7bcbb749e79a62475f027703ec83f13349dbbe0018d353cb5e20", "section_path": ["\u51fd\u6570"], "commit_groups": [["497c1170c"], ["e1d917182"], ["e752a2ccc"]], "identity_text": "Allow encode() and decode() to process data in base64url and base32hex formats (Andrey Borodin, Aleksander Alekseev, Florents Tselai) This format retains ordering, unlike base32.", "commit_aliases": ["497c1170c", "e1d917182", "e752a2ccc"], "source_commits": ["497c1170c", "e1d917182", "e752a2ccc"], "source_entry_id": "19.0/changes/110", "db_id": "9ef0c90664f8100114b871e837a6ea2d", "patch_ids": ["01e6ec89475fa03fbacd633eca4b3e08", "9b7afda96b453b9640644a5e36dfd6d5", "f1182c1a1aefbdca98c8e39d959f9050"], "statement_hash": "c7f6c246ca3cf52c4a4de9dbb2ebd6b9c74cd949164941d7dd60fa13052c5c72", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-7e3776b1bc04d8fc", "migration": false}, {"id": "19.0-802925c582f6e26e", "cves": [], "html": "<p>\u65b0\u589e\u7528\u4e8e\u8fd4\u56de\u8303\u56f4\u51cf\u6cd5\u7ed3\u679c\u8303\u56f4\u96c6\u7684\u51fd\u6570\uff08Paul A. Jungwirth\uff09<a href=\"https://postgr.es/c/5eed8ce50\">\u00a7</a></p>\n<p>\u51fd\u6570\u4e3a <a href=\"/docs/19/functions-range.html#RANGE-FUNCTIONS-TABLE\" title=\"\u8868\u00a09.61.\u00a0\u8303\u56f4\u51fd\u6570\"><code>range_minus_multi()</code></a> \u548c <a href=\"/docs/19/functions-range.html#MULTIRANGE-FUNCTIONS-TABLE\" title=\"\u8868\u00a09.62.\u00a0\u591a\u8303\u56f4\u51fd\u6570\"><code>multirange_minus_multi()</code></a>\u3002\u8fd9\u5bf9\u8868\u793a\u5e26\u95f4\u9699\u7684\u8303\u56f4\u51cf\u6cd5\u7ed3\u679c\u5f88\u6709\u7528\u3002</p>", "text": "\u65b0\u589e\u7528\u4e8e\u8fd4\u56de\u8303\u56f4\u51cf\u6cd5\u7ed3\u679c\u8303\u56f4\u96c6\u7684\u51fd\u6570\uff08Paul A. Jungwirth\uff09\u00a7 \u51fd\u6570\u4e3a range_minus_multi() \u548c multirange_minus_multi()\u3002\u8fd9\u5bf9\u8868\u793a\u5e26\u95f4\u9699\u7684\u8303\u56f4\u51cf\u6cd5\u7ed3\u679c\u5f88\u6709\u7528\u3002", "title": "\u65b0\u589e\u7528\u4e8e\u8fd4\u56de\u8303\u56f4\u51cf\u6cd5\u7ed3\u679c\u8303\u56f4\u96c6\u7684\u51fd\u6570", "commits": ["5eed8ce50"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "57ae7ae896ef2ffd75d849181b2f72b1a43d1b05ded0b3a216ef6bc10ecf660e", "section_path": ["\u51fd\u6570"], "commit_groups": [["5eed8ce50"]], "identity_text": "Add functions to return a set of ranges resulting from range subtraction (Paul A. Jungwirth) The functions are range_minus_multi() and multirange_minus_multi(). This is useful to represent range subtraction results with gaps.", "commit_aliases": ["5eed8ce50"], "source_commits": ["5eed8ce50"], "source_entry_id": "19.0/changes/111", "db_id": "c7de4d92ca3a3df668d33e6dc4cbab8a", "patch_ids": ["ba1fc92e640d152257b543678fa8c705"], "statement_hash": "76c27dc16f5e638526a73a106fadd34648a22646f4940e45a2ec3e710f36afcd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-802925c582f6e26e", "migration": false}, {"id": "19.0-e349fca28342cccb", "cves": [], "html": "<p>\u65b0\u589e\u51fd\u6570 <a href=\"/docs/19/functions-comparison.html#FUNCTIONS-COMPARISON-FUNC-TABLE\" title=\"\u8868\u00a09.3.\u00a0\u6bd4\u8f83\u51fd\u6570\"><code>error_on_null()</code></a>\uff0c\u7528\u4e8e\u8fd4\u56de\u63d0\u4f9b\u7684\u53c2\u6570\uff0c\u6216\u5728 <code>NULL</code> \u8f93\u5165\u65f6\u62a5\u544a\u9519\u8bef\uff08Joel Jacobson\uff09<a href=\"https://postgr.es/c/2b75c38b7\">\u00a7</a></p>", "text": "\u65b0\u589e\u51fd\u6570 error_on_null()\uff0c\u7528\u4e8e\u8fd4\u56de\u63d0\u4f9b\u7684\u53c2\u6570\uff0c\u6216\u5728 NULL \u8f93\u5165\u65f6\u62a5\u544a\u9519\u8bef\uff08Joel Jacobson\uff09\u00a7", "title": "\u65b0\u589e\u51fd\u6570 error_on_null()\uff0c\u7528\u4e8e\u8fd4\u56de\u63d0\u4f9b\u7684\u53c2\u6570\uff0c\u6216\u5728 NULL \u8f93\u5165\u65f6\u62a5\u544a\u9519\u8bef", "commits": ["2b75c38b7"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "18379dabd622e75ef2578dd813807bc8cd6e51cdd6060b11537b65747f8f659f", "section_path": ["\u51fd\u6570"], "commit_groups": [["2b75c38b7"]], "identity_text": "Add function error_on_null() to return the supplied parameter, or error on NULL input (Joel Jacobson)", "commit_aliases": ["2b75c38b7"], "source_commits": ["2b75c38b7"], "source_entry_id": "19.0/changes/112", "db_id": "def0cd69c9e13dfd108b029da100d566", "patch_ids": ["6668deefdb92b652d44a461e17f0b45e"], "statement_hash": "21543872002d12a61698a6d28fe0645e37793660d25fb3dd2469478e28cc4748", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-e349fca28342cccb", "migration": false}, {"id": "19.0-d5217054d55d5050", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-MISC\" title=\"\u8868\u00a09.51.\u00a0SQL/JSON \u6d4b\u8bd5\u51fd\u6570\"><code>IS JSON</code></a> \u5728\u5b9a\u4e49\u4e8e\u53d7\u652f\u6301\u57fa\u7840\u7c7b\u578b\u4e4b\u4e0a\u7684\u57df\u4e0a\u5de5\u4f5c\uff08Jian He\uff09<a href=\"https://postgr.es/c/3b4c2b9db\">\u00a7</a></p>\n<p>\u53d7\u652f\u6301\u7684\u57fa\u7840\u7c7b\u578b\u4e3a <a href=\"/docs/19/datatype-character.html\" title=\"8.3.\u00a0\u5b57\u7b26\u7c7b\u578b\"><code>TEXT</code></a>\u3001<a href=\"/docs/19/datatype-json.html\" title=\"8.14.\u00a0JSON \u7c7b\u578b\"><code>JSON</code></a>\u3001<a href=\"/docs/19/datatype-json.html\" title=\"8.14.\u00a0JSON \u7c7b\u578b\"><code>JSONB</code></a> \u548c <a href=\"/docs/19/datatype-binary.html\" title=\"8.4.\u00a0\u4e8c\u8fdb\u5236\u6570\u636e\u7c7b\u578b\"><code>BYTEA</code></a>\u3002</p>", "text": "\u5141\u8bb8 IS JSON \u5728\u5b9a\u4e49\u4e8e\u53d7\u652f\u6301\u57fa\u7840\u7c7b\u578b\u4e4b\u4e0a\u7684\u57df\u4e0a\u5de5\u4f5c\uff08Jian He\uff09\u00a7 \u53d7\u652f\u6301\u7684\u57fa\u7840\u7c7b\u578b\u4e3a TEXT\u3001JSON\u3001JSONB \u548c BYTEA\u3002", "title": "\u5141\u8bb8 IS JSON \u5728\u5b9a\u4e49\u4e8e\u53d7\u652f\u6301\u57fa\u7840\u7c7b\u578b\u4e4b\u4e0a\u7684\u57df\u4e0a\u5de5\u4f5c", "commits": ["3b4c2b9db"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "68c8b7e34705ae43e87ebb08523834b3a9f4d6ca2d18ccc46c31cf9167d541ec", "section_path": ["\u51fd\u6570"], "commit_groups": [["3b4c2b9db"]], "identity_text": "Allow IS JSON to work on domains defined over supported base types (Jian He) The supported base types are TEXT, JSON, JSONB, and BYTEA.", "commit_aliases": ["3b4c2b9db"], "source_commits": ["3b4c2b9db"], "source_entry_id": "19.0/changes/113", "db_id": "53286fe15e9ad2dc8248989b05a763d3", "patch_ids": ["b6248bf8911a05e519e4612c5650e618"], "statement_hash": "3a96a721f9e3683ee3b83ff3d672991815bd08125fbdc312fc91e7682c35801a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-d5217054d55d5050", "migration": false}, {"id": "19.0-fbb07f7832f0ca58", "cves": [], "html": "<p>\u65b0\u589e\u6ce2\u5170\u8bed\u548c\u4e16\u754c\u8bed\u7684<a href=\"/docs/19/textsearch-dictionaries.html#TEXTSEARCH-SNOWBALL-DICTIONARY\" title=\"12.6.6.\u00a0Snowball \u8bcd\u5178\">\u5168\u6587\u8bcd\u5e72\u5206\u6790\u5668</a>\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/7dc95cc3b\">\u00a7</a></p>\n<p>\u8377\u5170\u8bed\u8bcd\u5e72\u5206\u6790\u5668\u4e5f\u5df2\u66f4\u65b0\u3002\u65e7\u7248\u8377\u5170\u8bed\u8bcd\u5e72\u5206\u6790\u5668\u53ef\u901a\u8fc7 <a href=\"/docs/19/textsearch-dictionaries.html#TEXTSEARCH-SNOWBALL-DICTIONARY\" title=\"12.6.6.\u00a0Snowball \u8bcd\u5178\"><code>dutch_porter</code></a> \u4f7f\u7528\u3002</p>", "text": "\u65b0\u589e\u6ce2\u5170\u8bed\u548c\u4e16\u754c\u8bed\u7684\u5168\u6587\u8bcd\u5e72\u5206\u6790\u5668\uff08Tom Lane\uff09\u00a7 \u8377\u5170\u8bed\u8bcd\u5e72\u5206\u6790\u5668\u4e5f\u5df2\u66f4\u65b0\u3002\u65e7\u7248\u8377\u5170\u8bed\u8bcd\u5e72\u5206\u6790\u5668\u53ef\u901a\u8fc7 dutch_porter \u4f7f\u7528\u3002", "title": "\u65b0\u589e\u6ce2\u5170\u8bed\u548c\u4e16\u754c\u8bed\u7684\u5168\u6587\u8bcd\u5e72\u5206\u6790\u5668", "commits": ["7dc95cc3b"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "a8037a4465dd5689ff3f4f1a0fd65569dd467f4b145a0cda0a708cc808a9b2a8", "section_path": ["\u51fd\u6570"], "commit_groups": [["7dc95cc3b"]], "identity_text": "Add full text stemmers for Polish and Esperanto (Tom Lane) The Dutch stemmer has also been updated. The old Dutch stemmer is available via dutch_porter.", "commit_aliases": ["7dc95cc3b"], "source_commits": ["7dc95cc3b"], "source_entry_id": "19.0/changes/114", "db_id": "9171286cb14dbf5806989fbcf2526528", "patch_ids": ["4db6a129a441029f8943300d8929cf11"], "statement_hash": "86128b5095e14f3ca0fd482d8c52bde6fa8bacc92448ee65e4280268d1c2fa23", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-fbb07f7832f0ca58", "migration": false}, {"id": "19.0-4ee4d46b86c5660c", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528<a href=\"/docs/19/plpython.html\" title=\"\u7b2c\u00a044\u00a0\u7ae0\u00a0PL/Python \u2014 Python \u8fc7\u7a0b\u8bed\u8a00\"><span>PL/Python</span></a>\u7f16\u5199\u4e8b\u4ef6\u89e6\u53d1\u5668\uff08Euler Taveira\uff0cDimitri Fontaine\uff09<a href=\"https://postgr.es/c/53eff471c\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4f7f\u7528PL/Python\u7f16\u5199\u4e8b\u4ef6\u89e6\u53d1\u5668\uff08Euler Taveira\uff0cDimitri Fontaine\uff09\u00a7", "title": "\u5141\u8bb8\u4f7f\u7528PL/Python\u7f16\u5199\u4e8b\u4ef6\u89e6\u53d1\u5668", "commits": ["53eff471c"], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "77962c064a273e05efd2b61ebac298cb405f217bf9ebefeda59aee0663fbce65", "section_path": ["\u51fd\u6570"], "commit_groups": [["53eff471c"]], "identity_text": "Allow event triggers to be written using PL/Python (Euler Taveira, Dimitri Fontaine)", "commit_aliases": ["53eff471c"], "source_commits": ["53eff471c"], "source_entry_id": "19.0/changes/115", "db_id": "dea4d618db8f59f9a6897cebf4fd37b3", "patch_ids": ["12561dc0cbadbe3c5683a8d9fc46a72b"], "statement_hash": "e86760cae912c2895e04b314848870434aba1cd233fb99049b68bad93b6ce9cc", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-4ee4d46b86c5660c", "migration": false}, {"id": "19.0-69aa41fdebdd77f0", "cves": [], "html": "<p>\u5141\u8bb8 libpq \u8fde\u63a5\u901a\u8fc7 \"<a href=\"/docs/19/libpq-connect.html#LIBPQ-CONNECT-SERVICEFILE\"><code>servicefile</code></a>\" \u6307\u5b9a\u670d\u52a1\u6587\u4ef6\uff08Torsten F\u00f6rtsch\uff0cRyo Kanbayashi\uff09<a href=\"https://postgr.es/c/092f3c63e\">\u00a7</a></p>", "text": "\u5141\u8bb8 libpq \u8fde\u63a5\u901a\u8fc7 \"servicefile\" \u6307\u5b9a\u670d\u52a1\u6587\u4ef6\uff08Torsten F\u00f6rtsch\uff0cRyo Kanbayashi\uff09\u00a7", "title": "\u5141\u8bb8 libpq \u8fde\u63a5\u901a\u8fc7 \"servicefile\" \u6307\u5b9a\u670d\u52a1\u6587\u4ef6", "commits": ["092f3c63e"], "section": "Libpq", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LIBPQ", "source_hash": "64de18108bcc62edb500032785f0cc406dedf7ef450fe3951694658791401afa", "section_path": ["Libpq"], "commit_groups": [["092f3c63e"]], "identity_text": "Allow libpq connections to specify a service file via servicefile (Torsten F\u00f6rtsch, Ryo Kanbayashi)", "commit_aliases": ["092f3c63e"], "source_commits": ["092f3c63e"], "source_entry_id": "19.0/changes/116", "db_id": "0db5717ffc9d7a38164ed481641c123a", "patch_ids": ["affe84177ff8ca2c35697b99487d1989"], "statement_hash": "6df45cd5d5c300a4d4a030864cebbac2debaa6a9e490e2a4139913931e043377", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-69aa41fdebdd77f0", "migration": false}, {"id": "19.0-b5fec90b8d9cccee", "cves": [], "html": "<p>\u65b0\u589e\u7528\u4e8e\u517c\u5bb9\u6027\u6d4b\u8bd5\u7684\u7279\u6b8a libpq \u534f\u8bae\u53c2\u6570\uff08Jelte Fennema-Nio\uff0cJacob Champion\uff09<a href=\"https://postgr.es/c/d8d7c5dc8\">\u00a7</a></p>\n<p>\u8fd9\u4e5f\u79f0\u4e3a <a href=\"https://wiki.postgresql.org/wiki/Grease\">protocol grease</a>\uff0c\u66fe\u5728 19 beta \u671f\u95f4\u542f\u7528\u3002\u4ece <span>PostgreSQL</span> 19 \u6b63\u5f0f\u7248\u5f00\u59cb\u5c06\u4e0d\u518d\u53d1\u9001\u8fd9\u4e9b\u53c2\u6570\uff0c\u4f46\u76f8\u5173\u53c2\u6570\u4fdd\u7559\u9879\u4ecd\u4f1a\u4fdd\u7559\uff0c\u4ee5\u5907\u5c06\u6765\u4f7f\u7528\u3002</p>", "text": "\u65b0\u589e\u7528\u4e8e\u517c\u5bb9\u6027\u6d4b\u8bd5\u7684\u7279\u6b8a libpq \u534f\u8bae\u53c2\u6570\uff08Jelte Fennema-Nio\uff0cJacob Champion\uff09\u00a7 \u8fd9\u4e5f\u79f0\u4e3a protocol grease\uff0c\u66fe\u5728 19 beta \u671f\u95f4\u542f\u7528\u3002\u4ece PostgreSQL 19 \u6b63\u5f0f\u7248\u5f00\u59cb\u5c06\u4e0d\u518d\u53d1\u9001\u8fd9\u4e9b\u53c2\u6570\uff0c\u4f46\u76f8\u5173\u53c2\u6570\u4fdd\u7559\u9879\u4ecd\u4f1a\u4fdd\u7559\uff0c\u4ee5\u5907\u5c06\u6765\u4f7f\u7528\u3002", "title": "\u65b0\u589e\u7528\u4e8e\u517c\u5bb9\u6027\u6d4b\u8bd5\u7684\u7279\u6b8a libpq \u534f\u8bae\u53c2\u6570", "commits": ["d8d7c5dc8"], "section": "Libpq", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LIBPQ", "source_hash": "c5fb4bfaa74cf3b3818ee61e8d4ac15edbca103da3729cd9c38e1a7e861adec5", "section_path": ["Libpq"], "commit_groups": [["d8d7c5dc8"]], "identity_text": "Add special libpq protocol parameters for compatibility testing (Jelte Fennema-Nio, Jacob Champion) Otherwise known as protocol grease, which was active during the 19 beta period. These will no longer be sent as of the PostgreSQL 19 official release, but the parameter reservations will remain for potential use in the future.", "commit_aliases": ["d8d7c5dc8"], "source_commits": ["d8d7c5dc8"], "source_entry_id": "19.0/changes/117", "db_id": "ff2b1dfe6067b31cf2bf934b7684cd23", "patch_ids": ["3632c83c1c1a91ef0ac583beea2de520"], "statement_hash": "650d3c1f8b2817bbf8a3398d8b09dc4b6cdd677149d6a52b52e8eba14e0d179b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-b5fec90b8d9cccee", "migration": false}, {"id": "19.0-1d98b3714cb11ecb", "cves": [], "html": "<p>\u65b0\u589e libpq \u8fde\u63a5\u53c2\u6570 <a href=\"/docs/19/libpq-connect.html#LIBPQ-CONNECT-OAUTH-CA-FILE\"><code>oauth_ca_file</code></a>\uff0c\u7528\u4e8e\u5728\u4e0e OAuth \u63d0\u4f9b\u8005\u901a\u4fe1\u65f6\u6307\u5b9a\u5176\u4ed6\u8bc1\u4e66\u9881\u53d1\u673a\u6784\uff08Jonathan Gonzalez V.\uff0cJacob Champion\uff09<a href=\"https://postgr.es/c/993368113\">\u00a7</a></p>\n<p>\u4e5f\u53ef\u4ee5\u901a\u8fc7\u73af\u5883\u53d8\u91cf <a href=\"/docs/19/libpq-envars.html\" title=\"32.15.\u00a0\u73af\u5883\u53d8\u91cf\"><code>PGOAUTHCAFILE</code></a> \u8bbe\u7f6e\u3002\u9ed8\u8ba4\u4f7f\u7528 <span>curl</span> \u5185\u7f6e\u8bc1\u4e66\u3002</p>", "text": "\u65b0\u589e libpq \u8fde\u63a5\u53c2\u6570 oauth_ca_file\uff0c\u7528\u4e8e\u5728\u4e0e OAuth \u63d0\u4f9b\u8005\u901a\u4fe1\u65f6\u6307\u5b9a\u5176\u4ed6\u8bc1\u4e66\u9881\u53d1\u673a\u6784\uff08Jonathan Gonzalez V.\uff0cJacob Champion\uff09\u00a7 \u4e5f\u53ef\u4ee5\u901a\u8fc7\u73af\u5883\u53d8\u91cf PGOAUTHCAFILE \u8bbe\u7f6e\u3002\u9ed8\u8ba4\u4f7f\u7528 curl \u5185\u7f6e\u8bc1\u4e66\u3002", "title": "\u65b0\u589e libpq \u8fde\u63a5\u53c2\u6570 oauth_ca_file\uff0c\u7528\u4e8e\u5728\u4e0e OAuth \u63d0\u4f9b\u8005\u901a\u4fe1\u65f6\u6307\u5b9a\u5176\u4ed6\u8bc1\u4e66\u9881\u53d1\u673a\u6784", "commits": ["993368113"], "section": "Libpq", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LIBPQ", "source_hash": "a58caab2d1913301414e95545c31b26666028c916b1cded6ace13b5884164741", "section_path": ["Libpq"], "commit_groups": [["993368113"]], "identity_text": "Add libpq connection parameter oauth_ca_file to specify an alternate certificate authority when communicating with OAuth providers (Jonathan Gonzalez V., Jacob Champion) This can also be set via the PGOAUTHCAFILE environment variable. The default is to use curl's built-in certificates.", "commit_aliases": ["993368113"], "source_commits": ["993368113"], "source_entry_id": "19.0/changes/118", "db_id": "a0cb2341ae578cdafb7b9251dadd561d", "patch_ids": ["74a7b12641d7fdb5c60efa36dfcc24ef"], "statement_hash": "8af2e7418b174d25fc0641b554ffb9445d06fa08d16c710f4eada6b93cd948f3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-1d98b3714cb11ecb", "migration": false}, {"id": "19.0-3d4f5dde8f72bd18", "cves": [], "html": "<p>\u5141\u8bb8 libpq \u73af\u5883\u53d8\u91cf <a href=\"/docs/19/libpq-envars.html\" title=\"32.15.\u00a0\u73af\u5883\u53d8\u91cf\"><code>PGOAUTHDEBUG</code></a> \u6307\u5b9a\u5177\u4f53\u8c03\u8bd5\u9009\u9879\uff08Zsolt Parragi\uff0cJacob Champion\uff09<a href=\"https://postgr.es/c/6d00fb904\">\u00a7</a></p>\n<p><code>UNSAFE</code> \u9009\u9879\u4ecd\u4f1a\u751f\u6210\u5168\u90e8\u8c03\u8bd5\u8f93\u51fa\u3002</p>", "text": "\u5141\u8bb8 libpq \u73af\u5883\u53d8\u91cf PGOAUTHDEBUG \u6307\u5b9a\u5177\u4f53\u8c03\u8bd5\u9009\u9879\uff08Zsolt Parragi\uff0cJacob Champion\uff09\u00a7 UNSAFE \u9009\u9879\u4ecd\u4f1a\u751f\u6210\u5168\u90e8\u8c03\u8bd5\u8f93\u51fa\u3002", "title": "\u5141\u8bb8 libpq \u73af\u5883\u53d8\u91cf PGOAUTHDEBUG \u6307\u5b9a\u5177\u4f53\u8c03\u8bd5\u9009\u9879", "commits": ["6d00fb904"], "section": "Libpq", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LIBPQ", "source_hash": "af5c4aa6403b9d1bb74c20e1b4a06ecbe4ec6bbda588e0f8fc99e3e27cecb6e1", "section_path": ["Libpq"], "commit_groups": [["6d00fb904"]], "identity_text": "Allow libpq environment variable PGOAUTHDEBUG to specify particular debug options (Zsolt Parragi, Jacob Champion) The UNSAFE option still generates all debugging output.", "commit_aliases": ["6d00fb904"], "source_commits": ["6d00fb904"], "source_entry_id": "19.0/changes/119", "db_id": "ac594596bc1389c769f9ae799c786ec2", "patch_ids": ["8b76c436eb2fe30ae3510bdd034927b4"], "statement_hash": "884f800313f3dc3104168fe397c3398b3da261f97fc1294facefc62a24452bd7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-3d4f5dde8f72bd18", "migration": false}, {"id": "19.0-06a875925b7e1fe7", "cves": [], "html": "<p>\u6539\u8fdb\u81ea\u5b9a\u4e49 OAuth \u5ba2\u6237\u7aef\u6d41\u7a0b\uff08Jacob Champion\uff09<a href=\"https://postgr.es/c/e982331b5\">\u00a7</a> <a href=\"https://postgr.es/c/0af4d402c\">\u00a7</a></p>\n<p>\u6b64\u524d\uff0c\u81ea\u5b9a\u4e49\u6d41\u7a0b\u5931\u8d25\u65f6 libpq \u53ea\u62a5\u544a\u4e00\u6761\u901a\u7528\u9519\u8bef\u6d88\u606f\uff0c\u5e76\u4e14\u6bcf\u4e2a\u6d41\u7a0b\u5b9e\u73b0\u90fd\u5fc5\u987b\u72ec\u7acb\u8ba1\u7b97 issuer \u6807\u8bc6\u7b26\u3002\u65b0\u589e authdata \u94a9\u5b50\u7c7b\u578b <a href=\"/docs/19/libpq-oauth.html#LIBPQ-OAUTH-AUTHDATA-OAUTH-BEARER-TOKEN-V2\"><code>PQAUTHDATA_OAUTH_BEARER_TOKEN_V2</code></a>\uff0c\u5b83\u4f1a\u9884\u5148\u8ba1\u7b97 issuer ID\uff0c\u5e76\u5141\u8bb8\u94a9\u5b50\u63d0\u4f9b\u9519\u8bef\u7ec6\u8282\u3002</p>", "text": "\u6539\u8fdb\u81ea\u5b9a\u4e49 OAuth \u5ba2\u6237\u7aef\u6d41\u7a0b\uff08Jacob Champion\uff09\u00a7 \u00a7 \u6b64\u524d\uff0c\u81ea\u5b9a\u4e49\u6d41\u7a0b\u5931\u8d25\u65f6 libpq \u53ea\u62a5\u544a\u4e00\u6761\u901a\u7528\u9519\u8bef\u6d88\u606f\uff0c\u5e76\u4e14\u6bcf\u4e2a\u6d41\u7a0b\u5b9e\u73b0\u90fd\u5fc5\u987b\u72ec\u7acb\u8ba1\u7b97 issuer \u6807\u8bc6\u7b26\u3002\u65b0\u589e authdata \u94a9\u5b50\u7c7b\u578b PQAUTHDATA_OAUTH_BEARER_TOKEN_V2\uff0c\u5b83\u4f1a\u9884\u5148\u8ba1\u7b97 issuer ID\uff0c\u5e76\u5141\u8bb8\u94a9\u5b50\u63d0\u4f9b\u9519\u8bef\u7ec6\u8282\u3002", "title": "\u6539\u8fdb\u81ea\u5b9a\u4e49 OAuth \u5ba2\u6237\u7aef\u6d41\u7a0b", "commits": ["0af4d402c", "e982331b5"], "section": "Libpq", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LIBPQ", "source_hash": "6ac66c5f7a369dc3e0fd25d3fdb032276fb071d828527592c5b9c3b9fd4b2935", "section_path": ["Libpq"], "commit_groups": [["0af4d402c"], ["e982331b5"]], "identity_text": "Improve custom OAuth client flows (Jacob Champion) Previously, libpq reported only a generic error message during custom flow failures, and each flow implementation was required to calculate the issuer identifier independently. Add a new authdata hook type PQAUTHDATA_OAUTH_BEARER_TOKEN_V2 that precomputes the issuer ID and lets hooks provide error details.", "commit_aliases": ["0af4d402c", "e982331b5"], "source_commits": ["0af4d402c", "e982331b5"], "source_entry_id": "19.0/changes/120", "db_id": "6ecc8b12dde085c9b381da550d01abb7", "patch_ids": ["00cef603f69d2b87aaada4647479e1f9", "98992f20ad5f17c79ec1458bab01ed52"], "statement_hash": "e5cb1f3de5cbbecb22c3750566d0d74801fe5d7a4f74464cfb514d3c97326e20", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-06a875925b7e1fe7", "migration": false}, {"id": "19.0-2d877d014001d350", "cves": [], "html": "<p>\u65b0\u589e libpq \u51fd\u6570 <a href=\"/docs/19/libpq-threading.html\" title=\"32.21.\u00a0\u591a\u7ebf\u7a0b\u7a0b\u5e8f\u4e2d\u7684\u884c\u4e3a\"><code>PQgetThreadLock()</code></a>\uff0c\u7528\u4e8e\u83b7\u53d6\u5f53\u524d\u9501\u56de\u8c03\uff08Jacob Champion\uff09<a href=\"https://postgr.es/c/b8d768583\">\u00a7</a></p>", "text": "\u65b0\u589e libpq \u51fd\u6570 PQgetThreadLock()\uff0c\u7528\u4e8e\u83b7\u53d6\u5f53\u524d\u9501\u56de\u8c03\uff08Jacob Champion\uff09\u00a7", "title": "\u65b0\u589e libpq \u51fd\u6570 PQgetThreadLock()\uff0c\u7528\u4e8e\u83b7\u53d6\u5f53\u524d\u9501\u56de\u8c03", "commits": ["b8d768583"], "section": "Libpq", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LIBPQ", "source_hash": "b605e57baf7603c715fdd592105dd4dab4277da7891a18252729b60a8770f918", "section_path": ["Libpq"], "commit_groups": [["b8d768583"]], "identity_text": "Add libpq function PQgetThreadLock() to retrieve the current locking callback (Jacob Champion)", "commit_aliases": ["b8d768583"], "source_commits": ["b8d768583"], "source_entry_id": "19.0/changes/121", "db_id": "ddedf63a2aa70db34c67ca3ebfd0db4e", "patch_ids": ["2d7dd199d041254f4fabcbaee9bcaeda"], "statement_hash": "df92459494c7e653bc93f7bb1339e3e8ed5f706822a15207c7bb240dbc224e2f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-2d877d014001d350", "migration": false}, {"id": "19.0-798dbb9364a5d9c5", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a>\u901a\u8fc7 <a href=\"/docs/19/app-psql.html#app-psql-prompting-S\"><code>%S</code></a> \u5728\u63d0\u793a\u7b26\u4e2d\u663e\u793a search_path\uff08Florents Tselai\uff09<a href=\"https://postgr.es/c/b3ce55f41\">\u00a7</a></p>\n<p>\u8fd9\u5728<a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a>\u8fde\u63a5\u5230 <span>PostgreSQL</span> 18 \u6216\u66f4\u9ad8\u7248\u672c\u65f6\u6709\u6548\u3002</p>", "text": "\u5141\u8bb8psql\u901a\u8fc7 %S \u5728\u63d0\u793a\u7b26\u4e2d\u663e\u793a search_path\uff08Florents Tselai\uff09\u00a7 \u8fd9\u5728psql\u8fde\u63a5\u5230 PostgreSQL 18 \u6216\u66f4\u9ad8\u7248\u672c\u65f6\u6709\u6548\u3002", "title": "\u5141\u8bb8psql\u901a\u8fc7 %S \u5728\u63d0\u793a\u7b26\u4e2d\u663e\u793a search_path", "commits": ["b3ce55f41"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "eb5f3532cbd779ff0f91ab011cc454508ae5f01ff43500a5d8dbdaead990a9aa", "section_path": ["psql"], "commit_groups": [["b3ce55f41"]], "identity_text": "Allow the search path to appear in the psql prompt via %S (Florents Tselai) This works when psql is connected to PostgreSQL 18 or later.", "commit_aliases": ["b3ce55f41"], "source_commits": ["b3ce55f41"], "source_entry_id": "19.0/changes/122", "db_id": "4466a740b06e239e2c620ecf5068da5c", "patch_ids": ["d4c541bb14197ec33826096426a28019"], "statement_hash": "29ab507d60b9104abb3f9325a7f1d1a4f509977ce16eaad9324ac80a3893381b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-798dbb9364a5d9c5", "migration": false}, {"id": "19.0-2460a91e44effe22", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a>\u901a\u8fc7 <a href=\"/docs/19/app-psql.html#APP-PSQL-PROMPTING-I\"><code>%i</code></a> \u5728\u63d0\u793a\u7b26\u4e2d\u663e\u793a\u70ed\u5907\u72b6\u6001\uff08Jim Jones\uff09<a href=\"https://postgr.es/c/dddbbc253\">\u00a7</a></p>", "text": "\u5141\u8bb8psql\u901a\u8fc7 %i \u5728\u63d0\u793a\u7b26\u4e2d\u663e\u793a\u70ed\u5907\u72b6\u6001\uff08Jim Jones\uff09\u00a7", "title": "\u5141\u8bb8psql\u901a\u8fc7 %i \u5728\u63d0\u793a\u7b26\u4e2d\u663e\u793a\u70ed\u5907\u72b6\u6001", "commits": ["dddbbc253"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "4ee27cd0c8e43dcdc75cd47abd3566022326642e7543aa4c6dac416dc262bc37", "section_path": ["psql"], "commit_groups": [["dddbbc253"]], "identity_text": "Allow the hot standby status to appear in the psql prompt via %i (Jim Jones)", "commit_aliases": ["dddbbc253"], "source_commits": ["dddbbc253"], "source_entry_id": "19.0/changes/123", "db_id": "196935ab638708fd941313f1281c4614", "patch_ids": ["c3278efe621f1e6a7560cb87e94e80b8"], "statement_hash": "30d6f5876cda5388320afc117ed20c26e3157d5fb8b9946c8e7b404f8063b8ce", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-2460a91e44effe22", "migration": false}, {"id": "19.0-3a8967bead414fb3", "cves": [], "html": "<p>\u4fee\u6539<a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a>\u53cd\u659c\u6760\u547d\u4ee4\uff0c\u4ee5\u663e\u793a\u53d1\u5e03\u3001\u8ba2\u9605\u548c\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\u7684\u6ce8\u91ca\uff08Fujii Masao\uff0cJim Jones\uff09<a href=\"https://postgr.es/c/aecc55866\">\u00a7</a></p>\n<p>\u53d7\u5f71\u54cd\u7684\u547d\u4ee4\u4e3a <a href=\"/docs/19/app-psql.html#APP-PSQL-META-COMMAND-DRP\"><code>\\dRp+</code></a>\u3001<a href=\"/docs/19/app-psql.html#APP-PSQL-META-COMMAND-DRS\"><code>\\dRs+</code></a> \u548c <a href=\"/docs/19/app-psql.html#APP-PSQL-META-COMMAND-DX-UC\"><code>\\dX+</code></a>\u3002</p>", "text": "\u4fee\u6539psql\u53cd\u659c\u6760\u547d\u4ee4\uff0c\u4ee5\u663e\u793a\u53d1\u5e03\u3001\u8ba2\u9605\u548c\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\u7684\u6ce8\u91ca\uff08Fujii Masao\uff0cJim Jones\uff09\u00a7 \u53d7\u5f71\u54cd\u7684\u547d\u4ee4\u4e3a \\dRp+\u3001\\dRs+ \u548c \\dX+\u3002", "title": "\u4fee\u6539psql\u53cd\u659c\u6760\u547d\u4ee4\uff0c\u4ee5\u663e\u793a\u53d1\u5e03\u3001\u8ba2\u9605\u548c\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\u7684\u6ce8\u91ca", "commits": ["aecc55866"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "91afa6ca29fb34baaec7b7d09a3a233e6484f1bf689a8c2bbe4a622a56383e45", "section_path": ["psql"], "commit_groups": [["aecc55866"]], "identity_text": "Modify psql backslash commands to show comments for publications, subscriptions, and extended statistics (Fujii Masao, Jim Jones) The modified commands are \\dRp+, \\dRs+, and \\dX+.", "commit_aliases": ["aecc55866"], "source_commits": ["aecc55866"], "source_entry_id": "19.0/changes/124", "db_id": "a3c83cc4c02efda0036fe6bb03e51315", "patch_ids": ["b5bedc52f45dc20c8d04f9bb99aea7eb"], "statement_hash": "00c77457236fd72b2b76ec1b032b74a97a28c583a1e0e79d257503f53a6b5981", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-3a8967bead414fb3", "migration": false}, {"id": "19.0-0504fe22c816f685", "cves": [], "html": "<p>\u5141\u8bb8\u5728<a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a>\u4e2d\u63a7\u5236 boolean \u503c\u7684\u663e\u793a\u65b9\u5f0f\uff08David G. Johnston\uff09<a href=\"https://postgr.es/c/645cb44c5\">\u00a7</a></p>\n<p>\\pset \u53d8\u91cf\u4e3a <a href=\"/docs/19/app-psql.html#APP-PSQL-META-COMMAND-PSET-DISPLAY-TRUE\"><code>display_true</code></a> \u548c <a href=\"/docs/19/app-psql.html#APP-PSQL-META-COMMAND-PSET-DISPLAY-FALSE\"><code>display_false</code></a>\u3002</p>", "text": "\u5141\u8bb8\u5728psql\u4e2d\u63a7\u5236 boolean \u503c\u7684\u663e\u793a\u65b9\u5f0f\uff08David G. Johnston\uff09\u00a7 \\pset \u53d8\u91cf\u4e3a display_true \u548c display_false\u3002", "title": "\u5141\u8bb8\u5728psql\u4e2d\u63a7\u5236 boolean \u503c\u7684\u663e\u793a\u65b9\u5f0f", "commits": ["645cb44c5"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "beb0dcc1ce9fa6386f0bf0df30b2f8131d5dba42d4f4128c2cd6acbd8c982fdd", "section_path": ["psql"], "commit_groups": [["645cb44c5"]], "identity_text": "Allow control over how booleans are displayed in psql (David G. Johnston) The \\pset variables are display_true and display_false.", "commit_aliases": ["645cb44c5"], "source_commits": ["645cb44c5"], "source_entry_id": "19.0/changes/125", "db_id": "1f499376a57bb409ab9c3ca194a28e55", "patch_ids": ["8275ccc0647f8c3b783c82a9ee19ec6a"], "statement_hash": "848c2fa3fe2a386fd07c132b593ddb08856e7b2aaa15179ba62118576afbbbcc", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-0504fe22c816f685", "migration": false}, {"id": "19.0-b591570d95f66bcf", "cves": [], "html": "<p>\u65b0\u589e<a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a>\u53d8\u91cf <a href=\"/docs/19/app-psql.html#APP-PSQL-VARIABLES-SERVICEFILE\"><code>SERVICEFILE</code></a>\uff0c\u7528\u4e8e\u5f15\u7528\u670d\u52a1\u6587\u4ef6\u4f4d\u7f6e\uff08Ryo Kanbayashi\uff09<a href=\"https://postgr.es/c/6b1c4d326\">\u00a7</a></p>", "text": "\u65b0\u589epsql\u53d8\u91cf SERVICEFILE\uff0c\u7528\u4e8e\u5f15\u7528\u670d\u52a1\u6587\u4ef6\u4f4d\u7f6e\uff08Ryo Kanbayashi\uff09\u00a7", "title": "\u65b0\u589epsql\u53d8\u91cf SERVICEFILE\uff0c\u7528\u4e8e\u5f15\u7528\u670d\u52a1\u6587\u4ef6\u4f4d\u7f6e", "commits": ["6b1c4d326"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "8759fefabd3a164e20abe195820b4c061ac5623fd471958e640ba0662f894fd0", "section_path": ["psql"], "commit_groups": [["6b1c4d326"]], "identity_text": "Add psql variable SERVICEFILE to reference the service file location (Ryo Kanbayashi)", "commit_aliases": ["6b1c4d326"], "source_commits": ["6b1c4d326"], "source_entry_id": "19.0/changes/126", "db_id": "dc88adffd4fb147f372dbb854b8ef946", "patch_ids": ["f34b2c4e36e82aaed089f9240a655205"], "statement_hash": "b09c8b54ff77de8077e6cbdac02298264ce621d60531bf5d7cc279d44e5bdb63", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-b591570d95f66bcf", "migration": false}, {"id": "19.0-c9aa3d8c8674408e", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a>\u66f4\u51c6\u786e\u5730\u5224\u65ad\u662f\u5426\u9700\u8981 <a href=\"/docs/19/app-psql.html#APP-PSQL-META-COMMAND-PSET-PAGER\">pager</a>\uff08Erik Wienhold\uff09<a href=\"https://postgr.es/c/27da1a796\">\u00a7</a></p>", "text": "\u5141\u8bb8psql\u66f4\u51c6\u786e\u5730\u5224\u65ad\u662f\u5426\u9700\u8981 pager\uff08Erik Wienhold\uff09\u00a7", "title": "\u5141\u8bb8psql\u66f4\u51c6\u786e\u5730\u5224\u65ad\u662f\u5426\u9700\u8981 pager", "commits": ["27da1a796"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "6113bc7d5ac6ce6ca3017852451a83f7de3864887d5c08b7bf602891fe727aff", "section_path": ["psql"], "commit_groups": [["27da1a796"]], "identity_text": "Allow psql to more accurately determine if the pager is needed (Erik Wienhold)", "commit_aliases": ["27da1a796"], "source_commits": ["27da1a796"], "source_entry_id": "19.0/changes/127", "db_id": "43e3e5f1ede31bcf04563b5afcfc3a00", "patch_ids": ["d124a0f76abfa8b4a074a31702b32a98"], "statement_hash": "a13e94bf03e181e5e1b6f290cacb01a36ec07870dc5f606fcf6f13b4a604c26f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-c9aa3d8c8674408e", "migration": false}, {"id": "19.0-cc1e794ef5a081a8", "cves": [], "html": "<p>\u65b0\u589e\u6216\u6539\u8fdb <a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a> tab completion\uff08Yamaguchi Atsuo\uff0cYugo Nagata\uff0cHaruna Miwa\uff0cXuneng Zhou\uff0cDagfinn Ilmari Manns\u00e5ker\uff0cFujii Masao\uff0c\u00c1lvaro Herrera\uff0cJian He\uff0cTatsuya Kawata\uff0cIan Lawrence Barwick\uff0cVasuki M\uff09<a href=\"https://postgr.es/c/5fa7837d9\">\u00a7</a><a href=\"https://postgr.es/c/c6a7d3bab\">\u00a7</a><a href=\"https://postgr.es/c/81966c545\">\u00a7</a><a href=\"https://postgr.es/c/a1f7f91be\">\u00a7</a><a href=\"https://postgr.es/c/6d2ff1de4\">\u00a7</a><a href=\"https://postgr.es/c/02fd47dbf\">\u00a7</a><a href=\"https://postgr.es/c/14ee8e640\">\u00a7</a><a href=\"https://postgr.es/c/ff0bcb248\">\u00a7</a><a href=\"https://postgr.es/c/86c539c5a\">\u00a7</a><a href=\"https://postgr.es/c/a604affad\">\u00a7</a><a href=\"https://postgr.es/c/a4c10de92\">\u00a7</a><a href=\"https://postgr.es/c/28c4b8a05\">\u00a7</a><a href=\"https://postgr.es/c/0bf7d4ca9\">\u00a7</a><a href=\"https://postgr.es/c/344b572e3\">\u00a7</a></p>", "text": "\u65b0\u589e\u6216\u6539\u8fdb psql tab completion\uff08Yamaguchi Atsuo\uff0cYugo Nagata\uff0cHaruna Miwa\uff0cXuneng Zhou\uff0cDagfinn Ilmari Manns\u00e5ker\uff0cFujii Masao\uff0c\u00c1lvaro Herrera\uff0cJian He\uff0cTatsuya Kawata\uff0cIan Lawrence Barwick\uff0cVasuki M\uff09\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7\u00a7", "title": "\u65b0\u589e\u6216\u6539\u8fdb psql tab completion", "commits": ["02fd47dbf", "0bf7d4ca9", "14ee8e640", "28c4b8a05", "344b572e3", "5fa7837d9", "6d2ff1de4", "81966c545", "86c539c5a", "a1f7f91be", "a4c10de92", "a604affad", "c6a7d3bab", "ff0bcb248"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "495b95f24035b18e959b7118e2b2bccc2eac97e31f678879bc2b7bd96b5a84b7", "section_path": ["psql"], "commit_groups": [["02fd47dbf"], ["0bf7d4ca9"], ["14ee8e640"], ["28c4b8a05"], ["344b572e3"], ["5fa7837d9"], ["6d2ff1de4"], ["81966c545"], ["86c539c5a"], ["a1f7f91be"], ["a4c10de92"], ["a604affad"], ["c6a7d3bab"], ["ff0bcb248"]], "identity_text": "Add or improve psql tab completion (Yamaguchi Atsuo, Yugo Nagata, Haruna Miwa, Xuneng Zhou, Dagfinn Ilmari Manns\u00e5ker, Fujii Masao, \u00c1lvaro Herrera, Jian He, Tatsuya Kawata, Ian Lawrence Barwick, Vasuki M)", "commit_aliases": ["02fd47dbf", "0bf7d4ca9", "14ee8e640", "28c4b8a05", "344b572e3", "5fa7837d9", "6d2ff1de4", "81966c545", "86c539c5a", "a1f7f91be", "a4c10de92", "a604affad", "c6a7d3bab", "ff0bcb248"], "source_commits": ["02fd47dbf", "0bf7d4ca9", "14ee8e640", "28c4b8a05", "344b572e3", "5fa7837d9", "6d2ff1de4", "81966c545", "86c539c5a", "a1f7f91be", "a4c10de92", "a604affad", "c6a7d3bab", "ff0bcb248"], "source_entry_id": "19.0/changes/128", "db_id": "97b6d1cb2b1c6f790e1ee0cc68c428f3", "patch_ids": ["0bc376509890d77647e587ceff1a09ea", "17bff6ec871538f49e658de435f132b7", "20909bee90f1612ca703976d25da4fe7", "5d94de103f4f8fbf41a27b4cf4c56f09", "5f74e7e5145fefdaedfb976ffce67bea", "83ce67d04ac574e86d5bea046edd389e", "aa13c523c0813d34b174efdf29f499ba", "b77a4036f7f23cf20f825245c8da3348", "d46cb2f27b79e74e5030f415873eafca", "d730e4d79557c79705494268a9a195de", "d780ef56bcb3d7ffef09b3cd3188438c", "dd8cde8962ab3420bca932e3d29ff31e", "dfa561fff55c8cf24ddb85664a222972", "fc29e1c27292cc71b84d0ad33579447a"], "statement_hash": "475b3b6334690493954256eb56aa5edf61bc1bf14ac662ca4097554f0d2af294", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-cc1e794ef5a081a8", "migration": false}, {"id": "19.0-271300414b015f9c", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>\u5305\u542b\u53ef\u6062\u590d\u7684\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\uff08Corey Huinker\uff09<a href=\"https://postgr.es/c/c32fb29e9\">\u00a7</a></p>", "text": "\u5141\u8bb8pg_dump\u5305\u542b\u53ef\u6062\u590d\u7684\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f\uff08Corey Huinker\uff09\u00a7", "title": "\u5141\u8bb8pg_dump\u5305\u542b\u53ef\u6062\u590d\u7684\u6269\u5c55\u7edf\u8ba1\u4fe1\u606f", "commits": ["c32fb29e9"], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "6ca6a86204b38f89701c818931a87384b23bb50800f7e3a4dbbde81fa20ea8d1", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["c32fb29e9"]], "identity_text": "Allow pg_dump to include restorable extended statistics (Corey Huinker)", "commit_aliases": ["c32fb29e9"], "source_commits": ["c32fb29e9"], "source_entry_id": "19.0/changes/129", "db_id": "78d7e5131c9e75e325718e7303eaa2ea", "patch_ids": ["0b859504d22f7cc1b13d7fa79360cc6a"], "statement_hash": "f3f31769f227a28a98d92dafef24df40353e3f436ee4ffc6e62a6288b14a61e4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-271300414b015f9c", "migration": false}, {"id": "19.0-eff7a6e278961031", "cves": [], "html": "<p>\u4fee\u6539<a href=\"/docs/19/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a>\u7684 <code>--analyze-only</code> \u548c <code>--analyze-in-stages</code> \u9009\u9879\uff0c\u4f7f\u5176\u5728\u672a\u6307\u5b9a\u76ee\u6807\u65f6\u4e5f\u5206\u6790\u5206\u533a\u8868\uff08Laurenz Albe\uff0cMircea Cadariu\uff0cChao Li\uff09<a href=\"https://postgr.es/c/6429e5b77\">\u00a7</a> <a href=\"https://postgr.es/c/95b6ec52e\">\u00a7</a></p>\n<p>\u6b64\u524d\u5b83\u4f1a\u8df3\u8fc7\u5206\u533a\u8868\u3002\u73b0\u5728\u5176\u884c\u4e3a\u4e0e <a href=\"/docs/19/sql-analyze.html\" title=\"ANALYZE\"><code>ANALYZE</code></a> \u4e00\u81f4\u3002</p>", "text": "\u4fee\u6539vacuumdb\u7684 --analyze-only \u548c --analyze-in-stages \u9009\u9879\uff0c\u4f7f\u5176\u5728\u672a\u6307\u5b9a\u76ee\u6807\u65f6\u4e5f\u5206\u6790\u5206\u533a\u8868\uff08Laurenz Albe\uff0cMircea Cadariu\uff0cChao Li\uff09\u00a7 \u00a7 \u6b64\u524d\u5b83\u4f1a\u8df3\u8fc7\u5206\u533a\u8868\u3002\u73b0\u5728\u5176\u884c\u4e3a\u4e0e ANALYZE \u4e00\u81f4\u3002", "title": "\u4fee\u6539vacuumdb\u7684 --analyze-only \u548c --analyze-in-stages \u9009\u9879\uff0c\u4f7f\u5176\u5728\u672a\u6307\u5b9a\u76ee\u6807\u65f6\u4e5f\u5206\u6790\u5206\u533a\u8868", "commits": ["6429e5b77", "95b6ec52e"], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "8a9c99d236906094b60b9c71b824e85f2b9ec8b6d1a5497ff9669c1638f49af8", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["6429e5b77"], ["95b6ec52e"]], "identity_text": "Change vacuumdb's --analyze-only and --analyze-in-stages options to analyze partitioned tables when no targets are specified (Laurenz Albe, Mircea Cadariu, Chao Li) Previously it skipped partitioned tables. This now matches the behavior of ANALYZE.", "commit_aliases": ["6429e5b77", "95b6ec52e"], "source_commits": ["6429e5b77", "95b6ec52e"], "source_entry_id": "19.0/changes/130", "db_id": "75d75ff616801d25916149b8c1a0fc78", "patch_ids": ["206a5afd9378226013b2588fa2e94d9a", "46eb2ddf37532fd1958b94f506a70e82"], "statement_hash": "f312d0618d845148fcffe6013a8511fb2fcfb024c7a45bac899a77a3e067de8c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-eff7a6e278961031", "migration": false}, {"id": "19.0-639bf09de2c1d14f", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a>\u4f7f\u7528 <code>--dry-run</code> \u9009\u9879\u62a5\u544a\u5c06\u8981\u6267\u884c\u7684\u547d\u4ee4\u800c\u4e0d\u5b9e\u9645\u8fd0\u884c\uff08Corey Huinker\uff09<a href=\"https://postgr.es/c/d107176d2\">\u00a7</a></p>", "text": "\u5141\u8bb8vacuumdb\u4f7f\u7528 --dry-run \u9009\u9879\u62a5\u544a\u5c06\u8981\u6267\u884c\u7684\u547d\u4ee4\u800c\u4e0d\u5b9e\u9645\u8fd0\u884c\uff08Corey Huinker\uff09\u00a7", "title": "\u5141\u8bb8vacuumdb\u4f7f\u7528 --dry-run \u9009\u9879\u62a5\u544a\u5c06\u8981\u6267\u884c\u7684\u547d\u4ee4\u800c\u4e0d\u5b9e\u9645\u8fd0\u884c", "commits": ["d107176d2"], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "51247e37eaed27858507257407d7d68386869e9e93dbe596c0816437631bfe6d", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["d107176d2"]], "identity_text": "Allow vacuumdb to report its commands without running them using option --dry-run (Corey Huinker)", "commit_aliases": ["d107176d2"], "source_commits": ["d107176d2"], "source_entry_id": "19.0/changes/131", "db_id": "9cd3c254264231befe4336fd58aaedce", "patch_ids": ["ed5a0bc25a94a928543ceaa0c1372881"], "statement_hash": "08f47efe32b5299c72e7c64a41a3147848e2c97fc119f83b7fc4b2a373087d9b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-639bf09de2c1d14f", "migration": false}, {"id": "19.0-e7049fa3bfe5ad39", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/app-pgverifybackup.html\" title=\"pg_verifybackup\"><span>pg_verifybackup</span></a>\u8bfb\u53d6 <acronym>WAL</acronym> \u6587\u4ef6\uff0c\u8fd9\u4e9b\u6587\u4ef6\u5b58\u50a8\u5728 <span>tar</span> \u5f52\u6863\u4e2d\uff08Amul Sul\uff09<a href=\"https://postgr.es/c/b3cf461b3\">\u00a7</a></p>\n<p>\u65b0\u589e <code>--wal-path</code> \u9009\u9879\uff0c\u4f5c\u4e3a\u73b0\u6709\u4e14\u5df2\u5f03\u7528\u7684 <code>--wal-directory</code> \u9009\u9879\u7684\u522b\u540d\u3002</p>", "text": "\u5141\u8bb8pg_verifybackup\u8bfb\u53d6 WAL \u6587\u4ef6\uff0c\u8fd9\u4e9b\u6587\u4ef6\u5b58\u50a8\u5728 tar \u5f52\u6863\u4e2d\uff08Amul Sul\uff09\u00a7 \u65b0\u589e --wal-path \u9009\u9879\uff0c\u4f5c\u4e3a\u73b0\u6709\u4e14\u5df2\u5f03\u7528\u7684 --wal-directory \u9009\u9879\u7684\u522b\u540d\u3002", "title": "\u5141\u8bb8pg_verifybackup\u8bfb\u53d6 WAL \u6587\u4ef6\uff0c\u8fd9\u4e9b\u6587\u4ef6\u5b58\u50a8\u5728 tar \u5f52\u6863\u4e2d", "commits": ["b3cf461b3"], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "152a0eb4b71851087fd91182811f32f9ceb770cc929890a745da5fcf8e421cea", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["b3cf461b3"]], "identity_text": "Allow pg_verifybackup to read WAL files stored in tar archives (Amul Sul) Add option --wal-path as an alias for the existing and deprecated --wal-directory option.", "commit_aliases": ["b3cf461b3"], "source_commits": ["b3cf461b3"], "source_entry_id": "19.0/changes/132", "db_id": "cf41cf8ce513c39a42f3f8b5393fdc5a", "patch_ids": ["95ace84ab191d73f122583aaf81e4a39"], "statement_hash": "65532310468cbba220d1c146fbd7ca9eda74c500bce9229ba305dcf90366a61c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-e7049fa3bfe5ad39", "migration": false}, {"id": "19.0-a4b0a0ed2c4f28e0", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/pgwaldump.html\" title=\"pg_waldump\"><span>pg_waldump</span></a>\u8bfb\u53d6 <acronym>WAL</acronym> \u6587\u4ef6\uff0c\u8fd9\u4e9b\u6587\u4ef6\u5b58\u50a8\u5728 <span>tar</span> \u5f52\u6863\u4e2d\uff08Amul Sul\uff09<a href=\"https://postgr.es/c/b15c15139\">\u00a7</a></p>", "text": "\u5141\u8bb8pg_waldump\u8bfb\u53d6 WAL \u6587\u4ef6\uff0c\u8fd9\u4e9b\u6587\u4ef6\u5b58\u50a8\u5728 tar \u5f52\u6863\u4e2d\uff08Amul Sul\uff09\u00a7", "title": "\u5141\u8bb8pg_waldump\u8bfb\u53d6 WAL \u6587\u4ef6\uff0c\u8fd9\u4e9b\u6587\u4ef6\u5b58\u50a8\u5728 tar \u5f52\u6863\u4e2d", "commits": ["b15c15139"], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "b8cf5baef678a4e3da97aa8de3e112c0551aebbf2682769c06bdc73145af80db", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["b15c15139"]], "identity_text": "Allow pg_waldump to read WAL files stored in tar archives (Amul Sul)", "commit_aliases": ["b15c15139"], "source_commits": ["b15c15139"], "source_entry_id": "19.0/changes/133", "db_id": "26b120f585dba2fb962357e8d46071d0", "patch_ids": ["92f9b79fdf9fb78ee70b0f2530d7a299"], "statement_hash": "01980c4fea242c3b9a2657c22f50ad9f2d747e98d8906b05f5f3afe7a3695dcf", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-a4b0a0ed2c4f28e0", "migration": false}, {"id": "19.0-da142b49c8435f89", "cves": [], "html": "<p>\u6539\u8fdb<a href=\"/docs/19/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a>\u590d\u5236\u5927\u5bf9\u8c61\u5143\u6570\u636e\u7684\u6027\u80fd\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/3bcfcd815\">\u00a7</a> <a href=\"https://postgr.es/c/158408fef\">\u00a7</a> <a href=\"https://postgr.es/c/161a3e8b6\">\u00a7</a> <a href=\"https://postgr.es/c/b33f75361\">\u00a7</a></p>\n<p>\u6839\u636e\u65e7\u96c6\u7c07\u7684 <span>PostgreSQL</span> \u7248\u672c\u91c7\u7528\u4e0d\u540c\u7684\u65b9\u6cd5\u3002</p>", "text": "\u6539\u8fdbpg_upgrade\u590d\u5236\u5927\u5bf9\u8c61\u5143\u6570\u636e\u7684\u6027\u80fd\uff08Nathan Bossart\uff09\u00a7 \u00a7 \u00a7 \u00a7 \u6839\u636e\u65e7\u96c6\u7c07\u7684 PostgreSQL \u7248\u672c\u91c7\u7528\u4e0d\u540c\u7684\u65b9\u6cd5\u3002", "title": "\u6539\u8fdbpg_upgrade\u590d\u5236\u5927\u5bf9\u8c61\u5143\u6570\u636e\u7684\u6027\u80fd", "commits": ["158408fef", "161a3e8b6", "3bcfcd815", "b33f75361"], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "af8eba51ecfd578bf49b397150547b6ceef9cc6f218b52642cecc6913fe6b668", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["158408fef"], ["161a3e8b6"], ["3bcfcd815"], ["b33f75361"]], "identity_text": "Improve performance of pg_upgrade copying large object metadata (Nathan Bossart) Various methods are used, depending on the PostgreSQL version of the old cluster.", "commit_aliases": ["158408fef", "161a3e8b6", "3bcfcd815", "b33f75361"], "source_commits": ["158408fef", "161a3e8b6", "3bcfcd815", "b33f75361"], "source_entry_id": "19.0/changes/134", "db_id": "517bfb3f77fd3acc072ccfba83e23dc6", "patch_ids": ["12303ac15e78d39ab08e08ef243d950f", "6b265e25bb8e570015fb349cb57ed5a2", "af863f0d10fe9b397f2bad7e617549a6", "b59ae2604f73a158d4be254f1a275c5a"], "statement_hash": "06a2c858c3b814a3156920f43ab30f49a697eb76b8ddbc130b7c2979bd289b17", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-da142b49c8435f89", "migration": false}, {"id": "19.0-5998f40c7ea66a08", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a>\u5904\u7406\u5b58\u653e\u5728 <code>PGDATA</code> \u76ee\u5f55\u4e2d\u7684\u975e\u9ed8\u8ba4\u8868\u7a7a\u95f4\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/412036c22\">\u00a7</a></p>\n<p>\u6b64\u524d\u8fd9\u7c7b\u8868\u7a7a\u95f4\u4f1a\u62a5\u9519\u3002</p>", "text": "\u5141\u8bb8pg_upgrade\u5904\u7406\u5b58\u653e\u5728 PGDATA \u76ee\u5f55\u4e2d\u7684\u975e\u9ed8\u8ba4\u8868\u7a7a\u95f4\uff08Nathan Bossart\uff09\u00a7 \u6b64\u524d\u8fd9\u7c7b\u8868\u7a7a\u95f4\u4f1a\u62a5\u9519\u3002", "title": "\u5141\u8bb8pg_upgrade\u5904\u7406\u5b58\u653e\u5728 PGDATA \u76ee\u5f55\u4e2d\u7684\u975e\u9ed8\u8ba4\u8868\u7a7a\u95f4", "commits": ["412036c22"], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "592ff08a676cac43e7edd0ada529d5be76b35911fd8b8fb0c85ca8d3182e1149", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["412036c22"]], "identity_text": "Allow pg_upgrade to process non-default tablespaces stored in the PGDATA directory (Nathan Bossart) Previously such tablespaces generated an error.", "commit_aliases": ["412036c22"], "source_commits": ["412036c22"], "source_entry_id": "19.0/changes/135", "db_id": "94dc0d22eae08afaf59f319b80e0628c", "patch_ids": ["1415dad8d3e913c3a3c2d8b913236a6f"], "statement_hash": "14415cbc76aeb007ed68c6488af8453f7d87555212a2eda42239a43446936837", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-5998f40c7ea66a08", "migration": false}, {"id": "19.0-610e0e3d00fc883f", "cves": [], "html": "<p>\u65b0\u589e<a href=\"/docs/19/pgbench.html\" title=\"pgbench\"><span>pgbench</span></a>\u9009\u9879 <code>--continue-on-error</code>\uff0c\u4ee5\u5728 <acronym>SQL</acronym> \u9519\u8bef\u540e\u7ee7\u7eed\u6267\u884c\uff08Rintaro Ikeda\uff0cYugo Nagata\uff0cFujii Masao\uff09<a href=\"https://postgr.es/c/0ab208fa5\">\u00a7</a></p>", "text": "\u65b0\u589epgbench\u9009\u9879 --continue-on-error\uff0c\u4ee5\u5728 SQL \u9519\u8bef\u540e\u7ee7\u7eed\u6267\u884c\uff08Rintaro Ikeda\uff0cYugo Nagata\uff0cFujii Masao\uff09\u00a7", "title": "\u65b0\u589epgbench\u9009\u9879 --continue-on-error\uff0c\u4ee5\u5728 SQL \u9519\u8bef\u540e\u7ee7\u7eed\u6267\u884c", "commits": ["0ab208fa5"], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "bce8cd35f7c235059034552c785a9bd38587ab1cf00ae94a211bcda100459c10", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["0ab208fa5"]], "identity_text": "Add pgbench option --continue-on-error to continue after SQL errors (Rintaro Ikeda, Yugo Nagata, Fujii Masao)", "commit_aliases": ["0ab208fa5"], "source_commits": ["0ab208fa5"], "source_entry_id": "19.0/changes/136", "db_id": "e6ca5ac89580353d35ab9cbf10afc29f", "patch_ids": ["1804cc177d858e5d988c5b73969fd888"], "statement_hash": "0ff23dd6c689d67915d281c3b62b24ab71ac7926fb8b845452530892169a1c87", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-610e0e3d00fc883f", "migration": false}, {"id": "19.0-469feae3fd6ffa0c", "cves": [], "html": "<p>\u6539\u8fdb<a href=\"/docs/19/pgtesttiming.html\" title=\"pg_test_timing\"><span>pg_test_timing</span></a>\u7684\u53ef\u7528\u6027\uff08Hannu Krosing\uff0cTom Lane\uff09<a href=\"https://postgr.es/c/0b096e379\">\u00a7</a><a href=\"https://postgr.es/c/9dcc76414\">\u00a7</a></p>\n<p>\u73b0\u5728\u62a5\u544a\u7eb3\u79d2\u800c\u4e0d\u662f\u5fae\u79d2\uff1b\u9664\u76f4\u65b9\u56fe\u8f93\u51fa\u5916\uff0c\u8fd8\u4f1a\u8f93\u51fa\u7b2c\u4e8c\u5f20\u7cbe\u786e\u8ba1\u65f6\u8868\uff0c\u5e76\u53ef\u901a\u8fc7 <code>--cutoff</code> \u6307\u5b9a\u53ef\u9009\u622a\u65ad\u3002</p>", "text": "\u6539\u8fdbpg_test_timing\u7684\u53ef\u7528\u6027\uff08Hannu Krosing\uff0cTom Lane\uff09\u00a7\u00a7 \u73b0\u5728\u62a5\u544a\u7eb3\u79d2\u800c\u4e0d\u662f\u5fae\u79d2\uff1b\u9664\u76f4\u65b9\u56fe\u8f93\u51fa\u5916\uff0c\u8fd8\u4f1a\u8f93\u51fa\u7b2c\u4e8c\u5f20\u7cbe\u786e\u8ba1\u65f6\u8868\uff0c\u5e76\u53ef\u901a\u8fc7 --cutoff \u6307\u5b9a\u53ef\u9009\u622a\u65ad\u3002", "title": "\u6539\u8fdbpg_test_timing\u7684\u53ef\u7528\u6027", "commits": ["0b096e379", "9dcc76414"], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "50f6e632466fd5ec32628c8af04deeb92b815c84ea9f450dbce38014f93196e0", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [["0b096e379"], ["9dcc76414"]], "identity_text": "Improve the usability of pg_test_timing (Hannu Krosing, Tom Lane) Report nanoseconds instead of microseconds. In addition to histogram output, output a second table that reports exact timings, with an optional cutoff set by --cutoff.", "commit_aliases": ["0b096e379", "9dcc76414"], "source_commits": ["0b096e379", "9dcc76414"], "source_entry_id": "19.0/changes/137", "db_id": "57f9d08feb979257d3e57027ab281685", "patch_ids": ["9ca940a92cce25756a9ac202704e02f9", "d8d660705cee2d07cb4d15eca1d78f03"], "statement_hash": "29d32531cc204fe26d21ef78195d6c690edce909cea86e2375e05852cd3a240b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-469feae3fd6ffa0c", "migration": false}, {"id": "19.0-806e3e9b5e2d4521", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/app-pgcreatesubscriber.html\" title=\"pg_createsubscriber\"><span>pg_createsubscriber</span></a>\u5ffd\u7565\u5df2\u5b58\u5728\u7684\u6307\u5b9a\u53d1\u5e03\uff08Shubham Khanna\uff09<a href=\"https://postgr.es/c/85ddcc2f4\">\u00a7</a></p>\n<p>\u6b64\u524d\u8fd9\u4f1a\u62a5\u9519\u3002</p>", "text": "\u5141\u8bb8pg_createsubscriber\u5ffd\u7565\u5df2\u5b58\u5728\u7684\u6307\u5b9a\u53d1\u5e03\uff08Shubham Khanna\uff09\u00a7 \u6b64\u524d\u8fd9\u4f1a\u62a5\u9519\u3002", "title": "\u5141\u8bb8pg_createsubscriber\u5ffd\u7565\u5df2\u5b58\u5728\u7684\u6307\u5b9a\u53d1\u5e03", "commits": ["85ddcc2f4"], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_createsubscriber", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PG-CREATESUBSCRIBER", "source_hash": "5c6984ff3a33e0bcf90232fd3ec4d124c2edc47adc816db34e2cd22cb8f47d6b", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_createsubscriber"], "commit_groups": [["85ddcc2f4"]], "identity_text": "Allow pg_createsubscriber to ignore specified publications that already exist (Shubham Khanna) Previously this generated an error.", "commit_aliases": ["85ddcc2f4"], "source_commits": ["85ddcc2f4"], "source_entry_id": "19.0/changes/138", "db_id": "fe876660872e5113d1a8dfb5ab611340", "patch_ids": ["0b2cf2db89fc3d41057099f6d3df1807"], "statement_hash": "b3e8a144306f7c0989bbb4fe466e25d2600f15677c63a4ccb3f2ec43a0224d69", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-806e3e9b5e2d4521", "migration": false}, {"id": "19.0-13c9336e77f751b7", "cves": [], "html": "<p>\u66f4\u6539<a href=\"/docs/19/app-pgcreatesubscriber.html\" title=\"pg_createsubscriber\"><span>pg_createsubscriber</span></a>\u5b58\u50a8\u6062\u590d\u53c2\u6570\u7684\u65b9\u5f0f\uff08Alyona Vinter\uff09<a href=\"https://postgr.es/c/639352d90\">\u00a7</a></p>\n<p>\u53d8\u66f4\u4f1a\u5b58\u653e\u5728\u53ef\u9009\u5305\u542b\u7684 <code>pg_createsubscriber.conf</code> \u4e2d\uff0c\u800c\u4e0d\u662f\u76f4\u63a5\u5199\u5165 <code>postgresql.auto.conf</code>\u3002</p>", "text": "\u66f4\u6539pg_createsubscriber\u5b58\u50a8\u6062\u590d\u53c2\u6570\u7684\u65b9\u5f0f\uff08Alyona Vinter\uff09\u00a7 \u53d8\u66f4\u4f1a\u5b58\u653e\u5728\u53ef\u9009\u5305\u542b\u7684 pg_createsubscriber.conf \u4e2d\uff0c\u800c\u4e0d\u662f\u76f4\u63a5\u5199\u5165 postgresql.auto.conf\u3002", "title": "\u66f4\u6539pg_createsubscriber\u5b58\u50a8\u6062\u590d\u53c2\u6570\u7684\u65b9\u5f0f", "commits": ["639352d90"], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_createsubscriber", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PG-CREATESUBSCRIBER", "source_hash": "7f142e9c8dd2763369d270479690d9054bcaf935b3e01d260d5855f03523cee3", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_createsubscriber"], "commit_groups": [["639352d90"]], "identity_text": "Change the way pg_createsubscriber stores recovery parameters (Alyona Vinter) Changes are stored in optionally-included pg_createsubscriber.conf rather than directly in postgresql.auto.conf.", "commit_aliases": ["639352d90"], "source_commits": ["639352d90"], "source_entry_id": "19.0/changes/139", "db_id": "98b1b4351ee153f8cd3e73f82c1e532b", "patch_ids": ["919a6bd119819b55650be21ac7457dbc"], "statement_hash": "ac095afa080c3ef38d5c69c923919ec20501864dad35264027ba8c391b392dfd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-13c9336e77f751b7", "migration": false}, {"id": "19.0-e5d4674a36af1f85", "cves": [], "html": "<p>\u65b0\u589e<a href=\"/docs/19/app-pgcreatesubscriber.html\" title=\"pg_createsubscriber\"><span>pg_createsubscriber</span></a>\u9009\u9879 <code>-l</code>/<code>--logdir</code>\uff0c\u7528\u4e8e\u628a\u8f93\u51fa\u91cd\u5b9a\u5411\u5230\u6587\u4ef6\uff08Gyan Sreejith\uff0cHayato Kuroda\uff09<a href=\"https://postgr.es/c/6b5b7eae3\">\u00a7</a></p>", "text": "\u65b0\u589epg_createsubscriber\u9009\u9879 -l/--logdir\uff0c\u7528\u4e8e\u628a\u8f93\u51fa\u91cd\u5b9a\u5411\u5230\u6587\u4ef6\uff08Gyan Sreejith\uff0cHayato Kuroda\uff09\u00a7", "title": "\u65b0\u589epg_createsubscriber\u9009\u9879 -l/--logdir\uff0c\u7528\u4e8e\u628a\u8f93\u51fa\u91cd\u5b9a\u5411\u5230\u6587\u4ef6", "commits": ["6b5b7eae3"], "section": "\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f / pg_createsubscriber", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PG-CREATESUBSCRIBER", "source_hash": "2415d1a4ae6995446a344fbc1f937c15cb89e3aefbd4a6d2bb9fcca7f17bf7d6", "section_path": ["\u670d\u52a1\u5668\u5e94\u7528\u7a0b\u5e8f", "pg_createsubscriber"], "commit_groups": [["6b5b7eae3"]], "identity_text": "Add pg_createsubscriber option -l/--logdir to redirect output to files (Gyan Sreejith, Hayato Kuroda)", "commit_aliases": ["6b5b7eae3"], "source_commits": ["6b5b7eae3"], "source_entry_id": "19.0/changes/140", "db_id": "d4045a5406f20edd80f4afb36641ff8d", "patch_ids": ["5ca4f034f954037d65826fbb18f304c7"], "statement_hash": "8bcfb97ab19aabb6e16e2c01ca080c96600c1f793f48c7ee4053b21ea39c66ea", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-e5d4674a36af1f85", "migration": false}, {"id": "19.0-f053d1114562a1f8", "cves": [], "html": "<p>\u6062\u590d\u5bf9 <a href=\"/docs/19/installation-platform-notes.html#INSTALLATION-NOTES-AIX\" title=\"17.7.1.\u00a0AIX\"><span>AIX</span></a> \u7684\u652f\u6301\uff08Aditya Kamath\uff0cSrirama Kucherlapati\uff0cPeter Eisentraut\uff09<a href=\"https://postgr.es/c/ecae09725\">\u00a7</a><a href=\"https://postgr.es/c/4a1b05caa\">\u00a7</a></p>\n<p>\u8fd9\u4f7f\u7528 <span>gcc</span>\uff0c\u5e76\u4e14\u53ea\u652f\u6301 64 \u4f4d\u6784\u5efa\u3002</p>", "text": "\u6062\u590d\u5bf9 AIX \u7684\u652f\u6301\uff08Aditya Kamath\uff0cSrirama Kucherlapati\uff0cPeter Eisentraut\uff09\u00a7\u00a7 \u8fd9\u4f7f\u7528 gcc\uff0c\u5e76\u4e14\u53ea\u652f\u6301 64 \u4f4d\u6784\u5efa\u3002", "title": "\u6062\u590d\u5bf9 AIX \u7684\u652f\u6301", "commits": ["4a1b05caa", "ecae09725"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "b4463b153233af21d597be4fcbdf031464bda673e5fabf9518a42aa5837ffc2e", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["4a1b05caa"], ["ecae09725"]], "identity_text": "Restore support for AIX (Aditya Kamath, Srirama Kucherlapati, Peter Eisentraut) This uses gcc and only supports 64-bit builds.", "commit_aliases": ["4a1b05caa", "ecae09725"], "source_commits": ["4a1b05caa", "ecae09725"], "source_entry_id": "19.0/changes/141", "db_id": "6a27ddc3375c6984764ecda039ece59e", "patch_ids": ["5857f41edf90defcc01e2ef6ba8c8efd", "61ed97ddf02ca838435046082ca86c9b"], "statement_hash": "687cd0fe635007846610174a75a0244c0e48839ae17a04ccd4342e88c0d06288", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-f053d1114562a1f8", "migration": false}, {"id": "19.0-747704b015e210c4", "cves": [], "html": "<p>\u5c06 <a href=\"/docs/19/installation-platform-notes.html#INSTALLATION-NOTES-SOLARIS\" title=\"17.7.5.\u00a0Solaris\"><span>Solaris</span></a> \u6539\u4e3a\u4f7f\u7528\u672a\u547d\u540d <acronym>POSIX</acronym> \u4fe1\u53f7\u91cf\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/0123ce131\">\u00a7</a></p>\n<p>\u6b64\u524d\u4f7f\u7528\u7684\u662f System V \u4fe1\u53f7\u91cf\u3002</p>", "text": "\u5c06 Solaris \u6539\u4e3a\u4f7f\u7528\u672a\u547d\u540d POSIX \u4fe1\u53f7\u91cf\uff08Tom Lane\uff09\u00a7 \u6b64\u524d\u4f7f\u7528\u7684\u662f System V \u4fe1\u53f7\u91cf\u3002", "title": "\u5c06 Solaris \u6539\u4e3a\u4f7f\u7528\u672a\u547d\u540d POSIX \u4fe1\u53f7\u91cf", "commits": ["0123ce131"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "a1499b8a31c8a0cb25779d41b98189b0dd698dc9789a22791e3631ad3c609c53", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["0123ce131"]], "identity_text": "Change Solaris to use unnamed POSIX semaphores (Tom Lane) Previously it used System V semaphores.", "commit_aliases": ["0123ce131"], "source_commits": ["0123ce131"], "source_entry_id": "19.0/changes/142", "db_id": "5822454812a22c91153896d1170e12b8", "patch_ids": ["4f43e5ecb6f23020d60c39e4d56501b1"], "statement_hash": "8ec02317c271b59321e7294211e8e413e0fbc1ca6fbcc353ef9c10882bab95b0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-747704b015e210c4", "migration": false}, {"id": "19.0-39c8ec6b59814e0a", "cves": [], "html": "<p>\u8981\u6c42<a href=\"/docs/19/installation-platform-notes.html#INSTALLATION-NOTES-VISUAL-STUDIO\" title=\"17.7.6.\u00a0Visual Studio\"><span>Visual Studio 2019</span></a>\u6216\u66f4\u9ad8\u7248\u672c\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/8fd9bb1d9\">\u00a7</a></p>", "text": "\u8981\u6c42Visual Studio 2019\u6216\u66f4\u9ad8\u7248\u672c\uff08Peter Eisentraut\uff09\u00a7", "title": "\u8981\u6c42Visual Studio 2019\u6216\u66f4\u9ad8\u7248\u672c", "commits": ["8fd9bb1d9"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "80c6a27889376fa7d9612c49327c9b27c38b186229a506936e0e6484010065af", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["8fd9bb1d9"]], "identity_text": "Require Visual Studio 2019 or later (Peter Eisentraut)", "commit_aliases": ["8fd9bb1d9"], "source_commits": ["8fd9bb1d9"], "source_entry_id": "19.0/changes/143", "db_id": "20208bf5986fd46d9b096ac8514bcd77", "patch_ids": ["eb1cb77c1a3dbaf28e4e4263775742ca"], "statement_hash": "54ed3353b823c253bb3788b37f3f5ab829631679cb77a1f673a26095d5dec794", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-39c8ec6b59814e0a", "migration": false}, {"id": "19.0-45d8732072d44367", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/19/installation-platform-notes.html#INSTALLATION-NOTES-VISUAL-STUDIO\" title=\"17.7.6.\u00a0Visual Studio\"><span>MSVC</span></a> \u4e3a<a href=\"/docs/19/plpython.html\" title=\"\u7b2c\u00a044\u00a0\u7ae0\u00a0PL/Python \u2014 Python \u8fc7\u7a0b\u8bed\u8a00\"><span>PL/Python</span></a>\u4f7f\u7528 Python Limited <acronym>API</acronym> \u8fdb\u884c\u6784\u5efa\uff08Bryan Green\uff09<a href=\"https://postgr.es/c/2bc60f862\">\u00a7</a></p>", "text": "\u5141\u8bb8 MSVC \u4e3aPL/Python\u4f7f\u7528 Python Limited API \u8fdb\u884c\u6784\u5efa\uff08Bryan Green\uff09\u00a7", "title": "\u5141\u8bb8 MSVC \u4e3aPL/Python\u4f7f\u7528 Python Limited API \u8fdb\u884c\u6784\u5efa", "commits": ["2bc60f862"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "9581b6a75f4b8620021738658ae9e910ab302a30da4752f4d5979f97b3f6a0d8", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["2bc60f862"]], "identity_text": "Allow MSVC to create PL/Python using the Python Limited API (Bryan Green)", "commit_aliases": ["2bc60f862"], "source_commits": ["2bc60f862"], "source_entry_id": "19.0/changes/144", "db_id": "3132aa5d06c1125f55b01f534f78d766", "patch_ids": ["418873dc1d7268f95f33dfe2b5e16c14"], "statement_hash": "b508d54b21604e4809a76017556486869554e4ef75e07613acbe6a703bccfb31", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-45d8732072d44367", "migration": false}, {"id": "19.0-61437fd146ca2209", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 <a href=\"/docs/19/installation-platform-notes.html#INSTALLATION-NOTES-VISUAL-STUDIO\" title=\"17.7.6.\u00a0Visual Studio\"><span>MSVC</span></a> \u5728 AArch64 \u4e0a\u6784\u5efa\uff08Niyas Sait\uff0cGreg Burd\uff0cDave Cramer\uff09<a href=\"https://postgr.es/c/a516b3f00\">\u00a7</a></p>", "text": "\u5141\u8bb8\u4f7f\u7528 MSVC \u5728 AArch64 \u4e0a\u6784\u5efa\uff08Niyas Sait\uff0cGreg Burd\uff0cDave Cramer\uff09\u00a7", "title": "\u5141\u8bb8\u4f7f\u7528 MSVC \u5728 AArch64 \u4e0a\u6784\u5efa", "commits": ["a516b3f00"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "7485a82739a3d7f1133741c93e4926cb77848818b0431ab80fba090c5ece6e6d", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["a516b3f00"]], "identity_text": "Allow building on AArch64 using MSVC (Niyas Sait, Greg Burd, Dave Cramer)", "commit_aliases": ["a516b3f00"], "source_commits": ["a516b3f00"], "source_entry_id": "19.0/changes/145", "db_id": "d6325602478b636db3a5ec268cd93ecf", "patch_ids": ["16ee331f37ac78c9c891aded3cf696b3"], "statement_hash": "84047fa4d176146789f90f020396ed92c7727957e6ee704f3892da75d5c1c59b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-61437fd146ca2209", "migration": false}, {"id": "19.0-ec053d412a519dad", "cves": [], "html": "<p>\u5141\u8bb8\u5728<a href=\"/docs/19/installation-platform-notes.html#INSTALLATION-NOTES-VISUAL-STUDIO\" title=\"17.7.6.\u00a0Visual Studio\"><span>Windows</span></a>\u4e0a\u4f7f\u7528 <code>DbgHelp</code> \u83b7\u53d6\u6267\u884c\u6808\u56de\u6eaf\uff08Bryan Green\uff09<a href=\"https://postgr.es/c/65707ed9a\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728Windows\u4e0a\u4f7f\u7528 DbgHelp \u83b7\u53d6\u6267\u884c\u6808\u56de\u6eaf\uff08Bryan Green\uff09\u00a7", "title": "\u5141\u8bb8\u5728Windows\u4e0a\u4f7f\u7528 DbgHelp \u83b7\u53d6\u6267\u884c\u6808\u56de\u6eaf", "commits": ["65707ed9a"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "7a7b5d5a532fdf341e717a1946b247b8fa88a993d6e6071c7bbc64d1a3caf20a", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["65707ed9a"]], "identity_text": "Allow execution stack backtraces on Windows using DbgHelp (Bryan Green)", "commit_aliases": ["65707ed9a"], "source_commits": ["65707ed9a"], "source_entry_id": "19.0/changes/146", "db_id": "0c0390b852377967e700ba3b053f7379", "patch_ids": ["cd42e05672f6bd56ee23272b977b4e8c"], "statement_hash": "e6a82e3253cab1a1edc5d38a14f776a82fae9f4fb6fce4babe619a78f776ba2d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-ec053d412a519dad", "migration": false}, {"id": "19.0-b866f3e833b981c0", "cves": [], "html": "<p>\u5c06\u652f\u6301\u7684 C \u8bed\u8a00\u7248\u672c\u6539\u4e3a C11\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/f5e0186f8\">\u00a7</a><a href=\"https://postgr.es/c/4fbe01514\">\u00a7</a></p>\n<p>\u6b64\u524d\u4f7f\u7528 C99\u3002</p>", "text": "\u5c06\u652f\u6301\u7684 C \u8bed\u8a00\u7248\u672c\u6539\u4e3a C11\uff08Peter Eisentraut\uff09\u00a7\u00a7 \u6b64\u524d\u4f7f\u7528 C99\u3002", "title": "\u5c06\u652f\u6301\u7684 C \u8bed\u8a00\u7248\u672c\u6539\u4e3a C11", "commits": ["4fbe01514", "f5e0186f8"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "6fa166bd21f29b3ae899571190b15cdf0d9d078a17d8a7109f463975d9e7e046", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["4fbe01514"], ["f5e0186f8"]], "identity_text": "Change the supported C language version to C11 (Peter Eisentraut) Previously C99 was used.", "commit_aliases": ["4fbe01514", "f5e0186f8"], "source_commits": ["4fbe01514", "f5e0186f8"], "source_entry_id": "19.0/changes/147", "db_id": "6e3da601f5fd206642c361c0c5b14440", "patch_ids": ["59f1a29dc10249292062069111b7b597", "67efc794132ce8bbd000864dd3ff37ab"], "statement_hash": "5192ce40a6b72f5a4ca925ca157226fb7f5355bd0720cb51674314bff694b09f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-b866f3e833b981c0", "migration": false}, {"id": "19.0-0f89d48c7a608f23", "cves": [], "html": "<p>\u5728\u53ef\u7528\u65f6\u4f7f\u7528\u6807\u51c6 C23 \u548c C++ \u5c5e\u6027\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/76f4b92ba\">\u00a7</a></p>", "text": "\u5728\u53ef\u7528\u65f6\u4f7f\u7528\u6807\u51c6 C23 \u548c C++ \u5c5e\u6027\uff08Peter Eisentraut\uff09\u00a7", "title": "\u5728\u53ef\u7528\u65f6\u4f7f\u7528\u6807\u51c6 C23 \u548c C++ \u5c5e\u6027", "commits": ["76f4b92ba"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "ba7a0225fc24aaecc9d6025a8c2ff34ce8c7b4284edfe41be8d97af6fd110343", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["76f4b92ba"]], "identity_text": "Use standard C23 and C++ attributes if available (Peter Eisentraut)", "commit_aliases": ["76f4b92ba"], "source_commits": ["76f4b92ba"], "source_entry_id": "19.0/changes/148", "db_id": "7f1a5c713dab5ac5bef306ef70947742", "patch_ids": ["7bad991024e595556f1c8e8c424a20ff"], "statement_hash": "1db1f95cb0bcf81dee57272ecc92a9719ae985b38083d8e3b8663020c192497c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-0f89d48c7a608f23", "migration": false}, {"id": "19.0-4eb8d3a3aaab2e33", "cves": [], "html": "<p>\u4f7f\u7528 <acronym>AVX2</acronym> <acronym>CPU</acronym> \u6307\u4ee4\u8ba1\u7b97<a href=\"/docs/19/checksums.html\" title=\"28.2.\u00a0\u6570\u636e\u6821\u9a8c\u548c\">\u9875\u9762\u6821\u9a8c\u548c</a>\uff08Matthew Sterrett\uff0cAndrew Kim\uff09<a href=\"https://postgr.es/c/5e13b0f24\">\u00a7</a></p>", "text": "\u4f7f\u7528 AVX2 CPU \u6307\u4ee4\u8ba1\u7b97\u9875\u9762\u6821\u9a8c\u548c\uff08Matthew Sterrett\uff0cAndrew Kim\uff09\u00a7", "title": "\u4f7f\u7528 AVX2 CPU \u6307\u4ee4\u8ba1\u7b97\u9875\u9762\u6821\u9a8c\u548c", "commits": ["5e13b0f24"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "841ead82af2b0d1e0f6e90fa65c905a6e0fb89a7b72285db017907f9a4ad24e8", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["5e13b0f24"]], "identity_text": "Use AVX2 CPU instructions for calculating page checksums (Matthew Sterrett, Andrew Kim)", "commit_aliases": ["5e13b0f24"], "source_commits": ["5e13b0f24"], "source_entry_id": "19.0/changes/149", "db_id": "b0e9a5bbb0226b3e4353c8b3a392d7c3", "patch_ids": ["60413bcbd7997e1f98531f60a705a9f8"], "statement_hash": "a02f1fbc49765e52cbf6fc57492c6231557d3c5764c44f7b7c5735ae5bf22eac", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-4eb8d3a3aaab2e33", "migration": false}, {"id": "19.0-fbf0e2fafd14eae2", "cves": [], "html": "<p>\u4f7f\u7528 <span>ARM</span> Crypto Extension \u8ba1\u7b97 CRC32C\uff08John Naylor\uff09<a href=\"https://postgr.es/c/fbc57f2bc\">\u00a7</a></p>", "text": "\u4f7f\u7528 ARM Crypto Extension \u8ba1\u7b97 CRC32C\uff08John Naylor\uff09\u00a7", "title": "\u4f7f\u7528 ARM Crypto Extension \u8ba1\u7b97 CRC32C", "commits": ["fbc57f2bc"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "472ab2edd2029aa05418cf81ff56a97e72ab3da6bf9296568a818bae64d3ec2a", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["fbc57f2bc"]], "identity_text": "Use ARM Crypto Extension to Compute CRC32C (John Naylor)", "commit_aliases": ["fbc57f2bc"], "source_commits": ["fbc57f2bc"], "source_entry_id": "19.0/changes/150", "db_id": "ca3e3ffc4338eb1fadd9ee018569e34c", "patch_ids": ["1afa237ddb6466bb833bd77cf9ae7a9a"], "statement_hash": "4a8a7db7955a4301dbb9b2422d4732e9921698e2bb2a2ca27ca53c3dafa09ea3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-fbf0e2fafd14eae2", "migration": false}, {"id": "19.0-65676daaa3b30d4e", "cves": [], "html": "<p>\u4fee\u6539 <a href=\"/docs/19/functions-binarystring.html\" title=\"9.5.\u00a0\u4e8c\u8fdb\u5236\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>hex_encode()</code></a> \u548c <a href=\"/docs/19/functions-binarystring.html\" title=\"9.5.\u00a0\u4e8c\u8fdb\u5236\u4e32\u51fd\u6570\u548c\u64cd\u4f5c\u7b26\"><code>hex_decode()</code></a>\uff0c\u4f7f\u5176\u4f7f\u7528 <acronym>SIMD</acronym> <acronym>CPU</acronym> \u6307\u4ee4\uff08Nathan Bossart\uff0cChiranmoy Bhattacharya\uff09<a href=\"https://postgr.es/c/ec8719ccb\">\u00a7</a></p>", "text": "\u4fee\u6539 hex_encode() \u548c hex_decode()\uff0c\u4f7f\u5176\u4f7f\u7528 SIMD CPU \u6307\u4ee4\uff08Nathan Bossart\uff0cChiranmoy Bhattacharya\uff09\u00a7", "title": "\u4fee\u6539 hex_encode() \u548c hex_decode()\uff0c\u4f7f\u5176\u4f7f\u7528 SIMD CPU \u6307\u4ee4", "commits": ["ec8719ccb"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "d95df37bd5729b9d10de352c44f0854166d46664d292061fa529cd67dd922ee2", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["ec8719ccb"]], "identity_text": "Change hex_encode() and hex_decode() to use SIMD CPU instructions (Nathan Bossart, Chiranmoy Bhattacharya)", "commit_aliases": ["ec8719ccb"], "source_commits": ["ec8719ccb"], "source_entry_id": "19.0/changes/151", "db_id": "11741fba4debbe0ad890c12a499c172a", "patch_ids": ["fa41b618cf46f34c51f7d040a06ab150"], "statement_hash": "4b12d43c199dd5993aef7e9871e98b37c6cad116d9729e1cadde4e1371f17e9c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-65676daaa3b30d4e", "migration": false}, {"id": "19.0-893b5c50f6ffbb00", "cves": [], "html": "<p>\u8981\u6c42<a href=\"/docs/19/install-meson.html\" title=\"17.4.\u00a0\u4f7f\u7528 Meson \u6784\u5efa\u548c\u5b89\u88c5\"><span>Meson</span></a>\u7248\u672c 0.57.2 \u6216\u66f4\u9ad8\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/f039c2244\">\u00a7</a></p>", "text": "\u8981\u6c42Meson\u7248\u672c 0.57.2 \u6216\u66f4\u9ad8\uff08Peter Eisentraut\uff09\u00a7", "title": "\u8981\u6c42Meson\u7248\u672c 0.57.2 \u6216\u66f4\u9ad8", "commits": ["f039c2244"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "3cd9a49d741e0f67fe706a8766b89cfc20b09a4e02d0b837ab45fd98243392a0", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["f039c2244"]], "identity_text": "Require Meson version 0.57.2 or later (Peter Eisentraut)", "commit_aliases": ["f039c2244"], "source_commits": ["f039c2244"], "source_entry_id": "19.0/changes/152", "db_id": "dd79d2868c10a6351f8e573e735e76f5", "patch_ids": ["ec6352d779ee4bca9abdf1d381ffcd25"], "statement_hash": "090e6e109cb9a4eeb7cd4230829da972d7229ce411856f29f0e3d563ad71e20e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-893b5c50f6ffbb00", "migration": false}, {"id": "19.0-9262552f6299091a", "cves": [], "html": "<p>\u65b0\u589e <span>Meson</span> \u9009\u9879\uff0c\u7528\u4e8e\u540c\u65f6\u6784\u5efa\u5171\u4eab\u5e93\u548c\u9759\u6001\u5e93\uff0c\u6216\u4ec5\u6784\u5efa\u5171\u4eab\u5e93\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/78727dcba\">\u00a7</a></p>", "text": "\u65b0\u589e Meson \u9009\u9879\uff0c\u7528\u4e8e\u540c\u65f6\u6784\u5efa\u5171\u4eab\u5e93\u548c\u9759\u6001\u5e93\uff0c\u6216\u4ec5\u6784\u5efa\u5171\u4eab\u5e93\uff08Peter Eisentraut\uff09\u00a7", "title": "\u65b0\u589e Meson \u9009\u9879\uff0c\u7528\u4e8e\u540c\u65f6\u6784\u5efa\u5171\u4eab\u5e93\u548c\u9759\u6001\u5e93\uff0c\u6216\u4ec5\u6784\u5efa\u5171\u4eab\u5e93", "commits": ["78727dcba"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "46c3dea66afd3f6bdbe9c0f23cab3fc07f7c923b8a54cc68a1d0dec5d5a4b6ca", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["78727dcba"]], "identity_text": "Add Meson option to build both shared and static libraries, or only shared (Peter Eisentraut)", "commit_aliases": ["78727dcba"], "source_commits": ["78727dcba"], "source_entry_id": "19.0/changes/153", "db_id": "eb1383d7fd40f7f1c4dc0376067f3669", "patch_ids": ["e208dab0088868ff672bb9a88714796f"], "statement_hash": "05e4f24b484569d138bb3df3ce06e17134b1f4f827ed5f5579b85a398b9b9a4b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-9262552f6299091a", "migration": false}, {"id": "19.0-17a9319577a9ede2", "cves": [], "html": "<p>\u66f4\u65b0 <a href=\"/docs/19/collation.html#COLLATION-MANAGING-STANDARD\" title=\"23.2.2.1.\u00a0\u6807\u51c6\u6392\u5e8f\u89c4\u5219\">Unicode</a> \u6570\u636e\u5230 17.0.0 \u7248\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/57ee39795\">\u00a7</a></p>", "text": "\u66f4\u65b0 Unicode \u6570\u636e\u5230 17.0.0 \u7248\uff08Peter Eisentraut\uff09\u00a7", "title": "\u66f4\u65b0 Unicode \u6570\u636e\u5230 17.0.0 \u7248", "commits": ["57ee39795"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "43664f1ed399ca43ebb2d6353c0ffd74946e74c4ce11f5c1fd3f1d2301438dbc", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["57ee39795"]], "identity_text": "Update Unicode data to version 17.0.0 (Peter Eisentraut)", "commit_aliases": ["57ee39795"], "source_commits": ["57ee39795"], "source_entry_id": "19.0/changes/154", "db_id": "d7e2c494563fe17c4ee00266fa53a520", "patch_ids": ["c59ccd505e5b66c373128a4ab143e4ce"], "statement_hash": "c94d52c3540a007227d0d2130851f8a92ba5cc5337ccb5c9d1d3728e6f706af6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-17a9319577a9ede2", "migration": false}, {"id": "19.0-c709b50fc9819ce3", "cves": [], "html": "<p>\u65b0\u589e\u94a9\u5b50 <code>planner_setup_hook</code>\u3001<code>planner_shutdown_hook</code>\u3001<code>joinrel_setup_hook</code> \u548c <code>join_path_setup_hook</code>\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/94f3ad396\">\u00a7</a> <a href=\"https://postgr.es/c/4020b370f\">\u00a7</a></p>", "text": "\u65b0\u589e\u94a9\u5b50 planner_setup_hook\u3001planner_shutdown_hook\u3001joinrel_setup_hook \u548c join_path_setup_hook\uff08Robert Haas\uff09\u00a7 \u00a7", "title": "\u65b0\u589e\u94a9\u5b50 planner_setup_hook\u3001planner_shutdown_hook\u3001joinrel_setup_hook \u548c join_path_setup_hook", "commits": ["4020b370f", "94f3ad396"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "05cdfd200ef8de7716d99f8e741d2df36e1765ba13362348e7c5ed7c703e88f8", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["4020b370f"], ["94f3ad396"]], "identity_text": "Add hooks planner_setup_hook, planner_shutdown_hook, joinrel_setup_hook, and join_path_setup_hook (Robert Haas)", "commit_aliases": ["4020b370f", "94f3ad396"], "source_commits": ["4020b370f", "94f3ad396"], "source_entry_id": "19.0/changes/155", "db_id": "c400fe8cf5b79034bc335844fe53d2a2", "patch_ids": ["2b28568b9f48f2a8f041078dc99b2900", "8238396b0c8cd2dbf766f04e72d51671"], "statement_hash": "caf4233879c35f320faf32f86cb11ffb4e5b8913b0e6a0294ae8e719d73f90b7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-c709b50fc9819ce3", "migration": false}, {"id": "19.0-44453272e8d2705a", "cves": [], "html": "<p>\u5141\u8bb8\u6269\u5c55\u5c06<a href=\"/docs/19/xfunc-sql.html#XFUNC-SQL-FUNCTIONS-RETURNING-SET\" title=\"36.5.9.\u00a0\u8fd4\u56de\u96c6\u5408\u7684SQL\u51fd\u6570\">\u8fd4\u56de\u96c6\u5408\u51fd\u6570</a>\u66ff\u6362\u4e3a <code>FROM</code> \u5b50\u53e5\u4e2d\u7684 <acronym>SQL</acronym> \u67e5\u8be2\uff08Paul A. Jungwirth\uff09<a href=\"https://postgr.es/c/b140c8d7a\">\u00a7</a></p>", "text": "\u5141\u8bb8\u6269\u5c55\u5c06\u8fd4\u56de\u96c6\u5408\u51fd\u6570\u66ff\u6362\u4e3a FROM \u5b50\u53e5\u4e2d\u7684 SQL \u67e5\u8be2\uff08Paul A. Jungwirth\uff09\u00a7", "title": "\u5141\u8bb8\u6269\u5c55\u5c06\u8fd4\u56de\u96c6\u5408\u51fd\u6570\u66ff\u6362\u4e3a FROM \u5b50\u53e5\u4e2d\u7684 SQL \u67e5\u8be2", "commits": ["b140c8d7a"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "cbdf8ec5f46bd310380c467a1391aa7d8475e6b2890c5d88bd095207fa3806cc", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["b140c8d7a"]], "identity_text": "Allow extensions to replace set-returning functions in the FROM clause with SQL queries (Paul A. Jungwirth)", "commit_aliases": ["b140c8d7a"], "source_commits": ["b140c8d7a"], "source_entry_id": "19.0/changes/156", "db_id": "ea6d1bcac820e221ce2482f7ae671de0", "patch_ids": ["e01cd170f7b7ff9f5489103cfc1366ee"], "statement_hash": "21ec7b0f04a95bf4da4d76c8fee1e8081c07bc766752164eb365c3d9aebeb8f2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-44453272e8d2705a", "migration": false}, {"id": "19.0-0fd160eef9760243", "cves": [], "html": "<p>\u5c06<a href=\"/docs/19/functions-info.html#FUNCTIONS-INFO-SNAPSHOT\" title=\"9.28.8.\u00a0\u4e8b\u52a1 ID \u548c\u5feb\u7167\u4fe1\u606f\u51fd\u6570\">multixid \u6210\u5458</a>\u6539\u4e3a 64 \u4f4d\uff08Maxim Orlov\uff09<a href=\"https://postgr.es/c/bd8d9c9bd\">\u00a7</a></p>", "text": "\u5c06multixid \u6210\u5458\u6539\u4e3a 64 \u4f4d\uff08Maxim Orlov\uff09\u00a7", "title": "\u5c06multixid \u6210\u5458\u6539\u4e3a 64 \u4f4d", "commits": ["bd8d9c9bd"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "3465fedcf0b82edf1b7bfbc2da01dd7c9ec73b07547f36dcb6b7cf816e3f91b2", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["bd8d9c9bd"]], "identity_text": "Make multixid members 64-bit (Maxim Orlov)", "commit_aliases": ["bd8d9c9bd"], "source_commits": ["bd8d9c9bd"], "source_entry_id": "19.0/changes/157", "db_id": "f94c0ae076ab514a80afc69faa028ea0", "patch_ids": ["192db2703f79d48c16fa25b3227ae71a"], "statement_hash": "b5eb89f3e7ec81151c1887651a26784eed70619fcc43136255213d78407aa72c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-0fd160eef9760243", "migration": false}, {"id": "19.0-b94ecc29f7e66ec2", "cves": [], "html": "<p>\u5c06\u51fd\u6570\u539f\u578b\u4e2d\u7684 <code>bit*</code> typedef \u6539\u4e3a <code>uint*</code>\uff08Nathan Bossart\uff09<a href=\"https://postgr.es/c/bab2f27ea\">\u00a7</a></p>", "text": "\u5c06\u51fd\u6570\u539f\u578b\u4e2d\u7684 bit* typedef \u6539\u4e3a uint*\uff08Nathan Bossart\uff09\u00a7", "title": "\u5c06\u51fd\u6570\u539f\u578b\u4e2d\u7684 bit* typedef \u6539\u4e3a uint*", "commits": ["bab2f27ea"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "b320cd9d35c2a84a0b102b169245ebd7471663e05db3afd1bf87fb5937ffdd66", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["bab2f27ea"]], "identity_text": "Change function prototypes to use uint* instead of bit* typedefs (Nathan Bossart)", "commit_aliases": ["bab2f27ea"], "source_commits": ["bab2f27ea"], "source_entry_id": "19.0/changes/158", "db_id": "88aea108cbad74f329ed34bbb24d5b58", "patch_ids": ["f2f586554bfe840eeeb6fed10442b61c"], "statement_hash": "1f0a26efe6da8c4a16f300de65dcbc3a59a88e212e097ce5974576ea42c2958c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-b94ecc29f7e66ec2", "migration": false}, {"id": "19.0-1005ea5f9a65cae7", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/logicaldecoding-output-plugin.html#LOGICALDECODING-PGOUTPUT\" title=\"47.6.1.\u00a0pgoutput \u2014 \u6807\u51c6\u903b\u8f91\u89e3\u7801\u8f93\u51fa\u63d2\u4ef6\">\u903b\u8f91\u89e3\u7801\u63d2\u4ef6</a>\u6307\u5b9a\u5176\u662f\u5426\u4e0d\u8bbf\u95ee\u5171\u4eab\u76ee\u5f55\uff08Antonin Houska\uff09<a href=\"https://postgr.es/c/0d3dba38c\">\u00a7</a></p>", "text": "\u5141\u8bb8\u903b\u8f91\u89e3\u7801\u63d2\u4ef6\u6307\u5b9a\u5176\u662f\u5426\u4e0d\u8bbf\u95ee\u5171\u4eab\u76ee\u5f55\uff08Antonin Houska\uff09\u00a7", "title": "\u5141\u8bb8\u903b\u8f91\u89e3\u7801\u63d2\u4ef6\u6307\u5b9a\u5176\u662f\u5426\u4e0d\u8bbf\u95ee\u5171\u4eab\u76ee\u5f55", "commits": ["0d3dba38c"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "72aecd4c45fa67483121399f05e3fba5e37d22a61fbc53317b3d25e399e58d94", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["0d3dba38c"]], "identity_text": "Allow logical decoding plugins to specify if they do not access shared catalogs (Antonin Houska)", "commit_aliases": ["0d3dba38c"], "source_commits": ["0d3dba38c"], "source_entry_id": "19.0/changes/159", "db_id": "b395b8b40db973ba1f42e8f3bc96ef65", "patch_ids": ["20a3361210f5c3f5967de899d879e2a4"], "statement_hash": "5e0711ae12acdadfaaabe4eddde6e6bdb9c618b67a4a9ef1b7a92987e17bffe1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-1005ea5f9a65cae7", "migration": false}, {"id": "19.0-65ff587fdac16aff", "cves": [], "html": "<p>\u5141\u8bb8 OAuth \u9a8c\u8bc1\u5668\u63d0\u4f9b\u5931\u8d25\u7ec6\u8282\uff08Jacob Champion\uff09<a href=\"https://postgr.es/c/d438a3659\">\u00a7</a></p>\n<p>\u901a\u8fc7\u8bbe\u7f6e <a href=\"/docs/19/oauth-validator-callbacks.html#OAUTH-VALIDATOR-CALLBACK-VALIDATE\" title=\"50.3.2.\u00a0\u6821\u9a8c\u56de\u8c03\"><code>ValidatorModuleResult</code></a> \u7ed3\u6784\u4f53\u6210\u5458 error_detail \u5b9e\u73b0\u3002</p>", "text": "\u5141\u8bb8 OAuth \u9a8c\u8bc1\u5668\u63d0\u4f9b\u5931\u8d25\u7ec6\u8282\uff08Jacob Champion\uff09\u00a7 \u901a\u8fc7\u8bbe\u7f6e ValidatorModuleResult \u7ed3\u6784\u4f53\u6210\u5458 error_detail \u5b9e\u73b0\u3002", "title": "\u5141\u8bb8 OAuth \u9a8c\u8bc1\u5668\u63d0\u4f9b\u5931\u8d25\u7ec6\u8282", "commits": ["d438a3659"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "a3de1b0d096f969b9a2b8c9fb291db6bf60208f6c0c2ca53640cb33ddb1acac0", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["d438a3659"]], "identity_text": "Allow OAuth validators to supply failure details (Jacob Champion) This is done by setting the ValidatorModuleResult structure member error_detail.", "commit_aliases": ["d438a3659"], "source_commits": ["d438a3659"], "source_entry_id": "19.0/changes/160", "db_id": "762b28bb17d68d5323dc9407c5a67588", "patch_ids": ["15e4a19f6ece110d3ecf50e9e73c4a10"], "statement_hash": "cf0f5b56015fa5dfda02cf1d6cea35cdf4a9aad1376008543846a923ecca2dc1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-65ff587fdac16aff", "migration": false}, {"id": "19.0-d06bea1c7a3daad9", "cves": [], "html": "<p>\u65b0\u589e\u7b80\u5316\u4e14\u6539\u8fdb\u7684\u5171\u4eab\u5185\u5b58\u6ce8\u518c\u51fd\u6570 <a href=\"/docs/19/xfunc-c.html#XFUNC-SHARED-ADDIN-AT-STARTUP\" title=\"36.10.11.1.\u00a0\u542f\u52a8\u65f6\u8bf7\u6c42\u5171\u4eab\u5185\u5b58\"><code>ShmemRequestStruct()</code></a>\uff08Heikki Linnakangas\uff0cAshutosh Bapat\uff09<a href=\"https://postgr.es/c/283e823f9\">\u00a7</a></p>\n<p><a href=\"/docs/19/xfunc-c.html#XFUNC-SHARED-ADDIN-AT-STARTUP\" title=\"36.10.11.1.\u00a0\u542f\u52a8\u65f6\u8bf7\u6c42\u5171\u4eab\u5185\u5b58\"><code>ShmemInitStruct()</code></a> \u548c <a href=\"/docs/19/xfunc-c.html#XFUNC-SHARED-ADDIN-AT-STARTUP\" title=\"36.10.11.1.\u00a0\u542f\u52a8\u65f6\u8bf7\u6c42\u5171\u4eab\u5185\u5b58\"><code>ShmemInitHash()</code></a> \u4ecd\u4fdd\u7559\u4ee5\u517c\u5bb9\u65e7\u4ee3\u7801\u3002</p>", "text": "\u65b0\u589e\u7b80\u5316\u4e14\u6539\u8fdb\u7684\u5171\u4eab\u5185\u5b58\u6ce8\u518c\u51fd\u6570 ShmemRequestStruct()\uff08Heikki Linnakangas\uff0cAshutosh Bapat\uff09\u00a7 ShmemInitStruct() \u548c ShmemInitHash() \u4ecd\u4fdd\u7559\u4ee5\u517c\u5bb9\u65e7\u4ee3\u7801\u3002", "title": "\u65b0\u589e\u7b80\u5316\u4e14\u6539\u8fdb\u7684\u5171\u4eab\u5185\u5b58\u6ce8\u518c\u51fd\u6570 ShmemRequestStruct()", "commits": ["283e823f9"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "19905fe4b2d189c747872544da1ad71d195c0ca3c693c146b3a186c287a0704b", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["283e823f9"]], "identity_text": "Add simplified and improved shared memory registration function ShmemRequestStruct() (Heikki Linnakangas, Ashutosh Bapat) Functions ShmemInitStruct() and ShmemInitHash() remain for backward compatibility.", "commit_aliases": ["283e823f9"], "source_commits": ["283e823f9"], "source_entry_id": "19.0/changes/161", "db_id": "cc4f0bc9ac955e96b4d6dfebd4746b83", "patch_ids": ["b122528672e367bac2442d8f2ce8108b"], "statement_hash": "731f5a06e4b9dcb066b51d4afcb9e0de5c1fac934a3d9c4972ee8ae3bef481bc", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-d06bea1c7a3daad9", "migration": false}, {"id": "19.0-7b3961d2c4b1b02f", "cves": [], "html": "<p>\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf <a href=\"/docs/19/runtime-config-preset.html#GUC-DEBUG-EXEC-BACKEND\"><code>debug_exec_backend</code></a>\uff0c\u7528\u4e8e\u62a5\u544a\u53c2\u6570\u5982\u4f55\u4f20\u9012\u7ed9\u65b0\u540e\u7aef\uff08Daniel Gustafsson\uff09<a href=\"https://postgr.es/c/b3fe098d3\">\u00a7</a></p>", "text": "\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf debug_exec_backend\uff0c\u7528\u4e8e\u62a5\u544a\u53c2\u6570\u5982\u4f55\u4f20\u9012\u7ed9\u65b0\u540e\u7aef\uff08Daniel Gustafsson\uff09\u00a7", "title": "\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf debug_exec_backend\uff0c\u7528\u4e8e\u62a5\u544a\u53c2\u6570\u5982\u4f55\u4f20\u9012\u7ed9\u65b0\u540e\u7aef", "commits": ["b3fe098d3"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "ddcc37cfe5066223ded4c597165664a47f8df36e48c9e12d782d9cafb9449f6b", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["b3fe098d3"]], "identity_text": "Add server variable debug_exec_backend to report how parameters are passed to new backends (Daniel Gustafsson)", "commit_aliases": ["b3fe098d3"], "source_commits": ["b3fe098d3"], "source_entry_id": "19.0/changes/162", "db_id": "f56c91e7ea9e47d462e10768e31bde92", "patch_ids": ["6996a756a2209127ea911906cc212ee5"], "statement_hash": "57e78bd212bc321f09c4b3268a65ed26ffdfffe64d790f1fad36b78c18194798", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-7b3961d2c4b1b02f", "migration": false}, {"id": "19.0-59fadc182f065384", "cves": [], "html": "<p>\u65b0\u589e\u5173\u4e8e<a href=\"/docs/19/ddl-temporal-tables.html\" title=\"5.7.\u00a0\u65f6\u6001\u8868\">\u65f6\u6001\u8868</a>\u7684\u6587\u6863\u7ae0\u8282\uff08Paul A. Jungwirth\uff09<a href=\"https://postgr.es/c/e4d8a2af0\">\u00a7</a></p>", "text": "\u65b0\u589e\u5173\u4e8e\u65f6\u6001\u8868\u7684\u6587\u6863\u7ae0\u8282\uff08Paul A. Jungwirth\uff09\u00a7", "title": "\u65b0\u589e\u5173\u4e8e\u65f6\u6001\u8868\u7684\u6587\u6863\u7ae0\u8282", "commits": ["e4d8a2af0"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "cfa3938488ba5a382ebbf3ac30a262741cbc781d722187bf310f0b6d7a746f5f", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["e4d8a2af0"]], "identity_text": "Add documentation section about temporal tables (Paul A. Jungwirth)", "commit_aliases": ["e4d8a2af0"], "source_commits": ["e4d8a2af0"], "source_entry_id": "19.0/changes/163", "db_id": "ba840a11fad1344360a49032bc6c9bf0", "patch_ids": ["6199d082f1b7ffe83b1542803732c5b0"], "statement_hash": "7fce6be69bf094f60533b06c88d696d5fc0124240941764129ee15cf74310d38", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-59fadc182f065384", "migration": false}, {"id": "19.0-e74356543ac6b0e4", "cves": [], "html": "<p>\u8bb0\u5f55\u63a7\u5236<a href=\"/docs/19/regress-run.html#REGRESS-RUN-PATH-SUBSTITUTION\" title=\"31.1.6.\u00a0\u8def\u5f84\u66ff\u6362\">\u56de\u5f52\u6d4b\u8bd5</a>\u7684\u73af\u5883\u53d8\u91cf\uff08Michael Paquier\uff09<a href=\"https://postgr.es/c/02976b0a1\">\u00a7</a></p>", "text": "\u8bb0\u5f55\u63a7\u5236\u56de\u5f52\u6d4b\u8bd5\u7684\u73af\u5883\u53d8\u91cf\uff08Michael Paquier\uff09\u00a7", "title": "\u8bb0\u5f55\u63a7\u5236\u56de\u5f52\u6d4b\u8bd5\u7684\u73af\u5883\u53d8\u91cf", "commits": ["02976b0a1"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "3c6d19ffa21c52c77bb6943f87c696d892441f56b6aa96541174e0ced30140b3", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["02976b0a1"]], "identity_text": "Document the environment variables that control the regression tests (Michael Paquier)", "commit_aliases": ["02976b0a1"], "source_commits": ["02976b0a1"], "source_entry_id": "19.0/changes/164", "db_id": "6e2a6dcc65b08df25684b4c976e8261f", "patch_ids": ["db371fbd69214646dc429f89122f5b44"], "statement_hash": "d64cc4af42817101fefe650bc306c67f8a5f2ed7253544890808aa96b29b6216", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-e74356543ac6b0e4", "migration": false}, {"id": "19.0-c39749f3e403c256", "cves": [], "html": "<p>\u66f4\u65b0\u6587\u6863\u4e2d\u7684<a href=\"/docs/19/server-start.html\" title=\"18.3.\u00a0\u542f\u52a8\u6570\u636e\u5e93\u670d\u52a1\u5668\">systemd \u793a\u4f8b</a>\uff0c\u52a0\u5165 restart \u8bbe\u7f6e\uff08Andrew Jackson\uff09<a href=\"https://postgr.es/c/b30656ce0\">\u00a7</a></p>", "text": "\u66f4\u65b0\u6587\u6863\u4e2d\u7684systemd \u793a\u4f8b\uff0c\u52a0\u5165 restart \u8bbe\u7f6e\uff08Andrew Jackson\uff09\u00a7", "title": "\u66f4\u65b0\u6587\u6863\u4e2d\u7684systemd \u793a\u4f8b\uff0c\u52a0\u5165 restart \u8bbe\u7f6e", "commits": ["b30656ce0"], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "9e5278ec18324c26f53d4682b7cac16a25e724bdefb3a51af29c16622606160b", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [["b30656ce0"]], "identity_text": "Update documented systemd example to include a restart setting (Andrew Jackson)", "commit_aliases": ["b30656ce0"], "source_commits": ["b30656ce0"], "source_entry_id": "19.0/changes/165", "db_id": "e0b8431931452801e2bf951c6fc029bf", "patch_ids": ["d5055a62c0b50ca7417a6aee5168d0cc"], "statement_hash": "5defbf603db0b450d9792692393d17b48cda3fae0f0d7e20de6bf6a5ab9fdeda", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-c39749f3e403c256", "migration": false}, {"id": "19.0-f4695b5ec62d0405", "cves": [], "html": "<p>\u65b0\u589e<a href=\"/docs/19/pgplanadvice.html\" title=\"F.30.\u00a0pg_plan_advice \u2014 \u5e2e\u52a9\u89c4\u5212\u5668\u83b7\u5f97\u6b63\u786e\u7684\u8ba1\u5212\">pg_plan_advice</a>\u6a21\u5757\uff0c\u7528\u4e8e\u7a33\u5b9a\u548c\u63a7\u5236\u89c4\u5212\u5668\u51b3\u7b56\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/5883ff30b\">\u00a7</a><a href=\"https://postgr.es/c/6455e55b0\">\u00a7</a></p>", "text": "\u65b0\u589epg_plan_advice\u6a21\u5757\uff0c\u7528\u4e8e\u7a33\u5b9a\u548c\u63a7\u5236\u89c4\u5212\u5668\u51b3\u7b56\uff08Robert Haas\uff09\u00a7\u00a7", "title": "\u65b0\u589epg_plan_advice\u6a21\u5757\uff0c\u7528\u4e8e\u7a33\u5b9a\u548c\u63a7\u5236\u89c4\u5212\u5668\u51b3\u7b56", "commits": ["5883ff30b", "6455e55b0"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "97924ebded069e94b969b2483dadf89dfcd806dca8ed03452e99ded2ac8636ca", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["5883ff30b"], ["6455e55b0"]], "identity_text": "Add pgplanadvice module to stabilize and control planner decisions (Robert Haas)", "commit_aliases": ["5883ff30b", "6455e55b0"], "source_commits": ["5883ff30b", "6455e55b0"], "source_entry_id": "19.0/changes/166", "db_id": "4ac958c4dfcd715caf1af5422620f505", "patch_ids": ["56d63f5186ca503452a6223c6f729bc0", "b1613f7f0a064021e597c08a0f245a49"], "statement_hash": "31e3ff58f47fcca7b27455c485f5c16cf539a34db72635e763654a43b2f9850c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-f4695b5ec62d0405", "migration": false}, {"id": "19.0-6a39c7d670ca51f6", "cves": [], "html": "<p>\u65b0\u589e\u6269\u5c55<a href=\"/docs/19/pgstashadvice.html\" title=\"F.33.\u00a0pg_stash_advice \u2014 \u5b58\u50a8\u5e76\u81ea\u52a8\u5e94\u7528\u8ba1\u5212\u5efa\u8bae\">pg_stash_advice</a>\uff0c\u7528\u4e8e\u6309 query-id \u6307\u5b9a\u5efa\u8bae\uff08Robert Haas\uff0cLukas Fittl\uff09<a href=\"https://postgr.es/c/e8ec19aa3\">\u00a7</a><a href=\"https://postgr.es/c/c10edb102\">\u00a7</a></p>", "text": "\u65b0\u589e\u6269\u5c55pg_stash_advice\uff0c\u7528\u4e8e\u6309 query-id \u6307\u5b9a\u5efa\u8bae\uff08Robert Haas\uff0cLukas Fittl\uff09\u00a7\u00a7", "title": "\u65b0\u589e\u6269\u5c55pg_stash_advice\uff0c\u7528\u4e8e\u6309 query-id \u6307\u5b9a\u5efa\u8bae", "commits": ["c10edb102", "e8ec19aa3"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "cd73a2b0c2b7e3e3ea5c580c529aed14af5174fcef7624106cfc364f9b712af8", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["c10edb102"], ["e8ec19aa3"]], "identity_text": "Add extension pgstashadvice to allow per-query-id advice to be specified (Robert Haas, Lukas Fittl)", "commit_aliases": ["c10edb102", "e8ec19aa3"], "source_commits": ["c10edb102", "e8ec19aa3"], "source_entry_id": "19.0/changes/167", "db_id": "45e851918f3743e4972a5ecf2ab78f59", "patch_ids": ["9da8a567937023cd2a129fdfde982f00", "f4a18a80b979077db607a9e188bc8ab2"], "statement_hash": "d9820baa158db7d0d39f696739da9f24dc384ddfeff94eb80a3383616be8699a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-6a39c7d670ca51f6", "migration": false}, {"id": "19.0-01cdd9dc3f4b9e80", "cves": [], "html": "<p>\u5c06 <a href=\"/docs/19/sql-fetch.html\" title=\"FETCH\"><code>FETCH</code></a> \u67e5\u8be2\u7684\u5927\u5c0f\u4f5c\u4e3a\u5e38\u91cf\u663e\u793a\u5728<a href=\"/docs/19/pgstatstatements.html\" title=\"F.34.\u00a0pg_stat_statements \u2014 \u8ddf\u8e2a SQL \u8ba1\u5212\u548c\u6267\u884c\u7edf\u8ba1\u4fe1\u606f\">pg_stat_statements</a>\u4e2d\uff08Sami Imseih\uff09<a href=\"https://postgr.es/c/bee23ea4d\">\u00a7</a></p>\n<p>\u4e0d\u540c\u5927\u5c0f\u7684 FETCH \u73b0\u5728\u4f1a\u5728<a href=\"/docs/19/pgstatstatements.html\" title=\"F.34.\u00a0pg_stat_statements \u2014 \u8ddf\u8e2a SQL \u8ba1\u5212\u548c\u6267\u884c\u7edf\u8ba1\u4fe1\u606f\">pg_stat_statements</a>\u8f93\u51fa\u4e2d\u5f52\u5e76\u5230\u4e00\u8d77\u3002</p>", "text": "\u5c06 FETCH \u67e5\u8be2\u7684\u5927\u5c0f\u4f5c\u4e3a\u5e38\u91cf\u663e\u793a\u5728pg_stat_statements\u4e2d\uff08Sami Imseih\uff09\u00a7 \u4e0d\u540c\u5927\u5c0f\u7684 FETCH \u73b0\u5728\u4f1a\u5728pg_stat_statements\u8f93\u51fa\u4e2d\u5f52\u5e76\u5230\u4e00\u8d77\u3002", "title": "\u5c06 FETCH \u67e5\u8be2\u7684\u5927\u5c0f\u4f5c\u4e3a\u5e38\u91cf\u663e\u793a\u5728pg_stat_statements\u4e2d", "commits": ["bee23ea4d"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "d85a64e309179f392fedcc0a28e405580913b93baeb95870909f8738d112e1c4", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["bee23ea4d"]], "identity_text": "Show sizes of FETCH queries as constants in pgstatstatements (Sami Imseih) Fetches of different sizes will now be grouped together in pgstatstatements output.", "commit_aliases": ["bee23ea4d"], "source_commits": ["bee23ea4d"], "source_entry_id": "19.0/changes/168", "db_id": "482299b237fbc46a6a50bdb47b208788", "patch_ids": ["d97e227d21ad315d6b87301eb67684d9"], "statement_hash": "56b6507c53757966822dc5b02b086499fcab94db3afe43cf0b16f70fd821aff5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-01cdd9dc3f4b9e80", "migration": false}, {"id": "19.0-5a7fd99f6a80c142", "cves": [], "html": "<p>\u65b0\u589e<a href=\"/docs/19/sql-prepare.html\" title=\"PREPARE\">\u901a\u7528\u8ba1\u5212\u548c\u81ea\u5b9a\u4e49\u8ba1\u5212</a>\u8ba1\u6570\u5230<a href=\"/docs/19/pgstatstatements.html\" title=\"F.34.\u00a0pg_stat_statements \u2014 \u8ddf\u8e2a SQL \u8ba1\u5212\u548c\u6267\u884c\u7edf\u8ba1\u4fe1\u606f\">pg_stat_statements</a>\uff08Sami Imseih\uff09<a href=\"https://postgr.es/c/3357471cf\">\u00a7</a></p>", "text": "\u65b0\u589e\u901a\u7528\u8ba1\u5212\u548c\u81ea\u5b9a\u4e49\u8ba1\u5212\u8ba1\u6570\u5230pg_stat_statements\uff08Sami Imseih\uff09\u00a7", "title": "\u65b0\u589e\u901a\u7528\u8ba1\u5212\u548c\u81ea\u5b9a\u4e49\u8ba1\u5212\u8ba1\u6570\u5230pg_stat_statements", "commits": ["3357471cf"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "db449b9cf7723032feb95c4a5892ceae6a4041ae1341f3885e0e2384a70acc9a", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["3357471cf"]], "identity_text": "Add generic and custom plan counts to pgstatstatements (Sami Imseih)", "commit_aliases": ["3357471cf"], "source_commits": ["3357471cf"], "source_entry_id": "19.0/changes/169", "db_id": "8b533dfc0cb31323a0af65fc5498095a", "patch_ids": ["a68aa4c27f58910e3aff221fa91fe3d1"], "statement_hash": "6572579d1d4bb8fcbd1defa3afe48fb510f4f443e55a8c0caa51da2f257f46f3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-5a7fd99f6a80c142", "migration": false}, {"id": "19.0-c43853d353669197", "cves": [], "html": "<p>\u91cd\u6784<a href=\"/docs/19/pgbuffercache.html\" title=\"F.25.\u00a0pg_buffercache \u2014 \u68c0\u67e5 PostgreSQL \u7f13\u51b2\u533a\u7f13\u5b58\u72b6\u6001\">pg_buffercache</a>\u7684\u5171\u4eab\u5185\u5b58\u6620\u5c04\u62a5\u544a\uff08Bertrand Drouvot\uff09<a href=\"https://postgr.es/c/4b203d499\">\u00a7</a></p>\n<p>\u65b0\u589e\u51fd\u6570 <code>pg_buffercache_os_pages()</code> \u548c\u7cfb\u7edf\u89c6\u56fe <code>pg_buffercache_os_pages</code>\uff0c\u7528\u4e8e\u62a5\u544a\u5171\u4eab\u5185\u5b58\u6620\u5c04\uff1b\u51fd\u6570\u8fd8\u53ef\u9009\u5305\u542b <acronym>NUMA</acronym> \u7ec6\u8282\u3002\u4e3a\u5411\u540e\u517c\u5bb9\uff0c<code>pg_buffercache_numa_pages()</code> \u4ecd\u7136\u4fdd\u7559\u3002</p>", "text": "\u91cd\u6784pg_buffercache\u7684\u5171\u4eab\u5185\u5b58\u6620\u5c04\u62a5\u544a\uff08Bertrand Drouvot\uff09\u00a7 \u65b0\u589e\u51fd\u6570 pg_buffercache_os_pages() \u548c\u7cfb\u7edf\u89c6\u56fe pg_buffercache_os_pages\uff0c\u7528\u4e8e\u62a5\u544a\u5171\u4eab\u5185\u5b58\u6620\u5c04\uff1b\u51fd\u6570\u8fd8\u53ef\u9009\u5305\u542b NUMA \u7ec6\u8282\u3002\u4e3a\u5411\u540e\u517c\u5bb9\uff0cpg_buffercache_numa_pages() \u4ecd\u7136\u4fdd\u7559\u3002", "title": "\u91cd\u6784pg_buffercache\u7684\u5171\u4eab\u5185\u5b58\u6620\u5c04\u62a5\u544a", "commits": ["4b203d499"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "cdb543d6f694b6094914686a17370359ab98788faf039e140086b20ed6b356c8", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["4b203d499"]], "identity_text": "Refactor pgbuffercache reporting of shared memory mapping (Bertrand Drouvot) New function pg_buffercache_os_pages() and system view pg_buffercache_os_pages allow reporting of shared memory mapping; the function optionally includes NUMA details. Function pg_buffercache_numa_pages() remains for backward compatibility.", "commit_aliases": ["4b203d499"], "source_commits": ["4b203d499"], "source_entry_id": "19.0/changes/170", "db_id": "326f982a8e5fdb76f61bffa174bc89ff", "patch_ids": ["dc1afd745ffc505feaf1056588cd0ce0"], "statement_hash": "c3d16efbfd858190d76129f49a1cf3a500efcbd1abc04e1f51e615f76be58ebb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-c43853d353669197", "migration": false}, {"id": "19.0-273a964446fe6c86", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/19/pgbuffercache.html\" title=\"F.25.\u00a0pg_buffercache \u2014 \u68c0\u67e5 PostgreSQL \u7f13\u51b2\u533a\u7f13\u5b58\u72b6\u6001\">pg_buffercache</a>\u65b0\u589e\u5c06\u7f13\u51b2\u533a\u6807\u8bb0\u4e3a\u810f\u7684\u51fd\u6570\uff08Nazir Bilal Yavuz\uff09<a href=\"https://postgr.es/c/9ccc049df\">\u00a7</a></p>\n<p>\u8fd9\u4e9b\u51fd\u6570\u4e3a <code>pg_buffercache_mark_dirty()</code>\u3001<code>pg_buffercache_mark_dirty_relation()</code> \u548c <code>pg_buffercache_mark_dirty_all()</code>\u3002</p>", "text": "\u4e3apg_buffercache\u65b0\u589e\u5c06\u7f13\u51b2\u533a\u6807\u8bb0\u4e3a\u810f\u7684\u51fd\u6570\uff08Nazir Bilal Yavuz\uff09\u00a7 \u8fd9\u4e9b\u51fd\u6570\u4e3a pg_buffercache_mark_dirty()\u3001pg_buffercache_mark_dirty_relation() \u548c pg_buffercache_mark_dirty_all()\u3002", "title": "\u4e3apg_buffercache\u65b0\u589e\u5c06\u7f13\u51b2\u533a\u6807\u8bb0\u4e3a\u810f\u7684\u51fd\u6570", "commits": ["9ccc049df"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "bc1d2a6288d65506efe775c61d0dd80807e28e7ca8926ab2785db1430566dc50", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["9ccc049df"]], "identity_text": "Add functions to pgbuffercache to mark buffers as dirty (Nazir Bilal Yavuz) The functions are pg_buffercache_mark_dirty(), pg_buffercache_mark_dirty_relation(), and pg_buffercache_mark_dirty_all().", "commit_aliases": ["9ccc049df"], "source_commits": ["9ccc049df"], "source_entry_id": "19.0/changes/171", "db_id": "5ae5dd2be3aa3ff0706e77085b7bcfb3", "patch_ids": ["24999546e7c8d92a9f164cda3b794684"], "statement_hash": "bcca474d77e8166e4d3e2b856552a9301aa699dae912762b4edaf916d57dbbae", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-273a964446fe6c86", "migration": false}, {"id": "19.0-eddedbbb429acb3a", "cves": [], "html": "<p>\u5141\u8bb8\u5728<a href=\"/docs/19/sql-prepare.html\" title=\"PREPARE\">\u9884\u5907\u8bed\u53e5</a>\u4e2d\u5411<a href=\"/docs/19/postgres-fdw.html\" title=\"F.40.\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\u4e0b\u63a8\u6570\u7ec4\u6bd4\u8f83\uff08Alexander Pyhalov\uff09<a href=\"https://postgr.es/c/62c3b4cd9\">\u00a7</a></p>", "text": "\u5141\u8bb8\u5728\u9884\u5907\u8bed\u53e5\u4e2d\u5411postgres_fdw\u5916\u90e8\u670d\u52a1\u5668\u4e0b\u63a8\u6570\u7ec4\u6bd4\u8f83\uff08Alexander Pyhalov\uff09\u00a7", "title": "\u5141\u8bb8\u5728\u9884\u5907\u8bed\u53e5\u4e2d\u5411postgres_fdw\u5916\u90e8\u670d\u52a1\u5668\u4e0b\u63a8\u6570\u7ec4\u6bd4\u8f83", "commits": ["62c3b4cd9"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "bf6501c55945ab2cfc9cfe31aa3a3cb39698957c6cba992abf2bbd630f5ec772", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["62c3b4cd9"]], "identity_text": "Allow pushdown of array comparisons in prepared statements to postgres-fdw foreign servers (Alexander Pyhalov)", "commit_aliases": ["62c3b4cd9"], "source_commits": ["62c3b4cd9"], "source_entry_id": "19.0/changes/172", "db_id": "7c1a1048290344a4c12534360c09ece8", "patch_ids": ["f62f187297629adfd7fcf55390ff9b7f"], "statement_hash": "2fad95447b0442a3e310ff1b8fc810cccdbd60f2879adb6fdd18627a87ff3b4a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-eddedbbb429acb3a", "migration": false}, {"id": "19.0-1e03f39a22c1e032", "cves": [], "html": "<p>\u5141\u8bb8\u4ece<a href=\"/docs/19/sql-createforeigndatawrapper.html\" title=\"CREATE FOREIGN DATA WRAPPER\">\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u670d\u52a1\u5668</a>\u83b7\u53d6\u7edf\u8ba1\u4fe1\u606f\uff08Corey Huinker\uff0cEtsuro Fujita\uff09<a href=\"https://postgr.es/c/28972b6fc\">\u00a7</a><a href=\"https://postgr.es/c/48965e146\">\u00a7</a></p>\n<p><a href=\"/docs/19/postgres-fdw.html\" title=\"F.40.\u00a0postgres_fdw \u2014 \u8bbf\u95ee\u5b58\u50a8\u5728\u5916\u90e8 PostgreSQL \u670d\u52a1\u5668\u4e2d\u7684\u6570\u636e\">postgres_fdw</a>\u901a\u8fc7 <code>import_stats</code> \u9009\u9879\u542f\u7528\u6b64\u529f\u80fd\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c<a href=\"/docs/19/sql-analyze.html\" title=\"ANALYZE\"><code>ANALYZE</code></a> \u4f1a\u4ece\u8fdc\u7aef\u670d\u52a1\u5668\u53d6\u56de\u884c\u5e76\u5728\u672c\u5730\u751f\u6210\u7edf\u8ba1\u4fe1\u606f\u3002</p>", "text": "\u5141\u8bb8\u4ece\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u670d\u52a1\u5668\u83b7\u53d6\u7edf\u8ba1\u4fe1\u606f\uff08Corey Huinker\uff0cEtsuro Fujita\uff09\u00a7\u00a7 postgres_fdw\u901a\u8fc7 import_stats \u9009\u9879\u542f\u7528\u6b64\u529f\u80fd\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cANALYZE \u4f1a\u4ece\u8fdc\u7aef\u670d\u52a1\u5668\u53d6\u56de\u884c\u5e76\u5728\u672c\u5730\u751f\u6210\u7edf\u8ba1\u4fe1\u606f\u3002", "title": "\u5141\u8bb8\u4ece\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u670d\u52a1\u5668\u83b7\u53d6\u7edf\u8ba1\u4fe1\u606f", "commits": ["28972b6fc", "48965e146"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "c491a770f56fc770088cd79a575cd702765358d6bb67a46710a23f97506d0116", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["28972b6fc"], ["48965e146"]], "identity_text": "Allow the retrieval of statistics from foreign data wrapper servers (Corey Huinker, Etsuro Fujita) This is enabled for postgres-fdw by using the option import_stats. The default is for ANALYZE to retrieve rows from the remote server to locally generate statistics.", "commit_aliases": ["28972b6fc", "48965e146"], "source_commits": ["28972b6fc", "48965e146"], "source_entry_id": "19.0/changes/173", "db_id": "e5338180d766356be9f67fddaeae1994", "patch_ids": ["0a3e4f8c65c86bee4910df07d96c9f0f", "0fbcb5c78b6ff5e00b109690209d5e8a"], "statement_hash": "d6299e58b604a812f27e3f536f8f239cf792bbb9bb8a9bb973017b5a5bb6a8f1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-1e03f39a22c1e032", "migration": false}, {"id": "19.0-429d7b7d959eecab", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/file-fdw.html\" title=\"F.15.\u00a0file_fdw \u2014 \u8bbf\u95ee\u670d\u52a1\u5668\u6587\u4ef6\u7cfb\u7edf\u4e2d\u7684\u6570\u636e\u6587\u4ef6\">file_fdw</a>\u8bfb\u53d6\u4f7f\u7528\u591a\u884c HEADER \u7684\u6587\u4ef6\u6216\u7a0b\u5e8f\u8f93\u51fa\uff08Shinya Kato\uff09<a href=\"https://postgr.es/c/26cb14aea\">\u00a7</a></p>", "text": "\u5141\u8bb8file_fdw\u8bfb\u53d6\u4f7f\u7528\u591a\u884c HEADER \u7684\u6587\u4ef6\u6216\u7a0b\u5e8f\u8f93\u51fa\uff08Shinya Kato\uff09\u00a7", "title": "\u5141\u8bb8file_fdw\u8bfb\u53d6\u4f7f\u7528\u591a\u884c HEADER \u7684\u6587\u4ef6\u6216\u7a0b\u5e8f\u8f93\u51fa", "commits": ["26cb14aea"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "5711000ea7d7b32f82875c01a7d9125ecc2fd19b31a8bc9e4f83fa7d14d22f93", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["26cb14aea"]], "identity_text": "Allow file-fdw to read files or program output that uses multi-line headers (Shinya Kato)", "commit_aliases": ["26cb14aea"], "source_commits": ["26cb14aea"], "source_entry_id": "19.0/changes/174", "db_id": "f3aeae7bb3242d31771a456e66e4cb8f", "patch_ids": ["3ca3196d311c8cbda6df506d55e2219f"], "statement_hash": "8d83ef0b2f482eb9ecbf1ffdcd487f18316ca92d9d483dbf4dabd8a9711c20c8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-429d7b7d959eecab", "migration": false}, {"id": "19.0-ad09c20284b84625", "cves": [], "html": "<p>\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf <code>auto_explain.log_io</code>\uff0c\u4e3a<a href=\"/docs/19/auto-explain.html\" title=\"F.3.\u00a0auto_explain \u2014 \u8bb0\u5f55\u6162\u67e5\u8be2\u7684\u6267\u884c\u8ba1\u5212\"><span>auto_explain</span></a>\u6dfb\u52a0 IO \u62a5\u544a\uff08Tomas Vondra\uff09<a href=\"https://postgr.es/c/61c36a34a\">\u00a7</a></p>", "text": "\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf auto_explain.log_io\uff0c\u4e3aauto_explain\u6dfb\u52a0 IO \u62a5\u544a\uff08Tomas Vondra\uff09\u00a7", "title": "\u65b0\u589e\u670d\u52a1\u5668\u53d8\u91cf auto_explain.log_io\uff0c\u4e3aauto_explain\u6dfb\u52a0 IO \u62a5\u544a", "commits": ["61c36a34a"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "5b7a66994e15136bcd9c1e24155de1987271bd443a76ea03aadb7d13c4f61804", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["61c36a34a"]], "identity_text": "Add server variable auto_explain.log_io to add IO reporting to auto_explain (Tomas Vondra)", "commit_aliases": ["61c36a34a"], "source_commits": ["61c36a34a"], "source_entry_id": "19.0/changes/175", "db_id": "9b13adac2e7d1b08fdc1e15624463bce", "patch_ids": ["45ed70c12bcc1a7ec0563a04c899b0f2"], "statement_hash": "99e7c0ae99e164554f864d219ea2290b866bc2d95b00489b33531e6b60c7b906", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-ad09c20284b84625", "migration": false}, {"id": "19.0-90824fc0bf10593e", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/auto-explain.html\" title=\"F.3.\u00a0auto_explain \u2014 \u8bb0\u5f55\u6162\u67e5\u8be2\u7684\u6267\u884c\u8ba1\u5212\"><span>auto_explain</span></a>\u6dfb\u52a0\u6269\u5c55\u7279\u5b9a\u7684 <a href=\"/docs/19/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN</code></a> \u9009\u9879\uff0c\u5e76\u901a\u8fc7\u670d\u52a1\u5668\u53d8\u91cf <code>auto_explain.log_extension_options</code> \u63a7\u5236\uff08Robert Haas\uff09<a href=\"https://postgr.es/c/e972dff6c\">\u00a7</a></p>", "text": "\u5141\u8bb8auto_explain\u6dfb\u52a0\u6269\u5c55\u7279\u5b9a\u7684 EXPLAIN \u9009\u9879\uff0c\u5e76\u901a\u8fc7\u670d\u52a1\u5668\u53d8\u91cf auto_explain.log_extension_options \u63a7\u5236\uff08Robert Haas\uff09\u00a7", "title": "\u5141\u8bb8auto_explain\u6dfb\u52a0\u6269\u5c55\u7279\u5b9a\u7684 EXPLAIN \u9009\u9879\uff0c\u5e76\u901a\u8fc7\u670d\u52a1\u5668\u53d8\u91cf auto_explain.log_extension_options \u63a7\u5236", "commits": ["e972dff6c"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "a46f9bdffcb91e8068684045c20d81500cedb2b2840fcdb30b054c323fd289c9", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["e972dff6c"]], "identity_text": "Allow auto_explain to add extension-specific EXPLAIN options via server variable auto_explain.log_extension_options (Robert Haas)", "commit_aliases": ["e972dff6c"], "source_commits": ["e972dff6c"], "source_entry_id": "19.0/changes/176", "db_id": "bd12ac3aea9a8d6d1cdfd0013d085016", "patch_ids": ["858dba353a2947f79be7f84249de7df9"], "statement_hash": "2c64f08a5f6253b60f1ee5fc117e84e13d747b680dc284ceafce932968264453", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-90824fc0bf10593e", "migration": false}, {"id": "19.0-29bcdfcac418df19", "cves": [], "html": "<p>\u4fee\u6539<a href=\"/docs/19/btree-gin.html\" title=\"F.7.\u00a0btree_gin \u2014 \u5177\u6709 B-\u6811\u884c\u4e3a\u7684 GIN \u64cd\u4f5c\u7b26\u7c7b\">btree_gin</a>\uff0c\u4f7f\u5176\u652f\u6301 btree \u6240\u652f\u6301\u7684\u6240\u6709\u8de8\u7c7b\u578b\u6bd4\u8f83\uff08Tom Lane\uff09<a href=\"https://postgr.es/c/e2b64fcef\">\u00a7</a> <a href=\"https://postgr.es/c/fc896821c\">\u00a7</a></p>", "text": "\u4fee\u6539btree_gin\uff0c\u4f7f\u5176\u652f\u6301 btree \u6240\u652f\u6301\u7684\u6240\u6709\u8de8\u7c7b\u578b\u6bd4\u8f83\uff08Tom Lane\uff09\u00a7 \u00a7", "title": "\u4fee\u6539btree_gin\uff0c\u4f7f\u5176\u652f\u6301 btree \u6240\u652f\u6301\u7684\u6240\u6709\u8de8\u7c7b\u578b\u6bd4\u8f83", "commits": ["e2b64fcef", "fc896821c"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "edbbbc7feb56b2d1a5299680352e405d62c795222ad63253dac5f142b6a819a4", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["e2b64fcef"], ["fc896821c"]], "identity_text": "Change btree-gin to support all btree-supported cross-type comparisons (Tom Lane)", "commit_aliases": ["e2b64fcef", "fc896821c"], "source_commits": ["e2b64fcef", "fc896821c"], "source_entry_id": "19.0/changes/177", "db_id": "6330392f29f43702451e3b94f5b40ee6", "patch_ids": ["465447a0b402e5edd236531603aa582e", "7a3130d69f709a301347e069b21a7e35"], "statement_hash": "d6132868a4bcffb9ab5280c1c4a08fb06978895a355b7dea4f1bad6174c4bb69", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-29bcdfcac418df19", "migration": false}, {"id": "19.0-ac704872f4332fc0", "cves": [], "html": "<p>\u901a\u8fc7\u6d41\u5f0f\u8bfb\u53d6\u6539\u8fdb<a href=\"/docs/19/bloom.html\" title=\"F.6.\u00a0bloom \u2014 \u5e03\u9686\u8fc7\u6ee4\u5668\u7d22\u5f15\u8bbf\u95ee\u65b9\u6cd5\">bloom</a>\u7d22\u5f15\u6027\u80fd\uff08Xuneng Zhou\uff09<a href=\"https://postgr.es/c/4c910f3bb\">\u00a7</a><a href=\"https://postgr.es/c/d841ca2d1\">\u00a7</a></p>", "text": "\u901a\u8fc7\u6d41\u5f0f\u8bfb\u53d6\u6539\u8fdbbloom\u7d22\u5f15\u6027\u80fd\uff08Xuneng Zhou\uff09\u00a7\u00a7", "title": "\u901a\u8fc7\u6d41\u5f0f\u8bfb\u53d6\u6539\u8fdbbloom\u7d22\u5f15\u6027\u80fd", "commits": ["4c910f3bb", "d841ca2d1"], "section": "\u9644\u52a0\u6a21\u5757", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "aaa048beb10dd8b7c1c5a7624c84cf705067a690cea9ae8598847bbbc1208b91", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["4c910f3bb"], ["d841ca2d1"]], "identity_text": "Improve performance of bloom indexes by using streaming reads (Xuneng Zhou)", "commit_aliases": ["4c910f3bb", "d841ca2d1"], "source_commits": ["4c910f3bb", "d841ca2d1"], "source_entry_id": "19.0/changes/178", "db_id": "c1cae81ea4c701775cad29ff3f55752c", "patch_ids": ["686df171a67aee372faf0cb6692be924", "b7f9224c78446f20d7662ef68b714cce"], "statement_hash": "c18f530a0c78d3ed5bce4f12151346d68f3d1cc0202c7495ed6e256e0418d986", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-ac704872f4332fc0", "migration": false}, {"id": "19.0-c4b2a031dd653e0a", "cves": [], "html": "<p>\u4f7f\u7528\u6d41\u5f0f\u8bfb\u53d6\u6539\u8fdb<a href=\"/docs/19/pgstattuple.html\" title=\"F.35.\u00a0pgstattuple \u2014 \u83b7\u53d6\u5143\u7ec4\u7ea7\u7edf\u8ba1\u4fe1\u606f\">pgstattuple</a>\u7684\u6027\u80fd\uff08Xuneng Zhou\uff09<a href=\"https://postgr.es/c/213f0079b\">\u00a7</a> <a href=\"https://postgr.es/c/ae58189a4\">\u00a7</a></p>", "text": "\u4f7f\u7528\u6d41\u5f0f\u8bfb\u53d6\u6539\u8fdbpgstattuple\u7684\u6027\u80fd\uff08Xuneng Zhou\uff09\u00a7 \u00a7", "title": "\u4f7f\u7528\u6d41\u5f0f\u8bfb\u53d6\u6539\u8fdbpgstattuple\u7684\u6027\u80fd", "commits": ["213f0079b", "ae58189a4"], "section": "\u9644\u52a0\u6a21\u5757", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "cc178c65f3173eb3e64fac7f6710652e29021bc1410e8a539e39ce0204887ee8", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["213f0079b"], ["ae58189a4"]], "identity_text": "Improve performance of pgstattuple by using streaming reads (Xuneng Zhou)", "commit_aliases": ["213f0079b", "ae58189a4"], "source_commits": ["213f0079b", "ae58189a4"], "source_entry_id": "19.0/changes/179", "db_id": "8a7e7de06c5684b8c541a0615c99b239", "patch_ids": ["960a7173fce3ace43c22feabf9818d26", "f88c740e4a92e5ef0efe0673eff46dbc"], "statement_hash": "6ce3c55548064e89eb5c7d1302ac0d2dc42f31f405d0d8d3277e6d4829f61f8b", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=19.0#19.0-c4b2a031dd653e0a", "migration": false}, {"id": "19.0-5a85f6473dd52e4d", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/19/fuzzystrmatch.html\" title=\"F.16.\u00a0fuzzystrmatch \u2014 \u786e\u5b9a\u5b57\u7b26\u4e32\u7684\u76f8\u4f3c\u6027\u548c\u8ddd\u79bb\">fuzzystrmatch</a>\u7684 <code>dmetaphone()</code> \u4f7f\u7528 <acronym>ASCII</acronym> \u4ee5\u5916\u7684\u5355\u5b57\u8282\u7f16\u7801\uff08Peter Eisentraut\uff09<a href=\"https://postgr.es/c/e39ece034\">\u00a7</a></p>", "text": "\u5141\u8bb8fuzzystrmatch\u7684 dmetaphone() \u4f7f\u7528 ASCII \u4ee5\u5916\u7684\u5355\u5b57\u8282\u7f16\u7801\uff08Peter Eisentraut\uff09\u00a7", "title": "\u5141\u8bb8fuzzystrmatch\u7684 dmetaphone() \u4f7f\u7528 ASCII \u4ee5\u5916\u7684\u5355\u5b57\u8282\u7f16\u7801", "commits": ["e39ece034"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "6938b43dc65fc6a1bb7210e2e528f0f619e6e5ac4a694502478fac25531d1d07", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["e39ece034"]], "identity_text": "Allow fuzzystrmatch 's dmetaphone() to use single-byte encodings beyond ASCII (Peter Eisentraut)", "commit_aliases": ["e39ece034"], "source_commits": ["e39ece034"], "source_entry_id": "19.0/changes/180", "db_id": "2f4cdc177b6b4856fb1182f67f4b9591", "patch_ids": ["c0bb5dadb01930e4bf51801126b09e77"], "statement_hash": "90a2b497dfcd9fbcde3399375b31dc47ae8b5ccbdc57e385d35ed61273d0949d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-5a85f6473dd52e4d", "migration": false}, {"id": "19.0-4c2b4282c1fc2d4e", "cves": [], "html": "<p>\u4fee\u6539 <a href=\"/docs/19/oid2name.html\" title=\"oid2name\"><span>oid2name</span></a> <code>--extended</code> \u4ee5\u62a5\u544a\u5173\u7cfb\u6587\u4ef6\u8def\u5f84\uff08David Bidoc\uff09<a href=\"https://postgr.es/c/3c5ec35de\">\u00a7</a></p>", "text": "\u4fee\u6539 oid2name --extended \u4ee5\u62a5\u544a\u5173\u7cfb\u6587\u4ef6\u8def\u5f84\uff08David Bidoc\uff09\u00a7", "title": "\u4fee\u6539 oid2name --extended \u4ee5\u62a5\u544a\u5173\u7cfb\u6587\u4ef6\u8def\u5f84", "commits": ["3c5ec35de"], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "f16432d570e8d20b878f5a2ec611a0940b1517d3c6632205a0d423d0f97e0ef2", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [["3c5ec35de"]], "identity_text": "Modify oid2name --extended to report the relation file path (David Bidoc)", "commit_aliases": ["3c5ec35de"], "source_commits": ["3c5ec35de"], "source_entry_id": "19.0/changes/181", "db_id": "5bd49119a0395f6378c1f44a163d7fec", "patch_ids": ["bd4ef9575357e38c8246f151b82b9c64"], "statement_hash": "e3b3e66f689dd66d8d6abd9f1abbdd0e2a059ba32e8928dd5543692c1c506e0a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=19.0#19.0-4c2b4282c1fc2d4e", "migration": false}], "initial_entry_count": 198, "migration_html": "<p>\u5bf9\u4e8e\u60f3\u4ece\u4efb\u4f55\u5148\u524d\u7248\u672c\u8fc1\u79fb\u6570\u636e\u7684\u7528\u6237\uff0c\u9700\u8981\u4f7f\u7528<a href=\"/docs/19/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a>\u6267\u884c\u5bfc\u51fa/\u6062\u590d\uff0c\u6216\u8005\u4f7f\u7528<a href=\"/docs/19/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a>\uff0c\u6216\u8005\u4f7f\u7528\u903b\u8f91\u590d\u5236\u3002\u6709\u5173\u8fc1\u79fb\u5230\u65b0\u4e3b\u7248\u672c\u7684\u4e00\u822c\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1<a href=\"/docs/19/upgrading.html\" title=\"18.6.\u00a0\u5347\u7ea7 PostgreSQL \u96c6\u7c07\">\u7b2c\u00a018.6\u00a0\u8282</a>\u3002</p>\n<p>19 \u7248\u672c\u5305\u542b\u82e5\u5e72\u53ef\u80fd\u5f71\u54cd\u4e0e\u5148\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": 161}, {"key": "bugfix", "label": "BUG \u4fee\u590d", "count": 0}, {"key": "security", "label": "\u5b89\u5168\u76f8\u5173", "count": 0}, {"key": "performance", "label": "\u6027\u80fd\u6539\u8fdb", "count": 20}, {"key": "compatibility", "label": "\u517c\u5bb9\u6027\u53d8\u5316", "count": 17}, {"key": "improvement", "label": "\u5176\u4ed6\u6539\u8fdb", "count": 0}], "security_rows": [], "security_covered": false, "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": 18212851, "url": "/files/documentation/pdf/19/postgresql-19-A4.pdf"}, {"label": "US Letter PDF", "bytes": 18198517, "url": "/files/documentation/pdf/19/postgresql-19-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": ""}]}