{"format": 1, "version": {"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"}, "releases": [{"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}, {"version": "9.1.23", "build": "9.1.23", "status": "stable", "date": "2016-08-11", "source_as_of": "", "url": "/docs/compare/?release=9.1.23", "manual_url": "/docs/9.1/release-9-1-23.html", "source_url": "/docs/release/9.1.23/", "entry_count": 22, "categories": {"security": 2, "bugfix": 8, "improvement": 12}, "compatibility_count": 0, "cves": ["CVE-2016-5423", "CVE-2016-5424"], "cve_count": 2}, {"version": "9.1.22", "build": "9.1.22", "status": "stable", "date": "2016-05-12", "source_as_of": "", "url": "/docs/compare/?release=9.1.22", "manual_url": "/docs/9.1/release-9-1-22.html", "source_url": "/docs/release/9.1.22/", "entry_count": 11, "categories": {"improvement": 6, "bugfix": 5}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "9.1.21", "build": "9.1.21", "status": "stable", "date": "2016-03-31", "source_as_of": "", "url": "/docs/compare/?release=9.1.21", "manual_url": "/docs/9.1/release-9-1-21.html", "source_url": "/docs/release/9.1.21/", "entry_count": 17, "categories": {"bugfix": 9, "improvement": 8}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "9.1.20", "build": "9.1.20", "status": "stable", "date": "2016-02-11", "source_as_of": "", "url": "/docs/compare/?release=9.1.20", "manual_url": "/docs/9.1/release-9-1-20.html", "source_url": "/docs/release/9.1.20/", "entry_count": 45, "categories": {"security": 4, "improvement": 23, "bugfix": 17, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2007-4772", "CVE-2015-7499", "CVE-2016-0766", "CVE-2016-0773"], "cve_count": 4}, {"version": "9.1.19", "build": "9.1.19", "status": "stable", "date": "2015-10-08", "source_as_of": "", "url": "/docs/compare/?release=9.1.19", "manual_url": "/docs/9.1/release-9-1-19.html", "source_url": "/docs/release/9.1.19/", "entry_count": 54, "categories": {"security": 1, "bugfix": 30, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2015-5288"], "cve_count": 1}, {"version": "9.1.18", "build": "9.1.18", "status": "stable", "date": "2015-06-12", "source_as_of": "", "url": "/docs/compare/?release=9.1.18", "manual_url": "/docs/9.1/release-9-1-18.html", "source_url": "/docs/release/9.1.18/", "entry_count": 2, "categories": {"bugfix": 2}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "9.1.17", "build": "9.1.17", "status": "stable", "date": "2015-06-04", "source_as_of": "", "url": "/docs/compare/?release=9.1.17", "manual_url": "/docs/9.1/release-9-1-17.html", "source_url": "/docs/release/9.1.17/", "entry_count": 3, "categories": {"bugfix": 1, "improvement": 2}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "9.1.16", "build": "9.1.16", "status": "stable", "date": "2015-05-22", "source_as_of": "", "url": "/docs/compare/?release=9.1.16", "manual_url": "/docs/9.1/release-9-1-16.html", "source_url": "/docs/release/9.1.16/", "entry_count": 41, "categories": {"security": 3, "bugfix": 15, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2015-3165", "CVE-2015-3166", "CVE-2015-3167"], "cve_count": 3}, {"version": "9.1.15", "build": "9.1.15", "status": "stable", "date": "2015-02-05", "source_as_of": "", "url": "/docs/compare/?release=9.1.15", "manual_url": "/docs/9.1/release-9-1-15.html", "source_url": "/docs/release/9.1.15/", "entry_count": 60, "categories": {"security": 6, "bugfix": 26, "improvement": 27, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2014-0067", "CVE-2014-8161", "CVE-2015-0241", "CVE-2015-0242", "CVE-2015-0243", "CVE-2015-0244"], "cve_count": 6}, {"version": "9.1.14", "build": "9.1.14", "status": "stable", "date": "2014-07-24", "source_as_of": "", "url": "/docs/compare/?release=9.1.14", "manual_url": "/docs/9.1/release-9-1-14.html", "source_url": "/docs/release/9.1.14/", "entry_count": 32, "categories": {"improvement": 13, "bugfix": 17, "security": 1, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2014-0067"], "cve_count": 1}, {"version": "9.1.13", "build": "9.1.13", "status": "stable", "date": "2014-03-20", "source_as_of": "", "url": "/docs/compare/?release=9.1.13", "manual_url": "/docs/9.1/release-9-1-13.html", "source_url": "/docs/release/9.1.13/", "entry_count": 12, "categories": {"improvement": 8, "performance": 1, "bugfix": 3}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "9.1.12", "build": "9.1.12", "status": "stable", "date": "2014-02-20", "source_as_of": "", "url": "/docs/compare/?release=9.1.12", "manual_url": "/docs/9.1/release-9-1-12.html", "source_url": "/docs/release/9.1.12/", "entry_count": 43, "categories": {"security": 8, "bugfix": 20, "improvement": 15}, "compatibility_count": 0, "cves": ["CVE-2014-0060", "CVE-2014-0061", "CVE-2014-0062", "CVE-2014-0063", "CVE-2014-0064", "CVE-2014-0065", "CVE-2014-0066", "CVE-2014-0067"], "cve_count": 8}, {"version": "9.1.11", "build": "9.1.11", "status": "stable", "date": "2013-12-05", "source_as_of": "", "url": "/docs/compare/?release=9.1.11", "manual_url": "/docs/9.1/release-9-1-11.html", "source_url": "/docs/release/9.1.11/", "entry_count": 18, "categories": {"bugfix": 11, "improvement": 7}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "9.1.10", "build": "9.1.10", "status": "stable", "date": "2013-10-10", "source_as_of": "", "url": "/docs/compare/?release=9.1.10", "manual_url": "/docs/9.1/release-9-1-10.html", "source_url": "/docs/release/9.1.10/", "entry_count": 34, "categories": {"bugfix": 17, "improvement": 17}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "9.1.9", "build": "9.1.9", "status": "stable", "date": "2013-04-04", "source_as_of": "", "url": "/docs/compare/?release=9.1.9", "manual_url": "/docs/9.1/release-9-1-9.html", "source_url": "/docs/release/9.1.9/", "entry_count": 25, "categories": {"security": 3, "bugfix": 16, "improvement": 6}, "compatibility_count": 0, "cves": ["CVE-2013-1899", "CVE-2013-1900", "CVE-2013-1901"], "cve_count": 3}, {"version": "9.1.8", "build": "9.1.8", "status": "stable", "date": "2013-02-07", "source_as_of": "", "url": "/docs/compare/?release=9.1.8", "manual_url": "/docs/9.1/release-9-1-8.html", "source_url": "/docs/release/9.1.8/", "entry_count": 30, "categories": {"security": 1, "bugfix": 14, "improvement": 15}, "compatibility_count": 0, "cves": ["CVE-2013-0255"], "cve_count": 1}, {"version": "9.1.7", "build": "9.1.7", "status": "stable", "date": "2012-12-06", "source_as_of": "", "url": "/docs/compare/?release=9.1.7", "manual_url": "/docs/9.1/release-9-1-7.html", "source_url": "/docs/release/9.1.7/", "entry_count": 40, "categories": {"bugfix": 25, "improvement": 15}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "9.1.6", "build": "9.1.6", "status": "stable", "date": "2012-09-24", "source_as_of": "", "url": "/docs/compare/?release=9.1.6", "manual_url": "/docs/9.1/release-9-1-6.html", "source_url": "/docs/release/9.1.6/", "entry_count": 17, "categories": {"bugfix": 8, "improvement": 9}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "9.1.5", "build": "9.1.5", "status": "stable", "date": "2012-08-17", "source_as_of": "", "url": "/docs/compare/?release=9.1.5", "manual_url": "/docs/9.1/release-9-1-5.html", "source_url": "/docs/release/9.1.5/", "entry_count": 30, "categories": {"security": 2, "improvement": 12, "bugfix": 16}, "compatibility_count": 0, "cves": ["CVE-2012-3488", "CVE-2012-3489"], "cve_count": 2}, {"version": "9.1.4", "build": "9.1.4", "status": "stable", "date": "2012-06-04", "source_as_of": "", "url": "/docs/compare/?release=9.1.4", "manual_url": "/docs/9.1/release-9-1-4.html", "source_url": "/docs/release/9.1.4/", "entry_count": 42, "categories": {"security": 2, "bugfix": 30, "improvement": 10}, "compatibility_count": 0, "cves": ["CVE-2012-2143", "CVE-2012-2655"], "cve_count": 2}, {"version": "9.1.3", "build": "9.1.3", "status": "stable", "date": "2012-02-27", "source_as_of": "", "url": "/docs/compare/?release=9.1.3", "manual_url": "/docs/9.1/release-9-1-3.html", "source_url": "/docs/release/9.1.3/", "entry_count": 46, "categories": {"security": 3, "bugfix": 24, "improvement": 19}, "compatibility_count": 0, "cves": ["CVE-2012-0866", "CVE-2012-0867", "CVE-2012-0868"], "cve_count": 3}, {"version": "9.1.2", "build": "9.1.2", "status": "stable", "date": "2011-12-05", "source_as_of": "", "url": "/docs/compare/?release=9.1.2", "manual_url": "/docs/9.1/release-9-1-2.html", "source_url": "/docs/release/9.1.2/", "entry_count": 52, "categories": {"bugfix": 22, "performance": 1, "improvement": 29}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "9.1.1", "build": "9.1.1", "status": "stable", "date": "2011-09-26", "source_as_of": "", "url": "/docs/compare/?release=9.1.1", "manual_url": "/docs/9.1/release-9-1-1.html", "source_url": "/docs/release/9.1.1/", "entry_count": 3, "categories": {"improvement": 1, "bugfix": 2}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"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}], "initial_entries": [{"id": "9.1.0-3d14c7b18af21e63", "cves": [], "html": "<p>\u628a <a href=\"/docs/9.1/runtime-config-compatible.html#GUC-STANDARD-CONFORMING-STRINGS\"><code>standard_conforming_strings</code></a> \u7684\u9ed8\u8ba4\u503c\u6539\u4e3a on\uff08Robert Haas\uff09</p>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u53cd\u659c\u6760\u73b0\u5728\u662f\u5b57\u7b26\u4e32\u5b57\u9762\u91cf\u4e2d\u7684\u666e\u901a\u5b57\u7b26\uff0c\u800c\u4e0d\u662f\u8f6c\u4e49\u5b57\u7b26\u3002\u6b64\u53d8\u66f4\u6d88\u9664\u4e86\u4e00\u4e2a\u4e0e SQL \u6807\u51c6\u957f\u671f\u5b58\u5728\u7684\u4e0d\u517c\u5bb9\u3002<a href=\"/docs/9.1/runtime-config-compatible.html#GUC-ESCAPE-STRING-WARNING\"><code>escape_string_warning</code></a> \u591a\u5e74\u6765\u4e00\u76f4\u5bf9\u8fd9\u79cd\u7528\u6cd5\u53d1\u51fa\u8b66\u544a\u3002<code>E''</code> \u5b57\u7b26\u4e32\u662f\u5728\u5b57\u7b26\u4e32\u4e2d\u5d4c\u5165\u53cd\u659c\u6760\u8f6c\u4e49\u7684\u6b63\u786e\u65b9\u5f0f\uff0c\u4e0d\u53d7\u6b64\u53d8\u66f4\u5f71\u54cd\u3002</p>\n<div>\n\n\u8b66\u544a\n<p>\u6b64\u53d8\u66f4\u53ef\u80fd\u7834\u574f\u672a\u9884\u6599\u5230\u5b83\u5e76\u6309\u65e7\u89c4\u5219\u81ea\u884c\u505a\u5b57\u7b26\u4e32\u8f6c\u4e49\u7684\u5e94\u7528\u3002\u540e\u679c\u53ef\u80fd\u4e25\u91cd\u5230\u5f15\u5165 SQL \u6ce8\u5165\u5b89\u5168\u6f0f\u6d1e\u3002\u52a1\u5fc5\u6d4b\u8bd5\u66b4\u9732\u4e8e\u4e0d\u53ef\u4fe1\u8f93\u5165\u7684\u5e94\u7528\uff0c\u786e\u4fdd\u5b83\u4eec\u6b63\u786e\u5904\u7406\u6587\u672c\u5b57\u7b26\u4e32\u4e2d\u7684\u5355\u5f15\u53f7\u548c\u53cd\u659c\u6760\u3002</p>\n</div>", "text": "\u628a standard_conforming_strings \u7684\u9ed8\u8ba4\u503c\u6539\u4e3a on\uff08Robert Haas\uff09 \u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u53cd\u659c\u6760\u73b0\u5728\u662f\u5b57\u7b26\u4e32\u5b57\u9762\u91cf\u4e2d\u7684\u666e\u901a\u5b57\u7b26\uff0c\u800c\u4e0d\u662f\u8f6c\u4e49\u5b57\u7b26\u3002\u6b64\u53d8\u66f4\u6d88\u9664\u4e86\u4e00\u4e2a\u4e0e SQL \u6807\u51c6\u957f\u671f\u5b58\u5728\u7684\u4e0d\u517c\u5bb9\u3002escape_string_warning \u591a\u5e74\u6765\u4e00\u76f4\u5bf9\u8fd9\u79cd\u7528\u6cd5\u53d1\u51fa\u8b66\u544a\u3002E'' \u5b57\u7b26\u4e32\u662f\u5728\u5b57\u7b26\u4e32\u4e2d\u5d4c\u5165\u53cd\u659c\u6760\u8f6c\u4e49\u7684\u6b63\u786e\u65b9\u5f0f\uff0c\u4e0d\u53d7\u6b64\u53d8\u66f4\u5f71\u54cd\u3002 \u8b66\u544a \u6b64\u53d8\u66f4\u53ef\u80fd\u7834\u574f\u672a\u9884\u6599\u5230\u5b83\u5e76\u6309\u65e7\u89c4\u5219\u81ea\u884c\u505a\u5b57\u7b26\u4e32\u8f6c\u4e49\u7684\u5e94\u7528\u3002\u540e\u679c\u53ef\u80fd\u4e25\u91cd\u5230\u5f15\u5165 SQL \u6ce8\u5165\u5b89\u5168\u6f0f\u6d1e\u3002\u52a1\u5fc5\u6d4b\u8bd5\u66b4\u9732\u4e8e\u4e0d\u53ef\u4fe1\u8f93\u5165\u7684\u5e94\u7528\uff0c\u786e\u4fdd\u5b83\u4eec\u6b63\u786e\u5904\u7406\u6587\u672c\u5b57\u7b26\u4e32\u4e2d\u7684\u5355\u5f15\u53f7\u548c\u53cd\u659c\u6760\u3002", "title": "\u628a standard_conforming_strings \u7684\u9ed8\u8ba4\u503c\u6539\u4e3a on", "commits": [], "section": "\u5b57\u7b26\u4e32", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.4", "source_hash": "db22180001979e6c5b3e9f1877cc72992c8c1474e73491e9441c5fa05e4dcd69", "section_path": ["\u5b57\u7b26\u4e32"], "commit_groups": [], "identity_text": "Change the default value of standard_conforming_strings to on (Robert Haas) By default, backslashes are now ordinary characters in string literals, not escape characters. This change removes a long-standing incompatibility with the SQL standard. escape_string_warning has produced warnings about this usage for years. E'' strings are the proper way to embed backslash escapes in strings and are unaffected by this change. This change can break applications that are not expecting it and do their own string escaping according to the old rules. The consequences could be as severe as introducing SQL-injection security holes. Be sure to test applications that are exposed to untrusted input, to ensure that they correctly handle single quotes and backslashes in text strings.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/001", "db_id": "68491f69c5375056ddd6bb75f172e864", "patch_ids": [], "statement_hash": "dedad57c5cdbceef18439ac1ff57be80d1490f34f1700a9ef6b438351cbd4fe0", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-3d14c7b18af21e63", "migration": true}, {"id": "9.1.0-e267d5c16d016b1c", "cves": [], "html": "<p>\u7981\u6b62\u5bf9\u7ec4\u5408\u7c7b\u578b\u4f7f\u7528\u51fd\u6570\u5f0f\u548c\u5c5e\u6027\u5f0f\u6570\u636e\u7c7b\u578b\u8f6c\u6362\uff08Tom Lane\uff09</p>\n<p>\u4f8b\u5982\uff0c\u7981\u6b62 <code><em><code>composite_value</code></em>.text</code> \u548c <code>text(<em><code>composite_value</code></em>)</code>\u3002\u65e0\u610f\u4e2d\u4f7f\u7528\u8fd9\u79cd\u8bed\u6cd5\u5e38\u5e38\u5bfc\u81f4\u7f3a\u9677\u62a5\u544a\uff1b\u867d\u7136\u8fd9\u4e0d\u662f\u7f3a\u9677\uff0c\u4f46\u56de\u5230\u62d2\u7edd\u8fd9\u7c7b\u8868\u8fbe\u5f0f\u4f3c\u4e4e\u66f4\u597d\u3002\u5f53\u786e\u5b9e\u60f3\u8981\u8f6c\u6362\u6574\u4e2a\u7ec4\u5408\u503c\u65f6\uff0c<code>CAST</code> \u548c <code>::</code> \u8bed\u6cd5\u4ecd\u7136\u53ef\u7528\u3002</p>", "text": "\u7981\u6b62\u5bf9\u7ec4\u5408\u7c7b\u578b\u4f7f\u7528\u51fd\u6570\u5f0f\u548c\u5c5e\u6027\u5f0f\u6570\u636e\u7c7b\u578b\u8f6c\u6362\uff08Tom Lane\uff09 \u4f8b\u5982\uff0c\u7981\u6b62 composite_value.text \u548c text(composite_value)\u3002\u65e0\u610f\u4e2d\u4f7f\u7528\u8fd9\u79cd\u8bed\u6cd5\u5e38\u5e38\u5bfc\u81f4\u7f3a\u9677\u62a5\u544a\uff1b\u867d\u7136\u8fd9\u4e0d\u662f\u7f3a\u9677\uff0c\u4f46\u56de\u5230\u62d2\u7edd\u8fd9\u7c7b\u8868\u8fbe\u5f0f\u4f3c\u4e4e\u66f4\u597d\u3002\u5f53\u786e\u5b9e\u60f3\u8981\u8f6c\u6362\u6574\u4e2a\u7ec4\u5408\u503c\u65f6\uff0cCAST \u548c :: \u8bed\u6cd5\u4ecd\u7136\u53ef\u7528\u3002", "title": "\u7981\u6b62\u5bf9\u7ec4\u5408\u7c7b\u578b\u4f7f\u7528\u51fd\u6570\u5f0f\u548c\u5c5e\u6027\u5f0f\u6570\u636e\u7c7b\u578b\u8f6c\u6362", "commits": [], "section": "\u7c7b\u578b\u8f6c\u6362", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.5", "source_hash": "e0d2e7ff9f4672f2df2b988aeb76dcd5a92c1f2eb94ac3b9c966e6ee8b6d83e8", "section_path": ["\u7c7b\u578b\u8f6c\u6362"], "commit_groups": [], "identity_text": "Disallow function-style and attribute-style data type casts for composite types (Tom Lane) For example, disallow composite_value.text and text(composite_value). Unintentional uses of this syntax have frequently resulted in bug reports; although it was not a bug, it seems better to go back to rejecting such expressions. The CAST and :: syntaxes are still available for use when a cast of an entire composite value is actually intended.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/002", "db_id": "6fc4b0b92171fa85b8a8c82a80c56651", "patch_ids": [], "statement_hash": "ba97fcb0b8091bd9ca810da3db24e44a76b12cad701cf33cfed36b106098795c", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-e267d5c16d016b1c", "migration": true}, {"id": "9.1.0-2d66033b0554bc02", "cves": [], "html": "<p>\u6536\u7d27\u5bf9\u57fa\u4e8e\u6570\u7ec4\u7684\u57df\u7684\u8f6c\u6362\u68c0\u67e5\uff08Tom Lane\uff09</p>\n<p>\u5f53\u57df\u57fa\u4e8e\u6570\u7ec4\u7c7b\u578b\u65f6\uff0c\u5141\u8bb8<span>\u201c<span>\u900f\u8fc7</span>\u201d</span>\u57df\u7c7b\u578b\u8bbf\u95ee\u6570\u7ec4\u5143\u7d20\uff0c\u5305\u62ec\u5bf9\u57df\u503c\u505a\u4e0b\u6807\u64cd\u4f5c\u6765\u83b7\u53d6\u6216\u8d4b\u503c\u5143\u7d20\u3002\u5bf9\u8fd9\u79cd\u57df\u503c\u7684\u5143\u7d20\u8d4b\u503c\uff08\u4f8b\u5982\u901a\u8fc7 <code>UPDATE ... SET domaincol[5] = ...</code>\uff09\u73b0\u5728\u4f1a\u91cd\u65b0\u68c0\u67e5\u57df\u7c7b\u578b\u7684\u7ea6\u675f\uff0c\u800c\u6b64\u524d\u4f1a\u8df3\u8fc7\u68c0\u67e5\u3002</p>", "text": "\u6536\u7d27\u5bf9\u57fa\u4e8e\u6570\u7ec4\u7684\u57df\u7684\u8f6c\u6362\u68c0\u67e5\uff08Tom Lane\uff09 \u5f53\u57df\u57fa\u4e8e\u6570\u7ec4\u7c7b\u578b\u65f6\uff0c\u5141\u8bb8\u201c\u900f\u8fc7\u201d\u57df\u7c7b\u578b\u8bbf\u95ee\u6570\u7ec4\u5143\u7d20\uff0c\u5305\u62ec\u5bf9\u57df\u503c\u505a\u4e0b\u6807\u64cd\u4f5c\u6765\u83b7\u53d6\u6216\u8d4b\u503c\u5143\u7d20\u3002\u5bf9\u8fd9\u79cd\u57df\u503c\u7684\u5143\u7d20\u8d4b\u503c\uff08\u4f8b\u5982\u901a\u8fc7 UPDATE ... SET domaincol[5] = ...\uff09\u73b0\u5728\u4f1a\u91cd\u65b0\u68c0\u67e5\u57df\u7c7b\u578b\u7684\u7ea6\u675f\uff0c\u800c\u6b64\u524d\u4f1a\u8df3\u8fc7\u68c0\u67e5\u3002", "title": "\u6536\u7d27\u5bf9\u57fa\u4e8e\u6570\u7ec4\u7684\u57df\u7684\u8f6c\u6362\u68c0\u67e5", "commits": [], "section": "\u7c7b\u578b\u8f6c\u6362", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.5", "source_hash": "af3f29388ff961d2c058092273bcbfb56e5abe5ecbfba9474ffd730bdd3486db", "section_path": ["\u7c7b\u578b\u8f6c\u6362"], "commit_groups": [], "identity_text": "Tighten casting checks for domains based on arrays (Tom Lane) When a domain is based on an array type, it is allowed to look through the domain type to access the array elements, including subscripting the domain value to fetch or assign an element. Assignment to an element of such a domain value, for instance via UPDATE ... SET domaincol[5] = ..., will now result in rechecking the domain type's constraints, whereas before the checks were skipped.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/003", "db_id": "2fba586e5b74ae4d1ada4875101bc2fb", "patch_ids": [], "statement_hash": "f9bbb727d12fb13939ada6dbb1cc06229b03ba51f455937d211cb7b6ec91b7e8", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-2d66033b0554bc02", "migration": true}, {"id": "9.1.0-7462e03ecedb56c4", "cves": [], "html": "<p>\u66f4\u6539 <a href=\"/docs/9.1/functions-array.html#ARRAY-FUNCTIONS-TABLE\" title=\"\u8868\u00a09.42.\u00a0\u6570\u7ec4\u51fd\u6570\"><code>string_to_array()</code></a>\uff0c\u4f7f\u5176\u5bf9\u96f6\u957f\u5ea6\u5b57\u7b26\u4e32\u8fd4\u56de\u7a7a\u6570\u7ec4\uff08Pavel Stehule\uff09</p>\n<p>\u6b64\u524d\u8fd9\u8fd4\u56de\u7a7a\u503c\u3002</p>", "text": "\u66f4\u6539 string_to_array()\uff0c\u4f7f\u5176\u5bf9\u96f6\u957f\u5ea6\u5b57\u7b26\u4e32\u8fd4\u56de\u7a7a\u6570\u7ec4\uff08Pavel Stehule\uff09 \u6b64\u524d\u8fd9\u8fd4\u56de\u7a7a\u503c\u3002", "title": "\u66f4\u6539 string_to_array()\uff0c\u4f7f\u5176\u5bf9\u96f6\u957f\u5ea6\u5b57\u7b26\u4e32\u8fd4\u56de\u7a7a\u6570\u7ec4", "commits": [], "section": "\u6570\u7ec4", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.6", "source_hash": "07f4b51e9f98b2677848e6abffdc4eca08abc625f17c99ec67e6dc8ca04e913a", "section_path": ["\u6570\u7ec4"], "commit_groups": [], "identity_text": "Change string_to_array() to return an empty array for a zero-length string (Pavel Stehule) Previously this returned a null value.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/004", "db_id": "d6085f706243e932e033aef5acd6d6ef", "patch_ids": [], "statement_hash": "fd10b25633772be8238c9cee0ccb02d11b8ca2113ba908d7ee28d94da254999a", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-7462e03ecedb56c4", "migration": true}, {"id": "9.1.0-a8c84c381410ce55", "cves": [], "html": "<p>\u66f4\u6539 <a href=\"/docs/9.1/functions-array.html#ARRAY-FUNCTIONS-TABLE\" title=\"\u8868\u00a09.42.\u00a0\u6570\u7ec4\u51fd\u6570\"><code>string_to_array()</code></a>\uff0c\u4f7f <code>NULL</code> \u5206\u9694\u7b26\u628a\u5b57\u7b26\u4e32\u62c6\u5206\u4e3a\u5b57\u7b26\uff08Pavel Stehule\uff09</p>\n<p>\u6b64\u524d\u8fd9\u8fd4\u56de\u7a7a\u503c\u3002</p>", "text": "\u66f4\u6539 string_to_array()\uff0c\u4f7f NULL \u5206\u9694\u7b26\u628a\u5b57\u7b26\u4e32\u62c6\u5206\u4e3a\u5b57\u7b26\uff08Pavel Stehule\uff09 \u6b64\u524d\u8fd9\u8fd4\u56de\u7a7a\u503c\u3002", "title": "\u66f4\u6539 string_to_array()\uff0c\u4f7f NULL \u5206\u9694\u7b26\u628a\u5b57\u7b26\u4e32\u62c6\u5206\u4e3a\u5b57\u7b26", "commits": [], "section": "\u6570\u7ec4", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.6", "source_hash": "93993a34714c5da33a0f1c440f61e7d05c947dfd73a26eb63f08b3f360b24b48", "section_path": ["\u6570\u7ec4"], "commit_groups": [], "identity_text": "Change string_to_array() so a NULL separator splits the string into characters (Pavel Stehule) Previously this returned a null value.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/005", "db_id": "43a870b4fa526e1a53d3fd14894f99b9", "patch_ids": [], "statement_hash": "4ed96b20ce3ca09d55c9fc4f1b1f39ee598ee8df130da4c113869173113b9212", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-a8c84c381410ce55", "migration": true}, {"id": "9.1.0-aa32af9c0004b415", "cves": [], "html": "<p>\u4fee\u590d\u5bf9 BEFORE/AFTER \u89e6\u53d1\u5668\u7684\u4e0d\u5f53\u68c0\u67e5\uff08Tom Lane\uff09</p>\n<p>\u89e6\u53d1\u5668\u73b0\u5728\u53ef\u4ee5\u5728\u4e09\u79cd\u60c5\u51b5\u4e0b\u89e6\u53d1\uff1a\u67d0\u52a8\u4f5c\u7684 <code>BEFORE</code>\u3001<code>AFTER</code> \u6216 <code>INSTEAD OF</code>\u3002\u89e6\u53d1\u5668\u51fd\u6570\u4f5c\u8005\u5e94\u9a8c\u8bc1\u5176\u903b\u8f91\u5728\u4e09\u79cd\u60c5\u51b5\u4e0b\u90fd\u8868\u73b0\u6b63\u5e38\u3002</p>", "text": "\u4fee\u590d\u5bf9 BEFORE/AFTER \u89e6\u53d1\u5668\u7684\u4e0d\u5f53\u68c0\u67e5\uff08Tom Lane\uff09 \u89e6\u53d1\u5668\u73b0\u5728\u53ef\u4ee5\u5728\u4e09\u79cd\u60c5\u51b5\u4e0b\u89e6\u53d1\uff1a\u67d0\u52a8\u4f5c\u7684 BEFORE\u3001AFTER \u6216 INSTEAD OF\u3002\u89e6\u53d1\u5668\u51fd\u6570\u4f5c\u8005\u5e94\u9a8c\u8bc1\u5176\u903b\u8f91\u5728\u4e09\u79cd\u60c5\u51b5\u4e0b\u90fd\u8868\u73b0\u6b63\u5e38\u3002", "title": "\u4fee\u590d\u5bf9 BEFORE/AFTER \u89e6\u53d1\u5668\u7684\u4e0d\u5f53\u68c0\u67e5", "commits": [], "section": "\u5bf9\u8c61\u4fee\u6539", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.7", "source_hash": "0541a5678494de5ecf75d96a41ca361213b9eb45d23dbc81d9a811147569d776", "section_path": ["\u5bf9\u8c61\u4fee\u6539"], "commit_groups": [], "identity_text": "Fix improper checks for before/after triggers (Tom Lane) Triggers can now be fired in three cases: BEFORE, AFTER, or INSTEAD OF some action. Trigger function authors should verify that their logic behaves sanely in all three cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/006", "db_id": "46b7f3e31ae6d9672cb39af9a4049773", "patch_ids": [], "statement_hash": "858f0f1c3e59320c1945d036307046d0e0c9fc6c086532781ab82f80ea6dada1", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-aa32af9c0004b415", "migration": true}, {"id": "9.1.0-c536c3b461885e5a", "cves": [], "html": "<p>\u8981\u6c42\u8d85\u7ea7\u7528\u6237\u6216 <code>CREATEROLE</code> \u6743\u9650\u624d\u80fd\u4e3a\u89d2\u8272\u8bbe\u7f6e\u6ce8\u91ca\uff08Tom Lane\uff09</p>", "text": "\u8981\u6c42\u8d85\u7ea7\u7528\u6237\u6216 CREATEROLE \u6743\u9650\u624d\u80fd\u4e3a\u89d2\u8272\u8bbe\u7f6e\u6ce8\u91ca\uff08Tom Lane\uff09", "title": "\u8981\u6c42\u8d85\u7ea7\u7528\u6237\u6216 CREATEROLE \u6743\u9650\u624d\u80fd\u4e3a\u89d2\u8272\u8bbe\u7f6e\u6ce8\u91ca", "commits": [], "section": "\u5bf9\u8c61\u4fee\u6539", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.7", "source_hash": "f806de15eebf0a495dcb7e598ad558e451dfb9af2f09434891e70d9e2d41ee4e", "section_path": ["\u5bf9\u8c61\u4fee\u6539"], "commit_groups": [], "identity_text": "Require superuser or CREATEROLE permissions in order to set comments on roles (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/007", "db_id": "d77dff75bf305a4e139b51c6c2bbed43", "patch_ids": [], "statement_hash": "dbb1329e2c5fa79dee40ff4e9810763c7b1d010fc973e0afd2e40a228121ec9e", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-c536c3b461885e5a", "migration": true}, {"id": "9.1.0-08415aa85e05c659", "cves": [], "html": "<p>\u66f4\u6539 <a href=\"/docs/9.1/functions-admin.html#FUNCTIONS-RECOVERY-INFO-TABLE\" title=\"\u8868\u00a09.58.\u00a0\u6062\u590d\u4fe1\u606f\u51fd\u6570\"><code>pg_last_xlog_receive_location()</code></a>\uff0c\u4f7f\u5176\u6c38\u4e0d\u5012\u9000\uff08Fujii Masao\uff09</p>\n<p>\u6b64\u524d\uff0c\u5f53\u6d41\u590d\u5236\u91cd\u542f\u65f6\uff0c<code>pg_last_xlog_receive_location()</code> \u7684\u503c\u53ef\u80fd\u5012\u9000\u3002</p>", "text": "\u66f4\u6539 pg_last_xlog_receive_location()\uff0c\u4f7f\u5176\u6c38\u4e0d\u5012\u9000\uff08Fujii Masao\uff09 \u6b64\u524d\uff0c\u5f53\u6d41\u590d\u5236\u91cd\u542f\u65f6\uff0cpg_last_xlog_receive_location() \u7684\u503c\u53ef\u80fd\u5012\u9000\u3002", "title": "\u66f4\u6539 pg_last_xlog_receive_location()\uff0c\u4f7f\u5176\u6c38\u4e0d\u5012\u9000", "commits": [], "section": "\u670d\u52a1\u5668\u8bbe\u7f6e", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.8", "source_hash": "b6be4a486bac29f310a3069edd4ba30218a3d248af28a84a8a8b1a6d466f9f9c", "section_path": ["\u670d\u52a1\u5668\u8bbe\u7f6e"], "commit_groups": [], "identity_text": "Change pg_last_xlog_receive_location() so it never moves backwards (Fujii Masao) Previously, the value of pg_last_xlog_receive_location() could move backward when streaming replication is restarted.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/008", "db_id": "8f708943a2553a135344292dd9986123", "patch_ids": [], "statement_hash": "da98334f86c0e376f1dcd4795ef6607cd85dbac0d8db70d860177c0bc817f57f", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-08415aa85e05c659", "migration": true}, {"id": "9.1.0-ce948f07c79c6890", "cves": [], "html": "<p>\u8ba9\u590d\u5236\u8fde\u63a5\u7684\u65e5\u5fd7\u8bb0\u5f55\u9075\u5faa <a href=\"/docs/9.1/runtime-config-logging.html#GUC-LOG-CONNECTIONS\"><code>log_connections</code></a>\uff08Magnus Hagander\uff09</p>\n<p>\u6b64\u524d\u590d\u5236\u8fde\u63a5\u603b\u662f\u88ab\u8bb0\u5f55\u3002</p>", "text": "\u8ba9\u590d\u5236\u8fde\u63a5\u7684\u65e5\u5fd7\u8bb0\u5f55\u9075\u5faa log_connections\uff08Magnus Hagander\uff09 \u6b64\u524d\u590d\u5236\u8fde\u63a5\u603b\u662f\u88ab\u8bb0\u5f55\u3002", "title": "\u8ba9\u590d\u5236\u8fde\u63a5\u7684\u65e5\u5fd7\u8bb0\u5f55\u9075\u5faa log_connections", "commits": [], "section": "\u670d\u52a1\u5668\u8bbe\u7f6e", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.8", "source_hash": "64e305724782dcf952a30ccf21668f9439b4b79a59cf69873274596780bb43d9", "section_path": ["\u670d\u52a1\u5668\u8bbe\u7f6e"], "commit_groups": [], "identity_text": "Have logging of replication connections honor log_connections (Magnus Hagander) Previously, replication connections were always logged.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/009", "db_id": "61b6483661383d3f8411f8e9eaef268a", "patch_ids": [], "statement_hash": "e3dfe4b84c2aef836ea74766ecd9787b78d2b5a9f661f2c591c0fb52801e7108", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-ce948f07c79c6890", "migration": true}, {"id": "9.1.0-2518df69e663492e", "cves": [], "html": "<p>\u66f4\u6539 PL/pgSQL \u7684\u65e0\u53c2\u6570 <code>RAISE</code> \u547d\u4ee4\uff0c\u4f7f\u5176\u53ef\u88ab\u6240\u9644\u52a0\u7684\u5f02\u5e38\u5757\u6355\u83b7\uff08Piyush Newe\uff09</p>\n<p>\u6b64\u524d\u4ee3\u7801\u5757\u4e2d\u7684 <code>RAISE</code> \u603b\u662f\u4f5c\u7528\u4e8e\u6240\u9644\u52a0\u7684\u5f02\u5e38\u5757\uff0c\u56e0\u6b64\u5728\u540c\u4e00\u4f5c\u7528\u57df\u5185\u65e0\u6cd5\u6355\u83b7\u3002</p>", "text": "\u66f4\u6539 PL/pgSQL \u7684\u65e0\u53c2\u6570 RAISE \u547d\u4ee4\uff0c\u4f7f\u5176\u53ef\u88ab\u6240\u9644\u52a0\u7684\u5f02\u5e38\u5757\u6355\u83b7\uff08Piyush Newe\uff09 \u6b64\u524d\u4ee3\u7801\u5757\u4e2d\u7684 RAISE \u603b\u662f\u4f5c\u7528\u4e8e\u6240\u9644\u52a0\u7684\u5f02\u5e38\u5757\uff0c\u56e0\u6b64\u5728\u540c\u4e00\u4f5c\u7528\u57df\u5185\u65e0\u6cd5\u6355\u83b7\u3002", "title": "\u66f4\u6539 PL/pgSQL \u7684\u65e0\u53c2\u6570 RAISE \u547d\u4ee4\uff0c\u4f7f\u5176\u53ef\u88ab\u6240\u9644\u52a0\u7684\u5f02\u5e38\u5757\u6355\u83b7", "commits": [], "section": "PL/pgSQL Server-Side Language", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.9", "source_hash": "8793c19faac87fa49a6e14018769f24169c41cf97271356cfc601b9311d64c83", "section_path": ["PL/pgSQL Server-Side Language"], "commit_groups": [], "identity_text": "Change PL/pgSQL's RAISE command without parameters to be catchable by the attached exception block (Piyush Newe) Previously RAISE in a code block was always scoped to an attached exception block, so it was uncatchable at the same scope.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/010", "db_id": "b2c151634d90ef72c135ea462ed2e7c6", "patch_ids": [], "statement_hash": "750001173b7a34a313ffecf0c28e3f3177a78130b3c755f3d7bf7f44bcf0aad0", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-2518df69e663492e", "migration": true}, {"id": "9.1.0-a494fe3a56f16978", "cves": [], "html": "<p>\u8c03\u6574 PL/pgSQL \u7684\u9519\u8bef\u884c\u53f7\u4ee3\u7801\uff0c\u4f7f\u5176\u4e0e\u5176\u4ed6\u8fc7\u7a0b\u8bed\u8a00\u4e00\u81f4\uff08Pavel Stehule\uff09</p>\n<p>\u6b64\u524d PL/pgSQL \u4f1a\u5ffd\u7565\uff08\u4e0d\u8ba1\u6570\uff09\u51fd\u6570\u4f53\u5f00\u5934\u7684\u7a7a\u884c\u3002\u7531\u4e8e\u8fd9\u4e0e\u5176\u4ed6\u6240\u6709\u8bed\u8a00\u4e0d\u4e00\u81f4\uff0c\u8be5\u7279\u6b8a\u60c5\u51b5\u5df2\u88ab\u79fb\u9664\u3002</p>", "text": "\u8c03\u6574 PL/pgSQL \u7684\u9519\u8bef\u884c\u53f7\u4ee3\u7801\uff0c\u4f7f\u5176\u4e0e\u5176\u4ed6\u8fc7\u7a0b\u8bed\u8a00\u4e00\u81f4\uff08Pavel Stehule\uff09 \u6b64\u524d PL/pgSQL \u4f1a\u5ffd\u7565\uff08\u4e0d\u8ba1\u6570\uff09\u51fd\u6570\u4f53\u5f00\u5934\u7684\u7a7a\u884c\u3002\u7531\u4e8e\u8fd9\u4e0e\u5176\u4ed6\u6240\u6709\u8bed\u8a00\u4e0d\u4e00\u81f4\uff0c\u8be5\u7279\u6b8a\u60c5\u51b5\u5df2\u88ab\u79fb\u9664\u3002", "title": "\u8c03\u6574 PL/pgSQL \u7684\u9519\u8bef\u884c\u53f7\u4ee3\u7801\uff0c\u4f7f\u5176\u4e0e\u5176\u4ed6\u8fc7\u7a0b\u8bed\u8a00\u4e00\u81f4", "commits": [], "section": "PL/pgSQL Server-Side Language", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.9", "source_hash": "86516254ffbf1e8b6c1f7073719a4b9286a9bae0ee3c49444ada16cfcd3e52e2", "section_path": ["PL/pgSQL Server-Side Language"], "commit_groups": [], "identity_text": "Adjust PL/pgSQL's error line numbering code to be consistent with other PLs (Pavel Stehule) Previously, PL/pgSQL would ignore (not count) an empty line at the start of the function body. Since this was inconsistent with all other languages, the special case was removed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/011", "db_id": "3f41a73d8787104a66bd7adbb09e6c06", "patch_ids": [], "statement_hash": "464ceca932b2916468c5709a00169c10bbcc2e9a59e29df069afb8267c5ee940", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-a494fe3a56f16978", "migration": true}, {"id": "9.1.0-550e4aaf08bee2ce", "cves": [], "html": "<p>\u8ba9 PL/pgSQL \u5bf9 IN \u548c OUT \u53c2\u6570\u540d\u51b2\u7a81\u62a5\u9519\uff08Tom Lane\uff09</p>\n<p>\u6b64\u524d\u4e0d\u4f1a\u68c0\u6d4b\u51b2\u7a81\uff0c\u8be5\u540d\u79f0\u4f1a\u9759\u9ed8\u5730\u53ea\u6307\u5411 OUT \u53c2\u6570\u3002</p>", "text": "\u8ba9 PL/pgSQL \u5bf9 IN \u548c OUT \u53c2\u6570\u540d\u51b2\u7a81\u62a5\u9519\uff08Tom Lane\uff09 \u6b64\u524d\u4e0d\u4f1a\u68c0\u6d4b\u51b2\u7a81\uff0c\u8be5\u540d\u79f0\u4f1a\u9759\u9ed8\u5730\u53ea\u6307\u5411 OUT \u53c2\u6570\u3002", "title": "\u8ba9 PL/pgSQL \u5bf9 IN \u548c OUT \u53c2\u6570\u540d\u51b2\u7a81\u62a5\u9519", "commits": [], "section": "PL/pgSQL Server-Side Language", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.9", "source_hash": "482a6ea25f29fd5ed6f496d694b251a3e38e328c05ab3799aafa8eb390c95acc", "section_path": ["PL/pgSQL Server-Side Language"], "commit_groups": [], "identity_text": "Make PL/pgSQL complain about conflicting IN and OUT parameter names (Tom Lane) Formerly, the collision was not detected, and the name would just silently refer to only the OUT parameter.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/012", "db_id": "de936feb3dff05e890f6a274bbd15809", "patch_ids": [], "statement_hash": "f8bdcc738dcfb8503ce2718148143a36df1fcac3e509cbb8bfab33eca92fed78", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-550e4aaf08bee2ce", "migration": true}, {"id": "9.1.0-b064ba2139ef02de", "cves": [], "html": "<p>PL/pgSQL \u53d8\u91cf\u7684\u7c7b\u578b\u4fee\u9970\u7b26\u73b0\u5728\u5bf9 SQL \u89e3\u6790\u5668\u53ef\u89c1\uff08Tom Lane\uff09</p>\n<p>\u9644\u52a0\u5230 PL/pgSQL \u53d8\u91cf\u7684\u7c7b\u578b\u4fee\u9970\u7b26\uff08\u5982 varchar \u957f\u5ea6\u9650\u5236\uff09\u6b64\u524d\u53ea\u5728\u8d4b\u503c\u671f\u95f4\u5f3a\u5236\u6267\u884c\uff0c\u5176\u4ed6\u7528\u9014\u4e00\u5f8b\u5ffd\u7565\u3002\u8fd9\u7c7b\u53d8\u91cf\u73b0\u5728\u7684\u884c\u4e3a\u5c06\u66f4\u50cf\u662f\u7528\u76f8\u540c\u4fee\u9970\u7b26\u58f0\u660e\u7684\u8868\u5217\u3002\u9884\u8ba1\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\u8fd9\u4e0d\u4f1a\u9020\u6210\u53ef\u89c1\u5dee\u5f02\uff0c\u4f46\u53ef\u80fd\u7ed9 PL/pgSQL \u51fd\u6570\u53d1\u51fa\u7684\u67d0\u4e9b SQL \u547d\u4ee4\u5e26\u6765\u7ec6\u5fae\u53d8\u5316\u3002</p>", "text": "PL/pgSQL \u53d8\u91cf\u7684\u7c7b\u578b\u4fee\u9970\u7b26\u73b0\u5728\u5bf9 SQL \u89e3\u6790\u5668\u53ef\u89c1\uff08Tom Lane\uff09 \u9644\u52a0\u5230 PL/pgSQL \u53d8\u91cf\u7684\u7c7b\u578b\u4fee\u9970\u7b26\uff08\u5982 varchar \u957f\u5ea6\u9650\u5236\uff09\u6b64\u524d\u53ea\u5728\u8d4b\u503c\u671f\u95f4\u5f3a\u5236\u6267\u884c\uff0c\u5176\u4ed6\u7528\u9014\u4e00\u5f8b\u5ffd\u7565\u3002\u8fd9\u7c7b\u53d8\u91cf\u73b0\u5728\u7684\u884c\u4e3a\u5c06\u66f4\u50cf\u662f\u7528\u76f8\u540c\u4fee\u9970\u7b26\u58f0\u660e\u7684\u8868\u5217\u3002\u9884\u8ba1\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\u8fd9\u4e0d\u4f1a\u9020\u6210\u53ef\u89c1\u5dee\u5f02\uff0c\u4f46\u53ef\u80fd\u7ed9 PL/pgSQL \u51fd\u6570\u53d1\u51fa\u7684\u67d0\u4e9b SQL \u547d\u4ee4\u5e26\u6765\u7ec6\u5fae\u53d8\u5316\u3002", "title": "PL/pgSQL \u53d8\u91cf\u7684\u7c7b\u578b\u4fee\u9970\u7b26\u73b0\u5728\u5bf9 SQL \u89e3\u6790\u5668\u53ef\u89c1", "commits": [], "section": "PL/pgSQL Server-Side Language", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.9", "source_hash": "7bbbffd5d0a3576e7b6d55468126ade4719ac7762d29c80612ae4cc76b209dd7", "section_path": ["PL/pgSQL Server-Side Language"], "commit_groups": [], "identity_text": "Type modifiers of PL/pgSQL variables are now visible to the SQL parser (Tom Lane) A type modifier (such as a varchar length limit) attached to a PL/pgSQL variable was formerly enforced during assignments, but was ignored for all other purposes. Such variables will now behave more like table columns declared with the same modifier. This is not expected to make any visible difference in most cases, but it could result in subtle changes for some SQL commands issued by PL/pgSQL functions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/013", "db_id": "fbb635a3b0b777063ef8c990772a2265", "patch_ids": [], "statement_hash": "2645b50c9280a1dd40e4dca7ea974be7cbb8bc32441b03b2ad9dfdadea61c48b", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-b064ba2139ef02de", "migration": true}, {"id": "9.1.0-e14061bb4402811f", "cves": [], "html": "<p>\u6240\u6709 contrib \u6a21\u5757\u73b0\u5728\u90fd\u901a\u8fc7 <a href=\"/docs/9.1/sql-createextension.html\" title=\"CREATE EXTENSION\"><code>CREATE EXTENSION</code></a> \u5b89\u88c5\uff0c\u800c\u4e0d\u662f\u624b\u5de5\u8c03\u7528\u5176 SQL \u811a\u672c\uff08Dimitri Fontaine\u3001Tom Lane\uff09</p>\n<p>\u8981\u66f4\u65b0\u5305\u542b\u67d0 contrib \u6a21\u5757 9.0 \u7248\u672c\u7684\u73b0\u6709\u6570\u636e\u5e93\uff0c\u4f7f\u7528 <code>CREATE EXTENSION ... FROM unpackaged</code> \u628a\u73b0\u6709 contrib \u6a21\u5757\u7684\u5bf9\u8c61\u5305\u88c5\u6210\u6269\u5c55\u3002\u4ece 9.0 \u4e4b\u524d\u7684\u7248\u672c\u66f4\u65b0\u65f6\uff0c\u5148\u7528\u65e7\u7684\u5378\u8f7d\u811a\u672c\u5220\u9664\u8be5 contrib \u6a21\u5757\u7684\u5bf9\u8c61\uff0c\u7136\u540e\u4f7f\u7528 <code>CREATE EXTENSION</code>\u3002</p>", "text": "\u6240\u6709 contrib \u6a21\u5757\u73b0\u5728\u90fd\u901a\u8fc7 CREATE EXTENSION \u5b89\u88c5\uff0c\u800c\u4e0d\u662f\u624b\u5de5\u8c03\u7528\u5176 SQL \u811a\u672c\uff08Dimitri Fontaine\u3001Tom Lane\uff09 \u8981\u66f4\u65b0\u5305\u542b\u67d0 contrib \u6a21\u5757 9.0 \u7248\u672c\u7684\u73b0\u6709\u6570\u636e\u5e93\uff0c\u4f7f\u7528 CREATE EXTENSION ... FROM unpackaged \u628a\u73b0\u6709 contrib \u6a21\u5757\u7684\u5bf9\u8c61\u5305\u88c5\u6210\u6269\u5c55\u3002\u4ece 9.0 \u4e4b\u524d\u7684\u7248\u672c\u66f4\u65b0\u65f6\uff0c\u5148\u7528\u65e7\u7684\u5378\u8f7d\u811a\u672c\u5220\u9664\u8be5 contrib \u6a21\u5757\u7684\u5bf9\u8c61\uff0c\u7136\u540e\u4f7f\u7528 CREATE EXTENSION\u3002", "title": "\u6240\u6709 contrib \u6a21\u5757\u73b0\u5728\u90fd\u901a\u8fc7 CREATE EXTENSION \u5b89\u88c5\uff0c\u800c\u4e0d\u662f\u624b\u5de5\u8c03\u7528\u5176 SQL \u811a\u672c", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.10", "source_hash": "a2b03473a511ef09dbda5ac26f3be90dad7900989173908a20f66c04e0087699", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "All contrib modules are now installed with CREATE EXTENSION rather than by manually invoking their SQL scripts (Dimitri Fontaine, Tom Lane) To update an existing database containing the 9.0 version of a contrib module, use CREATE EXTENSION ... FROM unpackaged to wrap the existing contrib module's objects into an extension. When updating from a pre-9.0 version, drop the contrib module's objects using its old uninstall script, then use CREATE EXTENSION.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/014", "db_id": "352181eef1f573c76edc9e7e3624b155", "patch_ids": [], "statement_hash": "569e2199539a041fcb41806c60983fd47a415311111204481247ac8e2c7fbb09", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-e14061bb4402811f", "migration": true}, {"id": "9.1.0-46d4e420654af028", "cves": [], "html": "<p>\u8ba9 <a href=\"/docs/9.1/monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE\" title=\"\u8868\u00a027.2.\u00a0\u7edf\u8ba1\u8bbf\u95ee\u51fd\u6570\"><code>pg_stat_reset()</code></a> \u91cd\u7f6e\u6240\u6709\u6570\u636e\u5e93\u7ea7\u7edf\u8ba1\u4fe1\u606f\uff08Tomas Vondra\uff09</p>\n<p>\u4e00\u4e9b <code>pg_stat_database</code> \u8ba1\u6570\u5668\u6b64\u524d\u6ca1\u6709\u88ab\u91cd\u7f6e\u3002</p>", "text": "\u8ba9 pg_stat_reset() \u91cd\u7f6e\u6240\u6709\u6570\u636e\u5e93\u7ea7\u7edf\u8ba1\u4fe1\u606f\uff08Tomas Vondra\uff09 \u4e00\u4e9b pg_stat_database \u8ba1\u6570\u5668\u6b64\u524d\u6ca1\u6709\u88ab\u91cd\u7f6e\u3002", "title": "\u8ba9 pg_stat_reset() \u91cd\u7f6e\u6240\u6709\u6570\u636e\u5e93\u7ea7\u7edf\u8ba1\u4fe1\u606f", "commits": [], "section": "\u5176\u4ed6\u4e0d\u517c\u5bb9\u4e4b\u5904", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.11", "source_hash": "776e5248ac81118da7fc97bdf3a58a745a23b315c85621f9dccfa1e821443f03", "section_path": ["\u5176\u4ed6\u4e0d\u517c\u5bb9\u4e4b\u5904"], "commit_groups": [], "identity_text": "Make pg_stat_reset() reset all database-level statistics (Tomas Vondra) Some pg_stat_database counters were not being reset.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/015", "db_id": "2eea75a7b4492f6096701a5e667204e4", "patch_ids": [], "statement_hash": "14cfec72519becc75cab514cc0ef2780f5fdd5d69d0f3749b545e4dccb8eb54e", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-46d4e420654af028", "migration": true}, {"id": "9.1.0-d7a5f1b10a628bc8", "cves": [], "html": "<p>\u4fee\u6b63\u4e00\u4e9b <a href=\"/docs/9.1/infoschema-triggers.html\" title=\"34.52.\u00a0triggers\"><code>information_schema.triggers</code></a> \u5217\u540d\uff0c\u4f7f\u5176\u4e0e\u65b0\u7684 SQL \u6807\u51c6\u540d\u79f0\u4e00\u81f4\uff08Dean Rasheed\uff09</p>", "text": "\u4fee\u6b63\u4e00\u4e9b information_schema.triggers \u5217\u540d\uff0c\u4f7f\u5176\u4e0e\u65b0\u7684 SQL \u6807\u51c6\u540d\u79f0\u4e00\u81f4\uff08Dean Rasheed\uff09", "title": "\u4fee\u6b63\u4e00\u4e9b information_schema.triggers \u5217\u540d\uff0c\u4f7f\u5176\u4e0e\u65b0\u7684 SQL \u6807\u51c6\u540d\u79f0\u4e00\u81f4", "commits": [], "section": "\u5176\u4ed6\u4e0d\u517c\u5bb9\u4e4b\u5904", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.11", "source_hash": "99fa26dd3febeec76f4e6474e95c53253b1b5eedcfe9adcd0c2e6c765aa56739", "section_path": ["\u5176\u4ed6\u4e0d\u517c\u5bb9\u4e4b\u5904"], "commit_groups": [], "identity_text": "Fix some information_schema.triggers column names to match the new SQL-standard names (Dean Rasheed)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/016", "db_id": "35d728531614663bd2a1c88df6f9087c", "patch_ids": [], "statement_hash": "26e7afd15c9c62ef5a52d6dab5411818c2c1c0eb6353504934cbb73a68b56278", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-d7a5f1b10a628bc8", "migration": true}, {"id": "9.1.0-e4924272b2eedd77", "cves": [], "html": "<p>\u628a <span>ECPG</span> \u6e38\u6807\u540d\u89c6\u4e3a\u5927\u5c0f\u5199\u4e0d\u654f\u611f\uff08Zoltan Boszormenyi\uff09</p>", "text": "\u628a ECPG \u6e38\u6807\u540d\u89c6\u4e3a\u5927\u5c0f\u5199\u4e0d\u654f\u611f\uff08Zoltan Boszormenyi\uff09", "title": "\u628a ECPG \u6e38\u6807\u540d\u89c6\u4e3a\u5927\u5c0f\u5199\u4e0d\u654f\u611f", "commits": [], "section": "\u5176\u4ed6\u4e0d\u517c\u5bb9\u4e4b\u5904", "category": "compatibility", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.4.11", "source_hash": "ab401c545e8ab4f3c85c101c4694e0b0c46f9154e8d043b9c336d0863facac24", "section_path": ["\u5176\u4ed6\u4e0d\u517c\u5bb9\u4e4b\u5904"], "commit_groups": [], "identity_text": "Treat ECPG cursor names as case-insensitive (Zoltan Boszormenyi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/migration/017", "db_id": "5cf5a43db59ea2b515e2c4c75a4281cd", "patch_ids": [], "statement_hash": "7803d0c906f8fe4d38dd20570dab54cbcd28c7ced9943b9e4c37c5a833eced1a", "relations": [], "category_label": "\u517c\u5bb9\u6027\u53d8\u5316", "url": "/docs/compare/?release=9.1.0#9.1.0-e4924272b2eedd77", "migration": true}, {"id": "9.1.0-cf53477956f73c91", "cves": [], "html": "<p>\u652f\u6301\u5728 <a href=\"/docs/9.1/sql-createtable.html\" title=\"CREATE TABLE\"><code>CREATE TABLE</code></a> \u4e2d\u4f7f\u7528 <code>UNLOGGED</code> \u9009\u9879\u7684\u4e0d\u8bb0\u5f55\u65e5\u5fd7\u7684\u8868\uff08Robert Haas\uff09</p>\n<p>\u8fd9\u7c7b\u8868\u6bd4\u5e38\u89c4\u8868\u63d0\u4f9b\u66f4\u597d\u7684\u66f4\u65b0\u6027\u80fd\uff0c\u4f46\u4e0d\u662f\u5d29\u6e83\u5b89\u5168\u7684\uff1a\u670d\u52a1\u5668\u5d29\u6e83\u65f6\u5176\u5185\u5bb9\u4f1a\u88ab\u81ea\u52a8\u6e05\u9664\u3002\u5176\u5185\u5bb9\u4e5f\u4e0d\u4f1a\u4f20\u64ad\u5230\u590d\u5236\u4ece\u5e93\u3002</p>", "text": "\u652f\u6301\u5728 CREATE TABLE \u4e2d\u4f7f\u7528 UNLOGGED \u9009\u9879\u7684\u4e0d\u8bb0\u5f55\u65e5\u5fd7\u7684\u8868\uff08Robert Haas\uff09 \u8fd9\u7c7b\u8868\u6bd4\u5e38\u89c4\u8868\u63d0\u4f9b\u66f4\u597d\u7684\u66f4\u65b0\u6027\u80fd\uff0c\u4f46\u4e0d\u662f\u5d29\u6e83\u5b89\u5168\u7684\uff1a\u670d\u52a1\u5668\u5d29\u6e83\u65f6\u5176\u5185\u5bb9\u4f1a\u88ab\u81ea\u52a8\u6e05\u9664\u3002\u5176\u5185\u5bb9\u4e5f\u4e0d\u4f1a\u4f20\u64ad\u5230\u590d\u5236\u4ece\u5e93\u3002", "title": "\u652f\u6301\u5728 CREATE TABLE \u4e2d\u4f7f\u7528 UNLOGGED \u9009\u9879\u7684\u4e0d\u8bb0\u5f55\u65e5\u5fd7\u7684\u8868", "commits": [], "section": "\u670d\u52a1\u5668 / \u6027\u80fd", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.2", "source_hash": "eca0760229aa47061028694ea2af17bdee828c60937e5b20d5d2890ed1f37711", "section_path": ["\u670d\u52a1\u5668", "\u6027\u80fd"], "commit_groups": [], "identity_text": "Support unlogged tables using the UNLOGGED option in CREATE TABLE (Robert Haas) Such tables provide better update performance than regular tables, but are not crash-safe: their contents are automatically cleared in case of a server crash. Their contents do not propagate to replication slaves, either.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/001", "db_id": "fd2e0d6106f52359592c6369a238390a", "patch_ids": [], "statement_hash": "93ce255485d37d1906224b507409f30390f3791c8fcfce40c196fa4527f60edd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-cf53477956f73c91", "migration": false}, {"id": "9.1.0-28ad201613196e37", "cves": [], "html": "<p>\u5141\u8bb8\u628a <code>FULL OUTER JOIN</code> \u5b9e\u73b0\u4e3a\u54c8\u5e0c\u8fde\u63a5\uff0c\u5e76\u5141\u8bb8\u5bf9 <code>LEFT OUTER JOIN</code> \u6216 <code>RIGHT OUTER JOIN</code> \u7684\u4efb\u4e00\u4fa7\u505a\u54c8\u5e0c\uff08Tom Lane\uff09</p>\n<p>\u6b64\u524d <code>FULL OUTER JOIN</code> \u53ea\u80fd\u5b9e\u73b0\u4e3a\u5408\u5e76\u8fde\u63a5\uff0c\u800c <code>LEFT OUTER JOIN</code> \u548c <code>RIGHT OUTER JOIN</code> \u53ea\u80fd\u5bf9\u8fde\u63a5\u7684\u53ef\u7a7a\u4fa7\u505a\u54c8\u5e0c\u3002\u8fd9\u4e9b\u53d8\u66f4\u63d0\u4f9b\u4e86\u989d\u5916\u7684\u67e5\u8be2\u4f18\u5316\u53ef\u80fd\u6027\u3002</p>", "text": "\u5141\u8bb8\u628a FULL OUTER JOIN \u5b9e\u73b0\u4e3a\u54c8\u5e0c\u8fde\u63a5\uff0c\u5e76\u5141\u8bb8\u5bf9 LEFT OUTER JOIN \u6216 RIGHT OUTER JOIN \u7684\u4efb\u4e00\u4fa7\u505a\u54c8\u5e0c\uff08Tom Lane\uff09 \u6b64\u524d FULL OUTER JOIN \u53ea\u80fd\u5b9e\u73b0\u4e3a\u5408\u5e76\u8fde\u63a5\uff0c\u800c LEFT OUTER JOIN \u548c RIGHT OUTER JOIN \u53ea\u80fd\u5bf9\u8fde\u63a5\u7684\u53ef\u7a7a\u4fa7\u505a\u54c8\u5e0c\u3002\u8fd9\u4e9b\u53d8\u66f4\u63d0\u4f9b\u4e86\u989d\u5916\u7684\u67e5\u8be2\u4f18\u5316\u53ef\u80fd\u6027\u3002", "title": "\u5141\u8bb8\u628a FULL OUTER JOIN \u5b9e\u73b0\u4e3a\u54c8\u5e0c\u8fde\u63a5\uff0c\u5e76\u5141\u8bb8\u5bf9 LEFT OUTER JOIN \u6216 RIGHT OUTER JOIN \u7684\u4efb\u4e00\u4fa7\u505a\u54c8\u5e0c", "commits": [], "section": "\u670d\u52a1\u5668 / \u6027\u80fd", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.2", "source_hash": "f03558a85d3fbef769748f2102ec4261257178788f0d36fcb88e41235c63ba75", "section_path": ["\u670d\u52a1\u5668", "\u6027\u80fd"], "commit_groups": [], "identity_text": "Allow FULL OUTER JOIN to be implemented as a hash join, and allow either side of a LEFT OUTER JOIN or RIGHT OUTER JOIN to be hashed (Tom Lane) Previously FULL OUTER JOIN could only be implemented as a merge join, and LEFT OUTER JOIN and RIGHT OUTER JOIN could hash only the nullable side of the join. These changes provide additional query optimization possibilities.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/002", "db_id": "1b59d20c90cf2bc359ed5770652ade54", "patch_ids": [], "statement_hash": "6174ed17ace43a270d4b28836edaf9fab92f5844a0e3fd8a4964013738fbb6a1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-28ad201613196e37", "migration": false}, {"id": "9.1.0-5d150babc35e3eb8", "cves": [], "html": "<p>\u5408\u5e76\u91cd\u590d\u7684 fsync \u8bf7\u6c42\uff08Robert Haas\u3001Greg Smith\uff09</p>\n<p>\u8fd9\u5927\u5e45\u6539\u8fdb\u4e86\u91cd\u5199\u8d1f\u8f7d\u4e0b\u7684\u6027\u80fd\u3002</p>", "text": "\u5408\u5e76\u91cd\u590d\u7684 fsync \u8bf7\u6c42\uff08Robert Haas\u3001Greg Smith\uff09 \u8fd9\u5927\u5e45\u6539\u8fdb\u4e86\u91cd\u5199\u8d1f\u8f7d\u4e0b\u7684\u6027\u80fd\u3002", "title": "\u5408\u5e76\u91cd\u590d\u7684 fsync \u8bf7\u6c42", "commits": [], "section": "\u670d\u52a1\u5668 / \u6027\u80fd", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.2", "source_hash": "c15f845c16ac133ae986ddc9f467513a4cc87daf8140b91b9a1fe96d9bf86655", "section_path": ["\u670d\u52a1\u5668", "\u6027\u80fd"], "commit_groups": [], "identity_text": "Merge duplicate fsync requests (Robert Haas, Greg Smith) This greatly improves performance under heavy write loads.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/003", "db_id": "6bcfcdc498c34cd89a7f5a27ca57ef70", "patch_ids": [], "statement_hash": "c55603b3e827968472d3eb1f56346871991f77152317ce2f3aae23a0de15eb00", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-5d150babc35e3eb8", "migration": false}, {"id": "9.1.0-fb308d53051dadef", "cves": [], "html": "<p>\u6539\u8fdb <a href=\"/docs/9.1/runtime-config-wal.html#GUC-COMMIT-SIBLINGS\"><code>commit_siblings</code></a> \u7684\u6027\u80fd\uff08Greg Smith\uff09</p>\n<p>\u8fd9\u4f7f <code>commit_siblings</code> \u7684\u4f7f\u7528\u5f00\u9500\u66f4\u4f4e\u3002</p>", "text": "\u6539\u8fdb commit_siblings \u7684\u6027\u80fd\uff08Greg Smith\uff09 \u8fd9\u4f7f commit_siblings \u7684\u4f7f\u7528\u5f00\u9500\u66f4\u4f4e\u3002", "title": "\u6539\u8fdb commit_siblings \u7684\u6027\u80fd", "commits": [], "section": "\u670d\u52a1\u5668 / \u6027\u80fd", "category": "performance", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.2", "source_hash": "cf3f82617f9761edb85c92dc17a5cf7b3e2e41dcaf1f02d1a99d56e0bc610d0d", "section_path": ["\u670d\u52a1\u5668", "\u6027\u80fd"], "commit_groups": [], "identity_text": "Improve performance of commit_siblings (Greg Smith) This allows the use of commit_siblings with less overhead.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/004", "db_id": "9a67168d3e4a4d602028e36d95160406", "patch_ids": [], "statement_hash": "90beac3fb987fa88e775722d75b2b1d133b4c9c77f38463f127aa2ab5701366e", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=9.1.0#9.1.0-fb308d53051dadef", "migration": false}, {"id": "9.1.0-c449d6240b42c4a9", "cves": [], "html": "<p>\u964d\u4f4e\u5927\u578b ispell \u8bcd\u5178\u7684\u5185\u5b58\u9700\u6c42\uff08Pavel Stehule\u3001Tom Lane\uff09</p>", "text": "\u964d\u4f4e\u5927\u578b ispell \u8bcd\u5178\u7684\u5185\u5b58\u9700\u6c42\uff08Pavel Stehule\u3001Tom Lane\uff09", "title": "\u964d\u4f4e\u5927\u578b ispell \u8bcd\u5178\u7684\u5185\u5b58\u9700\u6c42", "commits": [], "section": "\u670d\u52a1\u5668 / \u6027\u80fd", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.2", "source_hash": "3f2c22c8e8b689341ac8a4dd3a2764433e865b5183aa5d77d9ae9213d46fca5f", "section_path": ["\u670d\u52a1\u5668", "\u6027\u80fd"], "commit_groups": [], "identity_text": "Reduce the memory requirement for large ispell dictionaries (Pavel Stehule, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/005", "db_id": "f755363c5dd32592ceadda90b4050f5a", "patch_ids": [], "statement_hash": "478dc59e0415dd291073dfa47d670279d0f360e2047559f0f7416d3ac45315c1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-c449d6240b42c4a9", "migration": false}, {"id": "9.1.0-ed08d3eeab28ce07", "cves": [], "html": "<p>\u907f\u514d<span>\u201c<span>\u76f2\u5199</span>\u201d</span>\u4e4b\u540e\u6570\u636e\u6587\u4ef6\u4fdd\u6301\u6253\u5f00\uff08Alvaro Herrera\uff09</p>\n<p>\u8fd9\u4fee\u590d\u4e86\u540e\u7aef\u53ef\u80fd\u5728\u6587\u4ef6\u88ab\u5220\u9664\u540e\u5f88\u4e45\u4ecd\u6301\u6709\u5176\u6253\u5f00\u72b6\u6001\u3001\u963b\u6b62\u5185\u6838\u56de\u6536\u78c1\u76d8\u7a7a\u95f4\u7684\u573a\u666f\u3002</p>", "text": "\u907f\u514d\u201c\u76f2\u5199\u201d\u4e4b\u540e\u6570\u636e\u6587\u4ef6\u4fdd\u6301\u6253\u5f00\uff08Alvaro Herrera\uff09 \u8fd9\u4fee\u590d\u4e86\u540e\u7aef\u53ef\u80fd\u5728\u6587\u4ef6\u88ab\u5220\u9664\u540e\u5f88\u4e45\u4ecd\u6301\u6709\u5176\u6253\u5f00\u72b6\u6001\u3001\u963b\u6b62\u5185\u6838\u56de\u6536\u78c1\u76d8\u7a7a\u95f4\u7684\u573a\u666f\u3002", "title": "\u907f\u514d\u201c\u76f2\u5199\u201d\u4e4b\u540e\u6570\u636e\u6587\u4ef6\u4fdd\u6301\u6253\u5f00", "commits": [], "section": "\u670d\u52a1\u5668 / \u6027\u80fd", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.2", "source_hash": "9247a7b3de36640d123d1549b5b8c52f1cd0ac3fd4188cb9584dd9e5e0c702dd", "section_path": ["\u670d\u52a1\u5668", "\u6027\u80fd"], "commit_groups": [], "identity_text": "Avoid leaving data files open after blind writes (Alvaro Herrera) This fixes scenarios in which backends might hold files open long after they were deleted, preventing the kernel from reclaiming disk space.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/006", "db_id": "bce884e504cbe4a8aca87f5f3ad0c562", "patch_ids": [], "statement_hash": "78acb7563b0f0e294055b6b1804482dd3caacd3ba70d558c67bc9b3f0324388d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-ed08d3eeab28ce07", "migration": false}, {"id": "9.1.0-cb3b3b03f256e0e1", "cves": [], "html": "<p>\u5141\u8bb8\u7ee7\u627f\u8868\u626b\u63cf\u8fd4\u56de\u6709\u610f\u4e49\u7684\u6392\u5e8f\u7ed3\u679c\uff08Greg Stark\u3001Hans-Jurgen Schonig\u3001Robert Haas\u3001Tom Lane\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u5bf9\u7ee7\u627f\u8868\u4e0a\u4f7f\u7528 <code>ORDER BY</code>\u3001<code>LIMIT</code> \u6216 <code>MIN</code>/<code>MAX</code> \u7684\u67e5\u8be2\u505a\u66f4\u597d\u7684\u4f18\u5316\u3002</p>", "text": "\u5141\u8bb8\u7ee7\u627f\u8868\u626b\u63cf\u8fd4\u56de\u6709\u610f\u4e49\u7684\u6392\u5e8f\u7ed3\u679c\uff08Greg Stark\u3001Hans-Jurgen Schonig\u3001Robert Haas\u3001Tom Lane\uff09 \u8fd9\u5141\u8bb8\u5bf9\u7ee7\u627f\u8868\u4e0a\u4f7f\u7528 ORDER BY\u3001LIMIT \u6216 MIN/MAX \u7684\u67e5\u8be2\u505a\u66f4\u597d\u7684\u4f18\u5316\u3002", "title": "\u5141\u8bb8\u7ee7\u627f\u8868\u626b\u63cf\u8fd4\u56de\u6709\u610f\u4e49\u7684\u6392\u5e8f\u7ed3\u679c", "commits": [], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.3", "source_hash": "0fe23b83fd2bf7226b050f11535f884bc7294b3aa5d151f1eda5916fce9c21f1", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [], "identity_text": "Allow inheritance table scans to return meaningfully-sorted results (Greg Stark, Hans-Jurgen Schonig, Robert Haas, Tom Lane) This allows better optimization of queries that use ORDER BY, LIMIT, or MIN/MAX with inherited tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/007", "db_id": "ef5ade369462b29b5e346091c5a29aae", "patch_ids": [], "statement_hash": "429544f2ddceb18034428967456705c90860350f5515b4d61766e6d2fec3fa1e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-cb3b3b03f256e0e1", "migration": false}, {"id": "9.1.0-13190638360acdcb", "cves": [], "html": "<p>\u6539\u8fdb GIN \u7d22\u5f15\u626b\u63cf\u7684\u4ee3\u4ef7\u4f30\u8ba1\uff08Teodor Sigaev\uff09</p>", "text": "\u6539\u8fdb GIN \u7d22\u5f15\u626b\u63cf\u7684\u4ee3\u4ef7\u4f30\u8ba1\uff08Teodor Sigaev\uff09", "title": "\u6539\u8fdb GIN \u7d22\u5f15\u626b\u63cf\u7684\u4ee3\u4ef7\u4f30\u8ba1", "commits": [], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.3", "source_hash": "00202c6328ba9f04401ff77a2acbfa86c07938d183d482c188b9d764aeb9cea4", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [], "identity_text": "Improve GIN index scan cost estimation (Teodor Sigaev)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/008", "db_id": "f17268b4639b3da8fd7ba4f33d1170c5", "patch_ids": [], "statement_hash": "eaeb2f9e2c9fd4986230068d1801c9bad812a7aadffd25044e444471122b0010", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-13190638360acdcb", "migration": false}, {"id": "9.1.0-0db4f548afcc4ba3", "cves": [], "html": "<p>\u6539\u8fdb\u805a\u5408\u548c\u7a97\u53e3\u51fd\u6570\u7684\u4ee3\u4ef7\u4f30\u8ba1\uff08Tom Lane\uff09</p>", "text": "\u6539\u8fdb\u805a\u5408\u548c\u7a97\u53e3\u51fd\u6570\u7684\u4ee3\u4ef7\u4f30\u8ba1\uff08Tom Lane\uff09", "title": "\u6539\u8fdb\u805a\u5408\u548c\u7a97\u53e3\u51fd\u6570\u7684\u4ee3\u4ef7\u4f30\u8ba1", "commits": [], "section": "\u670d\u52a1\u5668 / \u4f18\u5316\u5668", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.3", "source_hash": "2833f2651b30f3f1b062358c573106b5317bb8671722effd0680965b266779c8", "section_path": ["\u670d\u52a1\u5668", "\u4f18\u5316\u5668"], "commit_groups": [], "identity_text": "Improve cost estimation for aggregates and window functions (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/009", "db_id": "db0f7e5cdbf2694b3f69eeff02697fee", "patch_ids": [], "statement_hash": "c2989d9bd95976995dee253b3f78f5fcae21984c4cd1ceee21947cd7d63bce1a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-0db4f548afcc4ba3", "migration": false}, {"id": "9.1.0-327f39d709e58686", "cves": [], "html": "<p>\u5728 <a href=\"/docs/9.1/client-authentication.html#AUTH-PG-HBA-CONF\" title=\"19.1.\u00a0pg_hba.conf \u6587\u4ef6\"><code>pg_hba.conf</code></a> \u4e2d\u652f\u6301\u4e3b\u673a\u540d\u548c\u4e3b\u673a\u540e\u7f00\uff08\u4f8b\u5982 <code>.example.com</code>\uff09\uff08Peter Eisentraut\uff09</p>\n<p>\u6b64\u524d\u53ea\u652f\u6301\u4e3b\u673a <acronym>IP</acronym> \u5730\u5740\u548c <acronym>CIDR</acronym> \u503c\u3002</p>", "text": "\u5728 pg_hba.conf \u4e2d\u652f\u6301\u4e3b\u673a\u540d\u548c\u4e3b\u673a\u540e\u7f00\uff08\u4f8b\u5982 .example.com\uff09\uff08Peter Eisentraut\uff09 \u6b64\u524d\u53ea\u652f\u6301\u4e3b\u673a IP \u5730\u5740\u548c CIDR \u503c\u3002", "title": "\u5728 pg_hba.conf \u4e2d\u652f\u6301\u4e3b\u673a\u540d\u548c\u4e3b\u673a\u540e\u7f00\uff08\u4f8b\u5982 .example.com\uff09", "commits": [], "section": "\u670d\u52a1\u5668 / \u8ba4\u8bc1", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.4", "source_hash": "250e535a3b1af7eeaac8746763945a36bf66918590b1cdf82ed18e7776c71782", "section_path": ["\u670d\u52a1\u5668", "\u8ba4\u8bc1"], "commit_groups": [], "identity_text": "Support host names and host suffixes (e.g. .example.com) in pg_hba.conf (Peter Eisentraut) Previously only host IP addresses and CIDR values were supported.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/010", "db_id": "49b5f3783a6162345dd2c1e93dfef520", "patch_ids": [], "statement_hash": "37d5ffb9a89a7bb3eb46383ccbc932d82ab35912f4b0b4f4b2043184b0cba12c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-327f39d709e58686", "migration": false}, {"id": "9.1.0-ea1b2b983dbedb34", "cves": [], "html": "<p>\u5728 <a href=\"/docs/9.1/client-authentication.html#AUTH-PG-HBA-CONF\" title=\"19.1.\u00a0pg_hba.conf \u6587\u4ef6\"><code>pg_hba.conf</code></a> \u7684 host \u5217\u4e2d\u652f\u6301\u5173\u952e\u5b57 <code>all</code>\uff08Peter Eisentraut\uff09</p>\n<p>\u6b64\u524d\u4eba\u4eec\u4e3a\u6b64\u4f7f\u7528 <code>0.0.0.0/0</code> \u6216 <code>::/0</code>\u3002</p>", "text": "\u5728 pg_hba.conf \u7684 host \u5217\u4e2d\u652f\u6301\u5173\u952e\u5b57 all\uff08Peter Eisentraut\uff09 \u6b64\u524d\u4eba\u4eec\u4e3a\u6b64\u4f7f\u7528 0.0.0.0/0 \u6216 ::/0\u3002", "title": "\u5728 pg_hba.conf \u7684 host \u5217\u4e2d\u652f\u6301\u5173\u952e\u5b57 all", "commits": [], "section": "\u670d\u52a1\u5668 / \u8ba4\u8bc1", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.4", "source_hash": "4b23ad5ad18031087ae4276a10c378d563bce3b39656c13341e8282325227673", "section_path": ["\u670d\u52a1\u5668", "\u8ba4\u8bc1"], "commit_groups": [], "identity_text": "Support the key word all in the host column of pg_hba.conf (Peter Eisentraut) Previously people used 0.0.0.0/0 or ::/0 for this.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/011", "db_id": "e3628e0896b6c873cdac0f7984f87dc2", "patch_ids": [], "statement_hash": "d99a71e43efed3b24059fc13263a6fdd7068b9990ef3ff018f010f77d6dd0d96", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-ea1b2b983dbedb34", "migration": false}, {"id": "9.1.0-cb1dc8d4ca390a9c", "cves": [], "html": "<p>\u5728\u4e0d\u652f\u6301 Unix \u5957\u63a5\u5b57\u8fde\u63a5\u7684\u5e73\u53f0\u4e0a\u62d2\u7edd <a href=\"/docs/9.1/client-authentication.html#AUTH-PG-HBA-CONF\" title=\"19.1.\u00a0pg_hba.conf \u6587\u4ef6\"><code>pg_hba.conf</code></a> \u4e2d\u7684 <code>local</code> \u884c\uff08Magnus Hagander\uff09</p>\n<p>\u6b64\u524d\u8fd9\u7c7b\u884c\u4f1a\u88ab\u9759\u9ed8\u5ffd\u7565\uff0c\u8fd9\u53ef\u80fd\u4ee4\u4eba\u610f\u5916\u3002\u8fd9\u4f7f\u8be5\u884c\u4e3a\u66f4\u50cf\u5176\u4ed6\u4e0d\u53d7\u652f\u6301\u7684\u60c5\u51b5\u3002</p>", "text": "\u5728\u4e0d\u652f\u6301 Unix \u5957\u63a5\u5b57\u8fde\u63a5\u7684\u5e73\u53f0\u4e0a\u62d2\u7edd pg_hba.conf \u4e2d\u7684 local \u884c\uff08Magnus Hagander\uff09 \u6b64\u524d\u8fd9\u7c7b\u884c\u4f1a\u88ab\u9759\u9ed8\u5ffd\u7565\uff0c\u8fd9\u53ef\u80fd\u4ee4\u4eba\u610f\u5916\u3002\u8fd9\u4f7f\u8be5\u884c\u4e3a\u66f4\u50cf\u5176\u4ed6\u4e0d\u53d7\u652f\u6301\u7684\u60c5\u51b5\u3002", "title": "\u5728\u4e0d\u652f\u6301 Unix \u5957\u63a5\u5b57\u8fde\u63a5\u7684\u5e73\u53f0\u4e0a\u62d2\u7edd pg_hba.conf \u4e2d\u7684 local \u884c", "commits": [], "section": "\u670d\u52a1\u5668 / \u8ba4\u8bc1", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.4", "source_hash": "776473ca5264d053be06d0df090b35a551aff51f383e3edea0544680eed7fc6e", "section_path": ["\u670d\u52a1\u5668", "\u8ba4\u8bc1"], "commit_groups": [], "identity_text": "Reject local lines in pg_hba.conf on platforms that don't support Unix-socket connections (Magnus Hagander) Formerly, such lines were silently ignored, which could be surprising. This makes the behavior more like other unsupported cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/012", "db_id": "a1d0cb979d3f658209b2eacd695bb57b", "patch_ids": [], "statement_hash": "70499d701b18466c321c0e4fbec14d9c93d3b2760c04d507fc74ab88814eac8c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-cb1dc8d4ca390a9c", "migration": false}, {"id": "9.1.0-bf3e7cbf1c19a241", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 <a href=\"/docs/9.1/auth-methods.html#GSSAPI-AUTH\" title=\"19.3.3.\u00a0GSSAPI \u8ba4\u8bc1\"><acronym>GSSAPI</acronym></a> \u901a\u8fc7 <a href=\"/docs/9.1/auth-methods.html#SSPI-AUTH\" title=\"19.3.4.\u00a0SSPI \u8ba4\u8bc1\"><acronym>SSPI</acronym></a> \u5411\u670d\u52a1\u5668\u8ba4\u8bc1\uff08Christian Ullrich\uff09</p>\n<p>\u5177\u4f53\u800c\u8a00\uff0c\u8fd9\u5141\u8bb8\u57fa\u4e8e Unix \u7684 <acronym>GSSAPI</acronym> \u5ba2\u6237\u7aef\u4e0e Windows \u670d\u52a1\u5668\u8fdb\u884c <acronym>SSPI</acronym> \u8ba4\u8bc1\u3002</p>", "text": "\u5141\u8bb8\u4f7f\u7528 GSSAPI \u901a\u8fc7 SSPI \u5411\u670d\u52a1\u5668\u8ba4\u8bc1\uff08Christian Ullrich\uff09 \u5177\u4f53\u800c\u8a00\uff0c\u8fd9\u5141\u8bb8\u57fa\u4e8e Unix \u7684 GSSAPI \u5ba2\u6237\u7aef\u4e0e Windows \u670d\u52a1\u5668\u8fdb\u884c SSPI \u8ba4\u8bc1\u3002", "title": "\u5141\u8bb8\u4f7f\u7528 GSSAPI \u901a\u8fc7 SSPI \u5411\u670d\u52a1\u5668\u8ba4\u8bc1", "commits": [], "section": "\u670d\u52a1\u5668 / \u8ba4\u8bc1", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.4", "source_hash": "69db46bf98d3363ee5b7bde2d0611847e734d1ecac24c2d2626d80f3f43a7da9", "section_path": ["\u670d\u52a1\u5668", "\u8ba4\u8bc1"], "commit_groups": [], "identity_text": "Allow GSSAPI to be used to authenticate to servers via SSPI (Christian Ullrich) Specifically this allows Unix-based GSSAPI clients to do SSPI authentication with Windows servers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/013", "db_id": "19e16173bb9578ac50f689efef68a489", "patch_ids": [], "statement_hash": "6f1f1749bfd2f0669093d75846d8d05923f92d625a252467ded7cd416acbe8cc", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-bf3e7cbf1c19a241", "migration": false}, {"id": "9.1.0-4317a84657b812fc", "cves": [], "html": "<p>\u672c\u5730\u5957\u63a5\u5b57\u4e0a\u7684 <a href=\"/docs/9.1/auth-methods.html#AUTH-IDENT\" title=\"19.3.6.\u00a0Ident \u8ba4\u8bc1\"><code>ident</code></a> \u8ba4\u8bc1\u73b0\u5728\u79f0\u4e3a <a href=\"/docs/9.1/auth-methods.html#AUTH-PEER\" title=\"19.3.7.\u00a0Peer \u8ba4\u8bc1\"><code>peer</code></a>\uff08Magnus Hagander\uff09</p>\n<p>\u4e3a\u4e86\u5411\u540e\u517c\u5bb9\u4ecd\u63a5\u53d7\u65e7\u540d\u79f0\uff0c\u4f46\u7531\u4e8e\u8fd9\u4e24\u79cd\u65b9\u6cd5\u6839\u672c\u4e0d\u540c\uff0c\u4e3a\u5b83\u4eec\u91c7\u7528\u4e0d\u540c\u7684\u540d\u79f0\u4f3c\u4e4e\u66f4\u597d\u3002</p>", "text": "\u672c\u5730\u5957\u63a5\u5b57\u4e0a\u7684 ident \u8ba4\u8bc1\u73b0\u5728\u79f0\u4e3a peer\uff08Magnus Hagander\uff09 \u4e3a\u4e86\u5411\u540e\u517c\u5bb9\u4ecd\u63a5\u53d7\u65e7\u540d\u79f0\uff0c\u4f46\u7531\u4e8e\u8fd9\u4e24\u79cd\u65b9\u6cd5\u6839\u672c\u4e0d\u540c\uff0c\u4e3a\u5b83\u4eec\u91c7\u7528\u4e0d\u540c\u7684\u540d\u79f0\u4f3c\u4e4e\u66f4\u597d\u3002", "title": "\u672c\u5730\u5957\u63a5\u5b57\u4e0a\u7684 ident \u8ba4\u8bc1\u73b0\u5728\u79f0\u4e3a peer", "commits": [], "section": "\u670d\u52a1\u5668 / \u8ba4\u8bc1", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.4", "source_hash": "2129725719472f75d69994bd49ec51a59c4fa395782679e59e3ecfd02f8a627c", "section_path": ["\u670d\u52a1\u5668", "\u8ba4\u8bc1"], "commit_groups": [], "identity_text": "ident authentication over local sockets is now known as peer (Magnus Hagander) The old term is still accepted for backward compatibility, but since the two methods are fundamentally different, it seemed better to adopt different names for them.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/014", "db_id": "b766d08cdd6e782b84560f05dcd56f9f", "patch_ids": [], "statement_hash": "22e6a03a46db422f3a0525ae9f99ff8c7f5125d6f07f19d7a0ff9bdb1f70a732", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-4317a84657b812fc", "migration": false}, {"id": "9.1.0-257189e35bcbc95b", "cves": [], "html": "<p>\u91cd\u5199 <a href=\"/docs/9.1/auth-methods.html#AUTH-PEER\" title=\"19.3.7.\u00a0Peer \u8ba4\u8bc1\"><acronym>peer</acronym></a> \u8ba4\u8bc1\uff0c\u907f\u514d\u4f7f\u7528\u51ed\u636e\u63a7\u5236\u6d88\u606f\uff08Tom Lane\uff09</p>\n<p>\u6b64\u53d8\u66f4\u4f7f peer \u8ba4\u8bc1\u4ee3\u7801\u66f4\u7b80\u5355\u3001\u6027\u80fd\u66f4\u597d\u3002\u4f46\u5b83\u8981\u6c42\u5e73\u53f0\u63d0\u4f9b <code>getpeereid</code> \u51fd\u6570\u6216\u7b49\u6548\u7684\u5957\u63a5\u5b57\u64cd\u4f5c\u3002\u636e\u6211\u4eec\u6240\u77e5\uff0c\u552f\u4e00\u6b64\u524d peer \u8ba4\u8bc1\u53ef\u7528\u800c\u73b0\u5728\u4e0d\u53ef\u7528\u7684\u5e73\u53f0\u662f 5.0 \u4e4b\u524d\u7684 NetBSD\u3002</p>", "text": "\u91cd\u5199 peer \u8ba4\u8bc1\uff0c\u907f\u514d\u4f7f\u7528\u51ed\u636e\u63a7\u5236\u6d88\u606f\uff08Tom Lane\uff09 \u6b64\u53d8\u66f4\u4f7f peer \u8ba4\u8bc1\u4ee3\u7801\u66f4\u7b80\u5355\u3001\u6027\u80fd\u66f4\u597d\u3002\u4f46\u5b83\u8981\u6c42\u5e73\u53f0\u63d0\u4f9b getpeereid \u51fd\u6570\u6216\u7b49\u6548\u7684\u5957\u63a5\u5b57\u64cd\u4f5c\u3002\u636e\u6211\u4eec\u6240\u77e5\uff0c\u552f\u4e00\u6b64\u524d peer \u8ba4\u8bc1\u53ef\u7528\u800c\u73b0\u5728\u4e0d\u53ef\u7528\u7684\u5e73\u53f0\u662f 5.0 \u4e4b\u524d\u7684 NetBSD\u3002", "title": "\u91cd\u5199 peer \u8ba4\u8bc1\uff0c\u907f\u514d\u4f7f\u7528\u51ed\u636e\u63a7\u5236\u6d88\u606f", "commits": [], "section": "\u670d\u52a1\u5668 / \u8ba4\u8bc1", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.4", "source_hash": "85f28f3d783b34d423038f38b01087edfa14a275bd2735a2f5ccdbe6dfc9add2", "section_path": ["\u670d\u52a1\u5668", "\u8ba4\u8bc1"], "commit_groups": [], "identity_text": "Rewrite peer authentication to avoid use of credential control messages (Tom Lane) This change makes the peer authentication code simpler and better-performing. However, it requires the platform to provide the getpeereid function or an equivalent socket operation. So far as is known, the only platform for which peer authentication worked before and now will not is pre-5.0 NetBSD.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/015", "db_id": "6839168d42dafbceec1b537dce816cad", "patch_ids": [], "statement_hash": "8a33925b8b04de2b291c28a1d48f4cb9b941f0e5ee06c1f18b3a972f186565a7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-257189e35bcbc95b", "migration": false}, {"id": "9.1.0-3e81d8a76bc7a951", "cves": [], "html": "<p>\u4e3a\u91cd\u542f\u70b9\u548c\u68c0\u67e5\u70b9\u7684\u65e5\u5fd7\u8bb0\u5f55\u6dfb\u52a0\u7ec6\u8282\uff0c\u5b83\u7531 <a href=\"/docs/9.1/runtime-config-logging.html#GUC-LOG-CHECKPOINTS\"><code>log_checkpoints</code></a> \u63a7\u5236\uff08Fujii Masao\u3001Greg Smith\uff09</p>\n<p>\u65b0\u589e\u7ec6\u8282\u5305\u62ec <acronym>WAL</acronym> \u6587\u4ef6\u548c\u540c\u6b65\u6d3b\u52a8\u3002</p>", "text": "\u4e3a\u91cd\u542f\u70b9\u548c\u68c0\u67e5\u70b9\u7684\u65e5\u5fd7\u8bb0\u5f55\u6dfb\u52a0\u7ec6\u8282\uff0c\u5b83\u7531 log_checkpoints \u63a7\u5236\uff08Fujii Masao\u3001Greg Smith\uff09 \u65b0\u589e\u7ec6\u8282\u5305\u62ec WAL \u6587\u4ef6\u548c\u540c\u6b65\u6d3b\u52a8\u3002", "title": "\u4e3a\u91cd\u542f\u70b9\u548c\u68c0\u67e5\u70b9\u7684\u65e5\u5fd7\u8bb0\u5f55\u6dfb\u52a0\u7ec6\u8282\uff0c\u5b83\u7531 log_checkpoints \u63a7\u5236", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.5", "source_hash": "d2f94b7f594b517d4aa9e707ebbbcfc9d25c1b403fe2e8cca57ab057ad7060bd", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [], "identity_text": "Add details to the logging of restartpoints and checkpoints, which is controlled by log_checkpoints (Fujii Masao, Greg Smith) New details include WAL file and sync activity.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/016", "db_id": "92b6e90530b2d45fb9b55a96b3881314", "patch_ids": [], "statement_hash": "7837dd90a2bf97e7ec26b38a0b43386f0b767484a216e21139e5d4d5f014f837", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-3e81d8a76bc7a951", "migration": false}, {"id": "9.1.0-10875641167a1e31", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/9.1/runtime-config-logging.html#GUC-LOG-FILE-MODE\"><code>log_file_mode</code></a>\uff0c\u63a7\u5236\u65e5\u5fd7\u6536\u96c6\u5668\u521b\u5efa\u7684\u65e5\u5fd7\u6587\u4ef6\u7684\u6743\u9650\uff08Martin Pihlak\uff09</p>", "text": "\u65b0\u589e log_file_mode\uff0c\u63a7\u5236\u65e5\u5fd7\u6536\u96c6\u5668\u521b\u5efa\u7684\u65e5\u5fd7\u6587\u4ef6\u7684\u6743\u9650\uff08Martin Pihlak\uff09", "title": "\u65b0\u589e log_file_mode\uff0c\u63a7\u5236\u65e5\u5fd7\u6536\u96c6\u5668\u521b\u5efa\u7684\u65e5\u5fd7\u6587\u4ef6\u7684\u6743\u9650", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.5", "source_hash": "6c5f4394b9dae0844faa1c98a590de0bdc2feb45cb129964199aa502f8a5f7f9", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [], "identity_text": "Add log_file_mode which controls the permissions on log files created by the logging collector (Martin Pihlak)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/017", "db_id": "ed0c3599f7ee751fca294f8cbbaf7897", "patch_ids": [], "statement_hash": "207003b61a5595b4ebde245173f6685380892c8d86cc65ce162f874ad7d40115", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-10875641167a1e31", "migration": false}, {"id": "9.1.0-1842c757427db855", "cves": [], "html": "<p>\u628a <span>syslog</span> \u65e5\u5fd7\u7684\u9ed8\u8ba4\u6700\u5927\u884c\u957f\u964d\u4f4e\u5230 900 \u5b57\u8282\u52a0\u524d\u7f00\uff08Noah Misch\uff09</p>\n<p>\u8fd9\u907f\u514d\u4e86\u5728\u6709 1KB\uff08\u800c\u975e\u66f4\u5e38\u89c1\u7684 2KB\uff09\u957f\u5ea6\u9650\u5236\u7684 syslog \u5b9e\u73b0\u4e0a\u957f\u65e5\u5fd7\u884c\u88ab\u622a\u65ad\u3002</p>", "text": "\u628a syslog \u65e5\u5fd7\u7684\u9ed8\u8ba4\u6700\u5927\u884c\u957f\u964d\u4f4e\u5230 900 \u5b57\u8282\u52a0\u524d\u7f00\uff08Noah Misch\uff09 \u8fd9\u907f\u514d\u4e86\u5728\u6709 1KB\uff08\u800c\u975e\u66f4\u5e38\u89c1\u7684 2KB\uff09\u957f\u5ea6\u9650\u5236\u7684 syslog \u5b9e\u73b0\u4e0a\u957f\u65e5\u5fd7\u884c\u88ab\u622a\u65ad\u3002", "title": "\u628a syslog \u65e5\u5fd7\u7684\u9ed8\u8ba4\u6700\u5927\u884c\u957f\u964d\u4f4e\u5230 900 \u5b57\u8282\u52a0\u524d\u7f00", "commits": [], "section": "\u670d\u52a1\u5668 / \u76d1\u63a7", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.5", "source_hash": "35789d54a82be435bbe82937db99fcf132f9cd651ec1b9c3cf0f2f3b30928626", "section_path": ["\u670d\u52a1\u5668", "\u76d1\u63a7"], "commit_groups": [], "identity_text": "Reduce the default maximum line length for syslog logging to 900 bytes plus prefixes (Noah Misch) This avoids truncation of long log lines on syslog implementations that have a 1KB length limit, rather than the more common 2KB.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/018", "db_id": "602a5c00cb0d0ea695362f947a264c9a", "patch_ids": [], "statement_hash": "a7a3209074e5a88433e5f2b5c661538c8b0498740ae6f288128623e2666a0123", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-1842c757427db855", "migration": false}, {"id": "9.1.0-1dfa1347e5e9595a", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE\" title=\"\u8868\u00a027.1.\u00a0\u6807\u51c6\u7edf\u8ba1\u89c6\u56fe\"><code>pg_stat_activity</code></a> \u65b0\u589e <code>client_hostname</code> \u5217\uff08Peter Eisentraut\uff09</p>\n<p>\u6b64\u524d\u53ea\u62a5\u544a\u5ba2\u6237\u7aef\u5730\u5740\u3002</p>", "text": "\u4e3a pg_stat_activity \u65b0\u589e client_hostname \u5217\uff08Peter Eisentraut\uff09 \u6b64\u524d\u53ea\u62a5\u544a\u5ba2\u6237\u7aef\u5730\u5740\u3002", "title": "\u4e3a pg_stat_activity \u65b0\u589e client_hostname \u5217", "commits": [], "section": "\u670d\u52a1\u5668 / \u7edf\u8ba1\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.6", "source_hash": "ffa8916c35d5cb2e18cbbd3e06c0a9643bc51c139d93a5535737c9122b21dd35", "section_path": ["\u670d\u52a1\u5668", "\u7edf\u8ba1\u89c6\u56fe"], "commit_groups": [], "identity_text": "Add client_hostname column to pg_stat_activity (Peter Eisentraut) Previously only the client address was reported.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/019", "db_id": "5502325f13d2580814f81ddd1eb99951", "patch_ids": [], "statement_hash": "1299d872e9f36abfac7c1a2933c819c819e0b8331ab0f6d4f670e39dbd9240b6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-1dfa1347e5e9595a", "migration": false}, {"id": "9.1.0-a5168579565551bd", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/9.1/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE\" title=\"\u8868\u00a027.1.\u00a0\u6807\u51c6\u7edf\u8ba1\u89c6\u56fe\"><code>pg_stat_xact_*</code></a> \u7edf\u8ba1\u51fd\u6570\u548c\u89c6\u56fe\uff08Joel Jacobson\uff09</p>\n<p>\u5b83\u4eec\u7c7b\u4f3c\u4e8e\u6570\u636e\u5e93\u8303\u56f4\u7684\u7edf\u8ba1\u8ba1\u6570\u5668\u89c6\u56fe\uff0c\u4f46\u53ea\u53cd\u6620\u5f53\u524d\u4e8b\u52a1\u7684\u8ba1\u6570\u3002</p>", "text": "\u65b0\u589e pg_stat_xact_* \u7edf\u8ba1\u51fd\u6570\u548c\u89c6\u56fe\uff08Joel Jacobson\uff09 \u5b83\u4eec\u7c7b\u4f3c\u4e8e\u6570\u636e\u5e93\u8303\u56f4\u7684\u7edf\u8ba1\u8ba1\u6570\u5668\u89c6\u56fe\uff0c\u4f46\u53ea\u53cd\u6620\u5f53\u524d\u4e8b\u52a1\u7684\u8ba1\u6570\u3002", "title": "\u65b0\u589e pg_stat_xact_* \u7edf\u8ba1\u51fd\u6570\u548c\u89c6\u56fe", "commits": [], "section": "\u670d\u52a1\u5668 / \u7edf\u8ba1\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.6", "source_hash": "e274f03c3dd63775762765032ccdf263a9b65fd18d927940f341fff6e0149ac3", "section_path": ["\u670d\u52a1\u5668", "\u7edf\u8ba1\u89c6\u56fe"], "commit_groups": [], "identity_text": "Add pg_stat_xact_* statistics functions and views (Joel Jacobson) These are like the database-wide statistics counter views, but reflect counts for only the current transaction.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/020", "db_id": "831696b911c2d7f03de31fccb3188209", "patch_ids": [], "statement_hash": "35e423f65aec2e27167aa6a4f04ff8b92e6225c2640cd5ca6e62871a11e28b5e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-a5168579565551bd", "migration": false}, {"id": "9.1.0-16c0231daa5c8e23", "cves": [], "html": "<p>\u5728\u6570\u636e\u5e93\u7ea7\u548c\u540e\u53f0\u5199\u5165\u8fdb\u7a0b\u7edf\u8ba1\u89c6\u56fe\u4e2d\u65b0\u589e\u4e0a\u6b21\u91cd\u7f6e\u65f6\u95f4\uff08Tomas Vondra\uff09</p>", "text": "\u5728\u6570\u636e\u5e93\u7ea7\u548c\u540e\u53f0\u5199\u5165\u8fdb\u7a0b\u7edf\u8ba1\u89c6\u56fe\u4e2d\u65b0\u589e\u4e0a\u6b21\u91cd\u7f6e\u65f6\u95f4\uff08Tomas Vondra\uff09", "title": "\u5728\u6570\u636e\u5e93\u7ea7\u548c\u540e\u53f0\u5199\u5165\u8fdb\u7a0b\u7edf\u8ba1\u89c6\u56fe\u4e2d\u65b0\u589e\u4e0a\u6b21\u91cd\u7f6e\u65f6\u95f4", "commits": [], "section": "\u670d\u52a1\u5668 / \u7edf\u8ba1\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.6", "source_hash": "cb09de37d865efdd760b3b02bb3dafa3b9e72198d4f45836428b13662ca7abf4", "section_path": ["\u670d\u52a1\u5668", "\u7edf\u8ba1\u89c6\u56fe"], "commit_groups": [], "identity_text": "Add time of last reset in database-level and background writer statistics views (Tomas Vondra)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/021", "db_id": "95a3d8136672b9612db267001e96fa19", "patch_ids": [], "statement_hash": "bb7f33366edc90b6f09648e8b8f4ce6ad432b0c13afaaf392ba4803fced090e3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-16c0231daa5c8e23", "migration": false}, {"id": "9.1.0-4661f349a9c5f375", "cves": [], "html": "<p>\u5728 <a href=\"/docs/9.1/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE\" title=\"\u8868\u00a027.1.\u00a0\u6807\u51c6\u7edf\u8ba1\u89c6\u56fe\"><code>pg_stat_*_tables</code></a> \u89c6\u56fe\u4e2d\u65b0\u589e\u663e\u793a\u6e05\u7406\u548c\u5206\u6790\u64cd\u4f5c\u6b21\u6570\u7684\u5217\uff08Magnus Hagander\uff09</p>", "text": "\u5728 pg_stat_*_tables \u89c6\u56fe\u4e2d\u65b0\u589e\u663e\u793a\u6e05\u7406\u548c\u5206\u6790\u64cd\u4f5c\u6b21\u6570\u7684\u5217\uff08Magnus Hagander\uff09", "title": "\u5728 pg_stat_*_tables \u89c6\u56fe\u4e2d\u65b0\u589e\u663e\u793a\u6e05\u7406\u548c\u5206\u6790\u64cd\u4f5c\u6b21\u6570\u7684\u5217", "commits": [], "section": "\u670d\u52a1\u5668 / \u7edf\u8ba1\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.6", "source_hash": "e73d187fb8a4d39fb1de57372b2ea8846194dfc6c23edddf23f2b0cfa199f08d", "section_path": ["\u670d\u52a1\u5668", "\u7edf\u8ba1\u89c6\u56fe"], "commit_groups": [], "identity_text": "Add columns showing the number of vacuum and analyze operations in pg_stat_*_tables views (Magnus Hagander)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/022", "db_id": "7bf504f3ecc5b8232c916cb469c6740a", "patch_ids": [], "statement_hash": "48f6007bdbde3195f99652bc458a2f6903e3950182fe25eac10d12915bf82376", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-4661f349a9c5f375", "migration": false}, {"id": "9.1.0-a7602f4560fa5173", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE\" title=\"\u8868\u00a027.1.\u00a0\u6807\u51c6\u7edf\u8ba1\u89c6\u56fe\"><code>pg_stat_bgwriter</code></a> \u65b0\u589e <code>buffers_backend_fsync</code> \u5217\uff08Greg Smith\uff09</p>\n<p>\u8fd9\u4e2a\u65b0\u5217\u7edf\u8ba1\u540e\u7aef\u5bf9\u7f13\u51b2\u533a\u6267\u884c fsync \u7684\u6b21\u6570\u3002</p>", "text": "\u4e3a pg_stat_bgwriter \u65b0\u589e buffers_backend_fsync \u5217\uff08Greg Smith\uff09 \u8fd9\u4e2a\u65b0\u5217\u7edf\u8ba1\u540e\u7aef\u5bf9\u7f13\u51b2\u533a\u6267\u884c fsync \u7684\u6b21\u6570\u3002", "title": "\u4e3a pg_stat_bgwriter \u65b0\u589e buffers_backend_fsync \u5217", "commits": [], "section": "\u670d\u52a1\u5668 / \u7edf\u8ba1\u89c6\u56fe", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.6", "source_hash": "10c6e3d84953828de867e6db99c8bdb44a7bf96a91f12d3f2ae2477f955c14f6", "section_path": ["\u670d\u52a1\u5668", "\u7edf\u8ba1\u89c6\u56fe"], "commit_groups": [], "identity_text": "Add buffers_backend_fsync column to pg_stat_bgwriter (Greg Smith) This new column counts the number of times a backend fsyncs a buffer.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/023", "db_id": "e0dbd96aac449ba0d6dc27fccb37c339", "patch_ids": [], "statement_hash": "8efc74066410a973de1ef7124540802046fe422f465a178e1a9bab8fecd280c2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-a7602f4560fa5173", "migration": false}, {"id": "9.1.0-71b0932120874992", "cves": [], "html": "<p>\u63d0\u4f9b <a href=\"/docs/9.1/runtime-config-wal.html#GUC-WAL-BUFFERS\"><code>wal_buffers</code></a> \u7684\u81ea\u52a8\u8c03\u6574\uff08Greg Smith\uff09</p>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c<code>wal_buffers</code> \u7684\u503c\u73b0\u5728\u6839\u636e <code>shared_buffers</code> \u7684\u503c\u81ea\u52a8\u9009\u62e9\u3002</p>", "text": "\u63d0\u4f9b wal_buffers \u7684\u81ea\u52a8\u8c03\u6574\uff08Greg Smith\uff09 \u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cwal_buffers \u7684\u503c\u73b0\u5728\u6839\u636e shared_buffers \u7684\u503c\u81ea\u52a8\u9009\u62e9\u3002", "title": "\u63d0\u4f9b wal_buffers \u7684\u81ea\u52a8\u8c03\u6574", "commits": [], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u8bbe\u7f6e", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.7", "source_hash": "34c26624c96b807736072650a6d37e5c0f6dfbfd35bb05d25799c30450b14b15", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u8bbe\u7f6e"], "commit_groups": [], "identity_text": "Provide auto-tuning of wal_buffers (Greg Smith) By default, the value of wal_buffers is now chosen automatically based on the value of shared_buffers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/024", "db_id": "3c71b09507f36de30fed7f9cf2813961", "patch_ids": [], "statement_hash": "65a6572875e738aa90ced1d5680e3968b963dea56d48efc80ea03e70c269fca7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-71b0932120874992", "migration": false}, {"id": "9.1.0-43863dd5254a484d", "cves": [], "html": "<p>\u63d0\u9ad8 <a href=\"/docs/9.1/runtime-config-locks.html#GUC-DEADLOCK-TIMEOUT\"><code>deadlock_timeout</code></a>\u3001<a href=\"/docs/9.1/runtime-config-logging.html#GUC-LOG-MIN-DURATION-STATEMENT\"><code>log_min_duration_statement</code></a> \u548c <a href=\"/docs/9.1/runtime-config-autovacuum.html#GUC-LOG-AUTOVACUUM-MIN-DURATION\"><code>log_autovacuum_min_duration</code></a> \u7684\u6700\u5927\u503c\uff08Peter Eisentraut\uff09</p>\n<p>\u8fd9\u4e9b\u53c2\u6570\u6b64\u524d\u7684\u6700\u5927\u503c\u90fd\u53ea\u6709\u7ea6 35 \u5206\u949f\u3002\u73b0\u5728\u5141\u8bb8\u5927\u5f97\u591a\u7684\u503c\u3002</p>", "text": "\u63d0\u9ad8 deadlock_timeout\u3001log_min_duration_statement \u548c log_autovacuum_min_duration \u7684\u6700\u5927\u503c\uff08Peter Eisentraut\uff09 \u8fd9\u4e9b\u53c2\u6570\u6b64\u524d\u7684\u6700\u5927\u503c\u90fd\u53ea\u6709\u7ea6 35 \u5206\u949f\u3002\u73b0\u5728\u5141\u8bb8\u5927\u5f97\u591a\u7684\u503c\u3002", "title": "\u63d0\u9ad8 deadlock_timeout\u3001log_min_duration_statement \u548c log_autovacuum_min_duration \u7684\u6700\u5927\u503c", "commits": [], "section": "\u670d\u52a1\u5668 / \u670d\u52a1\u5668\u8bbe\u7f6e", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.3.7", "source_hash": "233f80a5cbd061644a36fbc32b3b8423c9ecf50ace01f36f1aaf6ee020d375ca", "section_path": ["\u670d\u52a1\u5668", "\u670d\u52a1\u5668\u8bbe\u7f6e"], "commit_groups": [], "identity_text": "Increase the maximum values for deadlock_timeout, log_min_duration_statement, and log_autovacuum_min_duration (Peter Eisentraut) The maximum value for each of these parameters was previously only about 35 minutes. Much larger values are now allowed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/025", "db_id": "e7f28bf3d9cdb0908ec5c095ef06c18d", "patch_ids": [], "statement_hash": "0b9c8463da6731f60569ef9e4be6e1ef61650b0a48ef421288f7317cc94584ba", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-43863dd5254a484d", "migration": false}, {"id": "9.1.0-2c323a16794a0dce", "cves": [], "html": "<p>\u5141\u8bb8<a href=\"/docs/9.1/warm-standby.html#SYNCHRONOUS-REPLICATION\" title=\"25.2.6.\u00a0\u540c\u6b65\u590d\u5236\">\u540c\u6b65\u590d\u5236</a>\uff08Simon Riggs\u3001Fujii Masao\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u4e3b\u670d\u52a1\u5668\u7b49\u5f85\u5907\u5e93\u628a\u4e8b\u52a1\u4fe1\u606f\u5199\u5165\u78c1\u76d8\u540e\u518d\u786e\u8ba4\u63d0\u4ea4\u3002\u6bcf\u6b21\u53ea\u6709\u4e00\u4e2a\u5907\u5e93\u53ef\u4ee5\u5145\u5f53\u540c\u6b65\u5907\u5e93\u7684\u89d2\u8272\uff0c\u7531 <a href=\"/docs/9.1/runtime-config-replication.html#GUC-SYNCHRONOUS-STANDBY-NAMES\"><code>synchronous_standby_names</code></a> \u8bbe\u7f6e\u63a7\u5236\u3002\u53ef\u4ee5\u4f7f\u7528 <a href=\"/docs/9.1/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT\"><code>synchronous_commit</code></a> \u8bbe\u7f6e\u6309\u4e8b\u52a1\u542f\u7528\u6216\u7981\u7528\u540c\u6b65\u590d\u5236\u3002</p>", "text": "\u5141\u8bb8\u540c\u6b65\u590d\u5236\uff08Simon Riggs\u3001Fujii Masao\uff09 \u8fd9\u5141\u8bb8\u4e3b\u670d\u52a1\u5668\u7b49\u5f85\u5907\u5e93\u628a\u4e8b\u52a1\u4fe1\u606f\u5199\u5165\u78c1\u76d8\u540e\u518d\u786e\u8ba4\u63d0\u4ea4\u3002\u6bcf\u6b21\u53ea\u6709\u4e00\u4e2a\u5907\u5e93\u53ef\u4ee5\u5145\u5f53\u540c\u6b65\u5907\u5e93\u7684\u89d2\u8272\uff0c\u7531 synchronous_standby_names \u8bbe\u7f6e\u63a7\u5236\u3002\u53ef\u4ee5\u4f7f\u7528 synchronous_commit \u8bbe\u7f6e\u6309\u4e8b\u52a1\u542f\u7528\u6216\u7981\u7528\u540c\u6b65\u590d\u5236\u3002", "title": "\u5141\u8bb8\u540c\u6b65\u590d\u5236", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u6d41\u590d\u5236\u548c\u8fde\u7eed\u5f52\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.2", "source_hash": "efcaa6fbce8e4198cd5be445d67ef8fa8fbd5faac7d51a3dbe22a9fe53cb0073", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u6d41\u590d\u5236\u548c\u8fde\u7eed\u5f52\u6863"], "commit_groups": [], "identity_text": "Allow synchronous replication (Simon Riggs, Fujii Masao) This allows the primary server to wait for a standby to write a transaction's information to disk before acknowledging the commit. One standby at a time can take the role of the synchronous standby, as controlled by the synchronous_standby_names setting. Synchronous replication can be enabled or disabled on a per-transaction basis using the synchronous_commit setting.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/026", "db_id": "14ad55c95ece693d97e4778434dda205", "patch_ids": [], "statement_hash": "79789ba8984b2b380acdf9700dc52a873225ff7c5d79bba812c1f57d37970bef", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-2c323a16794a0dce", "migration": false}, {"id": "9.1.0-92d1132ef4a38cbf", "cves": [], "html": "<p>\u65b0\u589e\u534f\u8bae\u652f\u6301\uff0c\u4f7f\u7528\u6d41\u590d\u5236\u7f51\u7edc\u8fde\u63a5\u5411\u5907\u5e93\u670d\u52a1\u5668\u53d1\u9001\u6587\u4ef6\u7cfb\u7edf\u5907\u4efd\uff08Magnus Hagander\u3001Heikki Linnakangas\uff09</p>\n<p>\u8fd9\u907f\u514d\u4e86\u642d\u5efa\u5907\u5e93\u670d\u52a1\u5668\u65f6\u624b\u5de5\u4f20\u8f93\u6587\u4ef6\u7cfb\u7edf\u5907\u4efd\u7684\u8981\u6c42\u3002</p>", "text": "\u65b0\u589e\u534f\u8bae\u652f\u6301\uff0c\u4f7f\u7528\u6d41\u590d\u5236\u7f51\u7edc\u8fde\u63a5\u5411\u5907\u5e93\u670d\u52a1\u5668\u53d1\u9001\u6587\u4ef6\u7cfb\u7edf\u5907\u4efd\uff08Magnus Hagander\u3001Heikki Linnakangas\uff09 \u8fd9\u907f\u514d\u4e86\u642d\u5efa\u5907\u5e93\u670d\u52a1\u5668\u65f6\u624b\u5de5\u4f20\u8f93\u6587\u4ef6\u7cfb\u7edf\u5907\u4efd\u7684\u8981\u6c42\u3002", "title": "\u65b0\u589e\u534f\u8bae\u652f\u6301\uff0c\u4f7f\u7528\u6d41\u590d\u5236\u7f51\u7edc\u8fde\u63a5\u5411\u5907\u5e93\u670d\u52a1\u5668\u53d1\u9001\u6587\u4ef6\u7cfb\u7edf\u5907\u4efd", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u6d41\u590d\u5236\u548c\u8fde\u7eed\u5f52\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.2", "source_hash": "a679a1558596fd08ed357db6270dffce68dc7c8d7d8af227c74440965e7f66a1", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u6d41\u590d\u5236\u548c\u8fde\u7eed\u5f52\u6863"], "commit_groups": [], "identity_text": "Add protocol support for sending file system backups to standby servers using the streaming replication network connection (Magnus Hagander, Heikki Linnakangas) This avoids the requirement of manually transferring a file system backup when setting up a standby server.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/027", "db_id": "b052b49fa1ec3fb5b3bdc2854d20a3be", "patch_ids": [], "statement_hash": "3b3f0fb32560040010fcf5e12e9ce87caea89d34ca326e984e1c122c092744f8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-92d1132ef4a38cbf", "migration": false}, {"id": "9.1.0-3a7f688638e26048", "cves": [], "html": "<p>\u65b0\u589e <code>replication_timeout</code> \u8bbe\u7f6e\uff08Fujii Masao\u3001Heikki Linnakangas\uff09</p>\n<p>\u7a7a\u95f2\u65f6\u95f4\u8d85\u8fc7 <code>replication_timeout</code> \u95f4\u9694\u7684\u590d\u5236\u8fde\u63a5\u5c06\u88ab\u81ea\u52a8\u7ec8\u6b62\u3002\u6b64\u524d\uff0c\u5931\u8d25\u7684\u8fde\u63a5\u901a\u5e38\u8981\u7b49\u5230 TCP \u8d85\u65f6\u624d\u4f1a\u88ab\u68c0\u6d4b\u5230\uff0c\u8fd9\u5728\u8bb8\u591a\u60c5\u51b5\u4e0b\u957f\u5f97\u4e0d\u65b9\u4fbf\u3002</p>", "text": "\u65b0\u589e replication_timeout \u8bbe\u7f6e\uff08Fujii Masao\u3001Heikki Linnakangas\uff09 \u7a7a\u95f2\u65f6\u95f4\u8d85\u8fc7 replication_timeout \u95f4\u9694\u7684\u590d\u5236\u8fde\u63a5\u5c06\u88ab\u81ea\u52a8\u7ec8\u6b62\u3002\u6b64\u524d\uff0c\u5931\u8d25\u7684\u8fde\u63a5\u901a\u5e38\u8981\u7b49\u5230 TCP \u8d85\u65f6\u624d\u4f1a\u88ab\u68c0\u6d4b\u5230\uff0c\u8fd9\u5728\u8bb8\u591a\u60c5\u51b5\u4e0b\u957f\u5f97\u4e0d\u65b9\u4fbf\u3002", "title": "\u65b0\u589e replication_timeout \u8bbe\u7f6e", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u6d41\u590d\u5236\u548c\u8fde\u7eed\u5f52\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.2", "source_hash": "c50f2c92c1b7ea7dadcaa598c537e75ad5499de094f1636621a7b552582b56a8", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u6d41\u590d\u5236\u548c\u8fde\u7eed\u5f52\u6863"], "commit_groups": [], "identity_text": "Add replication_timeout setting (Fujii Masao, Heikki Linnakangas) Replication connections that are idle for more than the replication_timeout interval will be terminated automatically. Formerly, a failed connection was typically not detected until the TCP timeout elapsed, which is inconveniently long in many situations.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/028", "db_id": "e6ffa77b09e9ec0428af00dd27604afb", "patch_ids": [], "statement_hash": "979eed5e0468b5913b10fde6629a9ee15ec8ae0eba12b2f807f0a5094132fd10", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-3a7f688638e26048", "migration": false}, {"id": "9.1.0-873a034adc09201f", "cves": [], "html": "<p>\u65b0\u589e\u547d\u4ee4\u884c\u5de5\u5177<a href=\"/docs/9.1/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a>\uff0c\u7528\u4e8e\u521b\u5efa\u65b0\u7684\u5907\u5e93\u670d\u52a1\u5668\u6216\u6570\u636e\u5e93\u5907\u4efd\uff08Magnus Hagander\uff09</p>", "text": "\u65b0\u589e\u547d\u4ee4\u884c\u5de5\u5177pg_basebackup\uff0c\u7528\u4e8e\u521b\u5efa\u65b0\u7684\u5907\u5e93\u670d\u52a1\u5668\u6216\u6570\u636e\u5e93\u5907\u4efd\uff08Magnus Hagander\uff09", "title": "\u65b0\u589e\u547d\u4ee4\u884c\u5de5\u5177pg_basebackup\uff0c\u7528\u4e8e\u521b\u5efa\u65b0\u7684\u5907\u5e93\u670d\u52a1\u5668\u6216\u6570\u636e\u5e93\u5907\u4efd", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u6d41\u590d\u5236\u548c\u8fde\u7eed\u5f52\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.2", "source_hash": "73ff1c3f4fdf503f11591afc9ce8b0bb2f5691e97abf86661648c0410cee70a1", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u6d41\u590d\u5236\u548c\u8fde\u7eed\u5f52\u6863"], "commit_groups": [], "identity_text": "Add command-line tool pg_basebackup for creating a new standby server or database backup (Magnus Hagander)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/029", "db_id": "5135a718d4bcc0eba383ea84f46697e7", "patch_ids": [], "statement_hash": "434cff55dd84da0b266a442263b50738baf6d155bbc4d7b83d0a369bb94d994e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-873a034adc09201f", "migration": false}, {"id": "9.1.0-8b5925e9af8224d8", "cves": [], "html": "<p>\u4e3a\u89d2\u8272\u65b0\u589e<a href=\"/docs/9.1/sql-createrole.html\" title=\"CREATE ROLE\">\u590d\u5236\u6743\u9650</a>\uff08Magnus Hagander\uff09</p>\n<p>\u8fd9\u662f\u4e00\u4e2a\u7528\u4e8e\u6d41\u590d\u5236\u7684\u53ea\u8bfb\u6743\u9650\u3002\u5b83\u5141\u8bb8\u975e\u8d85\u7ea7\u7528\u6237\u89d2\u8272\u7528\u4e8e\u590d\u5236\u8fde\u63a5\u3002\u6b64\u524d\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u53ef\u4ee5\u53d1\u8d77\u590d\u5236\u8fde\u63a5\uff1b\u8d85\u7ea7\u7528\u6237\u9ed8\u8ba4\u4ecd\u62e5\u6709\u6b64\u6743\u9650\u3002</p>", "text": "\u4e3a\u89d2\u8272\u65b0\u589e\u590d\u5236\u6743\u9650\uff08Magnus Hagander\uff09 \u8fd9\u662f\u4e00\u4e2a\u7528\u4e8e\u6d41\u590d\u5236\u7684\u53ea\u8bfb\u6743\u9650\u3002\u5b83\u5141\u8bb8\u975e\u8d85\u7ea7\u7528\u6237\u89d2\u8272\u7528\u4e8e\u590d\u5236\u8fde\u63a5\u3002\u6b64\u524d\u53ea\u6709\u8d85\u7ea7\u7528\u6237\u53ef\u4ee5\u53d1\u8d77\u590d\u5236\u8fde\u63a5\uff1b\u8d85\u7ea7\u7528\u6237\u9ed8\u8ba4\u4ecd\u62e5\u6709\u6b64\u6743\u9650\u3002", "title": "\u4e3a\u89d2\u8272\u65b0\u589e\u590d\u5236\u6743\u9650", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u6d41\u590d\u5236\u548c\u8fde\u7eed\u5f52\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.2", "source_hash": "ea32c628b0a374bb15b3a172fdb29ff1841b868d3d972a898fe87463a4384d36", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u6d41\u590d\u5236\u548c\u8fde\u7eed\u5f52\u6863"], "commit_groups": [], "identity_text": "Add a replication permission for roles (Magnus Hagander) This is a read-only permission used for streaming replication. It allows a non-superuser role to be used for replication connections. Previously only superusers could initiate replication connections; superusers still have this permission by default.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/030", "db_id": "5dafe2964380a5012d430835ec0e4e6f", "patch_ids": [], "statement_hash": "e1d563aee9a0089dfb6ab676ee0e6c8829eeec01e919232a08e7c80ba935592b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-8b5925e9af8224d8", "migration": false}, {"id": "9.1.0-fa951fb54f152d62", "cves": [], "html": "<p>\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/9.1/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE\" title=\"\u8868\u00a027.1.\u00a0\u6807\u51c6\u7edf\u8ba1\u89c6\u56fe\"><code>pg_stat_replication</code></a>\uff0c\u663e\u793a <acronym>WAL</acronym> \u53d1\u9001\u7aef\u8fdb\u7a0b\u7684\u6d3b\u52a8\uff08Itagaki Takahiro\u3001Simon Riggs\uff09</p>\n<p>\u5b83\u62a5\u544a\u6240\u6709\u5df2\u8fde\u63a5\u5907\u5e93\u670d\u52a1\u5668\u7684\u72b6\u6001\u3002</p>", "text": "\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe pg_stat_replication\uff0c\u663e\u793a WAL \u53d1\u9001\u7aef\u8fdb\u7a0b\u7684\u6d3b\u52a8\uff08Itagaki Takahiro\u3001Simon Riggs\uff09 \u5b83\u62a5\u544a\u6240\u6709\u5df2\u8fde\u63a5\u5907\u5e93\u670d\u52a1\u5668\u7684\u72b6\u6001\u3002", "title": "\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe pg_stat_replication\uff0c\u663e\u793a WAL \u53d1\u9001\u7aef\u8fdb\u7a0b\u7684\u6d3b\u52a8", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u590d\u5236\u76d1\u63a7", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.3", "source_hash": "7f1f4edaceecee07ecd87463cd68eec51f4436769a6358bb19bac412ed512bd2", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u590d\u5236\u76d1\u63a7"], "commit_groups": [], "identity_text": "Add system view pg_stat_replication which displays activity of WAL sender processes (Itagaki Takahiro, Simon Riggs) This reports the status of all connected standby servers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/031", "db_id": "84b73712c94a425211a1ffc8de9f1d68", "patch_ids": [], "statement_hash": "820a025232df8034c229d0c651d0db474723f4b94376d7ee297ecb98718b52ca", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-fa951fb54f152d62", "migration": false}, {"id": "9.1.0-f8fe5f14bcc0af3b", "cves": [], "html": "<p>\u65b0\u589e\u76d1\u63a7\u51fd\u6570 <a href=\"/docs/9.1/functions-admin.html#FUNCTIONS-RECOVERY-INFO-TABLE\" title=\"\u8868\u00a09.58.\u00a0\u6062\u590d\u4fe1\u606f\u51fd\u6570\"><code>pg_last_xact_replay_timestamp()</code></a>\uff08Fujii Masao\uff09</p>\n<p>\u5b83\u8fd4\u56de\u4e3b\u5e93\u751f\u6210\u5907\u5e93\u4e0a\u5df2\u5e94\u7528\u7684\u6700\u65b0\u7684\u63d0\u4ea4\u6216\u4e2d\u6b62\u8bb0\u5f55\u7684\u65f6\u95f4\u3002</p>", "text": "\u65b0\u589e\u76d1\u63a7\u51fd\u6570 pg_last_xact_replay_timestamp()\uff08Fujii Masao\uff09 \u5b83\u8fd4\u56de\u4e3b\u5e93\u751f\u6210\u5907\u5e93\u4e0a\u5df2\u5e94\u7528\u7684\u6700\u65b0\u7684\u63d0\u4ea4\u6216\u4e2d\u6b62\u8bb0\u5f55\u7684\u65f6\u95f4\u3002", "title": "\u65b0\u589e\u76d1\u63a7\u51fd\u6570 pg_last_xact_replay_timestamp()", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u590d\u5236\u76d1\u63a7", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.3", "source_hash": "71166a5af6fd24e4e1acb323a2b24e09fb826381323cd6e8ffd3b8636a8c0c1e", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u590d\u5236\u76d1\u63a7"], "commit_groups": [], "identity_text": "Add monitoring function pg_last_xact_replay_timestamp() (Fujii Masao) This returns the time at which the primary generated the most recent commit or abort record applied on the standby.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/032", "db_id": "e734548bca22bba73924cf6c04b48e8a", "patch_ids": [], "statement_hash": "2ac70c96a71ff41ce19c316d137fe95528a82b35214c32c2d32c3627635ccc17", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f8fe5f14bcc0af3b", "migration": false}, {"id": "9.1.0-f5ac0f472c2baf40", "cves": [], "html": "<p>\u65b0\u589e\u914d\u7f6e\u53c2\u6570 <a href=\"/docs/9.1/runtime-config-replication.html#GUC-HOT-STANDBY-FEEDBACK\"><code>hot_standby_feedback</code></a>\uff0c\u4f7f\u5907\u5e93\u53ef\u4ee5\u63a8\u8fdf\u4e3b\u5e93\u4e0a\u65e7\u884c\u7248\u672c\u7684\u6e05\u7406\uff08Simon Riggs\uff09</p>\n<p>\u8fd9\u6709\u52a9\u4e8e\u907f\u514d\u53d6\u6d88\u5907\u5e93\u4e0a\u7684\u957f\u65f6\u95f4\u8fd0\u884c\u67e5\u8be2\u3002</p>", "text": "\u65b0\u589e\u914d\u7f6e\u53c2\u6570 hot_standby_feedback\uff0c\u4f7f\u5907\u5e93\u53ef\u4ee5\u63a8\u8fdf\u4e3b\u5e93\u4e0a\u65e7\u884c\u7248\u672c\u7684\u6e05\u7406\uff08Simon Riggs\uff09 \u8fd9\u6709\u52a9\u4e8e\u907f\u514d\u53d6\u6d88\u5907\u5e93\u4e0a\u7684\u957f\u65f6\u95f4\u8fd0\u884c\u67e5\u8be2\u3002", "title": "\u65b0\u589e\u914d\u7f6e\u53c2\u6570 hot_standby_feedback\uff0c\u4f7f\u5907\u5e93\u53ef\u4ee5\u63a8\u8fdf\u4e3b\u5e93\u4e0a\u65e7\u884c\u7248\u672c\u7684\u6e05\u7406", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u70ed\u5907", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.4", "source_hash": "ab2121fc0a665fcacc116e86bc30e29731d4d84dd8257352f39f5e14fab152c6", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u70ed\u5907"], "commit_groups": [], "identity_text": "Add configuration parameter hot_standby_feedback to enable standbys to postpone cleanup of old row versions on the primary (Simon Riggs) This helps avoid canceling long-running queries on the standby.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/033", "db_id": "79662d23edfbd6471b5a45db7916a3c0", "patch_ids": [], "statement_hash": "85a87fb7b69e54dfb15489fbb509814986970b7deef28bc5d3b05efed4cce5ae", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f5ac0f472c2baf40", "migration": false}, {"id": "9.1.0-7f15c54b84cd2604", "cves": [], "html": "<p>\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe <a href=\"/docs/9.1/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE\" title=\"\u8868\u00a027.1.\u00a0\u6807\u51c6\u7edf\u8ba1\u89c6\u56fe\"><code>pg_stat_database_conflicts</code></a>\uff0c\u663e\u793a\u5df2\u88ab\u53d6\u6d88\u7684\u67e5\u8be2\u53ca\u5176\u539f\u56e0\uff08Magnus Hagander\uff09</p>\n<p>\u53d6\u6d88\u53ef\u80fd\u56e0\u8868\u7a7a\u95f4\u88ab\u5220\u9664\u3001\u9501\u8d85\u65f6\u3001\u65e7\u5feb\u7167\u3001\u88ab\u56fa\u5b9a\u7684\u7f13\u51b2\u533a\u548c\u6b7b\u9501\u800c\u53d1\u751f\u3002</p>", "text": "\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe pg_stat_database_conflicts\uff0c\u663e\u793a\u5df2\u88ab\u53d6\u6d88\u7684\u67e5\u8be2\u53ca\u5176\u539f\u56e0\uff08Magnus Hagander\uff09 \u53d6\u6d88\u53ef\u80fd\u56e0\u8868\u7a7a\u95f4\u88ab\u5220\u9664\u3001\u9501\u8d85\u65f6\u3001\u65e7\u5feb\u7167\u3001\u88ab\u56fa\u5b9a\u7684\u7f13\u51b2\u533a\u548c\u6b7b\u9501\u800c\u53d1\u751f\u3002", "title": "\u65b0\u589e\u7cfb\u7edf\u89c6\u56fe pg_stat_database_conflicts\uff0c\u663e\u793a\u5df2\u88ab\u53d6\u6d88\u7684\u67e5\u8be2\u53ca\u5176\u539f\u56e0", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u70ed\u5907", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.4", "source_hash": "b4ddb4376066415015ffa0c3c79e8d215e997ee92a92a492932c7266ff83f0d4", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u70ed\u5907"], "commit_groups": [], "identity_text": "Add the pg_stat_database_conflicts system view to show queries that have been canceled and the reason (Magnus Hagander) Cancellations can occur because of dropped tablespaces, lock timeouts, old snapshots, pinned buffers, and deadlocks.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/034", "db_id": "69b54c88fc7917aceface1400a905cca", "patch_ids": [], "statement_hash": "93faf8a1d86aa0cb1d4f03d581428e1146726e226d6e0082e4b2e98fa8dffe05", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-7f15c54b84cd2604", "migration": false}, {"id": "9.1.0-f623de57d8e9a1fa", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE\" title=\"\u8868\u00a027.1.\u00a0\u6807\u51c6\u7edf\u8ba1\u89c6\u56fe\"><code>pg_stat_database</code></a> \u65b0\u589e <code>conflicts</code> \u8ba1\u6570\uff08Magnus Hagander\uff09</p>\n<p>\u8fd9\u662f\u8be5\u6570\u636e\u5e93\u4e2d\u53d1\u751f\u7684\u51b2\u7a81\u6570\u91cf\u3002</p>", "text": "\u4e3a pg_stat_database \u65b0\u589e conflicts \u8ba1\u6570\uff08Magnus Hagander\uff09 \u8fd9\u662f\u8be5\u6570\u636e\u5e93\u4e2d\u53d1\u751f\u7684\u51b2\u7a81\u6570\u91cf\u3002", "title": "\u4e3a pg_stat_database \u65b0\u589e conflicts \u8ba1\u6570", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u70ed\u5907", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.4", "source_hash": "4824a7513d70f329b9dadd5a70a6b14527e7e2c15a033a7cbf2c018627e8793c", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u70ed\u5907"], "commit_groups": [], "identity_text": "Add a conflicts count to pg_stat_database (Magnus Hagander) This is the number of conflicts that occurred in the database.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/035", "db_id": "5384b09f324fe191e53226deb8413e16", "patch_ids": [], "statement_hash": "6a4fce9eb771501414ede1b58dfed7e3586d6796488038c68f02b972408c43e6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f623de57d8e9a1fa", "migration": false}, {"id": "9.1.0-2d7d986a2245b252", "cves": [], "html": "<p>\u63d0\u9ad8 <a href=\"/docs/9.1/runtime-config-replication.html#GUC-MAX-STANDBY-ARCHIVE-DELAY\"><code>max_standby_archive_delay</code></a> \u548c <a href=\"/docs/9.1/runtime-config-replication.html#GUC-MAX-STANDBY-STREAMING-DELAY\"><code>max_standby_streaming_delay</code></a> \u7684\u6700\u5927\u503c</p>\n<p>\u8fd9\u4e9b\u53c2\u6570\u6b64\u524d\u7684\u6700\u5927\u503c\u90fd\u53ea\u6709\u7ea6 35 \u5206\u949f\u3002\u73b0\u5728\u5141\u8bb8\u5927\u5f97\u591a\u7684\u503c\u3002</p>", "text": "\u63d0\u9ad8 max_standby_archive_delay \u548c max_standby_streaming_delay \u7684\u6700\u5927\u503c \u8fd9\u4e9b\u53c2\u6570\u6b64\u524d\u7684\u6700\u5927\u503c\u90fd\u53ea\u6709\u7ea6 35 \u5206\u949f\u3002\u73b0\u5728\u5141\u8bb8\u5927\u5f97\u591a\u7684\u503c\u3002", "title": "\u63d0\u9ad8 max_standby_archive_delay \u548c max_standby_streaming_delay \u7684\u6700\u5927\u503c", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u70ed\u5907", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.4", "source_hash": "51c475054f07edee9ed7a14d2a1244ac0e306eab450719937d187620b168f4c5", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u70ed\u5907"], "commit_groups": [], "identity_text": "Increase the maximum values for max_standby_archive_delay and max_standby_streaming_delay The maximum value for each of these parameters was previously only about 35 minutes. Much larger values are now allowed.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/036", "db_id": "a6a3d9cca9505127cd784c622b3d7de6", "patch_ids": [], "statement_hash": "b4f5fab2c6298a185ff6abae9f7ed469724d2ce171ec4cd57044d01dd792e529", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-2d7d986a2245b252", "migration": false}, {"id": "9.1.0-d251b105c2ac4c05", "cves": [], "html": "<p>\u65b0\u589e\u9519\u8bef\u7801 <a href=\"/docs/9.1/errcodes-appendix.html#ERRCODES-TABLE\" title=\"\u8868\u00a0A.1.\u00a0PostgreSQL\u9519\u8bef\u4ee3\u7801\"><code>ERRCODE_T_R_DATABASE_DROPPED</code></a>\uff0c\u7528\u4e8e\u62a5\u544a\u56e0\u6570\u636e\u5e93\u88ab\u5220\u9664\u5bfc\u81f4\u7684\u6062\u590d\u51b2\u7a81\uff08Tatsuo Ishii\uff09</p>\n<p>\u8fd9\u5bf9\u8fde\u63a5\u6c60\u8f6f\u4ef6\u5f88\u6709\u7528\u3002</p>", "text": "\u65b0\u589e\u9519\u8bef\u7801 ERRCODE_T_R_DATABASE_DROPPED\uff0c\u7528\u4e8e\u62a5\u544a\u56e0\u6570\u636e\u5e93\u88ab\u5220\u9664\u5bfc\u81f4\u7684\u6062\u590d\u51b2\u7a81\uff08Tatsuo Ishii\uff09 \u8fd9\u5bf9\u8fde\u63a5\u6c60\u8f6f\u4ef6\u5f88\u6709\u7528\u3002", "title": "\u65b0\u589e\u9519\u8bef\u7801 ERRCODE_T_R_DATABASE_DROPPED\uff0c\u7528\u4e8e\u62a5\u544a\u56e0\u6570\u636e\u5e93\u88ab\u5220\u9664\u5bfc\u81f4\u7684\u6062\u590d\u51b2\u7a81", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u70ed\u5907", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.4", "source_hash": "9c107480998b4b66a10c89a8185dae5298697e94787c9fe33f831d32dcfe0251", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u70ed\u5907"], "commit_groups": [], "identity_text": "Add ERRCODE_T_R_DATABASE_DROPPED error code to report recovery conflicts due to dropped databases (Tatsuo Ishii) This is useful for connection pooling software.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/037", "db_id": "c2edc36efce725fe8c1686e858c6aaed", "patch_ids": [], "statement_hash": "d8f619f672c4ce8afc214e2ca4ffca3f915164bca0a1d2f8373ce37e648e39f6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-d251b105c2ac4c05", "migration": false}, {"id": "9.1.0-a2ec27088a2018c1", "cves": [], "html": "<p>\u65b0\u589e\u63a7\u5236\u6d41\u590d\u5236\u91cd\u653e\u7684\u51fd\u6570\uff08Simon Riggs\uff09</p>\n<p>\u65b0\u51fd\u6570\u4e3a <a href=\"/docs/9.1/functions-admin.html#FUNCTIONS-RECOVERY-CONTROL-TABLE\" title=\"\u8868\u00a09.59.\u00a0\u6062\u590d\u63a7\u5236\u51fd\u6570\"><code>pg_xlog_replay_pause()</code></a>\u3001<a href=\"/docs/9.1/functions-admin.html#FUNCTIONS-RECOVERY-CONTROL-TABLE\" title=\"\u8868\u00a09.59.\u00a0\u6062\u590d\u63a7\u5236\u51fd\u6570\"><code>pg_xlog_replay_resume()</code></a> \u548c\u72b6\u6001\u51fd\u6570 <a href=\"/docs/9.1/functions-admin.html#FUNCTIONS-RECOVERY-CONTROL-TABLE\" title=\"\u8868\u00a09.59.\u00a0\u6062\u590d\u63a7\u5236\u51fd\u6570\"><code>pg_is_xlog_replay_paused()</code></a>\u3002</p>", "text": "\u65b0\u589e\u63a7\u5236\u6d41\u590d\u5236\u91cd\u653e\u7684\u51fd\u6570\uff08Simon Riggs\uff09 \u65b0\u51fd\u6570\u4e3a pg_xlog_replay_pause()\u3001pg_xlog_replay_resume() \u548c\u72b6\u6001\u51fd\u6570 pg_is_xlog_replay_paused()\u3002", "title": "\u65b0\u589e\u63a7\u5236\u6d41\u590d\u5236\u91cd\u653e\u7684\u51fd\u6570", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u6062\u590d\u63a7\u5236", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.5", "source_hash": "443b69c60525f62beec160a94920a0bbc7872dd8c513f0140938b827fa3f7624", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u6062\u590d\u63a7\u5236"], "commit_groups": [], "identity_text": "Add functions to control streaming replication replay (Simon Riggs) The new functions are pg_xlog_replay_pause(), pg_xlog_replay_resume(), and the status function pg_is_xlog_replay_paused().", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/038", "db_id": "27b3b5e9e64e803e92a5eed6197e9bb9", "patch_ids": [], "statement_hash": "d7057eeb9f2c460b1b7f54454a6ef7dc35a345244422d545d95d0850448bae2e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-a2ec27088a2018c1", "migration": false}, {"id": "9.1.0-60ded08529617b76", "cves": [], "html": "<p>\u65b0\u589e <code>recovery.conf</code> \u8bbe\u7f6e <code>pause_at_recovery_target</code>\uff0c\u7528\u4e8e\u5728\u76ee\u6807\u5904\u6682\u505c\u6062\u590d\uff08Simon Riggs\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u67e5\u8be2\u6062\u590d\u670d\u52a1\u5668\u4ee5\u68c0\u67e5\u6062\u590d\u70b9\u662f\u5426\u662f\u671f\u671b\u7684\u90a3\u4e2a\u3002</p>", "text": "\u65b0\u589e recovery.conf \u8bbe\u7f6e pause_at_recovery_target\uff0c\u7528\u4e8e\u5728\u76ee\u6807\u5904\u6682\u505c\u6062\u590d\uff08Simon Riggs\uff09 \u8fd9\u5141\u8bb8\u67e5\u8be2\u6062\u590d\u670d\u52a1\u5668\u4ee5\u68c0\u67e5\u6062\u590d\u70b9\u662f\u5426\u662f\u671f\u671b\u7684\u90a3\u4e2a\u3002", "title": "\u65b0\u589e recovery.conf \u8bbe\u7f6e pause_at_recovery_target\uff0c\u7528\u4e8e\u5728\u76ee\u6807\u5904\u6682\u505c\u6062\u590d", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u6062\u590d\u63a7\u5236", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.5", "source_hash": "f5882e280294aae60700e1004f483b1304229925d2aad372f52933f5b2bad11b", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u6062\u590d\u63a7\u5236"], "commit_groups": [], "identity_text": "Add recovery.conf setting pause_at_recovery_target to pause recovery at target (Simon Riggs) This allows a recovery server to be queried to check whether the recovery point is the one desired.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/039", "db_id": "a3f5b21e98b02fe9c22e2230f3c53770", "patch_ids": [], "statement_hash": "142a7af51fe42a226a2f2a823fa80a3b9c72e4f1b53bb9099106b5f5f4b23a76", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-60ded08529617b76", "migration": false}, {"id": "9.1.0-52871215eeabef4b", "cves": [], "html": "<p>\u65b0\u589e\u4f7f\u7528 <a href=\"/docs/9.1/functions-admin.html#FUNCTIONS-ADMIN-BACKUP-TABLE\" title=\"\u8868\u00a09.57.\u00a0\u5907\u4efd\u63a7\u5236\u51fd\u6570\"><code>pg_create_restore_point()</code></a> \u521b\u5efa\u547d\u540d\u8fd8\u539f\u70b9\u7684\u80fd\u529b\uff08Jaime Casanova\uff09</p>\n<p>\u8fd9\u4e9b\u547d\u540d\u8fd8\u539f\u70b9\u53ef\u4ee5\u901a\u8fc7\u65b0\u7684 <code>recovery.conf</code> \u8bbe\u7f6e <a href=\"/docs/9.1/recovery-target-settings.html#RECOVERY-TARGET-NAME\"><code>recovery_target_name</code></a> \u6307\u5b9a\u4e3a\u6062\u590d\u76ee\u6807\u3002</p>", "text": "\u65b0\u589e\u4f7f\u7528 pg_create_restore_point() \u521b\u5efa\u547d\u540d\u8fd8\u539f\u70b9\u7684\u80fd\u529b\uff08Jaime Casanova\uff09 \u8fd9\u4e9b\u547d\u540d\u8fd8\u539f\u70b9\u53ef\u4ee5\u901a\u8fc7\u65b0\u7684 recovery.conf \u8bbe\u7f6e recovery_target_name \u6307\u5b9a\u4e3a\u6062\u590d\u76ee\u6807\u3002", "title": "\u65b0\u589e\u4f7f\u7528 pg_create_restore_point() \u521b\u5efa\u547d\u540d\u8fd8\u539f\u70b9\u7684\u80fd\u529b", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u6062\u590d\u63a7\u5236", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.5", "source_hash": "b344505afc397b0348e6364a2b291ecdb0672d9c6a772ce12ac9010aecd222e8", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u6062\u590d\u63a7\u5236"], "commit_groups": [], "identity_text": "Add the ability to create named restore points using pg_create_restore_point() (Jaime Casanova) These named restore points can be specified as recovery targets using the new recovery.conf setting recovery_target_name.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/040", "db_id": "c397f75bea58b1580f13e27dee8d4da6", "patch_ids": [], "statement_hash": "02444a45a9b412091f74d892c04d4140216dc95d89e0d508340cabd017eb7f8c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-52871215eeabef4b", "migration": false}, {"id": "9.1.0-dc42506318b3829a", "cves": [], "html": "<p>\u5141\u8bb8\u5907\u5e93\u6062\u590d\u81ea\u52a8\u5207\u6362\u5230\u65b0\u65f6\u95f4\u7ebf\uff08Heikki Linnakangas\uff09</p>\n<p>\u73b0\u5728\u5907\u5e93\u670d\u52a1\u5668\u4f1a\u5b9a\u671f\u626b\u63cf\u5f52\u6863\u76ee\u5f55\u4ee5\u53d1\u73b0\u65b0\u65f6\u95f4\u7ebf\u3002</p>", "text": "\u5141\u8bb8\u5907\u5e93\u6062\u590d\u81ea\u52a8\u5207\u6362\u5230\u65b0\u65f6\u95f4\u7ebf\uff08Heikki Linnakangas\uff09 \u73b0\u5728\u5907\u5e93\u670d\u52a1\u5668\u4f1a\u5b9a\u671f\u626b\u63cf\u5f52\u6863\u76ee\u5f55\u4ee5\u53d1\u73b0\u65b0\u65f6\u95f4\u7ebf\u3002", "title": "\u5141\u8bb8\u5907\u5e93\u6062\u590d\u81ea\u52a8\u5207\u6362\u5230\u65b0\u65f6\u95f4\u7ebf", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u6062\u590d\u63a7\u5236", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.5", "source_hash": "43d1a0074272c3c916ff8b994e488a2111c1eff1cc30212aa08696523af6b26e", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u6062\u590d\u63a7\u5236"], "commit_groups": [], "identity_text": "Allow standby recovery to switch to a new timeline automatically (Heikki Linnakangas) Now standby servers scan the archive directory for new timelines periodically.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/041", "db_id": "fe049c3581653750f39b188a812a35a0", "patch_ids": [], "statement_hash": "5a979e5fcb89a652d895a19f7a6cc9486346c89c21dd260ed37996ef8e666042", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-dc42506318b3829a", "migration": false}, {"id": "9.1.0-fd80bcfd28f4057d", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/9.1/runtime-config-error-handling.html#GUC-RESTART-AFTER-CRASH\"><code>restart_after_crash</code></a> \u8bbe\u7f6e\uff0c\u7528\u4e8e\u5728\u540e\u7aef\u5d29\u6e83\u540e\u7981\u7528\u81ea\u52a8\u670d\u52a1\u5668\u91cd\u542f\uff08Robert Haas\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u5916\u90e8\u96c6\u7c07\u7ba1\u7406\u8f6f\u4ef6\u63a7\u5236\u6570\u636e\u5e93\u670d\u52a1\u5668\u662f\u5426\u91cd\u542f\u3002</p>", "text": "\u65b0\u589e restart_after_crash \u8bbe\u7f6e\uff0c\u7528\u4e8e\u5728\u540e\u7aef\u5d29\u6e83\u540e\u7981\u7528\u81ea\u52a8\u670d\u52a1\u5668\u91cd\u542f\uff08Robert Haas\uff09 \u8fd9\u5141\u8bb8\u5916\u90e8\u96c6\u7c07\u7ba1\u7406\u8f6f\u4ef6\u63a7\u5236\u6570\u636e\u5e93\u670d\u52a1\u5668\u662f\u5426\u91cd\u542f\u3002", "title": "\u65b0\u589e restart_after_crash \u8bbe\u7f6e\uff0c\u7528\u4e8e\u5728\u540e\u7aef\u5d29\u6e83\u540e\u7981\u7528\u81ea\u52a8\u670d\u52a1\u5668\u91cd\u542f", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u6062\u590d\u63a7\u5236", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.5", "source_hash": "d507e2ad6906d63e441971a8fed520e07672b067ba3e8d68bbfdd8b264ed95f1", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u6062\u590d\u63a7\u5236"], "commit_groups": [], "identity_text": "Add restart_after_crash setting which disables automatic server restart after a backend crash (Robert Haas) This allows external cluster management software to control whether the database server restarts or not.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/042", "db_id": "762708d7103e2e123c8526e054a26b80", "patch_ids": [], "statement_hash": "47dadbbe5d341f09a16ddf1bd8ffcea67b37b091559c5f21f58805c6c48afc4b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-fd80bcfd28f4057d", "migration": false}, {"id": "9.1.0-f03717324a693a9e", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/9.1/recovery-config.html\" title=\"\u7b2c\u00a026\u00a0\u7ae0\u00a0\u6062\u590d\u914d\u7f6e\"><code>recovery.conf</code></a> \u4f7f\u7528\u4e0e <code>postgresql.conf</code> \u76f8\u540c\u7684\u5f15\u53f7\u884c\u4e3a\uff08Dimitri Fontaine\uff09</p>\n<p>\u6b64\u524d\u6240\u6709\u503c\u90fd\u5fc5\u987b\u52a0\u5f15\u53f7\u3002</p>", "text": "\u5141\u8bb8 recovery.conf \u4f7f\u7528\u4e0e postgresql.conf \u76f8\u540c\u7684\u5f15\u53f7\u884c\u4e3a\uff08Dimitri Fontaine\uff09 \u6b64\u524d\u6240\u6709\u503c\u90fd\u5fc5\u987b\u52a0\u5f15\u53f7\u3002", "title": "\u5141\u8bb8 recovery.conf \u4f7f\u7528\u4e0e postgresql.conf \u76f8\u540c\u7684\u5f15\u53f7\u884c\u4e3a", "commits": [], "section": "\u590d\u5236\u548c\u6062\u590d / \u6062\u590d\u63a7\u5236", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.4.5", "source_hash": "3a476c108c7d290b50d91a2427af0a6f8d66a905004b771210b28df37a43a5d7", "section_path": ["\u590d\u5236\u548c\u6062\u590d", "\u6062\u590d\u63a7\u5236"], "commit_groups": [], "identity_text": "Allow recovery.conf to use the same quoting behavior as postgresql.conf (Dimitri Fontaine) Previously all values had to be quoted.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/043", "db_id": "852f7f91ff501fb953e7b1bdcedeed37", "patch_ids": [], "statement_hash": "f1b088245f01dc2bdb6b09b45e104db4504a7d67202f074c59ea602865be468c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f03717324a693a9e", "migration": false}, {"id": "9.1.0-5ba2dc0f014d0f00", "cves": [], "html": "<p>\u65b0\u589e\u771f\u6b63\u7684<a href=\"/docs/9.1/transaction-iso.html#XACT-SERIALIZABLE\" title=\"13.2.3.\u00a0\u53ef\u4e32\u884c\u5316\u9694\u79bb\u7ea7\u522b\">\u53ef\u5e8f\u5217\u5316\u9694\u79bb\u7ea7\u522b</a>\uff08Kevin Grittner\u3001Dan Ports\uff09</p>\n<p>\u6b64\u524d\uff0c\u8bf7\u6c42\u53ef\u5e8f\u5217\u5316\u9694\u79bb\u53ea\u4fdd\u8bc1\u6574\u4e2a\u4e8b\u52a1\u4f7f\u7528\u5355\u4e2a MVCC \u5feb\u7167\uff0c\u8fd9\u5141\u8bb8\u67d0\u4e9b\u5df2\u8bb0\u8f7d\u7684\u5f02\u5e38\u3002\u65e7\u7684\u5feb\u7167\u9694\u79bb\u884c\u4e3a\u4ecd\u53ef\u901a\u8fc7\u8bf7\u6c42 <a href=\"/docs/9.1/transaction-iso.html#XACT-REPEATABLE-READ\" title=\"13.2.2.\u00a0\u53ef\u91cd\u590d\u8bfb\u9694\u79bb\u7ea7\u522b\"><code>REPEATABLE READ</code></a> \u9694\u79bb\u7ea7\u522b\u83b7\u5f97\u3002</p>", "text": "\u65b0\u589e\u771f\u6b63\u7684\u53ef\u5e8f\u5217\u5316\u9694\u79bb\u7ea7\u522b\uff08Kevin Grittner\u3001Dan Ports\uff09 \u6b64\u524d\uff0c\u8bf7\u6c42\u53ef\u5e8f\u5217\u5316\u9694\u79bb\u53ea\u4fdd\u8bc1\u6574\u4e2a\u4e8b\u52a1\u4f7f\u7528\u5355\u4e2a MVCC \u5feb\u7167\uff0c\u8fd9\u5141\u8bb8\u67d0\u4e9b\u5df2\u8bb0\u8f7d\u7684\u5f02\u5e38\u3002\u65e7\u7684\u5feb\u7167\u9694\u79bb\u884c\u4e3a\u4ecd\u53ef\u901a\u8fc7\u8bf7\u6c42 REPEATABLE READ \u9694\u79bb\u7ea7\u522b\u83b7\u5f97\u3002", "title": "\u65b0\u589e\u771f\u6b63\u7684\u53ef\u5e8f\u5217\u5316\u9694\u79bb\u7ea7\u522b", "commits": [], "section": "\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.5", "source_hash": "06eb0ce24d51646d8c84779963059490c3e721e916e7a4398a55206e69653bb3", "section_path": ["\u67e5\u8be2"], "commit_groups": [], "identity_text": "Add a true serializable isolation level (Kevin Grittner, Dan Ports) Previously, asking for serializable isolation guaranteed only that a single MVCC snapshot would be used for the entire transaction, which allowed certain documented anomalies. The old snapshot isolation behavior is still available by requesting the REPEATABLE READ isolation level.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/044", "db_id": "719394310c89fabecf01d919818149d5", "patch_ids": [], "statement_hash": "a393b8d562c1c6c9663f8f3f8852b953b5ee92a01226ff2e026faccf7b7cb09c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-5ba2dc0f014d0f00", "migration": false}, {"id": "9.1.0-f9b8919e24427bba", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <a href=\"/docs/9.1/queries-with.html\" title=\"7.8.\u00a0WITH\u67e5\u8be2\uff08\u516c\u5171\u8868\u8868\u8fbe\u5f0f\uff09\"><code>WITH</code></a> \u5b50\u53e5\u4e2d\u4f7f\u7528\u6570\u636e\u4fee\u6539\u547d\u4ee4\uff08<code>INSERT</code>/<code>UPDATE</code>/<code>DELETE</code>\uff09\uff08Marko Tiikkaja\u3001Hitoshi Harada\uff09</p>\n<p>\u8fd9\u4e9b\u547d\u4ee4\u53ef\u4ee5\u4f7f\u7528 <code>RETURNING</code> \u628a\u6570\u636e\u4f20\u9012\u7ed9\u5305\u542b\u5b83\u4eec\u7684\u67e5\u8be2\u3002</p>", "text": "\u5141\u8bb8\u5728 WITH \u5b50\u53e5\u4e2d\u4f7f\u7528\u6570\u636e\u4fee\u6539\u547d\u4ee4\uff08INSERT/UPDATE/DELETE\uff09\uff08Marko Tiikkaja\u3001Hitoshi Harada\uff09 \u8fd9\u4e9b\u547d\u4ee4\u53ef\u4ee5\u4f7f\u7528 RETURNING \u628a\u6570\u636e\u4f20\u9012\u7ed9\u5305\u542b\u5b83\u4eec\u7684\u67e5\u8be2\u3002", "title": "\u5141\u8bb8\u5728 WITH \u5b50\u53e5\u4e2d\u4f7f\u7528\u6570\u636e\u4fee\u6539\u547d\u4ee4\uff08INSERT/UPDATE/DELETE\uff09", "commits": [], "section": "\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.5", "source_hash": "527a10e75d0300b8e199c7088bf5f2fe14294227653d1b30184c987b111d8f98", "section_path": ["\u67e5\u8be2"], "commit_groups": [], "identity_text": "Allow data-modification commands (INSERT/UPDATE/DELETE) in WITH clauses (Marko Tiikkaja, Hitoshi Harada) These commands can use RETURNING to pass data up to the containing query.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/045", "db_id": "917d23692d3acfa91e6c22c0c4e71f22", "patch_ids": [], "statement_hash": "f93c8b551be421a8a7a4e28c9cf4fc0f33677a0f2f56014c05f69451672787ca", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f9b8919e24427bba", "migration": false}, {"id": "9.1.0-8a13a6bdace086cb", "cves": [], "html": "<p>\u5141\u8bb8\u628a <a href=\"/docs/9.1/queries-with.html\" title=\"7.8.\u00a0WITH\u67e5\u8be2\uff08\u516c\u5171\u8868\u8868\u8fbe\u5f0f\uff09\"><code>WITH</code></a> \u5b50\u53e5\u9644\u52a0\u5230 <code>INSERT</code>\u3001<code>UPDATE</code>\u3001<code>DELETE</code> \u8bed\u53e5\uff08Marko Tiikkaja\u3001Hitoshi Harada\uff09</p>", "text": "\u5141\u8bb8\u628a WITH \u5b50\u53e5\u9644\u52a0\u5230 INSERT\u3001UPDATE\u3001DELETE \u8bed\u53e5\uff08Marko Tiikkaja\u3001Hitoshi Harada\uff09", "title": "\u5141\u8bb8\u628a WITH \u5b50\u53e5\u9644\u52a0\u5230 INSERT\u3001UPDATE\u3001DELETE \u8bed\u53e5", "commits": [], "section": "\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.5", "source_hash": "fa0d2a5e1c2832623b906eb66e1ea506108965306bedfcbebab6bbc05ee9400b", "section_path": ["\u67e5\u8be2"], "commit_groups": [], "identity_text": "Allow WITH clauses to be attached to INSERT, UPDATE, DELETE statements (Marko Tiikkaja, Hitoshi Harada)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/046", "db_id": "c672817816cd03574cebb693f4a6ce10", "patch_ids": [], "statement_hash": "0f044ee1959003adb4f09b69bf625e3a7d15254ea5e024215f51adb4cbc2b3e2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-8a13a6bdace086cb", "migration": false}, {"id": "9.1.0-c8077d271e52a9b7", "cves": [], "html": "<p>\u5f53\u5728 <code>GROUP BY</code> \u5b50\u53e5\u4e2d\u6307\u5b9a\u4e86\u4e3b\u952e\u65f6\uff0c\u5141\u8bb8\u67e5\u8be2\u76ee\u6807\u5217\u8868\u4e2d\u51fa\u73b0\u975e <a href=\"/docs/9.1/queries-table-expressions.html#QUERIES-GROUP\" title=\"7.2.3.\u00a0GROUP BY\u548cHAVING\u5b50\u53e5\"><code>GROUP BY</code></a> \u5217\uff08Peter Eisentraut\uff09</p>\n<p>SQL \u6807\u51c6\u5141\u8bb8\u8fd9\u79cd\u884c\u4e3a\uff0c\u800c\u4e14\u7531\u4e8e\u6709\u4e3b\u952e\uff0c\u7ed3\u679c\u662f\u65e0\u6b67\u4e49\u7684\u3002</p>", "text": "\u5f53\u5728 GROUP BY \u5b50\u53e5\u4e2d\u6307\u5b9a\u4e86\u4e3b\u952e\u65f6\uff0c\u5141\u8bb8\u67e5\u8be2\u76ee\u6807\u5217\u8868\u4e2d\u51fa\u73b0\u975e GROUP BY \u5217\uff08Peter Eisentraut\uff09 SQL \u6807\u51c6\u5141\u8bb8\u8fd9\u79cd\u884c\u4e3a\uff0c\u800c\u4e14\u7531\u4e8e\u6709\u4e3b\u952e\uff0c\u7ed3\u679c\u662f\u65e0\u6b67\u4e49\u7684\u3002", "title": "\u5f53\u5728 GROUP BY \u5b50\u53e5\u4e2d\u6307\u5b9a\u4e86\u4e3b\u952e\u65f6\uff0c\u5141\u8bb8\u67e5\u8be2\u76ee\u6807\u5217\u8868\u4e2d\u51fa\u73b0\u975e GROUP BY \u5217", "commits": [], "section": "\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.5", "source_hash": "db46e0afce7d439f987543eaae1d976b05cad9a8b10402b420c6d479c69dfbbb", "section_path": ["\u67e5\u8be2"], "commit_groups": [], "identity_text": "Allow non-GROUP BY columns in the query target list when the primary key is specified in the GROUP BY clause (Peter Eisentraut) The SQL standard allows this behavior, and because of the primary key, the result is unambiguous.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/047", "db_id": "96dff4e80c15eddbfe1fd08d1b58f062", "patch_ids": [], "statement_hash": "4fbb8ab2e4b050a102fe22aa324b7c792357581fc91d8b5bd1c1816f1e96aeab", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-c8077d271e52a9b7", "migration": false}, {"id": "9.1.0-9587f77a8f108e6e", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <a href=\"/docs/9.1/queries-union.html\" title=\"7.4.\u00a0\u7ec4\u5408\u67e5\u8be2\"><code>UNION</code>/<code>INTERSECT</code>/<code>EXCEPT</code></a> \u5b50\u53e5\u4e2d\u4f7f\u7528\u5173\u952e\u5b57 <code>DISTINCT</code>\uff08Tom Lane\uff09</p>\n<p><code>DISTINCT</code> \u662f\u9ed8\u8ba4\u884c\u4e3a\uff0c\u56e0\u6b64\u4f7f\u7528\u8be5\u5173\u952e\u5b57\u662f\u5197\u4f59\u7684\uff0c\u4f46 SQL \u6807\u51c6\u5141\u8bb8\u3002</p>", "text": "\u5141\u8bb8\u5728 UNION/INTERSECT/EXCEPT \u5b50\u53e5\u4e2d\u4f7f\u7528\u5173\u952e\u5b57 DISTINCT\uff08Tom Lane\uff09 DISTINCT \u662f\u9ed8\u8ba4\u884c\u4e3a\uff0c\u56e0\u6b64\u4f7f\u7528\u8be5\u5173\u952e\u5b57\u662f\u5197\u4f59\u7684\uff0c\u4f46 SQL \u6807\u51c6\u5141\u8bb8\u3002", "title": "\u5141\u8bb8\u5728 UNION/INTERSECT/EXCEPT \u5b50\u53e5\u4e2d\u4f7f\u7528\u5173\u952e\u5b57 DISTINCT", "commits": [], "section": "\u67e5\u8be2", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.5", "source_hash": "d8f76fd6f4a889af1ef9bc06cb705d49de7a5a68597eacb1f316eea4d1886532", "section_path": ["\u67e5\u8be2"], "commit_groups": [], "identity_text": "Allow use of the key word DISTINCT in UNION/INTERSECT/EXCEPT clauses (Tom Lane) DISTINCT is the default behavior so use of this key word is redundant, but the SQL standard allows it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/048", "db_id": "e585f6807fee4f07a4c0ddf6d8e6c44f", "patch_ids": [], "statement_hash": "6ca9d148fd435b5b645807f361ca64676aa38e849b70e586795abdce73568423", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-9587f77a8f108e6e", "migration": false}, {"id": "9.1.0-ef90f0cfd9397e75", "cves": [], "html": "<p>\u4fee\u590d\u5e26\u89c4\u5219\u7684\u666e\u901a\u67e5\u8be2\uff0c\u4f7f\u5176\u4f7f\u7528\u4e0e <code>EXPLAIN ANALYZE</code> \u76f8\u540c\u7684\u5feb\u7167\u884c\u4e3a\uff08Marko Tiikkaja\uff09</p>\n<p>\u6b64\u524d <code>EXPLAIN ANALYZE</code> \u5bf9\u6d89\u53ca\u89c4\u5219\u7684\u67e5\u8be2\u4f7f\u7528\u7684\u5feb\u7167\u65f6\u673a\u7565\u6709\u4e0d\u540c\u3002<code>EXPLAIN ANALYZE</code> \u7684\u884c\u4e3a\u88ab\u8ba4\u4e3a\u66f4\u5408\u903b\u8f91\u3002</p>", "text": "\u4fee\u590d\u5e26\u89c4\u5219\u7684\u666e\u901a\u67e5\u8be2\uff0c\u4f7f\u5176\u4f7f\u7528\u4e0e EXPLAIN ANALYZE \u76f8\u540c\u7684\u5feb\u7167\u884c\u4e3a\uff08Marko Tiikkaja\uff09 \u6b64\u524d EXPLAIN ANALYZE \u5bf9\u6d89\u53ca\u89c4\u5219\u7684\u67e5\u8be2\u4f7f\u7528\u7684\u5feb\u7167\u65f6\u673a\u7565\u6709\u4e0d\u540c\u3002EXPLAIN ANALYZE \u7684\u884c\u4e3a\u88ab\u8ba4\u4e3a\u66f4\u5408\u903b\u8f91\u3002", "title": "\u4fee\u590d\u5e26\u89c4\u5219\u7684\u666e\u901a\u67e5\u8be2\uff0c\u4f7f\u5176\u4f7f\u7528\u4e0e EXPLAIN ANALYZE \u76f8\u540c\u7684\u5feb\u7167\u884c\u4e3a", "commits": [], "section": "\u67e5\u8be2", "category": "bugfix", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.5", "source_hash": "ee052172ee65fd5bfdcc7641f8a638d75c49cd49a0c410aae8d3b0b738c70ff7", "section_path": ["\u67e5\u8be2"], "commit_groups": [], "identity_text": "Fix ordinary queries with rules to use the same snapshot behavior as EXPLAIN ANALYZE (Marko Tiikkaja) Previously EXPLAIN ANALYZE used slightly different snapshot timing for queries involving rules. The EXPLAIN ANALYZE behavior was judged to be more logical.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/049", "db_id": "c6fd44b9abb35d43cd220cc6342f8af9", "patch_ids": [], "statement_hash": "64e380ae2b06c659039aafcd5bb0e3d1de03137cbeb197372a364da67f66c9b2", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=9.1.0#9.1.0-ef90f0cfd9397e75", "migration": false}, {"id": "9.1.0-b622be94e1aea03f", "cves": [], "html": "<p>\u65b0\u589e\u9010\u5217<a href=\"/docs/9.1/collation.html\" title=\"22.2.\u00a0\u6392\u5e8f\u89c4\u5219\u652f\u6301\">\u6392\u5e8f\u89c4\u5219</a>\u652f\u6301\uff08Peter Eisentraut\u3001Tom Lane\uff09</p>\n<p>\u6b64\u524d\u6392\u5e8f\u89c4\u5219\uff08\u6587\u672c\u5b57\u7b26\u4e32\u7684\u6392\u5e8f\u987a\u5e8f\uff09\u53ea\u80fd\u5728\u521b\u5efa\u6570\u636e\u5e93\u65f6\u9009\u62e9\u3002\u73b0\u5728\u53ef\u4ee5\u901a\u8fc7 SQL \u6807\u51c6\u7684 <code>COLLATE</code> \u5b50\u53e5\u9010\u5217\u3001\u9010\u57df\u3001\u9010\u7d22\u5f15\u6216\u9010\u8868\u8fbe\u5f0f\u8bbe\u7f6e\u6392\u5e8f\u89c4\u5219\u3002</p>", "text": "\u65b0\u589e\u9010\u5217\u6392\u5e8f\u89c4\u5219\u652f\u6301\uff08Peter Eisentraut\u3001Tom Lane\uff09 \u6b64\u524d\u6392\u5e8f\u89c4\u5219\uff08\u6587\u672c\u5b57\u7b26\u4e32\u7684\u6392\u5e8f\u987a\u5e8f\uff09\u53ea\u80fd\u5728\u521b\u5efa\u6570\u636e\u5e93\u65f6\u9009\u62e9\u3002\u73b0\u5728\u53ef\u4ee5\u901a\u8fc7 SQL \u6807\u51c6\u7684 COLLATE \u5b50\u53e5\u9010\u5217\u3001\u9010\u57df\u3001\u9010\u7d22\u5f15\u6216\u9010\u8868\u8fbe\u5f0f\u8bbe\u7f6e\u6392\u5e8f\u89c4\u5219\u3002", "title": "\u65b0\u589e\u9010\u5217\u6392\u5e8f\u89c4\u5219\u652f\u6301", "commits": [], "section": "\u67e5\u8be2 / \u5b57\u7b26\u4e32", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.5.3", "source_hash": "0ba6162e2014dec6b9c5dd01e7237801b219231ae1e77a25ca937d1ad42664f3", "section_path": ["\u67e5\u8be2", "\u5b57\u7b26\u4e32"], "commit_groups": [], "identity_text": "Add per-column collation support (Peter Eisentraut, Tom Lane) Previously collation (the sort ordering of text strings) could only be chosen at database creation. Collation can now be set per column, domain, index, or expression, via the SQL-standard COLLATE clause.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/050", "db_id": "8e04130aa430cbfc39aa1812a9a14de5", "patch_ids": [], "statement_hash": "2e28c589c11f22ddb7fd4661b1889ae4a22a32963e9ad5423b9b2159186d2e67", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-b622be94e1aea03f", "migration": false}, {"id": "9.1.0-9ad05cfede26d294", "cves": [], "html": "<p>\u65b0\u589e<a href=\"/docs/9.1/extend-extensions.html\" title=\"35.15.\u00a0\u5c06\u76f8\u5173\u5bf9\u8c61\u6253\u5305\u6210\u6269\u5c55\">\u6269\u5c55</a>\uff0c\u7b80\u5316 <span>PostgreSQL</span> \u9644\u52a0\u529f\u80fd\u7684\u6253\u5305\uff08Dimitri Fontaine\u3001Tom Lane\uff09</p>\n<p>\u6269\u5c55\u7531\u65b0\u7684 <a href=\"/docs/9.1/sql-createextension.html\" title=\"CREATE EXTENSION\"><code>CREATE</code></a>/<a href=\"/docs/9.1/sql-alterextension.html\" title=\"ALTER EXTENSION\"><code>ALTER</code></a>/<a href=\"/docs/9.1/sql-dropextension.html\" title=\"DROP EXTENSION\"><code>DROP EXTENSION</code></a> \u547d\u4ee4\u63a7\u5236\u3002\u8fd9\u53d6\u4ee3\u4e86\u5bf9\u6dfb\u52a0\u5230 <span>PostgreSQL</span> \u5b89\u88c5\u7684\u5bf9\u8c61\u8fdb\u884c\u5206\u7ec4\u7684\u4e34\u65f6\u65b9\u6cd5\u3002</p>", "text": "\u65b0\u589e\u6269\u5c55\uff0c\u7b80\u5316 PostgreSQL \u9644\u52a0\u529f\u80fd\u7684\u6253\u5305\uff08Dimitri Fontaine\u3001Tom Lane\uff09 \u6269\u5c55\u7531\u65b0\u7684 CREATE/ALTER/DROP EXTENSION \u547d\u4ee4\u63a7\u5236\u3002\u8fd9\u53d6\u4ee3\u4e86\u5bf9\u6dfb\u52a0\u5230 PostgreSQL \u5b89\u88c5\u7684\u5bf9\u8c61\u8fdb\u884c\u5206\u7ec4\u7684\u4e34\u65f6\u65b9\u6cd5\u3002", "title": "\u65b0\u589e\u6269\u5c55\uff0c\u7b80\u5316 PostgreSQL \u9644\u52a0\u529f\u80fd\u7684\u6253\u5305", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6", "source_hash": "f8029cabe7d1c3b148109b7e2c69196cf1f841ef584e1181352e4cbfeeb4113e", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c"], "commit_groups": [], "identity_text": "Add extensions which simplify packaging of additions to PostgreSQL (Dimitri Fontaine, Tom Lane) Extensions are controlled by the new CREATE/ALTER/DROP EXTENSION commands. This replaces ad-hoc methods of grouping objects that are added to a PostgreSQL installation.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/051", "db_id": "cde2eb2f398bc04124d819a2dddf2317", "patch_ids": [], "statement_hash": "69886d573c856f102d6b995e9d0e479c20e32a5b4e7cf4d7044a259b7e6989d7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-9ad05cfede26d294", "migration": false}, {"id": "9.1.0-18891b0211c6d571", "cves": [], "html": "<p>\u65b0\u589e\u5bf9<a href=\"/docs/9.1/sql-createforeigntable.html\" title=\"CREATE FOREIGN TABLE\">\u5916\u90e8\u8868</a>\u7684\u652f\u6301\uff08Shigeru Hanada\u3001Robert Haas\u3001Jan Urbanski\u3001Heikki Linnakangas\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u50cf\u4f7f\u7528 <span>PostgreSQL</span> \u539f\u751f\u5b58\u50a8\u7684\u6570\u636e\u4e00\u6837\u4f7f\u7528\u5b58\u50a8\u5728\u6570\u636e\u5e93\u4e4b\u5916\u7684\u6570\u636e\u3002\u4f46\u5916\u90e8\u8868\u76ee\u524d\u662f\u53ea\u8bfb\u7684\u3002</p>", "text": "\u65b0\u589e\u5bf9\u5916\u90e8\u8868\u7684\u652f\u6301\uff08Shigeru Hanada\u3001Robert Haas\u3001Jan Urbanski\u3001Heikki Linnakangas\uff09 \u8fd9\u5141\u8bb8\u50cf\u4f7f\u7528 PostgreSQL \u539f\u751f\u5b58\u50a8\u7684\u6570\u636e\u4e00\u6837\u4f7f\u7528\u5b58\u50a8\u5728\u6570\u636e\u5e93\u4e4b\u5916\u7684\u6570\u636e\u3002\u4f46\u5916\u90e8\u8868\u76ee\u524d\u662f\u53ea\u8bfb\u7684\u3002", "title": "\u65b0\u589e\u5bf9\u5916\u90e8\u8868\u7684\u652f\u6301", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6", "source_hash": "a3a38a5c0bd7e8c6e20bcf272eb297c918e3e5fbe5d22e41fa92aee48f0d1e7f", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c"], "commit_groups": [], "identity_text": "Add support for foreign tables (Shigeru Hanada, Robert Haas, Jan Urbanski, Heikki Linnakangas) This allows data stored outside the database to be used like native PostgreSQL-stored data. Foreign tables are currently read-only, however.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/052", "db_id": "eaaf750a5b6bcfea328b1d52d557600c", "patch_ids": [], "statement_hash": "45314b877fa280994a60a23621e96d5dd60b162ad002750c9791c05e2b80adbb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-18891b0211c6d571", "migration": false}, {"id": "9.1.0-a8e446aed8af8fd9", "cves": [], "html": "<p>\u5141\u8bb8\u901a\u8fc7 <a href=\"/docs/9.1/sql-altertype.html\" title=\"ALTER TYPE\"><code>ALTER TYPE</code></a> \u5411\u73b0\u6709\u679a\u4e3e\u7c7b\u578b\u6dfb\u52a0\u65b0\u503c\uff08Andrew Dunstan\uff09</p>", "text": "\u5141\u8bb8\u901a\u8fc7 ALTER TYPE \u5411\u73b0\u6709\u679a\u4e3e\u7c7b\u578b\u6dfb\u52a0\u65b0\u503c\uff08Andrew Dunstan\uff09", "title": "\u5141\u8bb8\u901a\u8fc7 ALTER TYPE \u5411\u73b0\u6709\u679a\u4e3e\u7c7b\u578b\u6dfb\u52a0\u65b0\u503c", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6", "source_hash": "526e4518ce32ac7bd9e131bf38175beb7e9947b629b76d42c5c758efa09abaf9", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c"], "commit_groups": [], "identity_text": "Allow new values to be added to an existing enum type via ALTER TYPE (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/053", "db_id": "deaedb0dceb157363c1017b3007ff236", "patch_ids": [], "statement_hash": "44e7524460c0884754138dd2074ae57adc8ad21ed583d12af3fdd0908ecc5628", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-a8e446aed8af8fd9", "migration": false}, {"id": "9.1.0-42e5debf44bcefba", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/9.1/sql-altertype.html\" title=\"ALTER TYPE\"><code>ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTE</code></a>\uff08Peter Eisentraut\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u4fee\u6539\u7ec4\u5408\u7c7b\u578b\u3002</p>", "text": "\u65b0\u589e ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTE\uff08Peter Eisentraut\uff09 \u8fd9\u5141\u8bb8\u4fee\u6539\u7ec4\u5408\u7c7b\u578b\u3002", "title": "\u65b0\u589e ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTE", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6", "source_hash": "ad083e898692663b5c700ee6bcad16e74127dc9565265772a6ffb683416e5241", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c"], "commit_groups": [], "identity_text": "Add ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTE (Peter Eisentraut) This allows modification of composite types.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/054", "db_id": "44f506bc1ee5bec530700498b4e66386", "patch_ids": [], "statement_hash": "98f4563361eb27b33e95913da5c40864b904cdc41c091d6059587c6dfd526ec5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-42e5debf44bcefba", "migration": false}, {"id": "9.1.0-f4af28f28a2b98a9", "cves": [], "html": "<p>\u4e3a\u7c7b\u578b\u5316\u8868\u4e0a\u7684 <a href=\"/docs/9.1/sql-altertype.html\" title=\"ALTER TYPE\"><code>ALTER TYPE</code></a> \u64cd\u4f5c\u65b0\u589e <code>RESTRICT</code>/<code>CASCADE</code>\uff08Peter Eisentraut\uff09</p>\n<p>\u8fd9\u63a7\u5236 <code>ADD</code>/<code>DROP</code>/<code>ALTER</code>/<code>RENAME ATTRIBUTE</code> \u7684\u7ea7\u8054\u884c\u4e3a\u3002</p>", "text": "\u4e3a\u7c7b\u578b\u5316\u8868\u4e0a\u7684 ALTER TYPE \u64cd\u4f5c\u65b0\u589e RESTRICT/CASCADE\uff08Peter Eisentraut\uff09 \u8fd9\u63a7\u5236 ADD/DROP/ALTER/RENAME ATTRIBUTE \u7684\u7ea7\u8054\u884c\u4e3a\u3002", "title": "\u4e3a\u7c7b\u578b\u5316\u8868\u4e0a\u7684 ALTER TYPE \u64cd\u4f5c\u65b0\u589e RESTRICT/CASCADE", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c / ALTER Object", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6.3", "source_hash": "0a3dcf24f8a9a6c89619d7b90aad9406ff84a57cef6e5217450817e9eb34585a", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c", "ALTER Object"], "commit_groups": [], "identity_text": "Add RESTRICT/CASCADE to ALTER TYPE operations on typed tables (Peter Eisentraut) This controls ADD/DROP/ALTER/RENAME ATTRIBUTE cascading behavior.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/055", "db_id": "57605b90c24510c6bb8e80dff33dd8ab", "patch_ids": [], "statement_hash": "fc2c6c7bec9361ecc5224ca279e1fcd9d792396e2d14431dd515b3408d32d707", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f4af28f28a2b98a9", "migration": false}, {"id": "9.1.0-96cf99d8d6cefd97", "cves": [], "html": "<p>\u652f\u6301 <code>ALTER TABLE <em><code>name</code></em> {OF | NOT OF} <em><code>type</code></em></code>\uff08Noah Misch\uff09</p>\n<p>\u8be5\u8bed\u6cd5\u5141\u8bb8\u628a\u72ec\u7acb\u8868\u53d8\u6210\u7c7b\u578b\u5316\u8868\uff0c\u6216\u628a\u7c7b\u578b\u5316\u8868\u53d8\u6210\u72ec\u7acb\u8868\u3002</p>", "text": "\u652f\u6301 ALTER TABLE name {OF | NOT OF} type\uff08Noah Misch\uff09 \u8be5\u8bed\u6cd5\u5141\u8bb8\u628a\u72ec\u7acb\u8868\u53d8\u6210\u7c7b\u578b\u5316\u8868\uff0c\u6216\u628a\u7c7b\u578b\u5316\u8868\u53d8\u6210\u72ec\u7acb\u8868\u3002", "title": "\u652f\u6301 ALTER TABLE name {OF | NOT OF} type", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c / ALTER Object", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6.3", "source_hash": "32ce1fd86fbc1476154c2c3a07e0e98a8976e52308140e2ce754d44f95419b1c", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c", "ALTER Object"], "commit_groups": [], "identity_text": "Support ALTER TABLE name {OF | NOT OF} type (Noah Misch) This syntax allows a standalone table to be made into a typed table, or a typed table to be made standalone.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/056", "db_id": "cd1393ea59d115df4604cee6729c9fd4", "patch_ids": [], "statement_hash": "7e3ade8df9afa0df14ab1084e4018b766d05249673c69fba3b838cf2cc99a301", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-96cf99d8d6cefd97", "migration": false}, {"id": "9.1.0-9b6521b45025ac63", "cves": [], "html": "<p>\u4e3a <code>ALTER ... SET SCHEMA</code> \u547d\u4ee4\u4e2d\u7684\u66f4\u591a\u5bf9\u8c61\u7c7b\u578b\u65b0\u589e\u652f\u6301\uff08Dimitri Fontaine\uff09</p>\n<p>\u8be5\u547d\u4ee4\u73b0\u5728\u652f\u6301\u8f6c\u6362\u3001\u64cd\u4f5c\u7b26\u3001\u64cd\u4f5c\u7b26\u7c7b\u3001\u64cd\u4f5c\u7b26\u65cf\u3001\u6587\u672c\u641c\u7d22\u914d\u7f6e\u3001\u6587\u672c\u641c\u7d22\u8bcd\u5178\u3001\u6587\u672c\u641c\u7d22\u89e3\u6790\u5668\u548c\u6587\u672c\u641c\u7d22\u6a21\u677f\u3002</p>", "text": "\u4e3a ALTER ... SET SCHEMA \u547d\u4ee4\u4e2d\u7684\u66f4\u591a\u5bf9\u8c61\u7c7b\u578b\u65b0\u589e\u652f\u6301\uff08Dimitri Fontaine\uff09 \u8be5\u547d\u4ee4\u73b0\u5728\u652f\u6301\u8f6c\u6362\u3001\u64cd\u4f5c\u7b26\u3001\u64cd\u4f5c\u7b26\u7c7b\u3001\u64cd\u4f5c\u7b26\u65cf\u3001\u6587\u672c\u641c\u7d22\u914d\u7f6e\u3001\u6587\u672c\u641c\u7d22\u8bcd\u5178\u3001\u6587\u672c\u641c\u7d22\u89e3\u6790\u5668\u548c\u6587\u672c\u641c\u7d22\u6a21\u677f\u3002", "title": "\u4e3a ALTER ... SET SCHEMA \u547d\u4ee4\u4e2d\u7684\u66f4\u591a\u5bf9\u8c61\u7c7b\u578b\u65b0\u589e\u652f\u6301", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c / ALTER Object", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6.3", "source_hash": "f1a1d415b785d8473ad554ccb6121273fb673fc35aecb008129b948068a4df90", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c", "ALTER Object"], "commit_groups": [], "identity_text": "Add support for more object types in ALTER ... SET SCHEMA commands (Dimitri Fontaine) This command is now supported for conversions, operators, operator classes, operator families, text search configurations, text search dictionaries, text search parsers, and text search templates.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/057", "db_id": "ba996556fa48bc59a989c9f8371f5f16", "patch_ids": [], "statement_hash": "bcd09a44868d3fad8a505a12b3f30f4244389decb79502fd761ef2b72c471009", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-9b6521b45025ac63", "migration": false}, {"id": "9.1.0-2c4ab315edeb8dcc", "cves": [], "html": "<p>\u65b0\u589e <code>ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX</code>\uff08Gurjeet Singh\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u4f7f\u7528\u73b0\u6709\u552f\u4e00\u7d22\u5f15\uff08\u5305\u62ec\u5e76\u53d1\u521b\u5efa\u7684\u552f\u4e00\u7d22\u5f15\uff09\u6765\u5b9a\u4e49\u4e3b\u952e\u6216\u552f\u4e00\u7ea6\u675f\u3002</p>", "text": "\u65b0\u589e ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX\uff08Gurjeet Singh\uff09 \u8fd9\u5141\u8bb8\u4f7f\u7528\u73b0\u6709\u552f\u4e00\u7d22\u5f15\uff08\u5305\u62ec\u5e76\u53d1\u521b\u5efa\u7684\u552f\u4e00\u7d22\u5f15\uff09\u6765\u5b9a\u4e49\u4e3b\u952e\u6216\u552f\u4e00\u7ea6\u675f\u3002", "title": "\u65b0\u589e ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c / CREATE/ALTER TABLE", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6.4", "source_hash": "c136f97e79c9ab686b92c59603f9e1a3af1ae4625dae400d70139c524c233e55", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c", "CREATE/ALTER TABLE"], "commit_groups": [], "identity_text": "Add ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX (Gurjeet Singh) This allows a primary key or unique constraint to be defined using an existing unique index, including a concurrently created unique index.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/058", "db_id": "6bf037c068ba70e5cfc9c8e6901dd4ea", "patch_ids": [], "statement_hash": "b74e4920298586d693333d4daa19c63ba34018c1504f5beeb375173e5ff9d105", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-2c4ab315edeb8dcc", "migration": false}, {"id": "9.1.0-78da041489c7a4b7", "cves": [], "html": "<p>\u5141\u8bb8 <code>ALTER TABLE</code> \u6dfb\u52a0\u672a\u7ecf\u9a8c\u8bc1\u7684\u5916\u952e\uff08Simon Riggs\uff09</p>\n<p>\u65b0\u9009\u9879\u540d\u4e3a <code>NOT VALID</code>\u3002\u7ea6\u675f\u7684\u72b6\u6001\u4e4b\u540e\u53ef\u4ee5\u6539\u4e3a <code>VALIDATED</code> \u5e76\u6267\u884c\u9a8c\u8bc1\u68c0\u67e5\u3002\u8fd9\u4e24\u8005\u76f8\u7ed3\u5408\uff0c\u4f7f\u4f60\u80fd\u591f\u4ee5\u5bf9\u8bfb\u5199\u64cd\u4f5c\u5f71\u54cd\u6700\u5c0f\u7684\u65b9\u5f0f\u6dfb\u52a0\u5916\u952e\u3002</p>", "text": "\u5141\u8bb8 ALTER TABLE \u6dfb\u52a0\u672a\u7ecf\u9a8c\u8bc1\u7684\u5916\u952e\uff08Simon Riggs\uff09 \u65b0\u9009\u9879\u540d\u4e3a NOT VALID\u3002\u7ea6\u675f\u7684\u72b6\u6001\u4e4b\u540e\u53ef\u4ee5\u6539\u4e3a VALIDATED \u5e76\u6267\u884c\u9a8c\u8bc1\u68c0\u67e5\u3002\u8fd9\u4e24\u8005\u76f8\u7ed3\u5408\uff0c\u4f7f\u4f60\u80fd\u591f\u4ee5\u5bf9\u8bfb\u5199\u64cd\u4f5c\u5f71\u54cd\u6700\u5c0f\u7684\u65b9\u5f0f\u6dfb\u52a0\u5916\u952e\u3002", "title": "\u5141\u8bb8 ALTER TABLE \u6dfb\u52a0\u672a\u7ecf\u9a8c\u8bc1\u7684\u5916\u952e", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c / CREATE/ALTER TABLE", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6.4", "source_hash": "5c2e31487812ff26602aac7d0323003acbd12420b7f1cf2dc7e82feb7b211038", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c", "CREATE/ALTER TABLE"], "commit_groups": [], "identity_text": "Allow ALTER TABLE to add foreign keys without validation (Simon Riggs) The new option is called NOT VALID. The constraint's state can later be modified to VALIDATED and validation checks performed. Together these allow you to add a foreign key with minimal impact on read and write operations.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/059", "db_id": "90f5fdad7fcef0777e8933470b8a330c", "patch_ids": [], "statement_hash": "768292ade0e1cc499ea7e5ffd4315ec4e92d68398f39bf87ab7c19f8a0836f7d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-78da041489c7a4b7", "migration": false}, {"id": "9.1.0-e3ac3e0a4e885ca2", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/9.1/sql-altertable.html\" title=\"ALTER TABLE\"><code>ALTER TABLE ... SET DATA TYPE</code></a> \u5728\u9002\u5f53\u60c5\u51b5\u4e0b\u907f\u514d\u91cd\u5199\u8868\uff08Noah Misch\u3001Robert Haas\uff09</p>\n<p>\u4f8b\u5982\uff0c\u628a <code>varchar</code> \u5217\u8f6c\u6362\u4e3a <code>text</code> \u4e0d\u518d\u9700\u8981\u91cd\u5199\u8868\u3002\u4f46\u589e\u5927 <code>varchar</code> \u5217\u7684\u957f\u5ea6\u7ea6\u675f\u4ecd\u9700\u8981\u91cd\u5199\u8868\u3002</p>", "text": "\u5141\u8bb8 ALTER TABLE ... SET DATA TYPE \u5728\u9002\u5f53\u60c5\u51b5\u4e0b\u907f\u514d\u91cd\u5199\u8868\uff08Noah Misch\u3001Robert Haas\uff09 \u4f8b\u5982\uff0c\u628a varchar \u5217\u8f6c\u6362\u4e3a text \u4e0d\u518d\u9700\u8981\u91cd\u5199\u8868\u3002\u4f46\u589e\u5927 varchar \u5217\u7684\u957f\u5ea6\u7ea6\u675f\u4ecd\u9700\u8981\u91cd\u5199\u8868\u3002", "title": "\u5141\u8bb8 ALTER TABLE ... SET DATA TYPE \u5728\u9002\u5f53\u60c5\u51b5\u4e0b\u907f\u514d\u91cd\u5199\u8868", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c / CREATE/ALTER TABLE", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6.4", "source_hash": "af553984a879e9c3aacd219f154040cfd03c8596550c8ce7ec32c6e1890395dd", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c", "CREATE/ALTER TABLE"], "commit_groups": [], "identity_text": "Allow ALTER TABLE ... SET DATA TYPE to avoid table rewrites in appropriate cases (Noah Misch, Robert Haas) For example, converting a varchar column to text no longer requires a rewrite of the table. However, increasing the length constraint on a varchar column still requires a table rewrite.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/060", "db_id": "05d9575c7910f5684f864308d622d6c1", "patch_ids": [], "statement_hash": "bdcc6ad63e05bcd3faa0be3fdd1ff3ae3b8601131beff86b58562ede4f519311", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-e3ac3e0a4e885ca2", "migration": false}, {"id": "9.1.0-578cde314d1612bd", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/9.1/sql-createtable.html\" title=\"CREATE TABLE\"><code>CREATE TABLE IF NOT EXISTS</code></a> \u8bed\u6cd5\uff08Robert Haas\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u5728\u8868\u5df2\u5b58\u5728\u65f6\u521b\u5efa\u8868\u800c\u4e0d\u62a5\u9519\u3002</p>", "text": "\u65b0\u589e CREATE TABLE IF NOT EXISTS \u8bed\u6cd5\uff08Robert Haas\uff09 \u8fd9\u5141\u8bb8\u5728\u8868\u5df2\u5b58\u5728\u65f6\u521b\u5efa\u8868\u800c\u4e0d\u62a5\u9519\u3002", "title": "\u65b0\u589e CREATE TABLE IF NOT EXISTS \u8bed\u6cd5", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c / CREATE/ALTER TABLE", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6.4", "source_hash": "7caf47776ac2ad24c0dee248af83c7b37cc8201546868c4569358fc21cdee809", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c", "CREATE/ALTER TABLE"], "commit_groups": [], "identity_text": "Add CREATE TABLE IF NOT EXISTS syntax (Robert Haas) This allows table creation without causing an error if the table already exists.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/061", "db_id": "70cc18a9b37dc6696063de1b730d57b2", "patch_ids": [], "statement_hash": "73cb349154c94f22bbfffa650a3b9f826b667996649e1cb46bac01ce409e08b2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-578cde314d1612bd", "migration": false}, {"id": "9.1.0-749b74e2272371c4", "cves": [], "html": "<p>\u4fee\u590d\u5f53\u4e24\u4e2a\u540e\u7aef\u540c\u65f6\u5c1d\u8bd5\u5411\u540c\u4e00\u4e2a\u8868\u6dfb\u52a0\u7ee7\u627f\u5b50\u8868\u65f6\u53ef\u80fd\u51fa\u73b0\u7684 <span>\u201c<span>tuple concurrently updated</span>\u201d</span> \u9519\u8bef\uff08Robert Haas\uff09</p>\n<p><a href=\"/docs/9.1/sql-altertable.html\" title=\"ALTER TABLE\"><code>ALTER TABLE</code></a> \u73b0\u5728\u5bf9\u7236\u8868\u6301\u6709\u66f4\u5f3a\u7684\u9501\uff0c\u4f7f\u4f1a\u8bdd\u65e0\u6cd5\u540c\u65f6\u5c1d\u8bd5\u66f4\u65b0\u5b83\u3002</p>", "text": "\u4fee\u590d\u5f53\u4e24\u4e2a\u540e\u7aef\u540c\u65f6\u5c1d\u8bd5\u5411\u540c\u4e00\u4e2a\u8868\u6dfb\u52a0\u7ee7\u627f\u5b50\u8868\u65f6\u53ef\u80fd\u51fa\u73b0\u7684 \u201ctuple concurrently updated\u201d \u9519\u8bef\uff08Robert Haas\uff09 ALTER TABLE \u73b0\u5728\u5bf9\u7236\u8868\u6301\u6709\u66f4\u5f3a\u7684\u9501\uff0c\u4f7f\u4f1a\u8bdd\u65e0\u6cd5\u540c\u65f6\u5c1d\u8bd5\u66f4\u65b0\u5b83\u3002", "title": "\u4fee\u590d\u5f53\u4e24\u4e2a\u540e\u7aef\u540c\u65f6\u5c1d\u8bd5\u5411\u540c\u4e00\u4e2a\u8868\u6dfb\u52a0\u7ee7\u627f\u5b50\u8868\u65f6\u53ef\u80fd\u51fa\u73b0\u7684 \u201ctuple concurrently updated\u201d \u9519\u8bef", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c / CREATE/ALTER TABLE", "category": "bugfix", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6.4", "source_hash": "affc19afd0ed1731ca7bc84a5d7a28309a274df64698d99cbfd9190c6c5c9ce2", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c", "CREATE/ALTER TABLE"], "commit_groups": [], "identity_text": "Fix possible tuple concurrently updated error when two backends attempt to add an inheritance child to the same table at the same time (Robert Haas) ALTER TABLE now takes a stronger lock on the parent table, so that the sessions cannot try to update it simultaneously.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/062", "db_id": "d6fc545730313733da591e028b214cd4", "patch_ids": [], "statement_hash": "828dae0348874dfd62b50af7480706c6f8cb3c37e005be27af9be52560279360", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=9.1.0#9.1.0-749b74e2272371c4", "migration": false}, {"id": "9.1.0-99950daa00f74d22", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/9.1/sql-security-label.html\" title=\"SECURITY LABEL\"><code>SECURITY LABEL</code></a> \u547d\u4ee4\uff08KaiGai Kohei\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u4e3a\u5bf9\u8c61\u5206\u914d\u5b89\u5168\u6807\u7b7e\u3002</p>", "text": "\u65b0\u589e SECURITY LABEL \u547d\u4ee4\uff08KaiGai Kohei\uff09 \u8fd9\u5141\u8bb8\u4e3a\u5bf9\u8c61\u5206\u914d\u5b89\u5168\u6807\u7b7e\u3002", "title": "\u65b0\u589e SECURITY LABEL \u547d\u4ee4", "commits": [], "section": "\u5bf9\u8c61\u64cd\u4f5c / \u5bf9\u8c61\u6743\u9650", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.6.5", "source_hash": "bbe68cb60f4728cc673611557f2e26a6b54bdd04122294bebea90acdcf1775c8", "section_path": ["\u5bf9\u8c61\u64cd\u4f5c", "\u5bf9\u8c61\u6743\u9650"], "commit_groups": [], "identity_text": "Add a SECURITY LABEL command (KaiGai Kohei) This allows security labels to be assigned to objects.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/063", "db_id": "0f37279c3ac16f4bd450f6e330363e5b", "patch_ids": [], "statement_hash": "41fee88f687a70bd78b9c15ac1b67fd5737487d7db46acb876349792405c0909", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-99950daa00f74d22", "migration": false}, {"id": "9.1.0-aa106cab55101f9f", "cves": [], "html": "<p>\u65b0\u589e\u4e8b\u52a1\u7ea7<a href=\"/docs/9.1/explicit-locking.html#ADVISORY-LOCKS\" title=\"13.3.4.\u00a0\u54a8\u8be2\u9501\">\u54a8\u8be2\u9501</a>\uff08Marko Tiikkaja\uff09</p>\n<p>\u5b83\u4eec\u7c7b\u4f3c\u4e8e\u73b0\u6709\u7684\u4f1a\u8bdd\u7ea7\u54a8\u8be2\u9501\uff0c\u4f46\u8fd9\u7c7b\u9501\u4f1a\u5728\u4e8b\u52a1\u7ed3\u675f\u65f6\u81ea\u52a8\u91ca\u653e\u3002</p>", "text": "\u65b0\u589e\u4e8b\u52a1\u7ea7\u54a8\u8be2\u9501\uff08Marko Tiikkaja\uff09 \u5b83\u4eec\u7c7b\u4f3c\u4e8e\u73b0\u6709\u7684\u4f1a\u8bdd\u7ea7\u54a8\u8be2\u9501\uff0c\u4f46\u8fd9\u7c7b\u9501\u4f1a\u5728\u4e8b\u52a1\u7ed3\u675f\u65f6\u81ea\u52a8\u91ca\u653e\u3002", "title": "\u65b0\u589e\u4e8b\u52a1\u7ea7\u54a8\u8be2\u9501", "commits": [], "section": "\u5de5\u5177\u64cd\u4f5c", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.7", "source_hash": "99a833af68f0e420447a76f29e1d8bbe931d1f2d9838848076bdbff1247ad7d1", "section_path": ["\u5de5\u5177\u64cd\u4f5c"], "commit_groups": [], "identity_text": "Add transaction-level advisory locks (Marko Tiikkaja) These are similar to the existing session-level advisory locks, but such locks are automatically released at transaction end.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/064", "db_id": "c10bef1dffde6d2ea95085258f53b86a", "patch_ids": [], "statement_hash": "82452b46c51065355397ffcaf34bd4353714f5fdfc9a8bbf2c17f49ef7f85bd7", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-aa106cab55101f9f", "migration": false}, {"id": "9.1.0-9eb64a4c5834452b", "cves": [], "html": "<p>\u8ba9 <a href=\"/docs/9.1/sql-truncate.html\" title=\"TRUNCATE\"><code>TRUNCATE ... RESTART IDENTITY</code></a> \u4ee5\u4e8b\u52a1\u65b9\u5f0f\u91cd\u542f\u5e8f\u5217\uff08Steve Singer\uff09</p>\n<p>\u6b64\u524d\uff0c\u5982\u679c\u540e\u7aef\u5728\u63d0\u4ea4\u65f6\u622a\u65ad\u6d3b\u52a8\u4e0e\u63d0\u4ea4\u5b8c\u6210\u4e4b\u95f4\u5d29\u6e83\uff0c\u8ba1\u6570\u5668\u53ef\u80fd\u5931\u53bb\u540c\u6b65\u3002</p>", "text": "\u8ba9 TRUNCATE ... RESTART IDENTITY \u4ee5\u4e8b\u52a1\u65b9\u5f0f\u91cd\u542f\u5e8f\u5217\uff08Steve Singer\uff09 \u6b64\u524d\uff0c\u5982\u679c\u540e\u7aef\u5728\u63d0\u4ea4\u65f6\u622a\u65ad\u6d3b\u52a8\u4e0e\u63d0\u4ea4\u5b8c\u6210\u4e4b\u95f4\u5d29\u6e83\uff0c\u8ba1\u6570\u5668\u53ef\u80fd\u5931\u53bb\u540c\u6b65\u3002", "title": "\u8ba9 TRUNCATE ... RESTART IDENTITY \u4ee5\u4e8b\u52a1\u65b9\u5f0f\u91cd\u542f\u5e8f\u5217", "commits": [], "section": "\u5de5\u5177\u64cd\u4f5c", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.7", "source_hash": "0d28a43faa1214023a99ece4970fe3b34b84cc78d985986b57e66dac31880a8d", "section_path": ["\u5de5\u5177\u64cd\u4f5c"], "commit_groups": [], "identity_text": "Make TRUNCATE ... RESTART IDENTITY restart sequences transactionally (Steve Singer) Previously the counter could have been left out of sync if a backend crashed between the on-commit truncation activity and commit completion.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/065", "db_id": "9262067602f970549d8aadd2564190c9", "patch_ids": [], "statement_hash": "28f2c45faaaeb17570ca1916d2583a0f8f9d9d7c9b9e90a53a72e9cdf8cc6b31", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-9eb64a4c5834452b", "migration": false}, {"id": "9.1.0-809698af721368bd", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/sql-copy.html\" title=\"COPY\"><code>COPY TO/FROM</code></a> \u65b0\u589e <code>ENCODING</code> \u9009\u9879\uff08Hitoshi Harada\u3001Itagaki Takahiro\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u5355\u72ec\u6307\u5b9a <code>COPY</code> \u6587\u4ef6\u7684\u7f16\u7801\uff0c\u800c\u4e0d\u662f\u8ddf\u968f\u5ba2\u6237\u7aef\u7f16\u7801\u3002</p>", "text": "\u4e3a COPY TO/FROM \u65b0\u589e ENCODING \u9009\u9879\uff08Hitoshi Harada\u3001Itagaki Takahiro\uff09 \u8fd9\u5141\u8bb8\u5355\u72ec\u6307\u5b9a COPY \u6587\u4ef6\u7684\u7f16\u7801\uff0c\u800c\u4e0d\u662f\u8ddf\u968f\u5ba2\u6237\u7aef\u7f16\u7801\u3002", "title": "\u4e3a COPY TO/FROM \u65b0\u589e ENCODING \u9009\u9879", "commits": [], "section": "\u5de5\u5177\u64cd\u4f5c / COPY", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.7.3", "source_hash": "5adc811e136486d79cba222cb1067ba5ed60bead461ab16c8ebc0d8929351883", "section_path": ["\u5de5\u5177\u64cd\u4f5c", "COPY"], "commit_groups": [], "identity_text": "Add ENCODING option to COPY TO/FROM (Hitoshi Harada, Itagaki Takahiro) This allows the encoding of the COPY file to be specified separately from client encoding.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/066", "db_id": "28c5240c9e20d59ddec17536451200ca", "patch_ids": [], "statement_hash": "f80030caed19424da2861f4a1c195d31cd803f5e89b0a38cd5e48125c3b1dc36", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-809698af721368bd", "migration": false}, {"id": "9.1.0-0d5d2b854b8d38bf", "cves": [], "html": "<p>\u65b0\u589e\u53cc\u5411 <a href=\"/docs/9.1/sql-copy.html\" title=\"COPY\"><code>COPY</code></a> \u534f\u8bae\u652f\u6301\uff08Fujii Masao\uff09</p>\n<p>\u8fd9\u76ee\u524d\u53ea\u88ab\u6d41\u590d\u5236\u4f7f\u7528\u3002</p>", "text": "\u65b0\u589e\u53cc\u5411 COPY \u534f\u8bae\u652f\u6301\uff08Fujii Masao\uff09 \u8fd9\u76ee\u524d\u53ea\u88ab\u6d41\u590d\u5236\u4f7f\u7528\u3002", "title": "\u65b0\u589e\u53cc\u5411 COPY \u534f\u8bae\u652f\u6301", "commits": [], "section": "\u5de5\u5177\u64cd\u4f5c / COPY", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.7.3", "source_hash": "ca2849e714d01a90d24aa924f303cde85df4738f80047e5666a8eb768777f04f", "section_path": ["\u5de5\u5177\u64cd\u4f5c", "COPY"], "commit_groups": [], "identity_text": "Add bidirectional COPY protocol support (Fujii Masao) This is currently only used by streaming replication.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/067", "db_id": "965620e63e1c8d405d514e2d39a8c4ed", "patch_ids": [], "statement_hash": "d930216cbd24e6f505612bf99e0f1523ba52c1209e64815171c8e1591a8dc16f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-0d5d2b854b8d38bf", "migration": false}, {"id": "9.1.0-466745a21086e977", "cves": [], "html": "<p>\u8ba9 <code>EXPLAIN VERBOSE</code> \u663e\u793a <code>FunctionScan</code> \u8282\u70b9\u4e2d\u7684\u51fd\u6570\u8c03\u7528\u8868\u8fbe\u5f0f\uff08Tom Lane\uff09</p>", "text": "\u8ba9 EXPLAIN VERBOSE \u663e\u793a FunctionScan \u8282\u70b9\u4e2d\u7684\u51fd\u6570\u8c03\u7528\u8868\u8fbe\u5f0f\uff08Tom Lane\uff09", "title": "\u8ba9 EXPLAIN VERBOSE \u663e\u793a FunctionScan \u8282\u70b9\u4e2d\u7684\u51fd\u6570\u8c03\u7528\u8868\u8fbe\u5f0f", "commits": [], "section": "\u5de5\u5177\u64cd\u4f5c / EXPLAIN", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.7.4", "source_hash": "e6fab17c4c93ef14328104466c4cfd633fd0165aa1c3d6a35251b09ff3bb8441", "section_path": ["\u5de5\u5177\u64cd\u4f5c", "EXPLAIN"], "commit_groups": [], "identity_text": "Make EXPLAIN VERBOSE show the function call expression in a FunctionScan node (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/068", "db_id": "3046165fb2ae987fce3027c65dc818a9", "patch_ids": [], "statement_hash": "f3361ca89882bdaefdfedc56c3b11796fb8acb7f330f25d09c3a4c6f7a32f8bc", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-466745a21086e977", "migration": false}, {"id": "9.1.0-a0766d3a68893c32", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM FULL VERBOSE</code></a> \u548c <a href=\"/docs/9.1/sql-cluster.html\" title=\"CLUSTER\"><code>CLUSTER VERBOSE</code></a> \u7684\u8f93\u51fa\u6dfb\u52a0\u66f4\u591a\u7ec6\u8282\uff08Itagaki Takahiro\uff09</p>\n<p>\u65b0\u4fe1\u606f\u5305\u62ec\u5b58\u6d3b\u548c\u6b7b\u4ea1\u5143\u7ec4\u8ba1\u6570\uff0c\u4ee5\u53ca <code>CLUSTER</code> \u662f\u5426\u4f7f\u7528\u7d22\u5f15\u91cd\u5efa\u3002</p>", "text": "\u4e3a VACUUM FULL VERBOSE \u548c CLUSTER VERBOSE \u7684\u8f93\u51fa\u6dfb\u52a0\u66f4\u591a\u7ec6\u8282\uff08Itagaki Takahiro\uff09 \u65b0\u4fe1\u606f\u5305\u62ec\u5b58\u6d3b\u548c\u6b7b\u4ea1\u5143\u7ec4\u8ba1\u6570\uff0c\u4ee5\u53ca CLUSTER \u662f\u5426\u4f7f\u7528\u7d22\u5f15\u91cd\u5efa\u3002", "title": "\u4e3a VACUUM FULL VERBOSE \u548c CLUSTER VERBOSE \u7684\u8f93\u51fa\u6dfb\u52a0\u66f4\u591a\u7ec6\u8282", "commits": [], "section": "\u5de5\u5177\u64cd\u4f5c / VACUUM", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.7.5", "source_hash": "686f01212bf5a0605654a99543bceeb7ba78847111b421a7e2c2baaea380be1a", "section_path": ["\u5de5\u5177\u64cd\u4f5c", "VACUUM"], "commit_groups": [], "identity_text": "Add additional details to the output of VACUUM FULL VERBOSE and CLUSTER VERBOSE (Itagaki Takahiro) New information includes the live and dead tuple count and whether CLUSTER is using an index to rebuild.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/069", "db_id": "21d3bc8b46fab1ce3fe4acadf356fc50", "patch_ids": [], "statement_hash": "ee209fb7c72d6cb32cc820cd1906d27b791cfbbda4530e55fa046e737d8f6c5b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-a0766d3a68893c32", "migration": false}, {"id": "9.1.0-b62c60926b2dc8fc", "cves": [], "html": "<p>\u9632\u6b62<a href=\"/docs/9.1/maintenance.html#AUTOVACUUM\" title=\"23.1.5.\u00a0\u81ea\u52a8\u6e05\u7406\u5b88\u62a4\u8fdb\u7a0b\">\u81ea\u52a8\u6e05\u7406</a>\u5728\u65e0\u6cd5\u83b7\u5f97\u8868\u9501\u65f6\u7b49\u5f85\uff08Robert Haas\uff09</p>\n<p>\u5b83\u4f1a\u5728\u7a0d\u540e\u518d\u6b21\u5c1d\u8bd5\u6e05\u7406\u8be5\u8868\u3002</p>", "text": "\u9632\u6b62\u81ea\u52a8\u6e05\u7406\u5728\u65e0\u6cd5\u83b7\u5f97\u8868\u9501\u65f6\u7b49\u5f85\uff08Robert Haas\uff09 \u5b83\u4f1a\u5728\u7a0d\u540e\u518d\u6b21\u5c1d\u8bd5\u6e05\u7406\u8be5\u8868\u3002", "title": "\u9632\u6b62\u81ea\u52a8\u6e05\u7406\u5728\u65e0\u6cd5\u83b7\u5f97\u8868\u9501\u65f6\u7b49\u5f85", "commits": [], "section": "\u5de5\u5177\u64cd\u4f5c / VACUUM", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.7.5", "source_hash": "57f009135eb13f4d3cf50fb06aaa03a4d9a690134c7066a9dd5b98d4615358cc", "section_path": ["\u5de5\u5177\u64cd\u4f5c", "VACUUM"], "commit_groups": [], "identity_text": "Prevent autovacuum from waiting if it cannot acquire a table lock (Robert Haas) It will try to vacuum that table later.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/070", "db_id": "2b4f1e2f89ba47d474901f521c22ce76", "patch_ids": [], "statement_hash": "044d2632667e1c82748f33c5c3c3915e97946b7f0b1e12c1ed5a4059df661c8e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-b62c60926b2dc8fc", "migration": false}, {"id": "9.1.0-ccfd879b69ab9d19", "cves": [], "html": "<p>\u5f53\u770b\u8d77\u6765\u66f4\u5ec9\u4ef7\u65f6\uff0c\u5141\u8bb8 <code>CLUSTER</code> \u5bf9\u8868\u6392\u5e8f\u800c\u4e0d\u662f\u626b\u63cf\u7d22\u5f15\uff08Leonardo Francalanci\uff09</p>", "text": "\u5f53\u770b\u8d77\u6765\u66f4\u5ec9\u4ef7\u65f6\uff0c\u5141\u8bb8 CLUSTER \u5bf9\u8868\u6392\u5e8f\u800c\u4e0d\u662f\u626b\u63cf\u7d22\u5f15\uff08Leonardo Francalanci\uff09", "title": "\u5f53\u770b\u8d77\u6765\u66f4\u5ec9\u4ef7\u65f6\uff0c\u5141\u8bb8 CLUSTER \u5bf9\u8868\u6392\u5e8f\u800c\u4e0d\u662f\u626b\u63cf\u7d22\u5f15", "commits": [], "section": "\u5de5\u5177\u64cd\u4f5c / CLUSTER", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.7.6", "source_hash": "4a43d5159bf5ac038bb1624cdbce2fe7b16f9d4c49c35ef473aece18f5ad4b0f", "section_path": ["\u5de5\u5177\u64cd\u4f5c", "CLUSTER"], "commit_groups": [], "identity_text": "Allow CLUSTER to sort the table rather than scanning the index when it seems likely to be cheaper (Leonardo Francalanci)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/071", "db_id": "50c5b5eb1040d15966ca741c2460a8ae", "patch_ids": [], "statement_hash": "8514ead5e5950ae07a062f4994fc5d614d58e8482d94d60c33f86059f4f104f1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-ccfd879b69ab9d19", "migration": false}, {"id": "9.1.0-1ef41e488fc50806", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/gist.html\" title=\"\u7b2c\u00a053\u00a0\u7ae0\u00a0GiST \u7d22\u5f15\"><acronym>GiST</acronym> \u7d22\u5f15</a>\u65b0\u589e\u6700\u8fd1\u90bb\uff08\u6309\u64cd\u4f5c\u7b26\u6392\u5e8f\uff09\u641c\u7d22\uff08Teodor Sigaev\u3001Tom Lane\uff09</p>\n<p>\u8fd9\u5141\u8bb8 <acronym>GiST</acronym> \u7d22\u5f15\u5728\u5e26 <code>LIMIT</code> \u7684\u67e5\u8be2\u4e2d\u5feb\u901f\u8fd4\u56de\u6700\u63a5\u8fd1\u7684 <em><code>N</code></em> \u4e2a\u503c\u3002\u4f8b\u5982</p>\n<pre> SELECT * FROM places ORDER BY location &lt;-&gt; point '(101,456)' LIMIT 10;  \n</pre>\n<p>\u627e\u51fa\u6700\u63a5\u8fd1\u7ed9\u5b9a\u76ee\u6807\u70b9\u7684\u5341\u4e2a\u5730\u70b9\u3002</p>", "text": "\u4e3a GiST \u7d22\u5f15\u65b0\u589e\u6700\u8fd1\u90bb\uff08\u6309\u64cd\u4f5c\u7b26\u6392\u5e8f\uff09\u641c\u7d22\uff08Teodor Sigaev\u3001Tom Lane\uff09 \u8fd9\u5141\u8bb8 GiST \u7d22\u5f15\u5728\u5e26 LIMIT \u7684\u67e5\u8be2\u4e2d\u5feb\u901f\u8fd4\u56de\u6700\u63a5\u8fd1\u7684 N \u4e2a\u503c\u3002\u4f8b\u5982 SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10; \u627e\u51fa\u6700\u63a5\u8fd1\u7ed9\u5b9a\u76ee\u6807\u70b9\u7684\u5341\u4e2a\u5730\u70b9\u3002", "title": "\u4e3a GiST \u7d22\u5f15\u65b0\u589e\u6700\u8fd1\u90bb\uff08\u6309\u64cd\u4f5c\u7b26\u6392\u5e8f\uff09\u641c\u7d22", "commits": [], "section": "\u5de5\u5177\u64cd\u4f5c / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.7.7", "source_hash": "9a214cb10a8ee99ce750602fd5b7c1207ca9d3b48a3c857f293db6d9df9519db", "section_path": ["\u5de5\u5177\u64cd\u4f5c", "\u7d22\u5f15"], "commit_groups": [], "identity_text": "Add nearest-neighbor (order-by-operator) searching to GiST indexes (Teodor Sigaev, Tom Lane) This allows GiST indexes to quickly return the N closest values in a query with LIMIT. For example SELECT * FROM places ORDER BY location <-> point '(101,456)' LIMIT 10; finds the ten places closest to a given target point.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/072", "db_id": "3b9e645dcb29ee6426ca16f3433ceee8", "patch_ids": [], "statement_hash": "73c7724e4aaa42acc930fdfe34aab0c170ea86ea22c654cb7c4e9f8ebfc28ede", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-1ef41e488fc50806", "migration": false}, {"id": "9.1.0-1c83413c02a303fd", "cves": [], "html": "<p>\u5141\u8bb8 <a href=\"/docs/9.1/gin.html\" title=\"\u7b2c\u00a054\u00a0\u7ae0\u00a0GIN \u7d22\u5f15\"><acronym>GIN</acronym> \u7d22\u5f15</a>\u7d22\u5f15\u7a7a\u503c\u548c\u7a7a\u5b57\u7b26\u4e32\uff08Tom Lane\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u5b8c\u6574\u7684 <acronym>GIN</acronym> \u7d22\u5f15\u626b\u63cf\uff0c\u5e76\u4fee\u590d\u4e86 GIN \u626b\u63cf\u4f1a\u5931\u8d25\u7684\u5404\u79cd\u6781\u7aef\u60c5\u51b5\u3002</p>", "text": "\u5141\u8bb8 GIN \u7d22\u5f15\u7d22\u5f15\u7a7a\u503c\u548c\u7a7a\u5b57\u7b26\u4e32\uff08Tom Lane\uff09 \u8fd9\u5141\u8bb8\u5b8c\u6574\u7684 GIN \u7d22\u5f15\u626b\u63cf\uff0c\u5e76\u4fee\u590d\u4e86 GIN \u626b\u63cf\u4f1a\u5931\u8d25\u7684\u5404\u79cd\u6781\u7aef\u60c5\u51b5\u3002", "title": "\u5141\u8bb8 GIN \u7d22\u5f15\u7d22\u5f15\u7a7a\u503c\u548c\u7a7a\u5b57\u7b26\u4e32", "commits": [], "section": "\u5de5\u5177\u64cd\u4f5c / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.7.7", "source_hash": "e7efde599b03d7f97e85f84e0430d8db54e1c9623d2c08952b987243072496ad", "section_path": ["\u5de5\u5177\u64cd\u4f5c", "\u7d22\u5f15"], "commit_groups": [], "identity_text": "Allow GIN indexes to index null and empty values (Tom Lane) This allows full GIN index scans, and fixes various corner cases in which GIN scans would fail.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/073", "db_id": "1753b71e1a86474e350593246bba395c", "patch_ids": [], "statement_hash": "69e5d0df010052be4b47043ca873ed00c64c96ae989facf91381fbfe5648c663", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-1c83413c02a303fd", "migration": false}, {"id": "9.1.0-b424f87e9649988c", "cves": [], "html": "<p>\u8ba9 <a href=\"/docs/9.1/gin.html\" title=\"\u7b2c\u00a054\u00a0\u7ae0\u00a0GIN \u7d22\u5f15\"><acronym>GIN</acronym> \u7d22\u5f15</a>\u66f4\u597d\u5730\u8bc6\u522b\u91cd\u590d\u7684\u641c\u7d22\u6761\u76ee\uff08Tom Lane\uff09</p>\n<p>\u8fd9\u964d\u4f4e\u4e86\u7d22\u5f15\u626b\u63cf\u7684\u4ee3\u4ef7\uff0c\u5c24\u5176\u662f\u5728\u80fd\u907f\u514d\u4e0d\u5fc5\u8981\u7684\u5168\u7d22\u5f15\u626b\u63cf\u7684\u60c5\u51b5\u4e0b\u3002</p>", "text": "\u8ba9 GIN \u7d22\u5f15\u66f4\u597d\u5730\u8bc6\u522b\u91cd\u590d\u7684\u641c\u7d22\u6761\u76ee\uff08Tom Lane\uff09 \u8fd9\u964d\u4f4e\u4e86\u7d22\u5f15\u626b\u63cf\u7684\u4ee3\u4ef7\uff0c\u5c24\u5176\u662f\u5728\u80fd\u907f\u514d\u4e0d\u5fc5\u8981\u7684\u5168\u7d22\u5f15\u626b\u63cf\u7684\u60c5\u51b5\u4e0b\u3002", "title": "\u8ba9 GIN \u7d22\u5f15\u66f4\u597d\u5730\u8bc6\u522b\u91cd\u590d\u7684\u641c\u7d22\u6761\u76ee", "commits": [], "section": "\u5de5\u5177\u64cd\u4f5c / \u7d22\u5f15", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.7.7", "source_hash": "27d60985db39bcd045d2551d10ca8f1ffa97b0e26a56744b4ed893e7404dce9a", "section_path": ["\u5de5\u5177\u64cd\u4f5c", "\u7d22\u5f15"], "commit_groups": [], "identity_text": "Allow GIN indexes to better recognize duplicate search entries (Tom Lane) This reduces the cost of index scans, especially in cases where it avoids unnecessary full index scans.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/074", "db_id": "4004583679d1dafd6aa31b4ad7ff167e", "patch_ids": [], "statement_hash": "d4f80ad6f5b2b57781eb04083a791813d7fc58bb9f1ec1b64c1b3482f8554275", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-b424f87e9649988c", "migration": false}, {"id": "9.1.0-5ef398f249e70369", "cves": [], "html": "<p>\u4fee\u590d <a href=\"/docs/9.1/gist.html\" title=\"\u7b2c\u00a053\u00a0\u7ae0\u00a0GiST \u7d22\u5f15\"><acronym>GiST</acronym> \u7d22\u5f15</a>\uff0c\u4f7f\u5176\u5b8c\u5168\u5d29\u6e83\u5b89\u5168\uff08Heikki Linnakangas\uff09</p>\n<p>\u6b64\u524d\u6709\u5c11\u6570\u60c5\u51b5\u9700\u8981\u6267\u884c <code>REINDEX</code>\uff08\u4f60\u4f1a\u88ab\u544a\u77e5\uff09\u3002</p>", "text": "\u4fee\u590d GiST \u7d22\u5f15\uff0c\u4f7f\u5176\u5b8c\u5168\u5d29\u6e83\u5b89\u5168\uff08Heikki Linnakangas\uff09 \u6b64\u524d\u6709\u5c11\u6570\u60c5\u51b5\u9700\u8981\u6267\u884c REINDEX\uff08\u4f60\u4f1a\u88ab\u544a\u77e5\uff09\u3002", "title": "\u4fee\u590d GiST \u7d22\u5f15\uff0c\u4f7f\u5176\u5b8c\u5168\u5d29\u6e83\u5b89\u5168", "commits": [], "section": "\u5de5\u5177\u64cd\u4f5c / \u7d22\u5f15", "category": "bugfix", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.7.7", "source_hash": "db6d5ff051cf4c1e68aeb32dccd93902485d01a0a3a4a446d59220e2e557ecac", "section_path": ["\u5de5\u5177\u64cd\u4f5c", "\u7d22\u5f15"], "commit_groups": [], "identity_text": "Fix GiST indexes to be fully crash-safe (Heikki Linnakangas) Previously there were rare cases where a REINDEX would be required (you would be informed).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/075", "db_id": "c00daf4e4e060e3bbadd8835ca877017", "patch_ids": [], "statement_hash": "d3c982631f5129180d4706e171dc96fe0943975cc104de1a676543c7aa6f5b86", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=9.1.0#9.1.0-5ef398f249e70369", "migration": false}, {"id": "9.1.0-b756ba64a652481f", "cves": [], "html": "<p>\u5141\u8bb8 <code>numeric</code> \u5728\u5e38\u89c1\u60c5\u51b5\u4e0b\u4f7f\u7528\u66f4\u7d27\u51d1\u7684\u4e24\u5b57\u8282\u5934\uff08Robert Haas\uff09</p>\n<p>\u6b64\u524d\u6240\u6709 <code>numeric</code> \u503c\u90fd\u4f7f\u7528\u56db\u5b57\u8282\u5934\uff1b\u6b64\u53d8\u66f4\u8282\u7701\u4e86\u78c1\u76d8\u5b58\u50a8\u3002</p>", "text": "\u5141\u8bb8 numeric \u5728\u5e38\u89c1\u60c5\u51b5\u4e0b\u4f7f\u7528\u66f4\u7d27\u51d1\u7684\u4e24\u5b57\u8282\u5934\uff08Robert Haas\uff09 \u6b64\u524d\u6240\u6709 numeric \u503c\u90fd\u4f7f\u7528\u56db\u5b57\u8282\u5934\uff1b\u6b64\u53d8\u66f4\u8282\u7701\u4e86\u78c1\u76d8\u5b58\u50a8\u3002", "title": "\u5141\u8bb8 numeric \u5728\u5e38\u89c1\u60c5\u51b5\u4e0b\u4f7f\u7528\u66f4\u7d27\u51d1\u7684\u4e24\u5b57\u8282\u5934", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.8", "source_hash": "cb2275a14535b64ed7df523788a19180d69c03d08a3d8afabb914febd97b60a4", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [], "identity_text": "Allow numeric to use a more compact, two-byte header in common cases (Robert Haas) Previously all numeric values had four-byte headers; this change saves on disk storage.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/076", "db_id": "45c3a0a27b1fdd17ccc26297311b30ce", "patch_ids": [], "statement_hash": "4acee79c8fbf4cd1ad7214697a661a5ab485368d87286ad487d93707673925cb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-b756ba64a652481f", "migration": false}, {"id": "9.1.0-84d81fbfdf6ab0e7", "cves": [], "html": "<p>\u65b0\u589e <code>money</code> \u9664\u4ee5 <code>money</code> \u7684\u652f\u6301\uff08Andy Balholm\uff09</p>", "text": "\u65b0\u589e money \u9664\u4ee5 money \u7684\u652f\u6301\uff08Andy Balholm\uff09", "title": "\u65b0\u589e money \u9664\u4ee5 money \u7684\u652f\u6301", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.8", "source_hash": "b7245829d5b06c3a3f759502a27ccd2ac35f82512fe429249427ce137afdef7b", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [], "identity_text": "Add support for dividing money by money (Andy Balholm)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/077", "db_id": "0c2df16c01e41bcfc52df9b8334a0348", "patch_ids": [], "statement_hash": "79e92fee2138544a37715ef3824b3aece1e18366390f0c1e138d448e8f5c291c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-84d81fbfdf6ab0e7", "migration": false}, {"id": "9.1.0-fee3eae4794130b6", "cves": [], "html": "<p>\u5141\u8bb8 <code>void</code> \u7c7b\u578b\u7684\u4e8c\u8fdb\u5236 I/O\uff08Radoslaw Smogura\uff09</p>", "text": "\u5141\u8bb8 void \u7c7b\u578b\u7684\u4e8c\u8fdb\u5236 I/O\uff08Radoslaw Smogura\uff09", "title": "\u5141\u8bb8 void \u7c7b\u578b\u7684\u4e8c\u8fdb\u5236 I/O", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.8", "source_hash": "d423027f8dda6626c305fc9e05efd80427f4d1c1adcf71e3a167cc05cb8529bf", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [], "identity_text": "Allow binary I/O on type void (Radoslaw Smogura)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/078", "db_id": "e143df5ba66149db0804bf4e9a7a5afd", "patch_ids": [], "statement_hash": "6819afcf9d83ec0275ca5ae78f8981696b3485287ff964d335e8b6f4ebf690b6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-fee3eae4794130b6", "migration": false}, {"id": "9.1.0-9230cb2dc0298e8d", "cves": [], "html": "<p>\u6539\u8fdb\u51e0\u4f55\u64cd\u4f5c\u7b26\u7684\u659c\u8fb9\u8ba1\u7b97\uff08Paul Matthews\uff09</p>\n<p>\u8fd9\u907f\u514d\u4e86\u4e0d\u5fc5\u8981\u7684\u6ea2\u51fa\uff0c\u800c\u4e14\u53ef\u80fd\u66f4\u7cbe\u786e\u3002</p>", "text": "\u6539\u8fdb\u51e0\u4f55\u64cd\u4f5c\u7b26\u7684\u659c\u8fb9\u8ba1\u7b97\uff08Paul Matthews\uff09 \u8fd9\u907f\u514d\u4e86\u4e0d\u5fc5\u8981\u7684\u6ea2\u51fa\uff0c\u800c\u4e14\u53ef\u80fd\u66f4\u7cbe\u786e\u3002", "title": "\u6539\u8fdb\u51e0\u4f55\u64cd\u4f5c\u7b26\u7684\u659c\u8fb9\u8ba1\u7b97", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.8", "source_hash": "cdbd7f542b1d08985c0e59a61e355ba9c62fbe3b83469b80706fae4b693e33aa", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [], "identity_text": "Improve hypotenuse calculations for geometric operators (Paul Matthews) This avoids unnecessary overflows, and may also be more accurate.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/079", "db_id": "3447c60514d93131662f342ad30f3ef5", "patch_ids": [], "statement_hash": "e6c5d50f9c26bfd2dcb878fa94e16be84bd91be2230880a346d45a4eb0686ac8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-9230cb2dc0298e8d", "migration": false}, {"id": "9.1.0-d87d94f708b4db99", "cves": [], "html": "<p>\u652f\u6301\u5bf9\u6570\u7ec4\u503c\u505a\u54c8\u5e0c\uff08Tom Lane\uff09</p>\n<p>\u8fd9\u63d0\u4f9b\u4e86\u989d\u5916\u7684\u67e5\u8be2\u4f18\u5316\u53ef\u80fd\u6027\u3002</p>", "text": "\u652f\u6301\u5bf9\u6570\u7ec4\u503c\u505a\u54c8\u5e0c\uff08Tom Lane\uff09 \u8fd9\u63d0\u4f9b\u4e86\u989d\u5916\u7684\u67e5\u8be2\u4f18\u5316\u53ef\u80fd\u6027\u3002", "title": "\u652f\u6301\u5bf9\u6570\u7ec4\u503c\u505a\u54c8\u5e0c", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.8", "source_hash": "e945345015e2cc0f3a47f6365426ebc38b07cb39b980ef79814d2b6ee2e0581d", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [], "identity_text": "Support hashing array values (Tom Lane) This provides additional query optimization possibilities.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/080", "db_id": "6cad7f66c2702645997e5bd78e9baf39", "patch_ids": [], "statement_hash": "26ac18011a030e0edcd27a6c120c6faba24e8199dd4e7daf53fd196ecd705cf3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-d87d94f708b4db99", "migration": false}, {"id": "9.1.0-45dce46638967824", "cves": [], "html": "<p>\u9664\u975e\u7ec4\u5408\u7c7b\u578b\u7684\u6240\u6709\u5217\u7c7b\u578b\u90fd\u53ef\u6392\u5e8f\uff0c\u5426\u5219\u4e0d\u628a\u8be5\u7ec4\u5408\u7c7b\u578b\u89c6\u4e3a\u53ef\u6392\u5e8f\uff08Tom Lane\uff09</p>\n<p>\u5982\u679c\u67e5\u8be2\u53ef\u4ee5\u5728\u4e0d\u6392\u5e8f\u7684\u60c5\u51b5\u4e0b\u5b9e\u73b0\uff0c\u8fd9\u907f\u514d\u4e86\u8fd0\u884c\u65f6\u53ef\u80fd\u51fa\u73b0\u7684 <span>\u201c<span>could not identify a comparison function</span>\u201d</span> \u5931\u8d25\u3002\u6b64\u5916\uff0c<code>ANALYZE</code> \u4e5f\u4e0d\u4f1a\u5c1d\u8bd5\u5bf9\u8fd9\u7c7b\u7ec4\u5408\u7c7b\u578b\u7684\u5217\u4f7f\u7528\u4e0d\u9002\u5f53\u7684\u7edf\u8ba1\u6536\u96c6\u65b9\u6cd5\u3002</p>", "text": "\u9664\u975e\u7ec4\u5408\u7c7b\u578b\u7684\u6240\u6709\u5217\u7c7b\u578b\u90fd\u53ef\u6392\u5e8f\uff0c\u5426\u5219\u4e0d\u628a\u8be5\u7ec4\u5408\u7c7b\u578b\u89c6\u4e3a\u53ef\u6392\u5e8f\uff08Tom Lane\uff09 \u5982\u679c\u67e5\u8be2\u53ef\u4ee5\u5728\u4e0d\u6392\u5e8f\u7684\u60c5\u51b5\u4e0b\u5b9e\u73b0\uff0c\u8fd9\u907f\u514d\u4e86\u8fd0\u884c\u65f6\u53ef\u80fd\u51fa\u73b0\u7684 \u201ccould not identify a comparison function\u201d \u5931\u8d25\u3002\u6b64\u5916\uff0cANALYZE \u4e5f\u4e0d\u4f1a\u5c1d\u8bd5\u5bf9\u8fd9\u7c7b\u7ec4\u5408\u7c7b\u578b\u7684\u5217\u4f7f\u7528\u4e0d\u9002\u5f53\u7684\u7edf\u8ba1\u6536\u96c6\u65b9\u6cd5\u3002", "title": "\u9664\u975e\u7ec4\u5408\u7c7b\u578b\u7684\u6240\u6709\u5217\u7c7b\u578b\u90fd\u53ef\u6392\u5e8f\uff0c\u5426\u5219\u4e0d\u628a\u8be5\u7ec4\u5408\u7c7b\u578b\u89c6\u4e3a\u53ef\u6392\u5e8f", "commits": [], "section": "\u6570\u636e\u7c7b\u578b", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.8", "source_hash": "40144b10f1c9c8e31baef3cd6e4a8bb0c985af8ddafc83599607126510d70d05", "section_path": ["\u6570\u636e\u7c7b\u578b"], "commit_groups": [], "identity_text": "Don't treat a composite type as sortable unless all its column types are sortable (Tom Lane) This avoids possible could not identify a comparison function failures at runtime, if it is possible to implement the query without sorting. Also, ANALYZE won't try to use inappropriate statistics-gathering methods for columns of such composite types.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/081", "db_id": "574a7bb0070453d2bfb13987658cc323", "patch_ids": [], "statement_hash": "d0bf2835b12df9fd12ebfb374dc7a2980b9d69ef503b1da10b2dd548c66bf2bb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-45dce46638967824", "migration": false}, {"id": "9.1.0-31372590dbf93a35", "cves": [], "html": "<p>\u65b0\u589e <code>money</code> \u4e0e <code>numeric</code> \u4e4b\u95f4\u8f6c\u6362\u7684\u652f\u6301\uff08Andy Balholm\uff09</p>", "text": "\u65b0\u589e money \u4e0e numeric \u4e4b\u95f4\u8f6c\u6362\u7684\u652f\u6301\uff08Andy Balholm\uff09", "title": "\u65b0\u589e money \u4e0e numeric \u4e4b\u95f4\u8f6c\u6362\u7684\u652f\u6301", "commits": [], "section": "\u6570\u636e\u7c7b\u578b / \u7c7b\u578b\u8f6c\u6362", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.8.3", "source_hash": "f0f4cae8863cade2bdf915855bbaf86be823819588d509671619f7f8bbdb8e01", "section_path": ["\u6570\u636e\u7c7b\u578b", "\u7c7b\u578b\u8f6c\u6362"], "commit_groups": [], "identity_text": "Add support for casting between money and numeric (Andy Balholm)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/082", "db_id": "f5670488c09a18c792cf132574ff0c27", "patch_ids": [], "statement_hash": "5e16b80d1597bbd79e0316f262dab990d0b6a3b462b1e780c3415e25efb25e26", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-31372590dbf93a35", "migration": false}, {"id": "9.1.0-a91c35801ebede73", "cves": [], "html": "<p>\u65b0\u589e\u4ece <code>int4</code> \u548c <code>int8</code> \u5230 <code>money</code> \u8f6c\u6362\u7684\u652f\u6301\uff08Joey Adams\uff09</p>", "text": "\u65b0\u589e\u4ece int4 \u548c int8 \u5230 money \u8f6c\u6362\u7684\u652f\u6301\uff08Joey Adams\uff09", "title": "\u65b0\u589e\u4ece int4 \u548c int8 \u5230 money \u8f6c\u6362\u7684\u652f\u6301", "commits": [], "section": "\u6570\u636e\u7c7b\u578b / \u7c7b\u578b\u8f6c\u6362", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.8.3", "source_hash": "daebe7a137602378e92e43ca57c8113b3957322e5d889b99e9216d6817df6d45", "section_path": ["\u6570\u636e\u7c7b\u578b", "\u7c7b\u578b\u8f6c\u6362"], "commit_groups": [], "identity_text": "Add support for casting from int4 and int8 to money (Joey Adams)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/083", "db_id": "51f95ccfa742e4b98f8eb9de2000c8ab", "patch_ids": [], "statement_hash": "a41d2d4201562d83da70871f081ad36095a0547a1ad53847c1ba062be396340b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-a91c35801ebede73", "migration": false}, {"id": "9.1.0-95855211a944e8d1", "cves": [], "html": "<p>\u5982\u679c\u8868\u662f\u7c7b\u578b\u5316\u8868\uff0c\u5141\u8bb8\u628a\u8868\u7684\u884c\u7c7b\u578b\u8f6c\u6362\u4e3a\u8be5\u8868\u7684\u8d85\u7c7b\u578b\uff08Peter Eisentraut\uff09</p>\n<p>\u8fd9\u7c7b\u4f3c\u4e8e\u5141\u8bb8\u628a\u884c\u7c7b\u578b\u8f6c\u6362\u4e3a\u8d85\u8868\u7684\u884c\u7c7b\u578b\u7684\u73b0\u6709\u673a\u5236\u3002</p>", "text": "\u5982\u679c\u8868\u662f\u7c7b\u578b\u5316\u8868\uff0c\u5141\u8bb8\u628a\u8868\u7684\u884c\u7c7b\u578b\u8f6c\u6362\u4e3a\u8be5\u8868\u7684\u8d85\u7c7b\u578b\uff08Peter Eisentraut\uff09 \u8fd9\u7c7b\u4f3c\u4e8e\u5141\u8bb8\u628a\u884c\u7c7b\u578b\u8f6c\u6362\u4e3a\u8d85\u8868\u7684\u884c\u7c7b\u578b\u7684\u73b0\u6709\u673a\u5236\u3002", "title": "\u5982\u679c\u8868\u662f\u7c7b\u578b\u5316\u8868\uff0c\u5141\u8bb8\u628a\u8868\u7684\u884c\u7c7b\u578b\u8f6c\u6362\u4e3a\u8be5\u8868\u7684\u8d85\u7c7b\u578b", "commits": [], "section": "\u6570\u636e\u7c7b\u578b / \u7c7b\u578b\u8f6c\u6362", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.8.3", "source_hash": "a30c81ff703a486d3c27d6f1577e010bdc93bbd8ed7de1561ca3781d4b1ccee4", "section_path": ["\u6570\u636e\u7c7b\u578b", "\u7c7b\u578b\u8f6c\u6362"], "commit_groups": [], "identity_text": "Allow casting a table's row type to the table's supertype if it's a typed table (Peter Eisentraut) This is analogous to the existing facility that allows casting a row type to a supertable's row type.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/084", "db_id": "706980ff0e76f29ea0288fae5b9f08d7", "patch_ids": [], "statement_hash": "851f829efb85cf7e69103575562b55c33f87f864f9eb75c8c77b6bd5568f4a6a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-95855211a944e8d1", "migration": false}, {"id": "9.1.0-2a5f0a86f674a9dd", "cves": [], "html": "<p>\u65b0\u589e <acronym>XML</acronym> \u51fd\u6570 <a href=\"/docs/9.1/functions-xml.html#XML-EXISTS\" title=\"9.14.2.2.\u00a0XMLEXISTS\"><code>XMLEXISTS</code></a> \u548c <a href=\"/docs/9.1/functions-xml.html#XML-EXISTS\" title=\"9.14.2.2.\u00a0XMLEXISTS\"><code>xpath_exists()</code></a>\uff08Mike Fowler\uff09</p>\n<p>\u5b83\u4eec\u7528\u4e8e XPath \u5339\u914d\u3002</p>", "text": "\u65b0\u589e XML \u51fd\u6570 XMLEXISTS \u548c xpath_exists()\uff08Mike Fowler\uff09 \u5b83\u4eec\u7528\u4e8e XPath \u5339\u914d\u3002", "title": "\u65b0\u589e XML \u51fd\u6570 XMLEXISTS \u548c xpath_exists()", "commits": [], "section": "\u6570\u636e\u7c7b\u578b / XML", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.8.4", "source_hash": "14682a70f5b041199610dec583b5edfb777ce6726eb7a029bed8e6e2461462e3", "section_path": ["\u6570\u636e\u7c7b\u578b", "XML"], "commit_groups": [], "identity_text": "Add XML function XMLEXISTS and xpath_exists() functions (Mike Fowler) These are used for XPath matching.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/085", "db_id": "0a395033fcf8f29b5ef45e129bdad9a5", "patch_ids": [], "statement_hash": "5b70c9f7df94fa4fe4de0dbc8d91d6b6ebb3f0087947aed9d7308ea78cb384c2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-2a5f0a86f674a9dd", "migration": false}, {"id": "9.1.0-5db20dac3b6b5afb", "cves": [], "html": "<p>\u65b0\u589e <acronym>XML</acronym> \u51fd\u6570 <a href=\"/docs/9.1/functions-xml.html#XML-IS-WELL-FORMED\" title=\"9.14.2.3.\u00a0xml_is_well_formed\"><code>xml_is_well_formed()</code></a>\u3001<a href=\"/docs/9.1/functions-xml.html#XML-IS-WELL-FORMED\" title=\"9.14.2.3.\u00a0xml_is_well_formed\"><code>xml_is_well_formed_document()</code></a> \u548c <a href=\"/docs/9.1/functions-xml.html#XML-IS-WELL-FORMED\" title=\"9.14.2.3.\u00a0xml_is_well_formed\"><code>xml_is_well_formed_content()</code></a>\uff08Mike Fowler\uff09</p>\n<p>\u5b83\u4eec\u68c0\u67e5\u8f93\u5165\u662f\u5426\u4e3a\u683c\u5f0f\u6b63\u786e\u7684 <acronym>XML</acronym>\u3002\u5b83\u4eec\u63d0\u4f9b\u4e86\u6b64\u524d\u53ea\u80fd\u5728\u5df2\u5f03\u7528\u7684 <code>contrib/xml2</code> \u6a21\u5757\u4e2d\u4f7f\u7528\u7684\u529f\u80fd\u3002</p>", "text": "\u65b0\u589e XML \u51fd\u6570 xml_is_well_formed()\u3001xml_is_well_formed_document() \u548c xml_is_well_formed_content()\uff08Mike Fowler\uff09 \u5b83\u4eec\u68c0\u67e5\u8f93\u5165\u662f\u5426\u4e3a\u683c\u5f0f\u6b63\u786e\u7684 XML\u3002\u5b83\u4eec\u63d0\u4f9b\u4e86\u6b64\u524d\u53ea\u80fd\u5728\u5df2\u5f03\u7528\u7684 contrib/xml2 \u6a21\u5757\u4e2d\u4f7f\u7528\u7684\u529f\u80fd\u3002", "title": "\u65b0\u589e XML \u51fd\u6570 xml_is_well_formed()\u3001xml_is_well_formed_document() \u548c xml_is_well_formed_content()", "commits": [], "section": "\u6570\u636e\u7c7b\u578b / XML", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.8.4", "source_hash": "ba04b475afb7f9b24cd6fe7faa248d9328b148fbad92772fb12dc0a558f0e2b9", "section_path": ["\u6570\u636e\u7c7b\u578b", "XML"], "commit_groups": [], "identity_text": "Add XML functions xml_is_well_formed(), xml_is_well_formed_document(), xml_is_well_formed_content() (Mike Fowler) These check whether the input is properly-formed XML. They provide functionality that was previously available only in the deprecated contrib/xml2 module.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/086", "db_id": "a733d5efb379e8157e069bf3519dcc9e", "patch_ids": [], "statement_hash": "5b2c4e213860b248833962e519ca3cb327fe05350c1a2762e141b6b780177e7e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-5db20dac3b6b5afb", "migration": false}, {"id": "9.1.0-2b2621d2d7bc3c50", "cves": [], "html": "<p>\u65b0\u589e SQL \u51fd\u6570 <a href=\"/docs/9.1/functions-string.html#FORMAT\"><code>format(text, ...)</code></a>\uff0c\u5176\u884c\u4e3a\u7c7b\u4f3c\u4e8e C \u7684 <code>printf()</code>\uff08Pavel Stehule\u3001Robert Haas\uff09</p>\n<p>\u5b83\u76ee\u524d\u652f\u6301\u5b57\u7b26\u4e32\u3001SQL \u5b57\u9762\u91cf\u548c SQL \u6807\u8bc6\u7b26\u7684\u683c\u5f0f\u3002</p>", "text": "\u65b0\u589e SQL \u51fd\u6570 format(text, ...)\uff0c\u5176\u884c\u4e3a\u7c7b\u4f3c\u4e8e C \u7684 printf()\uff08Pavel Stehule\u3001Robert Haas\uff09 \u5b83\u76ee\u524d\u652f\u6301\u5b57\u7b26\u4e32\u3001SQL \u5b57\u9762\u91cf\u548c SQL \u6807\u8bc6\u7b26\u7684\u683c\u5f0f\u3002", "title": "\u65b0\u589e SQL \u51fd\u6570 format(text, ...)\uff0c\u5176\u884c\u4e3a\u7c7b\u4f3c\u4e8e C \u7684 printf()", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.9", "source_hash": "c1474d0931a7fdcaa12ad82fce29254a66c1c00ad7eca93746a126ced12355e8", "section_path": ["\u51fd\u6570"], "commit_groups": [], "identity_text": "Add SQL function format(text, ...), which behaves analogously to C's printf() (Pavel Stehule, Robert Haas) It currently supports formats for strings, SQL literals, and SQL identifiers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/087", "db_id": "1a00b8ec7a92f61778a22a97dff02b2a", "patch_ids": [], "statement_hash": "f88a5af8afd4eec99767d6c33a4eb1f11fccf8a684f5a70802191b22bdafe6a6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-2b2621d2d7bc3c50", "migration": false}, {"id": "9.1.0-d8576850c43fb230", "cves": [], "html": "<p>\u65b0\u589e\u5b57\u7b26\u4e32\u51fd\u6570 <a href=\"/docs/9.1/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"\u8868\u00a09.7.\u00a0\u5176\u4ed6\u5b57\u7b26\u4e32\u51fd\u6570\"><code>concat()</code></a>\u3001<a href=\"/docs/9.1/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"\u8868\u00a09.7.\u00a0\u5176\u4ed6\u5b57\u7b26\u4e32\u51fd\u6570\"><code>concat_ws()</code></a>\u3001<a href=\"/docs/9.1/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"\u8868\u00a09.7.\u00a0\u5176\u4ed6\u5b57\u7b26\u4e32\u51fd\u6570\"><code>left()</code></a>\u3001<a href=\"/docs/9.1/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"\u8868\u00a09.7.\u00a0\u5176\u4ed6\u5b57\u7b26\u4e32\u51fd\u6570\"><code>right()</code></a> \u548c <a href=\"/docs/9.1/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"\u8868\u00a09.7.\u00a0\u5176\u4ed6\u5b57\u7b26\u4e32\u51fd\u6570\"><code>reverse()</code></a>\uff08Pavel Stehule\uff09</p>\n<p>\u8fd9\u4e9b\u6539\u8fdb\u4e86\u4e0e\u5176\u4ed6\u6570\u636e\u5e93\u4ea7\u54c1\u7684\u517c\u5bb9\u6027\u3002</p>", "text": "\u65b0\u589e\u5b57\u7b26\u4e32\u51fd\u6570 concat()\u3001concat_ws()\u3001left()\u3001right() \u548c reverse()\uff08Pavel Stehule\uff09 \u8fd9\u4e9b\u6539\u8fdb\u4e86\u4e0e\u5176\u4ed6\u6570\u636e\u5e93\u4ea7\u54c1\u7684\u517c\u5bb9\u6027\u3002", "title": "\u65b0\u589e\u5b57\u7b26\u4e32\u51fd\u6570 concat()\u3001concat_ws()\u3001left()\u3001right() \u548c reverse()", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.9", "source_hash": "32566428dd0bd45e05f2e9b06c54f135805bd0ae3065378ce7d9cb9216b89846", "section_path": ["\u51fd\u6570"], "commit_groups": [], "identity_text": "Add string functions concat(), concat_ws(), left(), right(), and reverse() (Pavel Stehule) These improve compatibility with other database products.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/088", "db_id": "bd1b06fa69b33189a251e0cbfc56e22d", "patch_ids": [], "statement_hash": "2c8c68f39f91be0cb2ab1e1805032ff8f083ad4502feb6fe8ef75eac9f363d6c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-d8576850c43fb230", "migration": false}, {"id": "9.1.0-202fb0354c671d09", "cves": [], "html": "<p>\u65b0\u589e\u7528\u4e8e\u8bfb\u53d6\u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u51fd\u6570 <a href=\"/docs/9.1/functions-admin.html#FUNCTIONS-ADMIN-GENFILE\" title=\"\u8868\u00a09.62.\u00a0\u901a\u7528\u6587\u4ef6\u8bbf\u95ee\u51fd\u6570\"><code>pg_read_binary_file()</code></a>\uff08Dimitri Fontaine\u3001Itagaki Takahiro\uff09</p>", "text": "\u65b0\u589e\u7528\u4e8e\u8bfb\u53d6\u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u51fd\u6570 pg_read_binary_file()\uff08Dimitri Fontaine\u3001Itagaki Takahiro\uff09", "title": "\u65b0\u589e\u7528\u4e8e\u8bfb\u53d6\u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u51fd\u6570 pg_read_binary_file()", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.9", "source_hash": "7db68794c9358ccb8ba059b8f33ad452bb25ba0455259526be6022a4ebbc96c7", "section_path": ["\u51fd\u6570"], "commit_groups": [], "identity_text": "Add function pg_read_binary_file() to read binary files (Dimitri Fontaine, Itagaki Takahiro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/089", "db_id": "e67f109791f44d0da050f7e1b74a5f75", "patch_ids": [], "statement_hash": "1492420318684d84df77421de009c4fbc0dc1de8d98ddcd46a2095b4c484aac3", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-202fb0354c671d09", "migration": false}, {"id": "9.1.0-73523eccbf0043eb", "cves": [], "html": "<p>\u65b0\u589e\u51fd\u6570 <a href=\"/docs/9.1/functions-admin.html#FUNCTIONS-ADMIN-GENFILE\" title=\"\u8868\u00a09.62.\u00a0\u901a\u7528\u6587\u4ef6\u8bbf\u95ee\u51fd\u6570\"><code>pg_read_file()</code></a> \u7684\u5355\u53c2\u6570\u7248\u672c\uff0c\u7528\u4e8e\u8bfb\u53d6\u6574\u4e2a\u6587\u4ef6\uff08Dimitri Fontaine\u3001Itagaki Takahiro\uff09</p>", "text": "\u65b0\u589e\u51fd\u6570 pg_read_file() \u7684\u5355\u53c2\u6570\u7248\u672c\uff0c\u7528\u4e8e\u8bfb\u53d6\u6574\u4e2a\u6587\u4ef6\uff08Dimitri Fontaine\u3001Itagaki Takahiro\uff09", "title": "\u65b0\u589e\u51fd\u6570 pg_read_file() \u7684\u5355\u53c2\u6570\u7248\u672c\uff0c\u7528\u4e8e\u8bfb\u53d6\u6574\u4e2a\u6587\u4ef6", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.9", "source_hash": "0b0aed0c9d395080d3fabe68a7b19df820c23f261598622967795be9d88b2694", "section_path": ["\u51fd\u6570"], "commit_groups": [], "identity_text": "Add a single-parameter version of function pg_read_file() to read an entire file (Dimitri Fontaine, Itagaki Takahiro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/090", "db_id": "f7d90f5108b38d52cc92e37b4bdf2660", "patch_ids": [], "statement_hash": "5c7dda494f268fb88591b8d8000070194b071492e4225b47bb5ba7847ce90ea2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-73523eccbf0043eb", "migration": false}, {"id": "9.1.0-220d7c517efe33ac", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/9.1/functions-array.html#ARRAY-FUNCTIONS-TABLE\" title=\"\u8868\u00a09.42.\u00a0\u6570\u7ec4\u51fd\u6570\"><code>array_to_string()</code></a> \u548c <a href=\"/docs/9.1/functions-array.html#ARRAY-FUNCTIONS-TABLE\" title=\"\u8868\u00a09.42.\u00a0\u6570\u7ec4\u51fd\u6570\"><code>string_to_array()</code></a> \u7684\u4e09\u53c2\u6570\u5f62\u5f0f\uff0c\u7528\u4e8e\u63a7\u5236\u7a7a\u503c\u5904\u7406\uff08Pavel Stehule\uff09</p>", "text": "\u65b0\u589e array_to_string() \u548c string_to_array() \u7684\u4e09\u53c2\u6570\u5f62\u5f0f\uff0c\u7528\u4e8e\u63a7\u5236\u7a7a\u503c\u5904\u7406\uff08Pavel Stehule\uff09", "title": "\u65b0\u589e array_to_string() \u548c string_to_array() \u7684\u4e09\u53c2\u6570\u5f62\u5f0f\uff0c\u7528\u4e8e\u63a7\u5236\u7a7a\u503c\u5904\u7406", "commits": [], "section": "\u51fd\u6570", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.9", "source_hash": "d223639b7f595abbe2c376ba672c9bdcdec817f08d7fff7e0a991499a67366b2", "section_path": ["\u51fd\u6570"], "commit_groups": [], "identity_text": "Add three-parameter forms of array_to_string() and string_to_array() for null value processing control (Pavel Stehule)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/091", "db_id": "a4debb40f1001a28cc3ec851e7e01333", "patch_ids": [], "statement_hash": "3ecfebb6f6f230a6628e0a6df5949ca600d75b713b6c96e76e4d4b1016a1bec2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-220d7c517efe33ac", "migration": false}, {"id": "9.1.0-fe76f66b07be1f82", "cves": [], "html": "<p>\u65b0\u589e\u51fd\u6570 <a href=\"/docs/9.1/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"\u8868\u00a09.51.\u00a0\u7cfb\u7edf\u76ee\u5f55\u4fe1\u606f\u51fd\u6570\"><code>pg_describe_object()</code></a>\uff08Alvaro Herrera\uff09</p>\n<p>\u8be5\u51fd\u6570\u7528\u4e8e\u6839\u636e <a href=\"/docs/9.1/catalog-pg-class.html\" title=\"45.11.\u00a0pg_class\"><code>pg_class</code></a> OID\u3001\u5bf9\u8c61 OID \u548c\u5b50\u5bf9\u8c61 ID \u83b7\u53d6\u63cf\u8ff0\u5bf9\u8c61\u7684\u4eba\u7c7b\u53ef\u8bfb\u5b57\u7b26\u4e32\u3002\u5b83\u53ef\u7528\u4e8e\u5e2e\u52a9\u89e3\u91ca <a href=\"/docs/9.1/catalog-pg-depend.html\" title=\"45.18.\u00a0pg_depend\"><code>pg_depend</code></a> \u7684\u5185\u5bb9\u3002</p>", "text": "\u65b0\u589e\u51fd\u6570 pg_describe_object()\uff08Alvaro Herrera\uff09 \u8be5\u51fd\u6570\u7528\u4e8e\u6839\u636e pg_class OID\u3001\u5bf9\u8c61 OID \u548c\u5b50\u5bf9\u8c61 ID \u83b7\u53d6\u63cf\u8ff0\u5bf9\u8c61\u7684\u4eba\u7c7b\u53ef\u8bfb\u5b57\u7b26\u4e32\u3002\u5b83\u53ef\u7528\u4e8e\u5e2e\u52a9\u89e3\u91ca pg_depend \u7684\u5185\u5bb9\u3002", "title": "\u65b0\u589e\u51fd\u6570 pg_describe_object()", "commits": [], "section": "\u51fd\u6570 / \u5bf9\u8c61\u4fe1\u606f\u51fd\u6570", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.9.3", "source_hash": "96a2c39e4724af13d2b2c18237635bc012585aff0964cfc6440fa576f6fce39f", "section_path": ["\u51fd\u6570", "\u5bf9\u8c61\u4fe1\u606f\u51fd\u6570"], "commit_groups": [], "identity_text": "Add the pg_describe_object() function (Alvaro Herrera) This function is used to obtain a human-readable string describing an object, based on the pg_class OID, object OID, and sub-object ID. It can be used to help interpret the contents of pg_depend.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/092", "db_id": "6154f90bba8b3f9b7fb50dfdcde04a20", "patch_ids": [], "statement_hash": "b16de5cdd0d68d611971430f7196cd133d89a3c9d46729c013710f4ced7ae8d1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-fe76f66b07be1f82", "migration": false}, {"id": "9.1.0-0dde867517272938", "cves": [], "html": "<p>\u66f4\u65b0\u5185\u5efa\u64cd\u4f5c\u7b26\u53ca\u5176\u5e95\u5c42\u51fd\u6570\u7684\u6ce8\u91ca\uff08Tom Lane\uff09</p>\n<p>\u65e8\u5728\u901a\u8fc7\u5173\u8054\u64cd\u4f5c\u7b26\u4f7f\u7528\u7684\u51fd\u6570\u73b0\u5728\u88ab\u8fd9\u6837\u6ce8\u91ca\u3002</p>", "text": "\u66f4\u65b0\u5185\u5efa\u64cd\u4f5c\u7b26\u53ca\u5176\u5e95\u5c42\u51fd\u6570\u7684\u6ce8\u91ca\uff08Tom Lane\uff09 \u65e8\u5728\u901a\u8fc7\u5173\u8054\u64cd\u4f5c\u7b26\u4f7f\u7528\u7684\u51fd\u6570\u73b0\u5728\u88ab\u8fd9\u6837\u6ce8\u91ca\u3002", "title": "\u66f4\u65b0\u5185\u5efa\u64cd\u4f5c\u7b26\u53ca\u5176\u5e95\u5c42\u51fd\u6570\u7684\u6ce8\u91ca", "commits": [], "section": "\u51fd\u6570 / \u5bf9\u8c61\u4fe1\u606f\u51fd\u6570", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.9.3", "source_hash": "054dc259cd11180ba368d34f0e187deb0006c0b3cb65559787b0826717f7779a", "section_path": ["\u51fd\u6570", "\u5bf9\u8c61\u4fe1\u606f\u51fd\u6570"], "commit_groups": [], "identity_text": "Update comments for built-in operators and their underlying functions (Tom Lane) Functions that are meant to be used via an associated operator are now commented as such.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/093", "db_id": "c0e0b068b084b6da2536312e86030bd3", "patch_ids": [], "statement_hash": "3758706cb9bf45ef7142d1704a1cc6e07790c7aeb0c5ec92fb86b0356101bbaf", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-0dde867517272938", "migration": false}, {"id": "9.1.0-62102d33c2b1d134", "cves": [], "html": "<p>\u65b0\u589e\u53d8\u91cf <a href=\"/docs/9.1/runtime-config-compatible.html#GUC-QUOTE-ALL-IDENTIFIERS\"><code>quote_all_identifiers</code></a>\uff0c\u5f3a\u5236\u4e3a <code>EXPLAIN</code> \u4ee5\u53ca <a href=\"/docs/9.1/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"\u8868\u00a09.51.\u00a0\u7cfb\u7edf\u76ee\u5f55\u4fe1\u606f\u51fd\u6570\"><code>pg_get_viewdef()</code></a> \u7b49\u7cfb\u7edf\u76ee\u5f55\u51fd\u6570\u4e2d\u7684\u6240\u6709\u6807\u8bc6\u7b26\u52a0\u5f15\u53f7\uff08Robert Haas\uff09</p>\n<p>\u8fd9\u4f7f\u5f97\u628a\u6a21\u5f0f\u5bfc\u51fa\u5230\u5177\u6709\u4e0d\u540c\u5f15\u53f7\u89c4\u5219\u7684\u5de5\u5177\u548c\u5176\u4ed6\u6570\u636e\u5e93\u66f4\u52a0\u5bb9\u6613\u3002</p>", "text": "\u65b0\u589e\u53d8\u91cf quote_all_identifiers\uff0c\u5f3a\u5236\u4e3a EXPLAIN \u4ee5\u53ca pg_get_viewdef() \u7b49\u7cfb\u7edf\u76ee\u5f55\u51fd\u6570\u4e2d\u7684\u6240\u6709\u6807\u8bc6\u7b26\u52a0\u5f15\u53f7\uff08Robert Haas\uff09 \u8fd9\u4f7f\u5f97\u628a\u6a21\u5f0f\u5bfc\u51fa\u5230\u5177\u6709\u4e0d\u540c\u5f15\u53f7\u89c4\u5219\u7684\u5de5\u5177\u548c\u5176\u4ed6\u6570\u636e\u5e93\u66f4\u52a0\u5bb9\u6613\u3002", "title": "\u65b0\u589e\u53d8\u91cf quote_all_identifiers\uff0c\u5f3a\u5236\u4e3a EXPLAIN \u4ee5\u53ca pg_get_viewdef() \u7b49\u7cfb\u7edf\u76ee\u5f55\u51fd\u6570\u4e2d\u7684\u6240\u6709\u6807\u8bc6\u7b26\u52a0\u5f15\u53f7", "commits": [], "section": "\u51fd\u6570 / \u5bf9\u8c61\u4fe1\u606f\u51fd\u6570", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.9.3", "source_hash": "983a4ea09bfa8027758ed9cedc92800cf7184cdc81613e36349c045fc658882d", "section_path": ["\u51fd\u6570", "\u5bf9\u8c61\u4fe1\u606f\u51fd\u6570"], "commit_groups": [], "identity_text": "Add variable quote_all_identifiers to force the quoting of all identifiers in EXPLAIN and in system catalog functions like pg_get_viewdef() (Robert Haas) This makes exporting schemas to tools and other databases with different quoting rules easier.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/094", "db_id": "c7d5d42c841e0ae8a59b0dc6ab030d0f", "patch_ids": [], "statement_hash": "9e962c1fe569799073b2fe0b7da5abc4d77dae4d6b04fe5ba2187af222551a74", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-62102d33c2b1d134", "migration": false}, {"id": "9.1.0-f5ba28d6e0ba68ef", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/infoschema-sequences.html\" title=\"34.40.\u00a0sequences\"><code>information_schema.sequences</code></a> \u7cfb\u7edf\u89c6\u56fe\u65b0\u589e\u5217\uff08Peter Eisentraut\uff09</p>\n<p>\u6b64\u524d\u867d\u7136\u89c6\u56fe\u5b58\u5728\uff0c\u4f46\u5173\u4e8e\u5e8f\u5217\u53c2\u6570\u7684\u5217\u672a\u5b9e\u73b0\u3002</p>", "text": "\u4e3a information_schema.sequences \u7cfb\u7edf\u89c6\u56fe\u65b0\u589e\u5217\uff08Peter Eisentraut\uff09 \u6b64\u524d\u867d\u7136\u89c6\u56fe\u5b58\u5728\uff0c\u4f46\u5173\u4e8e\u5e8f\u5217\u53c2\u6570\u7684\u5217\u672a\u5b9e\u73b0\u3002", "title": "\u4e3a information_schema.sequences \u7cfb\u7edf\u89c6\u56fe\u65b0\u589e\u5217", "commits": [], "section": "\u51fd\u6570 / \u5bf9\u8c61\u4fe1\u606f\u51fd\u6570", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.9.3", "source_hash": "040d550616eac1837ae506a4fd98245cf99d3137835d1ca59de7d400e3fa5357", "section_path": ["\u51fd\u6570", "\u5bf9\u8c61\u4fe1\u606f\u51fd\u6570"], "commit_groups": [], "identity_text": "Add columns to the information_schema.sequences system view (Peter Eisentraut) Previously, though the view existed, the columns about the sequence parameters were unimplemented.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/095", "db_id": "698f126bea4ae8b0bc1eab99727cae2e", "patch_ids": [], "statement_hash": "3e47cbab0c90dd2ac2de0c5c6ec595dcb137f9de0886d7f5734367aabbe6ecc9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f5ba28d6e0ba68ef", "migration": false}, {"id": "9.1.0-7637695bd70d97b6", "cves": [], "html": "<p>\u5141\u8bb8\u5728 <a href=\"/docs/9.1/functions-info.html#FUNCTIONS-INFO-ACCESS-TABLE\" title=\"\u8868\u00a09.49.\u00a0\u8bbf\u95ee\u6743\u9650\u67e5\u8be2\u51fd\u6570\"><code>has_table_privilege()</code></a> \u53ca\u76f8\u5173\u51fd\u6570\u4e2d\u4f7f\u7528 <code>public</code> \u4f5c\u4e3a\u4f2a\u89d2\u8272\u540d\uff08Alvaro Herrera\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u68c0\u67e5\u516c\u5171\u6743\u9650\u3002</p>", "text": "\u5141\u8bb8\u5728 has_table_privilege() \u53ca\u76f8\u5173\u51fd\u6570\u4e2d\u4f7f\u7528 public \u4f5c\u4e3a\u4f2a\u89d2\u8272\u540d\uff08Alvaro Herrera\uff09 \u8fd9\u5141\u8bb8\u68c0\u67e5\u516c\u5171\u6743\u9650\u3002", "title": "\u5141\u8bb8\u5728 has_table_privilege() \u53ca\u76f8\u5173\u51fd\u6570\u4e2d\u4f7f\u7528 public \u4f5c\u4e3a\u4f2a\u89d2\u8272\u540d", "commits": [], "section": "\u51fd\u6570 / \u5bf9\u8c61\u4fe1\u606f\u51fd\u6570", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.9.3", "source_hash": "0dc410aa27e86074d23ae6de6c7eb711743a8be17ae35015daea4c227160c4a3", "section_path": ["\u51fd\u6570", "\u5bf9\u8c61\u4fe1\u606f\u51fd\u6570"], "commit_groups": [], "identity_text": "Allow public as a pseudo-role name in has_table_privilege() and related functions (Alvaro Herrera) This allows checking for public permissions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/096", "db_id": "7cc1531ba3756e724e570eba814a6965", "patch_ids": [], "statement_hash": "a6a8aa5e796de1df74bdb54e7e227942848ce21c43ccea774bf0d623cb39a77f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-7637695bd70d97b6", "migration": false}, {"id": "9.1.0-f29f05ea39259642", "cves": [], "html": "<p>\u652f\u6301\u89c6\u56fe\u4e0a\u7684 <a href=\"/docs/9.1/sql-createtrigger.html\" title=\"CREATE TRIGGER\"><code>INSTEAD OF</code></a> \u89e6\u53d1\u5668\uff08Dean Rasheed\uff09</p>\n<p>\u6b64\u7279\u6027\u53ef\u7528\u4e8e\u5b9e\u73b0\u5b8c\u5168\u53ef\u66f4\u65b0\u7684\u89c6\u56fe\u3002</p>", "text": "\u652f\u6301\u89c6\u56fe\u4e0a\u7684 INSTEAD OF \u89e6\u53d1\u5668\uff08Dean Rasheed\uff09 \u6b64\u7279\u6027\u53ef\u7528\u4e8e\u5b9e\u73b0\u5b8c\u5168\u53ef\u66f4\u65b0\u7684\u89c6\u56fe\u3002", "title": "\u652f\u6301\u89c6\u56fe\u4e0a\u7684 INSTEAD OF \u89e6\u53d1\u5668", "commits": [], "section": "\u51fd\u6570 / \u51fd\u6570\u548c\u89e6\u53d1\u5668\u521b\u5efa", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.9.4", "source_hash": "19335af76d00caee04bba7b3586cd94fb7c2f9b2c3ffc57e016614d002e3c89e", "section_path": ["\u51fd\u6570", "\u51fd\u6570\u548c\u89e6\u53d1\u5668\u521b\u5efa"], "commit_groups": [], "identity_text": "Support INSTEAD OF triggers on views (Dean Rasheed) This feature can be used to implement fully updatable views.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/097", "db_id": "d552d2b953cb9c3c26d495c86069571d", "patch_ids": [], "statement_hash": "18851bda8fefd1006e5eaac95044adbf025e01df528dde82682ae847f6fe2dad", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f29f05ea39259642", "migration": false}, {"id": "9.1.0-173f32519f1ba1f9", "cves": [], "html": "<p>\u4e3a PL/pgSQL \u65b0\u589e <a href=\"/docs/9.1/plpgsql-control-structures.html#PLPGSQL-FOREACH-ARRAY\" title=\"39.6.5.\u00a0\u904d\u5386\u6570\u7ec4\"><code>FOREACH IN ARRAY</code></a>\uff08Pavel Stehule\uff09</p>\n<p>\u8fd9\u6bd4\u6b64\u524d\u904d\u5386\u6570\u7ec4\u503c\u5143\u7d20\u7684\u65b9\u6cd5\u66f4\u9ad8\u6548\u4e5f\u66f4\u6613\u8bfb\u3002</p>", "text": "\u4e3a PL/pgSQL \u65b0\u589e FOREACH IN ARRAY\uff08Pavel Stehule\uff09 \u8fd9\u6bd4\u6b64\u524d\u904d\u5386\u6570\u7ec4\u503c\u5143\u7d20\u7684\u65b9\u6cd5\u66f4\u9ad8\u6548\u4e5f\u66f4\u6613\u8bfb\u3002", "title": "\u4e3a PL/pgSQL \u65b0\u589e FOREACH IN ARRAY", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/pgSQL Server-Side Language", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.2", "source_hash": "f5a9ae918a5257030e8a3e3e407c7d804f7465c4cebc2a175e9098019500be64", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/pgSQL Server-Side Language"], "commit_groups": [], "identity_text": "Add FOREACH IN ARRAY to PL/pgSQL (Pavel Stehule) This is more efficient and readable than previous methods of iterating through the elements of an array value.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/098", "db_id": "b8e61cc1057fd3248b3982c36b94e724", "patch_ids": [], "statement_hash": "c2bd472b3daa72ad0bce592d37f9de237989ccb11568c687cb597443e2b61d2a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-173f32519f1ba1f9", "migration": false}, {"id": "9.1.0-8ac8bf030c600943", "cves": [], "html": "<p>\u5141\u8bb8\u5728\u540c\u4e00\u4f4d\u7f6e\u80fd\u591f\u6355\u83b7 <code>RAISE ERROR</code> \u7684\u5730\u65b9\u6355\u83b7\u65e0\u53c2\u6570\u7684 <code>RAISE</code>\uff08Piyush Newe\uff09</p>\n<p>\u5148\u524d\u7684\u7f16\u7801\u4f1a\u4ece\u5305\u542b\u6d3b\u52a8\u5f02\u5e38\u5904\u7406\u7a0b\u5e8f\u7684\u5757\u629b\u51fa\u9519\u8bef\u3002\u65b0\u884c\u4e3a\u4e0e\u5176\u4ed6 DBMS \u4ea7\u54c1\u66f4\u4e00\u81f4\u3002</p>", "text": "\u5141\u8bb8\u5728\u540c\u4e00\u4f4d\u7f6e\u80fd\u591f\u6355\u83b7 RAISE ERROR \u7684\u5730\u65b9\u6355\u83b7\u65e0\u53c2\u6570\u7684 RAISE\uff08Piyush Newe\uff09 \u5148\u524d\u7684\u7f16\u7801\u4f1a\u4ece\u5305\u542b\u6d3b\u52a8\u5f02\u5e38\u5904\u7406\u7a0b\u5e8f\u7684\u5757\u629b\u51fa\u9519\u8bef\u3002\u65b0\u884c\u4e3a\u4e0e\u5176\u4ed6 DBMS \u4ea7\u54c1\u66f4\u4e00\u81f4\u3002", "title": "\u5141\u8bb8\u5728\u540c\u4e00\u4f4d\u7f6e\u80fd\u591f\u6355\u83b7 RAISE ERROR \u7684\u5730\u65b9\u6355\u83b7\u65e0\u53c2\u6570\u7684 RAISE", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/pgSQL Server-Side Language", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.2", "source_hash": "aca9c7a0756042291eb6f7edc989138efa766d86c904edbef9200ab9d1c339c5", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/pgSQL Server-Side Language"], "commit_groups": [], "identity_text": "Allow RAISE without parameters to be caught in the same places that could catch a RAISE ERROR from the same location (Piyush Newe) The previous coding threw the error from the block containing the active exception handler. The new behavior is more consistent with other DBMS products.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/099", "db_id": "086b82c7a7e9b38fa3a2d2697c5b247f", "patch_ids": [], "statement_hash": "2cc337797c37381c1b7b50cd3b7c9e5eee58d12bb8ffd17d62940d3c5c644269", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-8ac8bf030c600943", "migration": false}, {"id": "9.1.0-bb8bb765a1096dc9", "cves": [], "html": "<p>\u5141\u8bb8 PL/Perl \u51fd\u6570\u63a5\u53d7\u901a\u7528 record \u53c2\u6570\uff08Andrew Dunstan\uff09</p>\n<p>PL/Perl \u51fd\u6570\u73b0\u5728\u53ef\u4ee5\u58f0\u660e\u4e3a\u63a5\u53d7 <code>record</code> \u7c7b\u578b\u3002\u5176\u884c\u4e3a\u4e0e\u4efb\u4f55\u547d\u540d\u7684\u7ec4\u5408\u7c7b\u578b\u76f8\u540c\u3002</p>", "text": "\u5141\u8bb8 PL/Perl \u51fd\u6570\u63a5\u53d7\u901a\u7528 record \u53c2\u6570\uff08Andrew Dunstan\uff09 PL/Perl \u51fd\u6570\u73b0\u5728\u53ef\u4ee5\u58f0\u660e\u4e3a\u63a5\u53d7 record \u7c7b\u578b\u3002\u5176\u884c\u4e3a\u4e0e\u4efb\u4f55\u547d\u540d\u7684\u7ec4\u5408\u7c7b\u578b\u76f8\u540c\u3002", "title": "\u5141\u8bb8 PL/Perl \u51fd\u6570\u63a5\u53d7\u901a\u7528 record \u53c2\u6570", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Perl Server-Side Language", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.3", "source_hash": "cf4fb1f93bc2ac7952110a6224a241a6cb90d18f5101e6f9c9d999189b33caa8", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Perl Server-Side Language"], "commit_groups": [], "identity_text": "Allow generic record arguments to PL/Perl functions (Andrew Dunstan) PL/Perl functions can now be declared to accept type record. The behavior is the same as for any named composite type.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/100", "db_id": "6d3bb73495936dffc36d31ae6597a2bf", "patch_ids": [], "statement_hash": "42268d055dc7546c5a22b37c1f8f2698fcabf315d425a7badd37ea6508c751aa", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-bb8bb765a1096dc9", "migration": false}, {"id": "9.1.0-f678679040e0ffbe", "cves": [], "html": "<p>\u628a PL/Perl \u7684\u6570\u7ec4\u53c2\u6570\u8f6c\u6362\u4e3a Perl \u6570\u7ec4\uff08Alexey Klyukin\u3001Alex Hunsaker\uff09</p>\n<p>\u5b57\u7b26\u4e32\u8868\u793a\u4ecd\u7136\u53ef\u7528\u3002</p>", "text": "\u628a PL/Perl \u7684\u6570\u7ec4\u53c2\u6570\u8f6c\u6362\u4e3a Perl \u6570\u7ec4\uff08Alexey Klyukin\u3001Alex Hunsaker\uff09 \u5b57\u7b26\u4e32\u8868\u793a\u4ecd\u7136\u53ef\u7528\u3002", "title": "\u628a PL/Perl \u7684\u6570\u7ec4\u53c2\u6570\u8f6c\u6362\u4e3a Perl \u6570\u7ec4", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Perl Server-Side Language", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.3", "source_hash": "a9a20ac558b683b35b05384ddcadb5d75d9a5d946201f29d4039475ae73c91a8", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Perl Server-Side Language"], "commit_groups": [], "identity_text": "Convert PL/Perl array arguments to Perl arrays (Alexey Klyukin, Alex Hunsaker) String representations are still available.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/101", "db_id": "d32eaebc904dc1760652e490998ed5a5", "patch_ids": [], "statement_hash": "a7f3c4fa3d513468f20dacf063184d71e1ecd825b6111e3a94758eecdf58f565", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f678679040e0ffbe", "migration": false}, {"id": "9.1.0-f17e167243a4d07a", "cves": [], "html": "<p>\u628a PL/Perl \u7684\u7ec4\u5408\u7c7b\u578b\u53c2\u6570\u8f6c\u6362\u4e3a Perl \u54c8\u5e0c\uff08Alexey Klyukin\u3001Alex Hunsaker\uff09</p>\n<p>\u5b57\u7b26\u4e32\u8868\u793a\u4ecd\u7136\u53ef\u7528\u3002</p>", "text": "\u628a PL/Perl \u7684\u7ec4\u5408\u7c7b\u578b\u53c2\u6570\u8f6c\u6362\u4e3a Perl \u54c8\u5e0c\uff08Alexey Klyukin\u3001Alex Hunsaker\uff09 \u5b57\u7b26\u4e32\u8868\u793a\u4ecd\u7136\u53ef\u7528\u3002", "title": "\u628a PL/Perl \u7684\u7ec4\u5408\u7c7b\u578b\u53c2\u6570\u8f6c\u6362\u4e3a Perl \u54c8\u5e0c", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Perl Server-Side Language", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.3", "source_hash": "d0560de37ebff9d227d13e426c16175702a88a6723eb539be013479b484c3ca5", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Perl Server-Side Language"], "commit_groups": [], "identity_text": "Convert PL/Perl composite-type arguments to Perl hashes (Alexey Klyukin, Alex Hunsaker) String representations are still available.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/102", "db_id": "a830c8e03ee25aa62b5dc15fc2f1a178", "patch_ids": [], "statement_hash": "641d0aed3c281f06165fa7999aa58fbf3b0daa8fd5125fb8ad93b2eee7ef13bf", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f17e167243a4d07a", "migration": false}, {"id": "9.1.0-8e089cb7e2b0488e", "cves": [], "html": "<p>\u4e3a PL/Python \u65b0\u589e\u8868\u51fd\u6570\u652f\u6301\uff08Jan Urbanski\uff09</p>\n<p>PL/Python \u73b0\u5728\u53ef\u4ee5\u8fd4\u56de\u591a\u4e2a <code>OUT</code> \u53c2\u6570\u548c\u8bb0\u5f55\u96c6\u3002</p>", "text": "\u4e3a PL/Python \u65b0\u589e\u8868\u51fd\u6570\u652f\u6301\uff08Jan Urbanski\uff09 PL/Python \u73b0\u5728\u53ef\u4ee5\u8fd4\u56de\u591a\u4e2a OUT \u53c2\u6570\u548c\u8bb0\u5f55\u96c6\u3002", "title": "\u4e3a PL/Python \u65b0\u589e\u8868\u51fd\u6570\u652f\u6301", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Python Server-Side Language", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.4", "source_hash": "c91606dc89ccb789a9c9937fc35a3c842b2cbc9889cb433ca0cd4631dc87ca6f", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Python Server-Side Language"], "commit_groups": [], "identity_text": "Add table function support for PL/Python (Jan Urbanski) PL/Python can now return multiple OUT parameters and record sets.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/103", "db_id": "a026b05da4aac860f07b06258de239df", "patch_ids": [], "statement_hash": "c0de77fba5224e3c95ec50c8e1fa5d9fed804d1f1fc387502ad66247f7657cb2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-8e089cb7e2b0488e", "migration": false}, {"id": "9.1.0-ed28c9c82a1e8ded", "cves": [], "html": "<p>\u4e3a PL/Python \u65b0\u589e\u9a8c\u8bc1\u5668\uff08Jan Urbanski\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u5728\u521b\u5efa\u51fd\u6570\u65f6\u5bf9 PL/Python \u51fd\u6570\u505a\u8bed\u6cd5\u68c0\u67e5\u3002</p>", "text": "\u4e3a PL/Python \u65b0\u589e\u9a8c\u8bc1\u5668\uff08Jan Urbanski\uff09 \u8fd9\u5141\u8bb8\u5728\u521b\u5efa\u51fd\u6570\u65f6\u5bf9 PL/Python \u51fd\u6570\u505a\u8bed\u6cd5\u68c0\u67e5\u3002", "title": "\u4e3a PL/Python \u65b0\u589e\u9a8c\u8bc1\u5668", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Python Server-Side Language", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.4", "source_hash": "4c4c940df07f611f64dfe34b29f75772a142289057f348eeb0bd4fce67616f53", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Python Server-Side Language"], "commit_groups": [], "identity_text": "Add a validator to PL/Python (Jan Urbanski) This allows PL/Python functions to be syntax-checked at function creation time.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/104", "db_id": "5c6ad0cb8d354c7cbc9d3fe3f4c0b2d4", "patch_ids": [], "statement_hash": "d9ce8083d80313664977e2c2d326f608370d7672e2b599d060a205bf2e97f077", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-ed28c9c82a1e8ded", "migration": false}, {"id": "9.1.0-f0d550d67d545341", "cves": [], "html": "<p>\u5141\u8bb8 PL/Python \u4e2d SQL \u67e5\u8be2\u7684\u5f02\u5e38\uff08Jan Urbanski\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u4ece PL/Python \u5f02\u5e38\u5757\u8bbf\u95ee SQL \u751f\u6210\u7684\u5f02\u5e38\u9519\u8bef\u7801\u3002</p>", "text": "\u5141\u8bb8 PL/Python \u4e2d SQL \u67e5\u8be2\u7684\u5f02\u5e38\uff08Jan Urbanski\uff09 \u8fd9\u5141\u8bb8\u4ece PL/Python \u5f02\u5e38\u5757\u8bbf\u95ee SQL \u751f\u6210\u7684\u5f02\u5e38\u9519\u8bef\u7801\u3002", "title": "\u5141\u8bb8 PL/Python \u4e2d SQL \u67e5\u8be2\u7684\u5f02\u5e38", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Python Server-Side Language", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.4", "source_hash": "9a3412b69589e7e5291f9a483a2fce8dfdd4feaac90c382b1d2004efca73fdb4", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Python Server-Side Language"], "commit_groups": [], "identity_text": "Allow exceptions for SQL queries in PL/Python (Jan Urbanski) This allows access to SQL-generated exception error codes from PL/Python exception blocks.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/105", "db_id": "c316a7c9018468d9abc2f82747f4f92e", "patch_ids": [], "statement_hash": "36cc373cb23eff9afdffa39fa6f2f8b5a35a87fa964f3183b75775d0ed0569f1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f0d550d67d545341", "migration": false}, {"id": "9.1.0-407720308de7dd23", "cves": [], "html": "<p>\u4e3a PL/Python \u65b0\u589e\u663e\u5f0f\u5b50\u4e8b\u52a1\uff08Jan Urbanski\uff09</p>", "text": "\u4e3a PL/Python \u65b0\u589e\u663e\u5f0f\u5b50\u4e8b\u52a1\uff08Jan Urbanski\uff09", "title": "\u4e3a PL/Python \u65b0\u589e\u663e\u5f0f\u5b50\u4e8b\u52a1", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Python Server-Side Language", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.4", "source_hash": "fc1947df4219a4ae1bef1385207dad14af43bcbcc2573208ad061ba5423b9a30", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Python Server-Side Language"], "commit_groups": [], "identity_text": "Add explicit subtransactions to PL/Python (Jan Urbanski)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/106", "db_id": "5074328f12f0ec9ff7dcc79eef943cb2", "patch_ids": [], "statement_hash": "6e6cc6b4b2ddefb870d75e965bf995e210165110f55599dc2950376d0add6c8b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-407720308de7dd23", "migration": false}, {"id": "9.1.0-5d6e414e7453b55a", "cves": [], "html": "<p>\u4e3a PL/Python \u65b0\u589e\u5b57\u7b26\u4e32\u52a0\u5f15\u53f7\u51fd\u6570\uff08Jan Urbanski\uff09</p>\n<p>\u8fd9\u4e9b\u51fd\u6570\u662f <a href=\"/docs/9.1/plpython-util.html\" title=\"42.9.\u00a0\u8f85\u52a9\u51fd\u6570\"><code>plpy.quote_ident</code></a>\u3001<a href=\"/docs/9.1/plpython-util.html\" title=\"42.9.\u00a0\u8f85\u52a9\u51fd\u6570\"><code>plpy.quote_literal</code></a> \u548c <a href=\"/docs/9.1/plpython-util.html\" title=\"42.9.\u00a0\u8f85\u52a9\u51fd\u6570\"><code>plpy.quote_nullable</code></a>\u3002</p>", "text": "\u4e3a PL/Python \u65b0\u589e\u5b57\u7b26\u4e32\u52a0\u5f15\u53f7\u51fd\u6570\uff08Jan Urbanski\uff09 \u8fd9\u4e9b\u51fd\u6570\u662f plpy.quote_ident\u3001plpy.quote_literal \u548c plpy.quote_nullable\u3002", "title": "\u4e3a PL/Python \u65b0\u589e\u5b57\u7b26\u4e32\u52a0\u5f15\u53f7\u51fd\u6570", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Python Server-Side Language", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.4", "source_hash": "3489b829037387cc8c942a1135a426c49aaec9ed7c81fe093ea302f987eac9f0", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Python Server-Side Language"], "commit_groups": [], "identity_text": "Add PL/Python functions for quoting strings (Jan Urbanski) These functions are plpy.quote_ident, plpy.quote_literal, and plpy.quote_nullable.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/107", "db_id": "f6bfc35b8ce5debceefee35c0cb148e1", "patch_ids": [], "statement_hash": "183ba6f8ffb39d79d22006c33175f78d5a603d8b28c63d6eca5ced7d607b1668", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-5d6e414e7453b55a", "migration": false}, {"id": "9.1.0-8e5d29ce9c2da95a", "cves": [], "html": "<p>\u4e3a PL/Python \u9519\u8bef\u6dfb\u52a0\u56de\u6eaf\u4fe1\u606f\uff08Jan Urbanski\uff09</p>", "text": "\u4e3a PL/Python \u9519\u8bef\u6dfb\u52a0\u56de\u6eaf\u4fe1\u606f\uff08Jan Urbanski\uff09", "title": "\u4e3a PL/Python \u9519\u8bef\u6dfb\u52a0\u56de\u6eaf\u4fe1\u606f", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Python Server-Side Language", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.4", "source_hash": "09474958d407e65cf78512d379caa0464125ab89136b6426fea9c8a61f43b43b", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Python Server-Side Language"], "commit_groups": [], "identity_text": "Add traceback information to PL/Python errors (Jan Urbanski)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/108", "db_id": "83299d28b19643589dd78941e3814eaf", "patch_ids": [], "statement_hash": "c42a7e2795088ffa41d264ce1c0702e2180848bfa1e3eaa83ce1b0968ad80cd4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-8e5d29ce9c2da95a", "migration": false}, {"id": "9.1.0-bcc9cbe2406462cf", "cves": [], "html": "<p>\u7528 <code>PLy_elog</code> \u62a5\u544a\u8fed\u4ee3\u5668\u7684 PL/Python \u9519\u8bef\uff08Jan Urbanski\uff09</p>", "text": "\u7528 PLy_elog \u62a5\u544a\u8fed\u4ee3\u5668\u7684 PL/Python \u9519\u8bef\uff08Jan Urbanski\uff09", "title": "\u7528 PLy_elog \u62a5\u544a\u8fed\u4ee3\u5668\u7684 PL/Python \u9519\u8bef", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Python Server-Side Language", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.4", "source_hash": "3f5e1063940fd4ac154439d804c0923639e5743204a5659a876708b5256f0f92", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Python Server-Side Language"], "commit_groups": [], "identity_text": "Report PL/Python errors from iterators with PLy_elog (Jan Urbanski)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/109", "db_id": "6f979069bb79a716b2fed8c3dab185a1", "patch_ids": [], "statement_hash": "cabdb7f0e5d7b42d44fbead5f6ea8fa3f0f9476f22acdc0b7f04c046d30b1fcb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-bcc9cbe2406462cf", "migration": false}, {"id": "9.1.0-d520694f28c9dfdf", "cves": [], "html": "<p>\u4fee\u590d Python 3 \u7684\u5f02\u5e38\u5904\u7406\uff08Jan Urbanski\uff09</p>\n<p>\u6b64\u524d\u5728 Python 3 \u4e0b <code>plpy</code> \u4e2d\u6ca1\u6709\u5f02\u5e38\u7c7b\u3002</p>", "text": "\u4fee\u590d Python 3 \u7684\u5f02\u5e38\u5904\u7406\uff08Jan Urbanski\uff09 \u6b64\u524d\u5728 Python 3 \u4e0b plpy \u4e2d\u6ca1\u6709\u5f02\u5e38\u7c7b\u3002", "title": "\u4fee\u590d Python 3 \u7684\u5f02\u5e38\u5904\u7406", "commits": [], "section": "\u670d\u52a1\u5668\u7aef\u8bed\u8a00 / PL/Python Server-Side Language", "category": "bugfix", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.10.4", "source_hash": "9e3c794a0e06c577a003fad4f641dbb9a3b337fe961994480390cd0fde68816d", "section_path": ["\u670d\u52a1\u5668\u7aef\u8bed\u8a00", "PL/Python Server-Side Language"], "commit_groups": [], "identity_text": "Fix exception handling with Python 3 (Jan Urbanski) Exception classes were previously not available in plpy under Python 3.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/110", "db_id": "79ab7adb1885f2e00d2e5e6a1e4caa67", "patch_ids": [], "statement_hash": "616e8ed3ae85ec6063f0a34df8e20a6efab76a0ad648889ddc062cb997406e97", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=9.1.0#9.1.0-d520694f28c9dfdf", "migration": false}, {"id": "9.1.0-43e1ef751f6c51b6", "cves": [], "html": "<p>\u7531\u4e8e<a href=\"/docs/9.1/app-createlang.html\" title=\"createlang\"><span>createlang</span></a>\u548c<a href=\"/docs/9.1/app-droplang.html\" title=\"droplang\"><span>droplang</span></a>\u73b0\u5728\u53ea\u662f\u8c03\u7528\u6269\u5c55\u547d\u4ee4\uff0c\u5c06\u5176\u6807\u8bb0\u4e3a\u5df2\u5f03\u7528\uff08Tom Lane\uff09</p>", "text": "\u7531\u4e8ecreatelang\u548cdroplang\u73b0\u5728\u53ea\u662f\u8c03\u7528\u6269\u5c55\u547d\u4ee4\uff0c\u5c06\u5176\u6807\u8bb0\u4e3a\u5df2\u5f03\u7528\uff08Tom Lane\uff09", "title": "\u7531\u4e8ecreatelang\u548cdroplang\u73b0\u5728\u53ea\u662f\u8c03\u7528\u6269\u5c55\u547d\u4ee4\uff0c\u5c06\u5176\u6807\u8bb0\u4e3a\u5df2\u5f03\u7528", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11", "source_hash": "727e40993ac05724528c17f116d5e592e83438eb7332fe4873213238e768ce50", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f"], "commit_groups": [], "identity_text": "Mark createlang and droplang as deprecated now that they just invoke extension commands (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/111", "db_id": "c148444570958b17e03d0a81e9b153e7", "patch_ids": [], "statement_hash": "81a7732d473af67c43f55ffa0cc6f3ec5d045630986a51e1b90c2379945e7ca6", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-43e1ef751f6c51b6", "migration": false}, {"id": "9.1.0-5a03a287a9542c30", "cves": [], "html": "<p>\u65b0\u589e <span>psql</span> \u547d\u4ee4 <code>\\conninfo</code>\uff0c\u7528\u4e8e\u663e\u793a\u5f53\u524d\u8fde\u63a5\u4fe1\u606f\uff08David Christensen\uff09</p>", "text": "\u65b0\u589e psql \u547d\u4ee4 \\conninfo\uff0c\u7528\u4e8e\u663e\u793a\u5f53\u524d\u8fde\u63a5\u4fe1\u606f\uff08David Christensen\uff09", "title": "\u65b0\u589e psql \u547d\u4ee4 \\conninfo\uff0c\u7528\u4e8e\u663e\u793a\u5f53\u524d\u8fde\u63a5\u4fe1\u606f", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.3", "source_hash": "775fbce9796d2d265e9360556a2f75f04afce3bf8e6fde9097645080107c9a11", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [], "identity_text": "Add psql command \\conninfo to show current connection information (David Christensen)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/112", "db_id": "3774a25a783460b1afb8ae0865e6aed6", "patch_ids": [], "statement_hash": "a09c862463b55f460f40098179face65fad83d85902e468390f119f507387560", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-5a03a287a9542c30", "migration": false}, {"id": "9.1.0-31681b182fc997e7", "cves": [], "html": "<p>\u65b0\u589e <span>psql</span> \u547d\u4ee4 <code>\\sf</code>\uff0c\u7528\u4e8e\u663e\u793a\u51fd\u6570\u5b9a\u4e49\uff08Pavel Stehule\uff09</p>", "text": "\u65b0\u589e psql \u547d\u4ee4 \\sf\uff0c\u7528\u4e8e\u663e\u793a\u51fd\u6570\u5b9a\u4e49\uff08Pavel Stehule\uff09", "title": "\u65b0\u589e psql \u547d\u4ee4 \\sf\uff0c\u7528\u4e8e\u663e\u793a\u51fd\u6570\u5b9a\u4e49", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.3", "source_hash": "ebbb6a8cda976acbe866642c73f1a6202c3df2abbf3c7d982e613778a3303bb3", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [], "identity_text": "Add psql command \\sf to show a function's definition (Pavel Stehule)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/113", "db_id": "2cb185957f8feb1230616e9398c2e1df", "patch_ids": [], "statement_hash": "aff1c75b0966cf312e9302219af4fbfe6b1882ea917e3e94dd4913e0afe3bd21", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-31681b182fc997e7", "migration": false}, {"id": "9.1.0-94425699e553bdbd", "cves": [], "html": "<p>\u65b0\u589e <span>psql</span> \u547d\u4ee4 <code>\\dL</code>\uff0c\u7528\u4e8e\u5217\u51fa\u8bed\u8a00\uff08Fernando Ike\uff09</p>", "text": "\u65b0\u589e psql \u547d\u4ee4 \\dL\uff0c\u7528\u4e8e\u5217\u51fa\u8bed\u8a00\uff08Fernando Ike\uff09", "title": "\u65b0\u589e psql \u547d\u4ee4 \\dL\uff0c\u7528\u4e8e\u5217\u51fa\u8bed\u8a00", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.3", "source_hash": "7b243f49c02c1fadefdb90eaa03b11e2eb2cc9ab65d126c2768eccd0ad5bc8cd", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [], "identity_text": "Add psql command \\dL to list languages (Fernando Ike)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/114", "db_id": "3a2190e88b7b26d0eff19a4e2a3036a9", "patch_ids": [], "statement_hash": "db033048f1c83411f41d47e82df65d3d914886aa012e0be42826cfc2c4e86987", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-94425699e553bdbd", "migration": false}, {"id": "9.1.0-ae03be0b1a742257", "cves": [], "html": "<p>\u4e3a <span>psql</span> \u7684 <code>\\dn</code>\uff08\u5217\u51fa\u6a21\u5f0f\uff09\u547d\u4ee4\u65b0\u589e <code>S</code>\uff08<span>\u201c<span>system</span>\u201d</span>\uff09\u9009\u9879\uff08Tom Lane\uff09</p>\n<p>\u4e0d\u5e26 <code>S</code> \u7684 <code>\\dn</code> \u73b0\u5728\u4f1a\u9690\u85cf\u7cfb\u7edf\u6a21\u5f0f\u3002</p>", "text": "\u4e3a psql \u7684 \\dn\uff08\u5217\u51fa\u6a21\u5f0f\uff09\u547d\u4ee4\u65b0\u589e S\uff08\u201csystem\u201d\uff09\u9009\u9879\uff08Tom Lane\uff09 \u4e0d\u5e26 S \u7684 \\dn \u73b0\u5728\u4f1a\u9690\u85cf\u7cfb\u7edf\u6a21\u5f0f\u3002", "title": "\u4e3a psql \u7684 \\dn\uff08\u5217\u51fa\u6a21\u5f0f\uff09\u547d\u4ee4\u65b0\u589e S\uff08\u201csystem\u201d\uff09\u9009\u9879", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.3", "source_hash": "2a85675fd72b511ef72c18a6dc305591a95bf68fa3d4231debc91d8d3ad1b7a5", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [], "identity_text": "Add the S (system) option to psql's \\dn (list schemas) command (Tom Lane) \\dn without S now suppresses system schemas.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/115", "db_id": "ab98d33e31567c9a8b6f319e0900b500", "patch_ids": [], "statement_hash": "56a8209000f5228066fef2983c2cff7d853a4b2241355c03316afcce466cd28c", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-ae03be0b1a742257", "migration": false}, {"id": "9.1.0-57c615465e04059b", "cves": [], "html": "<p>\u5141\u8bb8 <span>psql</span> \u7684 <code>\\e</code> \u548c <code>\\ef</code> \u547d\u4ee4\u63a5\u53d7\u884c\u53f7\u4ee5\u5b9a\u4f4d\u7f16\u8f91\u5668\u4e2d\u7684\u5149\u6807\uff08Pavel Stehule\uff09</p>\n<p>\u8be5\u884c\u53f7\u6839\u636e <code>PSQL_EDITOR_LINENUMBER_ARG</code> \u73af\u5883\u53d8\u91cf\u4f20\u9012\u7ed9\u7f16\u8f91\u5668\u3002</p>", "text": "\u5141\u8bb8 psql \u7684 \\e \u548c \\ef \u547d\u4ee4\u63a5\u53d7\u884c\u53f7\u4ee5\u5b9a\u4f4d\u7f16\u8f91\u5668\u4e2d\u7684\u5149\u6807\uff08Pavel Stehule\uff09 \u8be5\u884c\u53f7\u6839\u636e PSQL_EDITOR_LINENUMBER_ARG \u73af\u5883\u53d8\u91cf\u4f20\u9012\u7ed9\u7f16\u8f91\u5668\u3002", "title": "\u5141\u8bb8 psql \u7684 \\e \u548c \\ef \u547d\u4ee4\u63a5\u53d7\u884c\u53f7\u4ee5\u5b9a\u4f4d\u7f16\u8f91\u5668\u4e2d\u7684\u5149\u6807", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.3", "source_hash": "a1ef474c71db9b5cdf576932dabec0d214289073a0ffacc4cae06d1f4f830f25", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [], "identity_text": "Allow psql's \\e and \\ef commands to accept a line number to be used to position the cursor in the editor (Pavel Stehule) This is passed to the editor according to the PSQL_EDITOR_LINENUMBER_ARG environment variable.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/116", "db_id": "195584707d3b0b913e5bbd1b16e7585b", "patch_ids": [], "statement_hash": "485b0c56069d806bd1e12114be64b4f16ff5e3c2c8441fb070aa1e8ee78aa635", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-57c615465e04059b", "migration": false}, {"id": "9.1.0-57c0cea433e45f1b", "cves": [], "html": "<p>\u8ba9 <span>psql</span> \u9ed8\u8ba4\u6839\u636e\u64cd\u4f5c\u7cfb\u7edf\u533a\u57df\u8bbe\u7f6e\u5ba2\u6237\u7aef\u7f16\u7801\uff08Heikki Linnakangas\uff09</p>\n<p>\u8fd9\u53ea\u5728\u672a\u8bbe\u7f6e <code>PGCLIENTENCODING</code> \u73af\u5883\u53d8\u91cf\u65f6\u53d1\u751f\u3002</p>", "text": "\u8ba9 psql \u9ed8\u8ba4\u6839\u636e\u64cd\u4f5c\u7cfb\u7edf\u533a\u57df\u8bbe\u7f6e\u5ba2\u6237\u7aef\u7f16\u7801\uff08Heikki Linnakangas\uff09 \u8fd9\u53ea\u5728\u672a\u8bbe\u7f6e PGCLIENTENCODING \u73af\u5883\u53d8\u91cf\u65f6\u53d1\u751f\u3002", "title": "\u8ba9 psql \u9ed8\u8ba4\u6839\u636e\u64cd\u4f5c\u7cfb\u7edf\u533a\u57df\u8bbe\u7f6e\u5ba2\u6237\u7aef\u7f16\u7801", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.3", "source_hash": "159b80e3ead5948e31dce5cf2bd59d7fc7970e10c52c58f3224a7629369ca636", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [], "identity_text": "Have psql set the client encoding from the operating system locale by default (Heikki Linnakangas) This only happens if the PGCLIENTENCODING environment variable is not set.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/117", "db_id": "ecca4bfa0b24a39967485a0cd874edb5", "patch_ids": [], "statement_hash": "f4199ca0986712c26a772acfc974b3108b0428554788640317f478e970529b9b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-57c0cea433e45f1b", "migration": false}, {"id": "9.1.0-fc07e13076de2e3d", "cves": [], "html": "<p>\u8ba9 <code>\\d</code> \u533a\u5206\u552f\u4e00\u7d22\u5f15\u548c\u552f\u4e00\u7ea6\u675f\uff08Josh Kupershmidt\uff09</p>", "text": "\u8ba9 \\d \u533a\u5206\u552f\u4e00\u7d22\u5f15\u548c\u552f\u4e00\u7ea6\u675f\uff08Josh Kupershmidt\uff09", "title": "\u8ba9 \\d \u533a\u5206\u552f\u4e00\u7d22\u5f15\u548c\u552f\u4e00\u7ea6\u675f", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.3", "source_hash": "c977eebc19f8e7d584232aab5a9086a3fdb865767b0dc6c8b2bc7e564443698d", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [], "identity_text": "Make \\d distinguish between unique indexes and unique constraints (Josh Kupershmidt)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/118", "db_id": "3bb9d8ccba0b4c57268a4a44c6f96604", "patch_ids": [], "statement_hash": "77f85dc255f52d40dd836609aa61e5d3afd2036bfa8ace0c3871c7a45095f743", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-fc07e13076de2e3d", "migration": false}, {"id": "9.1.0-829080102428edf4", "cves": [], "html": "<p>\u8ba9 <code>\\dt+</code> \u5728\u8fde\u63a5 9.0 \u6216\u66f4\u9ad8\u7248\u672c\u670d\u52a1\u5668\u65f6\u62a5\u544a <code>pg_table_size</code> \u800c\u4e0d\u662f <code>pg_relation_size</code>\uff08Bernd Helmle\uff09</p>\n<p>\u8fd9\u662f\u66f4\u6709\u7528\u7684\u8868\u5927\u5c0f\u5ea6\u91cf\uff0c\u4f46\u6ce8\u610f\u5b83\u4e0e\u6b64\u524d\u540c\u4e00\u663e\u793a\u4e2d\u62a5\u544a\u7684\u503c\u5e76\u4e0d\u76f8\u540c\u3002</p>", "text": "\u8ba9 \\dt+ \u5728\u8fde\u63a5 9.0 \u6216\u66f4\u9ad8\u7248\u672c\u670d\u52a1\u5668\u65f6\u62a5\u544a pg_table_size \u800c\u4e0d\u662f pg_relation_size\uff08Bernd Helmle\uff09 \u8fd9\u662f\u66f4\u6709\u7528\u7684\u8868\u5927\u5c0f\u5ea6\u91cf\uff0c\u4f46\u6ce8\u610f\u5b83\u4e0e\u6b64\u524d\u540c\u4e00\u663e\u793a\u4e2d\u62a5\u544a\u7684\u503c\u5e76\u4e0d\u76f8\u540c\u3002", "title": "\u8ba9 \\dt+ \u5728\u8fde\u63a5 9.0 \u6216\u66f4\u9ad8\u7248\u672c\u670d\u52a1\u5668\u65f6\u62a5\u544a pg_table_size \u800c\u4e0d\u662f pg_relation_size", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.3", "source_hash": "19360785d9bcad781ef52262cc03323bd017ccb9f3c310f351a9bad8dd1a67f6", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [], "identity_text": "Make \\dt+ report pg_table_size instead of pg_relation_size when talking to 9.0 or later servers (Bernd Helmle) This is a more useful measure of table size, but note that it is not identical to what was previously reported in the same display.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/119", "db_id": "b8338438f03158c61ed0ffdc30ce77b8", "patch_ids": [], "statement_hash": "58001e80c4bd23a23299c69543f340896da5bb35e6584f1eb5bfe7fb3adcac40", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-829080102428edf4", "migration": false}, {"id": "9.1.0-21dc14cb45e4f309", "cves": [], "html": "<p>\u66f4\u591a Tab \u8865\u5168\u652f\u6301\uff08Itagaki Takahiro\u3001Pavel Stehule\u3001Andrey Popp\u3001Christoph Berg\u3001David Fetter\u3001Josh Kupershmidt\uff09</p>", "text": "\u66f4\u591a Tab \u8865\u5168\u652f\u6301\uff08Itagaki Takahiro\u3001Pavel Stehule\u3001Andrey Popp\u3001Christoph Berg\u3001David Fetter\u3001Josh Kupershmidt\uff09", "title": "\u66f4\u591a Tab \u8865\u5168\u652f\u6301", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / psql", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.3", "source_hash": "e8a6a6d943df5c04a902db29406a84e13370cd7b0ef41225d9eb879a3159cc0f", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "psql"], "commit_groups": [], "identity_text": "Additional tab completion support (Itagaki Takahiro, Pavel Stehule, Andrey Popp, Christoph Berg, David Fetter, Josh Kupershmidt)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/120", "db_id": "a7a23a8092927dc7ed971e95718a92f6", "patch_ids": [], "statement_hash": "0ec2cb013b57ecacc8d9269c770280604b2bb9816372bf1447be79894d88dc28", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-21dc14cb45e4f309", "migration": false}, {"id": "9.1.0-fcbbd132ee2092fe", "cves": [], "html": "<p>\u4e3a<a href=\"/docs/9.1/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>\u548c<a href=\"/docs/9.1/app-pg-dumpall.html\" title=\"pg_dumpall\"><span>pg_dumpall</span></a>\u65b0\u589e\u9009\u9879 <code>--quote-all-identifiers</code>\uff0c\u5f3a\u5236\u4e3a\u6240\u6709\u6807\u8bc6\u7b26\u52a0\u5f15\u53f7\uff08Robert Haas\uff09</p>", "text": "\u4e3apg_dump\u548cpg_dumpall\u65b0\u589e\u9009\u9879 --quote-all-identifiers\uff0c\u5f3a\u5236\u4e3a\u6240\u6709\u6807\u8bc6\u7b26\u52a0\u5f15\u53f7\uff08Robert Haas\uff09", "title": "\u4e3apg_dump\u548cpg_dumpall\u65b0\u589e\u9009\u9879 --quote-all-identifiers\uff0c\u5f3a\u5236\u4e3a\u6240\u6709\u6807\u8bc6\u7b26\u52a0\u5f15\u53f7", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pg_dump", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.4", "source_hash": "09349ff8c0e7de427d57cf83723eccf7c80d8a1f2b187494f7df3cb80a5aa530", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pg_dump"], "commit_groups": [], "identity_text": "Add pg_dump and pg_dumpall option --quote-all-identifiers to force quoting of all identifiers (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/121", "db_id": "9a0698c927e5db56a472db7e79d6fa2c", "patch_ids": [], "statement_hash": "6f021f44f43f815fa4a7812d9353ec887a8a1ccd01b5e217acecab84d3dbda98", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-fcbbd132ee2092fe", "migration": false}, {"id": "9.1.0-4a346149bc90daae", "cves": [], "html": "<p>\u4e3a <span>pg_dump</span> \u65b0\u589e <code>directory</code> \u683c\u5f0f\uff08Joachim Wieland\u3001Heikki Linnakangas\uff09</p>\n<p>\u5b83\u5728\u5185\u90e8\u7c7b\u4f3c\u4e8e <span>pg_dump</span> \u7684 <code>tar</code> \u683c\u5f0f\u3002</p>", "text": "\u4e3a pg_dump \u65b0\u589e directory \u683c\u5f0f\uff08Joachim Wieland\u3001Heikki Linnakangas\uff09 \u5b83\u5728\u5185\u90e8\u7c7b\u4f3c\u4e8e pg_dump \u7684 tar \u683c\u5f0f\u3002", "title": "\u4e3a pg_dump \u65b0\u589e directory \u683c\u5f0f", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pg_dump", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.4", "source_hash": "bf7fbeab8c64f430e36945445027512a0dcec253f3e52124a02409a1a7addd50", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pg_dump"], "commit_groups": [], "identity_text": "Add directory format to pg_dump (Joachim Wieland, Heikki Linnakangas) This is internally similar to the tar pg_dump format.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/122", "db_id": "00a3557405e1d9bbdf46465415574192", "patch_ids": [], "statement_hash": "433d59b0ceec61fd3b21fcd9755b6dc942c0df8665efc3ee49e8f5a44bd957c2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-4a346149bc90daae", "migration": false}, {"id": "9.1.0-75d6c5b342e7ed2f", "cves": [], "html": "<p>\u4fee\u590d <span>pg_ctl</span>\uff0c\u4f7f\u5176\u4e0d\u518d\u9519\u8bef\u5730\u62a5\u544a\u670d\u52a1\u5668\u672a\u8fd0\u884c\uff08Bruce Momjian\uff09</p>\n<p>\u6b64\u524d\u5f53\u670d\u52a1\u5668\u5728\u8fd0\u884c\u4f46 <span>pg_ctl</span> \u65e0\u6cd5\u8ba4\u8bc1\u65f6\u53ef\u80fd\u53d1\u751f\u8fd9\u79cd\u60c5\u51b5\u3002</p>", "text": "\u4fee\u590d pg_ctl\uff0c\u4f7f\u5176\u4e0d\u518d\u9519\u8bef\u5730\u62a5\u544a\u670d\u52a1\u5668\u672a\u8fd0\u884c\uff08Bruce Momjian\uff09 \u6b64\u524d\u5f53\u670d\u52a1\u5668\u5728\u8fd0\u884c\u4f46 pg_ctl \u65e0\u6cd5\u8ba4\u8bc1\u65f6\u53ef\u80fd\u53d1\u751f\u8fd9\u79cd\u60c5\u51b5\u3002", "title": "\u4fee\u590d pg_ctl\uff0c\u4f7f\u5176\u4e0d\u518d\u9519\u8bef\u5730\u62a5\u544a\u670d\u52a1\u5668\u672a\u8fd0\u884c", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pg_ctl", "category": "bugfix", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.5", "source_hash": "480c0f73233cb696f4c402fb27bfe9fb0ec28fa53e495f9325acc841c21617e5", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pg_ctl"], "commit_groups": [], "identity_text": "Fix pg_ctl so it no longer incorrectly reports that the server is not running (Bruce Momjian) Previously this could happen if the server was running but pg_ctl could not authenticate.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/123", "db_id": "07c1f78ed3c055584fe760f448bd938e", "patch_ids": [], "statement_hash": "edf763aebf173d1acfac942d8b1875e71673cea0c64a72063eecee362c715592", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=9.1.0#9.1.0-75d6c5b342e7ed2f", "migration": false}, {"id": "9.1.0-38daddc118dbfe84", "cves": [], "html": "<p>\u6539\u8fdb <span>pg_ctl</span> start \u7684<span>\u201c<span>\u7b49\u5f85</span>\u201d</span>\uff08<code>-w</code>\uff09\u9009\u9879\uff08Bruce Momjian\u3001Tom Lane\uff09</p>\n<p>\u7b49\u5f85\u6a21\u5f0f\u73b0\u5728\u660e\u663e\u66f4\u5065\u58ee\u3002\u5b83\u4e0d\u4f1a\u56e0\u975e\u9ed8\u8ba4\u7684 postmaster \u7aef\u53e3\u53f7\u3001\u975e\u9ed8\u8ba4\u7684 Unix \u57df\u5957\u63a5\u5b57\u4f4d\u7f6e\u3001\u6743\u9650\u95ee\u9898\u6216\u8fc7\u671f\u7684 postmaster \u9501\u6587\u4ef6\u800c\u56f0\u60d1\u3002</p>", "text": "\u6539\u8fdb pg_ctl start \u7684\u201c\u7b49\u5f85\u201d\uff08-w\uff09\u9009\u9879\uff08Bruce Momjian\u3001Tom Lane\uff09 \u7b49\u5f85\u6a21\u5f0f\u73b0\u5728\u660e\u663e\u66f4\u5065\u58ee\u3002\u5b83\u4e0d\u4f1a\u56e0\u975e\u9ed8\u8ba4\u7684 postmaster \u7aef\u53e3\u53f7\u3001\u975e\u9ed8\u8ba4\u7684 Unix \u57df\u5957\u63a5\u5b57\u4f4d\u7f6e\u3001\u6743\u9650\u95ee\u9898\u6216\u8fc7\u671f\u7684 postmaster \u9501\u6587\u4ef6\u800c\u56f0\u60d1\u3002", "title": "\u6539\u8fdb pg_ctl start \u7684\u201c\u7b49\u5f85\u201d\uff08-w\uff09\u9009\u9879", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pg_ctl", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.5", "source_hash": "5e936f6fd6d17bfbbbfe50957b2dab1010e67bbec5720d8892e9175201aa994f", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pg_ctl"], "commit_groups": [], "identity_text": "Improve pg_ctl start's wait (-w) option (Bruce Momjian, Tom Lane) The wait mode is now significantly more robust. It will not get confused by non-default postmaster port numbers, non-default Unix-domain socket locations, permission problems, or stale postmaster lock files.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/124", "db_id": "976797f44eaa39c02dbd1295603a830e", "patch_ids": [], "statement_hash": "7f4b7ade95bcbf175b21f18eb72a1e0be27feffc0d495224e259b19d72ba7354", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-38daddc118dbfe84", "migration": false}, {"id": "9.1.0-6ec743326f040b8a", "cves": [], "html": "<p>\u4e3a <span>pg_ctl</span> \u65b0\u589e <code>promote</code> \u9009\u9879\uff0c\u7528\u4e8e\u628a\u5907\u5e93\u5207\u6362\u4e3a\u4e3b\u5e93\uff08Fujii Masao\uff09</p>", "text": "\u4e3a pg_ctl \u65b0\u589e promote \u9009\u9879\uff0c\u7528\u4e8e\u628a\u5907\u5e93\u5207\u6362\u4e3a\u4e3b\u5e93\uff08Fujii Masao\uff09", "title": "\u4e3a pg_ctl \u65b0\u589e promote \u9009\u9879\uff0c\u7528\u4e8e\u628a\u5907\u5e93\u5207\u6362\u4e3a\u4e3b\u5e93", "commits": [], "section": "\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f / pg_ctl", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.11.5", "source_hash": "84d13efb1a4b62f660013775047f3423f24c1a317bce93c3a1b6a065ce1f3048", "section_path": ["\u5ba2\u6237\u7aef\u5e94\u7528\u7a0b\u5e8f", "pg_ctl"], "commit_groups": [], "identity_text": "Add promote option to pg_ctl to switch a standby server to primary (Fujii Masao)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/125", "db_id": "0c89aae9460e7ecb7bcedd4a3aad5935", "patch_ids": [], "statement_hash": "cee33d50958b625ff92801c8c0be12d9711a33ccdab636068c8b3452180d1889", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-6ec743326f040b8a", "migration": false}, {"id": "9.1.0-b32ae7e7fe561368", "cves": [], "html": "<p>\u65b0\u589e libpq \u8fde\u63a5\u9009\u9879 <a href=\"/docs/9.1/libpq.html#LIBPQ-CONNECT-CLIENT-ENCODING\"><code>client_encoding</code></a>\uff0c\u5176\u884c\u4e3a\u7c7b\u4f3c\u4e8e <code>PGCLIENTENCODING</code> \u73af\u5883\u53d8\u91cf\uff08Heikki Linnakangas\uff09</p>\n<p>\u503c <code>auto</code> \u6839\u636e\u64cd\u4f5c\u7cfb\u7edf\u533a\u57df\u8bbe\u7f6e\u5ba2\u6237\u7aef\u7f16\u7801\u3002</p>", "text": "\u65b0\u589e libpq \u8fde\u63a5\u9009\u9879 client_encoding\uff0c\u5176\u884c\u4e3a\u7c7b\u4f3c\u4e8e PGCLIENTENCODING \u73af\u5883\u53d8\u91cf\uff08Heikki Linnakangas\uff09 \u503c auto \u6839\u636e\u64cd\u4f5c\u7cfb\u7edf\u533a\u57df\u8bbe\u7f6e\u5ba2\u6237\u7aef\u7f16\u7801\u3002", "title": "\u65b0\u589e libpq \u8fde\u63a5\u9009\u9879 client_encoding\uff0c\u5176\u884c\u4e3a\u7c7b\u4f3c\u4e8e PGCLIENTENCODING \u73af\u5883\u53d8\u91cf", "commits": [], "section": "Development Tools / libpq", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.12.2", "source_hash": "755bb5f13aa228e3bae1ee60e2916ce567fa3a7ffc9801afdfcde11c19fc5dea", "section_path": ["Development Tools", "libpq"], "commit_groups": [], "identity_text": "Add a libpq connection option client_encoding which behaves like the PGCLIENTENCODING environment variable (Heikki Linnakangas) The value auto sets the client encoding based on the operating system locale.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/126", "db_id": "cbc7d96972a182cc875740851e97f7ac", "patch_ids": [], "statement_hash": "ed07e8e703d4ec6f905b05d8eb9b3511af8932691845401797b00e46e00ac2be", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-b32ae7e7fe561368", "migration": false}, {"id": "9.1.0-68b454b8026839b3", "cves": [], "html": "<p>\u65b0\u589e\u51fd\u6570 <a href=\"/docs/9.1/libpq-misc.html#LIBPQ-PQLIBVERSION\"><code>PQlibVersion()</code></a>\uff0c\u8fd4\u56de libpq \u5e93\u7248\u672c\uff08Magnus Hagander\uff09</p>\n<p>libpq \u6b64\u524d\u5df2\u6709\u8fd4\u56de\u670d\u52a1\u5668\u7248\u672c\u7684 <code>PQserverVersion()</code>\u3002</p>", "text": "\u65b0\u589e\u51fd\u6570 PQlibVersion()\uff0c\u8fd4\u56de libpq \u5e93\u7248\u672c\uff08Magnus Hagander\uff09 libpq \u6b64\u524d\u5df2\u6709\u8fd4\u56de\u670d\u52a1\u5668\u7248\u672c\u7684 PQserverVersion()\u3002", "title": "\u65b0\u589e\u51fd\u6570 PQlibVersion()\uff0c\u8fd4\u56de libpq \u5e93\u7248\u672c", "commits": [], "section": "Development Tools / libpq", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.12.2", "source_hash": "7023fc3330c039df36089da49f8ce3702607b10a89849344b40324d0c288784d", "section_path": ["Development Tools", "libpq"], "commit_groups": [], "identity_text": "Add PQlibVersion() function which returns the libpq library version (Magnus Hagander) libpq already had PQserverVersion() which returns the server version.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/127", "db_id": "a4525312867a9fe90a9e69e44928339a", "patch_ids": [], "statement_hash": "be84df203837d0144c2a377869531e52c9922a26e86fc3b6be4e5b557418ded2", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-68b454b8026839b3", "migration": false}, {"id": "9.1.0-02c1c7b830750cbb", "cves": [], "html": "<p>\u5141\u8bb8\u4f7f\u7528 libpq \u7684\u5ba2\u6237\u7aef\u5728\u901a\u8fc7 Unix \u57df\u5957\u63a5\u5b57\u8fde\u63a5\u65f6\u68c0\u67e5\u670d\u52a1\u5668\u8fdb\u7a0b\u7684\u7528\u6237\u540d\uff0c\u4f7f\u7528\u65b0\u7684 <a href=\"/docs/9.1/libpq.html#LIBPQ-CONNECT-REQUIREPEER\"><code>requirepeer</code></a> \u8fde\u63a5\u9009\u9879\uff08Peter Eisentraut\uff09</p>\n<p><span>PostgreSQL</span> \u6b64\u524d\u5df2\u5141\u8bb8\u670d\u52a1\u5668\u5728\u901a\u8fc7 Unix \u57df\u5957\u63a5\u5b57\u8fde\u63a5\u65f6\u68c0\u67e5\u5ba2\u6237\u7aef\u7528\u6237\u540d\u3002</p>", "text": "\u5141\u8bb8\u4f7f\u7528 libpq \u7684\u5ba2\u6237\u7aef\u5728\u901a\u8fc7 Unix \u57df\u5957\u63a5\u5b57\u8fde\u63a5\u65f6\u68c0\u67e5\u670d\u52a1\u5668\u8fdb\u7a0b\u7684\u7528\u6237\u540d\uff0c\u4f7f\u7528\u65b0\u7684 requirepeer \u8fde\u63a5\u9009\u9879\uff08Peter Eisentraut\uff09 PostgreSQL \u6b64\u524d\u5df2\u5141\u8bb8\u670d\u52a1\u5668\u5728\u901a\u8fc7 Unix \u57df\u5957\u63a5\u5b57\u8fde\u63a5\u65f6\u68c0\u67e5\u5ba2\u6237\u7aef\u7528\u6237\u540d\u3002", "title": "\u5141\u8bb8\u4f7f\u7528 libpq \u7684\u5ba2\u6237\u7aef\u5728\u901a\u8fc7 Unix \u57df\u5957\u63a5\u5b57\u8fde\u63a5\u65f6\u68c0\u67e5\u670d\u52a1\u5668\u8fdb\u7a0b\u7684\u7528\u6237\u540d\uff0c\u4f7f\u7528\u65b0\u7684 requirepeer \u8fde\u63a5\u9009\u9879", "commits": [], "section": "Development Tools / libpq", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.12.2", "source_hash": "29e5bb7fd41c4edaebc5845871d471e23bbdcf1ccac54929692de7064c8ec5ba", "section_path": ["Development Tools", "libpq"], "commit_groups": [], "identity_text": "Allow libpq-using clients to check the user name of the server process when connecting via Unix-domain sockets, with the new requirepeer connection option (Peter Eisentraut) PostgreSQL already allowed servers to check the client user name when connecting via Unix-domain sockets.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/128", "db_id": "48d5728d20fa3d236742b65e22c2b91e", "patch_ids": [], "statement_hash": "ac8901e11203f09fe1acba97c0d5e7223dcf9d276ee8a4298a68b9333a40b5c5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-02c1c7b830750cbb", "migration": false}, {"id": "9.1.0-c42c22a81a81e1ff", "cves": [], "html": "<p>\u4e3a libpq \u65b0\u589e <a href=\"/docs/9.1/libpq.html#LIBPQ-PQPING\"><code>PQping()</code></a> \u548c <a href=\"/docs/9.1/libpq.html#LIBPQ-PQPINGPARAMS\"><code>PQpingParams()</code></a>\uff08Bruce Momjian\u3001Tom Lane\uff09</p>\n<p>\u8fd9\u4e9b\u51fd\u6570\u5141\u8bb8\u5728\u4e0d\u5c1d\u8bd5\u6253\u5f00\u65b0\u4f1a\u8bdd\u7684\u60c5\u51b5\u4e0b\u68c0\u6d4b\u670d\u52a1\u5668\u72b6\u6001\u3002</p>", "text": "\u4e3a libpq \u65b0\u589e PQping() \u548c PQpingParams()\uff08Bruce Momjian\u3001Tom Lane\uff09 \u8fd9\u4e9b\u51fd\u6570\u5141\u8bb8\u5728\u4e0d\u5c1d\u8bd5\u6253\u5f00\u65b0\u4f1a\u8bdd\u7684\u60c5\u51b5\u4e0b\u68c0\u6d4b\u670d\u52a1\u5668\u72b6\u6001\u3002", "title": "\u4e3a libpq \u65b0\u589e PQping() \u548c PQpingParams()", "commits": [], "section": "Development Tools / libpq", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.12.2", "source_hash": "5667eff5794ad0a879fdcf46a01f85eb06692e9ccd43fff2c049d2d5b41017b2", "section_path": ["Development Tools", "libpq"], "commit_groups": [], "identity_text": "Add PQping() and PQpingParams() to libpq (Bruce Momjian, Tom Lane) These functions allow detection of the server's status without trying to open a new session.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/129", "db_id": "ab344a5afb2feb2f48772759b1d07739", "patch_ids": [], "statement_hash": "09bc678360b3d1699a5620d8d9953ea3448acca39a41f8acb3c52d08d59da08a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-c42c22a81a81e1ff", "migration": false}, {"id": "9.1.0-92ee5f70c743f8c6", "cves": [], "html": "<p>\u5141\u8bb8 ECPG \u5373\u4f7f\u5728 <code>WHERE CURRENT OF</code> \u5b50\u53e5\u4e2d\u4e5f\u63a5\u53d7\u52a8\u6001\u6e38\u6807\u540d\uff08Zoltan Boszormenyi\uff09</p>", "text": "\u5141\u8bb8 ECPG \u5373\u4f7f\u5728 WHERE CURRENT OF \u5b50\u53e5\u4e2d\u4e5f\u63a5\u53d7\u52a8\u6001\u6e38\u6807\u540d\uff08Zoltan Boszormenyi\uff09", "title": "\u5141\u8bb8 ECPG \u5373\u4f7f\u5728 WHERE CURRENT OF \u5b50\u53e5\u4e2d\u4e5f\u63a5\u53d7\u52a8\u6001\u6e38\u6807\u540d", "commits": [], "section": "Development Tools / ECPG", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.12.3", "source_hash": "1c746fa272c4e49abec3f4d2e4c4dcbd3dcc449e674e5a89f19fbedb50f414cf", "section_path": ["Development Tools", "ECPG"], "commit_groups": [], "identity_text": "Allow ECPG to accept dynamic cursor names even in WHERE CURRENT OF clauses (Zoltan Boszormenyi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/130", "db_id": "0a8c38feeb1a6aef53957985aa83215e", "patch_ids": [], "statement_hash": "b13f10fbedaa34aa33bdf677edb1817c0dd2e01c94abf20da351648b98c6ccb9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-92ee5f70c743f8c6", "migration": false}, {"id": "9.1.0-60c2b323b37fa515", "cves": [], "html": "<p>\u8ba9 <span>ecpglib</span> \u4ee5 15 \u4f4d\u7cbe\u5ea6\u5199 <code>double</code> \u503c\uff0c\u800c\u4e0d\u662f\u6b64\u524d\u7684 14 \u4f4d\uff08Akira Kurosawa\uff09</p>", "text": "\u8ba9 ecpglib \u4ee5 15 \u4f4d\u7cbe\u5ea6\u5199 double \u503c\uff0c\u800c\u4e0d\u662f\u6b64\u524d\u7684 14 \u4f4d\uff08Akira Kurosawa\uff09", "title": "\u8ba9 ecpglib \u4ee5 15 \u4f4d\u7cbe\u5ea6\u5199 double \u503c\uff0c\u800c\u4e0d\u662f\u6b64\u524d\u7684 14 \u4f4d", "commits": [], "section": "Development Tools / ECPG", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.12.3", "source_hash": "8cbc39c7094761dd1b3a8b53f47ee767373324aee7efef695ae5d40347db17a9", "section_path": ["Development Tools", "ECPG"], "commit_groups": [], "identity_text": "Make ecpglib write double values with a precision of 15 digits, not 14 as formerly (Akira Kurosawa)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/131", "db_id": "a756f2f7e22bad18b34b0100652a98aa", "patch_ids": [], "statement_hash": "61ecbd190aefb5327060fbc465d1dd2111ae5186abb3fdc6777381d2ea54c3d0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-60c2b323b37fa515", "migration": false}, {"id": "9.1.0-b9d9bdf7669d5353", "cves": [], "html": "<p>\u5bf9\u63a5\u53d7\u5b83\u7684 HP-UX C \u7f16\u8bd1\u5668\u4f7f\u7528 <code>+Olibmerrno</code> \u7f16\u8bd1\u6807\u5fd7\uff08Ibrar Ahmed\uff09</p>\n<p>\u8fd9\u907f\u514d\u4e86\u8f83\u65b0 HP \u5e73\u53f0\u4e0a\u6570\u5b66\u5e93\u8c03\u7528\u53ef\u80fd\u7684\u4e0d\u5f53\u884c\u4e3a\u3002</p>", "text": "\u5bf9\u63a5\u53d7\u5b83\u7684 HP-UX C \u7f16\u8bd1\u5668\u4f7f\u7528 +Olibmerrno \u7f16\u8bd1\u6807\u5fd7\uff08Ibrar Ahmed\uff09 \u8fd9\u907f\u514d\u4e86\u8f83\u65b0 HP \u5e73\u53f0\u4e0a\u6570\u5b66\u5e93\u8c03\u7528\u53ef\u80fd\u7684\u4e0d\u5f53\u884c\u4e3a\u3002", "title": "\u5bf9\u63a5\u53d7\u5b83\u7684 HP-UX C \u7f16\u8bd1\u5668\u4f7f\u7528 +Olibmerrno \u7f16\u8bd1\u6807\u5fd7", "commits": [], "section": "\u6784\u5efa\u9009\u9879", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.13", "source_hash": "12d36ab7bcbbc8ba9e70b5ef04820c971d5da0e1a459b06b5312c16cf3dce311", "section_path": ["\u6784\u5efa\u9009\u9879"], "commit_groups": [], "identity_text": "Use +Olibmerrno compile flag with HP-UX C compilers that accept it (Ibrar Ahmed) This avoids possible misbehavior of math library calls on recent HP platforms.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/132", "db_id": "23544ae7cf22eef4a4cf8e8c95c93fae", "patch_ids": [], "statement_hash": "693ad5c796bfbf915b88068f78d795dbf78e51912cdd08d0285ef2613f0dc1dd", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-b9d9bdf7669d5353", "migration": false}, {"id": "9.1.0-a4f282ace9e10eda", "cves": [], "html": "<p>\u6539\u8fdb\u7684\u5e76\u884c make \u652f\u6301\uff08Peter Eisentraut\uff09</p>\n<p>\u8fd9\u4f7f\u7f16\u8bd1\u66f4\u5feb\u3002\u6b64\u5916\uff0c<code>make -k</code> \u73b0\u5728\u5de5\u4f5c\u5f97\u66f4\u4e00\u81f4\u3002</p>", "text": "\u6539\u8fdb\u7684\u5e76\u884c make \u652f\u6301\uff08Peter Eisentraut\uff09 \u8fd9\u4f7f\u7f16\u8bd1\u66f4\u5feb\u3002\u6b64\u5916\uff0cmake -k \u73b0\u5728\u5de5\u4f5c\u5f97\u66f4\u4e00\u81f4\u3002", "title": "\u6539\u8fdb\u7684\u5e76\u884c make \u652f\u6301", "commits": [], "section": "\u6784\u5efa\u9009\u9879 / Makefile", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.13.3", "source_hash": "e8e37cb21401fdfc9c58e80fcb8f14041f85f580e540fd5cf9695eb4a3365966", "section_path": ["\u6784\u5efa\u9009\u9879", "Makefile"], "commit_groups": [], "identity_text": "Improved parallel make support (Peter Eisentraut) This allows for faster compiles. Also, make -k now works more consistently.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/133", "db_id": "79b51d5ad81b6c511a38646c44bde07d", "patch_ids": [], "statement_hash": "d6c989f87fb7940683c836de8a83e3837c7e15dd06131550f3761217471ac005", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-a4f282ace9e10eda", "migration": false}, {"id": "9.1.0-125e6bc8c8806efd", "cves": [], "html": "<p>\u8981\u6c42 <acronym>GNU</acronym> <a href=\"/docs/9.1/install-requirements.html\" title=\"15.2.\u00a0\u9700\u6c42\"><span>make</span></a> 3.80 \u6216\u66f4\u65b0\u7248\u672c\uff08Peter Eisentraut\uff09</p>\n<p>\u7531\u4e8e\u5e76\u884c make \u7684\u6539\u8fdb\uff0c\u8fd9\u662f\u5fc5\u8981\u7684\u3002</p>", "text": "\u8981\u6c42 GNU make 3.80 \u6216\u66f4\u65b0\u7248\u672c\uff08Peter Eisentraut\uff09 \u7531\u4e8e\u5e76\u884c make \u7684\u6539\u8fdb\uff0c\u8fd9\u662f\u5fc5\u8981\u7684\u3002", "title": "\u8981\u6c42 GNU make 3.80 \u6216\u66f4\u65b0\u7248\u672c", "commits": [], "section": "\u6784\u5efa\u9009\u9879 / Makefile", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.13.3", "source_hash": "78de2b2b9b4b160d51b1fb4457bbcafdc9abe70ebf35e2a59a25880e42624ed1", "section_path": ["\u6784\u5efa\u9009\u9879", "Makefile"], "commit_groups": [], "identity_text": "Require GNU make 3.80 or newer (Peter Eisentraut) This is necessary because of the parallel-make improvements.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/134", "db_id": "1d919f3d25092be0f0f8741425f00d66", "patch_ids": [], "statement_hash": "75c9a1a0ebfecb7aebe9f5b10677907b993f4cd413a818ab8673a07f713f9be1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-125e6bc8c8806efd", "migration": false}, {"id": "9.1.0-8ca3a8b46970a8fa", "cves": [], "html": "<p>\u65b0\u589e <code>make maintainer-check</code> \u76ee\u6807\uff08Peter Eisentraut\uff09</p>\n<p>\u8be5\u76ee\u6807\u6267\u884c\u5404\u79cd\u65e2\u4e0d\u9002\u5408\u6784\u5efa\u4e5f\u4e0d\u9002\u5408\u56de\u5f52\u6d4b\u8bd5\u7684\u6e90\u4ee3\u7801\u68c0\u67e5\u3002\u76ee\u524d\u5305\u62ec\uff1aduplicate_oids\u3001SGML \u8bed\u6cd5\u548c\u5236\u8868\u7b26\u68c0\u67e5\u3001NLS \u8bed\u6cd5\u68c0\u67e5\u3002</p>", "text": "\u65b0\u589e make maintainer-check \u76ee\u6807\uff08Peter Eisentraut\uff09 \u8be5\u76ee\u6807\u6267\u884c\u5404\u79cd\u65e2\u4e0d\u9002\u5408\u6784\u5efa\u4e5f\u4e0d\u9002\u5408\u56de\u5f52\u6d4b\u8bd5\u7684\u6e90\u4ee3\u7801\u68c0\u67e5\u3002\u76ee\u524d\u5305\u62ec\uff1aduplicate_oids\u3001SGML \u8bed\u6cd5\u548c\u5236\u8868\u7b26\u68c0\u67e5\u3001NLS \u8bed\u6cd5\u68c0\u67e5\u3002", "title": "\u65b0\u589e make maintainer-check \u76ee\u6807", "commits": [], "section": "\u6784\u5efa\u9009\u9879 / Makefile", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.13.3", "source_hash": "b10a3e7ede1f6b39e69308562e64158d8bfa441483a0f9d987125bbb4e354241", "section_path": ["\u6784\u5efa\u9009\u9879", "Makefile"], "commit_groups": [], "identity_text": "Add make maintainer-check target (Peter Eisentraut) This target performs various source code checks that are not appropriate for either the build or the regression tests. Currently: duplicate_oids, SGML syntax and tabs check, NLS syntax check.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/135", "db_id": "a68b8ef27be32de12eaf00b40642a61a", "patch_ids": [], "statement_hash": "9d9fbaaeec3c0750113f3872e112cc73a119ea6b3059666af29726cee4a6f665", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-8ca3a8b46970a8fa", "migration": false}, {"id": "9.1.0-2d97f3e20a7634bf", "cves": [], "html": "<p>\u5728 <code>contrib</code> \u4e2d\u652f\u6301 <code>make check</code>\uff08Peter Eisentraut\uff09</p>\n<p>\u6b64\u524d\u53ea\u6709 <code>make installcheck</code> \u53ef\u7528\uff0c\u4f46\u73b0\u5728\u652f\u6301\u5728\u4e34\u65f6\u5b89\u88c5\u4e2d\u6d4b\u8bd5\u3002\u9876\u5c42\u7684 <code>make check-world</code> \u76ee\u6807\u73b0\u5728\u5305\u62ec\u4ee5\u8fd9\u79cd\u65b9\u5f0f\u6d4b\u8bd5 <code>contrib</code>\u3002</p>", "text": "\u5728 contrib \u4e2d\u652f\u6301 make check\uff08Peter Eisentraut\uff09 \u6b64\u524d\u53ea\u6709 make installcheck \u53ef\u7528\uff0c\u4f46\u73b0\u5728\u652f\u6301\u5728\u4e34\u65f6\u5b89\u88c5\u4e2d\u6d4b\u8bd5\u3002\u9876\u5c42\u7684 make check-world \u76ee\u6807\u73b0\u5728\u5305\u62ec\u4ee5\u8fd9\u79cd\u65b9\u5f0f\u6d4b\u8bd5 contrib\u3002", "title": "\u5728 contrib \u4e2d\u652f\u6301 make check", "commits": [], "section": "\u6784\u5efa\u9009\u9879 / Makefile", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.13.3", "source_hash": "88e03d1babd2b7cbaddc36e8b3e41163ff56f9b193e06b5f276147f71681d232", "section_path": ["\u6784\u5efa\u9009\u9879", "Makefile"], "commit_groups": [], "identity_text": "Support make check in contrib (Peter Eisentraut) Formerly only make installcheck worked, but now there is support for testing in a temporary installation. The top-level make check-world target now includes testing contrib this way.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/136", "db_id": "c77a4126229b2d6458ed6546728fbd43", "patch_ids": [], "statement_hash": "067cf68f7583b3899588ff284ed60e1f5b0877202050b0c77ddc6c35ca9157ee", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-2d97f3e20a7634bf", "migration": false}, {"id": "9.1.0-3b39e7fdbf7f7e1f", "cves": [], "html": "<p>\u5728 Windows \u4e0a\uff0c\u5141\u8bb8<a href=\"/docs/9.1/app-pg-ctl.html\" title=\"pg_ctl\"><span>pg_ctl</span></a>\u628a\u670d\u52a1\u6ce8\u518c\u4e3a\u81ea\u52a8\u542f\u52a8\u6216\u6309\u9700\u542f\u52a8\uff08Quan Zongliang\uff09</p>", "text": "\u5728 Windows \u4e0a\uff0c\u5141\u8bb8pg_ctl\u628a\u670d\u52a1\u6ce8\u518c\u4e3a\u81ea\u52a8\u542f\u52a8\u6216\u6309\u9700\u542f\u52a8\uff08Quan Zongliang\uff09", "title": "\u5728 Windows \u4e0a\uff0c\u5141\u8bb8pg_ctl\u628a\u670d\u52a1\u6ce8\u518c\u4e3a\u81ea\u52a8\u542f\u52a8\u6216\u6309\u9700\u542f\u52a8", "commits": [], "section": "\u6784\u5efa\u9009\u9879 / Windows", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.13.4", "source_hash": "f3a75ae79d122fc35035dd2e8eaf8ee348e814f9d406655dcdfb965912747130", "section_path": ["\u6784\u5efa\u9009\u9879", "Windows"], "commit_groups": [], "identity_text": "On Windows, allow pg_ctl to register the service as auto-start or start-on-demand (Quan Zongliang)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/137", "db_id": "3d5d42bfccee5b9263b95d56f6a30139", "patch_ids": [], "statement_hash": "7f3ea2850abeeb36e9ac63b3d8a91b41daf6f0e6cb4627cb586c47b2e8b0e9ad", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-3b39e7fdbf7f7e1f", "migration": false}, {"id": "9.1.0-908994ab32ae15fd", "cves": [], "html": "<p>\u65b0\u589e\u5728 Windows \u4e0a\u6536\u96c6<a href=\"/docs/9.1/installation-platform-notes.html#WINDOWS-CRASH-DUMPS\" title=\"15.7.5.1.\u00a0\u5728 Windows \u4e0a\u6536\u96c6\u5d29\u6e83\u8f6c\u50a8\">\u5d29\u6e83\u8f6c\u50a8</a>\u7684\u652f\u6301\uff08Craig Ringer\u3001Magnus Hagander\uff09</p>\n<p>\u73b0\u5728\u53ef\u4ee5\u7531\u975e\u8c03\u8bd5\u7684 Windows \u4e8c\u8fdb\u5236\u751f\u6210 <span>minidumps</span>\uff0c\u5e76\u7528\u6807\u51c6\u8c03\u8bd5\u5de5\u5177\u5206\u6790\u3002</p>", "text": "\u65b0\u589e\u5728 Windows \u4e0a\u6536\u96c6\u5d29\u6e83\u8f6c\u50a8\u7684\u652f\u6301\uff08Craig Ringer\u3001Magnus Hagander\uff09 \u73b0\u5728\u53ef\u4ee5\u7531\u975e\u8c03\u8bd5\u7684 Windows \u4e8c\u8fdb\u5236\u751f\u6210 minidumps\uff0c\u5e76\u7528\u6807\u51c6\u8c03\u8bd5\u5de5\u5177\u5206\u6790\u3002", "title": "\u65b0\u589e\u5728 Windows \u4e0a\u6536\u96c6\u5d29\u6e83\u8f6c\u50a8\u7684\u652f\u6301", "commits": [], "section": "\u6784\u5efa\u9009\u9879 / Windows", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.13.4", "source_hash": "97d483e39c2a228c25e83753219e359686bebb9cae2d4862be5b77a877f00250", "section_path": ["\u6784\u5efa\u9009\u9879", "Windows"], "commit_groups": [], "identity_text": "Add support for collecting crash dumps on Windows (Craig Ringer, Magnus Hagander) minidumps can now be generated by non-debug Windows binaries and analyzed by standard debugging tools.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/138", "db_id": "97159fbf049ff91b3047805c7fe67b57", "patch_ids": [], "statement_hash": "2355c0cfd404af7c6b09c5a553887d5f2752b5684d10310fd19c3cd2d341b0c5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-908994ab32ae15fd", "migration": false}, {"id": "9.1.0-1297c57fe6b30d8a", "cves": [], "html": "<p>\u652f\u6301\u4f7f\u7528 MinGW64 \u7f16\u8bd1\u5668\u6784\u5efa\uff08Andrew Dunstan\uff09</p>\n<p>\u8fd9\u5141\u8bb8\u901a\u8fc7\u4ea4\u53c9\u7f16\u8bd1\u5373\u4f7f\u5728\u975e Windows \u5e73\u53f0\u4e0a\u4e5f\u80fd\u6784\u5efa 64 \u4f4d Windows \u4e8c\u8fdb\u5236\u3002</p>", "text": "\u652f\u6301\u4f7f\u7528 MinGW64 \u7f16\u8bd1\u5668\u6784\u5efa\uff08Andrew Dunstan\uff09 \u8fd9\u5141\u8bb8\u901a\u8fc7\u4ea4\u53c9\u7f16\u8bd1\u5373\u4f7f\u5728\u975e Windows \u5e73\u53f0\u4e0a\u4e5f\u80fd\u6784\u5efa 64 \u4f4d Windows \u4e8c\u8fdb\u5236\u3002", "title": "\u652f\u6301\u4f7f\u7528 MinGW64 \u7f16\u8bd1\u5668\u6784\u5efa", "commits": [], "section": "\u6784\u5efa\u9009\u9879 / Windows", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.13.4", "source_hash": "07ea3e20a5aceef8425aec0bc691da2aa8b5c196c3aea046a02bbc613c3ed872", "section_path": ["\u6784\u5efa\u9009\u9879", "Windows"], "commit_groups": [], "identity_text": "Enable building with the MinGW64 compiler (Andrew Dunstan) This allows building 64-bit Windows binaries even on non-Windows platforms via cross-compiling.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/139", "db_id": "a408e70a99c9791596bd9e467425a301", "patch_ids": [], "statement_hash": "7abc28131973e11c63fe3e5d42f029aa346710e805a82109f061e75feb543816", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-1297c57fe6b30d8a", "migration": false}, {"id": "9.1.0-3834cf21f924dfd7", "cves": [], "html": "<p>\u4fee\u8ba2 GUC \u53d8\u91cf\u8d4b\u503c\u94a9\u5b50\u7684 API\uff08Tom Lane\uff09</p>\n<p>\u6b64\u524d\u8d4b\u503c\u94a9\u5b50\u7684\u804c\u80fd\u73b0\u5728\u62c6\u5206\u5230\u68c0\u67e5\u94a9\u5b50\u548c\u8d4b\u503c\u94a9\u5b50\u4e4b\u95f4\uff0c\u524d\u8005\u53ef\u4ee5\u5931\u8d25\u800c\u540e\u8005\u4e0d\u5e94\u5931\u8d25\u3002\u6b64\u53d8\u66f4\u4f1a\u5f71\u54cd\u5b9a\u4e49\u81ea\u5b9a\u4e49 GUC \u53c2\u6570\u7684\u9644\u52a0\u6a21\u5757\u3002</p>", "text": "\u4fee\u8ba2 GUC \u53d8\u91cf\u8d4b\u503c\u94a9\u5b50\u7684 API\uff08Tom Lane\uff09 \u6b64\u524d\u8d4b\u503c\u94a9\u5b50\u7684\u804c\u80fd\u73b0\u5728\u62c6\u5206\u5230\u68c0\u67e5\u94a9\u5b50\u548c\u8d4b\u503c\u94a9\u5b50\u4e4b\u95f4\uff0c\u524d\u8005\u53ef\u4ee5\u5931\u8d25\u800c\u540e\u8005\u4e0d\u5e94\u5931\u8d25\u3002\u6b64\u53d8\u66f4\u4f1a\u5f71\u54cd\u5b9a\u4e49\u81ea\u5b9a\u4e49 GUC \u53c2\u6570\u7684\u9644\u52a0\u6a21\u5757\u3002", "title": "\u4fee\u8ba2 GUC \u53d8\u91cf\u8d4b\u503c\u94a9\u5b50\u7684 API", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14", "source_hash": "d2a5a8c9d2691639c3203652b48edc138bc263664b7aa213a7fef4c2239ec715", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [], "identity_text": "Revise the API for GUC variable assign hooks (Tom Lane) The previous functions of assign hooks are now split between check hooks and assign hooks, where the former can fail but the latter shouldn't. This change will impact add-on modules that define custom GUC parameters.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/140", "db_id": "abdde0b68461c4e75e1fce0ed6a59149", "patch_ids": [], "statement_hash": "84c13ad079f89927f983b448d6d1efa37376dd315ffa9550cce6333f4df78c69", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-3834cf21f924dfd7", "migration": false}, {"id": "9.1.0-5b2b9928138eebf0", "cves": [], "html": "<p>\u5728\u6e90\u4ee3\u7801\u4e2d\u65b0\u589e\u95e9\u9501\u4ee5\u652f\u6301\u7b49\u5f85\u4e8b\u4ef6\uff08Heikki Linnakangas\uff09</p>", "text": "\u5728\u6e90\u4ee3\u7801\u4e2d\u65b0\u589e\u95e9\u9501\u4ee5\u652f\u6301\u7b49\u5f85\u4e8b\u4ef6\uff08Heikki Linnakangas\uff09", "title": "\u5728\u6e90\u4ee3\u7801\u4e2d\u65b0\u589e\u95e9\u9501\u4ee5\u652f\u6301\u7b49\u5f85\u4e8b\u4ef6", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14", "source_hash": "cb44c77fc4d861ad6be5d14974955c8659b107b391de0b6c9aa64add4d32460c", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [], "identity_text": "Add latches to the source code to support waiting for events (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/141", "db_id": "e963b4b0114a698bc985a96420e43f45", "patch_ids": [], "statement_hash": "e9c8847bd479d0636f154626d8d0100abc1d9413193d99bef3b4efd05f346396", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-5b2b9928138eebf0", "migration": false}, {"id": "9.1.0-1c9ca7cfc872b05b", "cves": [], "html": "<p>\u96c6\u4e2d\u5316\u6570\u636e\u4fee\u6539\u6743\u9650\u68c0\u67e5\u903b\u8f91\uff08KaiGai Kohei\uff09</p>", "text": "\u96c6\u4e2d\u5316\u6570\u636e\u4fee\u6539\u6743\u9650\u68c0\u67e5\u903b\u8f91\uff08KaiGai Kohei\uff09", "title": "\u96c6\u4e2d\u5316\u6570\u636e\u4fee\u6539\u6743\u9650\u68c0\u67e5\u903b\u8f91", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14", "source_hash": "db3847ac3339d43e48304a8086023c87ae2a47490860d2be371d0ab55fdb8128", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [], "identity_text": "Centralize data modification permissions-checking logic (KaiGai Kohei)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/142", "db_id": "a6e0b24cd6c856fbfbb79a45c073e576", "patch_ids": [], "statement_hash": "3635d2f1f414e954640b9d06e586c1a333a2f4e80f7bb1da4f2eebd4639cf812", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-1c9ca7cfc872b05b", "migration": false}, {"id": "9.1.0-c1b32d2801ea625d", "cves": [], "html": "<p>\u4e3a\u4e00\u81f4\u6027\u8865\u9f50\u7f3a\u5931\u7684 <code>get_<em><code>object</code></em>_oid()</code> \u51fd\u6570\uff08Robert Haas\uff09</p>", "text": "\u4e3a\u4e00\u81f4\u6027\u8865\u9f50\u7f3a\u5931\u7684 get_object_oid() \u51fd\u6570\uff08Robert Haas\uff09", "title": "\u4e3a\u4e00\u81f4\u6027\u8865\u9f50\u7f3a\u5931\u7684 get_object_oid() \u51fd\u6570", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14", "source_hash": "2abdd091b0bd157a00ebd01b70fc484a61779caa295927189b1f2ec91323bbd0", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [], "identity_text": "Add missing get_object_oid() functions, for consistency (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/143", "db_id": "c88756c928519caabdd67a030a770c53", "patch_ids": [], "statement_hash": "da8b8febb38096c58312c16b1cd0cbe18e35acfb8542fafec5e2fce1f80f96ce", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-c1b32d2801ea625d", "migration": false}, {"id": "9.1.0-6f901aa01690b539", "cves": [], "html": "<p>\u901a\u8fc7\u79fb\u9664\u51b2\u7a81\u7684\u5173\u952e\u5b57\uff0c\u6539\u8fdb\u4f7f\u7528 C++ \u7f16\u8bd1\u5668<a href=\"/docs/9.1/xfunc-c.html\" title=\"35.9.\u00a0C \u8bed\u8a00\u51fd\u6570\">\u7f16\u8bd1\u9644\u52a0\u6a21\u5757</a>\u7684\u80fd\u529b\uff08Tom Lane\uff09</p>", "text": "\u901a\u8fc7\u79fb\u9664\u51b2\u7a81\u7684\u5173\u952e\u5b57\uff0c\u6539\u8fdb\u4f7f\u7528 C++ \u7f16\u8bd1\u5668\u7f16\u8bd1\u9644\u52a0\u6a21\u5757\u7684\u80fd\u529b\uff08Tom Lane\uff09", "title": "\u901a\u8fc7\u79fb\u9664\u51b2\u7a81\u7684\u5173\u952e\u5b57\uff0c\u6539\u8fdb\u4f7f\u7528 C++ \u7f16\u8bd1\u5668\u7f16\u8bd1\u9644\u52a0\u6a21\u5757\u7684\u80fd\u529b", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14", "source_hash": "43f13099e7dccb5adfca361ef685d2a5c216306d0e9160f4c95a190da11803fc", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [], "identity_text": "Improve ability to use C++ compilers for compiling add-on modules by removing conflicting key words (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/144", "db_id": "ff68590397c11ecd5c30bb47f5b824ba", "patch_ids": [], "statement_hash": "2cd1f658105e88eb20400f121c6313a4ec7f5d9ddfb9a051c6e9f9431aeead19", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-6f901aa01690b539", "migration": false}, {"id": "9.1.0-f0161a6145f6a304", "cves": [], "html": "<p>\u65b0\u589e\u5bf9 DragonFly <acronym>BSD</acronym> \u7684\u652f\u6301\uff08Rumko\uff09</p>", "text": "\u65b0\u589e\u5bf9 DragonFly BSD \u7684\u652f\u6301\uff08Rumko\uff09", "title": "\u65b0\u589e\u5bf9 DragonFly BSD \u7684\u652f\u6301", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14", "source_hash": "26bc3a385f6af21c1d61c93153ac49550097898fb09ab68a8cad7f1599ce5080", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [], "identity_text": "Add support for DragonFly BSD (Rumko)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/145", "db_id": "374043264a4688c6ace732fd4c532e6e", "patch_ids": [], "statement_hash": "7906ed25f822249a69262a2d0828a211d1b224191366c3ff2a9b023baac486ee", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f0161a6145f6a304", "migration": false}, {"id": "9.1.0-d61ce4934702f1c8", "cves": [], "html": "<p>\u4e3a\u540e\u7aef\u4f7f\u7528\u516c\u5f00 <code>quote_literal_cstr()</code>\uff08Robert Haas\uff09</p>", "text": "\u4e3a\u540e\u7aef\u4f7f\u7528\u516c\u5f00 quote_literal_cstr()\uff08Robert Haas\uff09", "title": "\u4e3a\u540e\u7aef\u4f7f\u7528\u516c\u5f00 quote_literal_cstr()", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14", "source_hash": "f8e82279be5c74a601fc81bb600547bf9979c5ed844a25271df7bf61819e989b", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [], "identity_text": "Expose quote_literal_cstr() for backend use (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/146", "db_id": "c608634aac6a08b9275c17a56b37f26e", "patch_ids": [], "statement_hash": "410684c0f871667952cb3a65b549e6ed9412bc357a100d86375cca9e90d86c9d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-d61ce4934702f1c8", "migration": false}, {"id": "9.1.0-1e801b7d7af077d6", "cves": [], "html": "<p>\u4ee5\u9ed8\u8ba4\u7f16\u7801\u8fd0\u884c<a href=\"/docs/9.1/install-procedure.html#BUILD\" title=\"\u6784\u5efa\">\u56de\u5f52\u6d4b\u8bd5</a>\uff08Peter Eisentraut\uff09</p>\n<p>\u56de\u5f52\u6d4b\u8bd5\u6b64\u524d\u603b\u662f\u4ee5 <code>SQL_ASCII</code> \u7f16\u7801\u8fd0\u884c\u3002</p>", "text": "\u4ee5\u9ed8\u8ba4\u7f16\u7801\u8fd0\u884c\u56de\u5f52\u6d4b\u8bd5\uff08Peter Eisentraut\uff09 \u56de\u5f52\u6d4b\u8bd5\u6b64\u524d\u603b\u662f\u4ee5 SQL_ASCII \u7f16\u7801\u8fd0\u884c\u3002", "title": "\u4ee5\u9ed8\u8ba4\u7f16\u7801\u8fd0\u884c\u56de\u5f52\u6d4b\u8bd5", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14", "source_hash": "6e6fdd6eaf5c20f263d2d4d6ba6cb30955829edb32894b55c6012ca8e152e94b", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [], "identity_text": "Run regression tests in the default encoding (Peter Eisentraut) Regression tests were previously always run with SQL_ASCII encoding.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/147", "db_id": "8b724a6854f616263487a1f6dc9408a1", "patch_ids": [], "statement_hash": "7957d8dd6af758ae9f27da692e1c9c8237b94c7157ab57e1f8ba8b93d61010d5", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-1e801b7d7af077d6", "migration": false}, {"id": "9.1.0-a03d72b3cda13688", "cves": [], "html": "<p>\u65b0\u589e <span>src/tools/git_changelog</span> \u4ee5\u53d6\u4ee3 <span>cvs2cl</span> \u548c <span>pgcvslog</span>\uff08Robert Haas\u3001Tom Lane\uff09</p>", "text": "\u65b0\u589e src/tools/git_changelog \u4ee5\u53d6\u4ee3 cvs2cl \u548c pgcvslog\uff08Robert Haas\u3001Tom Lane\uff09", "title": "\u65b0\u589e src/tools/git_changelog \u4ee5\u53d6\u4ee3 cvs2cl \u548c pgcvslog", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14", "source_hash": "82d29652a6eb2227bfb3a7724be6da31f39ab79adf80dc588a84e59398783ff7", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [], "identity_text": "Add src/tools/git_changelog to replace cvs2cl and pgcvslog (Robert Haas, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/148", "db_id": "3fe80ae466f3478378790a7943839bf7", "patch_ids": [], "statement_hash": "9aa210689ffce7d5456a517c088ceafc735323ea47fb2462a0e76a50b62369dc", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-a03d72b3cda13688", "migration": false}, {"id": "9.1.0-24e20dd3e2743954", "cves": [], "html": "<p>\u5411 <code>src/tools</code> \u6dfb\u52a0 <span>git-external-diff</span> \u811a\u672c\uff08Bruce Momjian\uff09</p>\n<p>\u5b83\u7528\u4e8e\u4ece git \u751f\u6210\u4e0a\u4e0b\u6587\u5dee\u5f02\u3002</p>", "text": "\u5411 src/tools \u6dfb\u52a0 git-external-diff \u811a\u672c\uff08Bruce Momjian\uff09 \u5b83\u7528\u4e8e\u4ece git \u751f\u6210\u4e0a\u4e0b\u6587\u5dee\u5f02\u3002", "title": "\u5411 src/tools \u6dfb\u52a0 git-external-diff \u811a\u672c", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14", "source_hash": "e331cdeb430dac8b8e953eaf651636e1868235c0a8d3a22aed8061dc65b72244", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [], "identity_text": "Add git-external-diff script to src/tools (Bruce Momjian) This is used to generate context diffs from git.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/149", "db_id": "68db8fc532c257e6acb7bcbaee67cfc2", "patch_ids": [], "statement_hash": "7afd04e80391c46b7f2fc78bae2690aae8b2ec4923f00b12e41b7ebff46fabe1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-24e20dd3e2743954", "migration": false}, {"id": "9.1.0-1eab2c518218aeae", "cves": [], "html": "<p>\u6539\u8fdb\u5bf9\u4f7f\u7528 <span>Clang</span> \u6784\u5efa\u7684\u652f\u6301\uff08Peter Eisentraut\uff09</p>", "text": "\u6539\u8fdb\u5bf9\u4f7f\u7528 Clang \u6784\u5efa\u7684\u652f\u6301\uff08Peter Eisentraut\uff09", "title": "\u6539\u8fdb\u5bf9\u4f7f\u7528 Clang \u6784\u5efa\u7684\u652f\u6301", "commits": [], "section": "\u6e90\u4ee3\u7801", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14", "source_hash": "6b03b5f7908cd8ada4adabc221dfaa1ce7a45498c31c12179979874804ce020d", "section_path": ["\u6e90\u4ee3\u7801"], "commit_groups": [], "identity_text": "Improve support for building with Clang (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/150", "db_id": "b836a69b91feffe321d306ca14067a6f", "patch_ids": [], "statement_hash": "2875d2ee48722150fbdd201dd0becf5e2036ebdd62dfd479f22738d478937bec", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-1eab2c518218aeae", "migration": false}, {"id": "9.1.0-32530d727c2969f1", "cves": [], "html": "<p>\u65b0\u589e\u7528\u4e8e\u68c0\u67e5\u6743\u9650\u7684\u6e90\u4ee3\u7801\u94a9\u5b50\uff08Robert Haas\u3001Stephen Frost\uff09</p>", "text": "\u65b0\u589e\u7528\u4e8e\u68c0\u67e5\u6743\u9650\u7684\u6e90\u4ee3\u7801\u94a9\u5b50\uff08Robert Haas\u3001Stephen Frost\uff09", "title": "\u65b0\u589e\u7528\u4e8e\u68c0\u67e5\u6743\u9650\u7684\u6e90\u4ee3\u7801\u94a9\u5b50", "commits": [], "section": "\u6e90\u4ee3\u7801 / \u670d\u52a1\u5668\u94a9\u5b50", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14.3", "source_hash": "5343e8425e16fc8f0ea49c7cf6be1602e1bedc1e42dc736f6d581cf00aadd3ba", "section_path": ["\u6e90\u4ee3\u7801", "\u670d\u52a1\u5668\u94a9\u5b50"], "commit_groups": [], "identity_text": "Add source code hooks to check permissions (Robert Haas, Stephen Frost)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/151", "db_id": "928f9df79560d96ff196439468afc2b3", "patch_ids": [], "statement_hash": "cce626524fd8ef41d88b10e7716a84bf216da15ca7f66b7dd5c036cf157e21f4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-32530d727c2969f1", "migration": false}, {"id": "9.1.0-5564df46a95c48eb", "cves": [], "html": "<p>\u65b0\u589e\u4f9b\u5b89\u5168\u6846\u67b6\u4f7f\u7528\u7684\u5bf9\u8c61\u521b\u5efa\u540e\u51fd\u6570\u94a9\u5b50\uff08KaiGai Kohei\uff09</p>", "text": "\u65b0\u589e\u4f9b\u5b89\u5168\u6846\u67b6\u4f7f\u7528\u7684\u5bf9\u8c61\u521b\u5efa\u540e\u51fd\u6570\u94a9\u5b50\uff08KaiGai Kohei\uff09", "title": "\u65b0\u589e\u4f9b\u5b89\u5168\u6846\u67b6\u4f7f\u7528\u7684\u5bf9\u8c61\u521b\u5efa\u540e\u51fd\u6570\u94a9\u5b50", "commits": [], "section": "\u6e90\u4ee3\u7801 / \u670d\u52a1\u5668\u94a9\u5b50", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14.3", "source_hash": "4fa23d0b2ae712b4de786685f27f52a8d40806928532687c49e751032d5fb68f", "section_path": ["\u6e90\u4ee3\u7801", "\u670d\u52a1\u5668\u94a9\u5b50"], "commit_groups": [], "identity_text": "Add post-object-creation function hooks for use by security frameworks (KaiGai Kohei)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/152", "db_id": "b73992aa0b550ecee458f36b69ce410f", "patch_ids": [], "statement_hash": "6f6ac2eeeaca82ec44450db87f00f949610d37ef1535dc6b829b703c64feeccb", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-5564df46a95c48eb", "migration": false}, {"id": "9.1.0-c3113b8224137e82", "cves": [], "html": "<p>\u65b0\u589e\u5ba2\u6237\u7aef\u8ba4\u8bc1\u94a9\u5b50\uff08KaiGai Kohei\uff09</p>", "text": "\u65b0\u589e\u5ba2\u6237\u7aef\u8ba4\u8bc1\u94a9\u5b50\uff08KaiGai Kohei\uff09", "title": "\u65b0\u589e\u5ba2\u6237\u7aef\u8ba4\u8bc1\u94a9\u5b50", "commits": [], "section": "\u6e90\u4ee3\u7801 / \u670d\u52a1\u5668\u94a9\u5b50", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.14.3", "source_hash": "b4db43a7745a0396f0a550c36581c4731f1a8e396e9bafa122dbce99c52e12af", "section_path": ["\u6e90\u4ee3\u7801", "\u670d\u52a1\u5668\u94a9\u5b50"], "commit_groups": [], "identity_text": "Add a client authentication hook (KaiGai Kohei)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/153", "db_id": "f25032ba732a5bcb068de1762706f23e", "patch_ids": [], "statement_hash": "ed526884a54a79d15fdd6681f140ea719709e81f2bdd38eeb0f749a8242586de", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-c3113b8224137e82", "migration": false}, {"id": "9.1.0-e143a3e964d2fb95", "cves": [], "html": "<p>\u4fee\u6539 <code>contrib</code> \u6a21\u5757\u548c\u8fc7\u7a0b\u8bed\u8a00\uff0c\u4f7f\u5176\u901a\u8fc7\u65b0\u7684<a href=\"/docs/9.1/extend-extensions.html\" title=\"35.15.\u00a0\u5c06\u76f8\u5173\u5bf9\u8c61\u6253\u5305\u6210\u6269\u5c55\">\u6269\u5c55</a>\u673a\u5236\u5b89\u88c5\uff08Tom Lane\u3001Dimitri Fontaine\uff09</p>", "text": "\u4fee\u6539 contrib \u6a21\u5757\u548c\u8fc7\u7a0b\u8bed\u8a00\uff0c\u4f7f\u5176\u901a\u8fc7\u65b0\u7684\u6269\u5c55\u673a\u5236\u5b89\u88c5\uff08Tom Lane\u3001Dimitri Fontaine\uff09", "title": "\u4fee\u6539 contrib \u6a21\u5757\u548c\u8fc7\u7a0b\u8bed\u8a00\uff0c\u4f7f\u5176\u901a\u8fc7\u65b0\u7684\u6269\u5c55\u673a\u5236\u5b89\u88c5", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15", "source_hash": "3a6ef66826782639a5fca3aed416ade36c4582b7eb04c5b72dfa9439ec795706", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "Modify contrib modules and procedural languages to install via the new extension mechanism (Tom Lane, Dimitri Fontaine)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/154", "db_id": "4daa64fc121c85a99097a297b1fd0db1", "patch_ids": [], "statement_hash": "4454423993a4aee92dd99836a3ea325356ba88dcc0f467e569bca054fed1f5d1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-e143a3e964d2fb95", "migration": false}, {"id": "9.1.0-3a8d9e62806aff1f", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/9.1/file-fdw.html\" title=\"F.14.\u00a0file_fdw\"><code>contrib/file_fdw</code></a> \u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\uff08Shigeru Hanada\uff09</p>\n<p>\u4f7f\u7528\u8fd9\u4e2a\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u7684\u5916\u90e8\u8868\u53ef\u4ee5\u4ee5\u975e\u5e38\u7c7b\u4f3c\u4e8e <code>COPY</code> \u7684\u65b9\u5f0f\u8bfb\u53d6\u5e73\u9762\u6587\u4ef6\u3002</p>", "text": "\u65b0\u589e contrib/file_fdw \u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\uff08Shigeru Hanada\uff09 \u4f7f\u7528\u8fd9\u4e2a\u5916\u90e8\u6570\u636e\u5305\u88c5\u5668\u7684\u5916\u90e8\u8868\u53ef\u4ee5\u4ee5\u975e\u5e38\u7c7b\u4f3c\u4e8e COPY \u7684\u65b9\u5f0f\u8bfb\u53d6\u5e73\u9762\u6587\u4ef6\u3002", "title": "\u65b0\u589e contrib/file_fdw \u5916\u90e8\u6570\u636e\u5305\u88c5\u5668", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15", "source_hash": "b54f81c75792fd7888cabe718b4c0cbc4a6e87741a7fbc67bbe9224e8463a2fd", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "Add contrib/file_fdw foreign-data wrapper (Shigeru Hanada) Foreign tables using this foreign data wrapper can read flat files in a manner very similar to COPY.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/155", "db_id": "c988248ac035c8a8681e7abf9d2f6ad0", "patch_ids": [], "statement_hash": "ac07b9a361885ca4a9a7a8a70253fcfe7ac5de5928f3e18592e0fefc06af88ef", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-3a8d9e62806aff1f", "migration": false}, {"id": "9.1.0-f4bf4783ad1d8a78", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/pgtrgm.html\" title=\"F.35.\u00a0pg_trgm\"><code>contrib/pg_trgm</code></a> \u548c <a href=\"/docs/9.1/btree-gist.html\" title=\"F.5.\u00a0btree_gist\"><code>contrib/btree_gist</code></a> \u65b0\u589e\u6700\u8fd1\u90bb\u641c\u7d22\u652f\u6301\uff08Teodor Sigaev\uff09</p>", "text": "\u4e3a contrib/pg_trgm \u548c contrib/btree_gist \u65b0\u589e\u6700\u8fd1\u90bb\u641c\u7d22\u652f\u6301\uff08Teodor Sigaev\uff09", "title": "\u4e3a contrib/pg_trgm \u548c contrib/btree_gist \u65b0\u589e\u6700\u8fd1\u90bb\u641c\u7d22\u652f\u6301", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15", "source_hash": "bc13b7b47aebdd4dd91f12fdd364106f52d37a9a5671f1b443f5e6d0cf8575ee", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "Add nearest-neighbor search support to contrib/pg_trgm and contrib/btree_gist (Teodor Sigaev)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/156", "db_id": "726fb5f7c000b9010429d43bd40d1418", "patch_ids": [], "statement_hash": "ae2fba67a892d6a322775785bbbd8869c0eb120a097a5fda984ecd45e3a8c63f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f4bf4783ad1d8a78", "migration": false}, {"id": "9.1.0-da2a9e8db52aaf2e", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/btree-gist.html\" title=\"F.5.\u00a0btree_gist\"><code>contrib/btree_gist</code></a> \u65b0\u589e\u4e0d\u76f8\u7b49\u641c\u7d22\u652f\u6301\uff08Jeff Davis\uff09</p>", "text": "\u4e3a contrib/btree_gist \u65b0\u589e\u4e0d\u76f8\u7b49\u641c\u7d22\u652f\u6301\uff08Jeff Davis\uff09", "title": "\u4e3a contrib/btree_gist \u65b0\u589e\u4e0d\u76f8\u7b49\u641c\u7d22\u652f\u6301", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15", "source_hash": "47865c58795211607ccd3c20d9c51e029a63b715b9d60292e7157cbb28daf45e", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "Add contrib/btree_gist support for searching on not-equals (Jeff Davis)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/157", "db_id": "c3a425f1409da0fe6a3447dd4981d812", "patch_ids": [], "statement_hash": "f350aa16f3d4d8df37dec2bb41aa4ce371b2c6a047f558866a7ccc2a57252c6a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-da2a9e8db52aaf2e", "migration": false}, {"id": "9.1.0-25429a59b242ee3a", "cves": [], "html": "<p>\u4fee\u590d <a href=\"/docs/9.1/fuzzystrmatch.html\" title=\"F.15.\u00a0fuzzystrmatch \u2014 \u786e\u5b9a\u5b57\u7b26\u4e32\u7684\u76f8\u4f3c\u6027\u548c\u8ddd\u79bb\"><code>contrib/fuzzystrmatch</code></a> \u7684 <code>levenshtein()</code> \u51fd\u6570\uff0c\u4f7f\u5176\u5904\u7406\u591a\u5b57\u8282\u5b57\u7b26\uff08Alexander Korotkov\uff09</p>", "text": "\u4fee\u590d contrib/fuzzystrmatch \u7684 levenshtein() \u51fd\u6570\uff0c\u4f7f\u5176\u5904\u7406\u591a\u5b57\u8282\u5b57\u7b26\uff08Alexander Korotkov\uff09", "title": "\u4fee\u590d contrib/fuzzystrmatch \u7684 levenshtein() \u51fd\u6570\uff0c\u4f7f\u5176\u5904\u7406\u591a\u5b57\u8282\u5b57\u7b26", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "bugfix", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15", "source_hash": "662b5dc6888245a843fad624b7bf57b69f03358207e1fb566c5de66fa464c068", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "Fix contrib/fuzzystrmatch's levenshtein() function to handle multibyte characters (Alexander Korotkov)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/158", "db_id": "00592fedf4e904c9885e70048349077d", "patch_ids": [], "statement_hash": "e3053864f258c5df2aa26550b04890005a440ec50df5e6123d5f312f3eabad05", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=9.1.0#9.1.0-25429a59b242ee3a", "migration": false}, {"id": "9.1.0-5185dd1dd0604eba", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/sslinfo.html\" title=\"F.40.\u00a0sslinfo\"><code>contrib/sslinfo</code></a> \u65b0\u589e <code>ssl_cipher()</code> \u548c <code>ssl_version()</code> \u51fd\u6570\uff08Robert Haas\uff09</p>", "text": "\u4e3a contrib/sslinfo \u65b0\u589e ssl_cipher() \u548c ssl_version() \u51fd\u6570\uff08Robert Haas\uff09", "title": "\u4e3a contrib/sslinfo \u65b0\u589e ssl_cipher() \u548c ssl_version() \u51fd\u6570", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15", "source_hash": "a795e97e24e7f8139b714fc43c6ca8be40344c58f4543da496f1cb13c9d3f204", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "Add ssl_cipher() and ssl_version() functions to contrib/sslinfo (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/159", "db_id": "3ab10e50f1f125f98b3eb485ab8127ff", "patch_ids": [], "statement_hash": "74ea7aae0429042dce7e71cad0ed1b4fc1aa583f0ad7e10160def9726b05954a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-5185dd1dd0604eba", "migration": false}, {"id": "9.1.0-c50c7a146e345436", "cves": [], "html": "<p>\u4fee\u590d <a href=\"/docs/9.1/intarray.html\" title=\"F.18.\u00a0intarray\"><code>contrib/intarray</code></a> \u548c <a href=\"/docs/9.1/hstore.html\" title=\"F.16.\u00a0hstore\"><code>contrib/hstore</code></a>\uff0c\u4f7f\u5176\u5bf9\u7d22\u5f15\u7684\u7a7a\u6570\u7ec4\u7ed9\u51fa\u4e00\u81f4\u7ed3\u679c\uff08Tom Lane\uff09</p>\n<p>\u6b64\u524d\u4f7f\u7528\u7d22\u5f15\u7684\u7a7a\u6570\u7ec4\u67e5\u8be2\u53ef\u80fd\u8fd4\u56de\u4e0e\u4f7f\u7528\u987a\u5e8f\u626b\u63cf\u4e0d\u540c\u7684\u7ed3\u679c\u3002</p>", "text": "\u4fee\u590d contrib/intarray \u548c contrib/hstore\uff0c\u4f7f\u5176\u5bf9\u7d22\u5f15\u7684\u7a7a\u6570\u7ec4\u7ed9\u51fa\u4e00\u81f4\u7ed3\u679c\uff08Tom Lane\uff09 \u6b64\u524d\u4f7f\u7528\u7d22\u5f15\u7684\u7a7a\u6570\u7ec4\u67e5\u8be2\u53ef\u80fd\u8fd4\u56de\u4e0e\u4f7f\u7528\u987a\u5e8f\u626b\u63cf\u4e0d\u540c\u7684\u7ed3\u679c\u3002", "title": "\u4fee\u590d contrib/intarray \u548c contrib/hstore\uff0c\u4f7f\u5176\u5bf9\u7d22\u5f15\u7684\u7a7a\u6570\u7ec4\u7ed9\u51fa\u4e00\u81f4\u7ed3\u679c", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "bugfix", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15", "source_hash": "8ae1d6b57e73cdf4f74287b47fce19757e8510c93f9e891da7ee78c14aa951e4", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "Fix contrib/intarray and contrib/hstore to give consistent results with indexed empty arrays (Tom Lane) Previously an empty-array query that used an index might return different results from one that used a sequential scan.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/160", "db_id": "b0337827ce458c7f56ec95dccbef8370", "patch_ids": [], "statement_hash": "4f4c5637f0c89f7be943c0ff4f20405101bb948c374212d64d7d5d94fd428769", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=9.1.0#9.1.0-c50c7a146e345436", "migration": false}, {"id": "9.1.0-d8122d2a218f31a1", "cves": [], "html": "<p>\u8ba9 <a href=\"/docs/9.1/intarray.html\" title=\"F.18.\u00a0intarray\"><code>contrib/intarray</code></a> \u5728\u591a\u7ef4\u6570\u7ec4\u4e0a\u6b63\u786e\u5de5\u4f5c\uff08Tom Lane\uff09</p>", "text": "\u8ba9 contrib/intarray \u5728\u591a\u7ef4\u6570\u7ec4\u4e0a\u6b63\u786e\u5de5\u4f5c\uff08Tom Lane\uff09", "title": "\u8ba9 contrib/intarray \u5728\u591a\u7ef4\u6570\u7ec4\u4e0a\u6b63\u786e\u5de5\u4f5c", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15", "source_hash": "4847e6e87ec1a1429ab9bf53f643579aed477b1c681017ccfe468779be62d6ba", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "Allow contrib/intarray to work properly on multidimensional arrays (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/161", "db_id": "3fc0895988398bb38d6b3ae25a4e6ebc", "patch_ids": [], "statement_hash": "fd43ec46dc6d8783d52cd447efed2d38f5a0c2c8d0d092d2c75a3122d5fefc2d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-d8122d2a218f31a1", "migration": false}, {"id": "9.1.0-5c93b075131cd06a", "cves": [], "html": "<p>\u5728 <a href=\"/docs/9.1/intarray.html\" title=\"F.18.\u00a0intarray\"><code>contrib/intarray</code></a> \u4e2d\uff0c\u907f\u514d\u5728\u5b9e\u9645\u4e0d\u5b58\u5728\u7a7a\u503c\u7684\u573a\u5408\u62a5\u9519\u62b1\u6028\u5b58\u5728\u7a7a\u503c\uff08Tom Lane\uff09</p>", "text": "\u5728 contrib/intarray \u4e2d\uff0c\u907f\u514d\u5728\u5b9e\u9645\u4e0d\u5b58\u5728\u7a7a\u503c\u7684\u573a\u5408\u62a5\u9519\u62b1\u6028\u5b58\u5728\u7a7a\u503c\uff08Tom Lane\uff09", "title": "\u5728 contrib/intarray \u4e2d\uff0c\u907f\u514d\u5728\u5b9e\u9645\u4e0d\u5b58\u5728\u7a7a\u503c\u7684\u573a\u5408\u62a5\u9519\u62b1\u6028\u5b58\u5728\u7a7a\u503c", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15", "source_hash": "3869729aee8d508b1bedeb797a5943f988c85c431078dff335ef7b874beefeaa", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "In contrib/intarray, avoid errors complaining about the presence of nulls in cases where no nulls are actually present (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/162", "db_id": "ae7f10f6bf08fdebfd6617e1b397e0c4", "patch_ids": [], "statement_hash": "09a397653e95c4198521c888296ef1a1d4c3ffdee22d060746238fb1109ae6c9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-5c93b075131cd06a", "migration": false}, {"id": "9.1.0-70d0d4aeb42c7656", "cves": [], "html": "<p>\u5728 <a href=\"/docs/9.1/intarray.html\" title=\"F.18.\u00a0intarray\"><code>contrib/intarray</code></a> \u4e2d\uff0c\u4fee\u590d\u5305\u542b\u64cd\u4f5c\u7b26\u5bf9\u7a7a\u6570\u7ec4\u7684\u884c\u4e3a\uff08Tom Lane\uff09</p>\n<p>\u7a7a\u6570\u7ec4\u73b0\u5728\u88ab\u6b63\u786e\u5730\u89c6\u4e3a\u5305\u542b\u4e8e\u4efb\u4f55\u5176\u4ed6\u6570\u7ec4\u3002</p>", "text": "\u5728 contrib/intarray \u4e2d\uff0c\u4fee\u590d\u5305\u542b\u64cd\u4f5c\u7b26\u5bf9\u7a7a\u6570\u7ec4\u7684\u884c\u4e3a\uff08Tom Lane\uff09 \u7a7a\u6570\u7ec4\u73b0\u5728\u88ab\u6b63\u786e\u5730\u89c6\u4e3a\u5305\u542b\u4e8e\u4efb\u4f55\u5176\u4ed6\u6570\u7ec4\u3002", "title": "\u5728 contrib/intarray \u4e2d\uff0c\u4fee\u590d\u5305\u542b\u64cd\u4f5c\u7b26\u5bf9\u7a7a\u6570\u7ec4\u7684\u884c\u4e3a", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "bugfix", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15", "source_hash": "cff4240144333896994d5d5f3d6e9a6503380d0bff34e9149971c623b200cadf", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "In contrib/intarray, fix behavior of containment operators with respect to empty arrays (Tom Lane) Empty arrays are now correctly considered to be contained in any other array.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/163", "db_id": "357dccba5128864c07f26567151d120c", "patch_ids": [], "statement_hash": "8dbab05ab0f39ad81b376a4a5aae7f9e9bf2a8ab603f237a950351b7b96a2f74", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=9.1.0#9.1.0-70d0d4aeb42c7656", "migration": false}, {"id": "9.1.0-9afefcb56768f44b", "cves": [], "html": "<p>\u79fb\u9664 <a href=\"/docs/9.1/xml2.html\" title=\"F.47.\u00a0xml2\"><code>contrib/xml2</code></a> \u5bf9 <code>xslt_process()</code> \u53ef\u5904\u7406\u7684 <em><code>parameter</code></em>=<em><code>value</code></em> \u5bf9\u6570\u91cf\u7684\u4efb\u610f\u9650\u5236\uff08Pavel Stehule\uff09</p>\n<p>\u6b64\u524d\u7684\u9650\u5236\u662f 10\u3002</p>", "text": "\u79fb\u9664 contrib/xml2 \u5bf9 xslt_process() \u53ef\u5904\u7406\u7684 parameter=value \u5bf9\u6570\u91cf\u7684\u4efb\u610f\u9650\u5236\uff08Pavel Stehule\uff09 \u6b64\u524d\u7684\u9650\u5236\u662f 10\u3002", "title": "\u79fb\u9664 contrib/xml2 \u5bf9 xslt_process() \u53ef\u5904\u7406\u7684 parameter=value \u5bf9\u6570\u91cf\u7684\u4efb\u610f\u9650\u5236", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15", "source_hash": "efcd197e40888a60330cbc40fe7766c464c3889e9d9ed9dbbb7a4e3792d3b811", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "Remove contrib/xml2's arbitrary limit on the number of parameter=value pairs that can be handled by xslt_process() (Pavel Stehule) The previous limit was 10.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/164", "db_id": "e16f8acb2345181c5329bee0420a4da5", "patch_ids": [], "statement_hash": "d0dfef7d18ad09d0a0450cc2d58cb38ba8b6d9c643eb16b809507559f1b435d9", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-9afefcb56768f44b", "migration": false}, {"id": "9.1.0-d8e0d9f2d7b757fc", "cves": [], "html": "<p>\u5728 <a href=\"/docs/9.1/pageinspect.html\" title=\"F.23.\u00a0pageinspect\"><code>contrib/pageinspect</code></a> \u4e2d\uff0c\u4fee\u590d heap_page_item \u4ee5 32 \u4f4d\u503c\u8fd4\u56de infomask\uff08Alvaro Herrera\uff09</p>\n<p>\u8fd9\u907f\u514d\u4e86\u8fd4\u56de\u8d1f\u503c\uff08\u90a3\u4ee4\u4eba\u56f0\u60d1\uff09\u3002\u5e95\u5c42\u503c\u662f 16 \u4f4d\u65e0\u7b26\u53f7\u6574\u6570\u3002</p>", "text": "\u5728 contrib/pageinspect \u4e2d\uff0c\u4fee\u590d heap_page_item \u4ee5 32 \u4f4d\u503c\u8fd4\u56de infomask\uff08Alvaro Herrera\uff09 \u8fd9\u907f\u514d\u4e86\u8fd4\u56de\u8d1f\u503c\uff08\u90a3\u4ee4\u4eba\u56f0\u60d1\uff09\u3002\u5e95\u5c42\u503c\u662f 16 \u4f4d\u65e0\u7b26\u53f7\u6574\u6570\u3002", "title": "\u5728 contrib/pageinspect \u4e2d\uff0c\u4fee\u590d heap_page_item \u4ee5 32 \u4f4d\u503c\u8fd4\u56de infomask", "commits": [], "section": "\u9644\u52a0\u6a21\u5757", "category": "bugfix", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15", "source_hash": "2a5c0f674797da8aa2f5ac17a640d5b2d1ba42662ae1f89dfc2c86723580aad3", "section_path": ["\u9644\u52a0\u6a21\u5757"], "commit_groups": [], "identity_text": "In contrib/pageinspect, fix heap_page_item to return infomasks as 32-bit values (Alvaro Herrera) This avoids returning negative values, which was confusing. The underlying value is a 16-bit unsigned integer.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/165", "db_id": "22db832f2442ff64b095d494c6740619", "patch_ids": [], "statement_hash": "b847590d0c39bfe195061218349fe61298ee837194049b2763bcd7a461956655", "relations": [], "category_label": "BUG \u4fee\u590d", "url": "/docs/compare/?release=9.1.0#9.1.0-d8e0d9f2d7b757fc", "migration": false}, {"id": "9.1.0-8818864891e150ad", "cves": [], "html": "<p>\u65b0\u589e <a href=\"/docs/9.1/sepgsql.html\" title=\"F.38.\u00a0sepgsql \u2014 \u57fa\u4e8e SELinux \u6807\u7b7e\u7684\u5f3a\u5236\u8bbf\u95ee\u63a7\u5236\uff08MAC\uff09\u5b89\u5168\u6a21\u5757\"><code>contrib/sepgsql</code></a>\uff0c\u4f7f\u6743\u9650\u68c0\u67e5\u4e0e <acronym>SELinux</acronym> \u63a5\u53e3\uff08KaiGai Kohei\uff09</p>\n<p>\u5b83\u4f7f\u7528\u65b0\u7684 <a href=\"/docs/9.1/sql-security-label.html\" title=\"SECURITY LABEL\"><code>SECURITY LABEL</code></a> \u673a\u5236\u3002</p>", "text": "\u65b0\u589e contrib/sepgsql\uff0c\u4f7f\u6743\u9650\u68c0\u67e5\u4e0e SELinux \u63a5\u53e3\uff08KaiGai Kohei\uff09 \u5b83\u4f7f\u7528\u65b0\u7684 SECURITY LABEL \u673a\u5236\u3002", "title": "\u65b0\u589e contrib/sepgsql\uff0c\u4f7f\u6743\u9650\u68c0\u67e5\u4e0e SELinux \u63a5\u53e3", "commits": [], "section": "\u9644\u52a0\u6a21\u5757 / \u5b89\u5168", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15.3", "source_hash": "f3d3060ffef43892c84ba9c4ac9d5e6d33135ba71da46134c2fb900cb4c4f765", "section_path": ["\u9644\u52a0\u6a21\u5757", "\u5b89\u5168"], "commit_groups": [], "identity_text": "Add contrib/sepgsql to interface permission checks with SELinux (KaiGai Kohei) This uses the new SECURITY LABEL facility.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/166", "db_id": "a45498be26af5d75218bdd0e39d44da9", "patch_ids": [], "statement_hash": "33096d9cf68db602397635153e2416d3c0be3b17c0f96edcff16201e7382181d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-8818864891e150ad", "migration": false}, {"id": "9.1.0-e4ecef2ed44e8116", "cves": [], "html": "<p>\u65b0\u589e contrib \u6a21\u5757 <a href=\"/docs/9.1/auth-delay.html\" title=\"F.2.\u00a0auth_delay\"><code>auth_delay</code></a>\uff08KaiGai Kohei\uff09</p>\n<p>\u5b83\u4f7f\u670d\u52a1\u5668\u5728\u8fd4\u56de\u8ba4\u8bc1\u5931\u8d25\u524d\u6682\u505c\uff1b\u5176\u8bbe\u8ba1\u76ee\u7684\u662f\u52a0\u5927\u66b4\u529b\u7834\u89e3\u53e3\u4ee4\u653b\u51fb\u7684\u96be\u5ea6\u3002</p>", "text": "\u65b0\u589e contrib \u6a21\u5757 auth_delay\uff08KaiGai Kohei\uff09 \u5b83\u4f7f\u670d\u52a1\u5668\u5728\u8fd4\u56de\u8ba4\u8bc1\u5931\u8d25\u524d\u6682\u505c\uff1b\u5176\u8bbe\u8ba1\u76ee\u7684\u662f\u52a0\u5927\u66b4\u529b\u7834\u89e3\u53e3\u4ee4\u653b\u51fb\u7684\u96be\u5ea6\u3002", "title": "\u65b0\u589e contrib \u6a21\u5757 auth_delay", "commits": [], "section": "\u9644\u52a0\u6a21\u5757 / \u5b89\u5168", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15.3", "source_hash": "e913ebf6b1ac3972e90de0185e3235b513f36d3211d5f892ebcbdb375b060229", "section_path": ["\u9644\u52a0\u6a21\u5757", "\u5b89\u5168"], "commit_groups": [], "identity_text": "Add contrib module auth_delay (KaiGai Kohei) This causes the server to pause before returning authentication failure; it is designed to make brute force password attacks more difficult.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/167", "db_id": "54e2f6acf565cd10053df8c52987d77c", "patch_ids": [], "statement_hash": "0cffcd566352e064fc9af52faef96b49eca6a3a5d7b6ff3dc499fe168bea250a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-e4ecef2ed44e8116", "migration": false}, {"id": "9.1.0-3675901773e4eb3e", "cves": [], "html": "<p>\u65b0\u589e <code>dummy_seclabel</code> contrib \u6a21\u5757\uff08KaiGai Kohei\uff09</p>\n<p>\u5b83\u7528\u4e8e\u6743\u9650\u56de\u5f52\u6d4b\u8bd5\u3002</p>", "text": "\u65b0\u589e dummy_seclabel contrib \u6a21\u5757\uff08KaiGai Kohei\uff09 \u5b83\u7528\u4e8e\u6743\u9650\u56de\u5f52\u6d4b\u8bd5\u3002", "title": "\u65b0\u589e dummy_seclabel contrib \u6a21\u5757", "commits": [], "section": "\u9644\u52a0\u6a21\u5757 / \u5b89\u5168", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15.3", "source_hash": "542c45437f9384a8401da91619e90b61552c8de86f64bddaa6fb5d34fe276180", "section_path": ["\u9644\u52a0\u6a21\u5757", "\u5b89\u5168"], "commit_groups": [], "identity_text": "Add dummy_seclabel contrib module (KaiGai Kohei) This is used for permission regression testing.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/168", "db_id": "97ef46d5166ea1d5b8d49b087ef32ad6", "patch_ids": [], "statement_hash": "95c0cf85857cb7d317b950fb4fbfa27de5643aa3d1ee9108c12adcea0cd1cd4f", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-3675901773e4eb3e", "migration": false}, {"id": "9.1.0-c0e0d5554c5a09ad", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/pgtrgm.html\" title=\"F.35.\u00a0pg_trgm\"><code>contrib/pg_trgm</code></a> \u65b0\u589e <code>LIKE</code> \u548c <code>ILIKE</code> \u7d22\u5f15\u641c\u7d22\u652f\u6301\uff08Alexander Korotkov\uff09</p>", "text": "\u4e3a contrib/pg_trgm \u65b0\u589e LIKE \u548c ILIKE \u7d22\u5f15\u641c\u7d22\u652f\u6301\uff08Alexander Korotkov\uff09", "title": "\u4e3a contrib/pg_trgm \u65b0\u589e LIKE \u548c ILIKE \u7d22\u5f15\u641c\u7d22\u652f\u6301", "commits": [], "section": "\u9644\u52a0\u6a21\u5757 / \u6027\u80fd", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15.4", "source_hash": "1df7b2a2969909b4da8abc7a4951a6020c0a830ce3a9f4e3f537be7703b03e02", "section_path": ["\u9644\u52a0\u6a21\u5757", "\u6027\u80fd"], "commit_groups": [], "identity_text": "Add support for LIKE and ILIKE index searches to contrib/pg_trgm (Alexander Korotkov)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/169", "db_id": "9eb2f533b91464cd7948102f61dffb97", "patch_ids": [], "statement_hash": "d96aa6dd6eef71f76a265fc7a8cdfc8c1645b4434147c2d3c923dceaa9cc4ece", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-c0e0d5554c5a09ad", "migration": false}, {"id": "9.1.0-f6808617b41ffad4", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/fuzzystrmatch.html\" title=\"F.15.\u00a0fuzzystrmatch \u2014 \u786e\u5b9a\u5b57\u7b26\u4e32\u7684\u76f8\u4f3c\u6027\u548c\u8ddd\u79bb\"><code>contrib/fuzzystrmatch</code></a> \u65b0\u589e\u9488\u5bf9\u5c0f\u8ddd\u79bb\u4f18\u5316\u7684\u51fd\u6570 <code>levenshtein_less_equal()</code>\uff08Alexander Korotkov\uff09</p>", "text": "\u4e3a contrib/fuzzystrmatch \u65b0\u589e\u9488\u5bf9\u5c0f\u8ddd\u79bb\u4f18\u5316\u7684\u51fd\u6570 levenshtein_less_equal()\uff08Alexander Korotkov\uff09", "title": "\u4e3a contrib/fuzzystrmatch \u65b0\u589e\u9488\u5bf9\u5c0f\u8ddd\u79bb\u4f18\u5316\u7684\u51fd\u6570 levenshtein_less_equal()", "commits": [], "section": "\u9644\u52a0\u6a21\u5757 / \u6027\u80fd", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15.4", "source_hash": "07c20ad1b77bc563021959138c0bf36e0c4fa8323980504492af411b321a09a5", "section_path": ["\u9644\u52a0\u6a21\u5757", "\u6027\u80fd"], "commit_groups": [], "identity_text": "Add levenshtein_less_equal() function to contrib/fuzzystrmatch, which is optimized for small distances (Alexander Korotkov)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/170", "db_id": "1a7200edcb58d2cdee33d98ac7c3bfe2", "patch_ids": [], "statement_hash": "2c95f7c3e3573cc1376da34934c1e96c931b9ec7ae870f33184ace3a5ed40591", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f6808617b41ffad4", "migration": false}, {"id": "9.1.0-1b3acd16207edcbd", "cves": [], "html": "<p>\u6539\u8fdb <a href=\"/docs/9.1/seg.html\" title=\"F.37.\u00a0seg \u2014 \u7528\u4e8e\u7ebf\u6bb5\u6216\u6d6e\u70b9\u533a\u95f4\u7684\u6570\u636e\u7c7b\u578b\"><code>contrib/seg</code></a> \u5217\u4e0a\u7d22\u5f15\u67e5\u627e\u7684\u6027\u80fd\uff08Alexander Korotkov\uff09</p>", "text": "\u6539\u8fdb contrib/seg \u5217\u4e0a\u7d22\u5f15\u67e5\u627e\u7684\u6027\u80fd\uff08Alexander Korotkov\uff09", "title": "\u6539\u8fdb contrib/seg \u5217\u4e0a\u7d22\u5f15\u67e5\u627e\u7684\u6027\u80fd", "commits": [], "section": "\u9644\u52a0\u6a21\u5757 / \u6027\u80fd", "category": "performance", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15.4", "source_hash": "7601fb7728e72cfeb25edb189ae90bffb6adbea26653ec62bc492d5b57c0dbb8", "section_path": ["\u9644\u52a0\u6a21\u5757", "\u6027\u80fd"], "commit_groups": [], "identity_text": "Improve performance of index lookups on contrib/seg columns (Alexander Korotkov)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/171", "db_id": "2e64851202d6f34eb25e2f723f22d76f", "patch_ids": [], "statement_hash": "90e35b415cfebecc249a2f3809f77df6bff3e0bf54bb5d17ddf7d205b4684615", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=9.1.0#9.1.0-1b3acd16207edcbd", "migration": false}, {"id": "9.1.0-60def48429f4722a", "cves": [], "html": "<p>\u6539\u8fdb<a href=\"/docs/9.1/pgupgrade.html\" title=\"F.36.\u00a0pg_upgrade\"><span>pg_upgrade</span></a>\u5728\u591a\u5173\u7cfb\u6570\u636e\u5e93\u4e0b\u7684\u6027\u80fd\uff08Bruce Momjian\uff09</p>", "text": "\u6539\u8fdbpg_upgrade\u5728\u591a\u5173\u7cfb\u6570\u636e\u5e93\u4e0b\u7684\u6027\u80fd\uff08Bruce Momjian\uff09", "title": "\u6539\u8fdbpg_upgrade\u5728\u591a\u5173\u7cfb\u6570\u636e\u5e93\u4e0b\u7684\u6027\u80fd", "commits": [], "section": "\u9644\u52a0\u6a21\u5757 / \u6027\u80fd", "category": "performance", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15.4", "source_hash": "253000f2594d24fec329fa76705021e1fc410266c3917963bb0ad74734b14207", "section_path": ["\u9644\u52a0\u6a21\u5757", "\u6027\u80fd"], "commit_groups": [], "identity_text": "Improve performance of pg_upgrade for databases with many relations (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/172", "db_id": "723a020ff3519621f4479557476d513e", "patch_ids": [], "statement_hash": "5e07bbae836f992c81285c61b43b71a5f02f59c1f07d1019e8e3172dc64a7bcc", "relations": [], "category_label": "\u6027\u80fd\u6539\u8fdb", "url": "/docs/compare/?release=9.1.0#9.1.0-60def48429f4722a", "migration": false}, {"id": "9.1.0-43e3e89df1f560c6", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/pgbench.html\" title=\"F.26.\u00a0pgbench\"><code>contrib/pgbench</code></a> \u65b0\u589e\u62a5\u544a\u9010\u8bed\u53e5\u5ef6\u8fdf\u7684\u6807\u5fd7\uff08Florian Pflug\uff09</p>", "text": "\u4e3a contrib/pgbench \u65b0\u589e\u62a5\u544a\u9010\u8bed\u53e5\u5ef6\u8fdf\u7684\u6807\u5fd7\uff08Florian Pflug\uff09", "title": "\u4e3a contrib/pgbench \u65b0\u589e\u62a5\u544a\u9010\u8bed\u53e5\u5ef6\u8fdf\u7684\u6807\u5fd7", "commits": [], "section": "\u9644\u52a0\u6a21\u5757 / \u6027\u80fd", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15.4", "source_hash": "5cea30e8ed9c8498e407a40ac255738f95e5e5336f681e5e7812789c3aa4c78c", "section_path": ["\u9644\u52a0\u6a21\u5757", "\u6027\u80fd"], "commit_groups": [], "identity_text": "Add flag to contrib/pgbench to report per-statement latencies (Florian Pflug)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/173", "db_id": "4b18e0276a03e49d7cf142b931da7f8a", "patch_ids": [], "statement_hash": "24361f325cf51c224ccf21cf8da3b14cce6b3e76611ed44663d5891acf9513da", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-43e3e89df1f560c6", "migration": false}, {"id": "9.1.0-d4a06e4bf3d337d2", "cves": [], "html": "<p>\u628a <code>src/tools/test_fsync</code> \u79fb\u5230 <a href=\"/docs/9.1/pgtestfsync.html\" title=\"F.34.\u00a0pg_test_fsync\"><code>contrib/pg_test_fsync</code></a>\uff08Bruce Momjian\u3001Tom Lane\uff09</p>", "text": "\u628a src/tools/test_fsync \u79fb\u5230 contrib/pg_test_fsync\uff08Bruce Momjian\u3001Tom Lane\uff09", "title": "\u628a src/tools/test_fsync \u79fb\u5230 contrib/pg_test_fsync", "commits": [], "section": "\u9644\u52a0\u6a21\u5757 / fsync \u6d4b\u8bd5", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15.5", "source_hash": "3dc63ab71ac77d708e7830c5cfa32cffb31f10f3aae54aa5af97e594390d99e5", "section_path": ["\u9644\u52a0\u6a21\u5757", "fsync \u6d4b\u8bd5"], "commit_groups": [], "identity_text": "Move src/tools/test_fsync to contrib/pg_test_fsync (Bruce Momjian, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/174", "db_id": "a4be0d62359cd399fe6953f5fdce923d", "patch_ids": [], "statement_hash": "c76b7d34dab8492f9404f48260125c8693d1f355c8264a4430ebcbb0033bfd3b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-d4a06e4bf3d337d2", "migration": false}, {"id": "9.1.0-ed517e9005f0240d", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/pgtestfsync.html\" title=\"F.34.\u00a0pg_test_fsync\"><code>contrib/pg_test_fsync</code></a> \u65b0\u589e <code>O_DIRECT</code> \u652f\u6301\uff08Bruce Momjian\uff09</p>\n<p>\u8fd9\u4e0e <a href=\"/docs/9.1/runtime-config-wal.html#GUC-WAL-SYNC-METHOD\"><code>wal_sync_method</code></a> \u5bf9 <code>O_DIRECT</code> \u7684\u4f7f\u7528\u76f8\u5339\u914d\u3002</p>", "text": "\u4e3a contrib/pg_test_fsync \u65b0\u589e O_DIRECT \u652f\u6301\uff08Bruce Momjian\uff09 \u8fd9\u4e0e wal_sync_method \u5bf9 O_DIRECT \u7684\u4f7f\u7528\u76f8\u5339\u914d\u3002", "title": "\u4e3a contrib/pg_test_fsync \u65b0\u589e O_DIRECT \u652f\u6301", "commits": [], "section": "\u9644\u52a0\u6a21\u5757 / fsync \u6d4b\u8bd5", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15.5", "source_hash": "63bc666e4cc6cef8ae298166431b7badb9342be3e78cfa9f3762ad8c8c4f0bfb", "section_path": ["\u9644\u52a0\u6a21\u5757", "fsync \u6d4b\u8bd5"], "commit_groups": [], "identity_text": "Add O_DIRECT support to contrib/pg_test_fsync (Bruce Momjian) This matches the use of O_DIRECT by wal_sync_method.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/175", "db_id": "294f109e503feefd69faf23788785d82", "patch_ids": [], "statement_hash": "38fddab47b80263a7118264822b0d1f9eccae3ba9e8ab2f2b9bae238493295b1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-ed517e9005f0240d", "migration": false}, {"id": "9.1.0-5c9ddd06466f178e", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/pgtestfsync.html\" title=\"F.34.\u00a0pg_test_fsync\"><code>contrib/pg_test_fsync</code></a> \u65b0\u589e\u65b0\u6d4b\u8bd5\uff08Bruce Momjian\uff09</p>", "text": "\u4e3a contrib/pg_test_fsync \u65b0\u589e\u65b0\u6d4b\u8bd5\uff08Bruce Momjian\uff09", "title": "\u4e3a contrib/pg_test_fsync \u65b0\u589e\u65b0\u6d4b\u8bd5", "commits": [], "section": "\u9644\u52a0\u6a21\u5757 / fsync \u6d4b\u8bd5", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.15.5", "source_hash": "6368959108c820353db34b1c010242276427b73149a969d07c799b4cb188411a", "section_path": ["\u9644\u52a0\u6a21\u5757", "fsync \u6d4b\u8bd5"], "commit_groups": [], "identity_text": "Add new tests to contrib/pg_test_fsync (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/176", "db_id": "2d6e6a08abb64b129fca9e75e0b3e283", "patch_ids": [], "statement_hash": "876e40eef95a97efddf26c5fb711b739cdb05523cf0f1d20455cd6b71a6cc65b", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-5c9ddd06466f178e", "migration": false}, {"id": "9.1.0-9194a81982a84a7e", "cves": [], "html": "<p>\u5e7f\u6cdb\u7684<a href=\"/docs/9.1/ecpg.html\" title=\"\u7b2c\u00a033\u00a0\u7ae0\u00a0ECPG - C \u4e2d\u7684\u5d4c\u5165\u5f0f SQL\"><span>ECPG</span></a>\u6587\u6863\u6539\u8fdb\uff08Satoshi Nagayasu\uff09</p>", "text": "\u5e7f\u6cdb\u7684ECPG\u6587\u6863\u6539\u8fdb\uff08Satoshi Nagayasu\uff09", "title": "\u5e7f\u6cdb\u7684ECPG\u6587\u6863\u6539\u8fdb", "commits": [], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.16", "source_hash": "9c0bcff9221aa1037a435ce056801b9539d2e465bbd6f8b4ef31572bba52a29b", "section_path": ["\u6587\u6863"], "commit_groups": [], "identity_text": "Extensive ECPG documentation improvements (Satoshi Nagayasu)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/177", "db_id": "16ce551734664c729c2feefe31d20205", "patch_ids": [], "statement_hash": "1ae30df10362bfd7339ad94cd5004e576255ea0d200746720c434ba9db2be128", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-9194a81982a84a7e", "migration": false}, {"id": "9.1.0-2ac16eab6a1b6186", "cves": [], "html": "<p>\u5e7f\u6cdb\u7684\u6821\u5bf9\u548c\u6587\u6863\u6539\u8fdb\uff08Thom Brown\u3001Josh Kupershmidt\u3001Susanne Ebrecht\uff09</p>", "text": "\u5e7f\u6cdb\u7684\u6821\u5bf9\u548c\u6587\u6863\u6539\u8fdb\uff08Thom Brown\u3001Josh Kupershmidt\u3001Susanne Ebrecht\uff09", "title": "\u5e7f\u6cdb\u7684\u6821\u5bf9\u548c\u6587\u6863\u6539\u8fdb", "commits": [], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.16", "source_hash": "c6f207b793290c1e8b0b23c7c870b1c04418b1ff841f77be0a2531d796ff5137", "section_path": ["\u6587\u6863"], "commit_groups": [], "identity_text": "Extensive proofreading and documentation improvements (Thom Brown, Josh Kupershmidt, Susanne Ebrecht)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/178", "db_id": "a814417e94aa0f08e0b7905e9781e4a3", "patch_ids": [], "statement_hash": "4cf06260eb48ded764c172c31a3e8235e717c14d14923a3ff20bda5420f3b54d", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-2ac16eab6a1b6186", "migration": false}, {"id": "9.1.0-e79eba8f52c15eb5", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/runtime-config-error-handling.html#GUC-EXIT-ON-ERROR\"><code>exit_on_error</code></a> \u6dfb\u52a0\u6587\u6863\uff08Robert Haas\uff09</p>\n<p>\u8be5\u53c2\u6570\u4f7f\u4f1a\u8bdd\u5728\u4efb\u4f55\u9519\u8bef\u65f6\u9000\u51fa\u3002</p>", "text": "\u4e3a exit_on_error \u6dfb\u52a0\u6587\u6863\uff08Robert Haas\uff09 \u8be5\u53c2\u6570\u4f7f\u4f1a\u8bdd\u5728\u4efb\u4f55\u9519\u8bef\u65f6\u9000\u51fa\u3002", "title": "\u4e3a exit_on_error \u6dfb\u52a0\u6587\u6863", "commits": [], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.16", "source_hash": "539b54f7832cac997bc077d01695246973c0ae3a1615f2b603d12e4463aacb0a", "section_path": ["\u6587\u6863"], "commit_groups": [], "identity_text": "Add documentation for exit_on_error (Robert Haas) This parameter causes sessions to exit on any error.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/179", "db_id": "908bdbfedb4c022a191f27c71d8f6b60", "patch_ids": [], "statement_hash": "bd4164dcc71a35fab37aebdb11967acf818c967aaab8d8f047ec44d8d0a2266a", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-e79eba8f52c15eb5", "migration": false}, {"id": "9.1.0-eaabae809cb40d8f", "cves": [], "html": "<p>\u4e3a <a href=\"/docs/9.1/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"\u8868\u00a09.51.\u00a0\u7cfb\u7edf\u76ee\u5f55\u4fe1\u606f\u51fd\u6570\"><code>pg_options_to_table()</code></a> \u6dfb\u52a0\u6587\u6863\uff08Josh Berkus\uff09</p>\n<p>\u8be5\u51fd\u6570\u4ee5\u53ef\u8bfb\u7684\u5f62\u5f0f\u663e\u793a\u8868\u5b58\u50a8\u9009\u9879\u3002</p>", "text": "\u4e3a pg_options_to_table() \u6dfb\u52a0\u6587\u6863\uff08Josh Berkus\uff09 \u8be5\u51fd\u6570\u4ee5\u53ef\u8bfb\u7684\u5f62\u5f0f\u663e\u793a\u8868\u5b58\u50a8\u9009\u9879\u3002", "title": "\u4e3a pg_options_to_table() \u6dfb\u52a0\u6587\u6863", "commits": [], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.16", "source_hash": "b928f7055e0fcc5c0f84a2d091282d006105b24705039a0c69e77b946117c1b5", "section_path": ["\u6587\u6863"], "commit_groups": [], "identity_text": "Add documentation for pg_options_to_table() (Josh Berkus) This function shows table storage options in a readable form.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/180", "db_id": "ae096b4778d3cddbf18c080d0bd938f5", "patch_ids": [], "statement_hash": "d4c3bcb638bae2c1f6c6ece2142be1651960fa46cb36b8fe4db110179a84dc5e", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-eaabae809cb40d8f", "migration": false}, {"id": "9.1.0-fe300449c9255ac1", "cves": [], "html": "<p>\u8bb0\u5f55\u53ef\u4ee5\u4f7f\u7528 <a href=\"/docs/9.1/sql-expressions.html#FIELD-SELECTION\" title=\"4.2.4.\u00a0\u5b57\u6bb5\u9009\u62e9\"><code>(compositeval).*</code></a> \u8bed\u6cd5\u8bbf\u95ee\u6240\u6709\u7ec4\u5408\u7c7b\u578b\u5b57\u6bb5\uff08Peter Eisentraut\uff09</p>", "text": "\u8bb0\u5f55\u53ef\u4ee5\u4f7f\u7528 (compositeval).* \u8bed\u6cd5\u8bbf\u95ee\u6240\u6709\u7ec4\u5408\u7c7b\u578b\u5b57\u6bb5\uff08Peter Eisentraut\uff09", "title": "\u8bb0\u5f55\u53ef\u4ee5\u4f7f\u7528 (compositeval).* \u8bed\u6cd5\u8bbf\u95ee\u6240\u6709\u7ec4\u5408\u7c7b\u578b\u5b57\u6bb5", "commits": [], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.16", "source_hash": "7229661185246e885f9d45e9179d1c382f0b7226e59f12ab6e38d0b46b9c014f", "section_path": ["\u6587\u6863"], "commit_groups": [], "identity_text": "Document that it is possible to access all composite type fields using (compositeval).* syntax (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/181", "db_id": "4b74701eee4ef0314f6efa638500fa55", "patch_ids": [], "statement_hash": "aec0038d98d34478981e90f1c307344527bdb3dbc3e1840561ca76eadb04c1a1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-fe300449c9255ac1", "migration": false}, {"id": "9.1.0-93426c2502745a3e", "cves": [], "html": "<p>\u8bb0\u5f55 <a href=\"/docs/9.1/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"\u8868\u00a09.7.\u00a0\u5176\u4ed6\u5b57\u7b26\u4e32\u51fd\u6570\"><code>translate()</code></a> \u4f1a\u5220\u9664 <code>from</code> \u4e2d\u6ca1\u6709\u5bf9\u5e94 <code>to</code> \u5b57\u7b26\u7684\u5b57\u7b26\uff08Josh Kupershmidt\uff09</p>", "text": "\u8bb0\u5f55 translate() \u4f1a\u5220\u9664 from \u4e2d\u6ca1\u6709\u5bf9\u5e94 to \u5b57\u7b26\u7684\u5b57\u7b26\uff08Josh Kupershmidt\uff09", "title": "\u8bb0\u5f55 translate() \u4f1a\u5220\u9664 from \u4e2d\u6ca1\u6709\u5bf9\u5e94 to \u5b57\u7b26\u7684\u5b57\u7b26", "commits": [], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.16", "source_hash": "57c37559c7e4d33144b1636bebae9179ca8ebb6caf0a97924b6234cd2f0471e0", "section_path": ["\u6587\u6863"], "commit_groups": [], "identity_text": "Document that translate() removes characters in from that don't have a corresponding to character (Josh Kupershmidt)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/182", "db_id": "845a7164db65c22b109e477f104fa0b3", "patch_ids": [], "statement_hash": "2a1c5cecdfc3a12a16ccaa4fe821439b97c003ca782435dd992f3dfeb500fad0", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-93426c2502745a3e", "migration": false}, {"id": "9.1.0-714885e5e21476ed", "cves": [], "html": "<p>\u5408\u5e76 <code>CREATE CONSTRAINT TRIGGER</code> \u548c <a href=\"/docs/9.1/sql-createtrigger.html\" title=\"CREATE TRIGGER\"><code>CREATE TRIGGER</code></a> \u7684\u6587\u6863\uff08Alvaro Herrera\uff09</p>", "text": "\u5408\u5e76 CREATE CONSTRAINT TRIGGER \u548c CREATE TRIGGER \u7684\u6587\u6863\uff08Alvaro Herrera\uff09", "title": "\u5408\u5e76 CREATE CONSTRAINT TRIGGER \u548c CREATE TRIGGER \u7684\u6587\u6863", "commits": [], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.16", "source_hash": "c1fe16c0dcace7a20dcaff1a5515aa1033f277f82c8fec1aa390a0b57396d530", "section_path": ["\u6587\u6863"], "commit_groups": [], "identity_text": "Merge documentation for CREATE CONSTRAINT TRIGGER and CREATE TRIGGER (Alvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/183", "db_id": "9b65966eb48d3937804405a8e9eccdc1", "patch_ids": [], "statement_hash": "a85c50a550052585e0e6d84e9ab7fb8901af8a502b8e50b015a085352e9f32c8", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-714885e5e21476ed", "migration": false}, {"id": "9.1.0-0d2c5d796f15f12a", "cves": [], "html": "<p>\u96c6\u4e2d\u5316<a href=\"/docs/9.1/ddl-priv.html\" title=\"5.6.\u00a0\u6743\u9650\">\u6743\u9650</a>\u548c<a href=\"/docs/9.1/upgrading.html\" title=\"17.6.\u00a0\u5347\u7ea7 PostgreSQL \u96c6\u7c07\">\u5347\u7ea7</a>\u6587\u6863\uff08Bruce Momjian\uff09</p>", "text": "\u96c6\u4e2d\u5316\u6743\u9650\u548c\u5347\u7ea7\u6587\u6863\uff08Bruce Momjian\uff09", "title": "\u96c6\u4e2d\u5316\u6743\u9650\u548c\u5347\u7ea7\u6587\u6863", "commits": [], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.16", "source_hash": "3792f4bcae9ce684ab831cc2411378f6da52f8938bd2c5aa9025367db31ab8fc", "section_path": ["\u6587\u6863"], "commit_groups": [], "identity_text": "Centralize permission and upgrade documentation (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/184", "db_id": "f16388cda195e93435cfd2a5ffdbd276", "patch_ids": [], "statement_hash": "951e3b24e7276d070d8cfe55628dcbb3310509da8e32e6b4b81b53f339ce6da4", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-0d2c5d796f15f12a", "migration": false}, {"id": "9.1.0-f067f4c4764af751", "cves": [], "html": "<p>\u4e3a Solaris 10 \u6dfb\u52a0<a href=\"/docs/9.1/kernel-resources.html#SYSVIPC-PARAMETERS\" title=\"\u8868\u00a017.1.\u00a0System V IPC\u53c2\u6570\">\u5185\u6838\u8c03\u4f18\u6587\u6863</a>\uff08Josh Berkus\uff09</p>\n<p>\u6b64\u524d\u53ea\u8bb0\u5f55\u4e86 Solaris 9 \u7684\u5185\u6838\u8c03\u4f18\u3002</p>", "text": "\u4e3a Solaris 10 \u6dfb\u52a0\u5185\u6838\u8c03\u4f18\u6587\u6863\uff08Josh Berkus\uff09 \u6b64\u524d\u53ea\u8bb0\u5f55\u4e86 Solaris 9 \u7684\u5185\u6838\u8c03\u4f18\u3002", "title": "\u4e3a Solaris 10 \u6dfb\u52a0\u5185\u6838\u8c03\u4f18\u6587\u6863", "commits": [], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.16", "source_hash": "ebb5edcac79590376a717782ec747b3a75c37f404235e7f12d64f86a745c5d6b", "section_path": ["\u6587\u6863"], "commit_groups": [], "identity_text": "Add kernel tuning documentation for Solaris 10 (Josh Berkus) Previously only Solaris 9 kernel tuning was documented.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/185", "db_id": "f4be28c5bfde0cfa12139ed564f44e9f", "patch_ids": [], "statement_hash": "d039fc2eb3c3aa0de8b5231bdf03a0817c2bc8f2963294f1c8be1a01645c3942", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-f067f4c4764af751", "migration": false}, {"id": "9.1.0-ca3bd4401feb764c", "cves": [], "html": "<p>\u5728 <code>HISTORY</code> \u6587\u4ef6\u4e2d\u4e00\u81f4\u5730\u5904\u7406\u975e ASCII \u5b57\u7b26\uff08Peter Eisentraut\uff09</p>\n<p>\u867d\u7136 <code>HISTORY</code> \u6587\u4ef6\u662f\u82f1\u6587\u7684\uff0c\u4f46\u6211\u4eec\u5fc5\u987b\u5904\u7406\u8d21\u732e\u8005\u59d3\u540d\u4e2d\u7684\u975e ASCII \u5b57\u6bcd\u3002\u8fd9\u4e9b\u73b0\u5728\u88ab\u97f3\u8bd1\uff0c\u4ee5\u4fbf\u5728\u4e0d\u5047\u8bbe\u5b57\u7b26\u96c6\u7684\u60c5\u51b5\u4e0b\u4e5f\u76f8\u5f53\u6613\u8bfb\u3002</p>", "text": "\u5728 HISTORY \u6587\u4ef6\u4e2d\u4e00\u81f4\u5730\u5904\u7406\u975e ASCII \u5b57\u7b26\uff08Peter Eisentraut\uff09 \u867d\u7136 HISTORY \u6587\u4ef6\u662f\u82f1\u6587\u7684\uff0c\u4f46\u6211\u4eec\u5fc5\u987b\u5904\u7406\u8d21\u732e\u8005\u59d3\u540d\u4e2d\u7684\u975e ASCII \u5b57\u6bcd\u3002\u8fd9\u4e9b\u73b0\u5728\u88ab\u97f3\u8bd1\uff0c\u4ee5\u4fbf\u5728\u4e0d\u5047\u8bbe\u5b57\u7b26\u96c6\u7684\u60c5\u51b5\u4e0b\u4e5f\u76f8\u5f53\u6613\u8bfb\u3002", "title": "\u5728 HISTORY \u6587\u4ef6\u4e2d\u4e00\u81f4\u5730\u5904\u7406\u975e ASCII \u5b57\u7b26", "commits": [], "section": "\u6587\u6863", "category": "feature", "source_url": "/docs/release/9.1.0/#id-1.11.6.29.5.16", "source_hash": "825e3d33374947870ceccee72c8da01ef8ea4c2616aa26036ed8ea82fc5d8462", "section_path": ["\u6587\u6863"], "commit_groups": [], "identity_text": "Handle non-ASCII characters consistently in HISTORY file (Peter Eisentraut) While the HISTORY file is in English, we do have to deal with non-ASCII letters in contributor names. These are now transliterated so that they are reasonably legible without assumptions about character set.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.1.0/changes/186", "db_id": "090df20881d3760c0f891a3043aa6389", "patch_ids": [], "statement_hash": "35267e5e1da6883a5d165aa71acf2aef01c29f5e00b886e93bc2f369c1d953c1", "relations": [], "category_label": "\u65b0\u529f\u80fd", "url": "/docs/compare/?release=9.1.0#9.1.0-ca3bd4401feb764c", "migration": false}], "initial_entry_count": 203, "migration_html": "<p>\u5bf9\u4e8e\u5e0c\u671b\u4ece\u4efb\u4f55\u65e9\u671f\u7248\u672c\u8fc1\u79fb\u6570\u636e\u7684\u7528\u6237\uff0c\u9700\u8981\u4f7f\u7528 <span>pg_dump</span> \u8fdb\u884c\u8f6c\u50a8/\u6062\u590d\uff0c\u6216\u8005\u4f7f\u7528 <span>pg_upgrade</span>\u3002</p>\n<p>\u7248\u672c 9.1 \u5305\u542b\u8bb8\u591a\u53ef\u80fd\u5f71\u54cd\u4e0e\u4ee5\u524d\u7248\u672c\u517c\u5bb9\u6027\u7684\u53d8\u66f4\u3002\u8bf7\u6ce8\u610f\u4ee5\u4e0b\u4e0d\u517c\u5bb9\u4e4b\u5904\uff1a</p>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>\n<div>\n<div>\n</div>\n</div>", "category_filters": [{"key": "feature", "label": "\u65b0\u529f\u80fd", "count": 174}, {"key": "bugfix", "label": "BUG \u4fee\u590d", "count": 9}, {"key": "security", "label": "\u5b89\u5168\u76f8\u5173", "count": 0}, {"key": "performance", "label": "\u6027\u80fd\u6539\u8fdb", "count": 3}, {"key": "compatibility", "label": "\u517c\u5bb9\u6027\u53d8\u5316", "count": 17}, {"key": "improvement", "label": "\u5176\u4ed6\u6539\u8fdb", "count": 0}], "security_rows": [{"id": "CVE-2016-7048", "title": "Interactive installer downloads software over plain HTTP, then executes it", "url": "https://www.postgresql.org/support/security/CVE-2016-7048/", "score": 7.5, "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "", "description_language": "en", "fixed": "9.1.24", "fixed_url": "/docs/compare/?release=9.1.24", "affected": "9.1", "component": "packaging", "mentions": [], "evidence": "branch-matrix"}, {"id": "CVE-2016-5424", "title": "Exceptional database and role names could enable escalation to superuser", "url": "https://www.postgresql.org/support/security/CVE-2016-5424/", "score": 8.5, "vector": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "description": "", "description_language": "en", "fixed": "9.1.23", "fixed_url": "/docs/compare/?release=9.1.23", "affected": "9.1", "component": "client", "mentions": [{"build": "9.1.23", "version": "9.1.23", "title": "\u4fee\u590d\u5ba2\u6237\u7aef\u7a0b\u5e8f\u5bf9\u6570\u636e\u5e93\u540d\u548c\u89d2\u8272\u540d\u4e2d\u7279\u6b8a\u5b57\u7b26\u7684\u5904\u7406", "url": "/docs/compare/?release=9.1.23#9.1.23-5569510630fb5e18"}], "evidence": "branch-matrix"}, {"id": "CVE-2016-5423", "title": "Certain nested CASE/WHEN expressions can crash server", "url": "https://www.postgresql.org/support/security/CVE-2016-5423/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "", "description_language": "en", "fixed": "9.1.23", "fixed_url": "/docs/compare/?release=9.1.23", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.23", "version": "9.1.23", "title": "\u4fee\u590d\u5d4c\u5957 CASE-WHEN \u8868\u8fbe\u5f0f\u53ef\u80fd\u88ab\u9519\u8bef\u8bc4\u4f30\u7684\u95ee\u9898", "url": "/docs/compare/?release=9.1.23#9.1.23-d1f1d0d139e01566"}], "evidence": "branch-matrix"}, {"id": "CVE-2016-0773", "title": "Unchecked regex can crash the server", "url": "https://www.postgresql.org/support/security/CVE-2016-0773/", "score": 6.5, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H", "description": "", "description_language": "en", "fixed": "9.1.20", "fixed_url": "/docs/compare/?release=9.1.20", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.20", "version": "9.1.20", "title": "\u4fee\u590d\u6b63\u5219\u8868\u8fbe\u5f0f\u4e2d\u7684\u65e0\u9650\u5faa\u73af\u548c\u7f13\u51b2\u533a\u8d8a\u754c\u95ee\u9898", "url": "/docs/compare/?release=9.1.20#9.1.20-f56bb4796f0084d4"}], "evidence": "branch-matrix"}, {"id": "CVE-2016-0766", "title": "CVE-2016-0766", "url": "https://www.postgresql.org/support/security/CVE-2016-0766/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "", "mentions": [{"build": "9.1.20", "version": "9.1.20", "title": "\u9632\u6b62\u67d0\u4e9b PL/Java \u53c2\u6570\u88ab\u975e\u8d85\u7ea7\u7528\u6237\u8bbe\u7f6e", "url": "/docs/compare/?release=9.1.20#9.1.20-4bd6cf6c1d36bca3"}], "evidence": "release-note-mention"}, {"id": "CVE-2015-7499", "title": "CVE-2015-7499", "url": "https://www.postgresql.org/support/security/CVE-2015-7499/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "", "mentions": [{"build": "9.1.20", "version": "9.1.20", "title": "\u65b0\u589e\u53d8\u4f53\u56de\u5f52\u6d4b\u8bd5\u671f\u671b\u8f93\u51fa\u6587\u4ef6\uff0c\u4ee5\u5339\u914d\u5f53\u524dlibxml2\u7684\u884c\u4e3a", "url": "/docs/compare/?release=9.1.20#9.1.20-7110ad0033f27e27"}], "evidence": "release-note-mention"}, {"id": "CVE-2015-5288", "title": "Memory leak in crypt() function.", "url": "https://www.postgresql.org/support/security/CVE-2015-5288/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "", "description_language": "en", "fixed": "9.1.19", "fixed_url": "/docs/compare/?release=9.1.19", "affected": "9.1", "component": "contrib module", "mentions": [{"build": "9.1.19", "version": "9.1.19", "title": "\u4fee\u590dcontrib/pgcrypto\u4ee5\u68c0\u6d4b\u5e76\u62a5\u544a\u8fc7\u77ed\u7684crypt()\u76d0\u503c", "url": "/docs/compare/?release=9.1.19#9.1.19-f6d5fd9c0b0fa047"}], "evidence": "branch-matrix"}, {"id": "CVE-2015-3167", "title": "pgcrypto has multiple error messages for decryption with an incorrect key.", "url": "https://www.postgresql.org/support/security/CVE-2015-3167/", "score": 3.7, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N", "description": "", "description_language": "en", "fixed": "9.1.16", "fixed_url": "/docs/compare/?release=9.1.16", "affected": "9.1", "component": "contrib module", "mentions": [{"build": "9.1.16", "version": "9.1.16", "title": "\u5728contrib/pgcrypto\u4e2d\uff0c\u7edf\u4e00\u5c06\u89e3\u5bc6\u5931\u8d25\u62a5\u544a\u4e3a\u201cWrong key or corrupt data\u201d", "url": "/docs/compare/?release=9.1.16#9.1.16-8a218bb3e4c24db0"}], "evidence": "branch-matrix"}, {"id": "CVE-2015-3166", "title": "Unanticipated errors from the standard library.", "url": "https://www.postgresql.org/support/security/CVE-2015-3166/", "score": 5.6, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L", "description": "", "description_language": "en", "fixed": "9.1.16", "fixed_url": "/docs/compare/?release=9.1.16", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.16", "version": "9.1.16", "title": "\u6539\u8fdb\u5bf9\u7cfb\u7edf\u8c03\u7528\u5931\u8d25\u7684\u68c0\u6d4b", "url": "/docs/compare/?release=9.1.16#9.1.16-72654f8666dd7a43"}], "evidence": "branch-matrix"}, {"id": "CVE-2015-3165", "title": "Double \"free\" after authentication timeout", "url": "https://www.postgresql.org/support/security/CVE-2015-3165/", "score": 7.5, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "description": "", "description_language": "en", "fixed": "9.1.16", "fixed_url": "/docs/compare/?release=9.1.16", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.16", "version": "9.1.16", "title": "\u907f\u514d\u5ba2\u6237\u7aef\u6070\u5728\u8ba4\u8bc1\u8d85\u65f6\u5230\u671f\u524d\u65ad\u5f00\u65f6\u53ef\u80fd\u51fa\u73b0\u7684\u5d29\u6e83", "url": "/docs/compare/?release=9.1.16#9.1.16-f137684634296f0b"}], "evidence": "branch-matrix"}, {"id": "CVE-2015-0244", "title": "An error in extended protocol message reading.", "url": "https://www.postgresql.org/support/security/CVE-2015-0244/", "score": 8.1, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "description": "", "description_language": "en", "fixed": "9.1.15", "fixed_url": "/docs/compare/?release=9.1.15", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.15", "version": "9.1.15", "title": "\u4fee\u590d\u51fa\u9519\u540e\u524d\u7aef/\u540e\u7aef\u534f\u8bae\u53ef\u80fd\u5931\u53bb\u540c\u6b65\u7684\u95ee\u9898", "url": "/docs/compare/?release=9.1.15#9.1.15-5c8ec36fd01bef35"}], "evidence": "branch-matrix"}, {"id": "CVE-2015-0243", "title": "Memory errors in functions in the pgcrypto extension.", "url": "https://www.postgresql.org/support/security/CVE-2015-0243/", "score": 6.5, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H", "description": "", "description_language": "en", "fixed": "9.1.15", "fixed_url": "/docs/compare/?release=9.1.15", "affected": "9.1", "component": "contrib module", "mentions": [{"build": "9.1.15", "version": "9.1.15", "title": "\u4fee\u590dcontrib/pgcrypto\u4e2d\u7684\u7f13\u51b2\u533a\u8d8a\u754c", "url": "/docs/compare/?release=9.1.15#9.1.15-ba8a921637c059ee"}], "evidence": "branch-matrix"}, {"id": "CVE-2015-0242", "title": "Buffer overrun in replacement printf family of functions.", "url": "https://www.postgresql.org/support/security/CVE-2015-0242/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "", "description_language": "en", "fixed": "9.1.15", "fixed_url": "/docs/compare/?release=9.1.15", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.15", "version": "9.1.15", "title": "\u4fee\u590d\u66ff\u6362\u5b9e\u73b0\u7684*printf()\u51fd\u6570\u4e2d\u7684\u7f13\u51b2\u533a\u8d8a\u754c", "url": "/docs/compare/?release=9.1.15#9.1.15-5682fb8f3ee1ede9"}], "evidence": "branch-matrix"}, {"id": "CVE-2015-0241", "title": "Buffer overruns in \"to_char\" functions.", "url": "https://www.postgresql.org/support/security/CVE-2015-0241/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "", "description_language": "en", "fixed": "9.1.15", "fixed_url": "/docs/compare/?release=9.1.15", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.15", "version": "9.1.15", "title": "\u4fee\u590dto_char()\u4e2d\u7684\u7f13\u51b2\u533a\u8d8a\u754c", "url": "/docs/compare/?release=9.1.15#9.1.15-5abdf545382b956d"}], "evidence": "branch-matrix"}, {"id": "CVE-2014-8161", "title": "Constraint violation errors can cause display of values in columns which the user would not normally have rights to see.", "url": "https://www.postgresql.org/support/security/CVE-2014-8161/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "", "description_language": "en", "fixed": "9.1.15", "fixed_url": "/docs/compare/?release=9.1.15", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.15", "version": "9.1.15", "title": "\u4fee\u590d\u901a\u8fc7\u7ea6\u675f\u8fdd\u53cd\u9519\u8bef\u6d88\u606f\u7684\u4fe1\u606f\u6cc4\u9732", "url": "/docs/compare/?release=9.1.15#9.1.15-d6dd48b9aef647b0"}], "evidence": "branch-matrix"}, {"id": "CVE-2014-0067", "title": "Unauthenticated users may gain access to the database server during \"make check\"..", "url": "https://www.postgresql.org/support/security/CVE-2014-0067/", "score": 7.0, "vector": "AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "", "description_language": "en", "fixed": "9.1.15", "fixed_url": "/docs/compare/?release=9.1.15", "affected": "9.1", "component": "other", "mentions": [{"build": "9.1.15", "version": "9.1.15", "title": "\u9501\u5b9a Windows \u4e0a\u56de\u5f52\u6d4b\u8bd5\u7684\u4e34\u65f6\u5b89\u88c5", "url": "/docs/compare/?release=9.1.15#9.1.15-f18a20a2bec524ef"}, {"build": "9.1.14", "version": "9.1.14", "title": "\u4fdd\u62a4 make check \u671f\u95f4\u542f\u52a8\u7684\u4e34\u65f6 postmaster \u7684 Unix \u57df\u5957\u63a5\u5b57", "url": "/docs/compare/?release=9.1.14#9.1.14-1fe8508066777304"}, {"build": "9.1.12", "version": "9.1.12", "title": "\u5728\u56de\u5f52\u6d4b\u8bd5\u8bf4\u660e\u4e2d\u8bb0\u5f55 make check \u7684\u98ce\u9669", "url": "/docs/compare/?release=9.1.12#9.1.12-10731528cb521bec"}], "evidence": "branch-matrix"}, {"id": "CVE-2014-0066", "title": "Potential null pointer dereference crash when crypt(3) returns NULL.", "url": "https://www.postgresql.org/support/security/CVE-2014-0066/", "score": 0.0, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:N", "description": "", "description_language": "en", "fixed": "9.1.12", "fixed_url": "/docs/compare/?release=9.1.12", "affected": "9.1", "component": "contrib module", "mentions": [{"build": "9.1.12", "version": "9.1.12", "title": "\u907f\u514d\u5728 crypt() \u8fd4\u56de NULL \u65f6\u5d29\u6e83", "url": "/docs/compare/?release=9.1.12#9.1.12-14f78cee37d06ff3"}], "evidence": "branch-matrix"}, {"id": "CVE-2014-0065", "title": "Potential buffer overruns of fixed-size buffers.", "url": "https://www.postgresql.org/support/security/CVE-2014-0065/", "score": 0.0, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:N", "description": "", "description_language": "en", "fixed": "9.1.12", "fixed_url": "/docs/compare/?release=9.1.12", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.12", "version": "9.1.12", "title": "\u9632\u6b62\u56fa\u5b9a\u5927\u5c0f\u7f13\u51b2\u533a\u8d8a\u754c", "url": "/docs/compare/?release=9.1.12#9.1.12-c669fac45788e34c"}], "evidence": "branch-matrix"}, {"id": "CVE-2014-0064", "title": "Potential buffer overruns due to integer overflow in size calculations.", "url": "https://www.postgresql.org/support/security/CVE-2014-0064/", "score": 6.5, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H", "description": "", "description_language": "en", "fixed": "9.1.12", "fixed_url": "/docs/compare/?release=9.1.12", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.12", "version": "9.1.12", "title": "\u9632\u6b62\u5927\u5c0f\u8ba1\u7b97\u4e2d\u7684\u6574\u6570\u6ea2\u51fa\u5bfc\u81f4\u7f13\u51b2\u533a\u8d8a\u754c", "url": "/docs/compare/?release=9.1.12#9.1.12-a0252db5e81ebdfb"}], "evidence": "branch-matrix"}, {"id": "CVE-2014-0063", "title": "Potential buffer overruns in datetime input/output.", "url": "https://www.postgresql.org/support/security/CVE-2014-0063/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N", "description": "", "description_language": "en", "fixed": "9.1.12", "fixed_url": "/docs/compare/?release=9.1.12", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.12", "version": "9.1.12", "title": "\u9632\u6b62\u957f\u65e5\u671f\u65f6\u95f4\u5b57\u7b26\u4e32\u9020\u6210\u7f13\u51b2\u533a\u8d8a\u754c", "url": "/docs/compare/?release=9.1.12#9.1.12-0b66a90264406c0c"}], "evidence": "branch-matrix"}, {"id": "CVE-2014-0062", "title": "Race condition in CREATE INDEX allows for privilege escalation.", "url": "https://www.postgresql.org/support/security/CVE-2014-0062/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "", "description_language": "en", "fixed": "9.1.12", "fixed_url": "/docs/compare/?release=9.1.12", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.12", "version": "9.1.12", "title": "\u907f\u514d\u5728\u8868\u548c\u7d22\u5f15 DDL \u671f\u95f4\u8fdb\u884c\u591a\u6b21\u540d\u79f0\u67e5\u627e", "url": "/docs/compare/?release=9.1.12#9.1.12-76a21e41869b218b"}], "evidence": "branch-matrix"}, {"id": "CVE-2014-0061", "title": "Privilege escalation via calls to validator functions.", "url": "https://www.postgresql.org/support/security/CVE-2014-0061/", "score": 7.5, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "", "description_language": "en", "fixed": "9.1.12", "fixed_url": "/docs/compare/?release=9.1.12", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.12", "version": "9.1.12", "title": "\u9632\u6b62\u901a\u8fc7\u624b\u5de5\u8c03\u7528 PL \u9a8c\u8bc1\u5668\u51fd\u6570\u8fdb\u884c\u6743\u9650\u63d0\u5347", "url": "/docs/compare/?release=9.1.12#9.1.12-cf0ad82d2d3b3b4e"}], "evidence": "branch-matrix"}, {"id": "CVE-2014-0060", "title": "SET ROLE bypasses lack of ADMIN OPTION.", "url": "https://www.postgresql.org/support/security/CVE-2014-0060/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L", "description": "", "description_language": "en", "fixed": "9.1.12", "fixed_url": "/docs/compare/?release=9.1.12", "affected": "9.1", "component": "core server", "mentions": [{"build": "9.1.12", "version": "9.1.12", "title": "\u52a0\u56fa GRANT ... WITH ADMIN OPTION \u7684\u9650\u5236", "url": "/docs/compare/?release=9.1.12#9.1.12-46d40736d76fe1e1"}], "evidence": "branch-matrix"}, {"id": "CVE-2013-1901", "title": "An unprivileged user can run commands that could interfere with in-progress backups.", "url": "https://www.postgresql.org/support/security/CVE-2013-1901/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "9.1.9", "fixed_url": "/docs/compare/?release=9.1.9", "affected": "9.1", "component": "", "mentions": [{"build": "9.1.9", "version": "9.1.9", "title": "\u8ba9 REPLICATION \u6743\u9650\u68c0\u67e5\u6d4b\u8bd5\u5f53\u524d\u7528\u6237\u800c\u4e0d\u662f\u5df2\u8ba4\u8bc1\u7528\u6237", "url": "/docs/compare/?release=9.1.9#9.1.9-5cbd493427e749a6"}], "evidence": "branch-matrix"}, {"id": "CVE-2013-1900", "title": "Random numbers generated by contrib/pgcrypto functions may be easy for another database user to guess", "url": "https://www.postgresql.org/support/security/CVE-2013-1900/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "9.1.9", "fixed_url": "/docs/compare/?release=9.1.9", "affected": "9.1", "component": "", "mentions": [{"build": "9.1.9", "version": "9.1.9", "title": "\u5728\u6bcf\u4e2a postmaster \u5b50\u8fdb\u7a0b\u4e2d\u91cd\u7f6e OpenSSL \u968f\u673a\u72b6\u6001", "url": "/docs/compare/?release=9.1.9#9.1.9-2c6247fbff83692c"}], "evidence": "branch-matrix"}, {"id": "CVE-2013-1899", "title": "A connection request containing a database name that begins with \"-\" may be crafted to damage or destroy files within a server's data directory", "url": "https://www.postgresql.org/support/security/CVE-2013-1899/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "9.1.9", "fixed_url": "/docs/compare/?release=9.1.9", "affected": "9.1", "component": "", "mentions": [{"build": "9.1.9", "version": "9.1.9", "title": "\u4fee\u590d\u670d\u52a1\u5668\u547d\u4ee4\u884c\u5f00\u5173\u89e3\u6790\u4e0d\u5b89\u5168\u7684\u95ee\u9898", "url": "/docs/compare/?release=9.1.9#9.1.9-5a0bba298aca3ca2"}], "evidence": "branch-matrix"}, {"id": "CVE-2013-0255", "title": "executing enum_recv() with wrong parameters crashes server", "url": "https://www.postgresql.org/support/security/CVE-2013-0255/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "9.1.8", "fixed_url": "/docs/compare/?release=9.1.8", "affected": "9.1", "component": "", "mentions": [{"build": "9.1.8", "version": "9.1.8", "title": "\u9632\u6b62\u4ece SQL \u6267\u884c enum_recv", "url": "/docs/compare/?release=9.1.8#9.1.8-91b92bd203b9332b"}], "evidence": "branch-matrix"}, {"id": "CVE-2012-3489", "title": "xml_parse() DTD validation can be used to read arbitrary files", "url": "https://www.postgresql.org/support/security/CVE-2012-3489/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "9.1.5", "fixed_url": "/docs/compare/?release=9.1.5", "affected": "9.1", "component": "", "mentions": [{"build": "9.1.5", "version": "9.1.5", "title": "\u9632\u6b62\u901a\u8fc7 XML \u5b9e\u4f53\u5f15\u7528\u8bbf\u95ee\u5916\u90e8\u6587\u4ef6/URL", "url": "/docs/compare/?release=9.1.5#9.1.5-f89140ac431117c2"}, {"build": "9.1.5", "version": "9.1.5", "title": "\u9632\u6b62\u901a\u8fc7 contrib/xml2 \u7684 xslt_process() \u8bbf\u95ee\u5916\u90e8\u6587\u4ef6/URL", "url": "/docs/compare/?release=9.1.5#9.1.5-2be6b2938ecf24c1"}], "evidence": "branch-matrix"}, {"id": "CVE-2012-3488", "title": "contrib/xml2's xslt_process() can be used to read and write arbitrary files", "url": "https://www.postgresql.org/support/security/CVE-2012-3488/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "9.1.5", "fixed_url": "/docs/compare/?release=9.1.5", "affected": "9.1", "component": "", "mentions": [{"build": "9.1.5", "version": "9.1.5", "title": "\u9632\u6b62\u901a\u8fc7 contrib/xml2 \u7684 xslt_process() \u8bbf\u95ee\u5916\u90e8\u6587\u4ef6/URL", "url": "/docs/compare/?release=9.1.5#9.1.5-2be6b2938ecf24c1"}], "evidence": "branch-matrix"}, {"id": "CVE-2012-2655", "title": "SECURITY DEFINER and SET attributes on procedural call handlers are not ignored and can be used to crash the server", "url": "https://www.postgresql.org/support/security/CVE-2012-2655/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "9.1.4", "fixed_url": "/docs/compare/?release=9.1.4", "affected": "9.1", "component": "", "mentions": [{"build": "9.1.4", "version": "9.1.4", "title": "\u5ffd\u7565\u8fc7\u7a0b\u8bed\u8a00\u8c03\u7528\u5904\u7406\u7a0b\u5e8f\u7684 SECURITY DEFINER \u548c SET \u5c5e\u6027", "url": "/docs/compare/?release=9.1.4#9.1.4-950752998fe1f2a1"}], "evidence": "branch-matrix"}, {"id": "CVE-2012-2143", "title": "Passwords containing the byte 0x80 passed to the crypt() function in pgcrypto are incorrectly truncated if DES encryption was used", "url": "https://www.postgresql.org/support/security/CVE-2012-2143/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "9.1.4", "fixed_url": "/docs/compare/?release=9.1.4", "affected": "9.1", "component": "", "mentions": [{"build": "9.1.4", "version": "9.1.4", "title": "\u4fee\u590d contrib/pgcrypto \u7684 DES crypt() \u51fd\u6570\u4e2d\u4e0d\u6b63\u786e\u7684\u53e3\u4ee4\u53d8\u6362", "url": "/docs/compare/?release=9.1.4#9.1.4-f7e027714cbe55a9"}], "evidence": "branch-matrix"}, {"id": "CVE-2012-0868", "title": "Line breaks in object names can be exploited to execute arbitrary SQL when reloading a pg_dump file.", "url": "https://www.postgresql.org/support/security/CVE-2012-0868/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "9.1.3", "fixed_url": "/docs/compare/?release=9.1.3", "affected": "9.1", "component": "", "mentions": [{"build": "9.1.3", "version": "9.1.3", "title": "\u628a pg_dump \u6ce8\u91ca\u4e2d\u5199\u5165\u7684\u540d\u79f0\u91cc\u7684\u6362\u884c\u7b26\u8f6c\u6362\u4e3a\u7a7a\u683c", "url": "/docs/compare/?release=9.1.3#9.1.3-ad3fba8fa05ed7c5"}], "evidence": "branch-matrix"}, {"id": "CVE-2012-0867", "title": "SSL certificate name checks are truncated to 32 characters, allowing connection spoofing under some circumstances when using third party certificate authorities.", "url": "https://www.postgresql.org/support/security/CVE-2012-0867/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "9.1.3", "fixed_url": "/docs/compare/?release=9.1.3", "affected": "9.1", "component": "", "mentions": [{"build": "9.1.3", "version": "9.1.3", "title": "\u79fb\u9664 SSL \u8bc1\u4e66\u4e2d\u901a\u7528\u540d\u957f\u5ea6\u7684\u4efb\u610f\u9650\u5236", "url": "/docs/compare/?release=9.1.3#9.1.3-df1d463a920aaa1e"}], "evidence": "branch-matrix"}, {"id": "CVE-2012-0866", "title": "Permissions on a function called by a trigger are not properly checked.", "url": "https://www.postgresql.org/support/security/CVE-2012-0866/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "9.1.3", "fixed_url": "/docs/compare/?release=9.1.3", "affected": "9.1", "component": "", "mentions": [{"build": "9.1.3", "version": "9.1.3", "title": "\u8ba9 CREATE TRIGGER \u8981\u6c42\u5bf9\u89e6\u53d1\u5668\u51fd\u6570\u6709\u6267\u884c\u6743\u9650", "url": "/docs/compare/?release=9.1.3#9.1.3-f083a5a6d2ce0179"}], "evidence": "branch-matrix"}, {"id": "CVE-2007-4772", "title": "CVE-2007-4772", "url": "https://www.postgresql.org/support/security/CVE-2007-4772/", "score": null, "vector": "", "description": "", "description_language": "en", "fixed": "", "fixed_url": "", "affected": "", "component": "", "mentions": [{"build": "9.1.20", "version": "9.1.20", "title": "\u4fee\u590d\u6b63\u5219\u8868\u8fbe\u5f0f\u7f16\u8bd1\u5668\u4f7f\u5176\u5904\u7406\u7ea6\u675f\u5f27\u6784\u6210\u7684\u73af", "url": "/docs/compare/?release=9.1.20#9.1.20-82d8694e58be71f9"}], "evidence": "release-note-mention"}], "security_covered": true, "release_as_of": "2026-09-26", "security_as_of": "2026-09-26", "policy_url": "https://www.postgresql.org/support/versioning/", "pdfs": [{"label": "A4 PDF", "bytes": 13941264, "url": "/files/documentation/pdf/9.1/postgresql-9.1-A4.pdf"}, {"label": "US Letter PDF", "bytes": 13936138, "url": "/files/documentation/pdf/9.1/postgresql-9.1-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": ""}]}