{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2017-10-05", "build": "10.0", "major": "10", "minor": 0, "manual": "10", "status": "stable", "doc_git": "", "version": "10.0", "eol_date": "2022-11-10", "date_text": "2017-10-05", "supported": false, "manual_url": "/docs/10/release-10.html", "source_url": "/docs/release/10.0/", "entry_count": 189, "placeholder": false, "content_hash": "264461d31c0119660e19e9078327414130a092db22a06016667627ed72fcd086", "manual_build": "10.23", "source_as_of": "", "changes_count": 162, "doc_loaded_at": "2026-09-26T02:56:43.207462", "migration_html": "<p>对于希望从任何先前版本迁移数据的用户，需要使用<a href=\"/docs/10/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a>进行导出/恢复，或使用<a href=\"/docs/10/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a>或逻辑复制。有关迁移到新主版本的一般信息，请参见<a href=\"/docs/10/upgrading.html\" title=\"18.6. 升级 PostgreSQL 集簇\">第 18.6 节</a>。</p>\n<p>版本 10 包含许多可能影响与先前版本兼容性的变更。请注意以下不兼容性：</p>\n<div>\n</div>", "compatibility_count": 27, "label": "10.0", "status_label": "历史版本", "eol": "2022-11-10", "age_days": 3282, "support_days": -1420}, "groups": [{"date": "2017-10-05", "build": "10.0", "major": "10", "minor": 0, "manual": "10", "status": "stable", "doc_git": "", "version": "10.0", "eol_date": "2022-11-10", "date_text": "2017-10-05", "supported": false, "manual_url": "/docs/10/release-10.html", "source_url": "/docs/release/10.0/", "entry_count": 189, "placeholder": false, "content_hash": "264461d31c0119660e19e9078327414130a092db22a06016667627ed72fcd086", "manual_build": "10.23", "source_as_of": "", "changes_count": 162, "doc_loaded_at": "2026-09-26T02:56:43.207462", "migration_html": "<p>对于希望从任何先前版本迁移数据的用户，需要使用<a href=\"/docs/10/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a>进行导出/恢复，或使用<a href=\"/docs/10/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a>或逻辑复制。有关迁移到新主版本的一般信息，请参见<a href=\"/docs/10/upgrading.html\" title=\"18.6. 升级 PostgreSQL 集簇\">第 18.6 节</a>。</p>\n<p>版本 10 包含许多可能影响与先前版本兼容性的变更。请注意以下不兼容性：</p>\n<div>\n</div>", "compatibility_count": 27, "label": "10.0", "status_label": "历史版本", "eol": "2022-11-10", "age_days": 3282, "support_days": -1420, "entries": [{"id": "10.0-6d840e8773b48bcf", "cves": [], "html": "<p>使用 <span>pg_upgrade</span> 从任何先前的 <span>PostgreSQL</span> 大版本升级后，必须重建 hash 索引（Mithun Cy，Robert Haas，Amit Kapila）</p>\n<p>hash 索引的重大改进使这一要求成为必要。<span>pg_upgrade</span> 会创建一个脚本来协助完成此操作。</p>", "text": "使用 pg_upgrade 从任何先前的 PostgreSQL 大版本升级后，必须重建 hash 索引（Mithun Cy，Robert Haas，Amit Kapila） hash 索引的重大改进使这一要求成为必要。pg_upgrade 会创建一个脚本来协助完成此操作。", "title": "使用 pg_upgrade 从任何先前的 PostgreSQL 大版本升级后，必须重建 hash 索引", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "979cd752f8f4fc06fd9ae5eb92d7adcfbf373ba63388989ff024eea414a78f2c", "section_path": ["兼容性"], "commit_groups": [["620b49a16"], ["a95410e2e"], ["ea69a0dea"]], "identity_text": "Hash indexes must be rebuilt after pg_upgrade-ing from any previous major PostgreSQL version (Mithun Cy, Robert Haas, Amit Kapila) Major hash index improvements necessitated this requirement. pg_upgrade will create a script to assist with this.", "commit_aliases": ["620b49a16", "a95410e2e", "ea69a0dea"], "source_commits": ["620b49a16", "a95410e2e", "ea69a0dea"], "source_entry_id": "10.0/migration/001", "db_id": "a160d4c3b43ec4e671044c3176ac1458", "patch_ids": ["075f3ebb20a2eda8014f73811801ac39", "a97771610174f839f70cdb13dca22ba7", "cf52f7bc92da3e9c0404fc6b0887717c"], "statement_hash": "969273d87717dca7d30875343075baf2c6bcef69cb275fc4242620f76180075e", "relations": [{"rule": 2, "type": "related", "target": "1b1b0c796b5562126f6326ed5ed1fffe", "evidence": {"same_day": true, "patch_ids": ["075f3ebb20a2eda8014f73811801ac39", "cf52f7bc92da3e9c0404fc6b0887717c"]}}], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": [{"db_id": "1b1b0c796b5562126f6326ed5ed1fffe", "kind": "related", "version": "10.0", "label": "10.0", "title": "提升 hash 索引性能", "evidence": {"same_day": true, "patch_ids": ["075f3ebb20a2eda8014f73811801ac39", "cf52f7bc92da3e9c0404fc6b0887717c"]}, "url": "/docs/compare/?release=10.0#10.0-c9bb65823060211b", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3"}]}, {"id": "10.0-5de7c7e2839ed982", "cves": [], "html": "<p>将预写式日志目录 <code>pg_xlog</code> 重命名为 <a href=\"/docs/10/wal.html\" title=\"第 30 章 可靠性与预写式日志\"><code>pg_wal</code></a>，将事务状态目录 <code>pg_clog</code> 重命名为 <code>pg_xact</code>（Michael Paquier）</p>\n<p>用户有时会误以为这些目录只包含无关紧要的日志文件，进而手动删除预写式日志文件或事务状态文件，造成无法恢复的数据丢失。这些名称的修改旨在减少今后发生此类错误。</p>", "text": "将预写式日志目录 pg_xlog 重命名为 pg_wal，将事务状态目录 pg_clog 重命名为 pg_xact（Michael Paquier） 用户有时会误以为这些目录只包含无关紧要的日志文件，进而手动删除预写式日志文件或事务状态文件，造成无法恢复的数据丢失。这些名称的修改旨在减少今后发生此类错误。", "title": "将预写式日志目录 pg_xlog 重命名为 pg_wal，将事务状态目录 pg_clog 重命名为 pg_xact", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "af9ee2b3d2278d7550a9621f7841769259578e44d733b4d47f29de86fb08e522", "section_path": ["兼容性"], "commit_groups": [["88e66d193"], ["f82ec32ac"]], "identity_text": "Rename write-ahead log directory pg_xlog to pg_wal, and rename transaction status directory pg_clog to pg_xact (Michael Paquier) Users have occasionally thought that these directories contained only inessential log files, and proceeded to remove write-ahead log files or transaction status files manually, causing irrecoverable data loss. These name changes are intended to discourage such errors in future.", "commit_aliases": ["88e66d193", "f82ec32ac"], "source_commits": ["88e66d193", "f82ec32ac"], "source_entry_id": "10.0/migration/002", "db_id": "80285bd02246ccce799ef0363b672bcc", "patch_ids": ["d84e8e8f606e3e51f78f2181a479d742", "f93606131cb1e0a019c5b3f5c7532feb"], "statement_hash": "ec76b024b34c1e50ceda2ce53bad68b37a0edfeed2ef948cf3e48222bc181b3f", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-2117f774f077ec2c", "cves": [], "html": "<p>重命名名称中引用 <span>“<span>xlog</span>”</span> 的 <acronym>SQL</acronym> 函数、工具和选项，改用 <span>“<span>wal</span>”</span>（Robert Haas）</p>\n<p>例如，<code>pg_switch_xlog()</code> 改为 <code>pg_switch_wal()</code>，<span>pg_receivexlog</span> 改为 <span>pg_receivewal</span>，<code>--xlogdir</code> 改为 <code>--waldir</code>。这是为了与 <code>pg_xlog</code> 目录名的变更保持一致；总体而言，所有面向用户的位置都不再使用 <span>“<span>xlog</span>”</span> 这一术语。</p>", "text": "重命名名称中引用 “xlog” 的 SQL 函数、工具和选项，改用 “wal”（Robert Haas） 例如，pg_switch_xlog() 改为 pg_switch_wal()，pg_receivexlog 改为 pg_receivewal，--xlogdir 改为 --waldir。这是为了与 pg_xlog 目录名的变更保持一致；总体而言，所有面向用户的位置都不再使用 “xlog” 这一术语。", "title": "重命名名称中引用 “xlog” 的 SQL 函数、工具和选项，改用 “wal”", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "c4c428d93e92078d48f5da2f4fadfe752783c1b7355bc4baa1eeb7515596a8b1", "section_path": ["兼容性"], "commit_groups": [["0dfa89ba2"], ["62e8b3875"], ["806091c96"], ["85c11324c"]], "identity_text": "Rename SQL functions, tools, and options that reference xlog to wal (Robert Haas) For example, pg_switch_xlog() becomes pg_switch_wal(), pg_receivexlog becomes pg_receivewal, and --xlogdir becomes --waldir. This is for consistency with the change of the pg_xlog directory name; in general, the xlog terminology is no longer used in any user-facing places.", "commit_aliases": ["0dfa89ba2", "62e8b3875", "806091c96", "85c11324c"], "source_commits": ["0dfa89ba2", "62e8b3875", "806091c96", "85c11324c"], "source_entry_id": "10.0/migration/003", "db_id": "f81b235fd974a45e97dce4c71daf943f", "patch_ids": ["6a4d6b020922a3a887ea412cc3682599", "9eb77ae95f5e7e827015a438c271c6be", "ba626d839bd9a2ed87290e2758dfae8a", "f09a894784bf6aa7890547a380d4374c"], "statement_hash": "8c8f22793476d0398db4e84e1220ae39641b2bd3861c76152f4d514e518c1f41", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-5073462f4958ca08", "cves": [], "html": "<p>重命名与 <acronym>WAL</acronym> 相关的函数和视图，使用 <code>lsn</code> 代替 <code>location</code>（David Rowley）</p>\n<p>以前，这两种术语的使用并不一致。</p>", "text": "重命名与 WAL 相关的函数和视图，使用 lsn 代替 location（David Rowley） 以前，这两种术语的使用并不一致。", "title": "重命名与 WAL 相关的函数和视图，使用 lsn 代替 location", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "17daf2d5977844d28ed5fe857912f3fa1b77b45529e16795c9affd1449833d42", "section_path": ["兼容性"], "commit_groups": [["d10c626de"]], "identity_text": "Rename WAL-related functions and views to use lsn instead of location (David Rowley) There was previously an inconsistent mixture of the two terminologies.", "commit_aliases": ["d10c626de"], "source_commits": ["d10c626de"], "source_entry_id": "10.0/migration/004", "db_id": "68e45165420d584126ae831afc42c08f", "patch_ids": ["1aeece2c2dce8568ac68eb8a4d85586d"], "statement_hash": "005c8de951edcc16c5d18e1b4b864979fe39b0b3e6d8a6465eedb1f1c575886e", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-29b998a777d54533", "cves": [], "html": "<p>更改查询 <code>SELECT</code> 列表中集合返回函数的实现（Andres Freund）</p>\n<p>现在，集合返回函数会在 <code>SELECT</code> 列表中的标量表达式求值之前求值，效果类似于将它们放在 <code>LATERAL FROM</code> 子句项中。这使存在多个集合返回函数时的语义更合理。如果它们返回的行数不同，会通过补充空值将较短的结果扩展到最长结果的长度。以前，各个结果会循环产生，直到它们同时结束，产生的行数等于各函数周期的最小公倍数。此外，现在禁止在 <code>CASE</code> 和 <code>COALESCE</code> 结构内使用集合返回函数。更多信息参见<a href=\"/docs/10/xfunc-sql.html#XFUNC-SQL-FUNCTIONS-RETURNING-SET\" title=\"37.4.8. 返回集合的SQL函数\">第 37.4.8 节</a>。</p>", "text": "更改查询 SELECT 列表中集合返回函数的实现（Andres Freund） 现在，集合返回函数会在 SELECT 列表中的标量表达式求值之前求值，效果类似于将它们放在 LATERAL FROM 子句项中。这使存在多个集合返回函数时的语义更合理。如果它们返回的行数不同，会通过补充空值将较短的结果扩展到最长结果的长度。以前，各个结果会循环产生，直到它们同时结束，产生的行数等于各函数周期的最小公倍数。此外，现在禁止在 CASE 和 COALESCE 结构内使用集合返回函数。更多信息参见第 37.4.8 节。", "title": "更改查询 SELECT 列表中集合返回函数的实现", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "bb136de4facba5029c9d4b6528158e1aeda2f4d7ecbdd71359d5c6747d1a94f9", "section_path": ["兼容性"], "commit_groups": [["0436f6bde"], ["69f4b9c85"], ["d43a619c6"], ["f13a1277a"]], "identity_text": "Change the implementation of set-returning functions appearing in a query's SELECT list (Andres Freund) Set-returning functions are now evaluated before evaluation of scalar expressions in the SELECT list, much as though they had been placed in a LATERAL FROM-clause item. This allows saner semantics for cases where multiple set-returning functions are present. If they return different numbers of rows, the shorter results are extended to match the longest result by adding nulls. Previously the results were cycled until they all terminated at the same time, producing a number of rows equal to the least common multiple of the functions' periods. In addition, set-returning functions are now disallowed within CASE and COALESCE constructs. For more information see xfunc-sql-functions-returning-set .", "commit_aliases": ["0436f6bde", "69f4b9c85", "d43a619c6", "f13a1277a"], "source_commits": ["0436f6bde", "69f4b9c85", "d43a619c6", "f13a1277a"], "source_entry_id": "10.0/migration/005", "db_id": "23e81de3f2d06b2bd95d2c86ad5b36d2", "patch_ids": ["07c35ecbc88a619c2fbc8482992831c2", "32917686c9706fdccf5c8db8b215e42b", "63d3894886876aef59f30afd270d8764", "7352d8415df57ef931ad4240504b521c"], "statement_hash": "fe3da8cd949a1c3f369a58b5f6bfd555df52aefb5ef1f3b21ac1c19d681be8f9", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-393cdb7d8c98cfc6", "cves": [], "html": "<p>在 <code>UPDATE ... SET (<em><code>column_list</code></em>) = <em><code>row_constructor</code></em></code> 中使用标准行构造器语法（Tom Lane）</p>\n<p>现在，<em><code>row_constructor</code></em> 可以以关键字 <code>ROW</code> 开头；以前必须省略该关键字。如果 <em><code>column_list</code></em> 中只有一个列名，则 <em><code>row_constructor</code></em> 现在必须使用 <code>ROW</code> 关键字，否则它就不是有效的行构造器，而只是带括号的表达式。此外，<em><code>row_constructor</code></em> 内出现的 <code><em><code>table_name</code></em>.*</code> 现在会展开为多列，与 <em><code>row_constructor</code></em> 在其他场景中的用法一致。</p>", "text": "在 UPDATE ... SET (column_list) = row_constructor 中使用标准行构造器语法（Tom Lane） 现在，row_constructor 可以以关键字 ROW 开头；以前必须省略该关键字。如果 column_list 中只有一个列名，则 row_constructor 现在必须使用 ROW 关键字，否则它就不是有效的行构造器，而只是带括号的表达式。此外，row_constructor 内出现的 table_name.* 现在会展开为多列，与 row_constructor 在其他场景中的用法一致。", "title": "在 UPDATE ... SET (column_list) = row_constructor 中使用标准行构造器语法", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "33ccc5a154f771784f36ba351506c14d35799245a7a71972c7ee54a8fe4d6293", "section_path": ["兼容性"], "commit_groups": [["906bfcad7"]], "identity_text": "Use standard row constructor syntax in UPDATE ... SET (column_list) = row_constructor (Tom Lane) The row_constructor can now begin with the keyword ROW; previously that had to be omitted. If just one column name appears in the column_list, then the row_constructor now must use the ROW keyword, since otherwise it is not a valid row constructor but just a parenthesized expression. Also, an occurrence of table_name.* within the row_constructor is now expanded into multiple columns, as occurs in other uses of row_constructors.", "commit_aliases": ["906bfcad7"], "source_commits": ["906bfcad7"], "source_entry_id": "10.0/migration/006", "db_id": "a498a1b4841b05650f1acb09c9006c64", "patch_ids": ["3a968bb770d24690a69ff5e83154e464"], "statement_hash": "4ae4fb49cc99d07123e4f0966a2be6b676628f76f02a9bb8d86f0b79c2e42d30", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-17147a94ff949ab6", "cves": [], "html": "<p>当 <code>ALTER TABLE ... ADD PRIMARY KEY</code> 将列标记为 <code>NOT NULL</code> 时，此变更现在也会传播到继承子表（Michael Paquier）</p>", "text": "当 ALTER TABLE ... ADD PRIMARY KEY 将列标记为 NOT NULL 时，此变更现在也会传播到继承子表（Michael Paquier）", "title": "当 ALTER TABLE ... ADD PRIMARY KEY 将列标记为 NOT NULL 时，此变更现在也会传播到继承子表", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "ab46d8e1fc2f90d077237c1323ee5fb5c245eec43e7cdcbc9ca1a3761bd6cb02", "section_path": ["兼容性"], "commit_groups": [["c30f1770a"]], "identity_text": "When ALTER TABLE ... ADD PRIMARY KEY marks columns NOT NULL, that change now propagates to inheritance child tables as well (Michael Paquier)", "commit_aliases": ["c30f1770a"], "source_commits": ["c30f1770a"], "source_entry_id": "10.0/migration/007", "db_id": "f826d00cf37c0e2378b8e4e0e4127667", "patch_ids": ["671babdafa42647967723d2e4906d9b5"], "statement_hash": "29cb1595dbaca8e7b34496ec97f0c1db2cebf19a7081e8ef32c8554e0b6cf1f0", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-e9a11f32fba2d59e", "cves": [], "html": "<p>防止语句级触发器在每条语句中触发多次（Tom Lane）</p>\n<p>如果可写 CTE 更新的表也被包含它的语句或另一个可写 CTE 更新，<code>BEFORE STATEMENT</code> 或 <code>AFTER STATEMENT</code> 触发器就会触发多次。此外，如果受外键实施动作（如 <code>ON DELETE CASCADE</code>）影响的表上存在语句级触发器，它们可能在每条外层 SQL 语句中触发多次。这违反 SQL 标准，因此予以更改。</p>", "text": "防止语句级触发器在每条语句中触发多次（Tom Lane） 如果可写 CTE 更新的表也被包含它的语句或另一个可写 CTE 更新，BEFORE STATEMENT 或 AFTER STATEMENT 触发器就会触发多次。此外，如果受外键实施动作（如 ON DELETE CASCADE）影响的表上存在语句级触发器，它们可能在每条外层 SQL 语句中触发多次。这违反 SQL 标准，因此予以更改。", "title": "防止语句级触发器在每条语句中触发多次", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "719038a164abfcc20ab22db979b15459926a2c90cde090d25ca13638dd6829db", "section_path": ["兼容性"], "commit_groups": [["54d4d0ff6"], ["5cc234931"]], "identity_text": "Prevent statement-level triggers from firing more than once per statement (Tom Lane) Cases involving writable CTEs updating the same table updated by the containing statement, or by another writable CTE, fired BEFORE STATEMENT or AFTER STATEMENT triggers more than once. Also, if there were statement-level triggers on a table affected by a foreign key enforcement action (such as ON DELETE CASCADE), they could fire more than once per outer SQL statement. This is contrary to the SQL standard, so change it.", "commit_aliases": ["54d4d0ff6", "5cc234931"], "source_commits": ["54d4d0ff6", "5cc234931"], "source_entry_id": "10.0/migration/008", "db_id": "18c9845b9c3de16f35f82dd212309209", "patch_ids": ["858538d96ec7c701a4e322c69cc3d229", "a9f553e00c3cab464383af8d9dced430"], "statement_hash": "a1884de8797eb1cd0b90a4cbb4c2bfc17ac5bf24e52b62c5d977f5407a46586a", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-fefc93268b3da86d", "cves": [], "html": "<p>将序列的元数据字段移入新的 <a href=\"/docs/10/catalog-pg-sequence.html\" title=\"51.46. pg_sequence\"><code>pg_sequence</code></a> 系统目录（Peter Eisentraut）</p>\n<p>序列关系现在只存储 <code>nextval()</code> 可以修改的字段，即 <code>last_value</code>、<code>log_cnt</code> 和 <code>is_called</code>。起始值和增量等其他序列属性保存在 <code>pg_sequence</code> 目录的对应行中。<code>ALTER SEQUENCE</code> 的更新现在完全具有事务性，这意味着序列会被锁定到提交为止。<code>nextval()</code> 和 <code>setval()</code> 函数仍然不具有事务性。</p>\n<p>此项修改引入的主要不兼容之处在于，从序列关系中查询时，现在只会返回上述三个字段。要获取序列的其他属性，应用必须查询 <code>pg_sequence</code>。新的系统视图 <a href=\"/docs/10/view-pg-sequences.html\" title=\"51.84. pg_sequences\"><code>pg_sequences</code></a> 也可用于此目的；它提供的列名与现有代码更为兼容。</p>\n<p>此外，为 <code>SERIAL</code> 列创建的序列现在生成 32 位正值，而以前的版本生成 64 位值。如果这些值只存储在列中，则没有可见影响。</p>\n<p><span>psql</span> 的 <code>\\d</code> 命令针对序列的输出也经过了重新设计。</p>", "text": "将序列的元数据字段移入新的 pg_sequence 系统目录（Peter Eisentraut） 序列关系现在只存储 nextval() 可以修改的字段，即 last_value、log_cnt 和 is_called。起始值和增量等其他序列属性保存在 pg_sequence 目录的对应行中。ALTER SEQUENCE 的更新现在完全具有事务性，这意味着序列会被锁定到提交为止。nextval() 和 setval() 函数仍然不具有事务性。 此项修改引入的主要不兼容之处在于，从序列关系中查询时，现在只会返回上述三个字段。要获取序列的其他属性，应用必须查询 pg_sequence。新的系统视图 pg_sequences 也可用于此目的；它提供的列名与现有代码更为兼容。 此外，为 SERIAL 列创建的序列现在生成 32 位正值，而以前的版本生成 64 位值。如果这些值只存储在列中，则没有可见影响。 psql 的 \\d 命令针对序列的输出也经过了重新设计。", "title": "将序列的元数据字段移入新的 pg_sequence 系统目录", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "0282bb771f2ed05149f275f325db0bba21610f61f56803ebfff481e8a47d8f39", "section_path": ["兼容性"], "commit_groups": [["1753b1b02"], ["3d79013b9"], ["5cc5987ce"], ["67dc4ccbb"], ["f8dc1985f"]], "identity_text": "Move sequences' metadata fields into a new pg_sequence system catalog (Peter Eisentraut) A sequence relation now stores only the fields that can be modified by nextval(), that is last_value, log_cnt, and is_called. Other sequence properties, such as the starting value and increment, are kept in a corresponding row of the pg_sequence catalog. ALTER SEQUENCE updates are now fully transactional, implying that the sequence is locked until commit. The nextval() and setval() functions remain nontransactional. The main incompatibility introduced by this change is that selecting from a sequence relation now returns only the three fields named above. To obtain the sequence's other properties, applications must look into pg_sequence. The new system view pg_sequences can also be used for this purpose; it provides column names that are more compatible with existing code. Also, sequences created for SERIAL columns now generate positive 32-bit wide values, whereas previous versions generated 64-bit wide values. This has no visible effect if the values are only stored in a column. The output of psql's \\d command for a sequence has been redesigned, too.", "commit_aliases": ["1753b1b02", "3d79013b9", "5cc5987ce", "67dc4ccbb", "f8dc1985f"], "source_commits": ["1753b1b02", "3d79013b9", "5cc5987ce", "67dc4ccbb", "f8dc1985f"], "source_entry_id": "10.0/migration/009", "db_id": "dd41702c3847680a92fcab950d0c16f5", "patch_ids": ["116b00fc7be48e2eb9357b6612cae1fc", "224dec8a86f73bcdd6b319043f9cda8e", "920b144b3a063c740306ad0908e4cf09", "bb86641bbf189bb28b156cc93fafb0eb", "c10123d47ed43b2f50d32b9946032423"], "statement_hash": "d3c91393d9d3d2d58fbad84dc9c619ea2fbabfcc392148614a0b1049ed5a3ae0", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-e16e813c968e72ec", "cves": [], "html": "<p>使 <span><a href=\"/docs/10/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a></span> 默认以流方式传输恢复备份所需的 <acronym>WAL</acronym>（Magnus Hagander）</p>\n<p>这将 <span>pg_basebackup</span> 的 <code>-X</code>/<code>--wal-method</code> 默认值改为 <code>stream</code>。新增选项值 <code>none</code>，用于复现旧行为。<span>pg_basebackup</span> 的 <code>-x</code> 选项已移除（请改用 <code>-X fetch</code>）。</p>", "text": "使 pg_basebackup 默认以流方式传输恢复备份所需的 WAL（Magnus Hagander） 这将 pg_basebackup 的 -X/--wal-method 默认值改为 stream。新增选项值 none，用于复现旧行为。pg_basebackup 的 -x 选项已移除（请改用 -X fetch）。", "title": "使 pg_basebackup 默认以流方式传输恢复备份所需的 WAL", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "977103b87ca404136d9101051adbb947a1b7ad8894474539622f59bbcba730cb", "section_path": ["兼容性"], "commit_groups": [["9a4d51077"]], "identity_text": "Make app-pgbasebackup stream the WAL needed to restore the backup by default (Magnus Hagander) This changes pg_basebackup's -X/--wal-method default to stream. An option value none has been added to reproduce the old behavior. The pg_basebackup option -x has been removed (instead, use -X fetch).", "commit_aliases": ["9a4d51077"], "source_commits": ["9a4d51077"], "source_entry_id": "10.0/migration/010", "db_id": "e4e1aaedeb708ca9dff18820ca2a1ac7", "patch_ids": ["6af90247d7d493799c808fb7275bbf31"], "statement_hash": "b50ba9e747a8daf33407616179876a987916e087fa5bb8dac8d5b16858b090d4", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-3d650c3979801ef0", "cves": [], "html": "<p>更改逻辑复制使用 <a href=\"/docs/10/client-authentication.html#AUTH-PG-HBA-CONF\" title=\"20.1. pg_hba.conf 文件\"><code>pg_hba.conf</code></a> 的方式（Peter Eisentraut）</p>\n<p>在以前的版本中，逻辑复制连接要求数据库列使用 <code>replication</code> 关键字。从此版本起，逻辑复制匹配包含数据库名或 <code>all</code> 等关键字的普通条目。物理复制继续使用 <code>replication</code> 关键字。由于内置逻辑复制是此版本的新功能，这项变更只影响第三方逻辑复制插件的用户。</p>", "text": "更改逻辑复制使用 pg_hba.conf 的方式（Peter Eisentraut） 在以前的版本中，逻辑复制连接要求数据库列使用 replication 关键字。从此版本起，逻辑复制匹配包含数据库名或 all 等关键字的普通条目。物理复制继续使用 replication 关键字。由于内置逻辑复制是此版本的新功能，这项变更只影响第三方逻辑复制插件的用户。", "title": "更改逻辑复制使用 pg_hba.conf 的方式", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "c0f2a8a2376eca67049c72bd5534997fb57d165b074faec2f1fa3c17f8eaf741", "section_path": ["兼容性"], "commit_groups": [["8df9bd0b4"]], "identity_text": "Change how logical replication uses pg_hba.conf (Peter Eisentraut) In previous releases, a logical replication connection required the replication keyword in the database column. As of this release, logical replication matches a normal entry with a database name or keywords such as all. Physical replication continues to use the replication keyword. Since built-in logical replication is new in this release, this change only affects users of third-party logical replication plugins.", "commit_aliases": ["8df9bd0b4"], "source_commits": ["8df9bd0b4"], "source_entry_id": "10.0/migration/011", "db_id": "fc50fa201937fa41784438e5899a6577", "patch_ids": ["181abd18dd69d9d51b643ae3e27fdc10"], "statement_hash": "e2c8976e6c781abc3b09a81bfec73aa95aecd00f5844fabce38c06a3a8122c37", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-9effd4a59945c911", "cves": [], "html": "<p>使所有 <span><a href=\"/docs/10/app-pg-ctl.html\" title=\"pg_ctl\"><span><span>pg_ctl</span></span></a></span> 动作默认等待完成（Peter Eisentraut）</p>\n<p>以前，某些 <span>pg_ctl</span> 动作不会等待完成，需要使用 <code>-w</code> 才会等待。</p>", "text": "使所有 pg_ctl 动作默认等待完成（Peter Eisentraut） 以前，某些 pg_ctl 动作不会等待完成，需要使用 -w 才会等待。", "title": "使所有 pg_ctl 动作默认等待完成", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "76fec4fbe33702d0fbec5cc4a4c9b38de30ab7d6dbb077ddfb99f30960932bfc", "section_path": ["兼容性"], "commit_groups": [["05cd12ed5"]], "identity_text": "Make all app-pg-ctl actions wait for completion by default (Peter Eisentraut) Previously some pg_ctl actions didn't wait for completion, and required the use of -w to do so.", "commit_aliases": ["05cd12ed5"], "source_commits": ["05cd12ed5"], "source_entry_id": "10.0/migration/012", "db_id": "c2c340640a04b565f2b12007a1d4310c", "patch_ids": ["8742d5ebcc96fd2c94e5657af74aac57"], "statement_hash": "708c2d00bb7c91175ffeda8740ef89938ce6c4e9f5486c77df4759fe4cdbc27a", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1bb99e655d1e45d6", "cves": [], "html": "<p>将服务器参数<a href=\"/docs/10/runtime-config-logging.html#GUC-LOG-DIRECTORY\">log_directory</a>的默认值从 <code>pg_log</code> 改为 <code>log</code>（Andreas Karlsson）</p>", "text": "将服务器参数log_directory的默认值从 pg_log 改为 log（Andreas Karlsson）", "title": "将服务器参数log_directory的默认值从 pg_log 改为 log", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "c1bacb273321c7059decb351c6ea79684bde503289ab77c1acdb5794968fc653", "section_path": ["兼容性"], "commit_groups": [["3371e4d9b"]], "identity_text": "Change the default value of the guc-log-directory server parameter from pg_log to log (Andreas Karlsson)", "commit_aliases": ["3371e4d9b"], "source_commits": ["3371e4d9b"], "source_entry_id": "10.0/migration/013", "db_id": "a82804e8051ed2a71014eb98c4294364", "patch_ids": ["37f28a0c55accfa32e569fd84f7bf7cc"], "statement_hash": "a649be2dcc3cab26dead1be05050a88479c7bd57bbaf9a1adc106d602acae996", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-45dd1edff31f5174", "cves": [], "html": "<p>增加配置选项<a href=\"/docs/10/runtime-config-connection.html#GUC-SSL-DH-PARAMS-FILE\">ssl_dh_params_file</a>，用于指定自定义 OpenSSL DH 参数的文件名（Heikki Linnakangas）</p>\n<p>这取代了硬编码且未记录在文档中的文件名 <code>dh1024.pem</code>。注意，默认不再检查 <code>dh1024.pem</code>；如果要使用自定义 DH 参数，必须设置此选项。</p>", "text": "增加配置选项ssl_dh_params_file，用于指定自定义 OpenSSL DH 参数的文件名（Heikki Linnakangas） 这取代了硬编码且未记录在文档中的文件名 dh1024.pem。注意，默认不再检查 dh1024.pem；如果要使用自定义 DH 参数，必须设置此选项。", "title": "增加配置选项ssl_dh_params_file，用于指定自定义 OpenSSL DH 参数的文件名", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "82e95e6df822c4f1fe517e93858014273e393ea5cd9138d7c6bec3da5bd263d0", "section_path": ["兼容性"], "commit_groups": [["c0a15e07c"]], "identity_text": "Add configuration option guc-ssl-dh-params-file to specify file name for custom OpenSSL DH parameters (Heikki Linnakangas) This replaces the hardcoded, undocumented file name dh1024.pem. Note that dh1024.pem is no longer examined by default; you must set this option if you want to use custom DH parameters.", "commit_aliases": ["c0a15e07c"], "source_commits": ["c0a15e07c"], "source_entry_id": "10.0/migration/014", "db_id": "92da656075bacfc60d42e80c9be765ad", "patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"], "statement_hash": "11eba38c8240e4e56545836b9da6f8994bf4787ad02d781846700e8a94e5a2a3", "relations": [{"rule": 2, "type": "related", "target": "cb4b77c0c00d68dc5c60c6499749f9e6", "evidence": {"same_day": true, "patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"], "ambiguous_patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"]}}], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": [{"db_id": "cb4b77c0c00d68dc5c60c6499749f9e6", "kind": "related", "version": "10.0", "label": "10.0", "title": "将 OpenSSL 临时 DH 密码套件使用的默认 DH 参数长度增加到 2048 位", "evidence": {"same_day": true, "patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"], "ambiguous_patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"]}, "url": "/docs/compare/?release=10.0#10.0-bed1fd14dd10b139", "source_url": "/docs/release/10.0/#id-1.11.6.28.4"}]}, {"id": "10.0-bed1fd14dd10b139", "cves": [], "html": "<p>将 OpenSSL 临时 DH 密码套件使用的默认 DH 参数长度增加到 2048 位（Heikki Linnakangas）</p>\n<p>编译内置的 DH 参数长度已从 1024 位增加到 2048 位，使 DH 密钥交换更能抵御暴力攻击。但是，某些旧 SSL 实现，尤其是 Java Runtime Environment 6 的某些修订版，不接受超过 1024 位的 DH 参数，因此无法通过 SSL 连接。如果必须支持此类旧客户端，可以使用自定义的 1024 位 DH 参数代替编译内置的默认值。参见<a href=\"/docs/10/runtime-config-connection.html#GUC-SSL-DH-PARAMS-FILE\">ssl_dh_params_file</a>。</p>", "text": "将 OpenSSL 临时 DH 密码套件使用的默认 DH 参数长度增加到 2048 位（Heikki Linnakangas） 编译内置的 DH 参数长度已从 1024 位增加到 2048 位，使 DH 密钥交换更能抵御暴力攻击。但是，某些旧 SSL 实现，尤其是 Java Runtime Environment 6 的某些修订版，不接受超过 1024 位的 DH 参数，因此无法通过 SSL 连接。如果必须支持此类旧客户端，可以使用自定义的 1024 位 DH 参数代替编译内置的默认值。参见ssl_dh_params_file。", "title": "将 OpenSSL 临时 DH 密码套件使用的默认 DH 参数长度增加到 2048 位", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "58b5c87af94ac7222fc7115d44e0e36e58185075862627c50c5bf96e795b335d", "section_path": ["兼容性"], "commit_groups": [["c0a15e07c"]], "identity_text": "Increase the size of the default DH parameters used for OpenSSL ephemeral DH ciphers to 2048 bits (Heikki Linnakangas) The size of the compiled-in DH parameters has been increased from 1024 to 2048 bits, making DH key exchange more resistant to brute-force attacks. However, some old SSL implementations, notably some revisions of Java Runtime Environment version 6, will not accept DH parameters longer than 1024 bits, and hence will not be able to connect over SSL. If it's necessary to support such old clients, you can use custom 1024-bit DH parameters instead of the compiled-in defaults. See guc-ssl-dh-params-file .", "commit_aliases": ["c0a15e07c"], "source_commits": ["c0a15e07c"], "source_entry_id": "10.0/migration/015", "db_id": "cb4b77c0c00d68dc5c60c6499749f9e6", "patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"], "statement_hash": "5f7b7806962b7d912b887a0b2bc336d92d63dd637eef011338ae618a2652c257", "relations": [{"rule": 2, "type": "related", "target": "92da656075bacfc60d42e80c9be765ad", "evidence": {"same_day": true, "patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"], "ambiguous_patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"]}}], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": [{"db_id": "92da656075bacfc60d42e80c9be765ad", "kind": "related", "version": "10.0", "label": "10.0", "title": "增加配置选项ssl_dh_params_file，用于指定自定义 OpenSSL DH 参数的文件名", "evidence": {"same_day": true, "patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"], "ambiguous_patch_ids": ["0e4248c819efa4e25c3ab0380d5253fb"]}, "url": "/docs/compare/?release=10.0#10.0-45dd1edff31f5174", "source_url": "/docs/release/10.0/#id-1.11.6.28.4"}]}, {"id": "10.0-5c5adbe0cf0957c1", "cves": [], "html": "<p>移除在服务器上存储未加密密码的能力（Heikki Linnakangas）</p>\n<p>服务器参数<a href=\"/docs/10/runtime-config-connection.html#GUC-PASSWORD-ENCRYPTION\">password_encryption</a>不再支持 <code>off</code> 或 <code>plain</code>。<code>CREATE/ALTER USER ... PASSWORD</code> 不再支持 <code>UNENCRYPTED</code> 选项。同样，<span>createuser</span> 的 <code>--unencrypted</code> 选项也已移除。从旧版本迁移来的未加密密码在此版本中会以加密形式存储。<code>password_encryption</code> 的默认设置仍为 <code>md5</code>。</p>", "text": "移除在服务器上存储未加密密码的能力（Heikki Linnakangas） 服务器参数password_encryption不再支持 off 或 plain。CREATE/ALTER USER ... PASSWORD 不再支持 UNENCRYPTED 选项。同样，createuser 的 --unencrypted 选项也已移除。从旧版本迁移来的未加密密码在此版本中会以加密形式存储。password_encryption 的默认设置仍为 md5。", "title": "移除在服务器上存储未加密密码的能力", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "07bcc3be3942a0c58e45c75a68e8805f210c3e67438a5585612edbb9d6b59228", "section_path": ["兼容性"], "commit_groups": [["eb61136dc"]], "identity_text": "Remove the ability to store unencrypted passwords on the server (Heikki Linnakangas) The guc-password-encryption server parameter no longer supports off or plain. The UNENCRYPTED option is no longer supported in CREATE/ALTER USER ... PASSWORD. Similarly, the --unencrypted option has been removed from createuser. Unencrypted passwords migrated from older versions will be stored encrypted in this release. The default setting for password_encryption is still md5.", "commit_aliases": ["eb61136dc"], "source_commits": ["eb61136dc"], "source_entry_id": "10.0/migration/016", "db_id": "ae5091d888e8abcf3e67d075f31d5ff9", "patch_ids": ["984ee769d3a3da2239dbe06c1b681fba"], "statement_hash": "9631054ddd13bf20676a20f398b2ba61395d6831cd2295d3338972994aa673af", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-aede6ec94734e20d", "cves": [], "html": "<p>增加服务器参数<a href=\"/docs/10/runtime-config-query.html#GUC-MIN-PARALLEL-TABLE-SCAN-SIZE\">min_parallel_table_scan_size</a>和<a href=\"/docs/10/runtime-config-query.html#GUC-MIN-PARALLEL-INDEX-SCAN-SIZE\">min_parallel_index_scan_size</a>，用于控制并行查询（Amit Kapila，Robert Haas）</p>\n<p>这两个参数取代了被认为过于笼统的 <code>min_parallel_relation_size</code>。</p>", "text": "增加服务器参数min_parallel_table_scan_size和min_parallel_index_scan_size，用于控制并行查询（Amit Kapila，Robert Haas） 这两个参数取代了被认为过于笼统的 min_parallel_relation_size。", "title": "增加服务器参数min_parallel_table_scan_size和min_parallel_index_scan_size，用于控制并行查询", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "c58a15c632d0672c56f8b91e35c0089a2ec3bc937b101dff2dd702e440911d83", "section_path": ["兼容性"], "commit_groups": [["51ee6f316"]], "identity_text": "Add guc-min-parallel-table-scan-size and guc-min-parallel-index-scan-size server parameters to control parallel queries (Amit Kapila, Robert Haas) These replace min_parallel_relation_size, which was found to be too generic.", "commit_aliases": ["51ee6f316"], "source_commits": ["51ee6f316"], "source_entry_id": "10.0/migration/017", "db_id": "2014daef72608512bcc40924fed33d70", "patch_ids": ["89f8382cd9f3382c58c2a0ba4a206e2f"], "statement_hash": "e4408274fddd1fe1da91825f4ade7824cdc25b78982f101003ff9241e1566f3f", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-96fc850580f6bf52", "cves": [], "html": "<p>不再将<a href=\"/docs/10/runtime-config-client.html#GUC-SHARED-PRELOAD-LIBRARIES\">shared_preload_libraries</a>及相关服务器参数中未加引号的文本转为小写（QL Zhuo）</p>\n<p>这些设置实际上是文件名列表，但以前被当作 SQL 标识符列表处理，而两者的解析规则不同。</p>", "text": "不再将shared_preload_libraries及相关服务器参数中未加引号的文本转为小写（QL Zhuo） 这些设置实际上是文件名列表，但以前被当作 SQL 标识符列表处理，而两者的解析规则不同。", "title": "不再将shared_preload_libraries及相关服务器参数中未加引号的文本转为小写", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "2d305be34bd817d98860e4181f751d1f25a848098fc1bc46d03a1117bc8c5590", "section_path": ["兼容性"], "commit_groups": [["a69dfe5f4"]], "identity_text": "Don't downcase unquoted text within guc-shared-preload-libraries and related server parameters (QL Zhuo) These settings are really lists of file names, but they were previously treated as lists of SQL identifiers, which have different parsing rules.", "commit_aliases": ["a69dfe5f4"], "source_commits": ["a69dfe5f4"], "source_entry_id": "10.0/migration/018", "db_id": "1495fd1294e2eaf1c7d96962eb161685", "patch_ids": ["c80615a1a8fcd843532f029ed9d71948"], "statement_hash": "8b0039defc13dc8f300ae0c59b029326a2bbdeee25aa5a6a3662140c7a467204", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-efda2036c2acb51c", "cves": [], "html": "<p>移除服务器参数 <code>sql_inheritance</code>（Robert Haas）</p>\n<p>将此设置改为非默认值，会使引用父表的查询不包含子表。但是，<acronym>SQL</acronym> 标准要求包含子表，而且这从 <span>PostgreSQL</span> 7.1 起就是默认行为。</p>", "text": "移除服务器参数 sql_inheritance（Robert Haas） 将此设置改为非默认值，会使引用父表的查询不包含子表。但是，SQL 标准要求包含子表，而且这从 PostgreSQL 7.1 起就是默认行为。", "title": "移除服务器参数 sql_inheritance", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "01afcd02f477b1cb68e0705fcd92caf61289634b4b01674a58480e2610628dee", "section_path": ["兼容性"], "commit_groups": [["e13486eba"]], "identity_text": "Remove sql_inheritance server parameter (Robert Haas) Changing this setting from the default value caused queries referencing parent tables to not include child tables. The SQL standard requires them to be included, however, and this has been the default since PostgreSQL 7.1.", "commit_aliases": ["e13486eba"], "source_commits": ["e13486eba"], "source_entry_id": "10.0/migration/019", "db_id": "fb3d9e8678d88063b0a5aa96665191df", "patch_ids": ["9173ac91ac70cc43d9154f66d12a0b8a"], "statement_hash": "9faabd6f20e000bcc67bfd37dd505760ad8828c8bbf602d41dd574c06c400427", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-6117baac95baeebe", "cves": [], "html": "<p>允许将多维数组传给 PL/Python 函数，并以嵌套 Python 列表形式返回（Alexey Grishchenko，Dave Cramer，Heikki Linnakangas）</p>\n<p>此功能需要对 PL/Python 中复合类型数组的处理进行一项不向后兼容的更改。以前，可以通过编写如 <code>[[col1, col2], [col1, col2]]</code> 的形式返回复合值数组；但现在这会被解释为二维数组。为消除歧义，数组中的复合类型现在必须写成 Python 元组，不能写成列表；也就是说，应改为 <code>[(col1, col2), (col1, col2)]</code>。</p>", "text": "允许将多维数组传给 PL/Python 函数，并以嵌套 Python 列表形式返回（Alexey Grishchenko，Dave Cramer，Heikki Linnakangas） 此功能需要对 PL/Python 中复合类型数组的处理进行一项不向后兼容的更改。以前，可以通过编写如 [[col1, col2], [col1, col2]] 的形式返回复合值数组；但现在这会被解释为二维数组。为消除歧义，数组中的复合类型现在必须写成 Python 元组，不能写成列表；也就是说，应改为 [(col1, col2), (col1, col2)]。", "title": "允许将多维数组传给 PL/Python 函数，并以嵌套 Python 列表形式返回", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "785e3325eadb6141cd97cbedfae3b3170e7178cd9c14b82744833816d189ab42", "section_path": ["兼容性"], "commit_groups": [["94aceed31"], ["cfd9c87a5"]], "identity_text": "Allow multi-dimensional arrays to be passed into PL/Python functions, and returned as nested Python lists (Alexey Grishchenko, Dave Cramer, Heikki Linnakangas) This feature requires a backwards-incompatible change to the handling of arrays of composite types in PL/Python. Previously, you could return an array of composite values by writing, e.g., [[col1, col2], [col1, col2]]; but now that is interpreted as a two-dimensional array. Composite types in arrays must now be written as Python tuples, not lists, to resolve the ambiguity; that is, write [(col1, col2), (col1, col2)] instead.", "commit_aliases": ["94aceed31", "cfd9c87a5"], "source_commits": ["94aceed31", "cfd9c87a5"], "source_entry_id": "10.0/migration/020", "db_id": "5eac8746e54ce1b1f317549002c73bcb", "patch_ids": ["27291e04a761e864923585cff8d47be7", "dbcc7cdcd6319af9b685de73dc28812a"], "statement_hash": "572721fa7d9ad800304f04e7d5fed9b36679dbffc70e3a97482a24fbb44e6563", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-e455efa7d9e281f6", "cves": [], "html": "<p>移除 PL/Tcl 的<span>“<span>模块</span>”</span>自动加载功能（Tom Lane）</p>\n<p>此功能已由新的服务器参数<a href=\"/docs/10/pltcl-config.html#GUC-PLTCL-START-PROC\">pltcl.start_proc</a>和<a href=\"/docs/10/pltcl-config.html#GUC-PLTCLU-START-PROC\">pltclu.start_proc</a>取代，它们更易使用，也更类似于其他 PL 提供的功能。</p>", "text": "移除 PL/Tcl 的“模块”自动加载功能（Tom Lane） 此功能已由新的服务器参数pltcl.start_proc和pltclu.start_proc取代，它们更易使用，也更类似于其他 PL 提供的功能。", "title": "移除 PL/Tcl 的“模块”自动加载功能", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "e13cd151c725d5b868b83caa789349df9a1efd06c4ab7d5069306ec19bb72a82", "section_path": ["兼容性"], "commit_groups": [["817f2a586"]], "identity_text": "Remove PL/Tcl's module auto-loading facility (Tom Lane) This functionality has been replaced by new server parameters guc-pltcl-start-proc and guc-pltclu-start-proc , which are easier to use and more similar to features available in other PLs.", "commit_aliases": ["817f2a586"], "source_commits": ["817f2a586"], "source_entry_id": "10.0/migration/021", "db_id": "c03c95ce7eeffbec000f259934fb41cb", "patch_ids": ["88c13146b3a3fed017d68203071cfd78"], "statement_hash": "d81330d7d891ef5d0c6f2120e954c4995909f20d4246a53270cf088c2ef10028", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-87b411efc8d21dee", "cves": [], "html": "<p>移除 <span>pg_dump</span>/<span>pg_dumpall</span> 对从 8.0 之前的服务器转储的支持（Tom Lane）</p>\n<p>需要从 8.0 之前的服务器转储的用户，必须使用 <span>PostgreSQL</span> 9.6 或更早版本的转储程序。生成的输出仍应能成功载入较新的服务器。</p>", "text": "移除 pg_dump/pg_dumpall 对从 8.0 之前的服务器转储的支持（Tom Lane） 需要从 8.0 之前的服务器转储的用户，必须使用 PostgreSQL 9.6 或更早版本的转储程序。生成的输出仍应能成功载入较新的服务器。", "title": "移除 pg_dump/pg_dumpall 对从 8.0 之前的服务器转储的支持", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "f44eac09b3da8b09d769aea99964e1fa5cf562f620ad44579ebd31f4d9c10b43", "section_path": ["兼容性"], "commit_groups": [["64f3524e2"]], "identity_text": "Remove pg_dump/pg_dumpall support for dumping from pre-8.0 servers (Tom Lane) Users needing to dump from pre-8.0 servers will need to use dump programs from PostgreSQL 9.6 or earlier. The resulting output should still load successfully into newer servers.", "commit_aliases": ["64f3524e2"], "source_commits": ["64f3524e2"], "source_entry_id": "10.0/migration/022", "db_id": "e708375dd11b40d794cf3d160c742442", "patch_ids": ["4bf913a8c9b3b7dccf9a8b26fe84716a"], "statement_hash": "b5e18ae8f8be6a536856eb0587d270b4488d734ad26ab96d62c076dcbaa38f5d", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-7d62a7bc40334ceb", "cves": [], "html": "<p>移除对浮点时间戳和时间间隔的支持（Tom Lane）</p>\n<p>这移除了 configure 的 <code>--disable-integer-datetimes</code> 选项。浮点时间戳的优势很少，而且从 <span>PostgreSQL</span> 8.3 起就不再是默认选择。</p>", "text": "移除对浮点时间戳和时间间隔的支持（Tom Lane） 这移除了 configure 的 --disable-integer-datetimes 选项。浮点时间戳的优势很少，而且从 PostgreSQL 8.3 起就不再是默认选择。", "title": "移除对浮点时间戳和时间间隔的支持", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "184817742b2f43745675c3698b80a2295b14130f814eac6dd9b4ca9dd55c9ad7", "section_path": ["兼容性"], "commit_groups": [["b6aa17e0a"]], "identity_text": "Remove support for floating-point timestamps and intervals (Tom Lane) This removes configure's --disable-integer-datetimes option. Floating-point timestamps have few advantages and have not been the default since PostgreSQL 8.3.", "commit_aliases": ["b6aa17e0a"], "source_commits": ["b6aa17e0a"], "source_entry_id": "10.0/migration/023", "db_id": "ccf635738f2ab4a30bbc7372b94801c3", "patch_ids": ["7b3c1b79a653fc9d73554d3ef13a135e"], "statement_hash": "da4d8ae63499da25faed163cad71abc3bf3580c5e9906daba58ad79f71b36ee5", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-f46c258225255d45", "cves": [], "html": "<p>移除服务器对客户端/服务器协议 1.0 版的支持（Tom Lane）</p>\n<p>从 <span>PostgreSQL</span> 6.3 起，客户端就不再支持此协议。</p>", "text": "移除服务器对客户端/服务器协议 1.0 版的支持（Tom Lane） 从 PostgreSQL 6.3 起，客户端就不再支持此协议。", "title": "移除服务器对客户端/服务器协议 1.0 版的支持", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "e3f4ada2e62c24e2dd443018f1c17663677dcbcd2eced79cc79dd028555ef2ae", "section_path": ["兼容性"], "commit_groups": [["2f1eaf87e"]], "identity_text": "Remove server support for client/server protocol version 1.0 (Tom Lane) This protocol hasn't had client support since PostgreSQL 6.3.", "commit_aliases": ["2f1eaf87e"], "source_commits": ["2f1eaf87e"], "source_entry_id": "10.0/migration/024", "db_id": "81eef6f0aba869c9a7f8a5e9ee8dc63c", "patch_ids": ["d1cceb8cddc1ba06b7c79817163dcb8b"], "statement_hash": "7f5f76e19023fd7318e02469fc450323c7edc092d17b9e126962d6042aaaf562", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-9a792b59008fbee8", "cves": [], "html": "<p>移除 <code>contrib/tsearch2</code> 模块（Robert Haas）</p>\n<p>此模块用于兼容 <span>PostgreSQL</span> 8.3 之前的发行版所附带的全文检索版本。</p>", "text": "移除 contrib/tsearch2 模块（Robert Haas） 此模块用于兼容 PostgreSQL 8.3 之前的发行版所附带的全文检索版本。", "title": "移除 contrib/tsearch2 模块", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "5b293fe710a47e88f1d1b6b86f6b0cf588303e6d141a12e0c0cd07d53719ac28", "section_path": ["兼容性"], "commit_groups": [["7ada2d31f"]], "identity_text": "Remove contrib/tsearch2 module (Robert Haas) This module provided compatibility with the version of full text search that shipped in pre-8.3 PostgreSQL releases.", "commit_aliases": ["7ada2d31f"], "source_commits": ["7ada2d31f"], "source_entry_id": "10.0/migration/025", "db_id": "1a05147655c1210ec375bd2f9c02d1c9", "patch_ids": ["932b2c5e290267a22f18b1876e10ed18"], "statement_hash": "210ffe3563bf7de960c87e330df5a3634dd53e7cb340cb8172394e93657df03e", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-acbea595b991352a", "cves": [], "html": "<p>移除 <span>createlang</span> 和 <span>droplang</span> 命令行应用程序（Peter Eisentraut）</p>\n<p>它们从 <span>PostgreSQL</span> 9.1 起就已弃用。请改为直接使用 <code>CREATE EXTENSION</code> 和 <code>DROP EXTENSION</code>。</p>", "text": "移除 createlang 和 droplang 命令行应用程序（Peter Eisentraut） 它们从 PostgreSQL 9.1 起就已弃用。请改为直接使用 CREATE EXTENSION 和 DROP EXTENSION。", "title": "移除 createlang 和 droplang 命令行应用程序", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "287a432b197d685afb3eb49989b8717931cc846c6d6f2138c58f9e989c22c015", "section_path": ["兼容性"], "commit_groups": [["50c956add"]], "identity_text": "Remove createlang and droplang command-line applications (Peter Eisentraut) These had been deprecated since PostgreSQL 9.1. Instead, use CREATE EXTENSION and DROP EXTENSION directly.", "commit_aliases": ["50c956add"], "source_commits": ["50c956add"], "source_entry_id": "10.0/migration/026", "db_id": "be4162b3a2d32740af313594f0e1ceb7", "patch_ids": ["f00537f444f4a958e999e40e8a61f843"], "statement_hash": "ef1f41b24d6820f6e98884594ff9ae909f7f09f7cdd940a6c8e874d497e42a66", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-3c1792b189304a7f", "cves": [], "html": "<p>移除对版本 0 函数调用约定的支持（Andres Freund）</p>\n<p>提供 C 编写函数的扩展现在必须遵循版本 1 调用约定。版本 0 从 2001 年起就已弃用。</p>", "text": "移除对版本 0 函数调用约定的支持（Andres Freund） 提供 C 编写函数的扩展现在必须遵循版本 1 调用约定。版本 0 从 2001 年起就已弃用。", "title": "移除对版本 0 函数调用约定的支持", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/10.0/#id-1.11.6.28.4", "source_hash": "46b749c3477f25c73996e92b83370336f8e2d3bde60f30f3613ec4a4f77f049a", "section_path": ["兼容性"], "commit_groups": [["5ded4bd21"]], "identity_text": "Remove support for version-0 function calling conventions (Andres Freund) Extensions providing C-coded functions must now conform to version 1 calling conventions. Version 0 has been deprecated since 2001.", "commit_aliases": ["5ded4bd21"], "source_commits": ["5ded4bd21"], "source_entry_id": "10.0/migration/027", "db_id": "b5f209d771b4c1a1723ede502a54fd8d", "patch_ids": ["5babd72dcf17ae40b9fb5270462511a0"], "statement_hash": "d639fe62b1f2a136d0870bb65a945f583a53c42e9df3d4ee34f6d6e43bf59417", "relations": [], "version": "10.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-4d4078de951b3744", "cves": [], "html": "<p>支持并行 B-树索引扫描（Rahila Syed，Amit Kapila，Robert Haas，Rafia Sabih）</p>\n<p>此变更允许不同的并行工作进程搜索 B-树索引页。</p>", "text": "支持并行 B-树索引扫描（Rahila Syed，Amit Kapila，Robert Haas，Rafia Sabih） 此变更允许不同的并行工作进程搜索 B-树索引页。", "title": "支持并行 B-树索引扫描", "commits": [], "section": "服务器 / 并行查询", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "aca557d3d1e58e26007b2b527cdaf5ecf6e6e800ce4f5b47d9cdc23aaaa405c5", "section_path": ["服务器", "并行查询"], "commit_groups": [["0414b26ba"], ["5262f7a4f"], ["569174f1b"]], "identity_text": "Support parallel B-tree index scans (Rahila Syed, Amit Kapila, Robert Haas, Rafia Sabih) This change allows B-tree index pages to be searched by separate parallel workers.", "commit_aliases": ["0414b26ba", "5262f7a4f", "569174f1b"], "source_commits": ["0414b26ba", "5262f7a4f", "569174f1b"], "source_entry_id": "10.0/changes/001", "db_id": "682a5f9ecb4d0cdec4897c75626bfea3", "patch_ids": ["91fa2069512023818d14b0b319798fe9", "e3a26acf4fde7eee6bc7b5bc4d248fd9", "f7a7da66874b982f8eb549f21d6baf90"], "statement_hash": "22b451f44222b3a7f7d792a96897b8e0770d6221cd7c2d99dae5704d355247f4", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-b915731735ecfee8", "cves": [], "html": "<p>支持并行位图堆扫描（Dilip Kumar）</p>\n<p>这允许单次索引扫描派发并行工作进程来处理堆的不同区域。</p>", "text": "支持并行位图堆扫描（Dilip Kumar） 这允许单次索引扫描派发并行工作进程来处理堆的不同区域。", "title": "支持并行位图堆扫描", "commits": [], "section": "服务器 / 并行查询", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "55b2bcad1979307015f5253a26c37c34039b21595d33597ebadfadbec1a60f8e", "section_path": ["服务器", "并行查询"], "commit_groups": [["98e6e8904"], ["f35742ccb"]], "identity_text": "Support parallel bitmap heap scans (Dilip Kumar) This allows a single index scan to dispatch parallel workers to process different areas of the heap.", "commit_aliases": ["98e6e8904", "f35742ccb"], "source_commits": ["98e6e8904", "f35742ccb"], "source_entry_id": "10.0/changes/002", "db_id": "24fc5d0e51366f41e7f5e9922b8b5161", "patch_ids": ["629cf981d25684e5b147651f28b4c8e1", "6d957af0268dd9dfa2017b2d1c50e309"], "statement_hash": "eaa8b0fa7bd3eef5069cc71123c2ec79f39a5fc91838e44755055c5fac9e4250", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-f06e782634267906", "cves": [], "html": "<p>允许并行执行归并连接（Dilip Kumar）</p>", "text": "允许并行执行归并连接（Dilip Kumar）", "title": "允许并行执行归并连接", "commits": [], "section": "服务器 / 并行查询", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "9cdd92a093863975baaa75e4068354ceafac2fdedb9c1258afe5c58a0ba0da1e", "section_path": ["服务器", "并行查询"], "commit_groups": [["3bc7dafa9"]], "identity_text": "Allow merge joins to be performed in parallel (Dilip Kumar)", "commit_aliases": ["3bc7dafa9"], "source_commits": ["3bc7dafa9"], "source_entry_id": "10.0/changes/003", "db_id": "c784e80ec5ff24465e15248f04a333c9", "patch_ids": ["7e68bf93dfa9618dc3fab75d8c1a3f07"], "statement_hash": "2d6e4b80ed0db4d3069c57fddab64c5616f6b89e25ca82c337515b66054a0a7f", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-ff90184b80ba02aa", "cves": [], "html": "<p>允许并行运行非相关子查询（Amit Kapila）</p>", "text": "允许并行运行非相关子查询（Amit Kapila）", "title": "允许并行运行非相关子查询", "commits": [], "section": "服务器 / 并行查询", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "a610d55a792b25a3ffbd43a7ac84828eac5f4e02a0c4d85f5a3d8ba7eaa03b3c", "section_path": ["服务器", "并行查询"], "commit_groups": [["5e6d8d2bb"]], "identity_text": "Allow non-correlated subqueries to be run in parallel (Amit Kapila)", "commit_aliases": ["5e6d8d2bb"], "source_commits": ["5e6d8d2bb"], "source_entry_id": "10.0/changes/004", "db_id": "e9d1c67ac3574d856f78446e579303c2", "patch_ids": ["849a1f5fd1b872e61dc71e18e4f9740b"], "statement_hash": "429f823fa1d5f284d176d32c6deed87d5301d11020e9f3e296e7fa23149d317a", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-0028cdf8dab61926", "cves": [], "html": "<p>改进并行工作进程返回预排序数据的能力（Rushabh Lathia）</p>", "text": "改进并行工作进程返回预排序数据的能力（Rushabh Lathia）", "title": "改进并行工作进程返回预排序数据的能力", "commits": [], "section": "服务器 / 并行查询", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "d09bfe1793536fd49f50aba5cb1149a2eaaff0c86f0bff40d45b8ae96a818242", "section_path": ["服务器", "并行查询"], "commit_groups": [["355d3993c"]], "identity_text": "Improve ability of parallel workers to return pre-sorted data (Rushabh Lathia)", "commit_aliases": ["355d3993c"], "source_commits": ["355d3993c"], "source_entry_id": "10.0/changes/005", "db_id": "4c208a7743c924b79735347e1d426e8e", "patch_ids": ["509ec37077cec958eb5520e625d52052"], "statement_hash": "ffe5e05bbd6a0c40c4044d2b982561389a3d3bd8b1d7f3ea1d1ce0e74d0dcd9f", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-cd5931628e67992b", "cves": [], "html": "<p>扩大过程语言函数中并行查询的使用范围（Robert Haas，Rafia Sabih）</p>", "text": "扩大过程语言函数中并行查询的使用范围（Robert Haas，Rafia Sabih）", "title": "扩大过程语言函数中并行查询的使用范围", "commits": [], "section": "服务器 / 并行查询", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "cf90018ade9f526b1660ab80f9829a58aab33ccd717b3bff1bff289f4df76e12", "section_path": ["服务器", "并行查询"], "commit_groups": [["61c2e1a95"]], "identity_text": "Increase parallel query usage in procedural language functions (Robert Haas, Rafia Sabih)", "commit_aliases": ["61c2e1a95"], "source_commits": ["61c2e1a95"], "source_entry_id": "10.0/changes/006", "db_id": "c1ec4c90e1a33730fb117f91889e5d56", "patch_ids": ["78de1520fd1f32695c2ac39a44a45312"], "statement_hash": "331ac2a0ce4746c37ac7d206c3c29b1dd129805a494751cb961f8fde3fd6c611", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-b59ed5e99a7d7872", "cves": [], "html": "<p>增加服务器参数<a href=\"/docs/10/runtime-config-resource.html#GUC-MAX-PARALLEL-WORKERS\">max_parallel_workers</a>，用于限制可用于查询并行处理的工作进程数量（Julien Rouhaud）</p>\n<p>可以将此参数设为低于<a href=\"/docs/10/runtime-config-resource.html#GUC-MAX-WORKER-PROCESSES\">max_worker_processes</a>的值，为并行查询以外的用途预留工作进程。</p>", "text": "增加服务器参数max_parallel_workers，用于限制可用于查询并行处理的工作进程数量（Julien Rouhaud） 可以将此参数设为低于max_worker_processes的值，为并行查询以外的用途预留工作进程。", "title": "增加服务器参数max_parallel_workers，用于限制可用于查询并行处理的工作进程数量", "commits": [], "section": "服务器 / 并行查询", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "7ae2c509b0d6dd29c37593531f0060e57681dd5167df8a3c5e48260c95f38fde", "section_path": ["服务器", "并行查询"], "commit_groups": [["2b959d495"], ["b460f5d66"]], "identity_text": "Add guc-max-parallel-workers server parameter to limit the number of worker processes that can be used for query parallelism (Julien Rouhaud) This parameter can be set lower than guc-max-worker-processes to reserve worker processes for purposes other than parallel queries.", "commit_aliases": ["2b959d495", "b460f5d66"], "source_commits": ["2b959d495", "b460f5d66"], "source_entry_id": "10.0/changes/007", "db_id": "abbd9ebe7d3a67e869eeee738c83311d", "patch_ids": ["36f84726e5753a84dfb5a09853b0630a", "df4cbddc4deffc229b293ac854537194"], "statement_hash": "e2f8f1f1dafe2a68f02fbb049caa9c1c255ba54f3deda2f6c1182bc172751dfb", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-f396054a52e87b4c", "cves": [], "html": "<p>将<a href=\"/docs/10/runtime-config-resource.html#GUC-MAX-PARALLEL-WORKERS-PER-GATHER\">max_parallel_workers_per_gather</a>的默认设置改为 <code>2</code>，以默认启用并行处理。</p>", "text": "将max_parallel_workers_per_gather的默认设置改为 2，以默认启用并行处理。", "title": "将max_parallel_workers_per_gather的默认设置改为 2，以默认启用并行处理。", "commits": [], "section": "服务器 / 并行查询", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.2", "source_hash": "d60078ced0656b7dfcb792f54c97ce878331e9a4170a4b9dc04da27ea70777e6", "section_path": ["服务器", "并行查询"], "commit_groups": [], "identity_text": "Enable parallelism by default by changing the default setting of guc-max-parallel-workers-per-gather to 2.", "commit_aliases": [], "source_commits": [], "source_entry_id": "10.0/changes/008", "db_id": "bf94f9b3b11e513d41c36f18b78c4803", "patch_ids": [], "statement_hash": "8f713efa0b4f6efeb065ab00bb6aad1aee7ef7ed2f64c8c0a5738d358a44d862", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-421f050f7ced042c", "cves": [], "html": "<p>为 hash 索引增加预写式日志支持（Amit Kapila）</p>\n<p>这使 hash 索引能够安全应对崩溃并支持复制。以前关于其使用的警告消息已移除。</p>", "text": "为 hash 索引增加预写式日志支持（Amit Kapila） 这使 hash 索引能够安全应对崩溃并支持复制。以前关于其使用的警告消息已移除。", "title": "为 hash 索引增加预写式日志支持", "commits": [], "section": "服务器 / 索引", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "fa617020316b9a307c6fde153beb850621e2c84a30491f530bca45ce2af31e58", "section_path": ["服务器", "索引"], "commit_groups": [["30df93f69"], ["b0f18cb77"], ["c11453ce0"]], "identity_text": "Add write-ahead logging support to hash indexes (Amit Kapila) This makes hash indexes crash-safe and replicatable. The former warning message about their use is removed.", "commit_aliases": ["30df93f69", "b0f18cb77", "c11453ce0"], "source_commits": ["30df93f69", "b0f18cb77", "c11453ce0"], "source_entry_id": "10.0/changes/009", "db_id": "f6dd7d3a8bef90162e03c2d3e4e1e3a6", "patch_ids": ["1d965afca76234dfc985f8724bc6bcd5", "361abac0f8366db26c3ede435bd5e0ae", "c20c623ba1ad76fa2063d54dc3106115"], "statement_hash": "560804e59867b934dd1cafe40d85040a057e6e042d033f8cd36612ab37d2b026", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-c9bb65823060211b", "cves": [], "html": "<p>提升 hash 索引性能（Amit Kapila，Mithun Cy，Ashutosh Sharma）</p>", "text": "提升 hash 索引性能（Amit Kapila，Mithun Cy，Ashutosh Sharma）", "title": "提升 hash 索引性能", "commits": [], "section": "服务器 / 索引", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "646efed697bd84978d9f2442b234aa264931974436a5ab5faac8a4fbfa3a4baa", "section_path": ["服务器", "索引"], "commit_groups": [["293e24e50"], ["620b49a16"], ["6977b8b7f"], ["6d46f4783"], ["ea69a0dea"]], "identity_text": "Improve hash index performance (Amit Kapila, Mithun Cy, Ashutosh Sharma)", "commit_aliases": ["293e24e50", "620b49a16", "6977b8b7f", "6d46f4783", "ea69a0dea"], "source_commits": ["293e24e50", "620b49a16", "6977b8b7f", "6d46f4783", "ea69a0dea"], "source_entry_id": "10.0/changes/010", "db_id": "1b1b0c796b5562126f6326ed5ed1fffe", "patch_ids": ["075f3ebb20a2eda8014f73811801ac39", "160ea01bcb9075d2469e9e7ffd94ff3f", "6759c40a077528852e7807d924b9b54b", "a9f874a6334070b7da10b1c5f7984550", "cf52f7bc92da3e9c0404fc6b0887717c"], "statement_hash": "4a873900b374f5c1632882dfe33ca1d3db459e6daf6be3e5862bf0f171c4007a", "relations": [{"rule": 2, "type": "related", "target": "a160d4c3b43ec4e671044c3176ac1458", "evidence": {"same_day": true, "patch_ids": ["075f3ebb20a2eda8014f73811801ac39", "cf52f7bc92da3e9c0404fc6b0887717c"]}}], "version": "10.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a160d4c3b43ec4e671044c3176ac1458", "kind": "related", "version": "10.0", "label": "10.0", "title": "使用 pg_upgrade 从任何先前的 PostgreSQL 大版本升级后，必须重建 hash 索引", "evidence": {"same_day": true, "patch_ids": ["075f3ebb20a2eda8014f73811801ac39", "cf52f7bc92da3e9c0404fc6b0887717c"]}, "url": "/docs/compare/?release=10.0#10.0-6d840e8773b48bcf", "source_url": "/docs/release/10.0/#id-1.11.6.28.4"}]}, {"id": "10.0-d8b2a4a88c1d45a6", "cves": [], "html": "<p>为 <code>INET</code> 和 <code>CIDR</code> 数据类型增加 <acronym>SP-GiST</acronym> 索引支持（Emre Hasegeli）</p>", "text": "为 INET 和 CIDR 数据类型增加 SP-GiST 索引支持（Emre Hasegeli）", "title": "为 INET 和 CIDR 数据类型增加 SP-GiST 索引支持", "commits": [], "section": "服务器 / 索引", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "c90888565a18bb0fff28a400dbe860065de94b6118661fccfd373d540ac272c9", "section_path": ["服务器", "索引"], "commit_groups": [["77e290682"]], "identity_text": "Add SP-GiST index support for INET and CIDR data types (Emre Hasegeli)", "commit_aliases": ["77e290682"], "source_commits": ["77e290682"], "source_entry_id": "10.0/changes/011", "db_id": "ede70380413eff1e9696ad3265e7dd51", "patch_ids": ["d79365033970da3247bfa6a4f87b6efe"], "statement_hash": "c4b9443fa0d79a2ae17e17da9c2c0a84ed135ed115ae64d2f979af3ad089b6db", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-aef4246c965f2936", "cves": [], "html": "<p>增加一个选项，允许更积极地生成 <acronym>BRIN</acronym> 索引摘要（Álvaro Herrera）</p>\n<p>新增的 <a href=\"/docs/10/sql-createindex.html\" title=\"CREATE INDEX\"><code>CREATE INDEX</code></a> 选项可在创建新页范围时，自动为前一个 <acronym>BRIN</acronym> 页范围生成摘要。</p>", "text": "增加一个选项，允许更积极地生成 BRIN 索引摘要（Álvaro Herrera） 新增的 CREATE INDEX 选项可在创建新页范围时，自动为前一个 BRIN 页范围生成摘要。", "title": "增加一个选项，允许更积极地生成 BRIN 索引摘要", "commits": [], "section": "服务器 / 索引", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "7a0e15c4d27bbdf7ac501e1ae7d09b38eab98cb702f96cc67bd4f636ee4a295b", "section_path": ["服务器", "索引"], "commit_groups": [["7526e1022"]], "identity_text": "Add option to allow BRIN index summarization to happen more aggressively (Álvaro Herrera) A new CREATE INDEX option enables auto-summarization of the previous BRIN page range when a new page range is created.", "commit_aliases": ["7526e1022"], "source_commits": ["7526e1022"], "source_entry_id": "10.0/changes/012", "db_id": "ed84374b5ff4ce92fb6f4c352020052a", "patch_ids": ["5b2710e6ce0eb3b0fec898971faa8855"], "statement_hash": "6cb83522bd22c676dcae5f98c458c3682df138f32b83b6ee407f3b5ed4fafe12", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1f5accb7dcd9a8e9", "cves": [], "html": "<p>增加用于移除和重新添加 <acronym>BRIN</acronym> 索引范围的 <acronym>BRIN</acronym> 摘要的函数（Álvaro Herrera）</p>\n<p>新的 <acronym>SQL</acronym> 函数 <a href=\"/docs/10/functions-admin.html#FUNCTIONS-ADMIN-INDEX-TABLE\" title=\"表 9.87. 索引维护函数\"><code>brin_summarize_range()</code></a> 更新指定范围的 <acronym>BRIN</acronym> 索引摘要，而 <code>brin_desummarize_range()</code> 将其移除。这有助于更新因 <code>UPDATE</code> 和 <code>DELETE</code> 而缩小的范围的摘要。</p>", "text": "增加用于移除和重新添加 BRIN 索引范围的 BRIN 摘要的函数（Álvaro Herrera） 新的 SQL 函数 brin_summarize_range() 更新指定范围的 BRIN 索引摘要，而 brin_desummarize_range() 将其移除。这有助于更新因 UPDATE 和 DELETE 而缩小的范围的摘要。", "title": "增加用于移除和重新添加 BRIN 索引范围的 BRIN 摘要的函数", "commits": [], "section": "服务器 / 索引", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "e81e86f272d792acc3cf3ded8bbdf165c3338e7b5367e6b8e8b2e9c17ba1f647", "section_path": ["服务器", "索引"], "commit_groups": [["c655899ba"]], "identity_text": "Add functions to remove and re-add BRIN summarization for BRIN index ranges (Álvaro Herrera) The new SQL function brin_summarize_range() updates BRIN index summarization for a specified range and brin_desummarize_range() removes it. This is helpful to update summarization of a range that is now smaller due to UPDATEs and DELETEs.", "commit_aliases": ["c655899ba"], "source_commits": ["c655899ba"], "source_entry_id": "10.0/changes/013", "db_id": "3ac3aac6e2a0f510fb9d25fd469f39f7", "patch_ids": ["46f2d7a2e3f3e9b9e691406c66cb7d4c"], "statement_hash": "7b9b328762e884175b146a6bee4ffb6e49eced27e70ee078cf38bb9226d8dcf4", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-b7174afe81e1eb5d", "cves": [], "html": "<p>提高判断 <acronym>BRIN</acronym> 索引扫描是否有益的准确性（David Rowley，Emre Hasegeli）</p>", "text": "提高判断 BRIN 索引扫描是否有益的准确性（David Rowley，Emre Hasegeli）", "title": "提高判断 BRIN 索引扫描是否有益的准确性", "commits": [], "section": "服务器 / 索引", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "38623bd18943c31c88e3c0644817754ba52fa4a0eaa49ba07862adfa48fd7a13", "section_path": ["服务器", "索引"], "commit_groups": [["7e534adcd"]], "identity_text": "Improve accuracy in determining if a BRIN index scan is beneficial (David Rowley, Emre Hasegeli)", "commit_aliases": ["7e534adcd"], "source_commits": ["7e534adcd"], "source_entry_id": "10.0/changes/014", "db_id": "4a3a9681e4de32eff50a6844b84d1f3d", "patch_ids": ["38c076e6a2a1c68b83549d69fdfe6046"], "statement_hash": "4697ce18a739f6b66fbe3ea4e30d5845b230be125772b75978c9fb392932e4eb", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-55f1489518a7869e", "cves": [], "html": "<p>通过更有效地复用索引空间，加快 <acronym>GiST</acronym> 的插入和更新（Andrey Borodin）</p>", "text": "通过更有效地复用索引空间，加快 GiST 的插入和更新（Andrey Borodin）", "title": "通过更有效地复用索引空间，加快 GiST 的插入和更新", "commits": [], "section": "服务器 / 索引", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "873e1fae304b71cdaa7d7d3133f08f9f5f71bfb6d37ebee9338a92519b7a46d1", "section_path": ["服务器", "索引"], "commit_groups": [["b1328d78f"]], "identity_text": "Allow faster GiST inserts and updates by reusing index space more efficiently (Andrey Borodin)", "commit_aliases": ["b1328d78f"], "source_commits": ["b1328d78f"], "source_entry_id": "10.0/changes/015", "db_id": "72c2c504d2cad357bfa42c1a57aeec03", "patch_ids": ["958af0fa41b150f1937d368cd9bd5dd7"], "statement_hash": "1efd64b4e1c6f919ab916c249d45b239626c584700a628bb3360ea4c3cef3199", "relations": [], "version": "10.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-de8060061e023445", "cves": [], "html": "<p>减少清理 <acronym>GIN</acronym> 索引期间的页锁定（Andrey Borodin）</p>", "text": "减少清理 GIN 索引期间的页锁定（Andrey Borodin）", "title": "减少清理 GIN 索引期间的页锁定", "commits": [], "section": "服务器 / 索引", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.3", "source_hash": "54234c0421590e825056630e0e51e79bec4f242af70ee5144c1452e68be025fd", "section_path": ["服务器", "索引"], "commit_groups": [["218f51584"]], "identity_text": "Reduce page locking during vacuuming of GIN indexes (Andrey Borodin)", "commit_aliases": ["218f51584"], "source_commits": ["218f51584"], "source_entry_id": "10.0/changes/016", "db_id": "cf69d56def03ed14755fd31def0e340e", "patch_ids": ["af5a4f84bd504729b8d5553c5738666c"], "statement_hash": "feb3878a230e43b5012884158962e33eb28eb30945219a110608f2b9bce84e2c", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-baa5ff88603ee286", "cves": [], "html": "<p>减少更改表参数所需的锁定（Simon Riggs，Fabrízio Mello）</p>\n<p>例如，现在可以使用更轻量的锁来更改表的<a href=\"/docs/10/runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY\">effective_io_concurrency</a>设置。</p>", "text": "减少更改表参数所需的锁定（Simon Riggs，Fabrízio Mello） 例如，现在可以使用更轻量的锁来更改表的effective_io_concurrency设置。", "title": "减少更改表参数所需的锁定", "commits": [], "section": "服务器 / 锁定", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.4", "source_hash": "91ab7a497fc5770163a3a945e5773e800c8e7a32ffd2da0041ec494a3ebf0559", "section_path": ["服务器", "锁定"], "commit_groups": [["21d4e2e20"], ["68ea2b7f9"]], "identity_text": "Reduce locking required to change table parameters (Simon Riggs, Fabrízio Mello) For example, changing a table's guc-effective-io-concurrency setting can now be done with a more lightweight lock.", "commit_aliases": ["21d4e2e20", "68ea2b7f9"], "source_commits": ["21d4e2e20", "68ea2b7f9"], "source_entry_id": "10.0/changes/017", "db_id": "03e8ed29f7925f4b75f852de9ecac106", "patch_ids": ["0362c70ef060a8323099d6f91c42b444", "d778ac864ec469991b691e09935a25b0"], "statement_hash": "a88b00fc4ab215877dfbc9078872b452a425181d9a8469401118815d6103ef15", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1a360e0784434cbb", "cves": [], "html": "<p>允许调整谓词锁升级阈值（Dagfinn Ilmari Mannsåker）</p>\n<p>现在可以通过两个新的服务器参数<a href=\"/docs/10/runtime-config-locks.html#GUC-MAX-PRED-LOCKS-PER-RELATION\">max_pred_locks_per_relation</a>和<a href=\"/docs/10/runtime-config-locks.html#GUC-MAX-PRED-LOCKS-PER-PAGE\">max_pred_locks_per_page</a>控制锁升级。</p>", "text": "允许调整谓词锁升级阈值（Dagfinn Ilmari Mannsåker） 现在可以通过两个新的服务器参数max_pred_locks_per_relation和max_pred_locks_per_page控制锁升级。", "title": "允许调整谓词锁升级阈值", "commits": [], "section": "服务器 / 锁定", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.4", "source_hash": "1b164abf1c1c1a7263268b6d9468c9258294c14fbf95f8399d6c1d96d153912e", "section_path": ["服务器", "锁定"], "commit_groups": [["c63172d60"]], "identity_text": "Allow tuning of predicate lock promotion thresholds (Dagfinn Ilmari Mannsåker) Lock promotion can now be controlled through two new server parameters, guc-max-pred-locks-per-relation and guc-max-pred-locks-per-page .", "commit_aliases": ["c63172d60"], "source_commits": ["c63172d60"], "source_entry_id": "10.0/changes/018", "db_id": "f2a62da54906e93a244338a9f1df3037", "patch_ids": ["55bcf78b0fa537d7fd1325d7279409cd"], "statement_hash": "5f4f7e007595f1d08973f2b118f76f5beefc7d6474e826547b45b274c5b2d5e7", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1417ce2d9eb52b9a", "cves": [], "html": "<p>增加多列优化器统计信息，用于计算相关比率和不同值数量（Tomas Vondra，David Rowley，Álvaro Herrera）</p>\n<p>新命令包括 <a href=\"/docs/10/sql-createstatistics.html\" title=\"CREATE STATISTICS\"><code>CREATE STATISTICS</code></a>、<a href=\"/docs/10/sql-alterstatistics.html\" title=\"ALTER STATISTICS\"><code>ALTER STATISTICS</code></a> 和 <a href=\"/docs/10/sql-dropstatistics.html\" title=\"DROP STATISTICS\"><code>DROP STATISTICS</code></a>。此功能有助于估算查询内存用量，以及组合各列的统计信息。</p>", "text": "增加多列优化器统计信息，用于计算相关比率和不同值数量（Tomas Vondra，David Rowley，Álvaro Herrera） 新命令包括 CREATE STATISTICS、ALTER STATISTICS 和 DROP STATISTICS。此功能有助于估算查询内存用量，以及组合各列的统计信息。", "title": "增加多列优化器统计信息，用于计算相关比率和不同值数量", "commits": [], "section": "服务器 / 优化器", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.5", "source_hash": "3ecc2991f68d04f65fd0098bfb5a258ec6049b29799d0646f640853c5a3e7020", "section_path": ["服务器", "优化器"], "commit_groups": [["2686ee1b7"], ["7b504eb28"], ["bc085205c"]], "identity_text": "Add multi-column optimizer statistics to compute the correlation ratio and number of distinct values (Tomas Vondra, David Rowley, Álvaro Herrera) New commands are CREATE STATISTICS, ALTER STATISTICS, and DROP STATISTICS. This feature is helpful in estimating query memory usage and when combining the statistics from individual columns.", "commit_aliases": ["2686ee1b7", "7b504eb28", "bc085205c"], "source_commits": ["2686ee1b7", "7b504eb28", "bc085205c"], "source_entry_id": "10.0/changes/019", "db_id": "95c45126496ccbc42e992037b2e36f79", "patch_ids": ["071d28abee56578c9ac9a9abe84bba82", "2d2186bb154a4a94e0a5c995f4d9401c", "48660e4757d3fc4de1727ad1a855cdec"], "statement_hash": "014f8ca929ae1364460b00003f203b0fe24eb6f5b9f5357b4e01b7e8d90bea2d", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-462a642f28f2109c", "cves": [], "html": "<p>提高受行级安全限制影响的查询的性能（Tom Lane）</p>\n<p>优化器现在更清楚可以将 RLS 过滤条件放在何处，从而在安全实施 RLS 条件的同时生成更好的计划。</p>", "text": "提高受行级安全限制影响的查询的性能（Tom Lane） 优化器现在更清楚可以将 RLS 过滤条件放在何处，从而在安全实施 RLS 条件的同时生成更好的计划。", "title": "提高受行级安全限制影响的查询的性能", "commits": [], "section": "服务器 / 优化器", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.5", "source_hash": "63087745028303bed5708851010959a235822d06b5b2ad1a44b30dd43ceb4d3a", "section_path": ["服务器", "优化器"], "commit_groups": [["215b43cdc"]], "identity_text": "Improve performance of queries affected by row-level security restrictions (Tom Lane) The optimizer now has more knowledge about where it can place RLS filter conditions, allowing better plans to be generated while still enforcing the RLS conditions safely.", "commit_aliases": ["215b43cdc"], "source_commits": ["215b43cdc"], "source_entry_id": "10.0/changes/020", "db_id": "aedc755a19871b47cb5166ba00e27e27", "patch_ids": ["46a4422734002802265df47eeea0d0fb"], "statement_hash": "314e46d8b05aeb6c02502a43a7d599456722fdc05f1f4eb1eea50e573bb25bb8", "relations": [], "version": "10.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-90bb4ad676212d6f", "cves": [], "html": "<p>加快使用 <code>numeric</code> 类型算术计算累计和的聚合函数，包括 <code>SUM()</code>、<code>AVG()</code> 和 <code>STDDEV()</code> 的某些变体（Heikki Linnakangas）</p>", "text": "加快使用 numeric 类型算术计算累计和的聚合函数，包括 SUM()、AVG() 和 STDDEV() 的某些变体（Heikki Linnakangas）", "title": "加快使用 numeric 类型算术计算累计和的聚合函数，包括 SUM()、AVG() 和 STDDEV() 的某些变体", "commits": [], "section": "服务器 / 一般性能", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "388bfef76ad2e6df1d381fdace328bd03cc06271110cf941d93c6651e4c8b071", "section_path": ["服务器", "一般性能"], "commit_groups": [["9cca11c91"]], "identity_text": "Speed up aggregate functions that calculate a running sum using numeric-type arithmetic, including some variants of SUM(), AVG(), and STDDEV() (Heikki Linnakangas)", "commit_aliases": ["9cca11c91"], "source_commits": ["9cca11c91"], "source_entry_id": "10.0/changes/021", "db_id": "22f77a8b9b12088b50c002a2dcacb437", "patch_ids": ["c48dc50a58961e755fcbf82e98b4f7d8"], "statement_hash": "02621dba2511c773dc02c378a362aee7931b98b0b08b521fc043746ade161f1c", "relations": [], "version": "10.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-58b9113597549532", "cves": [], "html": "<p>通过使用基数树提升字符编码转换性能（Kyotaro Horiguchi，Heikki Linnakangas）</p>", "text": "通过使用基数树提升字符编码转换性能（Kyotaro Horiguchi，Heikki Linnakangas）", "title": "通过使用基数树提升字符编码转换性能", "commits": [], "section": "服务器 / 一般性能", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "d5ab19d5e750c79efa4a97073df0229f0c4de02cfb0bedec8302b4c3e11dee67", "section_path": ["服务器", "一般性能"], "commit_groups": [["aeed17d00"]], "identity_text": "Improve performance of character encoding conversions by using radix trees (Kyotaro Horiguchi, Heikki Linnakangas)", "commit_aliases": ["aeed17d00"], "source_commits": ["aeed17d00"], "source_entry_id": "10.0/changes/022", "db_id": "c645b71861ca967a72c8abf674da258d", "patch_ids": ["185e9a021cca9226f2cf50bfc0ac993f"], "statement_hash": "6b98766abfd66058dc51b50da6f729ec3719981f995060188b50a283a9dd29f4", "relations": [], "version": "10.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-44b476d6db1e177c", "cves": [], "html": "<p>降低查询执行期间的表达式求值开销和计划节点调用开销（Andres Freund）</p>\n<p>这对于处理大量行的查询尤其有帮助。</p>", "text": "降低查询执行期间的表达式求值开销和计划节点调用开销（Andres Freund） 这对于处理大量行的查询尤其有帮助。", "title": "降低查询执行期间的表达式求值开销和计划节点调用开销", "commits": [], "section": "服务器 / 一般性能", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "5aded6e9fe95f159d390c23cf60f5939626bb4f3e8ed4d9d846b18abbef08336", "section_path": ["服务器", "一般性能"], "commit_groups": [["b8d7f053c"], ["cc9f08b6b"]], "identity_text": "Reduce expression evaluation overhead during query execution, as well as plan node calling overhead (Andres Freund) This is particularly helpful for queries that process many rows.", "commit_aliases": ["b8d7f053c", "cc9f08b6b"], "source_commits": ["b8d7f053c", "cc9f08b6b"], "source_entry_id": "10.0/changes/023", "db_id": "37ec3e16410b3679e8ec302bf54ec3f9", "patch_ids": ["6972bf8f12429a286990b6d6b79b6d05", "c583553efe8cc6ed3441f8448744f770"], "statement_hash": "31f4b0068b97a365bf20839668498a509e0df7b6c4082f5c07f7ca0a3ad772a8", "relations": [], "version": "10.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-c32b449ec864ad76", "cves": [], "html": "<p>允许对分组集使用 hash 聚合（Andrew Gierth）</p>", "text": "允许对分组集使用 hash 聚合（Andrew Gierth）", "title": "允许对分组集使用 hash 聚合", "commits": [], "section": "服务器 / 一般性能", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "c2b08341f19ef757cad75fdfa47ea562a2ff62339aab26d6c6080de43ab946bb", "section_path": ["服务器", "一般性能"], "commit_groups": [["b5635948a"]], "identity_text": "Allow hashed aggregation to be used with grouping sets (Andrew Gierth)", "commit_aliases": ["b5635948a"], "source_commits": ["b5635948a"], "source_entry_id": "10.0/changes/024", "db_id": "462fa1732b982d6224435709bbab7cd8", "patch_ids": ["5df792cd132af1166945ad18f97760c8"], "statement_hash": "2bb7751c8e9e4ebcca9a50fb1dca0205f9b5808245d9bac5b19be88907614ec8", "relations": [], "version": "10.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-4ded7b62fb3d04ee", "cves": [], "html": "<p>利用唯一性保证优化某些连接类型（David Rowley）</p>", "text": "利用唯一性保证优化某些连接类型（David Rowley）", "title": "利用唯一性保证优化某些连接类型", "commits": [], "section": "服务器 / 一般性能", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "4c74193b31f377f1f61a3c8c2175236a6d1ef1e4b7bfe77f7261592576a0a96a", "section_path": ["服务器", "一般性能"], "commit_groups": [["23886581b"], ["9c7f5229a"]], "identity_text": "Use uniqueness guarantees to optimize certain join types (David Rowley)", "commit_aliases": ["23886581b", "9c7f5229a"], "source_commits": ["23886581b", "9c7f5229a"], "source_entry_id": "10.0/changes/025", "db_id": "a497fd0779d1413d9e58d39c3a4efda8", "patch_ids": ["3a88d4439de16075a5e21a2ec2734b4b", "cb899a40b67185d81457c2b38164d79e"], "statement_hash": "6654469be140987fa0bacdc94b993b4dff5f1de14d2fc2834502dfdfc09121a3", "relations": [], "version": "10.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-11b136d11f0f1788", "cves": [], "html": "<p>提升 <code>macaddr</code> 数据类型的排序性能（Brandur Leach）</p>", "text": "提升 macaddr 数据类型的排序性能（Brandur Leach）", "title": "提升 macaddr 数据类型的排序性能", "commits": [], "section": "服务器 / 一般性能", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "ee0e704b4bcc30b1925adbfe690aff5a0cf5187d5cddbabba49bbfdd8bb7efe5", "section_path": ["服务器", "一般性能"], "commit_groups": [["f90d23d0c"]], "identity_text": "Improve sort performance of the macaddr data type (Brandur Leach)", "commit_aliases": ["f90d23d0c"], "source_commits": ["f90d23d0c"], "source_entry_id": "10.0/changes/026", "db_id": "39c690edaa071e1e7a7305ad5128b67c", "patch_ids": ["7ea9c225d9fcabcb590eec394f63e593"], "statement_hash": "e33934eec2e7f5b578d7d3212fb8cc6e8be888b8fe421a58c38d42e7b4141c46", "relations": [], "version": "10.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-e3e64c2eb60c7d8d", "cves": [], "html": "<p>减少引用数千个关系的会话中的统计信息跟踪开销（Aleksander Alekseev）</p>", "text": "减少引用数千个关系的会话中的统计信息跟踪开销（Aleksander Alekseev）", "title": "减少引用数千个关系的会话中的统计信息跟踪开销", "commits": [], "section": "服务器 / 一般性能", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.6", "source_hash": "8f42cb8829b0375e0aaad5cda279df5896c09c29558121d70e61921e24385492", "section_path": ["服务器", "一般性能"], "commit_groups": [["090010f2e"]], "identity_text": "Reduce statistics tracking overhead in sessions that reference many thousands of relations (Aleksander Alekseev)", "commit_aliases": ["090010f2e"], "source_commits": ["090010f2e"], "source_entry_id": "10.0/changes/027", "db_id": "1c8079c8d371eb57ce2f3d1d6cc62bb6", "patch_ids": ["6cab17a8be470f60e10b85a56008788b"], "statement_hash": "93f5fffd6c920bbffef5a853de79b95d24f970f71db7e006be9b73a29028e7e2", "relations": [], "version": "10.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-5f571490ca628b93", "cves": [], "html": "<p>允许显式控制 <a href=\"/docs/10/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN</code></a> 是否显示规划和执行时间（Ashutosh Bapat）</p>\n<p>默认情况下，<code>EXPLAIN ANALYZE</code> 会显示规划和执行时间，其他情况下则不显示。新的 <code>EXPLAIN</code> 选项 <code>SUMMARY</code> 允许显式控制这一行为。</p>", "text": "允许显式控制 EXPLAIN 是否显示规划和执行时间（Ashutosh Bapat） 默认情况下，EXPLAIN ANALYZE 会显示规划和执行时间，其他情况下则不显示。新的 EXPLAIN 选项 SUMMARY 允许显式控制这一行为。", "title": "允许显式控制 EXPLAIN 是否显示规划和执行时间", "commits": [], "section": "服务器 / 监控", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7", "source_hash": "ea584d87af6b8e5364fe81e7b3f8a8cb06f1e9f4d0291281074ad30e2b8afc76", "section_path": ["服务器", "监控"], "commit_groups": [["f9b1a0dd4"]], "identity_text": "Allow explicit control over EXPLAIN's display of planning and execution time (Ashutosh Bapat) By default planning and execution time are displayed by EXPLAIN ANALYZE and are not displayed in other cases. The new EXPLAIN option SUMMARY allows explicit control of this.", "commit_aliases": ["f9b1a0dd4"], "source_commits": ["f9b1a0dd4"], "source_entry_id": "10.0/changes/028", "db_id": "28d39e9160b8d768e68a3a4cc128bc68", "patch_ids": ["2f39a1b612c53848ca1f862ccaaadd4b"], "statement_hash": "5fbd93e1bf5cdc2a63e9136c89d98b723a2037ed17ca95db05522aaf54301d76", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-cbb5e38245a3abea", "cves": [], "html": "<p>增加默认监控角色（Dave Page）</p>\n<p>新角色 <code>pg_monitor</code>、<code>pg_read_all_settings</code>、<code>pg_read_all_stats</code> 和 <code>pg_stat_scan_tables</code> 可以简化权限配置。</p>", "text": "增加默认监控角色（Dave Page） 新角色 pg_monitor、pg_read_all_settings、pg_read_all_stats 和 pg_stat_scan_tables 可以简化权限配置。", "title": "增加默认监控角色", "commits": [], "section": "服务器 / 监控", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7", "source_hash": "be247921782ba0e7291a2fd8772e0c531053e0be754149fb681ab8191b5f147a", "section_path": ["服务器", "监控"], "commit_groups": [["25fff4079"]], "identity_text": "Add default monitoring roles (Dave Page) New roles pg_monitor, pg_read_all_settings, pg_read_all_stats, and pg_stat_scan_tables allow simplified permission configuration.", "commit_aliases": ["25fff4079"], "source_commits": ["25fff4079"], "source_entry_id": "10.0/changes/029", "db_id": "03c8c16633bfa3315cb7603e836e7926", "patch_ids": ["322acabb1b3a98d246d2337a8920beb5"], "statement_hash": "8eefc221d6eaff31471c52fca0d85037602cae0fc92a246f126815aa269104b8", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-0bb28791af46d99b", "cves": [], "html": "<p>在 <a href=\"/docs/10/sql-refreshmaterializedview.html\" title=\"REFRESH MATERIALIZED VIEW\"><code>REFRESH MATERIALIZED VIEW</code></a> 期间正确更新统计信息收集器（Jim Mlodgenski）</p>", "text": "在 REFRESH MATERIALIZED VIEW 期间正确更新统计信息收集器（Jim Mlodgenski）", "title": "在 REFRESH MATERIALIZED VIEW 期间正确更新统计信息收集器", "commits": [], "section": "服务器 / 监控", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7", "source_hash": "97fe3f8b3e07930bb7e9d58904a340f2e76229d2c8f447aa08c16e3c63541b5d", "section_path": ["服务器", "监控"], "commit_groups": [["17f8ffa1e"]], "identity_text": "Properly update the statistics collector during REFRESH MATERIALIZED VIEW (Jim Mlodgenski)", "commit_aliases": ["17f8ffa1e"], "source_commits": ["17f8ffa1e"], "source_entry_id": "10.0/changes/030", "db_id": "4e700e64245bfb6ff8551c913b9f4edc", "patch_ids": ["677dbcde628c3cafeccb6ffba5d3d81e"], "statement_hash": "8e7297999574218d60a7ba546bafeb3570ae76c6fab38f8403630a884df50b23", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-deba8276678cf2c8", "cves": [], "html": "<p>更改<a href=\"/docs/10/runtime-config-logging.html#GUC-LOG-LINE-PREFIX\">log_line_prefix</a>的默认值，使 postmaster 日志输出的每一行都包含当前时间戳（含毫秒）和进程 ID（Christoph Berg）</p>\n<p>以前的默认值是空前缀。</p>", "text": "更改log_line_prefix的默认值，使 postmaster 日志输出的每一行都包含当前时间戳（含毫秒）和进程 ID（Christoph Berg） 以前的默认值是空前缀。", "title": "更改log_line_prefix的默认值，使 postmaster 日志输出的每一行都包含当前时间戳（含毫秒）和进程 ID", "commits": [], "section": "服务器 / 监控 / Logging", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.3", "source_hash": "430530b779b749f39d390dc37eee0a6f2c90912e97fab5109eac4390988c03a7", "section_path": ["服务器", "监控", "Logging"], "commit_groups": [["7d3235ba4"]], "identity_text": "Change the default value of guc-log-line-prefix to include current timestamp (with milliseconds) and the process ID in each line of postmaster log output (Christoph Berg) The previous default was an empty prefix.", "commit_aliases": ["7d3235ba4"], "source_commits": ["7d3235ba4"], "source_entry_id": "10.0/changes/031", "db_id": "4ba3f50ad7bca656896e9b0bf0e9b1e1", "patch_ids": ["cc34968670c26fa85eb9f19b550a7fea"], "statement_hash": "10ce51fdd7c68cd9b2a6f256ec140ba623bcca630a8ed9696bc59e6b34ff9f35", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-453d73d82501c213", "cves": [], "html": "<p>增加返回日志和 <acronym>WAL</acronym> 目录内容的函数（Dave Page）</p>\n<p>新增函数为 <a href=\"/docs/10/functions-admin.html#FUNCTIONS-ADMIN-GENFILE-TABLE\" title=\"表 9.88. 通用文件访问函数\"><code>pg_ls_logdir()</code></a> 和 <a href=\"/docs/10/functions-admin.html#FUNCTIONS-ADMIN-GENFILE-TABLE\" title=\"表 9.88. 通用文件访问函数\"><code>pg_ls_waldir()</code></a>，拥有适当权限的非超级用户也可以执行它们。</p>", "text": "增加返回日志和 WAL 目录内容的函数（Dave Page） 新增函数为 pg_ls_logdir() 和 pg_ls_waldir()，拥有适当权限的非超级用户也可以执行它们。", "title": "增加返回日志和 WAL 目录内容的函数", "commits": [], "section": "服务器 / 监控 / Logging", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.3", "source_hash": "aa69b5a03ec55b09e9c016e63b3730841d1392163dd5e2c0dfe2b505851ebe3a", "section_path": ["服务器", "监控", "Logging"], "commit_groups": [["befd73c50"]], "identity_text": "Add functions to return the log and WAL directory contents (Dave Page) The new functions are pg_ls_logdir() and pg_ls_waldir() and can be executed by non-superusers with the proper permissions.", "commit_aliases": ["befd73c50"], "source_commits": ["befd73c50"], "source_entry_id": "10.0/changes/032", "db_id": "2ef8a56bbdfe29d66b2d06d90a6910a9", "patch_ids": ["60cc3a85547bfd10b3530d8e2dc4b3ed"], "statement_hash": "740c9ab225c178b54c9e1202f634e38793d06b2096a52eb643f191d0f23e3972", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-f6b39ca676d79669", "cves": [], "html": "<p>增加函数 <a href=\"/docs/10/functions-info.html#FUNCTIONS-INFO-SESSION-TABLE\" title=\"表 9.60. 会话信息函数\"><code>pg_current_logfile()</code></a>，用于读取日志收集器当前的 stderr 和 csvlog 输出文件名（Gilles Darold）</p>", "text": "增加函数 pg_current_logfile()，用于读取日志收集器当前的 stderr 和 csvlog 输出文件名（Gilles Darold）", "title": "增加函数 pg_current_logfile()，用于读取日志收集器当前的 stderr 和 csvlog 输出文件名", "commits": [], "section": "服务器 / 监控 / Logging", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.3", "source_hash": "28b4a64c3794bd7744515c7c859c0407f6b91ba771fbc25af6ed9368d0338247", "section_path": ["服务器", "监控", "Logging"], "commit_groups": [["19dc233c3"]], "identity_text": "Add function pg_current_logfile() to read logging collector's current stderr and csvlog output file names (Gilles Darold)", "commit_aliases": ["19dc233c3"], "source_commits": ["19dc233c3"], "source_entry_id": "10.0/changes/033", "db_id": "9da464dfa9df487bebc304dfbe1ef017", "patch_ids": ["37643f739d9ce10ed98e64646bd0e9c6"], "statement_hash": "a6318c5075ab3f4cb8eb03609b0cd764ca472fa6c55359cd35522e25cbd220a7", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-2c649ea91f35a514", "cves": [], "html": "<p>在 postmaster 启动期间，在服务器日志中报告每个监听套接字的地址和端口号（Tom Lane）</p>\n<p>此外，在记录绑定监听套接字失败时，包含尝试绑定的具体地址。</p>", "text": "在 postmaster 启动期间，在服务器日志中报告每个监听套接字的地址和端口号（Tom Lane） 此外，在记录绑定监听套接字失败时，包含尝试绑定的具体地址。", "title": "在 postmaster 启动期间，在服务器日志中报告每个监听套接字的地址和端口号", "commits": [], "section": "服务器 / 监控 / Logging", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.3", "source_hash": "d9c6f9c9dedb546ff579dbaeabf9516157b0b8d5f301d0a994ae1b67e50517cd", "section_path": ["服务器", "监控", "Logging"], "commit_groups": [["2b32ac2a5"], ["f9dfa5c97"]], "identity_text": "Report the address and port number of each listening socket in the server log during postmaster startup (Tom Lane) Also, when logging failure to bind a listening socket, include the specific address we attempted to bind to.", "commit_aliases": ["2b32ac2a5", "f9dfa5c97"], "source_commits": ["2b32ac2a5", "f9dfa5c97"], "source_entry_id": "10.0/changes/034", "db_id": "271e0aed53552f19193ecc8e7e8bf126", "patch_ids": ["463233a146b24b5e51cf7e4a2ce16960", "d37ecd73caa8793d2ba533432e8910de"], "statement_hash": "992ddb3eb6b0cfbd74f88dabb38811adc178df61a93bd16814a3961270354d57", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-325ca7795c78de75", "cves": [], "html": "<p>减少关于启动器子进程启动和停止的冗余日志（Tom Lane）</p>\n<p>这些消息现在使用 <code>DEBUG1</code> 级别。</p>", "text": "减少关于启动器子进程启动和停止的冗余日志（Tom Lane） 这些消息现在使用 DEBUG1 级别。", "title": "减少关于启动器子进程启动和停止的冗余日志", "commits": [], "section": "服务器 / 监控 / Logging", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.3", "source_hash": "00fbc30c5273be84d7dbc524546c5c9857c1097d4ee2fe6a67fddc109789052a", "section_path": ["服务器", "监控", "Logging"], "commit_groups": [["6ec4c8584"]], "identity_text": "Reduce log chatter about the starting and stopping of launcher subprocesses (Tom Lane) These are now DEBUG1-level messages.", "commit_aliases": ["6ec4c8584"], "source_commits": ["6ec4c8584"], "source_entry_id": "10.0/changes/035", "db_id": "49384d2a2bacddcbd689034617da0a88", "patch_ids": ["e20103074d616d1b871518dcdc8996a4"], "statement_hash": "ff045df64422f018f29bade3d44282002a90f24e870c1c8d5cb8fc4b1dcca238", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-9421fc32b98dfa1d", "cves": [], "html": "<p>减少<a href=\"/docs/10/runtime-config-logging.html#GUC-LOG-MIN-MESSAGES\">log_min_messages</a>所控制的较低编号调试级别的消息详细程度（Robert Haas）</p>\n<p>这也改变了<a href=\"/docs/10/runtime-config-client.html#GUC-CLIENT-MIN-MESSAGES\">client_min_messages</a>各调试级别的详细程度。</p>", "text": "减少log_min_messages所控制的较低编号调试级别的消息详细程度（Robert Haas） 这也改变了client_min_messages各调试级别的详细程度。", "title": "减少log_min_messages所控制的较低编号调试级别的消息详细程度", "commits": [], "section": "服务器 / 监控 / Logging", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.3", "source_hash": "df4e904359840948cf53906f5168fa3005017c1ae2572d893a949793650a7569", "section_path": ["服务器", "监控", "Logging"], "commit_groups": [["a43f1939d"]], "identity_text": "Reduce message verbosity of lower-numbered debug levels controlled by guc-log-min-messages (Robert Haas) This also changes the verbosity of guc-client-min-messages debug levels.", "commit_aliases": ["a43f1939d"], "source_commits": ["a43f1939d"], "source_entry_id": "10.0/changes/036", "db_id": "c4d01ad319a06db439ae0411c31e7c7b", "patch_ids": ["5867378bd43df64dd898d6670e3791aa"], "statement_hash": "ef8d0ea82aae09f3f1f4871c1b664d7896086ccb80d4c22711d94a8af3a7a588", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-8cf9069caac6bd87", "cves": [], "html": "<p>增加 <code>pg_stat_activity</code> 对底层等待状态的报告（Michael Paquier，Robert Haas，Rushabh Lathia）</p>\n<p>此变更允许报告大量底层等待条件，包括锁存器等待、文件读取/写入/fsync、客户端读取/写入以及同步复制。</p>", "text": "增加 pg_stat_activity 对底层等待状态的报告（Michael Paquier，Robert Haas，Rushabh Lathia） 此变更允许报告大量底层等待条件，包括锁存器等待、文件读取/写入/fsync、客户端读取/写入以及同步复制。", "title": "增加 pg_stat_activity 对底层等待状态的报告", "commits": [], "section": "服务器 / 监控 / pg_stat_activity", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.4", "source_hash": "5ff4e17d8556018318958e0e0683c0e505afedeb5025d70cca75945b04e39374", "section_path": ["服务器", "监控", "pg_stat_activity"], "commit_groups": [["249cf070e"], ["6f3bd98eb"]], "identity_text": "Add pg_stat_activity reporting of low-level wait states (Michael Paquier, Robert Haas, Rushabh Lathia) This change enables reporting of numerous low-level wait conditions, including latch waits, file reads/writes/fsyncs, client reads/writes, and synchronous replication.", "commit_aliases": ["249cf070e", "6f3bd98eb"], "source_commits": ["249cf070e", "6f3bd98eb"], "source_entry_id": "10.0/changes/037", "db_id": "548d61363ef43e9e7d3300b8c0a296aa", "patch_ids": ["95c8a1fef2d53841fc467b6975fcd271", "e2fcec9826192788006bf9c5069eccdc"], "statement_hash": "f9ad28b2e7fe93e93ccbd6fae1e42e388478d76063c504772673ceda2f95ca01", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-cbc6aca89cf30037", "cves": [], "html": "<p>在 <code>pg_stat_activity</code> 中显示辅助进程、后台工作进程和 WAL 发送进程进程（Kuntal Ghosh，Michael Paquier）</p>\n<p>这简化了监控。新列 <code>backend_type</code> 用于标识进程类型。</p>", "text": "在 pg_stat_activity 中显示辅助进程、后台工作进程和 WAL 发送进程进程（Kuntal Ghosh，Michael Paquier） 这简化了监控。新列 backend_type 用于标识进程类型。", "title": "在 pg_stat_activity 中显示辅助进程、后台工作进程和 WAL 发送进程进程", "commits": [], "section": "服务器 / 监控 / pg_stat_activity", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.4", "source_hash": "cd28682d81494648d81055c6c9ca93e431f0a39e44feb1f6766dd3b4995c91be", "section_path": ["服务器", "监控", "pg_stat_activity"], "commit_groups": [["fc3d4a44e"], ["fc70a4b0d"]], "identity_text": "Show auxiliary processes, background workers, and walsender processes in pg_stat_activity (Kuntal Ghosh, Michael Paquier) This simplifies monitoring. A new column backend_type identifies the process type.", "commit_aliases": ["fc3d4a44e", "fc70a4b0d"], "source_commits": ["fc3d4a44e", "fc70a4b0d"], "source_entry_id": "10.0/changes/038", "db_id": "f9c06fb49bc9d2c71a891320481ccab1", "patch_ids": ["3fd3d7e5eab9f66890e41e8d8c1ef33c", "9bf2ec9c4496d4be5be2596ded2e953e"], "statement_hash": "e983983774262384bc72aa0c32a3dc52d360f459d5d7de465b24c3c21e9e6222", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-456bcf3e1a4266ed", "cves": [], "html": "<p>允许 <code>pg_stat_activity</code> 显示并行工作进程正在执行的 SQL 查询（Rafia Sabih）</p>", "text": "允许 pg_stat_activity 显示并行工作进程正在执行的 SQL 查询（Rafia Sabih）", "title": "允许 pg_stat_activity 显示并行工作进程正在执行的 SQL 查询", "commits": [], "section": "服务器 / 监控 / pg_stat_activity", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.4", "source_hash": "86bb2e446219b8067f2f20d85556c2b66a1450f0af7cb4485ddab45d722252c4", "section_path": ["服务器", "监控", "pg_stat_activity"], "commit_groups": [["4c728f382"]], "identity_text": "Allow pg_stat_activity to show the SQL query being executed by parallel workers (Rafia Sabih)", "commit_aliases": ["4c728f382"], "source_commits": ["4c728f382"], "source_entry_id": "10.0/changes/039", "db_id": "5f5529657995d22acc28bd78dc4ac127", "patch_ids": ["e19a1283779506ba3b95cb3caf707b26"], "statement_hash": "53d66b5d97c8fca3c12635cee633eca6889a199a77e4a475c7d05866da6ec2fd", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-a7e013889423fa21", "cves": [], "html": "<p>将 <code>pg_stat_activity</code>.<code>wait_event_type</code> 的值 <code>LWLockTranche</code> 和 <code>LWLockNamed</code> 重命名为 <code>LWLock</code>（Robert Haas）</p>\n<p>这使输出更一致。</p>", "text": "将 pg_stat_activity.wait_event_type 的值 LWLockTranche 和 LWLockNamed 重命名为 LWLock（Robert Haas） 这使输出更一致。", "title": "将 pg_stat_activity.wait_event_type 的值 LWLockTranche 和 LWLockNamed 重命名为 LWLock", "commits": [], "section": "服务器 / 监控 / pg_stat_activity", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.7.4", "source_hash": "b4aa3fd82344e64b9f92bd4d7e700f520be7a8351d13375ec0c232776da6dddd", "section_path": ["服务器", "监控", "pg_stat_activity"], "commit_groups": [["3761fe3c2"]], "identity_text": "Rename pg_stat_activity.wait_event_type values LWLockTranche and LWLockNamed to LWLock (Robert Haas) This makes the output more consistent.", "commit_aliases": ["3761fe3c2"], "source_commits": ["3761fe3c2"], "source_entry_id": "10.0/changes/040", "db_id": "f59ec4da0ca69e48f492dc00cf6f1d9e", "patch_ids": ["ec668b12c66ff7f67c918dd7fb4c6a77"], "statement_hash": "fdcf1edb08069f73db9f25970f7a5931255b6bcb898d10573b8028e18742f65a", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-c3bafcfd09d28f3d", "cves": [], "html": "<p>增加对使用 <a href=\"/docs/10/auth-methods.html#AUTH-PASSWORD\" title=\"20.3.2. 密码认证\">SCRAM-SHA-256</a> 协商和存储密码的支持（Michael Paquier，Heikki Linnakangas）</p>\n<p>这比现有的 <code>md5</code> 协商和存储方式更安全。</p>", "text": "增加对使用 SCRAM-SHA-256 协商和存储密码的支持（Michael Paquier，Heikki Linnakangas） 这比现有的 md5 协商和存储方式更安全。", "title": "增加对使用 SCRAM-SHA-256 协商和存储密码的支持", "commits": [], "section": "服务器 / Authentication", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.8", "source_hash": "93ecc476821b9bd01a834ba181a5aa6d0a6643d0901e73f5af61a8d938d693be", "section_path": ["服务器", "Authentication"], "commit_groups": [["60f11b87a"], ["7ac955b34"], ["818fd4a67"], ["c727f120f"]], "identity_text": "Add SCRAM-SHA-256 support for password negotiation and storage (Michael Paquier, Heikki Linnakangas) This provides better security than the existing md5 negotiation and storage method.", "commit_aliases": ["60f11b87a", "7ac955b34", "818fd4a67", "c727f120f"], "source_commits": ["60f11b87a", "7ac955b34", "818fd4a67", "c727f120f"], "source_entry_id": "10.0/changes/041", "db_id": "5955cc2527979659e2abd0a8137f68e0", "patch_ids": ["193cf0a9c3b958595f86fa8f6288bfdb", "4467fdbca396e7fad000b231f4e93949", "5ac56d614016e98da18579d79541bad7", "5e0a4837ab27fad1974e9ac383fe9890"], "statement_hash": "eb75de471634a3165ca13066db38a2bb6ba77cca0945c31bb1524d78d979e660", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-cd00f8023660487b", "cves": [], "html": "<p>将服务器参数<a href=\"/docs/10/runtime-config-connection.html#GUC-PASSWORD-ENCRYPTION\">password_encryption</a>从 <code>boolean</code> 改为 <code>enum</code>（Michael Paquier）</p>\n<p>这是支持更多密码 hash 选项所必需的。</p>", "text": "将服务器参数password_encryption从 boolean 改为 enum（Michael Paquier） 这是支持更多密码 hash 选项所必需的。", "title": "将服务器参数password_encryption从 boolean 改为 enum", "commits": [], "section": "服务器 / Authentication", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.8", "source_hash": "b996f7f4b951b2199d49b484d7cb76c3630253bdd52981c2cb034a05b43f6dcf", "section_path": ["服务器", "Authentication"], "commit_groups": [["babe05bc2"]], "identity_text": "Change the guc-password-encryption server parameter from boolean to enum (Michael Paquier) This was necessary to support additional password hashing options.", "commit_aliases": ["babe05bc2"], "source_commits": ["babe05bc2"], "source_entry_id": "10.0/changes/042", "db_id": "afa263671dbc0306e1d8e88bc4015fc2", "patch_ids": ["abb74703914df8bd8d9e5393b60bc3d9"], "statement_hash": "7f1ce92d72b66ecfad551ff7220b5c6f1ca42cddc103609a5b53b0cf75b4189f", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-b9869e851a98bec0", "cves": [], "html": "<p>增加视图 <a href=\"/docs/10/view-pg-hba-file-rules.html\" title=\"51.71. pg_hba_file_rules\"><code>pg_hba_file_rules</code></a>，用于显示 <code>pg_hba.conf</code> 的内容（Haribabu Kommi）</p>\n<p>它显示的是文件内容，而非当前生效的设置。</p>", "text": "增加视图 pg_hba_file_rules，用于显示 pg_hba.conf 的内容（Haribabu Kommi） 它显示的是文件内容，而非当前生效的设置。", "title": "增加视图 pg_hba_file_rules，用于显示 pg_hba.conf 的内容", "commits": [], "section": "服务器 / Authentication", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.8", "source_hash": "f005ec6553290cabb809a2b288a7583908c42eb587889f913c6c59c529e1e3df", "section_path": ["服务器", "Authentication"], "commit_groups": [["de16ab723"]], "identity_text": "Add view pg_hba_file_rules to display the contents of pg_hba.conf (Haribabu Kommi) This shows the file contents, not the currently active settings.", "commit_aliases": ["de16ab723"], "source_commits": ["de16ab723"], "source_entry_id": "10.0/changes/043", "db_id": "a133c968c922bc702ba42065038ca89f", "patch_ids": ["44e5d255d321296cbde553fb62d692b9"], "statement_hash": "493c791e8e96266151f710342beff6199a2fffd0f3aba7a309a34462e6866cf8", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-ed80a9b526bc7a81", "cves": [], "html": "<p>支持多个 <acronym>RADIUS</acronym> 服务器（Magnus Hagander）</p>\n<p>所有与 <acronym>RADIUS</acronym> 相关的参数现在都使用复数形式，并支持以逗号分隔的服务器列表。</p>", "text": "支持多个 RADIUS 服务器（Magnus Hagander） 所有与 RADIUS 相关的参数现在都使用复数形式，并支持以逗号分隔的服务器列表。", "title": "支持多个 RADIUS 服务器", "commits": [], "section": "服务器 / Authentication", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.8", "source_hash": "0c03f11738b6648834426e56eed507bc21189c7ec16c3b5ba9a0e151d15d47cd", "section_path": ["服务器", "Authentication"], "commit_groups": [["6b76f1bb5"]], "identity_text": "Support multiple RADIUS servers (Magnus Hagander) All the RADIUS related parameters are now plural and support a comma-separated list of servers.", "commit_aliases": ["6b76f1bb5"], "source_commits": ["6b76f1bb5"], "source_entry_id": "10.0/changes/044", "db_id": "ef402842881f2e52be7128c86e6153b8", "patch_ids": ["398995d71c255838efc9a3f83849d48e"], "statement_hash": "a877a2a65bc61475f09aaac8cc1e5fe999dcb07fe1478d61897e6106787f3518", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-fb9103c24bb22f93", "cves": [], "html": "<p>允许在重新加载配置时更新 <acronym>SSL</acronym> 配置（Andreas Karlsson，Tom Lane）</p>\n<p>这允许通过使用 <code>pg_ctl reload</code>、<code>SELECT pg_reload_conf()</code> 或发送 <code>SIGHUP</code> 信号来重新配置 <acronym>SSL</acronym>，无需重启服务器。但是，如果服务器的 <acronym>SSL</acronym> 密钥需要口令，则无法重新加载 <acronym>SSL</acronym> 配置，因为无法再次提示输入口令。在这种情况下，原始配置会在 postmaster 的整个生命周期内生效。</p>", "text": "允许在重新加载配置时更新 SSL 配置（Andreas Karlsson，Tom Lane） 这允许通过使用 pg_ctl reload、SELECT pg_reload_conf() 或发送 SIGHUP 信号来重新配置 SSL，无需重启服务器。但是，如果服务器的 SSL 密钥需要口令，则无法重新加载 SSL 配置，因为无法再次提示输入口令。在这种情况下，原始配置会在 postmaster 的整个生命周期内生效。", "title": "允许在重新加载配置时更新 SSL 配置", "commits": [], "section": "服务器 / 服务器配置", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.9", "source_hash": "a75f9d8b40b68cfd5f45bec6d16378ff2d95a7cd62c74fbcd029c4ed8b67aeb3", "section_path": ["服务器", "服务器配置"], "commit_groups": [["1e942c747"], ["6667d9a6d"], ["de41869b6"]], "identity_text": "Allow SSL configuration to be updated during configuration reload (Andreas Karlsson, Tom Lane) This allows SSL to be reconfigured without a server restart, by using pg_ctl reload, SELECT pg_reload_conf(), or sending a SIGHUP signal. However, reloading the SSL configuration does not work if the server's SSL key requires a passphrase, as there is no way to re-prompt for the passphrase. The original configuration will apply for the life of the postmaster in that case.", "commit_aliases": ["1e942c747", "6667d9a6d", "de41869b6"], "source_commits": ["1e942c747", "6667d9a6d", "de41869b6"], "source_entry_id": "10.0/changes/045", "db_id": "d29ffe1d897861185d7a36db7e188ffc", "patch_ids": ["3889623a540b88d17fb2cdd5e2b2de4d", "9a1efe2fdd9a4fedb0a1b35efc6cbd95", "be9d67ea16cba709d3da41959250b7b2"], "statement_hash": "1d1ce22ac013f66fa80903805eb96f94faa6b33e026fe1dc05ef9df9af472a47", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-fb542c8ddeef9df8", "cves": [], "html": "<p>使<a href=\"/docs/10/runtime-config-resource.html#GUC-BGWRITER-LRU-MAXPAGES\">bgwriter_lru_maxpages</a>的最大值实际上不再受限（Jim Nasby）</p>", "text": "使bgwriter_lru_maxpages的最大值实际上不再受限（Jim Nasby）", "title": "使bgwriter_lru_maxpages的最大值实际上不再受限", "commits": [], "section": "服务器 / 服务器配置", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.9", "source_hash": "6c426f9c83e8a983b71116d32bb416dbd8026fd8e76e61bc459410fb79be3471", "section_path": ["服务器", "服务器配置"], "commit_groups": [["14ca9abfb"]], "identity_text": "Make the maximum value of guc-bgwriter-lru-maxpages effectively unlimited (Jim Nasby)", "commit_aliases": ["14ca9abfb"], "source_commits": ["14ca9abfb"], "source_entry_id": "10.0/changes/046", "db_id": "d0181024ec9a4f1edad33804ec164b30", "patch_ids": ["0cfacdeb65fad0038089c8dc0a3cf879"], "statement_hash": "7fd162546a7727735abb8008b372b7f5df3170f5d5b3ffabd9f1db8aea3edc64", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-0c12f0ab0020d1cf", "cves": [], "html": "<p>创建文件或解除文件链接后，对其父目录执行 fsync（Michael Paquier）</p>\n<p>这降低了断电后丢失数据的风险。</p>", "text": "创建文件或解除文件链接后，对其父目录执行 fsync（Michael Paquier） 这降低了断电后丢失数据的风险。", "title": "创建文件或解除文件链接后，对其父目录执行 fsync", "commits": [], "section": "服务器 / 可靠性", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.10", "source_hash": "7de32df7489edd361c1eecd079afe7243172fd9cb25fd7f8b92ecb5b326f65ba", "section_path": ["服务器", "可靠性"], "commit_groups": [["1b02be21f"]], "identity_text": "After creating or unlinking files, perform an fsync on their parent directory (Michael Paquier) This reduces the risk of data loss after a power failure.", "commit_aliases": ["1b02be21f"], "source_commits": ["1b02be21f"], "source_entry_id": "10.0/changes/047", "db_id": "8fed6acbfe05ef12435a27b0ab7c8ded", "patch_ids": ["89bb2ac8b09908cfe5eec222d8b8cfcf"], "statement_hash": "5c404d40efb7231cc67fc2a2249db5c257a0132b3becca6d799f8b47ebcab782", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-e3610f6d3281fc9a", "cves": [], "html": "<p>防止在其他方面处于空闲状态的系统上执行不必要的检查点和 <acronym>WAL</acronym> 归档（Michael Paquier）</p>", "text": "防止在其他方面处于空闲状态的系统上执行不必要的检查点和 WAL 归档（Michael Paquier）", "title": "防止在其他方面处于空闲状态的系统上执行不必要的检查点和 WAL 归档", "commits": [], "section": "服务器 / 可靠性 / 预写式日志（WAL）", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.10.3", "source_hash": "8f66f95c00cf87924a004fe24299c5a84715e5544a795512373727485e1a32a7", "section_path": ["服务器", "可靠性", "预写式日志（WAL）"], "commit_groups": [["6ef2eba3f"]], "identity_text": "Prevent unnecessary checkpoints and WAL archiving on otherwise-idle systems (Michael Paquier)", "commit_aliases": ["6ef2eba3f"], "source_commits": ["6ef2eba3f"], "source_entry_id": "10.0/changes/048", "db_id": "c1edf67502edb4aede9d2b3347b0ec95", "patch_ids": ["f48c31ad65a7f11a438c2974a0536592"], "statement_hash": "d9bdd702fdc51105f7373d18ffb8bdcf4b53ec0b0cc71485e0f5a1912a1cbdf4", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-2be9cd705b3e6f1f", "cves": [], "html": "<p>增加服务器参数<a href=\"/docs/10/runtime-config-developer.html#GUC-WAL-CONSISTENCY-CHECKING\">wal_consistency_checking</a>，用于向 <acronym>WAL</acronym> 添加可在备库上进行合理性检查的详细信息（Kuntal Ghosh，Robert Haas）</p>\n<p>任何合理性检查失败都会在备库上产生致命错误。</p>", "text": "增加服务器参数wal_consistency_checking，用于向 WAL 添加可在备库上进行合理性检查的详细信息（Kuntal Ghosh，Robert Haas） 任何合理性检查失败都会在备库上产生致命错误。", "title": "增加服务器参数wal_consistency_checking，用于向 WAL 添加可在备库上进行合理性检查的详细信息", "commits": [], "section": "服务器 / 可靠性 / 预写式日志（WAL）", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.10.3", "source_hash": "d01988da1ae8d1e138d03262c003b98f92865cbedf946fed29870ab3a82d00c4", "section_path": ["服务器", "可靠性", "预写式日志（WAL）"], "commit_groups": [["a507b8690"], ["bb4a39637"]], "identity_text": "Add guc-wal-consistency-checking server parameter to add details to WAL that can be sanity-checked on the standby (Kuntal Ghosh, Robert Haas) Any sanity-check failure generates a fatal error on the standby.", "commit_aliases": ["a507b8690", "bb4a39637"], "source_commits": ["a507b8690", "bb4a39637"], "source_entry_id": "10.0/changes/049", "db_id": "4bd9e1fe8f926b6fc20518c6dc3080b1", "patch_ids": ["0bd78eb8733a86695381e9a5b1b24957", "537ad465a78225b3d14bc9986ad98a52"], "statement_hash": "b2b57a7f4c75e4e522b3517745ffb0932ec4eef1ec7a363a81859171387ffcc1", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-92fe5a5a5dcf9c9d", "cves": [], "html": "<p>将可配置的最大 <acronym>WAL</acronym> 段大小增加到 1 GB（Beena Emerson）</p>\n<p>较大的 <acronym>WAL</acronym> 段可以减少<a href=\"/docs/10/runtime-config-wal.html#GUC-ARCHIVE-COMMAND\">archive_command</a>调用次数，以及需要管理的 <acronym>WAL</acronym> 文件数量。</p>", "text": "将可配置的最大 WAL 段大小增加到 1 GB（Beena Emerson） 较大的 WAL 段可以减少archive_command调用次数，以及需要管理的 WAL 文件数量。", "title": "将可配置的最大 WAL 段大小增加到 1 GB", "commits": [], "section": "服务器 / 可靠性 / 预写式日志（WAL）", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.3.10.3", "source_hash": "ffaff3176ba6966287b903cf06f54b13599e82bdbd1061a038f7e4cb92638a96", "section_path": ["服务器", "可靠性", "预写式日志（WAL）"], "commit_groups": [["00b6b6feb"]], "identity_text": "Increase the maximum configurable WAL segment size to one gigabyte (Beena Emerson) A larger WAL segment size allows for fewer guc-archive-command invocations and fewer WAL files to manage.", "commit_aliases": ["00b6b6feb"], "source_commits": ["00b6b6feb"], "source_entry_id": "10.0/changes/050", "db_id": "9fd24a9439f4f6d2094f14222d345f3b", "patch_ids": ["f5a2f823013247b008b9bdd7a231b654"], "statement_hash": "cec98edf71c2e5c03ae4f899f9c87357bda6939b413a19f1c42c38e2ee3d8536", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1d9c5c383a33fa3d", "cves": [], "html": "<p>增加将表<a href=\"/docs/10/logical-replication.html\" title=\"第 31 章 逻辑复制\">逻辑复制</a>到备库的能力（Petr Jelinek）</p>\n<p>逻辑复制比物理复制更灵活，包括在不同 <span>PostgreSQL</span> 大版本之间复制以及选择性复制。</p>", "text": "增加将表逻辑复制到备库的能力（Petr Jelinek） 逻辑复制比物理复制更灵活，包括在不同 PostgreSQL 大版本之间复制以及选择性复制。", "title": "增加将表逻辑复制到备库的能力", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "1bdb86037bc318143094d15587265e1e9fcf4380b1084c3613e527d1bd9f03b9", "section_path": ["复制与恢复"], "commit_groups": [["665d1fad9"], ["7c4f52409"], ["ff7bce174"]], "identity_text": "Add the ability to logically replicate tables to standby servers (Petr Jelinek) Logical replication allows more flexibility than physical replication does, including replication between different major versions of PostgreSQL and selective replication.", "commit_aliases": ["665d1fad9", "7c4f52409", "ff7bce174"], "source_commits": ["665d1fad9", "7c4f52409", "ff7bce174"], "source_entry_id": "10.0/changes/051", "db_id": "8d5c9b1007a1e351a1af663db823583c", "patch_ids": ["4eca6a9f36394470a86009ce54223f8d", "8113e89894f6095931263bf7098c1110", "949507c79af3f30c367f628ab83d5fdd"], "statement_hash": "7cd538c62bc7e58a29dc48b42cd9e002ff58a17d00cf43f5f9e04c6cf1ce1fd3", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-23126d8763c5cbd6", "cves": [], "html": "<p>允许等待备库的提交确认，而不受其在<a href=\"/docs/10/runtime-config-replication.html#GUC-SYNCHRONOUS-STANDBY-NAMES\">synchronous_standby_names</a>中出现顺序的影响（Masahiko Sawada）</p>\n<p>以前，服务器始终等待 <code>synchronous_standby_names</code> 中最先出现的活动备库。新的 <code>synchronous_standby_names</code> 关键字 <code>ANY</code> 允许等待任意指定数量的备库，而不考虑其排列顺序。这称为法定人数提交。</p>", "text": "允许等待备库的提交确认，而不受其在synchronous_standby_names中出现顺序的影响（Masahiko Sawada） 以前，服务器始终等待 synchronous_standby_names 中最先出现的活动备库。新的 synchronous_standby_names 关键字 ANY 允许等待任意指定数量的备库，而不考虑其排列顺序。这称为法定人数提交。", "title": "允许等待备库的提交确认，而不受其在synchronous_standby_names中出现顺序的影响", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "1dc8cd3542cb59b89fbe79c092b6f08aea1cb0c1e69f5a5ba68b5fe85d6a2d0b", "section_path": ["复制与恢复"], "commit_groups": [["3901fd70c"]], "identity_text": "Allow waiting for commit acknowledgment from standby servers irrespective of the order they appear in guc-synchronous-standby-names (Masahiko Sawada) Previously the server always waited for the active standbys that appeared first in synchronous_standby_names. The new synchronous_standby_names keyword ANY allows waiting for any number of standbys irrespective of their ordering. This is known as quorum commit.", "commit_aliases": ["3901fd70c"], "source_commits": ["3901fd70c"], "source_entry_id": "10.0/changes/052", "db_id": "ab01506adbc7954f53301856aef227b7", "patch_ids": ["9aab90d268df64616916d6e10c0a9311"], "statement_hash": "669684aeb70c918ad46c8d3a00ad3b262e9fc6b8abbf4b1a75c7ba8418766370", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-facf813e08a342d5", "cves": [], "html": "<p>减少执行流式备份和复制所需的配置变更（Magnus Hagander，Dang Minh Huong）</p>\n<p>具体而言，更改了<a href=\"/docs/10/runtime-config-wal.html#GUC-WAL-LEVEL\">wal_level</a>、<a href=\"/docs/10/runtime-config-replication.html#GUC-MAX-WAL-SENDERS\">max_wal_senders</a>、<a href=\"/docs/10/runtime-config-replication.html#GUC-MAX-REPLICATION-SLOTS\">max_replication_slots</a>和<a href=\"/docs/10/runtime-config-replication.html#GUC-HOT-STANDBY\">hot_standby</a>的默认值，使其开箱即可用于这些场景。</p>", "text": "减少执行流式备份和复制所需的配置变更（Magnus Hagander，Dang Minh Huong） 具体而言，更改了wal_level、max_wal_senders、max_replication_slots和hot_standby的默认值，使其开箱即可用于这些场景。", "title": "减少执行流式备份和复制所需的配置变更", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "d3634dccf2785ef8a802bc41559cea4f4769a6deb07d6e9790b829d4bf4238cc", "section_path": ["复制与恢复"], "commit_groups": [["34fc61673"], ["f6d6d2920"]], "identity_text": "Reduce configuration changes necessary to perform streaming backup and replication (Magnus Hagander, Dang Minh Huong) Specifically, the defaults were changed for guc-wal-level , guc-max-wal-senders , guc-max-replication-slots , and guc-hot-standby to make them suitable for these usages out-of-the-box.", "commit_aliases": ["34fc61673", "f6d6d2920"], "source_commits": ["34fc61673", "f6d6d2920"], "source_entry_id": "10.0/changes/053", "db_id": "67d90388012baa145d263d45eb7790f2", "patch_ids": ["b83866010e871eb381fcdcf31e89ba20", "e62eb5fbd5fad22e130cb6c120efcf4d"], "statement_hash": "23d398d442a929d5ee5da45afd1d9af0cc976ce5f54bbe9e8eeb239f373dbf65", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-34d5ebb1bcd570a5", "cves": [], "html": "<p>在 <a href=\"/docs/10/client-authentication.html#AUTH-PG-HBA-CONF\" title=\"20.1. pg_hba.conf 文件\"><code>pg_hba.conf</code></a> 中默认启用来自 localhost 连接的复制（Michael Paquier）</p>\n<p>以前，<code>pg_hba.conf</code> 中的复制连接行默认被注释掉。这对于 <span><a href=\"/docs/10/app-pgbasebackup.html\" title=\"pg_basebackup\"><span>pg_basebackup</span></a></span> 尤其有用。</p>", "text": "在 pg_hba.conf 中默认启用来自 localhost 连接的复制（Michael Paquier） 以前，pg_hba.conf 中的复制连接行默认被注释掉。这对于 pg_basebackup 尤其有用。", "title": "在 pg_hba.conf 中默认启用来自 localhost 连接的复制", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "324083adcb6a065adac020ce1c8b6543fdccbf36a8ebd3dd9f3f0f018c2324c6", "section_path": ["复制与恢复"], "commit_groups": [["be37c2120"]], "identity_text": "Enable replication from localhost connections by default in pg_hba.conf (Michael Paquier) Previously pg_hba.conf's replication connection lines were commented out by default. This is particularly useful for app-pgbasebackup .", "commit_aliases": ["be37c2120"], "source_commits": ["be37c2120"], "source_entry_id": "10.0/changes/054", "db_id": "10e0128b3b9224ccfe673d831064775c", "patch_ids": ["5c00e6c95252edb590914ebdd6125e95"], "statement_hash": "0c44efa00fafadaee43159099db0de1681bd6bfa75e2111afdfb9f510a0db89c", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-43b5d586c3287504", "cves": [], "html": "<p>向 <a href=\"/docs/10/monitoring-stats.html#PG-STAT-REPLICATION-VIEW\" title=\"表 28.5. pg_stat_replication 视图\"><code>pg_stat_replication</code></a> 添加列，以报告复制延迟时间（Thomas Munro）</p>\n<p>新列为 <code>write_lag</code>、<code>flush_lag</code> 和 <code>replay_lag</code>。</p>", "text": "向 pg_stat_replication 添加列，以报告复制延迟时间（Thomas Munro） 新列为 write_lag、flush_lag 和 replay_lag。", "title": "向 pg_stat_replication 添加列，以报告复制延迟时间", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "41dc5e1d0da2a7623d4ecbf6900458a832949ab12498cd9d4ee873cd2fa8d4a2", "section_path": ["复制与恢复"], "commit_groups": [["6912acc04"]], "identity_text": "Add columns to pg_stat_replication to report replication delay times (Thomas Munro) The new columns are write_lag, flush_lag, and replay_lag.", "commit_aliases": ["6912acc04"], "source_commits": ["6912acc04"], "source_entry_id": "10.0/changes/055", "db_id": "b184bc39ce8893ba709e2ba618eedd06", "patch_ids": ["08f18930d032674c4f2662a12a875481"], "statement_hash": "30509ec6f0d90daadb0da8f0b19d810cbfd61d2cc51f476d30ea3cf5defb60a1", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-49f3361a42424615", "cves": [], "html": "<p>允许在 <a href=\"/docs/10/recovery-config.html\" title=\"第 27 章 恢复配置\"><code>recovery.conf</code></a> 中按日志序列号（<acronym>LSN</acronym>）指定恢复停止点（Michael Paquier）</p>\n<p>以前，只能按时间戳或 XID 选择停止点。</p>", "text": "允许在 recovery.conf 中按日志序列号（LSN）指定恢复停止点（Michael Paquier） 以前，只能按时间戳或 XID 选择停止点。", "title": "允许在 recovery.conf 中按日志序列号（LSN）指定恢复停止点", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "2815edcf421ed51fb957d4d3d6ee6f275c011b004376b6a6d76ab5f0d7f1b9c3", "section_path": ["复制与恢复"], "commit_groups": [["35250b6ad"]], "identity_text": "Allow specification of the recovery stopping point by Log Sequence Number (LSN) in recovery.conf (Michael Paquier) Previously the stopping point could only be selected by timestamp or XID.", "commit_aliases": ["35250b6ad"], "source_commits": ["35250b6ad"], "source_entry_id": "10.0/changes/056", "db_id": "d6aad2f763b159e65a7887cd2c4b49c9", "patch_ids": ["7d0400fa87e53e4484c0f9d39f4d9988"], "statement_hash": "f248486f70b3f3fa457fddcd45bbc3b43a12f70c723ee0a82aec4b66748989ac", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-51b922cbba1f872e", "cves": [], "html": "<p>允许用户禁用 <a href=\"/docs/10/functions-admin.html\" title=\"9.26. 系统管理函数\"><code>pg_stop_backup()</code></a> 等待所有 <acronym>WAL</acronym> 完成归档的行为（David Steele）</p>\n<p><code>pg_stop_backup()</code> 的可选第二参数控制这一行为。</p>", "text": "允许用户禁用 pg_stop_backup() 等待所有 WAL 完成归档的行为（David Steele） pg_stop_backup() 的可选第二参数控制这一行为。", "title": "允许用户禁用 pg_stop_backup() 等待所有 WAL 完成归档的行为", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "63b4b23423268e1eb5f623d3a87a83807c3751301a0aa5c182029fdeab2208ab", "section_path": ["复制与恢复"], "commit_groups": [["017e4f258"], ["52f8a59dd"]], "identity_text": "Allow users to disable pg_stop_backup()'s waiting for all WAL to be archived (David Steele) An optional second argument to pg_stop_backup() controls that behavior.", "commit_aliases": ["017e4f258", "52f8a59dd"], "source_commits": ["017e4f258", "52f8a59dd"], "source_entry_id": "10.0/changes/057", "db_id": "c99d5cec2616fcacb3a4e8d2e1a47f23", "patch_ids": ["26ac9de2f76cd62af80ddab9108c19c7", "5aae4302a655cb1ba7d31efe8bc0191c"], "statement_hash": "21c73b743c58479a5a9e4c73ef373fae08b54dd622674b62136a3fee4c772cf6", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-105a865bd8ef7ac4", "cves": [], "html": "<p>允许创建<a href=\"/docs/10/functions-admin.html#FUNCTIONS-REPLICATION-TABLE\" title=\"表 9.83. 复制 SQL 函数\">临时复制槽</a>（Petr Jelinek）</p>\n<p>临时槽会在会话退出或出错时自动移除。</p>", "text": "允许创建临时复制槽（Petr Jelinek） 临时槽会在会话退出或出错时自动移除。", "title": "允许创建临时复制槽", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "a67867bae863ed84d21ca94229f1b08fce3661ab3cb1c8ba3d786e27d408fc61", "section_path": ["复制与恢复"], "commit_groups": [["a924c327e"]], "identity_text": "Allow creation of temporary replication slots (Petr Jelinek) Temporary slots are automatically removed on session exit or error.", "commit_aliases": ["a924c327e"], "source_commits": ["a924c327e"], "source_entry_id": "10.0/changes/058", "db_id": "94d63f267644c5550a4fb34179113407", "patch_ids": ["d5ca53ea829b0433d245a027c96795bd"], "statement_hash": "8d8d325f39d1180484d4b07bf2b8183c820cb51efd0886380d75e0a970f34803", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-71869a11c42be512", "cves": [], "html": "<p>通过更好地跟踪访问排他锁，提升热备重放性能（Simon Riggs，David Rowley）</p>", "text": "通过更好地跟踪访问排他锁，提升热备重放性能（Simon Riggs，David Rowley）", "title": "通过更好地跟踪访问排他锁，提升热备重放性能", "commits": [], "section": "复制与恢复", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "2fac1f6616f3b9e3ab4661e2db7fd219e7500c215606370cb552f6a97818671a", "section_path": ["复制与恢复"], "commit_groups": [["9b013dc23"]], "identity_text": "Improve performance of hot standby replay with better tracking of Access Exclusive locks (Simon Riggs, David Rowley)", "commit_aliases": ["9b013dc23"], "source_commits": ["9b013dc23"], "source_entry_id": "10.0/changes/059", "db_id": "88bbe6e6e6d7a54a9f119813e0196fe1", "patch_ids": ["4d856039f05b57199360f11dcdc4ebf6"], "statement_hash": "5cac060c135c7ee57dbdf57f581799d1dca505c84afa9d86823f5219753397b2", "relations": [], "version": "10.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-c08ac60e12a289d0", "cves": [], "html": "<p>提升两阶段提交恢复性能（Stas Kelvich，Nikhil Sontakke，Michael Paquier）</p>", "text": "提升两阶段提交恢复性能（Stas Kelvich，Nikhil Sontakke，Michael Paquier）", "title": "提升两阶段提交恢复性能", "commits": [], "section": "复制与恢复", "category": "performance", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.4", "source_hash": "094a02cfffc6c75f2bb0f6d2f8fff998eaf5119ae119dfe739f0dafd869a5cdb", "section_path": ["复制与恢复"], "commit_groups": [["728bd991c"]], "identity_text": "Speed up two-phase commit recovery performance (Stas Kelvich, Nikhil Sontakke, Michael Paquier)", "commit_aliases": ["728bd991c"], "source_commits": ["728bd991c"], "source_entry_id": "10.0/changes/060", "db_id": "e62db3557fadcb3ee908fa7de4be4572", "patch_ids": ["855c0c93dc38e0e721302335a849e5ea"], "statement_hash": "02d70c318ea3c974e16da864d95ccb7491e8fe1508c8eaf85575f5ca6adf9f06", "relations": [], "version": "10.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-c9772da1ca868ce3", "cves": [], "html": "<p>增加 <a href=\"/docs/10/functions-xml.html#FUNCTIONS-XML-PROCESSING-XMLTABLE\" title=\"9.14.3.3. xmltable\"><code>XMLTABLE</code></a> 函数，将 <code>XML</code> 格式的数据转换为行集（Pavel Stehule，Álvaro Herrera）</p>", "text": "增加 XMLTABLE 函数，将 XML 格式的数据转换为行集（Pavel Stehule，Álvaro Herrera）", "title": "增加 XMLTABLE 函数，将 XML 格式的数据转换为行集", "commits": [], "section": "查询", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.5", "source_hash": "298a389d6699d144a0c8e43d358579add2d883c1408b3dc408db2cebe0915285", "section_path": ["查询"], "commit_groups": [["fcec6caaf"]], "identity_text": "Add XMLTABLE function that converts XML-formatted data into a row set (Pavel Stehule, Álvaro Herrera)", "commit_aliases": ["fcec6caaf"], "source_commits": ["fcec6caaf"], "source_entry_id": "10.0/changes/061", "db_id": "21e2cf622340600c752c44ef69a83c14", "patch_ids": ["423a834021e69b3e394e60805cb86308"], "statement_hash": "2814236b2184932bcd0d24b4e72328507682b8566e903b70bf7aeab66b3ee22c", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-73344f1e0a5dedfd", "cves": [], "html": "<p>修复正则表达式对较大字符码的字符类处理，尤其是 <code>U+7FF</code> 以上的 Unicode 字符（Tom Lane）</p>\n<p>以前，这类字符从不会被识别为属于 <code>[[:alpha:]]</code> 等依赖区域设置的字符类。</p>", "text": "修复正则表达式对较大字符码的字符类处理，尤其是 U+7FF 以上的 Unicode 字符（Tom Lane） 以前，这类字符从不会被识别为属于 [[:alpha:]] 等依赖区域设置的字符类。", "title": "修复正则表达式对较大字符码的字符类处理，尤其是 U+7FF 以上的 Unicode 字符", "commits": [], "section": "查询", "category": "bugfix", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.5", "source_hash": "231685b806dae0cdf5baa94d14fa85f35d339eb099794894c7842cdb8d204a51", "section_path": ["查询"], "commit_groups": [["c54159d44"]], "identity_text": "Fix regular expressions' character class handling for large character codes, particularly Unicode characters above U+7FF (Tom Lane) Previously, such characters were never recognized as belonging to locale-dependent character classes such as [[:alpha:]].", "commit_aliases": ["c54159d44"], "source_commits": ["c54159d44"], "source_entry_id": "10.0/changes/062", "db_id": "214edfd3295202eba001c16a72569d46", "patch_ids": ["8fe5748caeee429e6ec7f4a676697e1b"], "statement_hash": "d3e8f8d6789e73ec9682bd637c8da24933468b2a0e2f5bfa1492e31eb8e5417b", "relations": [], "version": "10.0", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-c371358fa55a0e03", "cves": [], "html": "<p>增加表<a href=\"/docs/10/sql-createtable.html#SQL-CREATETABLE-PARTITION\">分区语法</a>，自动创建分区约束，并处理元组插入和更新的路由（Amit Langote）</p>\n<p>该语法支持范围分区和列表分区。</p>", "text": "增加表分区语法，自动创建分区约束，并处理元组插入和更新的路由（Amit Langote） 该语法支持范围分区和列表分区。", "title": "增加表分区语法，自动创建分区约束，并处理元组插入和更新的路由", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "94d8858175f00905c9d3674000e0ab563d7df4de6468d33020421e857c482b9c", "section_path": ["工具命令"], "commit_groups": [["f0e44751d"]], "identity_text": "Add table partitioning syntax that automatically creates partition constraints and handles routing of tuple insertions and updates (Amit Langote) The syntax supports range and list partitioning.", "commit_aliases": ["f0e44751d"], "source_commits": ["f0e44751d"], "source_entry_id": "10.0/changes/063", "db_id": "000057305b6d8458507f09c26fffd339", "patch_ids": ["2bf171efca6b83c614abb12f5bd60e5b"], "statement_hash": "e6f014871affdecd51e5f21cf376222be26826e3fc03e3b464de957394eb3724", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1a4f0ddcaae34961", "cves": [], "html": "<p>增加 <a href=\"/docs/10/sql-createtrigger.html\" title=\"CREATE TRIGGER\"><code>AFTER</code> 触发器</a>的过渡表，以记录已变更的行（Kevin Grittner，Thomas Munro）</p>\n<p>使用服务器端语言编写的触发器可以访问过渡表。</p>", "text": "增加 AFTER 触发器的过渡表，以记录已变更的行（Kevin Grittner，Thomas Munro） 使用服务器端语言编写的触发器可以访问过渡表。", "title": "增加 AFTER 触发器的过渡表，以记录已变更的行", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "834dedfaacca547b9c5623065cdd74918520d15a6eecb0697bb7156e7a039f9e", "section_path": ["工具命令"], "commit_groups": [["597027163"], ["5ebeb579b"], ["8c48375e5"]], "identity_text": "Add AFTER trigger transition tables to record changed rows (Kevin Grittner, Thomas Munro) Transition tables are accessible from triggers written in server-side languages.", "commit_aliases": ["597027163", "5ebeb579b", "8c48375e5"], "source_commits": ["597027163", "5ebeb579b", "8c48375e5"], "source_entry_id": "10.0/changes/064", "db_id": "de0d9af502d9e1e6d87e711d28a2f042", "patch_ids": ["09466e2798704d0757aecf9fb54b94a2", "bd09118edd8189fcb8d416683119d3f9", "d984a09ea62a00b46e43afe97c645165"], "statement_hash": "38e9e2985f53a4c167d53ae0073e13f157f08a37e2051da83812a01d3d18e94c", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-d7fff36608094969", "cves": [], "html": "<p>允许使用<a href=\"/docs/10/sql-createpolicy.html\" title=\"CREATE POLICY\">限制性行级安全策略</a>（Stephen Frost）</p>\n<p>以前，所有安全策略都是宽松的，只要任意策略匹配就允许访问。限制性策略则必须匹配才会授予访问权限。这两类策略可以组合使用。</p>", "text": "允许使用限制性行级安全策略（Stephen Frost） 以前，所有安全策略都是宽松的，只要任意策略匹配就允许访问。限制性策略则必须匹配才会授予访问权限。这两类策略可以组合使用。", "title": "允许使用限制性行级安全策略", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "20ad2dc5b93616be835c2ebc1e74e3a483caf830be97c14ed18e764c8393df66", "section_path": ["工具命令"], "commit_groups": [["093129c9d"]], "identity_text": "Allow restrictive row-level security policies (Stephen Frost) Previously all security policies were permissive, meaning that any matching policy allowed access. A restrictive policy must match for access to be granted. These policy types can be combined.", "commit_aliases": ["093129c9d"], "source_commits": ["093129c9d"], "source_entry_id": "10.0/changes/065", "db_id": "11b96674a66e357c060e1dcc5e253b7b", "patch_ids": ["f8296a929e01c4303a2ddef9913af095"], "statement_hash": "190ca66f06b4064549fe003257b36cb1c8f60d7a632f550709198255cc4d7a36", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-95f3f05fb612c730", "cves": [], "html": "<p>创建外键约束时，只检查被引用表上的 <code>REFERENCES</code> 权限（Tom Lane）</p>\n<p>以前，还要求引用表上的 <code>REFERENCES</code> 权限。这似乎源于对 SQL 标准的误读。由于创建外键约束（或任何其他类型的约束）需要拥有被约束的表，额外要求 <code>REFERENCES</code> 权限似乎毫无意义。</p>", "text": "创建外键约束时，只检查被引用表上的 REFERENCES 权限（Tom Lane） 以前，还要求引用表上的 REFERENCES 权限。这似乎源于对 SQL 标准的误读。由于创建外键约束（或任何其他类型的约束）需要拥有被约束的表，额外要求 REFERENCES 权限似乎毫无意义。", "title": "创建外键约束时，只检查被引用表上的 REFERENCES 权限", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "2a9163df4dfc39ab7330f276f320bc3725d3b4143a5ed585c5b6449aaf550e0f", "section_path": ["工具命令"], "commit_groups": [["64d4da511"]], "identity_text": "When creating a foreign-key constraint, check for REFERENCES permission on only the referenced table (Tom Lane) Previously REFERENCES permission on the referencing table was also required. This appears to have stemmed from a misreading of the SQL standard. Since creating a foreign key (or any other type of) constraint requires ownership privilege on the constrained table, additionally requiring REFERENCES permission seems rather pointless.", "commit_aliases": ["64d4da511"], "source_commits": ["64d4da511"], "source_entry_id": "10.0/changes/066", "db_id": "810355995f0340ff303685086550013c", "patch_ids": ["df2c78f2bf6b8367fac34f1caae67ff3"], "statement_hash": "4887b81173c2f616178881ba70594218ef0186a5b4e48e486e3259042a8a4af3", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-0a6eff6385b63bd1", "cves": [], "html": "<p>允许为模式设置<a href=\"/docs/10/sql-alterdefaultprivileges.html\" title=\"ALTER DEFAULT PRIVILEGES\">默认权限</a>（Matheus Oliveira）</p>\n<p>这通过 <code>ALTER DEFAULT PRIVILEGES</code> 命令完成。</p>", "text": "允许为模式设置默认权限（Matheus Oliveira） 这通过 ALTER DEFAULT PRIVILEGES 命令完成。", "title": "允许为模式设置默认权限", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "69fdfa5bde157f6deb96f81f3b5256c689a209929de3aa91a7cb022f62fe870b", "section_path": ["工具命令"], "commit_groups": [["ab89e465c"]], "identity_text": "Allow default permissions on schemas (Matheus Oliveira) This is done using the ALTER DEFAULT PRIVILEGES command.", "commit_aliases": ["ab89e465c"], "source_commits": ["ab89e465c"], "source_entry_id": "10.0/changes/067", "db_id": "7ff733fe8ed74bc848dee8d58fdf7aa4", "patch_ids": ["97c4cc78fde6b7f27e6ec37dc8feb549"], "statement_hash": "bf1ee5162c6cc56d492171e025c236af48189679ba9e1d3f06eea9f420ca9cd3", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-65a3c2c0a929a92f", "cves": [], "html": "<p>增加 <a href=\"/docs/10/sql-createsequence.html\" title=\"CREATE SEQUENCE\"><code>CREATE SEQUENCE AS</code></a> 命令，用于创建与某个整数数据类型匹配的序列（Peter Eisentraut）</p>\n<p>这简化了创建与基础列取值范围匹配的序列。</p>", "text": "增加 CREATE SEQUENCE AS 命令，用于创建与某个整数数据类型匹配的序列（Peter Eisentraut） 这简化了创建与基础列取值范围匹配的序列。", "title": "增加 CREATE SEQUENCE AS 命令，用于创建与某个整数数据类型匹配的序列", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "dbb699bf2f589350eb074b3c495e11b3a59e7e9001bd1d4b3a618bd053608abf", "section_path": ["工具命令"], "commit_groups": [["2ea5b06c7"]], "identity_text": "Add CREATE SEQUENCE AS command to create a sequence matching an integer data type (Peter Eisentraut) This simplifies the creation of sequences matching the range of base columns.", "commit_aliases": ["2ea5b06c7"], "source_commits": ["2ea5b06c7"], "source_entry_id": "10.0/changes/068", "db_id": "7d19b7716e47e8fa920af0dae46ddb4d", "patch_ids": ["cacf93b55aeda4f5f523fbc43dbd30cf"], "statement_hash": "23c49e912e34ad5a64b6aefdb1a356a6b2589f2cbe9779f3e75b515e383e16ec", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-222041a7ca925162", "cves": [], "html": "<p>允许对具有 <code>INSTEAD INSERT</code> 触发器的视图执行 <code>COPY <em><code>view</code></em> FROM <em><code>source</code></em></code>（Haribabu Kommi）</p>\n<p>这些触发器会接收 <code>COPY</code> 读取的数据行。</p>", "text": "允许对具有 INSTEAD INSERT 触发器的视图执行 COPY view FROM source（Haribabu Kommi） 这些触发器会接收 COPY 读取的数据行。", "title": "允许对具有 INSTEAD INSERT 触发器的视图执行 COPY view FROM source", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "4044b10ed9a060cf84a1984be5d44591259f68c9ebd4b19aa26da033d00bc223", "section_path": ["工具命令"], "commit_groups": [["279c439c7"]], "identity_text": "Allow COPY view FROM source on views with INSTEAD INSERT triggers (Haribabu Kommi) The triggers are fed the data rows read by COPY.", "commit_aliases": ["279c439c7"], "source_commits": ["279c439c7"], "source_entry_id": "10.0/changes/069", "db_id": "794e8aeb952655498d6ded9423310a74", "patch_ids": ["6399b2c75633b061840f609410a65c6e"], "statement_hash": "3f2fc9badecc9a1ce693c79a398f3b099a03d746344c94c23a78d207c3d7242b", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-41b6c62209fee7b2", "cves": [], "html": "<p>允许在 <acronym>DDL</acronym> 命令中指定不带参数的函数名，前提是该名称唯一（Peter Eisentraut）</p>\n<p>例如，如果某个名称只对应一个函数，就允许对不带参数的该函数名执行 <a href=\"/docs/10/sql-dropfunction.html\" title=\"DROP FUNCTION\"><code>DROP FUNCTION</code></a>。这是 <acronym>SQL</acronym> 标准要求的行为。</p>", "text": "允许在 DDL 命令中指定不带参数的函数名，前提是该名称唯一（Peter Eisentraut） 例如，如果某个名称只对应一个函数，就允许对不带参数的该函数名执行 DROP FUNCTION。这是 SQL 标准要求的行为。", "title": "允许在 DDL 命令中指定不带参数的函数名，前提是该名称唯一", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "0e94be3ed232fb29f4a528a0b8cfc8124ad5dc6399fd6fb7b7857e9d36dd2f8e", "section_path": ["工具命令"], "commit_groups": [["aefeb6874"]], "identity_text": "Allow the specification of a function name without arguments in DDL commands, if it is unique (Peter Eisentraut) For example, allow DROP FUNCTION on a function name without arguments if there is only one function with that name. This behavior is required by the SQL standard.", "commit_aliases": ["aefeb6874"], "source_commits": ["aefeb6874"], "source_entry_id": "10.0/changes/070", "db_id": "166edcd504777147dd9b87468952effb", "patch_ids": ["040bd33ba24dd98e86e3146694eb2e35"], "statement_hash": "25570f7e34fca28868e0f709dd6c7773e4f69c02fb24c35600f190ffd3b768e2", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-013ea2b866dc3a2a", "cves": [], "html": "<p>允许用一条 <code>DROP</code> 命令删除多个函数、操作符和聚合（Peter Eisentraut）</p>", "text": "允许用一条 DROP 命令删除多个函数、操作符和聚合（Peter Eisentraut）", "title": "允许用一条 DROP 命令删除多个函数、操作符和聚合", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "f257433995efa9ff74c54008518a1eea90afc0c8ab4ef212aac5c522287df88b", "section_path": ["工具命令"], "commit_groups": [["583f6c414"]], "identity_text": "Allow multiple functions, operators, and aggregates to be dropped with a single DROP command (Peter Eisentraut)", "commit_aliases": ["583f6c414"], "source_commits": ["583f6c414"], "source_entry_id": "10.0/changes/071", "db_id": "2d601e14059c9f5aa4f893bdcb382c20", "patch_ids": ["eed19ec4c6444e7d7d01ca6d5ec93584"], "statement_hash": "8b698634c441a3db8b108afd7a0c332f5a0bb107c1bd5a94c2313568943faac3", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-8c0e0275fd31103d", "cves": [], "html": "<p>在 <a href=\"/docs/10/sql-createserver.html\" title=\"CREATE SERVER\"><code>CREATE SERVER</code></a>、<a href=\"/docs/10/sql-createusermapping.html\" title=\"CREATE USER MAPPING\"><code>CREATE USER MAPPING</code></a> 和 <a href=\"/docs/10/sql-createcollation.html\" title=\"CREATE COLLATION\"><code>CREATE COLLATION</code></a> 中支持 <code>IF NOT EXISTS</code>（Anastasia Lubennikova，Peter Eisentraut）</p>", "text": "在 CREATE SERVER、CREATE USER MAPPING 和 CREATE COLLATION 中支持 IF NOT EXISTS（Anastasia Lubennikova，Peter Eisentraut）", "title": "在 CREATE SERVER、CREATE USER MAPPING 和 CREATE COLLATION 中支持 IF NOT EXISTS", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "252c750dea82a88c311acc3c885b85edc11b21b7938b543f70c1368cbf8b9aa2", "section_path": ["工具命令"], "commit_groups": [["6d16ecc64"], ["b6fb534f1"]], "identity_text": "Support IF NOT EXISTS in CREATE SERVER, CREATE USER MAPPING, and CREATE COLLATION (Anastasia Lubennikova, Peter Eisentraut)", "commit_aliases": ["6d16ecc64", "b6fb534f1"], "source_commits": ["6d16ecc64", "b6fb534f1"], "source_entry_id": "10.0/changes/072", "db_id": "90e95dd0ca0f0e8f6035a8a96f8ee78c", "patch_ids": ["52eae263e5ce47a14ed73a08c4a62d65", "b03a1ed0aca72613960cd5f92ebdd275"], "statement_hash": "8c13663cb8903209823485639d5e93471639b5e73dade812578d799f207c2bf6", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-0619349899e08d57", "cves": [], "html": "<p>使 <a href=\"/docs/10/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM VERBOSE</code></a> 报告跳过的冻结页数量和最老的 xmin（Masahiko Sawada，Simon Riggs）</p>\n<p>这些信息也包含在<a href=\"/docs/10/runtime-config-autovacuum.html#GUC-LOG-AUTOVACUUM-MIN-DURATION\">log_autovacuum_min_duration</a>的输出中。</p>", "text": "使 VACUUM VERBOSE 报告跳过的冻结页数量和最老的 xmin（Masahiko Sawada，Simon Riggs） 这些信息也包含在log_autovacuum_min_duration的输出中。", "title": "使 VACUUM VERBOSE 报告跳过的冻结页数量和最老的 xmin", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "b1ea7471c96e5f6232bc2311eb4db75d35067a3b942d2d84ba5b63c5681e7761", "section_path": ["工具命令"], "commit_groups": [["70adf2fbe"], ["9eb344faf"]], "identity_text": "Make VACUUM VERBOSE report the number of skipped frozen pages and oldest xmin (Masahiko Sawada, Simon Riggs) This information is also included in guc-log-autovacuum-min-duration output.", "commit_aliases": ["70adf2fbe", "9eb344faf"], "source_commits": ["70adf2fbe", "9eb344faf"], "source_entry_id": "10.0/changes/073", "db_id": "06bb1e20aacbb6d818a007b2e238284d", "patch_ids": ["4e6dc85dbe847037690024614bd18f5e", "fa12b6ce3cc4b131c8e5aa5d58041af3"], "statement_hash": "4d280537989bc498a717ed8629cac7b69a66f09cb2f874d2d554cc2b12edd270", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-e6a071e514c53b18", "cves": [], "html": "<p>加快 <code>VACUUM</code> 移除末尾空堆页的速度（Claudio Freire，Álvaro Herrera）</p>", "text": "加快 VACUUM 移除末尾空堆页的速度（Claudio Freire，Álvaro Herrera）", "title": "加快 VACUUM 移除末尾空堆页的速度", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.6", "source_hash": "cd73b540cece2c0cd4d6932d269cf18cddafad2bbb0c9796adbf493150e967d7", "section_path": ["工具命令"], "commit_groups": [["7e26e02ee"]], "identity_text": "Improve speed of VACUUM's removal of trailing empty heap pages (Claudio Freire, Álvaro Herrera)", "commit_aliases": ["7e26e02ee"], "source_commits": ["7e26e02ee"], "source_entry_id": "10.0/changes/074", "db_id": "3bedb3296b37ddb4e306f2be0b4415fe", "patch_ids": ["69aa4c2a24a6996a80d1a4b43f108f35"], "statement_hash": "b43efed8de1b627891ad864109e30b4153286e8bdacd442d760803d16a9012aa", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1348244158f994e7", "cves": [], "html": "<p>为 <code>JSON</code> 和 <code>JSONB</code> 增加全文检索支持（Dmitry Dolgov）</p>\n<p>现在可以将函数 <code>ts_headline()</code> 和 <code>to_tsvector()</code> 用于这些数据类型。</p>", "text": "为 JSON 和 JSONB 增加全文检索支持（Dmitry Dolgov） 现在可以将函数 ts_headline() 和 to_tsvector() 用于这些数据类型。", "title": "为 JSON 和 JSONB 增加全文检索支持", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "2663562c294e0ec4fb2edfd5e4c86abdcd4e6102ebd7e7b25e35b014328c5336", "section_path": ["数据类型"], "commit_groups": [["e306df7f9"]], "identity_text": "Add full text search support for JSON and JSONB (Dmitry Dolgov) The functions ts_headline() and to_tsvector() can now be used on these data types.", "commit_aliases": ["e306df7f9"], "source_commits": ["e306df7f9"], "source_entry_id": "10.0/changes/075", "db_id": "0f7ac4a0fa18fc1d90f5a4badd4e0e2a", "patch_ids": ["1f61508b61138ec839272fada69f99d0"], "statement_hash": "dc328feca84c6693599d515c1406c16032aa2b815094085c181bd86b20f4e1a7", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-429e8da0a2a5009f", "cves": [], "html": "<p>通过新的数据类型 <a href=\"/docs/10/datatype-net-types.html#DATATYPE-MACADDR8\" title=\"8.9.5. macaddr8\"><code>macaddr8</code></a>，增加对 <acronym>EUI-64</acronym> <acronym>MAC</acronym> 地址的支持（Haribabu Kommi）</p>\n<p>这补充了现有的 <acronym>EUI-48</acronym> <acronym>MAC</acronym> 地址支持（类型 <code>macaddr</code>）。</p>", "text": "通过新的数据类型 macaddr8，增加对 EUI-64 MAC 地址的支持（Haribabu Kommi） 这补充了现有的 EUI-48 MAC 地址支持（类型 macaddr）。", "title": "通过新的数据类型 macaddr8，增加对 EUI-64 MAC 地址的支持", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "63f68f72a04d7822a94124eaa35e012bbe3b0015b21cf653d9c7d4291fd7d190", "section_path": ["数据类型"], "commit_groups": [["c7a9fa399"]], "identity_text": "Add support for EUI-64 MAC addresses, as a new data type macaddr8 (Haribabu Kommi) This complements the existing support for EUI-48 MAC addresses (type macaddr).", "commit_aliases": ["c7a9fa399"], "source_commits": ["c7a9fa399"], "source_entry_id": "10.0/changes/076", "db_id": "f410a5d37f6d0a32a505bf037f54be2d", "patch_ids": ["0097c7141014598f0da80e41fd1dbe33"], "statement_hash": "0ff0c490986918103d6d381f4e39257b77e0dace09f6dda12fb1078dea609309", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-2522fdb67196f6c3", "cves": [], "html": "<p>增加<a href=\"/docs/10/sql-createtable.html\" title=\"CREATE TABLE\">标识列</a>，用于在插入时为列分配数值（Peter Eisentraut）</p>\n<p>它们类似于 <code>SERIAL</code> 列，但符合 <acronym>SQL</acronym> 标准。</p>", "text": "增加标识列，用于在插入时为列分配数值（Peter Eisentraut） 它们类似于 SERIAL 列，但符合 SQL 标准。", "title": "增加标识列，用于在插入时为列分配数值", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "c3084501a27bc7adb62fb236d73a81e6fd5d5f8e588cd9d0dd9743589e067bba", "section_path": ["数据类型"], "commit_groups": [["321732705"]], "identity_text": "Add identity columns for assigning a numeric value to columns on insert (Peter Eisentraut) These are similar to SERIAL columns, but are SQL standard compliant.", "commit_aliases": ["321732705"], "source_commits": ["321732705"], "source_entry_id": "10.0/changes/077", "db_id": "aad2cc6659d834f48bab60c1d6fd16be", "patch_ids": ["291b426f3f7cbe471973782c1121d68b"], "statement_hash": "6dcf631eaf48795654ec9d87765bd98c7a24e3c986e575c256b61c1a2e268cc9", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-e08b66e232371612", "cves": [], "html": "<p>允许重命名 <a href=\"/docs/10/datatype-enum.html\" title=\"8.7. 枚举类型\"><code>ENUM</code></a> 值（Dagfinn Ilmari Mannsåker）</p>\n<p>这使用语法 <a href=\"/docs/10/sql-altertype.html\" title=\"ALTER TYPE\"><code>ALTER TYPE ... RENAME VALUE</code></a>。</p>", "text": "允许重命名 ENUM 值（Dagfinn Ilmari Mannsåker） 这使用语法 ALTER TYPE ... RENAME VALUE。", "title": "允许重命名 ENUM 值", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "fb94113850eedf2bb7a37ee8c0c06978df9c0cc1d3d786211a8323682923394c", "section_path": ["数据类型"], "commit_groups": [["0ab9c56d0"]], "identity_text": "Allow ENUM values to be renamed (Dagfinn Ilmari Mannsåker) This uses the syntax ALTER TYPE ... RENAME VALUE.", "commit_aliases": ["0ab9c56d0"], "source_commits": ["0ab9c56d0"], "source_entry_id": "10.0/changes/078", "db_id": "f18c2e7049930e72f14de6e8e17bd564", "patch_ids": ["5a90da7f9fa4470e756a00eb9817666b"], "statement_hash": "9367f5060207301150991d5ed5473032fb4f79ccd392f3992e2d29b178f14834", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-b11c28eb99379f37", "cves": [], "html": "<p>在 <a href=\"/docs/10/functions-json.html#FUNCTIONS-JSON-CREATION-TABLE\" title=\"表 9.45. JSON 创建函数\"><code>to_json()</code></a> 和 <code>to_jsonb()</code> 中，正确地将数组伪类型（<code>anyarray</code>）视为数组（Andrew Dunstan）</p>\n<p>以前，声明为 <code>anyarray</code> 的列（尤其是 <code>pg_stats</code> 视图中的列）会被转换为 <code>JSON</code> 字符串，而不是数组。</p>", "text": "在 to_json() 和 to_jsonb() 中，正确地将数组伪类型（anyarray）视为数组（Andrew Dunstan） 以前，声明为 anyarray 的列（尤其是 pg_stats 视图中的列）会被转换为 JSON 字符串，而不是数组。", "title": "在 to_json() 和 to_jsonb() 中，正确地将数组伪类型（anyarray）视为数组", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "ddf2c08b457904f7e6dcca7d9b11881e75925e3e8ad075fed8805bf4ba7ee8bf", "section_path": ["数据类型"], "commit_groups": [["502a3832c"]], "identity_text": "Properly treat array pseudotypes (anyarray) as arrays in to_json() and to_jsonb() (Andrew Dunstan) Previously columns declared as anyarray (particularly those in the pg_stats view) were converted to JSON strings rather than arrays.", "commit_aliases": ["502a3832c"], "source_commits": ["502a3832c"], "source_entry_id": "10.0/changes/079", "db_id": "e4b856b0bd769c376564f4f6afada69d", "patch_ids": ["64a1b611ab8488660106e8f5a4009827"], "statement_hash": "670695874f7c586304118b52d7c49ce4b360a26b197e795dac5ea566cde11591", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-4b95c7b48b7ed124", "cves": [], "html": "<p>增加用于 <a href=\"/docs/10/datatype-money.html\" title=\"8.2. 货币类型\"><code>money</code></a> 值与 <code>int8</code> 值相乘和相除的操作符（Peter Eisentraut）</p>\n<p>以前，这类情况会先将 <code>int8</code> 值转换为 <code>float8</code>，再使用 <code>money</code> 与 <code>float8</code> 的操作符。新行为避免了可能的精度损失。但请注意，<code>money</code> 除以 <code>int8</code> 现在会像其他整数除法一样截断商，而以前的行为会进行舍入。</p>", "text": "增加用于 money 值与 int8 值相乘和相除的操作符（Peter Eisentraut） 以前，这类情况会先将 int8 值转换为 float8，再使用 money 与 float8 的操作符。新行为避免了可能的精度损失。但请注意，money 除以 int8 现在会像其他整数除法一样截断商，而以前的行为会进行舍入。", "title": "增加用于 money 值与 int8 值相乘和相除的操作符", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "2a3d64b8a10f544da820d4c654cd3c9aaaff2c47a786e3b7ba3dd56ebb55287b", "section_path": ["数据类型"], "commit_groups": [["323b96aa3"]], "identity_text": "Add operators for multiplication and division of money values with int8 values (Peter Eisentraut) Previously such cases would result in converting the int8 values to float8 and then using the money-and-float8 operators. The new behavior avoids possible precision loss. But note that division of money by int8 now truncates the quotient, like other integer-division cases, while the previous behavior would have rounded.", "commit_aliases": ["323b96aa3"], "source_commits": ["323b96aa3"], "source_entry_id": "10.0/changes/080", "db_id": "35dd023ecc2da7bed4dc29b3caf2b0c5", "patch_ids": ["5019a3021bf4c7ed208e6bf3d2ad1021"], "statement_hash": "789199617884f8862746de5f9e2f3b5d7d2aa763da6c7bc095146f808ec84109", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-b1e630e57a42543a", "cves": [], "html": "<p>在 <code>money</code> 类型的输入函数中检查溢出（Peter Eisentraut）</p>", "text": "在 money 类型的输入函数中检查溢出（Peter Eisentraut）", "title": "在 money 类型的输入函数中检查溢出", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.7", "source_hash": "b51dbd7c946b9510f58cceba041bb7587c788e628c1d1120713e53d6434675d7", "section_path": ["数据类型"], "commit_groups": [["656df624c"]], "identity_text": "Check for overflow in the money type's input function (Peter Eisentraut)", "commit_aliases": ["656df624c"], "source_commits": ["656df624c"], "source_entry_id": "10.0/changes/081", "db_id": "b6e613c4860ad1a8190a83227fa5c687", "patch_ids": ["c93988c89d4d8302b0d811c96f07c7ee"], "statement_hash": "14122a03db6e85f5834775d0783601d0654792ff550189dbbd605de2f9a0d03e", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-72eb9b8c0301d6f0", "cves": [], "html": "<p>增加简化的 <a href=\"/docs/10/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3. POSIX正则表达式\"><code>regexp_match()</code></a> 函数（Emre Hasegeli）</p>\n<p>它类似于 <code>regexp_matches()</code>，但只返回第一次匹配的结果，因此不需要返回集合，在简单场景下更易使用。</p>", "text": "增加简化的 regexp_match() 函数（Emre Hasegeli） 它类似于 regexp_matches()，但只返回第一次匹配的结果，因此不需要返回集合，在简单场景下更易使用。", "title": "增加简化的 regexp_match() 函数", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "3cbaed664398226f5c2530d60925a0b969fd839e433dd1c2828b01c3b3738f95", "section_path": ["函数"], "commit_groups": [["cf9b0fea5"]], "identity_text": "Add simplified regexp_match() function (Emre Hasegeli) This is similar to regexp_matches(), but it only returns results from the first match so it does not need to return a set, making it easier to use for simple cases.", "commit_aliases": ["cf9b0fea5"], "source_commits": ["cf9b0fea5"], "source_entry_id": "10.0/changes/082", "db_id": "4290f31bfb824164f796f50ae12af8dd", "patch_ids": ["1e7fb23fcffceecd0d89c99708b26c59"], "statement_hash": "b7b023e9e378b918812ecbd1a3a4048de218288cfb6251e72c271cc2a8b7a840", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-87aeb2de445ba455", "cves": [], "html": "<p>增加 <code>jsonb</code> 的<a href=\"/docs/10/functions-json.html#FUNCTIONS-JSONB-OP-TABLE\" title=\"表 9.44. 附加的 jsonb 操作符\">删除操作符</a>的一个版本，接受要删除的键组成的数组（Magnus Hagander）</p>", "text": "增加 jsonb 的删除操作符的一个版本，接受要删除的键组成的数组（Magnus Hagander）", "title": "增加 jsonb 的删除操作符的一个版本，接受要删除的键组成的数组", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "f467ad490175dd4b7bced3e1de956646cec9d47dcd6b4ab6d3d77fa2baef5951", "section_path": ["函数"], "commit_groups": [["d00ca333c"]], "identity_text": "Add a version of jsonb's delete operator that takes an array of keys to delete (Magnus Hagander)", "commit_aliases": ["d00ca333c"], "source_commits": ["d00ca333c"], "source_entry_id": "10.0/changes/083", "db_id": "8ffe715df052fa0ea40fc89db91fe8c2", "patch_ids": ["8ca310b13a8bd663ebb9124ebb4cdf35"], "statement_hash": "41575d815b3e204e4a61df2e7acdc1900bef8da125a81016fdeaf01e6e8c5341", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-9592d8e13cda4861", "cves": [], "html": "<p>使 <a href=\"/docs/10/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE\" title=\"表 9.46. JSON 处理函数\"><code>json_populate_record()</code></a> 及相关函数递归处理 JSON 数组和对象（Nikita Glukhov）</p>\n<p>此变更使目标 SQL 类型中的数组类型字段能够从 JSON 数组正确转换，复合类型字段能够从 JSON 对象正确转换。以前，这类情况会失败，因为 JSON 值的文本表示会被传给 <code>array_in()</code> 或 <code>record_in()</code>，而其语法不符合这些输入函数的预期。</p>", "text": "使 json_populate_record() 及相关函数递归处理 JSON 数组和对象（Nikita Glukhov） 此变更使目标 SQL 类型中的数组类型字段能够从 JSON 数组正确转换，复合类型字段能够从 JSON 对象正确转换。以前，这类情况会失败，因为 JSON 值的文本表示会被传给 array_in() 或 record_in()，而其语法不符合这些输入函数的预期。", "title": "使 json_populate_record() 及相关函数递归处理 JSON 数组和对象", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "9df9a653426084507185a896434d2dde60b1869b0e89b790114c74b440a388b3", "section_path": ["函数"], "commit_groups": [["cf35346e8"]], "identity_text": "Make json_populate_record() and related functions process JSON arrays and objects recursively (Nikita Glukhov) With this change, array-type fields in the destination SQL type are properly converted from JSON arrays, and composite-type fields are properly converted from JSON objects. Previously, such cases would fail because the text representation of the JSON value would be fed to array_in() or record_in(), and its syntax would not match what those input functions expect.", "commit_aliases": ["cf35346e8"], "source_commits": ["cf35346e8"], "source_entry_id": "10.0/changes/084", "db_id": "e5d34e2e69bbb14a35862f701836ca83", "patch_ids": ["ba44cd73850c74310ebeec5da9662162"], "statement_hash": "c7831249c07354892cc4c63511091b131fea865b191ae4145a0b4606a868907e", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-3d5f9ad74c721995", "cves": [], "html": "<p>增加函数 <a href=\"/docs/10/functions-info.html#FUNCTIONS-TXID-SNAPSHOT\" title=\"表 9.69. 事务 ID 和快照\"><code>txid_current_if_assigned()</code></a>，用于返回当前事务 ID，或者在尚未分配事务 ID 时返回 <code>NULL</code>（Craig Ringer）</p>\n<p>这与 <a href=\"/docs/10/functions-info.html#FUNCTIONS-TXID-SNAPSHOT\" title=\"表 9.69. 事务 ID 和快照\"><code>txid_current()</code></a> 不同，后者始终返回事务 ID，并在必要时分配一个。与后者不同，此函数可以在备库上运行。</p>", "text": "增加函数 txid_current_if_assigned()，用于返回当前事务 ID，或者在尚未分配事务 ID 时返回 NULL（Craig Ringer） 这与 txid_current() 不同，后者始终返回事务 ID，并在必要时分配一个。与后者不同，此函数可以在备库上运行。", "title": "增加函数 txid_current_if_assigned()，用于返回当前事务 ID，或者在尚未分配事务 ID 时返回 NULL", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "0bde154f08491dae59072d05eea2ff549ac90431b3e73623b3d6590c5c8d5979", "section_path": ["函数"], "commit_groups": [["86f31695f"]], "identity_text": "Add function txid_current_if_assigned() to return the current transaction ID or NULL if no transaction ID has been assigned (Craig Ringer) This is different from txid_current(), which always returns a transaction ID, assigning one if necessary. Unlike that function, this function can be run on standby servers.", "commit_aliases": ["86f31695f"], "source_commits": ["86f31695f"], "source_entry_id": "10.0/changes/085", "db_id": "9e15d1380460b8fb1331c9f0587a749d", "patch_ids": ["9eab6ae85838825d3c6c59d40f7d4e19"], "statement_hash": "48ffa258e630fcbb7bb22f833bb31fb9c11d8c55b7fe32325cdc4336431a142f", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-f1e5492c6f68bfd5", "cves": [], "html": "<p>增加函数 <a href=\"/docs/10/functions-info.html#FUNCTIONS-TXID-SNAPSHOT\" title=\"表 9.69. 事务 ID 和快照\"><code>txid_status()</code></a>，用于检查事务是否已提交（Craig Ringer）</p>\n<p>这有助于在连接突然断开后，检查前一个事务是否其实已提交，只是您没有收到确认。</p>", "text": "增加函数 txid_status()，用于检查事务是否已提交（Craig Ringer） 这有助于在连接突然断开后，检查前一个事务是否其实已提交，只是您没有收到确认。", "title": "增加函数 txid_status()，用于检查事务是否已提交", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "808f998fe4439e6fc32b2b1fa19efcae2ffa123bffd20035ddef84fe57f8cd50", "section_path": ["函数"], "commit_groups": [["857ee8e39"]], "identity_text": "Add function txid_status() to check if a transaction was committed (Craig Ringer) This is useful for checking after an abrupt disconnection whether your previous transaction committed and you just didn't receive the acknowledgment.", "commit_aliases": ["857ee8e39"], "source_commits": ["857ee8e39"], "source_entry_id": "10.0/changes/086", "db_id": "477a94a6ca175b6c16700bc1804783e1", "patch_ids": ["b374ac2d878c2e229f57bc7657b64258"], "statement_hash": "1de8d31170590b09d6c56d048b4c21a1fae194759cab51553207593bf1581a8e", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-4df26eeb725d74d0", "cves": [], "html": "<p>允许 <a href=\"/docs/10/functions-datetime.html#FUNCTIONS-DATETIME-TABLE\" title=\"表 9.30. 日期/时间函数\"><code>make_date()</code></a> 将负数年份解释为公元前（<acronym>BC</acronym>）年份（Álvaro Herrera）</p>", "text": "允许 make_date() 将负数年份解释为公元前（BC）年份（Álvaro Herrera）", "title": "允许 make_date() 将负数年份解释为公元前（BC）年份", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "a294ee096cf8f0e4f482c1e1c82197a85e45862ae030785665d8a70e1d29f1cc", "section_path": ["函数"], "commit_groups": [["30bcebbdc"]], "identity_text": "Allow make_date() to interpret negative years as BC years (Álvaro Herrera)", "commit_aliases": ["30bcebbdc"], "source_commits": ["30bcebbdc"], "source_entry_id": "10.0/changes/087", "db_id": "e868b6fcdf63642344d5eb2134e134ce", "patch_ids": ["8a0f6499949c0e464ec8127f92ee311b"], "statement_hash": "30757b6feb52725582c68e1858bb8326ede01474f5e20d002477b186635c7f1d", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-ec6cdc9ddc8e36fe", "cves": [], "html": "<p>使 <a href=\"/docs/10/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE\" title=\"表 9.23. 格式化函数\"><code>to_timestamp()</code></a> 和 <code>to_date()</code> 拒绝超出范围的输入字段（Artur Zakirov）</p>\n<p>例如，以前会接受 <code>to_date('2009-06-40','YYYY-MM-DD')</code> 并返回 <code>2009-07-10</code>。现在它会产生错误。</p>", "text": "使 to_timestamp() 和 to_date() 拒绝超出范围的输入字段（Artur Zakirov） 例如，以前会接受 to_date('2009-06-40','YYYY-MM-DD') 并返回 2009-07-10。现在它会产生错误。", "title": "使 to_timestamp() 和 to_date() 拒绝超出范围的输入字段", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.8", "source_hash": "94abf554468782a6fc73ac7b6adb4a88e2177d660a65f969d40b475b9cbc1042", "section_path": ["函数"], "commit_groups": [["d3cd36a13"]], "identity_text": "Make to_timestamp() and to_date() reject out-of-range input fields (Artur Zakirov) For example, previously to_date('2009-06-40','YYYY-MM-DD') was accepted and returned 2009-07-10. It will now generate an error.", "commit_aliases": ["d3cd36a13"], "source_commits": ["d3cd36a13"], "source_entry_id": "10.0/changes/088", "db_id": "572a3af1a3b008bb73f45dcedcd19b3f", "patch_ids": ["372e13b8195241fc355940ee408b6ac2"], "statement_hash": "0d7f1b7dd8c39384521256293f8ae383578ca82b419b28735fc580a74fcb8832", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-94523539962b0bf0", "cves": [], "html": "<p>允许将 PL/Python 的 <code>cursor()</code> 和 <code>execute()</code> 函数作为其计划对象参数的方法调用（Peter Eisentraut）</p>\n<p>这允许采用更面向对象的编程风格。</p>", "text": "允许将 PL/Python 的 cursor() 和 execute() 函数作为其计划对象参数的方法调用（Peter Eisentraut） 这允许采用更面向对象的编程风格。", "title": "允许将 PL/Python 的 cursor() 和 execute() 函数作为其计划对象参数的方法调用", "commits": [], "section": "服务器端语言", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.9", "source_hash": "96a10bcd6aef76eac1cc8b13e97ecf16a3b383559b0de01661700bf79043f524", "section_path": ["服务器端语言"], "commit_groups": [["70ec3f1f8"]], "identity_text": "Allow PL/Python's cursor() and execute() functions to be called as methods of their plan-object arguments (Peter Eisentraut) This allows a more object-oriented programming style.", "commit_aliases": ["70ec3f1f8"], "source_commits": ["70ec3f1f8"], "source_entry_id": "10.0/changes/089", "db_id": "58135d084852fb0c1dd15cd4aa09a548", "patch_ids": ["3e37e02ee1881d68673b87de2ce427b8"], "statement_hash": "b39c999ba70888c567dc2b3b8d9bd3fbd67b399ab9cf1a942d5f2de4fd788db0", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-7939ad19bd5d7f51", "cves": [], "html": "<p>允许 PL/pgSQL 的 <code>GET DIAGNOSTICS</code> 语句将值取回到数组元素中（Tom Lane）</p>\n<p>以前，一项语法限制不允许目标变量是数组元素。</p>", "text": "允许 PL/pgSQL 的 GET DIAGNOSTICS 语句将值取回到数组元素中（Tom Lane） 以前，一项语法限制不允许目标变量是数组元素。", "title": "允许 PL/pgSQL 的 GET DIAGNOSTICS 语句将值取回到数组元素中", "commits": [], "section": "服务器端语言", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.9", "source_hash": "12fbad3faeed716f5cd3c74564ef7ef262e43a3954fab844c8ad2e162e2ab04f", "section_path": ["服务器端语言"], "commit_groups": [["55caaaeba"]], "identity_text": "Allow PL/pgSQL's GET DIAGNOSTICS statement to retrieve values into array elements (Tom Lane) Previously, a syntactic restriction prevented the target variable from being an array element.", "commit_aliases": ["55caaaeba"], "source_commits": ["55caaaeba"], "source_entry_id": "10.0/changes/090", "db_id": "35fbe50c90084828d661bb4f787217b1", "patch_ids": ["44cd5b157d83444a0c7850640102fae5"], "statement_hash": "4a0ab6b13e2b35baaf9fdd740ad1effc58d177841e3eaf46510686cc09935be5", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-6dc9038fda875a67", "cves": [], "html": "<p>允许 PL/Tcl 函数返回复合类型和集合（Karl Lehenbauer）</p>", "text": "允许 PL/Tcl 函数返回复合类型和集合（Karl Lehenbauer）", "title": "允许 PL/Tcl 函数返回复合类型和集合", "commits": [], "section": "服务器端语言 / PL/Tcl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.9.3", "source_hash": "ad4dfdeeb70840259b5a093c797a83fa31673ab7b1e46f94dca7a579d16b770c", "section_path": ["服务器端语言", "PL/Tcl"], "commit_groups": [["26abb50c4"]], "identity_text": "Allow PL/Tcl functions to return composite types and sets (Karl Lehenbauer)", "commit_aliases": ["26abb50c4"], "source_commits": ["26abb50c4"], "source_entry_id": "10.0/changes/091", "db_id": "280edeefb0ba5757df7c827a62e02b0d", "patch_ids": ["674705dc636a83f2d35f9918ef3024e1"], "statement_hash": "53fc4d1f0453d79899465c25beeaa25ce59a61e6401c2cc67aeac24a71684c2f", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-d8e2743cdf872e53", "cves": [], "html": "<p>为 PL/Tcl 增加子事务命令（Victor Wagner）</p>\n<p>这允许 PL/Tcl 查询失败而不中止整个函数。</p>", "text": "为 PL/Tcl 增加子事务命令（Victor Wagner） 这允许 PL/Tcl 查询失败而不中止整个函数。", "title": "为 PL/Tcl 增加子事务命令", "commits": [], "section": "服务器端语言 / PL/Tcl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.9.3", "source_hash": "fbd09adbfb3e50dc5e5a26af640dccebb10c00b34d1ee94700271fe3a0f3c317", "section_path": ["服务器端语言", "PL/Tcl"], "commit_groups": [["b58fd4a9c"]], "identity_text": "Add a subtransaction command to PL/Tcl (Victor Wagner) This allows PL/Tcl queries to fail without aborting the entire function.", "commit_aliases": ["b58fd4a9c"], "source_commits": ["b58fd4a9c"], "source_entry_id": "10.0/changes/092", "db_id": "76177936ef580652b687b5d63c73e420", "patch_ids": ["6dab0696fe279870ec6917f2900a44cc"], "statement_hash": "2b5ef0e903620c1830bc0e6fde6682e8c4aca8ab00fe6f204d0b0cffa4d5c003", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-d1bf72ac87489d93", "cves": [], "html": "<p>增加服务器参数<a href=\"/docs/10/pltcl-config.html#GUC-PLTCL-START-PROC\">pltcl.start_proc</a>和<a href=\"/docs/10/pltcl-config.html#GUC-PLTCLU-START-PROC\">pltclu.start_proc</a>，允许在 PL/Tcl 启动时调用初始化函数（Tom Lane）</p>", "text": "增加服务器参数pltcl.start_proc和pltclu.start_proc，允许在 PL/Tcl 启动时调用初始化函数（Tom Lane）", "title": "增加服务器参数pltcl.start_proc和pltclu.start_proc，允许在 PL/Tcl 启动时调用初始化函数", "commits": [], "section": "服务器端语言 / PL/Tcl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.9.3", "source_hash": "001a5dfb792657346cae3b04c7793fc76149191c790d61f21cbfd2e3dc46cd23", "section_path": ["服务器端语言", "PL/Tcl"], "commit_groups": [["0d2b1f305"]], "identity_text": "Add server parameters guc-pltcl-start-proc and guc-pltclu-start-proc , to allow initialization functions to be called on PL/Tcl startup (Tom Lane)", "commit_aliases": ["0d2b1f305"], "source_commits": ["0d2b1f305"], "source_entry_id": "10.0/changes/093", "db_id": "7592546b9103c51fc56c17a96b5180a7", "patch_ids": ["2d0740e72abce0d9c5e27e820a4bf62f"], "statement_hash": "5376a9ae21cbabef4de5bf36a0003df048a47e7d8a63956912da672803bd3812", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-e57a5429f20244f8", "cves": [], "html": "<p>允许在 libpq 连接字符串和 URI 中指定<a href=\"/docs/10/libpq.html#LIBPQ-CONNECT-HOST\">多个主机名或地址</a>（Robert Haas，Heikki Linnakangas）</p>\n<p>libpq 会连接到列表中第一个响应的服务器。</p>", "text": "允许在 libpq 连接字符串和 URI 中指定多个主机名或地址（Robert Haas，Heikki Linnakangas） libpq 会连接到列表中第一个响应的服务器。", "title": "允许在 libpq 连接字符串和 URI 中指定多个主机名或地址", "commits": [], "section": "客户端接口", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.10", "source_hash": "5381b6d8ae9cf33b033a3cc4709ad301fa44503e8ff313f9e200a0c5286462cc", "section_path": ["客户端接口"], "commit_groups": [["274bb2b38"], ["5f374fe7a"], ["7b02ba62e"]], "identity_text": "Allow specification of multiple host names or addresses in libpq connection strings and URIs (Robert Haas, Heikki Linnakangas) libpq will connect to the first responsive server in the list.", "commit_aliases": ["274bb2b38", "5f374fe7a", "7b02ba62e"], "source_commits": ["274bb2b38", "5f374fe7a", "7b02ba62e"], "source_entry_id": "10.0/changes/094", "db_id": "f0cfad9d6b023b56828152e6109e0dfd", "patch_ids": ["0f39c00541ebdba307e86fad1a0f103a", "22146dfce814af6cc4d29a4190b0311b", "2e1b2710142b284aca3f28eb56aae6fa"], "statement_hash": "92fbd2d150695af766463a146560cdcf1a54a898cc3ab38ea8d06d0310fe538a", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-d26adcb3c7c88152", "cves": [], "html": "<p>允许 libpq 连接字符串和 URI 请求<a href=\"/docs/10/libpq.html#LIBPQ-CONNECT-TARGET-SESSION-ATTRS\">可读写主机</a>，即主库而非备库（Victor Wagner，Mithun Cy）</p>\n<p>这在指定多个主机名时很有用。它由 libpq 连接参数 <code>target_session_attrs</code> 控制。</p>", "text": "允许 libpq 连接字符串和 URI 请求可读写主机，即主库而非备库（Victor Wagner，Mithun Cy） 这在指定多个主机名时很有用。它由 libpq 连接参数 target_session_attrs 控制。", "title": "允许 libpq 连接字符串和 URI 请求可读写主机，即主库而非备库", "commits": [], "section": "客户端接口", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.10", "source_hash": "2cc0db52caceccf39bfc1dfa3000d0e37ecad9fcc1d8cafd8b5618dd6da86bca", "section_path": ["客户端接口"], "commit_groups": [["721f7bd3c"]], "identity_text": "Allow libpq connection strings and URIs to request a read/write host, that is a master server rather than a standby server (Victor Wagner, Mithun Cy) This is useful when multiple host names are specified. It is controlled by libpq connection parameter target_session_attrs.", "commit_aliases": ["721f7bd3c"], "source_commits": ["721f7bd3c"], "source_entry_id": "10.0/changes/095", "db_id": "11671e8d29c9d62945cbe6b7c393f75c", "patch_ids": ["f8436a760113ff29f8124d5220ffee1c"], "statement_hash": "4741c589820cf6d47383c5daddd846795638d77d14e93b47579ec8d6f7720e4f", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-2d9a02355d1a4260", "cves": [], "html": "<p>允许将<a href=\"/docs/10/libpq.html#LIBPQ-CONNECT-PASSFILE\">密码文件名</a>指定为 libpq 连接参数（Julian Markwort）</p>\n<p>以前，只能通过环境变量指定此项。</p>", "text": "允许将密码文件名指定为 libpq 连接参数（Julian Markwort） 以前，只能通过环境变量指定此项。", "title": "允许将密码文件名指定为 libpq 连接参数", "commits": [], "section": "客户端接口", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.10", "source_hash": "2fb112dd9630466f24cbf72356b9ade0ab45f928f10261ef39de800fb012d65a", "section_path": ["客户端接口"], "commit_groups": [["ba005f193"]], "identity_text": "Allow the password file name to be specified as a libpq connection parameter (Julian Markwort) Previously this could only be specified via an environment variable.", "commit_aliases": ["ba005f193"], "source_commits": ["ba005f193"], "source_entry_id": "10.0/changes/096", "db_id": "82843dc8b5df5fd130a110b5f1f8c298", "patch_ids": ["f598f751a925a0636860bc484bc212c0"], "statement_hash": "2039978c7d1eceba2c08e5e1806af97fdad24475fa574f7df4d0248883cf80eb", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-6deb328c653dfe56", "cves": [], "html": "<p>增加函数 <a href=\"/docs/10/libpq-misc.html#LIBPQ-PQENCRYPTPASSWORDCONN\"><code>PQencryptPasswordConn()</code></a>，允许在客户端创建更多类型的加密密码（Michael Paquier，Heikki Linnakangas）</p>\n<p>以前，只能使用 <a href=\"/docs/10/libpq-misc.html#LIBPQ-PQENCRYPTPASSWORD\"><code>PQencryptPassword()</code></a> 创建 <code>MD5</code> 加密的密码。新函数还可以创建 <a href=\"/docs/10/client-authentication.html#AUTH-PG-HBA-CONF\" title=\"20.1. pg_hba.conf 文件\"><code>SCRAM-SHA-256</code></a> 加密的密码。</p>", "text": "增加函数 PQencryptPasswordConn()，允许在客户端创建更多类型的加密密码（Michael Paquier，Heikki Linnakangas） 以前，只能使用 PQencryptPassword() 创建 MD5 加密的密码。新函数还可以创建 SCRAM-SHA-256 加密的密码。", "title": "增加函数 PQencryptPasswordConn()，允许在客户端创建更多类型的加密密码", "commits": [], "section": "客户端接口", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.10", "source_hash": "edc9defa5c9080e23d123198311847ed7d49cbf78620ea742c3ebaa63dd88daa", "section_path": ["客户端接口"], "commit_groups": [["8f8b9be51"]], "identity_text": "Add function PQencryptPasswordConn() to allow creation of more types of encrypted passwords on the client side (Michael Paquier, Heikki Linnakangas) Previously only MD5-encrypted passwords could be created using PQencryptPassword(). This new function can also create SCRAM-SHA-256-encrypted passwords.", "commit_aliases": ["8f8b9be51"], "source_commits": ["8f8b9be51"], "source_entry_id": "10.0/changes/097", "db_id": "8651d637ecb578888d6db02112435cdb", "patch_ids": ["cc8c148b1466cd7f6c2386fa62244764"], "statement_hash": "4425bc4cfc313809b10ba0c498a93e15460c94c569bb0dd59126bb264601c559", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-e60570788b652413", "cves": [], "html": "<p>将 <span>ecpg</span> 预处理器版本从 4.12 改为 10（Tom Lane）</p>\n<p>今后，<span>ecpg</span> 版本将与 <span>PostgreSQL</span> 发行版的版本号一致。</p>", "text": "将 ecpg 预处理器版本从 4.12 改为 10（Tom Lane） 今后，ecpg 版本将与 PostgreSQL 发行版的版本号一致。", "title": "将 ecpg 预处理器版本从 4.12 改为 10", "commits": [], "section": "客户端接口", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.10", "source_hash": "1ffb82f2a04117c851785e6a96ed07f928ec5a2405172025126b61b6673e4ed2", "section_path": ["客户端接口"], "commit_groups": [["a7b5573d6"]], "identity_text": "Change ecpg preprocessor version from 4.12 to 10 (Tom Lane) Henceforth the ecpg version will match the PostgreSQL distribution version number.", "commit_aliases": ["a7b5573d6"], "source_commits": ["a7b5573d6"], "source_entry_id": "10.0/changes/098", "db_id": "22520ddb4a408a84ee50d183e1ed848c", "patch_ids": ["ffc13000a97a46ed8d71e8b79ce8c740"], "statement_hash": "4edb4d32c8ac4364b9ee4ff53c8716db23e51bec715763571aa61690b60992fa", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-461851ab18055837", "cves": [], "html": "<p>为 <span>psql</span> 增加条件分支支持（Corey Huinker）</p>\n<p>此功能增加了 <span>psql</span> 元命令 <code>\\if</code>、<code>\\elif</code>、<code>\\else</code> 和 <code>\\endif</code>。这主要有助于编写脚本。</p>", "text": "为 psql 增加条件分支支持（Corey Huinker） 此功能增加了 psql 元命令 \\if、\\elif、\\else 和 \\endif。这主要有助于编写脚本。", "title": "为 psql 增加条件分支支持", "commits": [], "section": "客户端应用程序 / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "5005a1969fc738a7cc8fe0bac5f3b5141bb323c7c88c9cdb1d9bb37d02a4fa09", "section_path": ["客户端应用程序", "psql"], "commit_groups": [["5dbc5da11"], ["68dba97a4"], ["e984ef586"]], "identity_text": "Add conditional branch support to psql (Corey Huinker) This feature adds psql meta-commands \\if, \\elif, \\else, and \\endif. This is primarily helpful for scripting.", "commit_aliases": ["5dbc5da11", "68dba97a4", "e984ef586"], "source_commits": ["5dbc5da11", "68dba97a4", "e984ef586"], "source_entry_id": "10.0/changes/099", "db_id": "9365a3a7d6604e7929711906549d2c16", "patch_ids": ["20f21cee80f5237db38ba8c56754c7e5", "5bbefa23b0eb45be3a4c2f29ecc8a680", "8f0c29f71555c539a6c44bf77670af67"], "statement_hash": "4fcc6fd33fc4d4a5b9fb078a7b836acb08b03e3de3b549e9efa3c67d46263d33", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-2188331267b60c79", "cves": [], "html": "<p>增加 <span>psql</span> 元命令 <code>\\gx</code>，以扩展模式（<code>\\x</code>）执行（<code>\\g</code>）查询（Christoph Berg）</p>", "text": "增加 psql 元命令 \\gx，以扩展模式（\\x）执行（\\g）查询（Christoph Berg）", "title": "增加 psql 元命令 \\gx，以扩展模式（\\x）执行（\\g）查询", "commits": [], "section": "客户端应用程序 / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "59c506288765804d664312d126f54512243acb062607a783a57f3db3a9062532", "section_path": ["客户端应用程序", "psql"], "commit_groups": [["b2678efd4"]], "identity_text": "Add psql \\gx meta-command to execute (\\g) a query in expanded mode (\\x) (Christoph Berg)", "commit_aliases": ["b2678efd4"], "source_commits": ["b2678efd4"], "source_entry_id": "10.0/changes/100", "db_id": "164ed77d9e31781c63b9f6a85c60f226", "patch_ids": ["aab90044404adc27dac6392cd55af1f2"], "statement_hash": "ab53e2b789f1eb66044d3e04538aeb90f1b141e8b22aae01de11d280b3839fd2", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-c42cfce05c920441", "cves": [], "html": "<p>在反引号执行的字符串中展开 <span>psql</span> 变量引用（Tom Lane）</p>\n<p>这在新的 <span>psql</span> 条件分支命令中尤其有用。</p>", "text": "在反引号执行的字符串中展开 psql 变量引用（Tom Lane） 这在新的 psql 条件分支命令中尤其有用。", "title": "在反引号执行的字符串中展开 psql 变量引用", "commits": [], "section": "客户端应用程序 / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "75f7f4b584ba3c32e351ba63630ab7ceed89ea9f32a32fc37f3f5508cce18571", "section_path": ["客户端应用程序", "psql"], "commit_groups": [["f833c847b"]], "identity_text": "Expand psql variable references in backtick-executed strings (Tom Lane) This is particularly useful in the new psql conditional branch commands.", "commit_aliases": ["f833c847b"], "source_commits": ["f833c847b"], "source_entry_id": "10.0/changes/101", "db_id": "7050da050390a40bdc76a2afd09beeda", "patch_ids": ["e96c3f12571ff11ca27635abed9db715"], "statement_hash": "fd7115a0bd0231e0499c77c0c3fee045860f9c5e5bc3dec57704029b466df3c9", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-3cf5b1b7ffe72b70", "cves": [], "html": "<p>防止将 <span>psql</span> 的特殊变量设为无效值（Daniel Vérité，Tom Lane）</p>\n<p>以前，将 <span>psql</span> 的某个特殊变量设为无效值，会静默采用默认行为。现在，如果拟设置的新值无效，对特殊变量执行 <code>\\set</code> 就会失败。一个特殊例外是，对布尔值特殊变量执行 <code>\\set</code>，且新值为空或省略时，仍会将变量设为 <code>on</code>；但现在它实际取得的就是该值，而不是空字符串。现在，对特殊变量执行 <code>\\unset</code> 会显式将其设为默认值，这也是启动时取得的值。因此，控制变量现在始终有一个可显示的值，反映 <span>psql</span> 的实际行为。</p>", "text": "防止将 psql 的特殊变量设为无效值（Daniel Vérité，Tom Lane） 以前，将 psql 的某个特殊变量设为无效值，会静默采用默认行为。现在，如果拟设置的新值无效，对特殊变量执行 \\set 就会失败。一个特殊例外是，对布尔值特殊变量执行 \\set，且新值为空或省略时，仍会将变量设为 on；但现在它实际取得的就是该值，而不是空字符串。现在，对特殊变量执行 \\unset 会显式将其设为默认值，这也是启动时取得的值。因此，控制变量现在始终有一个可显示的值，反映 psql 的实际行为。", "title": "防止将 psql 的特殊变量设为无效值", "commits": [], "section": "客户端应用程序 / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "ab5196ad3b9986de584bdcdec9a163d47e2706a1ba1db8e1a2ad68df888a7827", "section_path": ["客户端应用程序", "psql"], "commit_groups": [["511ae628f"], ["86322dc7e"], ["fd6cd6980"]], "identity_text": "Prevent psql's special variables from being set to invalid values (Daniel Vérité, Tom Lane) Previously, setting one of psql's special variables to an invalid value silently resulted in the default behavior. \\set on a special variable now fails if the proposed new value is invalid. As a special exception, \\set with an empty or omitted new value, on a boolean-valued special variable, still has the effect of setting the variable to on; but now it actually acquires that value rather than an empty string. \\unset on a special variable now explicitly sets the variable to its default value, which is also the value it acquires at startup. In sum, a control variable now always has a displayable value that reflects what psql is actually doing.", "commit_aliases": ["511ae628f", "86322dc7e", "fd6cd6980"], "source_commits": ["511ae628f", "86322dc7e", "fd6cd6980"], "source_entry_id": "10.0/changes/102", "db_id": "90f1b85e4d81b2a8f3e713aecf4aece2", "patch_ids": ["05072c573581a3b7b0bdd510c1a3c4ac", "2bfeaf6c5f9daaae4dae06d069fff2de", "c617a07ee40e913ab3c7757c33242608"], "statement_hash": "d6c438fc008637a399b49442cbd801362354dbb85e73483dc7fa9af3cafd6e16", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-bff41f96a168e8a7", "cves": [], "html": "<p>增加显示服务器版本和 <span>psql</span> 版本的变量（Fabien Coelho）</p>", "text": "增加显示服务器版本和 psql 版本的变量（Fabien Coelho）", "title": "增加显示服务器版本和 psql 版本的变量", "commits": [], "section": "客户端应用程序 / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "2819d63589fa4050b132635666a596f8a2e8739675aca4cdde86ac40f1a78ed9", "section_path": ["客户端应用程序", "psql"], "commit_groups": [["a6c678f01"]], "identity_text": "Add variables showing server version and psql version (Fabien Coelho)", "commit_aliases": ["a6c678f01"], "source_commits": ["a6c678f01"], "source_entry_id": "10.0/changes/103", "db_id": "c3cf73e37f3d8075709692908af98688", "patch_ids": ["4294581f372156f6a262adf5b4f303e2"], "statement_hash": "a05df29bf988b1704fc197f6aa6865518c29a6c7beb5a8e30a4ab3089d4260b3", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-73cd7f76eafac79b", "cves": [], "html": "<p>改进 <span>psql</span> 的 <code>\\d</code>（显示关系）和 <code>\\dD</code>（显示域）命令，在单独的列中显示排序规则、是否可空和默认值属性（Peter Eisentraut）</p>\n<p>以前，它们显示在同一个 <span>“<span>Modifiers</span>”</span> 列中。</p>", "text": "改进 psql 的 \\d（显示关系）和 \\dD（显示域）命令，在单独的列中显示排序规则、是否可空和默认值属性（Peter Eisentraut） 以前，它们显示在同一个 “Modifiers” 列中。", "title": "改进 psql 的 \\d（显示关系）和 \\dD（显示域）命令，在单独的列中显示排序规则、是否可空和默认值属性", "commits": [], "section": "客户端应用程序 / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "df52cbe887ae119ce898ca7470bed1b932bb23125e69a23703a54ce0d95fc27c", "section_path": ["客户端应用程序", "psql"], "commit_groups": [["a0f357e57"]], "identity_text": "Improve psql's \\d (display relation) and \\dD (display domain) commands to show collation, nullable, and default properties in separate columns (Peter Eisentraut) Previously they were shown in a single Modifiers column.", "commit_aliases": ["a0f357e57"], "source_commits": ["a0f357e57"], "source_entry_id": "10.0/changes/104", "db_id": "ca24a2f0cdfcfe7e05fa4094aa35d793", "patch_ids": ["206b86af913465c441e60b876f549638"], "statement_hash": "be2707582114fd1966dd9867510ef3dc52e7a015eb3b3497a8d00cf50162e65a", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-c9abfdd6cedf72c7", "cves": [], "html": "<p>使各个 <code>\\d</code> 命令对没有匹配对象的情况的处理更一致（Daniel Gustafsson）</p>\n<p>现在，它们都将相关消息输出到 stderr，而非 stdout，消息的措辞也更一致。</p>", "text": "使各个 \\d 命令对没有匹配对象的情况的处理更一致（Daniel Gustafsson） 现在，它们都将相关消息输出到 stderr，而非 stdout，消息的措辞也更一致。", "title": "使各个 \\d 命令对没有匹配对象的情况的处理更一致", "commits": [], "section": "客户端应用程序 / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "cc94b1642b766ce9100bae8788bf9503ef904f883283ea435d6703240580b86e", "section_path": ["客户端应用程序", "psql"], "commit_groups": [["77cb4a1d6"]], "identity_text": "Make the various \\d commands handle no-matching-object cases more consistently (Daniel Gustafsson) They now all print the message about that to stderr, not stdout, and the message wording is more consistent.", "commit_aliases": ["77cb4a1d6"], "source_commits": ["77cb4a1d6"], "source_entry_id": "10.0/changes/105", "db_id": "6f6d96bb204d9b1e7c71de7f57faf67b", "patch_ids": ["21c70b2ca49b56329414a3fe6b4e25e6"], "statement_hash": "74f2bf56241d594bd95a4ddc7844c1d35ac19df89f6074bd012627196a9af8ab", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-e66ff91ccd5f8d6f", "cves": [], "html": "<p>改进 <span>psql</span> 的 Tab 补全（Jeff Janes，Ian Barwick，Andreas Karlsson，Sehrope Sarkuni，Thomas Munro，Kevin Grittner，Dagfinn Ilmari Mannsåker）</p>", "text": "改进 psql 的 Tab 补全（Jeff Janes，Ian Barwick，Andreas Karlsson，Sehrope Sarkuni，Thomas Munro，Kevin Grittner，Dagfinn Ilmari Mannsåker）", "title": "改进 psql 的 Tab 补全", "commits": [], "section": "客户端应用程序 / psql", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.2", "source_hash": "525aa0b58c6d1695d5cc433f1cb384447be4f252a383a1d01e5709eeb920497d", "section_path": ["客户端应用程序", "psql"], "commit_groups": [["1d15d0db5"], ["49917dbd7"], ["52803098a"], ["577f0bdd2"], ["63c1a8719"], ["76f9dd4fa"], ["8019b5a89"], ["927d7bb6b"], ["b5a388392"], ["d7d77f382"]], "identity_text": "Improve psql's tab completion (Jeff Janes, Ian Barwick, Andreas Karlsson, Sehrope Sarkuni, Thomas Munro, Kevin Grittner, Dagfinn Ilmari Mannsåker)", "commit_aliases": ["1d15d0db5", "49917dbd7", "52803098a", "577f0bdd2", "63c1a8719", "76f9dd4fa", "8019b5a89", "927d7bb6b", "b5a388392", "d7d77f382"], "source_commits": ["1d15d0db5", "49917dbd7", "52803098a", "577f0bdd2", "63c1a8719", "76f9dd4fa", "8019b5a89", "927d7bb6b", "b5a388392", "d7d77f382"], "source_entry_id": "10.0/changes/106", "db_id": "6ee37d397eabc368ebb0b09e8cb1f166", "patch_ids": ["0e121b8d81a535d14529070e6b41b177", "0e5f7f76a152e44c779cb7036f04f020", "331162ed3fe570da7f0808eb580a58a6", "340380993c3fcf96ebaa6ae992318a1e", "34ac2b5548e9e9c428564e3e3b0b272d", "4762323bc309231370bcbdbd09e68fde", "6232a07d514568cfb66cbb32c580056e", "a5706b65b7045c60565bec2d44b0a49f", "b6456e2dfd436086a0d350ef46af9190", "e51c1d96dbc630df624bdfa3bc731247"], "statement_hash": "791d1939e7986db4cb1357958ef4b62acb6416b859733cdf37ddae5763ab7e3e", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-d03095fad2c2a588", "cves": [], "html": "<p>增加 <span>pgbench</span> 选项 <code>--log-prefix</code>，用于控制日志文件前缀（Masahiko Sawada）</p>", "text": "增加 pgbench 选项 --log-prefix，用于控制日志文件前缀（Masahiko Sawada）", "title": "增加 pgbench 选项 --log-prefix，用于控制日志文件前缀", "commits": [], "section": "客户端应用程序 / pgbench", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.3", "source_hash": "1d90c74b9bb04afe38540dee80fedc24939487a44a40d12fb74b8c43bfd61721", "section_path": ["客户端应用程序", "pgbench"], "commit_groups": [["41124a91e"]], "identity_text": "Add pgbench option --log-prefix to control the log file prefix (Masahiko Sawada)", "commit_aliases": ["41124a91e"], "source_commits": ["41124a91e"], "source_entry_id": "10.0/changes/107", "db_id": "de0aedc76030d08c86d0ca8895c1316f", "patch_ids": ["b59288d0a567a11016a6fd0d846da34d"], "statement_hash": "cd9240f04a83b7db10fae0701847c6395930c48b1587609f687acb94a5282ca3", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-c611e3170581c824", "cves": [], "html": "<p>允许 <span>pgbench</span> 的元命令跨越多行（Fabien Coelho）</p>\n<p>现在可以通过在行尾写反斜杠并换行，将元命令延续到下一行。</p>", "text": "允许 pgbench 的元命令跨越多行（Fabien Coelho） 现在可以通过在行尾写反斜杠并换行，将元命令延续到下一行。", "title": "允许 pgbench 的元命令跨越多行", "commits": [], "section": "客户端应用程序 / pgbench", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.3", "source_hash": "d473edbbbc0e7e6831bd2d14ed4bcf4aae9f4b2ef398a8b29d27743aedffc9c0", "section_path": ["客户端应用程序", "pgbench"], "commit_groups": [["cdc2a7047"]], "identity_text": "Allow pgbench's meta-commands to span multiple lines (Fabien Coelho) A meta-command can now be continued onto the next line by writing backslash-return.", "commit_aliases": ["cdc2a7047"], "source_commits": ["cdc2a7047"], "source_entry_id": "10.0/changes/108", "db_id": "bf86efefbb208dcd720be1e49901ff2c", "patch_ids": ["7a2354b184227d94432b106e218dcc71"], "statement_hash": "2c4503907695aa4e64c87ff5646b95aa58ed79dc0b2dbf6bf8f3bb46f50cda34", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-8c7e2025d766c3c1", "cves": [], "html": "<p>移除 <code>-M</code> 选项相对于其他命令行选项的位置限制（Tom Lane）</p>", "text": "移除 -M 选项相对于其他命令行选项的位置限制（Tom Lane）", "title": "移除 -M 选项相对于其他命令行选项的位置限制", "commits": [], "section": "客户端应用程序 / pgbench", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.11.3", "source_hash": "9e588ecdaec3497c1be27f6dbd4dd376a098bf9edaf6e3bb27f68cc3deb2a717", "section_path": ["客户端应用程序", "pgbench"], "commit_groups": [["796818442"]], "identity_text": "Remove restriction on placement of -M option relative to other command line options (Tom Lane)", "commit_aliases": ["796818442"], "source_commits": ["796818442"], "source_entry_id": "10.0/changes/109", "db_id": "80f0021d7d1248be270f552b71b2db6c", "patch_ids": ["e3c7d7e779c99e91af6d124cf9746e1f"], "statement_hash": "0dc24ca0e9dcbb3c23bbeb0b64522c8b44a84da397224cea435ac2069589e7ee", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-c359adfcc96cca32", "cves": [], "html": "<p>增加<a href=\"/docs/10/app-pgreceivewal.html\" title=\"pg_receivewal\"><span>pg_receivewal</span></a>选项 <code>-Z</code>/<code>--compress</code>，用于指定压缩（Michael Paquier）</p>", "text": "增加pg_receivewal选项 -Z/--compress，用于指定压缩（Michael Paquier）", "title": "增加pg_receivewal选项 -Z/--compress，用于指定压缩", "commits": [], "section": "服务器应用程序", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12", "source_hash": "b50717d21f6a8fc45da6b38b7d536bf148f089d6215bbe00c5bf03e119731847", "section_path": ["服务器应用程序"], "commit_groups": [["cada1af31"]], "identity_text": "Add pg_receivewal option -Z/--compress to specify compression (Michael Paquier)", "commit_aliases": ["cada1af31"], "source_commits": ["cada1af31"], "source_entry_id": "10.0/changes/110", "db_id": "1f62aca53708e1ade0b9f6c9e665742a", "patch_ids": ["e913cd9386fa2bd58fb2e73219b3ac2c"], "statement_hash": "5c4b8d98a4c4641096221a5ddf9d0f0c6e5d48a4e44ee9a3c694e209abe42bb8", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-7839589d0d677a7c", "cves": [], "html": "<p>增加<a href=\"/docs/10/app-pgrecvlogical.html\" title=\"pg_recvlogical\"><span>pg_recvlogical</span></a>选项 <code>--endpos</code>，用于指定结束位置（Craig Ringer）</p>\n<p>这补充了现有的 <code>--startpos</code> 选项。</p>", "text": "增加pg_recvlogical选项 --endpos，用于指定结束位置（Craig Ringer） 这补充了现有的 --startpos 选项。", "title": "增加pg_recvlogical选项 --endpos，用于指定结束位置", "commits": [], "section": "服务器应用程序", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12", "source_hash": "4b882960ab5bd4dc88cdf156e8087292356d066b000e77afda6057048497653a", "section_path": ["服务器应用程序"], "commit_groups": [["7c030783a"]], "identity_text": "Add pg_recvlogical option --endpos to specify the ending position (Craig Ringer) This complements the existing --startpos option.", "commit_aliases": ["7c030783a"], "source_commits": ["7c030783a"], "source_entry_id": "10.0/changes/111", "db_id": "0a946ee445f785ff37763c1849aa7099", "patch_ids": ["a133cb6d2947cc6cfea723fb73a13619"], "statement_hash": "7d09e64fe59be109b9578c935ec32bc2460a170724945ab0940d50cf6d95eb17", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-ddb9a1a7d8d00d1c", "cves": [], "html": "<p>将<a href=\"/docs/10/app-initdb.html\" title=\"initdb\"><span>initdb</span></a>选项 <code>--noclean</code> 和 <code>--nosync</code> 重命名为 <code>--no-clean</code> 和 <code>--no-sync</code>（Vik Fearing，Peter Eisentraut）</p>\n<p>仍支持旧的拼写。</p>", "text": "将initdb选项 --noclean 和 --nosync 重命名为 --no-clean 和 --no-sync（Vik Fearing，Peter Eisentraut） 仍支持旧的拼写。", "title": "将initdb选项 --noclean 和 --nosync 重命名为 --no-clean 和 --no-sync", "commits": [], "section": "服务器应用程序", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12", "source_hash": "bde3ed95c8705f9af0b30c806bbe3496958c91f814480880cc50230d16b314db", "section_path": ["服务器应用程序"], "commit_groups": [["5d58c07a4"]], "identity_text": "Rename initdb options --noclean and --nosync to be spelled --no-clean and --no-sync (Vik Fearing, Peter Eisentraut) The old spellings are still supported.", "commit_aliases": ["5d58c07a4"], "source_commits": ["5d58c07a4"], "source_entry_id": "10.0/changes/112", "db_id": "868a55e2f443f6af9edc06e059ca9690", "patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"], "statement_hash": "794083b2dfac37eeff644171487cdcadbcc4682331e4cfaf4ca31a208c62fd4d", "relations": [{"rule": 2, "type": "related", "target": "4ad69074dd464ac52c051302ebdd3c2b", "evidence": {"same_day": true, "patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"], "ambiguous_patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"]}}], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": [{"db_id": "4ad69074dd464ac52c051302ebdd3c2b", "kind": "related", "version": "10.0", "label": "10.0", "title": "增加 pg_basebackup 选项 --no-sync，用于禁用 fsync", "evidence": {"same_day": true, "patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"], "ambiguous_patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"]}, "url": "/docs/compare/?release=10.0#10.0-54879cec71a8ef7c", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.4"}]}, {"id": "10.0-8e06fa1e146e8a1c", "cves": [], "html": "<p>允许 <span>pg_restore</span> 排除模式（Michael Banck）</p>\n<p>这增加了新的 <code>-N</code>/<code>--exclude-schema</code> 选项。</p>", "text": "允许 pg_restore 排除模式（Michael Banck） 这增加了新的 -N/--exclude-schema 选项。", "title": "允许 pg_restore 排除模式", "commits": [], "section": "服务器应用程序 / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.3", "source_hash": "493a4f192ffbf5785f527a10643dc235b8f7494af7b12e8776de4c6c45deb287", "section_path": ["服务器应用程序", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["46b55e7f8"]], "identity_text": "Allow pg_restore to exclude schemas (Michael Banck) This adds a new -N/--exclude-schema option.", "commit_aliases": ["46b55e7f8"], "source_commits": ["46b55e7f8"], "source_entry_id": "10.0/changes/113", "db_id": "eef182ff351370cbb5a6a90e1a44f0a6", "patch_ids": ["5b1e005318f061c20fb60c2ef612b9a5"], "statement_hash": "d8fc782763e558cc44d262c646ee85dd797978daadaeb4504ab57ad1171991ad", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-d8cd218f7d275074", "cves": [], "html": "<p>为 <span>pg_dump</span> 增加 <code>--no-blobs</code> 选项（Guillaume Lelarge）</p>\n<p>这会禁止转储大对象。</p>", "text": "为 pg_dump 增加 --no-blobs 选项（Guillaume Lelarge） 这会禁止转储大对象。", "title": "为 pg_dump 增加 --no-blobs 选项", "commits": [], "section": "服务器应用程序 / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.3", "source_hash": "62c8fe97098fc78802f7eb91c6fb9bfdf1c06ba1f2133fbd4f24761790df3f40", "section_path": ["服务器应用程序", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["4fafa579b"]], "identity_text": "Add --no-blobs option to pg_dump (Guillaume Lelarge) This suppresses dumping of large objects.", "commit_aliases": ["4fafa579b"], "source_commits": ["4fafa579b"], "source_entry_id": "10.0/changes/114", "db_id": "8ffbf5d17d9e708010692004eeffdacf", "patch_ids": ["45862d068c4f8c27a6e040aeee8cf23a"], "statement_hash": "89b3ada14a986418d540edf452d7df1589aae4c3d3bb2110d117fa9d5dbe754d", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-90229aa16145e12e", "cves": [], "html": "<p>为 <span>pg_dumpall</span> 增加 <code>--no-role-passwords</code> 选项，以省略角色密码（Robins Tharakan，Simon Riggs）</p>\n<p>这使非超级用户也能够使用 <span>pg_dumpall</span>；如果没有此选项，它会因无法读取密码而失败。</p>", "text": "为 pg_dumpall 增加 --no-role-passwords 选项，以省略角色密码（Robins Tharakan，Simon Riggs） 这使非超级用户也能够使用 pg_dumpall；如果没有此选项，它会因无法读取密码而失败。", "title": "为 pg_dumpall 增加 --no-role-passwords 选项，以省略角色密码", "commits": [], "section": "服务器应用程序 / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.3", "source_hash": "48353c876263d5a70815ecd9d5b826deeb30cd601cebe4806d795a696a989b6f", "section_path": ["服务器应用程序", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["9a83d56b3"]], "identity_text": "Add pg_dumpall option --no-role-passwords to omit role passwords (Robins Tharakan, Simon Riggs) This allows use of pg_dumpall by non-superusers; without this option, it fails due to inability to read passwords.", "commit_aliases": ["9a83d56b3"], "source_commits": ["9a83d56b3"], "source_entry_id": "10.0/changes/115", "db_id": "5f16d6a4d62a5daf2ce9aef3cadc6f59", "patch_ids": ["080004d594782aa2bdf8e79b7c08485f"], "statement_hash": "94ae41a59c110bf7dae0dd152745a9a8a4ea0192fb98270d14de669c6f85e732", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-d7e41bf69f46edf0", "cves": [], "html": "<p>支持从备库转储时使用同步快照（Petr Jelinek）</p>", "text": "支持从备库转储时使用同步快照（Petr Jelinek）", "title": "支持从备库转储时使用同步快照", "commits": [], "section": "服务器应用程序 / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.3", "source_hash": "66b841e732920a2657794d5c30b7d048de63d7b656ba957f0cf4c5858de2d103", "section_path": ["服务器应用程序", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["e4892c681"]], "identity_text": "Support using synchronized snapshots when dumping from a standby server (Petr Jelinek)", "commit_aliases": ["e4892c681"], "source_commits": ["e4892c681"], "source_entry_id": "10.0/changes/116", "db_id": "415aaada42162af3fa1d324ef5086ea2", "patch_ids": ["11fb20f40bd006618bf7fe1cc60587f3"], "statement_hash": "e4481306e5454b76c5fbe3577967267d338abfdb6e5b29fd3a588dfc105b40d8", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-9abe4662520a220d", "cves": [], "html": "<p>对 <span>pg_dump</span> 和 <span>pg_dumpall</span> 生成的输出文件执行 <code>fsync()</code>（Michael Paquier）</p>\n<p>这能更可靠地确保输出在程序退出前已安全存储到磁盘上。可以通过新增的 <code>--no-sync</code> 选项禁用此行为。</p>", "text": "对 pg_dump 和 pg_dumpall 生成的输出文件执行 fsync()（Michael Paquier） 这能更可靠地确保输出在程序退出前已安全存储到磁盘上。可以通过新增的 --no-sync 选项禁用此行为。", "title": "对 pg_dump 和 pg_dumpall 生成的输出文件执行 fsync()", "commits": [], "section": "服务器应用程序 / pg_dump, pg_dumpall, pg_restore", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.3", "source_hash": "926f9c424fb8d66e4c25164a323e3e273a855840ed1a4e5ef366cf3a4e2c5c81", "section_path": ["服务器应用程序", "pg_dump, pg_dumpall, pg_restore"], "commit_groups": [["96a7128b7"]], "identity_text": "Issue fsync() on the output files generated by pg_dump and pg_dumpall (Michael Paquier) This provides more security that the output is safely stored on disk before the program exits. This can be disabled with the new --no-sync option.", "commit_aliases": ["96a7128b7"], "source_commits": ["96a7128b7"], "source_entry_id": "10.0/changes/117", "db_id": "9c407d87704db7b3f8041b6883195e4b", "patch_ids": ["89954ac8dab9305fa4023f51f3791ffc"], "statement_hash": "5d367258b446a52548ef53ebc3c8cfc0e02e6d6513cb7b914be71a64755e2824", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-d54cb3e9f63d542d", "cves": [], "html": "<p>允许 <span>pg_basebackup</span> 在 tar 模式下以流方式传输预写式日志（Magnus Hagander）</p>\n<p><acronym>WAL</acronym> 将存储在与基础备份分开的 tar 文件中。</p>", "text": "允许 pg_basebackup 在 tar 模式下以流方式传输预写式日志（Magnus Hagander） WAL 将存储在与基础备份分开的 tar 文件中。", "title": "允许 pg_basebackup 在 tar 模式下以流方式传输预写式日志", "commits": [], "section": "服务器应用程序 / pg_basebackup", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.4", "source_hash": "08f311cc73876b36b37922880dab333b8e2a5ba0a31854a9a46ee676c2fcba06", "section_path": ["服务器应用程序", "pg_basebackup"], "commit_groups": [["56c7d8d45"], ["ecbdc4c55"]], "identity_text": "Allow pg_basebackup to stream write-ahead log in tar mode (Magnus Hagander) The WAL will be stored in a separate tar file from the base backup.", "commit_aliases": ["56c7d8d45", "ecbdc4c55"], "source_commits": ["56c7d8d45", "ecbdc4c55"], "source_entry_id": "10.0/changes/118", "db_id": "068ce7d3e14ee47277e98ba3c8bca1bd", "patch_ids": ["09128c9bb92b3811b528991cfb739340", "be16d4967abf16ae65411ee4b8e4235f"], "statement_hash": "0389786c4106a88a62885cdbdb84649abc1f4723072dfe2a98a2d908b42aca65", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-b2520a067bd5e1c4", "cves": [], "html": "<p>使 <span>pg_basebackup</span> 使用临时复制槽（Magnus Hagander）</p>\n<p>当 <span>pg_basebackup</span> 使用默认选项进行 WAL 流传输时，默认会使用临时复制槽。</p>", "text": "使 pg_basebackup 使用临时复制槽（Magnus Hagander） 当 pg_basebackup 使用默认选项进行 WAL 流传输时，默认会使用临时复制槽。", "title": "使 pg_basebackup 使用临时复制槽", "commits": [], "section": "服务器应用程序 / pg_basebackup", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.4", "source_hash": "7665a26f237404b63ae8632a3727d2a819745f60ff506319195f6ad760797258", "section_path": ["服务器应用程序", "pg_basebackup"], "commit_groups": [["e7b020f78"]], "identity_text": "Make pg_basebackup use temporary replication slots (Magnus Hagander) Temporary replication slots will be used by default when pg_basebackup uses WAL streaming with default options.", "commit_aliases": ["e7b020f78"], "source_commits": ["e7b020f78"], "source_entry_id": "10.0/changes/119", "db_id": "096f05b90d00b9e6a118543b233314dd", "patch_ids": ["7952ff6ebb7748dac3db57278d343e04"], "statement_hash": "ffe4a665ed964b018e716037b7eadb5f854b261164a832d4d8dd22eca3e9b7e8", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-553a860f21d5e4b9", "cves": [], "html": "<p>更谨慎地确保 <span>pg_basebackup</span> 和 <span>pg_receivewal</span> 在所有需要的位置执行 fsync（Michael Paquier）</p>", "text": "更谨慎地确保 pg_basebackup 和 pg_receivewal 在所有需要的位置执行 fsync（Michael Paquier）", "title": "更谨慎地确保 pg_basebackup 和 pg_receivewal 在所有需要的位置执行 fsync", "commits": [], "section": "服务器应用程序 / pg_basebackup", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.4", "source_hash": "5285949aef2d37906d9c16c92f8c0b0b847acf45ec61fe86ff0ea20ca2a6eda9", "section_path": ["服务器应用程序", "pg_basebackup"], "commit_groups": [["bc34223bc"]], "identity_text": "Be more careful about fsync'ing in all required places in pg_basebackup and pg_receivewal (Michael Paquier)", "commit_aliases": ["bc34223bc"], "source_commits": ["bc34223bc"], "source_entry_id": "10.0/changes/120", "db_id": "d4dabba52a8865453f7ffc5c7f1029c8", "patch_ids": ["a9a2e9d96d5ab087630c3a7028c10677"], "statement_hash": "10b2e565743dbed23502fac010fa66f56c0a204a6bcaea593c7f5e756156ff8a", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-54879cec71a8ef7c", "cves": [], "html": "<p>增加 <span>pg_basebackup</span> 选项 <code>--no-sync</code>，用于禁用 fsync（Michael Paquier）</p>", "text": "增加 pg_basebackup 选项 --no-sync，用于禁用 fsync（Michael Paquier）", "title": "增加 pg_basebackup 选项 --no-sync，用于禁用 fsync", "commits": [], "section": "服务器应用程序 / pg_basebackup", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.4", "source_hash": "4983ad47f16848a73e0a98a640ff989edd4e3fe1dbd3a0aa6045005037fce825", "section_path": ["服务器应用程序", "pg_basebackup"], "commit_groups": [["5d58c07a4"], ["6ed2d8584"]], "identity_text": "Add pg_basebackup option --no-sync to disable fsync (Michael Paquier)", "commit_aliases": ["5d58c07a4", "6ed2d8584"], "source_commits": ["5d58c07a4", "6ed2d8584"], "source_entry_id": "10.0/changes/121", "db_id": "4ad69074dd464ac52c051302ebdd3c2b", "patch_ids": ["97e6dcaae2c670aaf9c27499f028a17f", "a2c1574f5af340dc2a70ae4549f08323"], "statement_hash": "7ce02eb85ace6beb6e87e57f67edb734382fe07f340e217fccb14a9551d461f7", "relations": [{"rule": 2, "type": "related", "target": "868a55e2f443f6af9edc06e059ca9690", "evidence": {"same_day": true, "patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"], "ambiguous_patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"]}}], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": [{"db_id": "868a55e2f443f6af9edc06e059ca9690", "kind": "related", "version": "10.0", "label": "10.0", "title": "将initdb选项 --noclean 和 --nosync 重命名为 --no-clean 和 --no-sync", "evidence": {"same_day": true, "patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"], "ambiguous_patch_ids": ["a2c1574f5af340dc2a70ae4549f08323"]}, "url": "/docs/compare/?release=10.0#10.0-ddb9a1a7d8d00d1c", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12"}]}, {"id": "10.0-df0335686d962a28", "cves": [], "html": "<p>改进 <span>pg_basebackup</span> 对需要跳过的目录的处理（David Steele）</p>", "text": "改进 pg_basebackup 对需要跳过的目录的处理（David Steele）", "title": "改进 pg_basebackup 对需要跳过的目录的处理", "commits": [], "section": "服务器应用程序 / pg_basebackup", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.4", "source_hash": "3744c5d89754bf98c108a7ef2c8ba97c658d9ce198307c89c0a23245a9c0e82b", "section_path": ["服务器应用程序", "pg_basebackup"], "commit_groups": [["6ad8ac602"]], "identity_text": "Improve pg_basebackup's handling of which directories to skip (David Steele)", "commit_aliases": ["6ad8ac602"], "source_commits": ["6ad8ac602"], "source_entry_id": "10.0/changes/122", "db_id": "fed8b500772af072be5e155f25b8850e", "patch_ids": ["dd8ac1636099e837ba76fdde10904929"], "statement_hash": "b1cbcaee39c8da9c292cc411f63e5922da52c3fabe8fbc64037881b57246fb57", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1f1d3d4f397e07b4", "cves": [], "html": "<p>为 <span><a href=\"/docs/10/app-pg-ctl.html\" title=\"pg_ctl\"><span><span>pg_ctl</span></span></a></span> 的提升操作增加等待选项（Peter Eisentraut）</p>", "text": "为 pg_ctl 的提升操作增加等待选项（Peter Eisentraut）", "title": "为 pg_ctl 的提升操作增加等待选项", "commits": [], "section": "服务器应用程序 / pg_ctl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.5", "source_hash": "027072e0029bbb130abc07a9b075e3bcd2ba2ec377b29efad265f6e5a35c6696", "section_path": ["服务器应用程序", "pg_ctl"], "commit_groups": [["e7010ce47"]], "identity_text": "Add wait option for app-pg-ctl 's promote operation (Peter Eisentraut)", "commit_aliases": ["e7010ce47"], "source_commits": ["e7010ce47"], "source_entry_id": "10.0/changes/123", "db_id": "99bc3c69e5dcc6b3a96a9080fa9b8d54", "patch_ids": ["f6f84a22680a103513d861cf101e98fb"], "statement_hash": "ddad51c4ecd7649eaf652ff02aa4abbce203ee38f025f3575243b145a03d2b1d", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-42f86b3ccaec1bad", "cves": [], "html": "<p>为 <span>pg_ctl</span> 的等待和不等待操作增加长选项，分别为 <code>--wait</code> 和 <code>--no-wait</code>（Vik Fearing）</p>", "text": "为 pg_ctl 的等待和不等待操作增加长选项，分别为 --wait 和 --no-wait（Vik Fearing）", "title": "为 pg_ctl 的等待和不等待操作增加长选项，分别为 --wait 和 --no-wait", "commits": [], "section": "服务器应用程序 / pg_ctl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.5", "source_hash": "1088cc9eafc16242d679754839a66ec487911a5aff7349bc4335ff90e6fd5e22", "section_path": ["服务器应用程序", "pg_ctl"], "commit_groups": [["0be22457d"]], "identity_text": "Add long options for pg_ctl wait (--wait) and no-wait (--no-wait) (Vik Fearing)", "commit_aliases": ["0be22457d"], "source_commits": ["0be22457d"], "source_entry_id": "10.0/changes/124", "db_id": "47f436537b46622df77dc5ef34eefdf8", "patch_ids": ["8054a938f0bc8cb225422cfb14d65508"], "statement_hash": "989af5a26d35756aea757d8ba41af194ea143cc93eaacf25a7d0bdc2f96cbcdc", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1daf08ae8ef4e53b", "cves": [], "html": "<p>为 <span>pg_ctl</span> 的服务器选项增加长选项 <code>--options</code>（Peter Eisentraut）</p>", "text": "为 pg_ctl 的服务器选项增加长选项 --options（Peter Eisentraut）", "title": "为 pg_ctl 的服务器选项增加长选项 --options", "commits": [], "section": "服务器应用程序 / pg_ctl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.5", "source_hash": "cddd434e67ef7075726934210558dd991bdb5ff49fc844f4aede4851873ce208", "section_path": ["服务器应用程序", "pg_ctl"], "commit_groups": [["caf936b09"]], "identity_text": "Add long option for pg_ctl server options (--options) (Peter Eisentraut)", "commit_aliases": ["caf936b09"], "source_commits": ["caf936b09"], "source_entry_id": "10.0/changes/125", "db_id": "4c8a354a2c5b162a4cddf60a7342e30b", "patch_ids": ["4fadf73f1d0ef76137063f1d278b1d13"], "statement_hash": "2db4e5b9c3b115b6969a8a0e805c3147817c9c03cf147cb6727362bab3022707", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-f7711e8f7c867911", "cves": [], "html": "<p>使 <code>pg_ctl start --wait</code> 通过观察 <code>postmaster.pid</code> 来检测服务器是否就绪，而不是尝试连接（Tom Lane）</p>\n<p>postmaster 现在会在 <code>postmaster.pid</code> 中报告其已准备好接受连接的状态，<span>pg_ctl</span> 会检查该文件，以检测启动是否完成。这比旧方法更高效可靠，也消除了启动期间连接尝试被拒绝所产生的 postmaster 日志条目。</p>", "text": "使 pg_ctl start --wait 通过观察 postmaster.pid 来检测服务器是否就绪，而不是尝试连接（Tom Lane） postmaster 现在会在 postmaster.pid 中报告其已准备好接受连接的状态，pg_ctl 会检查该文件，以检测启动是否完成。这比旧方法更高效可靠，也消除了启动期间连接尝试被拒绝所产生的 postmaster 日志条目。", "title": "使 pg_ctl start --wait 通过观察 postmaster.pid 来检测服务器是否就绪，而不是尝试连接", "commits": [], "section": "服务器应用程序 / pg_ctl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.5", "source_hash": "d65e4fbbeca14650d008b87cd5e3d0b54d1cd88807e9ee8795f94f015bca25b4", "section_path": ["服务器应用程序", "pg_ctl"], "commit_groups": [["f13ea95f9"]], "identity_text": "Make pg_ctl start --wait detect server-ready by watching postmaster.pid, not by attempting connections (Tom Lane) The postmaster has been changed to report its ready-for-connections status in postmaster.pid, and pg_ctl now examines that file to detect whether startup is complete. This is more efficient and reliable than the old method, and it eliminates postmaster log entries about rejected connection attempts during startup.", "commit_aliases": ["f13ea95f9"], "source_commits": ["f13ea95f9"], "source_entry_id": "10.0/changes/126", "db_id": "31d405f19fc0a6e4e8ac77ca215267d7", "patch_ids": ["90f3cc7fed3fcbfce7e1105239457b41"], "statement_hash": "476537e33575bd99aaef7f235abecb62ee0f13d2863ed422f6b64ace5dc74296", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-da67889b793c3068", "cves": [], "html": "<p>缩短 <span>pg_ctl</span> 等待 postmaster 启动或停止时的响应时间（Tom Lane）</p>\n<p>现在，<span>pg_ctl</span> 在等待 postmaster 状态变化时每秒探测十次，而不是每秒一次。</p>", "text": "缩短 pg_ctl 等待 postmaster 启动或停止时的响应时间（Tom Lane） 现在，pg_ctl 在等待 postmaster 状态变化时每秒探测十次，而不是每秒一次。", "title": "缩短 pg_ctl 等待 postmaster 启动或停止时的响应时间", "commits": [], "section": "服务器应用程序 / pg_ctl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.5", "source_hash": "4a452c1a2150dc8bda52a718a910c0595218b2b5c1e5211cfbb0e1bfd208b7ff", "section_path": ["服务器应用程序", "pg_ctl"], "commit_groups": [["c61559ec3"]], "identity_text": "Reduce pg_ctl's reaction time when waiting for postmaster start/stop (Tom Lane) pg_ctl now probes ten times per second when waiting for a postmaster state change, rather than once per second.", "commit_aliases": ["c61559ec3"], "source_commits": ["c61559ec3"], "source_entry_id": "10.0/changes/127", "db_id": "38c8aa92014a6d8ebb19c6668d68f4bf", "patch_ids": ["bb1c248c14114377a8c6225ae9b51c24"], "statement_hash": "f6ef2435472e7cdf8a55aae893b27ce65726ebf22b15551a55e0b5cc35958e2f", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-09812643f7c7fb02", "cves": [], "html": "<p>确保 <span>pg_ctl</span> 在所等待的操作未于超时期限内完成时，以非零状态退出（Peter Eisentraut）</p>\n<p>在这种情况下，<code>start</code> 和 <code>promote</code> 操作现在返回退出状态 1，而非 0。<code>stop</code> 操作一直如此。</p>", "text": "确保 pg_ctl 在所等待的操作未于超时期限内完成时，以非零状态退出（Peter Eisentraut） 在这种情况下，start 和 promote 操作现在返回退出状态 1，而非 0。stop 操作一直如此。", "title": "确保 pg_ctl 在所等待的操作未于超时期限内完成时，以非零状态退出", "commits": [], "section": "服务器应用程序 / pg_ctl", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.12.5", "source_hash": "48b5766f91d6abfbbc2cef4dd54f0b0c8bf0a8549647a930befcb78abc78d805", "section_path": ["服务器应用程序", "pg_ctl"], "commit_groups": [["1bac5f552"]], "identity_text": "Ensure that pg_ctl exits with nonzero status if an operation being waited for does not complete within the timeout (Peter Eisentraut) The start and promote operations now return exit status 1, not 0, in such cases. The stop operation has always done that.", "commit_aliases": ["1bac5f552"], "source_commits": ["1bac5f552"], "source_entry_id": "10.0/changes/128", "db_id": "1f9ee6688c654ad125913a2881ba9ce8", "patch_ids": ["f7e7b1cbe5d7e292853e364c1b652594"], "statement_hash": "b68d99b4f832ab97d53bdff714a1bb18e487ce624f56edffde3fb9f471a12f41", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-d3cca91a86a8a019", "cves": [], "html": "<p>改用由两部分组成的发行版版本号（Peter Eisentraut，Tom Lane）</p>\n<p>发行版版本号现在由两部分组成（如 <code>10.1</code>），而非三部分（如 <code>9.6.3</code>）。大版本现在只增加第一个数字，小版本只增加第二个数字。发布分支将用单个数字表示（如 <code>10</code>，而非 <code>9.6</code>）。此变更旨在减少用户对 <span>PostgreSQL</span> 大版本和小版本含义的困惑。</p>", "text": "改用由两部分组成的发行版版本号（Peter Eisentraut，Tom Lane） 发行版版本号现在由两部分组成（如 10.1），而非三部分（如 9.6.3）。大版本现在只增加第一个数字，小版本只增加第二个数字。发布分支将用单个数字表示（如 10，而非 9.6）。此变更旨在减少用户对 PostgreSQL 大版本和小版本含义的困惑。", "title": "改用由两部分组成的发行版版本号", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "8d7634ae0b1f3f2275294fc7e0afd09010b45a8530fa996c47ea64a4578372ca", "section_path": ["源代码"], "commit_groups": [["ca9112a42"]], "identity_text": "Change to two-part release version numbering (Peter Eisentraut, Tom Lane) Release numbers will now have two parts (e.g., 10.1) rather than three (e.g., 9.6.3). Major versions will now increase just the first number, and minor releases will increase just the second number. Release branches will be referred to by single numbers (e.g., 10 rather than 9.6). This change is intended to reduce user confusion about what is a major or minor release of PostgreSQL.", "commit_aliases": ["ca9112a42"], "source_commits": ["ca9112a42"], "source_entry_id": "10.0/changes/129", "db_id": "4c59d0f8a99da311064a24f27f7119f5", "patch_ids": ["d85f2dd4556cd9db20d7961d8c42eeb7"], "statement_hash": "d616cfccfed0360c7881386a86c2b66ec34c766c8008e5259a6e96e85266e361", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-41d6908946396e6b", "cves": [], "html": "<p>改进 <span>pgindent</span> 的行为（Piotr Stefaniak，Tom Lane）</p>\n<p>我们已切换到新的 <span>pg_bsd_indent</span> 版本，其中纳入了 FreeBSD 项目近期的改进。这修复了许多导致 C 代码格式异常的小缺陷。最明显的是，括号内的行（例如多行函数调用）现在统一缩进到与左括号对齐，即使这样会使代码超出右边界。</p>", "text": "改进 pgindent 的行为（Piotr Stefaniak，Tom Lane） 我们已切换到新的 pg_bsd_indent 版本，其中纳入了 FreeBSD 项目近期的改进。这修复了许多导致 C 代码格式异常的小缺陷。最明显的是，括号内的行（例如多行函数调用）现在统一缩进到与左括号对齐，即使这样会使代码超出右边界。", "title": "改进 pgindent 的行为", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "40627313a88d5ed5b95f09a082467c9ca0fee81ab33df6729ff6f45ecc4101bb", "section_path": ["源代码"], "commit_groups": [["382ceffdf"], ["81f056c72"], ["8ff6d4ec7"], ["c7b8998eb"], ["cea258b63"], ["e3860ffa4"]], "identity_text": "Improve behavior of pgindent (Piotr Stefaniak, Tom Lane) We have switched to a new version of pg_bsd_indent based on recent improvements made by the FreeBSD project. This fixes numerous small bugs that led to odd C code formatting decisions. Most notably, lines within parentheses (such as in a multi-line function call) are now uniformly indented to match the opening paren, even if that would result in code extending past the right margin.", "commit_aliases": ["382ceffdf", "81f056c72", "8ff6d4ec7", "c7b8998eb", "cea258b63", "e3860ffa4"], "source_commits": ["382ceffdf", "81f056c72", "8ff6d4ec7", "c7b8998eb", "cea258b63", "e3860ffa4"], "source_entry_id": "10.0/changes/130", "db_id": "10fe19946356161a27bd03dc15ffd7e9", "patch_ids": ["2100606ce8fbac772f0eafeb188fde5b", "7950068523801c6e32ac24e8df4bc369", "9410b07d903a833d0e1f168555108266", "a8b7b250a6cb7515596de23ce1052812", "aae3693b5aa518b67b8d4c393607c3b5", "b5fe90ec88e01f9ca9c6b60cc558d7ab"], "statement_hash": "bc18a95d0763bb980b3202488b0040051aec1f3d2a94deccc75d4d2bda69423a", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-f25c70339de5cd7e", "cves": [], "html": "<p>允许选择使用 <a href=\"/docs/10/install-procedure.html#CONFIGURE\" title=\"配置\"><acronym>ICU</acronym></a> 库提供排序规则支持（Peter Eisentraut）</p>\n<p><acronym>ICU</acronym> 库具有版本信息，可以检测版本之间的排序规则变更。通过 configure 选项 <code>--with-icu</code> 可启用此功能。默认仍使用操作系统的原生排序规则库。</p>", "text": "允许选择使用 ICU 库提供排序规则支持（Peter Eisentraut） ICU 库具有版本信息，可以检测版本之间的排序规则变更。通过 configure 选项 --with-icu 可启用此功能。默认仍使用操作系统的原生排序规则库。", "title": "允许选择使用 ICU 库提供排序规则支持", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "d3ff775176a8ec20f723e73ee0514784246cd6e0594780456fdda9daf931e36b", "section_path": ["源代码"], "commit_groups": [["eccfef81e"]], "identity_text": "Allow the ICU library to optionally be used for collation support (Peter Eisentraut) The ICU library has versioning that allows detection of collation changes between versions. It is enabled via configure option --with-icu. The default still uses the operating system's native collation library.", "commit_aliases": ["eccfef81e"], "source_commits": ["eccfef81e"], "source_entry_id": "10.0/changes/131", "db_id": "2dd76aeffa4b9fe62a2a14955035ccdf", "patch_ids": ["88c3364cdac7d9b39b878cbe3bbb972a"], "statement_hash": "a1d521e41e24d3e76c62ef7f580fb5a23c9d094ff9f3e38d4ba62aeae506f58b", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-d56aa6456920f4a4", "cves": [], "html": "<p>在 <span>Windows</span> 上，自动将所有 <a href=\"/docs/10/xfunc-c.html\" title=\"37.9. C 语言函数\"><code>PG_FUNCTION_INFO_V1</code></a> 函数标记为 <code>DLLEXPORT</code>（Laurenz Albe）</p>\n<p>如果第三方代码使用 <code>extern</code> 函数声明，也应在这些声明中添加 <code>DLLEXPORT</code> 标记。</p>", "text": "在 Windows 上，自动将所有 PG_FUNCTION_INFO_V1 函数标记为 DLLEXPORT（Laurenz Albe） 如果第三方代码使用 extern 函数声明，也应在这些声明中添加 DLLEXPORT 标记。", "title": "在 Windows 上，自动将所有 PG_FUNCTION_INFO_V1 函数标记为 DLLEXPORT", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "b0d04ecf5b2f3f08d0ac25a28dc30b5c56f0ec10fda4e027ae9c2b2276d7b5c9", "section_path": ["源代码"], "commit_groups": [["c8ead2a39"]], "identity_text": "Automatically mark all PG_FUNCTION_INFO_V1 functions as DLLEXPORT-ed on Windows (Laurenz Albe) If third-party code is using extern function declarations, they should also add DLLEXPORT markers to those declarations.", "commit_aliases": ["c8ead2a39"], "source_commits": ["c8ead2a39"], "source_entry_id": "10.0/changes/132", "db_id": "795fd888a3c79952d3c1f9bae8fd64e0", "patch_ids": ["73f3576624d2a4523db3a25e43604426"], "statement_hash": "85edcf68bea1e6bfdd78c83a39724778e5e934b6d7d63329b24a8ba49e5c94e9", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-6958c322acd0b8d8", "cves": [], "html": "<p>移除不再需要的 <acronym>SPI</acronym> 函数 <code>SPI_push()</code>、<code>SPI_pop()</code>、<code>SPI_push_conditional()</code>、<code>SPI_pop_conditional()</code> 和 <code>SPI_restore_connection()</code>（Tom Lane）</p>\n<p>它们的功能现在会自动执行。目前提供了这些名称的空操作宏，使外部模块不必立即更新，但最终应移除这些调用。</p>\n<p>此变更的一个附带影响是，<code>SPI_palloc()</code> 及相关函数现在要求存在活动的 SPI 连接；没有连接时，它们不会退化为简单的 <code>palloc()</code> 调用。以前的行为用途不大，还存在意外内存泄漏的风险。</p>", "text": "移除不再需要的 SPI 函数 SPI_push()、SPI_pop()、SPI_push_conditional()、SPI_pop_conditional() 和 SPI_restore_connection()（Tom Lane） 它们的功能现在会自动执行。目前提供了这些名称的空操作宏，使外部模块不必立即更新，但最终应移除这些调用。 此变更的一个附带影响是，SPI_palloc() 及相关函数现在要求存在活动的 SPI 连接；没有连接时，它们不会退化为简单的 palloc() 调用。以前的行为用途不大，还存在意外内存泄漏的风险。", "title": "移除不再需要的 SPI 函数 SPI_push()、SPI_pop()、SPI_push_conditional()、SPI_pop_conditional() 和 SPI_restore_connection()", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "af1feb468d65e43eaae74430689b2bd95c6e7873b8bd22fa1fa5b051cde309d6", "section_path": ["源代码"], "commit_groups": [["1833f1a1c"]], "identity_text": "Remove SPI functions SPI_push(), SPI_pop(), SPI_push_conditional(), SPI_pop_conditional(), and SPI_restore_connection() as unnecessary (Tom Lane) Their functionality now happens automatically. There are now no-op macros by these names so that external modules don't need to be updated immediately, but eventually such calls should be removed. A side effect of this change is that SPI_palloc() and allied functions now require an active SPI connection; they do not degenerate to simple palloc() if there is none. That previous behavior was not very useful and posed risks of unexpected memory leaks.", "commit_aliases": ["1833f1a1c"], "source_commits": ["1833f1a1c"], "source_entry_id": "10.0/changes/133", "db_id": "68b78bbf329a0ee1c7fe8f3cf5b786cd", "patch_ids": ["55ea473e088c23669e69cd381a34fddd"], "statement_hash": "d400beae7b0ce068dd086ee786c4b966e7136924c1422dcaf2a8af409e9adfe8", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-d0c412a4780827f4", "cves": [], "html": "<p>允许动态分配共享内存（Thomas Munro，Robert Haas）</p>", "text": "允许动态分配共享内存（Thomas Munro，Robert Haas）", "title": "允许动态分配共享内存", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "37292afe6ed3e499a9b7a659c505aeb66d3ab4b31d387204861e1b15a82bfcde", "section_path": ["源代码"], "commit_groups": [["13df76a53"], ["13e14a78e"], ["e13029a5c"]], "identity_text": "Allow shared memory to be dynamically allocated (Thomas Munro, Robert Haas)", "commit_aliases": ["13df76a53", "13e14a78e", "e13029a5c"], "source_commits": ["13df76a53", "13e14a78e", "e13029a5c"], "source_entry_id": "10.0/changes/134", "db_id": "f1093432d52d470a69d6c0184595db8e", "patch_ids": ["2867c74a4fa5d04d48f0c4eeb23ad648", "4af035a182d046ee68ba3a54f58ee482", "a1538b1c7a0355a25388cd16011c7cc0"], "statement_hash": "c04f5f366d884f0dea17f559a7bfdda940d9e0e39dd0ed76015977eb059734cc", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-eca385fb2e1f626a", "cves": [], "html": "<p>增加类似 slab 的内存分配器，以高效分配固定大小的内存（Tomas Vondra）</p>", "text": "增加类似 slab 的内存分配器，以高效分配固定大小的内存（Tomas Vondra）", "title": "增加类似 slab 的内存分配器，以高效分配固定大小的内存", "commits": [], "section": "源代码", "category": "bugfix", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "bb0499f8ae416fb592ce3fdf92dcd2eab2ddc67cdc0937d8be326a6af9c5a574", "section_path": ["源代码"], "commit_groups": [["58b25e981"]], "identity_text": "Add slab-like memory allocator for efficient fixed-size allocations (Tomas Vondra)", "commit_aliases": ["58b25e981"], "source_commits": ["58b25e981"], "source_entry_id": "10.0/changes/135", "db_id": "561b204bb681ade504e9679abb0868c7", "patch_ids": ["bcdbd738bf1aa07396379a70dd520cf1"], "statement_hash": "0cb8cdd20f35334707b1e570af3cf5e3ed21e2d27ee5018c3763f85c22c27fd0", "relations": [], "version": "10.0", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-afcdfc91161dc18a", "cves": [], "html": "<p>在 <span>Linux</span> 和 <span>FreeBSD</span> 上使用 <acronym>POSIX</acronym> 信号量代替 SysV 信号量（Tom Lane）</p>\n<p>这避免了平台特定的 SysV 信号量使用限制。</p>", "text": "在 Linux 和 FreeBSD 上使用 POSIX 信号量代替 SysV 信号量（Tom Lane） 这避免了平台特定的 SysV 信号量使用限制。", "title": "在 Linux 和 FreeBSD 上使用 POSIX 信号量代替 SysV 信号量", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "e34c8e0a8a69ccc49e2e60df049b7ed66bb220f3406109efc90a638a0628c3d8", "section_path": ["源代码"], "commit_groups": [["ecb0d20a9"]], "identity_text": "Use POSIX semaphores rather than SysV semaphores on Linux and FreeBSD (Tom Lane) This avoids platform-specific limits on SysV semaphore usage.", "commit_aliases": ["ecb0d20a9"], "source_commits": ["ecb0d20a9"], "source_entry_id": "10.0/changes/136", "db_id": "67fd4c492be6e737138108d89e9cba10", "patch_ids": ["084bfaee3b45fabfcf3fb0abaf6cb0e4"], "statement_hash": "b53df938ff467af421c9300e5da3d647a23a201e7cc1ac9dd83c40715297ec7d", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-8bc0d17e757cf12d", "cves": [], "html": "<p>改进对 64 位原子操作的支持（Andres Freund）</p>", "text": "改进对 64 位原子操作的支持（Andres Freund）", "title": "改进对 64 位原子操作的支持", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "3240ae2ea8533db8bf6f77b07edb4b747cb5bbb51342da7a9ae343b6f9f7e9d2", "section_path": ["源代码"], "commit_groups": [["e8fdbd58f"]], "identity_text": "Improve support for 64-bit atomics (Andres Freund)", "commit_aliases": ["e8fdbd58f"], "source_commits": ["e8fdbd58f"], "source_entry_id": "10.0/changes/137", "db_id": "7c1b4cb45ea942a84122ba9550fbe64d", "patch_ids": ["1548b9df0487121e828e40bbda43a7df"], "statement_hash": "aaca75bf86bdf362e87feb59eaade633c1d091a8237a78b1a4c32da1fbece78c", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-6721a82af375443c", "cves": [], "html": "<p>在 <acronym>ARM64</acronym> 上启用 64 位原子操作（Roman Shaposhnik）</p>", "text": "在 ARM64 上启用 64 位原子操作（Roman Shaposhnik）", "title": "在 ARM64 上启用 64 位原子操作", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "d82ef6613f9e6ef56696cc891f89d1b92334ced12da17e7a27649aec0def32c3", "section_path": ["源代码"], "commit_groups": [["f8f1430ae"]], "identity_text": "Enable 64-bit atomic operations on ARM64 (Roman Shaposhnik)", "commit_aliases": ["f8f1430ae"], "source_commits": ["f8f1430ae"], "source_entry_id": "10.0/changes/138", "db_id": "39abd24526ba3d7fd3bbeffff1f3a35a", "patch_ids": ["87daa13e597655a77010780d812d1fb0"], "statement_hash": "b010b645b43e9cbb3a35ee98baa37ccfefb67aa72e3b76c12a1ae36b1bbb2c9c", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-fa6e5f69b1890cdb", "cves": [], "html": "<p>如果 <code>clock_gettime()</code> 可用，则改用它进行持续时间测量（Tom Lane）</p>\n<p>如果 <code>clock_gettime()</code> 不可用，仍使用 <code>gettimeofday()</code>。</p>", "text": "如果 clock_gettime() 可用，则改用它进行持续时间测量（Tom Lane） 如果 clock_gettime() 不可用，仍使用 gettimeofday()。", "title": "如果 clock_gettime() 可用，则改用它进行持续时间测量", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "b393d3945330d917ad6744194577653342188050fe2bd3901e094f8aa8d156c7", "section_path": ["源代码"], "commit_groups": [["1d63f7d2d"]], "identity_text": "Switch to using clock_gettime(), if available, for duration measurements (Tom Lane) gettimeofday() is still used if clock_gettime() is not available.", "commit_aliases": ["1d63f7d2d"], "source_commits": ["1d63f7d2d"], "source_entry_id": "10.0/changes/139", "db_id": "410013829b9cdc23e19dff30f8c169f8", "patch_ids": ["15791fb4aec6ec4dd98b0b06aae140be"], "statement_hash": "a054998d4ff684de07e29636bc9819eaf10379eecd4b72c4bda29f1bd1789c0b", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1640e4d12b084b0b", "cves": [], "html": "<p>增加更健壮的随机数生成器，用于要求密码学安全性的场景（Magnus Hagander，Michael Paquier，Heikki Linnakangas）</p>\n<p>如果找不到强随机数生成器，<a href=\"/docs/10/install-procedure.html#CONFIGURE\" title=\"配置\">configure</a> 会失败，除非使用 <code>--disable-strong-random</code> 选项。但是，使用此选项时，需要强随机数生成器的<a href=\"/docs/10/pgcrypto.html\" title=\"F.26. pgcrypto\"><span>pgcrypto</span></a>函数会被禁用。</p>", "text": "增加更健壮的随机数生成器，用于要求密码学安全性的场景（Magnus Hagander，Michael Paquier，Heikki Linnakangas） 如果找不到强随机数生成器，configure 会失败，除非使用 --disable-strong-random 选项。但是，使用此选项时，需要强随机数生成器的pgcrypto函数会被禁用。", "title": "增加更健壮的随机数生成器，用于要求密码学安全性的场景", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "d5e71fa7ba6936aa8bdcf996dd5be513a0637a46f395fe0769691d7b4f40dff9", "section_path": ["源代码"], "commit_groups": [["bf723a274"], ["fe0a0b599"]], "identity_text": "Add more robust random number generators to be used for cryptographically secure uses (Magnus Hagander, Michael Paquier, Heikki Linnakangas) If no strong random number generator can be found, configure will fail unless the --disable-strong-random option is used. However, with this option, pgcrypto functions requiring a strong random number generator will be disabled.", "commit_aliases": ["bf723a274", "fe0a0b599"], "source_commits": ["bf723a274", "fe0a0b599"], "source_entry_id": "10.0/changes/140", "db_id": "1c92f1cae86566643291bc0f4a1834e1", "patch_ids": ["4e9b2d3005a4fcca05e38c1a3bcd0e19", "8a18a0c67fc324e36769a97374bc6785"], "statement_hash": "472153b9779fd2e20ba7c4f1b1fded4c24e20c0ce664afdc11129889d96b6e01", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-0bc4bdfa08d9c897", "cves": [], "html": "<p>允许 <code>WaitLatchOrSocket()</code> 在 Windows 上等待套接字连接（Andres Freund）</p>", "text": "允许 WaitLatchOrSocket() 在 Windows 上等待套接字连接（Andres Freund）", "title": "允许 WaitLatchOrSocket() 在 Windows 上等待套接字连接", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "e967664870a8e02db365a66b24eed22e9217ca39d78bb967c9ff7a3552882552", "section_path": ["源代码"], "commit_groups": [["d7ab908fb"]], "identity_text": "Allow WaitLatchOrSocket() to wait for socket connection on Windows (Andres Freund)", "commit_aliases": ["d7ab908fb"], "source_commits": ["d7ab908fb"], "source_entry_id": "10.0/changes/141", "db_id": "eff62035a12c1fc4955a7dfd4ed4dd03", "patch_ids": ["bd7c0a25ccf2210e9200ba8a8ac369b9"], "statement_hash": "7fede98170b540a2dc411d35f1204a9282b324f9d10faefbeb2abe4cecc2b46c", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-c961fb31bca283d4", "cves": [], "html": "<p><code>tupconvert.c</code> 中的函数不再仅为嵌入不同的复合类型 OID 而转换元组（Ashutosh Bapat，Tom Lane）</p>\n<p>大多数调用者并不关心复合类型 OID；但如果结果元组要作为复合 Datum 使用，就应采取措施确保其中插入了正确的 OID。</p>", "text": "tupconvert.c 中的函数不再仅为嵌入不同的复合类型 OID 而转换元组（Ashutosh Bapat，Tom Lane） 大多数调用者并不关心复合类型 OID；但如果结果元组要作为复合 Datum 使用，就应采取措施确保其中插入了正确的 OID。", "title": "tupconvert.c 中的函数不再仅为嵌入不同的复合类型 OID 而转换元组", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "46851bae694966ab8c64b9854def6e46d6319c192c0289347da566dd3fb55401", "section_path": ["源代码"], "commit_groups": [["3f902354b"]], "identity_text": "tupconvert.c functions no longer convert tuples just to embed a different composite-type OID in them (Ashutosh Bapat, Tom Lane) The majority of callers don't care about the composite-type OID; but if the result tuple is to be used as a composite Datum, steps should be taken to make sure the correct OID is inserted in it.", "commit_aliases": ["3f902354b"], "source_commits": ["3f902354b"], "source_entry_id": "10.0/changes/142", "db_id": "c9ee644935bd1464b6c4973c22fe5c6c", "patch_ids": ["4c11e8b1f650a039dbd1c16000158818"], "statement_hash": "d3a71f777e28aa98349a8349f7d2d901289e5bffaa30421cbba4ee807cb00286", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-6285e757542ca0ea", "cves": [], "html": "<p>移除 <span>SCO</span> 和 <span>Unixware</span> 移植版本（Tom Lane）</p>", "text": "移除 SCO 和 Unixware 移植版本（Tom Lane）", "title": "移除 SCO 和 Unixware 移植版本", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "de7f509d9d384822b70664639559d361836281d9296afeeaefd255285cbf6ce6", "section_path": ["源代码"], "commit_groups": [["2b860f52e"]], "identity_text": "Remove SCO and Unixware ports (Tom Lane)", "commit_aliases": ["2b860f52e"], "source_commits": ["2b860f52e"], "source_entry_id": "10.0/changes/143", "db_id": "8ad0076f205b24c51796e5c92c35e05d", "patch_ids": ["49a683eac2eba8fd00ddd7523db71532"], "statement_hash": "5e31a79465f3cfddd710fbba88532425f4606ab9bfd9157806eea0f7529b5ddb", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1bc8bc664555eff6", "cves": [], "html": "<p>全面改进文档<a href=\"/docs/10/docguide-toolsets.html\" title=\"J.2. 工具集\">构建过程</a>（Alexander Lakhin）</p>", "text": "全面改进文档构建过程（Alexander Lakhin）", "title": "全面改进文档构建过程", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "57725a71ef861d0e76430bce113e09cbd3d9fdb516997a83969599146d0399e6", "section_path": ["源代码"], "commit_groups": [["0e4cc1fc5"], ["e8306745e"]], "identity_text": "Overhaul documentation build process (Alexander Lakhin)", "commit_aliases": ["0e4cc1fc5", "e8306745e"], "source_commits": ["0e4cc1fc5", "e8306745e"], "source_entry_id": "10.0/changes/144", "db_id": "bb11ece57c7964a6737dbe2822911d61", "patch_ids": ["57208305002469e2c54b3577a205dd32", "92bf289c2140166aa84092becb21b71a"], "statement_hash": "d1353f9fc3a27b80f038964572801d35ec41740dca2d9b1b861193a97cb16064", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-57b3c48d61005c65", "cves": [], "html": "<p>使用 <acronym>XSLT</acronym> 构建 <span>PostgreSQL</span> 文档（Peter Eisentraut）</p>\n<p>以前使用的是 <span>Jade</span>、<acronym>DSSSL</acronym> 和 <span>JadeTex</span>。</p>", "text": "使用 XSLT 构建 PostgreSQL 文档（Peter Eisentraut） 以前使用的是 Jade、DSSSL 和 JadeTex。", "title": "使用 XSLT 构建 PostgreSQL 文档", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "9b3923cb02ce04cdbdbef8238fefd79a2fa4b5642dafc6e83d8ea82bbc1382de", "section_path": ["源代码"], "commit_groups": [["510074f9f"]], "identity_text": "Use XSLT to build the PostgreSQL documentation (Peter Eisentraut) Previously Jade, DSSSL, and JadeTex were used.", "commit_aliases": ["510074f9f"], "source_commits": ["510074f9f"], "source_entry_id": "10.0/changes/145", "db_id": "cfdb2a0ed737fbc3af05dce9249de39c", "patch_ids": ["d059a2cbf581790dfe6072df82c3a8ce"], "statement_hash": "4301cc4736c1b61c1ef6718a14cc95a976041903c30e3cf4cec7029d1407f2d0", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-6f871e67a0d30c77", "cves": [], "html": "<p>默认使用 <acronym>XSLT</acronym> 样式表构建 <acronym>HTML</acronym> 文档（Peter Eisentraut）</p>", "text": "默认使用 XSLT 样式表构建 HTML 文档（Peter Eisentraut）", "title": "默认使用 XSLT 样式表构建 HTML 文档", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.13", "source_hash": "5db4e6d685bd4098231626900fcbd6bc442857be18700a7638ddd7e810230ca5", "section_path": ["源代码"], "commit_groups": [["e36ddab11"]], "identity_text": "Build HTML documentation using XSLT stylesheets by default (Peter Eisentraut)", "commit_aliases": ["e36ddab11"], "source_commits": ["e36ddab11"], "source_entry_id": "10.0/changes/146", "db_id": "c48548e792e12c508f7c69e1151b5050", "patch_ids": ["e05797f86eeb201a5debde062b28fd66"], "statement_hash": "365046a831659dfc8ac03174346fa56a10499a03666e57bda12bdbd703d19176", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-eb8516574b792681", "cves": [], "html": "<p>允许<a href=\"/docs/10/file-fdw.html\" title=\"F.15. file_fdw\"><span>file_fdw</span></a>读取程序输出以及文件（Corey Huinker，Adam Gomaa）</p>", "text": "允许file_fdw读取程序输出以及文件（Corey Huinker，Adam Gomaa）", "title": "允许file_fdw读取程序输出以及文件", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "1905cd86ce88ef40eae0a2661e191ea570c4d2791bfb9b67ce2041a6a17f4e7a", "section_path": ["附加模块"], "commit_groups": [["8e91e12bc"]], "identity_text": "Allow file_fdw to read from program output as well as files (Corey Huinker, Adam Gomaa)", "commit_aliases": ["8e91e12bc"], "source_commits": ["8e91e12bc"], "source_entry_id": "10.0/changes/147", "db_id": "15d18069ea633b397d4df770f4532e00", "patch_ids": ["52e44c8bcf6c6bc442e93a3cf4d716d3"], "statement_hash": "bd6502caea4c6328e14909aa97158a944b7e4b2c5f0e01f60fced6ded4e38c8e", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-8cc755b708bb47aa", "cves": [], "html": "<p>在<a href=\"/docs/10/postgres-fdw.html\" title=\"F.34. postgres_fdw\"><span>postgres_fdw</span></a>中，尽可能将聚合函数下推到远程服务器（Jeevan Chalke，Ashutosh Bapat）</p>\n<p>这减少了必须从远程服务器传输的数据量，并将聚合计算从发出请求的服务器转移出去。</p>", "text": "在postgres_fdw中，尽可能将聚合函数下推到远程服务器（Jeevan Chalke，Ashutosh Bapat） 这减少了必须从远程服务器传输的数据量，并将聚合计算从发出请求的服务器转移出去。", "title": "在postgres_fdw中，尽可能将聚合函数下推到远程服务器", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "1624bfd6730ef0844987ce6ea96233017480c47dc58d8548848736334f3c865f", "section_path": ["附加模块"], "commit_groups": [["7012b132d"]], "identity_text": "In postgres_fdw, push aggregate functions to the remote server, when possible (Jeevan Chalke, Ashutosh Bapat) This reduces the amount of data that must be passed from the remote server, and offloads aggregate computation from the requesting server.", "commit_aliases": ["7012b132d"], "source_commits": ["7012b132d"], "source_entry_id": "10.0/changes/148", "db_id": "c7445fdf368503e63d5735c24970e6ca", "patch_ids": ["78d1e323d4a11dcac96aa3de56fdc16b"], "statement_hash": "f5c8125e67109d418b0abfe977124bafffb121be4691f9e89e5b7dd4c4d99734", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-28c602f6f7edf4e6", "cves": [], "html": "<p>在 <span>postgres_fdw</span> 中，在更多情况下将连接下推到远程服务器（David Rowley，Ashutosh Bapat，Etsuro Fujita）</p>", "text": "在 postgres_fdw 中，在更多情况下将连接下推到远程服务器（David Rowley，Ashutosh Bapat，Etsuro Fujita）", "title": "在 postgres_fdw 中，在更多情况下将连接下推到远程服务器", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "7dab5c745436fb0745c9b880536efb10a2a3283fb07fe7bd25c5dbb7cf7685d3", "section_path": ["附加模块"], "commit_groups": [["332bec1e6", "86e640a69"], ["b30fb56b0"]], "identity_text": "In postgres_fdw, push joins to the remote server in more cases (David Rowley, Ashutosh Bapat, Etsuro Fujita)", "commit_aliases": ["332bec1e6", "86e640a69", "b30fb56b0"], "source_commits": ["332bec1e6", "b30fb56b0"], "source_entry_id": "10.0/changes/149", "db_id": "1d7034dc922b3a8fd90e30724c91151d", "patch_ids": ["23a98917619479129e61580372563863", "5fcdc899bd07d93e4195463e31689714"], "statement_hash": "ffcae5e7f6503e4cfb49bcb1add8a4fb3a3605b362a5b8eff859479926a04340", "relations": [{"rule": 2, "type": "related", "target": "a43973256957179239a0c08258d4eebd", "evidence": {"same_day": false, "patch_ids": ["23a98917619479129e61580372563863"]}}], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": [{"db_id": "a43973256957179239a0c08258d4eebd", "kind": "related", "version": "9.6.3", "label": "9.6.3", "title": "在 contrib/postgres_fdw 中，允许包含可下推的扩展提供函数的连接条件下推到远程服务器", "evidence": {"same_day": false, "patch_ids": ["23a98917619479129e61580372563863"]}, "url": "/docs/compare/?release=9.6.3#9.6.3-03280a5b46361455", "source_url": "/docs/release/9.6.3/#id-1.11.6.26.5"}]}, {"id": "10.0-657aae9a68aab6a1", "cves": [], "html": "<p>正确支持 <span>postgres_fdw</span> 表中的 <code>OID</code> 列（Etsuro Fujita）</p>\n<p>以前，<code>OID</code> 列始终返回零。</p>", "text": "正确支持 postgres_fdw 表中的 OID 列（Etsuro Fujita） 以前，OID 列始终返回零。", "title": "正确支持 postgres_fdw 表中的 OID 列", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "b1cba5690fadc843ca18affa95d586147d44f10998f1d036b6cde082dc181394", "section_path": ["附加模块"], "commit_groups": [["ae025a159"]], "identity_text": "Properly support OID columns in postgres_fdw tables (Etsuro Fujita) Previously OID columns always returned zeros.", "commit_aliases": ["ae025a159"], "source_commits": ["ae025a159"], "source_entry_id": "10.0/changes/150", "db_id": "d4e2bf78986d1b356897b75fb8a7371b", "patch_ids": ["d65f58beaade80aff704a4c71dcbe649"], "statement_hash": "68fb44b180b2b3cb6871ae569626c33c54dfe0ae818a039d5ec8793c2542af45", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-5c615a8e542b3a6f", "cves": [], "html": "<p>允许<a href=\"/docs/10/btree-gist.html\" title=\"F.7. btree_gist\"><span>btree_gist</span></a>和<a href=\"/docs/10/btree-gin.html\" title=\"F.6. btree_gin\"><span>btree_gin</span></a>为枚举类型建立索引（Andrew Dunstan）</p>\n<p>这允许在排他约束中使用枚举。</p>", "text": "允许btree_gist和btree_gin为枚举类型建立索引（Andrew Dunstan） 这允许在排他约束中使用枚举。", "title": "允许btree_gist和btree_gin为枚举类型建立索引", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "531faee6748551214152051a2923a84389ea84e88de15ae1c498245b0e0e9495", "section_path": ["附加模块"], "commit_groups": [["f7946a92b"]], "identity_text": "Allow btree_gist and btree_gin to index enum types (Andrew Dunstan) This allows enums to be used in exclusion constraints.", "commit_aliases": ["f7946a92b"], "source_commits": ["f7946a92b"], "source_entry_id": "10.0/changes/151", "db_id": "a89b74fcdf31b1e59c99ea89ccd55c9b", "patch_ids": ["cd6b6d01da41d48612f8236424ce72f8"], "statement_hash": "d95978f3bdc857784360087f3c6960ff46fb3fd08caab20ae4dcf4e072f58d5a", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-f60089772ab8ecc3", "cves": [], "html": "<p>为 <span>btree_gist</span> 增加对 <code>UUID</code> 数据类型的索引支持（Paul Jungwirth）</p>", "text": "为 btree_gist 增加对 UUID 数据类型的索引支持（Paul Jungwirth）", "title": "为 btree_gist 增加对 UUID 数据类型的索引支持", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "f0b29d24f3f52d6233f42817b5b98bc76c7528a751f5fc44fdd01fb44524c98c", "section_path": ["附加模块"], "commit_groups": [["11da83a0e"]], "identity_text": "Add indexing support to btree_gist for the UUID data type (Paul Jungwirth)", "commit_aliases": ["11da83a0e"], "source_commits": ["11da83a0e"], "source_entry_id": "10.0/changes/152", "db_id": "52666d71271940a1fd5332685440fea7", "patch_ids": ["6f7508703208439b5b8e118fcf49e5f4"], "statement_hash": "d41c55993dd727a953150d1dff121c1efd60235f6796dd2ef010f04d0683b654", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-7aee69c79a86ad82", "cves": [], "html": "<p>增加<a href=\"/docs/10/amcheck.html\" title=\"F.2. amcheck\"><span>amcheck</span></a>，用于检查 B-树索引的有效性（Peter Geoghegan）</p>", "text": "增加amcheck，用于检查 B-树索引的有效性（Peter Geoghegan）", "title": "增加amcheck，用于检查 B-树索引的有效性", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "7d922f8e1e290d16f22b1f297775b957d56e755ac219ad6891ebf17f16470755", "section_path": ["附加模块"], "commit_groups": [["3717dc149"]], "identity_text": "Add amcheck which can check the validity of B-tree indexes (Peter Geoghegan)", "commit_aliases": ["3717dc149"], "source_commits": ["3717dc149"], "source_entry_id": "10.0/changes/153", "db_id": "bd7217b53f67466a2680eb0f548b96ee", "patch_ids": ["754b9fc6d5a9b6c809ac06d84dd4da8a"], "statement_hash": "97989afc640ed19f4ee16a16f5f04ca86eddf2a7d75ccfc81d35aaf3cbef1300", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1e70b13df4ed23a0", "cves": [], "html": "<p>在<a href=\"/docs/10/pgstatstatements.html\" title=\"F.30. pg_stat_statements\"><span>pg_stat_statements</span></a>中，将被忽略的常量显示为 <code>$N</code>，而非 <code>?</code>（Lukas Fittl）</p>", "text": "在pg_stat_statements中，将被忽略的常量显示为 $N，而非 ?（Lukas Fittl）", "title": "在pg_stat_statements中，将被忽略的常量显示为 $N，而非 ?", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "430e7d16969426eee4534f4169ceba49c9e191641775514d99071c824dc0c588", "section_path": ["附加模块"], "commit_groups": [["a6f22e835"]], "identity_text": "Show ignored constants as $N rather than ? in pg_stat_statements (Lukas Fittl)", "commit_aliases": ["a6f22e835"], "source_commits": ["a6f22e835"], "source_entry_id": "10.0/changes/154", "db_id": "b4ef3c02d6412727f3c89d07cf209859", "patch_ids": ["d56c0c41452d75f357b1e9d7a53c92b8"], "statement_hash": "510083ebd3388b8ca7bc66ffcb332db016f9a63eef31424d2a6f016647b92fb1", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-a20b8b9053da5316", "cves": [], "html": "<p>改进<a href=\"/docs/10/cube.html\" title=\"F.10. cube\"><span>cube</span></a>对零维立方体的处理（Tom Lane）</p>\n<p>这也改进了对 <code>infinite</code> 和 <code>NaN</code> 值的处理。</p>", "text": "改进cube对零维立方体的处理（Tom Lane） 这也改进了对 infinite 和 NaN 值的处理。", "title": "改进cube对零维立方体的处理", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "fd861cf9c83d5eec142200e3bf95851dae454760230ebbb474f156e41c2ac751", "section_path": ["附加模块"], "commit_groups": [["f31a931fa"]], "identity_text": "Improve cube's handling of zero-dimensional cubes (Tom Lane) This also improves handling of infinite and NaN values.", "commit_aliases": ["f31a931fa"], "source_commits": ["f31a931fa"], "source_entry_id": "10.0/changes/155", "db_id": "38979adb9647ff025f777fe93e4b0ef0", "patch_ids": ["c5fbb19252147112508e91dc8da25b9d"], "statement_hash": "d5c6f595f52bae661439811dee7965185716ffcfcd679a4af21df592f8cf4776", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-daea52f6baa07c41", "cves": [], "html": "<p>允许<a href=\"/docs/10/pgbuffercache.html\" title=\"F.25. pg_buffercache\"><span>pg_buffercache</span></a>使用更少的锁运行（Ivan Kartyshov）</p>\n<p>这降低了它在生产系统上运行时的干扰。</p>", "text": "允许pg_buffercache使用更少的锁运行（Ivan Kartyshov） 这降低了它在生产系统上运行时的干扰。", "title": "允许pg_buffercache使用更少的锁运行", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "add8df49b44b7fd981200e9472a36de2eebebbb0a10fb05ef392f833ba4c55de", "section_path": ["附加模块"], "commit_groups": [["6e654546f"]], "identity_text": "Allow pg_buffercache to run with fewer locks (Ivan Kartyshov) This makes it less disruptive when run on production systems.", "commit_aliases": ["6e654546f"], "source_commits": ["6e654546f"], "source_entry_id": "10.0/changes/156", "db_id": "0c07a3cbd638c9c4281b7b7348ae5534", "patch_ids": ["9ec97e8e42df4414d3f7a5c92cf8ec53"], "statement_hash": "fbafdd00feb69a7abdb5a55431d95cdc3253f5b705ef7e04396098cfd642a59a", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-d398d5f7b39a86ba", "cves": [], "html": "<p>增加<a href=\"/docs/10/pgstattuple.html\" title=\"F.31. pgstattuple\"><span>pgstattuple</span></a>函数 <code>pgstathashindex()</code>，用于查看 hash 索引统计信息（Ashutosh Sharma）</p>", "text": "增加pgstattuple函数 pgstathashindex()，用于查看 hash 索引统计信息（Ashutosh Sharma）", "title": "增加pgstattuple函数 pgstathashindex()，用于查看 hash 索引统计信息", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "148ceaab9abc26af5a81f9ec064a5b73024ba3245df1abf67146ff5e10900fbb", "section_path": ["附加模块"], "commit_groups": [["e759854a0"]], "identity_text": "Add pgstattuple function pgstathashindex() to view hash index statistics (Ashutosh Sharma)", "commit_aliases": ["e759854a0"], "source_commits": ["e759854a0"], "source_entry_id": "10.0/changes/157", "db_id": "d1a3d1f6f782073796fcff57dbc91c3d", "patch_ids": ["66b19ce4155bffccba79d29dc2034998"], "statement_hash": "2d851ca8263cd1093476cd98039ce1a31edf191d0c553e17e93c3abc9d6c071c", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-1986ad90aad92c73", "cves": [], "html": "<p>使用 <code>GRANT</code> 权限控制 <span>pgstattuple</span> 函数的使用（Stephen Frost）</p>\n<p>这使 DBA 可以允许非超级用户运行这些函数。</p>", "text": "使用 GRANT 权限控制 pgstattuple 函数的使用（Stephen Frost） 这使 DBA 可以允许非超级用户运行这些函数。", "title": "使用 GRANT 权限控制 pgstattuple 函数的使用", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "d64902d100b96a92d5b21822dfb6a56f5da620a05fe4ce8218d88b2a15e4edd9", "section_path": ["附加模块"], "commit_groups": [["fd321a1df"]], "identity_text": "Use GRANT permissions to control pgstattuple function usage (Stephen Frost) This allows DBAs to allow non-superusers to run these functions.", "commit_aliases": ["fd321a1df"], "source_commits": ["fd321a1df"], "source_entry_id": "10.0/changes/158", "db_id": "2edcd91253fdfd04ccb721550c277b73", "patch_ids": ["6f2ae2dd3f2a287b747d9fd29f995027"], "statement_hash": "951d719fc5a3244266e6e9054aa307589b135834a3e717154b0f9a448f34486e", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-9a534501a9ff8b62", "cves": [], "html": "<p>减少 <span>pgstattuple</span> 检查 hash 索引时的锁定（Amit Kapila）</p>", "text": "减少 pgstattuple 检查 hash 索引时的锁定（Amit Kapila）", "title": "减少 pgstattuple 检查 hash 索引时的锁定", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "5a89d638220af9035bcd935b243b73cc58dfe4c2c9edf45585b0e57ceeed0479", "section_path": ["附加模块"], "commit_groups": [["d4b5d4cad"]], "identity_text": "Reduce locking when pgstattuple examines hash indexes (Amit Kapila)", "commit_aliases": ["d4b5d4cad"], "source_commits": ["d4b5d4cad"], "source_entry_id": "10.0/changes/159", "db_id": "5d3634a71d0e54c5e9069db5393823ed", "patch_ids": ["3fcf0bb3ceb8c33cbd70f8a2bf55fef4"], "statement_hash": "06dee103047dea1949c905ca3e94252c1eba991f237cecf30347a735e1bcfdd5", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-97ef25d61fa82213", "cves": [], "html": "<p>增加<a href=\"/docs/10/pageinspect.html\" title=\"F.23. pageinspect\"><span>pageinspect</span></a>函数 <code>page_checksum()</code>，用于显示页的校验和（Tomas Vondra）</p>", "text": "增加pageinspect函数 page_checksum()，用于显示页的校验和（Tomas Vondra）", "title": "增加pageinspect函数 page_checksum()，用于显示页的校验和", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "d9c56d64f97dac2cb3ee10824dc593b3b733cd62e115d79f865411afdea521c7", "section_path": ["附加模块"], "commit_groups": [["fef2bcdcb"]], "identity_text": "Add pageinspect function page_checksum() to show a page's checksum (Tomas Vondra)", "commit_aliases": ["fef2bcdcb"], "source_commits": ["fef2bcdcb"], "source_entry_id": "10.0/changes/160", "db_id": "500b2a085fa2c3a5db628b544bfcc9e0", "patch_ids": ["f965bc145bfc2ccbf420f710153af4f3"], "statement_hash": "0a0f6717d8d4b4a7b8fe54512607169d3da3dddfdca34a074dc1eaa32b72f316", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-611c23739f5b0b38", "cves": [], "html": "<p>增加 <span>pageinspect</span> 函数 <code>bt_page_items()</code>，用于从页映像中打印页项（Tomas Vondra）</p>", "text": "增加 pageinspect 函数 bt_page_items()，用于从页映像中打印页项（Tomas Vondra）", "title": "增加 pageinspect 函数 bt_page_items()，用于从页映像中打印页项", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "073ee07840d3c01752e84590ac394fe84a069e4b894200f54b83982cac70c646", "section_path": ["附加模块"], "commit_groups": [["193f5f9e9"]], "identity_text": "Add pageinspect function bt_page_items() to print page items from a page image (Tomas Vondra)", "commit_aliases": ["193f5f9e9"], "source_commits": ["193f5f9e9"], "source_entry_id": "10.0/changes/161", "db_id": "9e3bfe4846d13aa0aab5cea0d97f04f2", "patch_ids": ["0af781cd5a5011593df493964d7839e5"], "statement_hash": "46cf91f4f52199e1a5e0905eedf04634e2de5f5d11d2572d41b27485680e4b98", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.0-38c0c50647d60279", "cves": [], "html": "<p>为 <span>pageinspect</span> 增加 hash 索引支持（Jesper Pedersen，Ashutosh Sharma）</p>", "text": "为 pageinspect 增加 hash 索引支持（Jesper Pedersen，Ashutosh Sharma）", "title": "为 pageinspect 增加 hash 索引支持", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/10.0/#id-1.11.6.28.5.14", "source_hash": "cb604adce61e7a9f7001a955d792cc2f28963a845bc0673b97340ee254fead48", "section_path": ["附加模块"], "commit_groups": [["08bf6e529"]], "identity_text": "Add hash index support to pageinspect (Jesper Pedersen, Ashutosh Sharma)", "commit_aliases": ["08bf6e529"], "source_commits": ["08bf6e529"], "source_entry_id": "10.0/changes/162", "db_id": "611cef2b7d8bec1b875682973bd05e30", "patch_ids": ["c7d91586ebb3c024d0dc7d127b67db8f"], "statement_hash": "ef3e9a94765efe03a56a050b35e68b866a74a57988b72e11bc3288131b4f6c20", "relations": [], "version": "10.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}]}], "stats": [{"key": "all", "label": "全部变更", "count": 189}, {"key": "feature", "label": "新功能", "count": 148}, {"key": "bugfix", "label": "BUG 修复", "count": 2}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 12}, {"key": "compatibility", "label": "兼容性变化", "count": 27}, {"key": "improvement", "label": "其他改进", "count": 0}], "total": 189, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 189, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}