{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2014-12-18", "build": "9.4.0", "major": "9.4", "minor": 0, "manual": "9.4", "status": "stable", "doc_git": "", "version": "9.4.0", "eol_date": "2020-02-13", "date_text": "2014-12-18", "supported": false, "manual_url": "/docs/9.4/release-9-4.html", "source_url": "/docs/release/9.4.0/", "entry_count": 211, "placeholder": false, "content_hash": "4bf0d615ef0747d209e3203da09a627422797869d050ea32ff76105ff7d53b8a", "manual_build": "9.4.26", "source_as_of": "", "changes_count": 189, "doc_loaded_at": "2026-09-26T02:56:45.438944", "migration_html": "<p>希望从任何之前的版本迁移数据的用户，需要使用<a href=\"/docs/9.4/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a>进行转储/恢复，或使用<a href=\"/docs/9.4/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a>。</p>\n<p>版本 9.4 包含许多可能影响与以前版本兼容性的变更。请注意以下不兼容之处：</p>\n<div>\n</div>", "compatibility_count": 22, "label": "9.4", "status_label": "历史版本", "eol": "2020-02-13", "age_days": 4304, "support_days": -2421}, "groups": [{"date": "2014-12-18", "build": "9.4.0", "major": "9.4", "minor": 0, "manual": "9.4", "status": "stable", "doc_git": "", "version": "9.4.0", "eol_date": "2020-02-13", "date_text": "2014-12-18", "supported": false, "manual_url": "/docs/9.4/release-9-4.html", "source_url": "/docs/release/9.4.0/", "entry_count": 211, "placeholder": false, "content_hash": "4bf0d615ef0747d209e3203da09a627422797869d050ea32ff76105ff7d53b8a", "manual_build": "9.4.26", "source_as_of": "", "changes_count": 189, "doc_loaded_at": "2026-09-26T02:56:45.438944", "migration_html": "<p>希望从任何之前的版本迁移数据的用户，需要使用<a href=\"/docs/9.4/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a>进行转储/恢复，或使用<a href=\"/docs/9.4/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a>。</p>\n<p>版本 9.4 包含许多可能影响与以前版本兼容性的变更。请注意以下不兼容之处：</p>\n<div>\n</div>", "compatibility_count": 22, "label": "9.4", "status_label": "历史版本", "eol": "2020-02-13", "age_days": 4304, "support_days": -2421, "entries": [{"id": "9.4.0-9c9c3dae50cc8251", "cves": [], "html": "<p>收紧对多维<a href=\"/docs/9.4/arrays.html\" title=\"8.15. 数组\">数组</a>输入的检查（Bruce Momjian）</p>\n<p>此前，以单元素子数组开头的输入数组字符串后面可以包含多元素子数组，例如<code>'{{1}, {2,3}}'::int[]</code>会被接受。</p>", "text": "收紧对多维数组输入的检查（Bruce Momjian） 此前，以单元素子数组开头的输入数组字符串后面可以包含多元素子数组，例如'{{1}, {2,3}}'::int[]会被接受。", "title": "收紧对多维数组输入的检查", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "133bbe7b40ddca0f20c5e4c77fc3ddaba5750aa1c5c7a287d786cc5b59615faf", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Tighten checks for multidimensional array input (Bruce Momjian) Previously, an input array string that started with a single-element sub-array could later contain multi-element sub-arrays, e.g. '{{1}, {2,3}}'::int[] would be accepted.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/001", "db_id": "60c26f468d55fdac09bb3c2b31186075", "patch_ids": [], "statement_hash": "d1f8be133565e794bd60454b2e56e55545df78b4cbc8d96b008e4be38e7b51e6", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-011e24aa31ef8425", "cves": [], "html": "<p>在将<code>date</code>、<code>timestamp</code>或<code>timestamptz</code>类型的值转换为<a href=\"/docs/9.4/datatype-json.html\" title=\"8.14. JSON 类型\"><code>JSON</code></a>时，按符合 ISO 8601 的格式呈现这些值（Andrew Dunstan）</p>\n<p>此前这些值按当前<a href=\"/docs/9.4/runtime-config-client.html#GUC-DATESTYLE\">DateStyle</a>设置呈现；但许多 JSON 处理器要求时间戳为 ISO 8601 格式。如有需要，可以在把日期时间值传给 JSON 转换函数之前显式转换为<code>text</code>来获得以前的行为。</p>", "text": "在将date、timestamp或timestamptz类型的值转换为JSON时，按符合 ISO 8601 的格式呈现这些值（Andrew Dunstan） 此前这些值按当前DateStyle设置呈现；但许多 JSON 处理器要求时间戳为 ISO 8601 格式。如有需要，可以在把日期时间值传给 JSON 转换函数之前显式转换为text来获得以前的行为。", "title": "在将date、timestamp或timestamptz类型的值转换为JSON时，按符合 ISO 8601 的格式呈现这些值", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "8c29904c978dbd9f2f0a80c905eec0fda25597911514d709a4242d0ca31b03f6", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "When converting values of type date, timestamp or timestamptz to JSON, render the values in a format compliant with ISO 8601 (Andrew Dunstan) Previously such values were rendered according to the current guc-datestyle setting; but many JSON processors require timestamps to be in ISO 8601 format. If necessary, the previous behavior can be obtained by explicitly casting the datetime value to text before passing it to the JSON conversion function.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/002", "db_id": "83a0e27304ddf64b13db7541664d195b", "patch_ids": [], "statement_hash": "961368c175c8f44583211dbf8c0734eebb10bbb115d288db1c3876cc058d7dc4", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-895829ecf3121d53", "cves": [], "html": "<p><a href=\"/docs/9.4/functions-json.html#FUNCTIONS-JSON-OP-TABLE\" title=\"表 9.40. json 和 jsonb 操作符\"><code>json</code><code>#&gt;</code><code>text[]</code></a>路径提取操作符现在在数组为空时返回其左操作数输入而非 NULL（Tom Lane）</p>\n<p>这与该操作表示对简单字段/元素提取操作符<code>-&gt;</code>应用零次的概念一致。类似地，带空数组的<code>json</code><code>#&gt;&gt;</code><code>text[]</code>只是把其左操作数输入强制转换为文本。</p>", "text": "json#>text[]路径提取操作符现在在数组为空时返回其左操作数输入而非 NULL（Tom Lane） 这与该操作表示对简单字段/元素提取操作符->应用零次的概念一致。类似地，带空数组的json#>>text[]只是把其左操作数输入强制转换为文本。", "title": "json#>text[]路径提取操作符现在在数组为空时返回其左操作数输入而非 NULL", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "e020e93d19ee194dd750ab2e91776d02b4c8a3a51c20788588291a4f7a2cb4ef", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "The json #> text[] path extraction operator now returns its lefthand input, not NULL, if the array is empty (Tom Lane) This is consistent with the notion that this represents zero applications of the simple field/element extraction operator ->. Similarly, json #>> text[] with an empty array merely coerces its lefthand input to text.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/003", "db_id": "d19a9e07bbb6c7f27251cdcec5ad0e8c", "patch_ids": [], "statement_hash": "89c7f41ac942d3a1f303f25813dc538bb9df8775b503a887c2b8df1d1dc6d0d6", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-73a24096294496ee", "cves": [], "html": "<p><a href=\"/docs/9.4/functions-json.html#FUNCTIONS-JSON-OP-TABLE\" title=\"表 9.40. json 和 jsonb 操作符\"><code>JSON</code>字段/元素/路径提取操作符</a>的极端情况现在返回 NULL 而不是抛出错误（Tom Lane）</p>\n<p>例如，对 JSON 数组应用字段提取现在得到 NULL 而不是错误。这更一致（因为诸如字段不存在等可比情况此前就已返回 NULL），而且使创建使用这些操作符的表达式索引变得安全，因为它们现在不会对任何有效的 JSON 输入抛出错误。</p>", "text": "JSON字段/元素/路径提取操作符的极端情况现在返回 NULL 而不是抛出错误（Tom Lane） 例如，对 JSON 数组应用字段提取现在得到 NULL 而不是错误。这更一致（因为诸如字段不存在等可比情况此前就已返回 NULL），而且使创建使用这些操作符的表达式索引变得安全，因为它们现在不会对任何有效的 JSON 输入抛出错误。", "title": "JSON字段/元素/路径提取操作符的极端情况现在返回 NULL 而不是抛出错误", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "035e324bfb1627108bf3610418d1177e965416a36c2c6f351e1f10fae442bac7", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Corner cases in the JSON field/element/path extraction operators now return NULL rather than raising an error (Tom Lane) For example, applying field extraction to a JSON array now yields NULL not an error. This is more consistent (since some comparable cases such as no-such-field already returned NULL), and it makes it safe to create expression indexes that use these operators, since they will now not throw errors for any valid JSON input.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/004", "db_id": "f84a57ba6c40990ff398ddc9e7f831f9", "patch_ids": [], "statement_hash": "0e69d26c1a4417a7f5f97bda5e5056bfe3558658fc32c2abbcd61f5ab36e5f66", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-4d17fdbcbee28c72", "cves": [], "html": "<p>使<a href=\"/docs/9.4/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE\" title=\"表 9.21. 格式化函数\"><code>to_timestamp()</code></a>和<code>to_date()</code>格式串中连续的空白字符消费输入串中相应数量的字符（无论是否空白），然后在非<code>FX</code>模式下视情况消费相邻空白（Jeevan Chalke）</p>\n<p>此前，非<code>FX</code>格式串中的连续空白字符表现得像单个空白字符，并消费输入串中所有相邻空白。例如，此前三个空格的格式串在<code>' 12'</code>中只会消费第一个空格，但现在会消费全部三个字符。</p>", "text": "使to_timestamp()和to_date()格式串中连续的空白字符消费输入串中相应数量的字符（无论是否空白），然后在非FX模式下视情况消费相邻空白（Jeevan Chalke） 此前，非FX格式串中的连续空白字符表现得像单个空白字符，并消费输入串中所有相邻空白。例如，此前三个空格的格式串在' 12'中只会消费第一个空格，但现在会消费全部三个字符。", "title": "使to_timestamp()和to_date()格式串中连续的空白字符消费输入串中相应数量的字符（无论是否空白），然后在非FX模式下视情况消费相邻空白", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "e8a6886b775bfda296fa3be0e174f045a23cca64828acb92f202ac7d0fb38c7f", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Cause consecutive whitespace in to_timestamp() and to_date() format strings to consume a corresponding number of characters in the input string (whitespace or not), then conditionally consume adjacent whitespace, if not in FX mode (Jeevan Chalke) Previously, consecutive whitespace characters in a non-FX format string behaved like a single whitespace character and consumed all adjacent whitespace in the input string. For example, previously a format string of three spaces would consume only the first space in ' 12', but it will now consume all three characters.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/005", "db_id": "b7fc09c0fc7f34184cb8710bb70b3602", "patch_ids": [], "statement_hash": "bb7a04b5a5ae8f9b77ed6b16f7af5df1b71c5f17ec693917bb3af11b483d11f9", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-1ee5735c19d09fe6", "cves": [], "html": "<p>修复<a href=\"/docs/9.4/functions-textsearch.html#TEXTSEARCH-FUNCTIONS-TABLE\" title=\"表 9.38. 文本搜索函数\"><code>ts_rank_cd()</code></a>使其忽略已去除位置信息的词位（Alex Hill）</p>\n<p>此前，已去除位置信息的词位被当作具有默认位置处理，产生用处可疑的排名。</p>", "text": "修复ts_rank_cd()使其忽略已去除位置信息的词位（Alex Hill） 此前，已去除位置信息的词位被当作具有默认位置处理，产生用处可疑的排名。", "title": "修复ts_rank_cd()使其忽略已去除位置信息的词位", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "5d9fc639c50022b39c74b4a11b90c53de38f26d19904207830cfac5ef81a716b", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Fix ts_rank_cd() to ignore stripped lexemes (Alex Hill) Previously, stripped lexemes were treated as if they had a default location, producing a rank of dubious usefulness.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/006", "db_id": "a89bc1d88493323b5b71f7a5fbd6f305", "patch_ids": [], "statement_hash": "355356bbc0ee85a6577759812b944c194e5c9a047a58a54a7bf97a799ef45c13", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-2004ec7e3d85b01c", "cves": [], "html": "<p>对于声明为接受<a href=\"/docs/9.4/xfunc-sql.html#XFUNC-SQL-VARIADIC-FUNCTIONS\" title=\"35.4.5. 带有可变数量参数的SQL函数\"><code>VARIADIC \"any\"</code></a>的函数，标记为<code>VARIADIC</code>的实际参数必须是可确定数组类型（Pavel Stehule）</p>\n<p>此类参数不能再写成不带修饰的字符串字面量或<code>NULL</code>；现在需要转换为适当的数组数据类型。注意这不影响未标记<code>VARIADIC</code>的参数。</p>", "text": "对于声明为接受VARIADIC \"any\"的函数，标记为VARIADIC的实际参数必须是可确定数组类型（Pavel Stehule） 此类参数不能再写成不带修饰的字符串字面量或NULL；现在需要转换为适当的数组数据类型。注意这不影响未标记VARIADIC的参数。", "title": "对于声明为接受VARIADIC \"any\"的函数，标记为VARIADIC的实际参数必须是可确定数组类型", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "daf4e376b4bef2992ac9078eef7d184082db3f224ba34cde869af4d5693676c3", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "For functions declared to take VARIADIC \"any\", an actual parameter marked as VARIADIC must be of a determinable array type (Pavel Stehule) Such parameters can no longer be written as an undecorated string literal or NULL; a cast to an appropriate array data type will now be required. Note that this does not affect parameters not marked VARIADIC.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/007", "db_id": "9decfa50be75922933d62717781ea49a", "patch_ids": [], "statement_hash": "6df0b7ef03d4c87362d79f470a2b5dba98a8ba3fed54674699c15033bcc83722", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-1aa30827011bf0f9", "cves": [], "html": "<p>确保整行变量向关注组合参数内列名的函数暴露预期的列名（Tom Lane）</p>\n<p>现在，像<code>row_to_json(tab.*)</code>这样的结构总是输出与调用处表<code>tab</code>可见的列别名匹配的列名。在以前的发行版中，输出的列名有时是表的实际列名，而不管查询中指派了什么别名。</p>", "text": "确保整行变量向关注组合参数内列名的函数暴露预期的列名（Tom Lane） 现在，像row_to_json(tab.*)这样的结构总是输出与调用处表tab可见的列别名匹配的列名。在以前的发行版中，输出的列名有时是表的实际列名，而不管查询中指派了什么别名。", "title": "确保整行变量向关注组合参数内列名的函数暴露预期的列名", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "9d7b7d9fba8d898afd43302dae2bc1a706339aae46870cf1574e6863f3e75c9e", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Ensure that whole-row variables expose the expected column names to functions that pay attention to column names within composite arguments (Tom Lane) Constructs like row_to_json(tab.*) now always emit column names that match the column aliases visible for table tab at the point of the call. In previous releases the emitted column names would sometimes be the table's actual column names regardless of any aliases assigned in the query.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/008", "db_id": "7b9174450ed524274da417d808bb21c0", "patch_ids": [], "statement_hash": "69c9d250a0f81be3948ccf7b41fdc1685aa1afe8604c64c48529de71a8151560", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-a3a52689b3eccdb2", "cves": [], "html": "<p><a href=\"/docs/9.4/sql-discard.html\" title=\"DISCARD\"><span>DISCARD</span></a>现在还会丢弃与序列相关的状态（Fabrízio de Royes Mello、Robert Haas）</p>", "text": "DISCARD现在还会丢弃与序列相关的状态（Fabrízio de Royes Mello、Robert Haas）", "title": "DISCARD现在还会丢弃与序列相关的状态", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "c17009c08f738967471c5d7dc24401d0f2366137453729f36f30380ee166a176", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "sql-discard now also discards sequence-related state (Fabrízio de Royes Mello, Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/009", "db_id": "40d413ef563b3376e65c860f75979049", "patch_ids": [], "statement_hash": "68063a9a438a7255dd772a103dc8b0ed864b87aa9d6cb978088a057631290e17", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-4c372277a90e2896", "cves": [], "html": "<p>将<a href=\"/docs/9.4/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN ANALYZE</code></a>输出中的<span>“<span>total runtime</span>”</span>更名为<span>“<span>execution time</span>”</span>（Tom Lane）</p>\n<p>既然规划时间也一并报告，以前的名称容易引起混淆。</p>", "text": "将EXPLAIN ANALYZE输出中的“total runtime”更名为“execution time”（Tom Lane） 既然规划时间也一并报告，以前的名称容易引起混淆。", "title": "将EXPLAIN ANALYZE输出中的“total runtime”更名为“execution time”", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "dc629837c8ee2b2ebe262dc47ffabe47e38f9f6f8899f737db6431027e589d8d", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Rename EXPLAIN ANALYZE's total runtime output to execution time (Tom Lane) Now that planning time is also reported, the previous name was confusing.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/010", "db_id": "3d1751975e55ba1a65beffcd538b7ce4", "patch_ids": [], "statement_hash": "1f261d6bb48070c42a0bbaa63d26e668dac58ed58b30833b16281e81c3ba1b3e", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-625ccb9410adec1c", "cves": [], "html": "<p><a href=\"/docs/9.4/sql-show.html\" title=\"SHOW\"><code>SHOW TIME ZONE</code></a>现在以<acronym>POSIX</acronym>时区格式输出简单的数字 UTC 偏移（Tom Lane）</p>\n<p>此前，此类时区设置显示为<a href=\"/docs/9.4/datatype-datetime.html#DATATYPE-INTERVAL-OUTPUT\" title=\"8.5.5. 间隔输出\"><code>interval</code></a>值。作为简单字符串传递时，新的输出能被<code>SET TIME ZONE</code>正确解释，而旧输出需要特殊处理才能被正确重新解析。</p>", "text": "SHOW TIME ZONE现在以POSIX时区格式输出简单的数字 UTC 偏移（Tom Lane） 此前，此类时区设置显示为interval值。作为简单字符串传递时，新的输出能被SET TIME ZONE正确解释，而旧输出需要特殊处理才能被正确重新解析。", "title": "SHOW TIME ZONE现在以POSIX时区格式输出简单的数字 UTC 偏移", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "89d7d2870ab0e8f708b9278543c0262b711f063b9329d61c94ae892ce11a49f8", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "SHOW TIME ZONE now outputs simple numeric UTC offsets in POSIX timezone format (Tom Lane) Previously, such timezone settings were displayed as interval values. The new output is properly interpreted by SET TIME ZONE when passed as a simple string, whereas the old output required special treatment to be re-parsed correctly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/011", "db_id": "6be7f212bef502a3f1be15cdb7d52d90", "patch_ids": [], "statement_hash": "5610076ada38eeca7f24dde8a9dd2866c9c339ddc4bb6cef2180f2ca87a42048", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-e79a81d649da43dc", "cves": [], "html": "<p>支持更新外部表的外部数据包装器必须考虑可能存在的<code>AFTER ROW</code>触发器（Noah Misch）</p>\n<p>当存在<code>AFTER ROW</code>触发器时，更新操作必须返回表的所有列，因为触发器可能检查其中任意或全部列。此前外部表从不带触发器，因此 FDW 可能优化掉对<code>RETURNING</code>子句（若有）中未提及列的获取。</p>", "text": "支持更新外部表的外部数据包装器必须考虑可能存在的AFTER ROW触发器（Noah Misch） 当存在AFTER ROW触发器时，更新操作必须返回表的所有列，因为触发器可能检查其中任意或全部列。此前外部表从不带触发器，因此 FDW 可能优化掉对RETURNING子句（若有）中未提及列的获取。", "title": "支持更新外部表的外部数据包装器必须考虑可能存在的AFTER ROW触发器", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "5a7b370bdaa89e677922c7fbf2ef824f9fb3e501392b65559a6a269c0593246e", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Foreign data wrappers that support updating foreign tables must consider the possible presence of AFTER ROW triggers (Noah Misch) When an AFTER ROW trigger is present, all columns of the table must be returned by updating actions, since the trigger might inspect any or all of them. Previously, foreign tables never had triggers, so the FDW might optimize away fetching columns not mentioned in the RETURNING clause (if any).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/012", "db_id": "69f1d0363b8850dd292d048f67121e0f", "patch_ids": [], "statement_hash": "cb58a49fe84dfcfb6cc12c38baf94e9802bfd0cad091dadda2b944e84d7ff1fa", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-2c1e9b730cdc35ed", "cves": [], "html": "<p>阻止<a href=\"/docs/9.4/ddl-constraints.html#DDL-CONSTRAINTS-CHECK-CONSTRAINTS\" title=\"5.3.1. 检查约束\"><code>CHECK</code></a>约束引用系统列，<code>tableoid</code>除外（Amit Kapila）</p>\n<p>此前此类检查约束是被允许的，但它们常常在还原期间导致错误。</p>", "text": "阻止CHECK约束引用系统列，tableoid除外（Amit Kapila） 此前此类检查约束是被允许的，但它们常常在还原期间导致错误。", "title": "阻止CHECK约束引用系统列，tableoid除外", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "29fed6f189a72c24e85ada0cc4cd0f16b403e923cdd0eaa0a2fa81e4b20c9e6b", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Prevent CHECK constraints from referencing system columns, except tableoid (Amit Kapila) Previously such check constraints were allowed, but they would often cause errors during restores.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/013", "db_id": "a8d48fe017675fcfa19b7dd16491d900", "patch_ids": [], "statement_hash": "a8881da2f282c478313e6680a2f91fc6572ea1359c67abd1cf115cc5d8c5d513", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-db9fabd6dd88e212", "cves": [], "html": "<p>在指定了多个目标参数时，使用最后指定的<a href=\"/docs/9.4/recovery-target-settings.html\" title=\"26.2. 恢复目标设置\">恢复目标参数</a>（Heikki Linnakangas）</p>\n<p>此前，<code>recovery_target_<em><code>xxx</code></em></code>参数之间存在未写入文档的优先顺序。</p>", "text": "在指定了多个目标参数时，使用最后指定的恢复目标参数（Heikki Linnakangas） 此前，recovery_target_xxx参数之间存在未写入文档的优先顺序。", "title": "在指定了多个目标参数时，使用最后指定的恢复目标参数", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "be844843a12369fb1c2618b52df22f4ccccf1b88e3a7c76f3e675e1ca6f514ef", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Use the last specified recovery target parameter if multiple target parameters are specified (Heikki Linnakangas) Previously, there was an undocumented precedence order among the recovery_target_xxx parameters.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/014", "db_id": "2e5d7aa302315bc05e8b897097175ced", "patch_ids": [], "statement_hash": "3b4972194cf290f6d7ee06bc11d1b13bef964e3d550d66214f635c240178c10b", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-cee7c1e9cd931833", "cves": [], "html": "<p>在 Windows 上自动保留用户提供的命令串中的引号（Heikki Linnakangas）</p>\n<p>自行处理引号保留的用户命令可能需要调整。<a href=\"/docs/9.4/runtime-config-wal.html#GUC-ARCHIVE-COMMAND\">archive_command</a>、<a href=\"/docs/9.4/recovery-config.html#RESTORE-COMMAND\">restore_command</a>以及<a href=\"/docs/9.4/sql-copy.html\" title=\"COPY\"><code>COPY TO/FROM PROGRAM</code></a>中使用的命令很可能受此影响。</p>", "text": "在 Windows 上自动保留用户提供的命令串中的引号（Heikki Linnakangas） 自行处理引号保留的用户命令可能需要调整。archive_command、restore_command以及COPY TO/FROM PROGRAM中使用的命令很可能受此影响。", "title": "在 Windows 上自动保留用户提供的命令串中的引号", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "00251af05f5b7ecfe6ce7d9fa20cef4d16f5d8084f899602d4b74aaa294e93c8", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "On Windows, automatically preserve quotes in command strings supplied by the user (Heikki Linnakangas) User commands that did their own quote preservation might need adjustment. This is likely to be an issue for commands used in guc-archive-command , restore-command , and COPY TO/FROM PROGRAM.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/015", "db_id": "f7492d5286f9661bee0a916fbe4ad5a8", "patch_ids": [], "statement_hash": "9e9f60e65b444ee713581ace317453022d908038c62b0d27188a635a26ef3b86", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-ccd1163f69272984", "cves": [], "html": "<p>移除目录列<a href=\"/docs/9.4/catalog-pg-class.html\" title=\"48.11. pg_class\"><code>pg_class.reltoastidxid</code></a>（Michael Paquier）</p>", "text": "移除目录列pg_class.reltoastidxid（Michael Paquier）", "title": "移除目录列pg_class.reltoastidxid", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "deba8ae24821ae2f7e2e3445bd5cf6a039cb3ce3fb249df248bf6aac085257df", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Remove catalog column pg_class.reltoastidxid (Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/016", "db_id": "3ee913c526ecd1cf4f5c22ad50d08146", "patch_ids": [], "statement_hash": "f6956ba8fc4fa45bd893fa9d3e77b382e47accd3dcfb0fc1756e1ff31b262c50", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-97045112e8c91420", "cves": [], "html": "<p>移除目录列<a href=\"/docs/9.4/catalog-pg-rewrite.html\" title=\"48.38. pg_rewrite\"><code>pg_rewrite.ev_attr</code></a>（Kevin Grittner）</p>\n<p>逐列规则自<span>PostgreSQL</span> 7.3 起就不再支持。</p>", "text": "移除目录列pg_rewrite.ev_attr（Kevin Grittner） 逐列规则自PostgreSQL 7.3 起就不再支持。", "title": "移除目录列pg_rewrite.ev_attr", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "87a1deca2640259e7dfe1ac164cd16fb8ce83920a9470800492c148e3a9f835d", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Remove catalog column pg_rewrite.ev_attr (Kevin Grittner) Per-column rules have not been supported since PostgreSQL 7.3.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/017", "db_id": "16de8532d353984c7abbfd08c70a4d30", "patch_ids": [], "statement_hash": "d3fb7b06f28f5c295b1360e94b116ed4b59f7a11ec458870bdb1d398b1f91fad", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-d3c08c6899d47b4b", "cves": [], "html": "<p>移除对<span>Kerberos</span>认证的原生支持（<code>--with-krb5</code>等）（Magnus Hagander）</p>\n<p>使用<span>Kerberos</span>认证的受支持方式是通过<acronym>GSSAPI</acronym>。原生代码自<span>PostgreSQL</span> 8.3 起已被弃用。</p>", "text": "移除对Kerberos认证的原生支持（--with-krb5等）（Magnus Hagander） 使用Kerberos认证的受支持方式是通过GSSAPI。原生代码自PostgreSQL 8.3 起已被弃用。", "title": "移除对Kerberos认证的原生支持（--with-krb5等）", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "33965a1371f87fd99b508e58688412e5370cb11b797f7c9a7f5398e15b72d98f", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Remove native support for Kerberos authentication (--with-krb5, etc) (Magnus Hagander) The supported way to use Kerberos authentication is with GSSAPI. The native code has been deprecated since PostgreSQL 8.3.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/018", "db_id": "d104d9250140abf93fc780f8ecea28a9", "patch_ids": [], "statement_hash": "5c65047364a67f7471c23c6bd7a4687292885a2f2034cc76aff29da8ff6fd782", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-11184aac7c07aa80", "cves": [], "html": "<p>在<span>PL/Python</span>中，像处理底层数组类型一样处理域于数组的类型（Rodolfo Campero）</p>\n<p>此前此类值被当作字符串处理。</p>", "text": "在PL/Python中，像处理底层数组类型一样处理域于数组的类型（Rodolfo Campero） 此前此类值被当作字符串处理。", "title": "在PL/Python中，像处理底层数组类型一样处理域于数组的类型", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "cd56b6d37bd3716333edab6057e06cf5c6ed69d46075fc53894ecd2c53a75d4a", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "In PL/Python, handle domains over arrays like the underlying array type (Rodolfo Campero) Previously such values were treated as strings.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/019", "db_id": "676dd31372ea0b36d90c1946ddb323fa", "patch_ids": [], "statement_hash": "213b33547cd64665bd26ed6365416f33966e27d9dfbbcb943fcb5674beae1c83", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-6e7636440e262e02", "cves": [], "html": "<p>使 libpq 的<a href=\"/docs/9.4/libpq.html#LIBPQ-PQCONNECTDBPARAMS\"><code>PQconnectdbParams()</code></a>和<a href=\"/docs/9.4/libpq.html#LIBPQ-PQPINGPARAMS\"><code>PQpingParams()</code></a>函数把零长度字符串按默认值处理（Adrian Vondendriesch）</p>\n<p>此前，这些函数只在某些情况下把零长度字符串值视为选择默认值。</p>", "text": "使 libpq 的PQconnectdbParams()和PQpingParams()函数把零长度字符串按默认值处理（Adrian Vondendriesch） 此前，这些函数只在某些情况下把零长度字符串值视为选择默认值。", "title": "使 libpq 的PQconnectdbParams()和PQpingParams()函数把零长度字符串按默认值处理", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "71db09fc54cc5752fd52206bb7bf4534be2f21ef678882219d62d98be265b6e4", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Make libpq's PQconnectdbParams() and PQpingParams() functions process zero-length strings as defaults (Adrian Vondendriesch) Previously, these functions treated zero-length string values as selecting the default in only some cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/020", "db_id": "494110bf09b8a5e2715210c2477792f4", "patch_ids": [], "statement_hash": "62991b9dea7a2611503bf938a08b4b99afb853425423e7e5800aed05a9b9abdb", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-cbb0eb9aa34afdd3", "cves": [], "html": "<p>将<a href=\"/docs/9.4/intarray.html\" title=\"F.18. intarray\">intarray</a>模块返回的空数组改为零维数组（Bruce Momjian）</p>\n<p>此前，空数组作为零长度一维数组返回，其文本表示与零维数组（<code>{}</code>）看起来相同，但在数组操作中的行为不同。<span>intarray</span>在此领域的行为现在与内置数组操作符一致。</p>", "text": "将intarray模块返回的空数组改为零维数组（Bruce Momjian） 此前，空数组作为零长度一维数组返回，其文本表示与零维数组（{}）看起来相同，但在数组操作中的行为不同。intarray在此领域的行为现在与内置数组操作符一致。", "title": "将intarray模块返回的空数组改为零维数组", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "3eba2eb9091de75c6f733919d3e518f3e5abcc0beca6fcdcb472d982440a9b58", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "Change empty arrays returned by the intarray module to be zero-dimensional arrays (Bruce Momjian) Previously, empty arrays were returned as zero-length one-dimensional arrays, whose text representation looked the same as zero-dimensional arrays ({}), but they acted differently in array operations. intarray's behavior in this area now matches the built-in array operators.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/021", "db_id": "cf287ab236fb7834eb4bb33e1cf829f3", "patch_ids": [], "statement_hash": "56c8a7e64b806cf9001a02a1784a2f1921437f48a1f8fb80c9854d7a7ea43843", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-dd99b31a4bd867c8", "cves": [], "html": "<p><a href=\"/docs/9.4/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a>现在使用<code>-U</code>或<code>--username</code>指定用户名（Bruce Momjian）</p>\n<p>此前该选项拼作<code>-u</code>或<code>--user</code>，但这与其他工具不一致。</p>", "text": "pg_upgrade现在使用-U或--username指定用户名（Bruce Momjian） 此前该选项拼作-u或--user，但这与其他工具不一致。", "title": "pg_upgrade现在使用-U或--username指定用户名", "commits": [], "section": "兼容性", "category": "compatibility", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.4", "source_hash": "14b799f5ee9f0bd7221ee396aa2c1fb44994687c2f8e7f903073d6dde0ca9642", "section_path": ["兼容性"], "commit_groups": [], "identity_text": "pgupgrade now uses -U or --username to specify the user name (Bruce Momjian) Previously this option was spelled -u or --user, but that was inconsistent with other tools.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/migration/022", "db_id": "01e68b392d7921cd460914a20733267f", "patch_ids": [], "statement_hash": "94d17ed9e23f5d9a51ae1a23a86658d73ba4afdebd96f18d478cd22fdd2534c2", "relations": [], "version": "9.4.0", "category_label": "兼容性变化", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-be05a4d93e841f42", "cves": [], "html": "<p>允许动态注册、启动和终止<a href=\"/docs/9.4/bgworker.html\" title=\"第 45 章 后台工作进程\">后台工作进程</a>（Robert Haas）</p>\n<p>新的<code>worker_spi</code>模块展示了此功能的使用示例。</p>", "text": "允许动态注册、启动和终止后台工作进程（Robert Haas） 新的worker_spi模块展示了此功能的使用示例。", "title": "允许动态注册、启动和终止后台工作进程", "commits": [], "section": "服务器", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3", "source_hash": "56fc008475bff13b1f04bc65d69bcbd9f931951be4571c5bd7502790f8341ebb", "section_path": ["服务器"], "commit_groups": [], "identity_text": "Allow background worker processes to be dynamically registered, started and terminated (Robert Haas) The new worker_spi module shows an example of use of this feature.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/001", "db_id": "6bbf7c7fbfabd6d22747374fd1d44e42", "patch_ids": [], "statement_hash": "87018103150fc4ac4755363707e0153ff34860bd16c6a78be23129acbe25fc9a", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-cc51c1cc5f51323a", "cves": [], "html": "<p>允许动态分配共享内存段（Robert Haas、Amit Kapila）</p>\n<p>此功能在<code>test_shm_mq</code>模块中有演示。</p>", "text": "允许动态分配共享内存段（Robert Haas、Amit Kapila） 此功能在test_shm_mq模块中有演示。", "title": "允许动态分配共享内存段", "commits": [], "section": "服务器", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3", "source_hash": "29a628e8aa8f25eedd52049d4f5909c818b17d1bc10c75bef9885813ec0fc267", "section_path": ["服务器"], "commit_groups": [], "identity_text": "Allow dynamic allocation of shared memory segments (Robert Haas, Amit Kapila) This feature is illustrated in the test_shm_mq module.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/002", "db_id": "dc33cb4e630d49076f431f5ec067883f", "patch_ids": [], "statement_hash": "8daacb7e8f519d9ab6af2bef41ca0755f7d2bffd6c1b154435ad558249c3aae8", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-ee42438f2aec4eb1", "cves": [], "html": "<p>在崩溃恢复或立即关闭期间，向未及时关闭的子进程发送不可捕获的终止信号（<span>SIGKILL</span>）（MauMau, Álvaro Herrera）</p>\n<p>这减少了<a href=\"/docs/9.4/app-postmaster.html\" title=\"postmaster\"><span><span>postmaster</span></span></a>关闭后遗留孤儿子进程的可能性，同时确保在某些子进程已经<span>“<span>卡住</span>”</span>时崩溃恢复仍能继续。</p>", "text": "在崩溃恢复或立即关闭期间，向未及时关闭的子进程发送不可捕获的终止信号（SIGKILL）（MauMau, Álvaro Herrera） 这减少了postmaster关闭后遗留孤儿子进程的可能性，同时确保在某些子进程已经“卡住”时崩溃恢复仍能继续。", "title": "在崩溃恢复或立即关闭期间，向未及时关闭的子进程发送不可捕获的终止信号（SIGKILL）", "commits": [], "section": "服务器", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3", "source_hash": "5147ca838a62a84796bfb1a46056b81b7286b95ef16a77911de15c9e10a7d4b9", "section_path": ["服务器"], "commit_groups": [], "identity_text": "During crash recovery or immediate shutdown, send uncatchable termination signals (SIGKILL) to child processes that do not shut down promptly (MauMau, Álvaro Herrera) This reduces the likelihood of leaving orphaned child processes behind after app-postmaster shutdown, as well as ensuring that crash recovery can proceed if some child processes have become stuck.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/003", "db_id": "3b326fe80bca53370ef8664edf7e21d5", "patch_ids": [], "statement_hash": "f269c973228c3c5024cccb5a7107da291812b04b94892dc34331dd9b79ec4a12", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-186cc4107a640b9b", "cves": [], "html": "<p>改进数据库系统标识符的随机性（Tom Lane）</p>", "text": "改进数据库系统标识符的随机性（Tom Lane）", "title": "改进数据库系统标识符的随机性", "commits": [], "section": "服务器", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3", "source_hash": "15da52ee57d5c08467ad1e1606ccf0aa28376133d6013b2d98816f0ac264c69f", "section_path": ["服务器"], "commit_groups": [], "identity_text": "Improve randomness of the database system identifier (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/004", "db_id": "f82f7d18e10194b912075458a0157bda", "patch_ids": [], "statement_hash": "6947ca5d79e93f31d05ca4b99354aacc68c4a0f702fba7a0df888785f2721ba0", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-864f88546565f5d2", "cves": [], "html": "<p>使<a href=\"/docs/9.4/sql-vacuum.html\" title=\"VACUUM\"><span>VACUUM</span></a>向统计信息收集器正确报告已死但尚不能移除的行（Hari Babu）</p>\n<p>此前这些行被报告为活行。</p>", "text": "使VACUUM向统计信息收集器正确报告已死但尚不能移除的行（Hari Babu） 此前这些行被报告为活行。", "title": "使VACUUM向统计信息收集器正确报告已死但尚不能移除的行", "commits": [], "section": "服务器", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3", "source_hash": "c6fb23f3b6fb202a6af57670c49da5d8c624ea3f375900a39292f7e7458fe47a", "section_path": ["服务器"], "commit_groups": [], "identity_text": "Make SQL-VACUUM properly report dead but not-yet-removable rows to the statistics collector (Hari Babu) Previously these were reported as live rows.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/005", "db_id": "09b6ec6672cc553fa6950077a97ef9d4", "patch_ids": [], "statement_hash": "a69e1e915007f7476bb1ed0e2899bf9670e4e3ae215fa5ae4d99e7b17b47ccd1", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-3cb32694a4f6108a", "cves": [], "html": "<p>减小<a href=\"/docs/9.4/gin.html\" title=\"第 58 章 GIN 索引\"><acronym>GIN</acronym></a>索引的大小（Alexander Korotkov、Heikki Linnakangas）</p>\n<p>通过<a href=\"/docs/9.4/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a>升级的索引仍能正常工作，但仍是旧的、较大的<acronym>GIN</acronym>格式。使用<a href=\"/docs/9.4/sql-reindex.html\" title=\"REINDEX\"><span>REINDEX</span></a>可以按新格式重建旧的 GIN 索引。</p>", "text": "减小GIN索引的大小（Alexander Korotkov、Heikki Linnakangas） 通过pg_upgrade升级的索引仍能正常工作，但仍是旧的、较大的GIN格式。使用REINDEX可以按新格式重建旧的 GIN 索引。", "title": "减小GIN索引的大小", "commits": [], "section": "服务器 / 索引", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.3", "source_hash": "9413c50a99e9eb2033cc8bcd157376206522304023b72d24994946ccf53768bf", "section_path": ["服务器", "索引"], "commit_groups": [], "identity_text": "Reduce GIN index size (Alexander Korotkov, Heikki Linnakangas) Indexes upgraded via pgupgrade will work fine but will still be in the old, larger GIN format. Use SQL-REINDEX to recreate old GIN indexes in the new format.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/006", "db_id": "7aad6746e357fab367263b118f8f3b1e", "patch_ids": [], "statement_hash": "dadc3ba950b5670042d2edb8c78c25409b2273da4baf37c64d3e523565d06e04", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-6f3308eca0999d24", "cves": [], "html": "<p>提高多键 <a href=\"/docs/9.4/gin.html\" title=\"第 58 章 GIN 索引\"><acronym>GIN</acronym></a> 查找的速度（Alexander Korotkov、Heikki Linnakangas）</p>", "text": "提高多键 GIN 查找的速度（Alexander Korotkov、Heikki Linnakangas）", "title": "提高多键 GIN 查找的速度", "commits": [], "section": "服务器 / 索引", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.3", "source_hash": "77a1d25cbd35442cb26424ff273922c1133e0fc5706b9c7b04a3a8ab7ed9d398", "section_path": ["服务器", "索引"], "commit_groups": [], "identity_text": "Improve speed of multi-key GIN lookups (Alexander Korotkov, Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/007", "db_id": "f69712068fd21bc72b589fab320fa389", "patch_ids": [], "statement_hash": "c771e2b1b0978927481e93b14819b82153c6991214b8f6d60b67d37a924b23f6", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-68216ec0808ccb9d", "cves": [], "html": "<p>为<a href=\"/docs/9.4/datatype-net-types.html#DATATYPE-INET\" title=\"8.9.1. inet\"><code>inet</code></a>和<a href=\"/docs/9.4/datatype-net-types.html#DATATYPE-CIDR\" title=\"8.9.2. cidr\"><code>cidr</code></a>数据类型新增<a href=\"/docs/9.4/gist.html\" title=\"第 56 章 GiST 索引\"><acronym>GiST</acronym></a>索引支持（Emre Hasegeli）</p>\n<p>此类索引可改进<a href=\"/docs/9.4/functions-net.html#CIDR-INET-OPERATORS-TABLE\" title=\"表 9.34. cidr 和 inet 操作符\">子网和超网</a>查找以及排序比较。</p>", "text": "为inet和cidr数据类型新增GiST索引支持（Emre Hasegeli） 此类索引可改进子网和超网查找以及排序比较。", "title": "为inet和cidr数据类型新增GiST索引支持", "commits": [], "section": "服务器 / 索引", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.3", "source_hash": "0f512ccc57bac60cd0fa1312b0779f4a4315a57c8d3c696fc3bbe58054761961", "section_path": ["服务器", "索引"], "commit_groups": [], "identity_text": "Add GiST index support for inet and cidr data types (Emre Hasegeli) Such indexes improve subnet and supernet lookups and ordering comparisons.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/008", "db_id": "e0d64f244bd25fe25c66ec8f63afde1d", "patch_ids": [], "statement_hash": "09f46137e9cd37e823c9f9d75489f528c00d3a4bc2035d948288f5a22ae24725", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-89e9a305d870be56", "cves": [], "html": "<p>修复 B-tree 页删除中罕见的竞态条件（Heikki Linnakangas）</p>", "text": "修复 B-tree 页删除中罕见的竞态条件（Heikki Linnakangas）", "title": "修复 B-tree 页删除中罕见的竞态条件", "commits": [], "section": "服务器 / 索引", "category": "bugfix", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.3", "source_hash": "346cbcf0ada59fa0810d53af86a20ee79a61b7117a9c3e3c9a14da0c2e8995b9", "section_path": ["服务器", "索引"], "commit_groups": [], "identity_text": "Fix rare race condition in B-tree page deletion (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/009", "db_id": "06ece40b8e25b393925515bc395f69d2", "patch_ids": [], "statement_hash": "56f715d13a78060d3cc36ba3f0e1420311c33a853420d9c48603fb6af4e7e84d", "relations": [], "version": "9.4.0", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-9e833dec27695a05", "cves": [], "html": "<p>使被中断的 B-tree 页分裂的处理更加健壮（Heikki Linnakangas）</p>", "text": "使被中断的 B-tree 页分裂的处理更加健壮（Heikki Linnakangas）", "title": "使被中断的 B-tree 页分裂的处理更加健壮", "commits": [], "section": "服务器 / 索引", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.3", "source_hash": "c57917934adc57e155c94beecf4cf5f9adf7cf67c3d058f2261e0f2c7c32b9bc", "section_path": ["服务器", "索引"], "commit_groups": [], "identity_text": "Make the handling of interrupted B-tree page splits more robust (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/010", "db_id": "a2c2b46170996e572fad79e060e13149", "patch_ids": [], "statement_hash": "7e141ac11c63bd41f7d22717f2c0c2ecff0202861495f3dd5dd775953b0ebe41", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-383e233a072a7663", "cves": [], "html": "<p>允许多个后端并发插入<a href=\"/docs/9.4/wal.html\" title=\"第 29 章 可靠性与预写式日志\"><acronym>WAL</acronym></a>缓冲区（Heikki Linnakangas）</p>\n<p>这改进了并行写入性能。</p>", "text": "允许多个后端并发插入WAL缓冲区（Heikki Linnakangas） 这改进了并行写入性能。", "title": "允许多个后端并发插入WAL缓冲区", "commits": [], "section": "服务器 / 总体性能", "category": "performance", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.4", "source_hash": "474c339439f4a1d224976b77bd6437c7ddd33463ec656679cd132d4c86637198", "section_path": ["服务器", "总体性能"], "commit_groups": [], "identity_text": "Allow multiple backends to insert into WAL buffers concurrently (Heikki Linnakangas) This improves parallel write performance.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/011", "db_id": "e7db278f15b1aa84b046578510d45b95", "patch_ids": [], "statement_hash": "6c446fc2fd409389baf6db4015f9116e109191e5399e7dbb1646b67b84966405", "relations": [], "version": "9.4.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-1ec9663fd935f220", "cves": [], "html": "<p>有条件地只把已更新行的修改部分写入 <a href=\"/docs/9.4/wal.html\" title=\"第 29 章 可靠性与预写式日志\"><acronym>WAL</acronym></a>（Amit Kapila）</p>", "text": "有条件地只把已更新行的修改部分写入 WAL（Amit Kapila）", "title": "有条件地只把已更新行的修改部分写入 WAL", "commits": [], "section": "服务器 / 总体性能", "category": "performance", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.4", "source_hash": "0fad854397f3e27ce2f506c723cadeba3196103f00bfddaf3c0a39b05a5829a4", "section_path": ["服务器", "总体性能"], "commit_groups": [], "identity_text": "Conditionally write only the modified portion of updated rows to WAL (Amit Kapila)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/012", "db_id": "4e0fa43c316ad08655dc6024c3a1b5bf", "patch_ids": [], "statement_hash": "f5211a7cb2e6043e5d79d2270bf0bb3448d30ead8495383d46c3285c49fdce6c", "relations": [], "version": "9.4.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-d6945849edf413ff", "cves": [], "html": "<p>改进用作<a href=\"/docs/9.4/sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS\" title=\"4.2.8. 窗口函数调用\">窗口函数</a>的聚集函数的性能（David Rowley、Florian Pflug、Tom Lane）</p>", "text": "改进用作窗口函数的聚集函数的性能（David Rowley、Florian Pflug、Tom Lane）", "title": "改进用作窗口函数的聚集函数的性能", "commits": [], "section": "服务器 / 总体性能", "category": "performance", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.4", "source_hash": "b0cf541517cb749e458e3011165da368e3f70a2ddf79b230a88e433dff8c4328", "section_path": ["服务器", "总体性能"], "commit_groups": [], "identity_text": "Improve performance of aggregate functions used as window functions (David Rowley, Florian Pflug, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/013", "db_id": "cf4768b6273928dbf9f4576a704601a1", "patch_ids": [], "statement_hash": "320fd5a87bcd7169070188c09ed1ce18e52d65a2d87e8d413da27e871833b3af", "relations": [], "version": "9.4.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-7c19538c11ae23d8", "cves": [], "html": "<p>提高使用 <a href=\"/docs/9.4/datatype.html#DATATYPE-NUMERIC\" title=\"8.1. 数字类型\"><code>numeric</code></a> 状态值的聚集的速度（Hadi Moshayedi）</p>", "text": "提高使用 numeric 状态值的聚集的速度（Hadi Moshayedi）", "title": "提高使用 numeric 状态值的聚集的速度", "commits": [], "section": "服务器 / 总体性能", "category": "performance", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.4", "source_hash": "777fbfd0ce86ed6803eae7763b4e3f766634072acbe7f4c3cf4def362bdcc2c3", "section_path": ["服务器", "总体性能"], "commit_groups": [], "identity_text": "Improve speed of aggregates that use numeric state values (Hadi Moshayedi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/014", "db_id": "dc29c5772e80875995dd92d51a760950", "patch_ids": [], "statement_hash": "cc780c9f5a80e5c22c23c9b4b0a124672ae60eacc611ab6ddd53d9b3ed994c1a", "relations": [], "version": "9.4.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-954599a736c4dcca", "cves": [], "html": "<p>当表被<a href=\"/docs/9.4/sql-cluster.html\" title=\"CLUSTER\"><span>CLUSTER</span></a>或 <a href=\"/docs/9.4/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM FULL</code></a> 重写时，尝试<a href=\"/docs/9.4/maintenance.html#VACUUM-FOR-WRAPAROUND\" title=\"23.1.5. 防止事务 ID 回卷失败\">冻结</a>元组（Robert Haas、Andres Freund）</p>\n<p>这可以避免将来再冻结这些元组的需要。</p>", "text": "当表被CLUSTER或 VACUUM FULL 重写时，尝试冻结元组（Robert Haas、Andres Freund） 这可以避免将来再冻结这些元组的需要。", "title": "当表被CLUSTER或 VACUUM FULL 重写时，尝试冻结元组", "commits": [], "section": "服务器 / 总体性能", "category": "performance", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.4", "source_hash": "6ac7f388de9147e3bf2a0a539c1ddfd0f35f311b82a2affea5c737aaeb51deaf", "section_path": ["服务器", "总体性能"], "commit_groups": [], "identity_text": "Attempt to freeze tuples when tables are rewritten with SQL-CLUSTER or VACUUM FULL (Robert Haas, Andres Freund) This can avoid the need to freeze the tuples in the future.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/015", "db_id": "1e06349553214390832d4a1d1a593e5a", "patch_ids": [], "statement_hash": "92daae841034ee85ba109eaac3e19f7492b145531cc3d8c6a5de7ab12ceb1cc8", "relations": [], "version": "9.4.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-68d68554ff99f201", "cves": [], "html": "<p>提高<a href=\"/docs/9.4/sql-copy.html\" title=\"COPY\"><span>COPY</span></a>在带有默认 <a href=\"/docs/9.4/functions-sequence.html#FUNCTIONS-SEQUENCE-TABLE\" title=\"表 9.44. 序列函数\"><code>nextval()</code></a> 列时的速度（Simon Riggs）</p>", "text": "提高COPY在带有默认 nextval() 列时的速度（Simon Riggs）", "title": "提高COPY在带有默认 nextval() 列时的速度", "commits": [], "section": "服务器 / 总体性能", "category": "performance", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.4", "source_hash": "589e1797f22ebddbbec4cff00a98af32c320d5244dbe849dda189ec882100340", "section_path": ["服务器", "总体性能"], "commit_groups": [], "identity_text": "Improve speed of SQL-COPY with default nextval() columns (Simon Riggs)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/016", "db_id": "605cfc1a36ab96513b123c4bbb78ac6e", "patch_ids": [], "statement_hash": "40b55c5fa5949a4dc148dee2e67f1cee56193d708a299d902ffdb765140fa567", "relations": [], "version": "9.4.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-cda029795304cd44", "cves": [], "html": "<p>提高在同一会话中访问许多不同<a href=\"/docs/9.4/sql-createsequence.html\" title=\"CREATE SEQUENCE\">序列</a>的速度（David Rowley）</p>", "text": "提高在同一会话中访问许多不同序列的速度（David Rowley）", "title": "提高在同一会话中访问许多不同序列的速度", "commits": [], "section": "服务器 / 总体性能", "category": "performance", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.4", "source_hash": "6ea5022aa96b416febab16584e2b356485e6687b2d1d5ddc9e8a854f0b80610c", "section_path": ["服务器", "总体性能"], "commit_groups": [], "identity_text": "Improve speed of accessing many different sequences in the same session (David Rowley)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/017", "db_id": "d71acd9fffa0ab07936d163241d076ec", "patch_ids": [], "statement_hash": "c0ce41db23562951ae88f2266428c1f168db2007fa80794fb2f5ea8104bfefef", "relations": [], "version": "9.4.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-9854e61106b97700", "cves": [], "html": "<p>提高排序和 B-tree 索引构建期间内存中持有元组数量的硬限制（Noah Misch）</p>", "text": "提高排序和 B-tree 索引构建期间内存中持有元组数量的硬限制（Noah Misch）", "title": "提高排序和 B-tree 索引构建期间内存中持有元组数量的硬限制", "commits": [], "section": "服务器 / 总体性能", "category": "performance", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.4", "source_hash": "f1c92b8c3cc79906071f5e564ff0835248a72c230bd56a35a0976f5a2fa1f031", "section_path": ["服务器", "总体性能"], "commit_groups": [], "identity_text": "Raise hard limit on the number of tuples held in memory during sorting and B-tree index builds (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/018", "db_id": "4a7dc301e2623669636b526b303af874", "patch_ids": [], "statement_hash": "13e6ae988366eb213023f3e5588ff62cfbbd2fc585dffbd3766325fd3d4fa788", "relations": [], "version": "9.4.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-1333bbdeff5b69a6", "cves": [], "html": "<p>减少 <span>PL/pgSQL</span> <a href=\"/docs/9.4/sql-do.html\" title=\"DO\"><span>DO</span></a>块分配的内存（Tom Lane）</p>", "text": "减少 PL/pgSQL DO块分配的内存（Tom Lane）", "title": "减少 PL/pgSQL DO块分配的内存", "commits": [], "section": "服务器 / 总体性能", "category": "performance", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.4", "source_hash": "1b19478f0ac3571e9bf8a3d4881646ed634f44e9fd99b867cc260a1f76aed4cf", "section_path": ["服务器", "总体性能"], "commit_groups": [], "identity_text": "Reduce memory allocated by PL/pgSQL SQL-DO blocks (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/019", "db_id": "2c847c1cb01d5060558f274ff3993792", "patch_ids": [], "statement_hash": "5f58a394ea5eeece00a4064d9a5e9067573cf8807a4cb5e027b9f1893c527569", "relations": [], "version": "9.4.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-e06407671a85016c", "cves": [], "html": "<p>使规划器更激进地从混合的 <code>AND</code>/<code>OR</code> 子句中提取限制子句（Tom Lane）</p>", "text": "使规划器更激进地从混合的 AND/OR 子句中提取限制子句（Tom Lane）", "title": "使规划器更激进地从混合的 AND/OR 子句中提取限制子句", "commits": [], "section": "服务器 / 总体性能", "category": "performance", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.4", "source_hash": "4b1e2029f5686c24ca996a713b37d293e3a86eeccc4408a9b49188b399d73472", "section_path": ["服务器", "总体性能"], "commit_groups": [], "identity_text": "Make the planner more aggressive about extracting restriction clauses from mixed AND/OR clauses (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/020", "db_id": "c83d59e66a76334625901f1765c5bca9", "patch_ids": [], "statement_hash": "30beb45ffa4fa6b3432e498904674a2752eb6446358d42d8501651e63f460dec", "relations": [], "version": "9.4.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-68f7fa0c20276b7a", "cves": [], "html": "<p>禁止把易变 <code>WHERE</code> 子句下推到 <code>DISTINCT</code> 子查询中（Tom Lane）</p>\n<p>下推 <code>WHERE</code> 子句整体上可能产生更高效的计划，但代价是该子句的求值次数会多于查询文本所暗示的次数；因此若子句包含任何易变函数则不这样做。</p>", "text": "禁止把易变 WHERE 子句下推到 DISTINCT 子查询中（Tom Lane） 下推 WHERE 子句整体上可能产生更高效的计划，但代价是该子句的求值次数会多于查询文本所暗示的次数；因此若子句包含任何易变函数则不这样做。", "title": "禁止把易变 WHERE 子句下推到 DISTINCT 子查询中", "commits": [], "section": "服务器 / 总体性能", "category": "performance", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.4", "source_hash": "5b5fa33b273202980dbb32582a0ed0e5b1f43a6987613ed78b0a94972493d2e8", "section_path": ["服务器", "总体性能"], "commit_groups": [], "identity_text": "Disallow pushing volatile WHERE clauses down into DISTINCT subqueries (Tom Lane) Pushing down a WHERE clause can produce a more efficient plan overall, but at the cost of evaluating the clause more often than is implied by the text of the query; so don't do it if the clause contains any volatile functions.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/021", "db_id": "31750166ace2a1a026ec6ef4b5c5d872", "patch_ids": [], "statement_hash": "1b76b7396c4aa6381a3f2e51bc620990f3d3ca8273ffc6ebc1e35b8abe8d2ca8", "relations": [], "version": "9.4.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-d72ecaeefe9fa82f", "cves": [], "html": "<p>自动调整系统目录缓存的大小（Heikki Linnakangas）</p>\n<p>这减少了只访问少量表的会话的内存消耗，并改进了访问大量表的会话的性能。</p>", "text": "自动调整系统目录缓存的大小（Heikki Linnakangas） 这减少了只访问少量表的会话的内存消耗，并改进了访问大量表的会话的性能。", "title": "自动调整系统目录缓存的大小", "commits": [], "section": "服务器 / 总体性能", "category": "performance", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.4", "source_hash": "c3843758b8cd6c421c6f5dfe2630fc0390e73e9b8dd7d0b8d48e4738fa3ef777", "section_path": ["服务器", "总体性能"], "commit_groups": [], "identity_text": "Auto-resize the catalog caches (Heikki Linnakangas) This reduces memory consumption for sessions accessing only a few tables, and improves performance for sessions accessing many tables.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/022", "db_id": "cf3456311d2cba93729138a6948594fe", "patch_ids": [], "statement_hash": "39422c43ba87a9043ab8f50191b64c6f04b6a386c108e0d4381a7665fd37dacc", "relations": [], "version": "9.4.0", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-119204fe0148689f", "cves": [], "html": "<p>新增<a href=\"/docs/9.4/monitoring-stats.html#PG-STAT-ARCHIVER-VIEW\" title=\"表 27.3. pg_stat_archiver 视图\">pg_stat_archiver</a>系统视图以报告 <a href=\"/docs/9.4/wal.html\" title=\"第 29 章 可靠性与预写式日志\"><acronym>WAL</acronym></a> 归档器的活动（Gabriele Bartolini）</p>", "text": "新增pg_stat_archiver系统视图以报告 WAL 归档器的活动（Gabriele Bartolini）", "title": "新增pg_stat_archiver系统视图以报告 WAL 归档器的活动", "commits": [], "section": "服务器 / 监控", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.5", "source_hash": "693a9af3722a2803d1fa0dc44a51a9f11a5d332f616600810f0f57ff4836c0e5", "section_path": ["服务器", "监控"], "commit_groups": [], "identity_text": "Add pg-stat-archiver-view system view to report WAL archiver activity (Gabriele Bartolini)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/023", "db_id": "2f82c78c00bace7f3d52ecc4f7739060", "patch_ids": [], "statement_hash": "e2cbf4901b0787e1f3e6bc54687f3a946af5f3858b487b0f786051f9dfaad151", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-52ad693b05786f4c", "cves": [], "html": "<p>为<a href=\"/docs/9.4/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW\" title=\"表 27.6. pg_stat_all_tables 视图\">pg_stat_all_tables</a>及相关系统视图新增 <code>n_mod_since_analyze</code> 列（Mark Kirkwood）</p>\n<p>这些列显示了系统对表上次<a href=\"/docs/9.4/sql-analyze.html\" title=\"ANALYZE\"><span>ANALYZE</span></a>以来已更改元组数量的估计。该估计驱动何时自动分析的决策。</p>", "text": "为pg_stat_all_tables及相关系统视图新增 n_mod_since_analyze 列（Mark Kirkwood） 这些列显示了系统对表上次ANALYZE以来已更改元组数量的估计。该估计驱动何时自动分析的决策。", "title": "为pg_stat_all_tables及相关系统视图新增 n_mod_since_analyze 列", "commits": [], "section": "服务器 / 监控", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.5", "source_hash": "43fc53be13cfb2866a66c1790d9a47a4eaf91a36430cfe027b6a0e36fc3c62b8", "section_path": ["服务器", "监控"], "commit_groups": [], "identity_text": "Add n_mod_since_analyze columns to pg-stat-all-tables-view and related system views (Mark Kirkwood) These columns expose the system's estimate of the number of changed tuples since the table's last sql-analyze . This estimate drives decisions about when to auto-analyze.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/024", "db_id": "597b2c3b830bc014342a7c6746f1bc8a", "patch_ids": [], "statement_hash": "9c7cbd14f5a4f359eed52e8c2d2feaf08d29b5e69f9177229b832342356665c3", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-56ce96a5d6005fed", "cves": [], "html": "<p>为系统视图<a href=\"/docs/9.4/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW\" title=\"表 27.2. pg_stat_activity 视图\">pg_stat_activity</a>新增 <code>backend_xid</code> 和 <code>backend_xmin</code> 列，并为<a href=\"/docs/9.4/monitoring-stats.html#PG-STAT-REPLICATION-VIEW\" title=\"表 27.12. pg_stat_replication 视图\">pg_stat_replication</a>新增 <code>backend_xmin</code> 列（Christian Kruse）</p>", "text": "为系统视图pg_stat_activity新增 backend_xid 和 backend_xmin 列，并为pg_stat_replication新增 backend_xmin 列（Christian Kruse）", "title": "为系统视图pg_stat_activity新增 backend_xid 和 backend_xmin 列，并为pg_stat_replication新增 backend_xmin 列", "commits": [], "section": "服务器 / 监控", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.5", "source_hash": "a9cc97ab5707453432a07faa4097f141f9668663aed4e21f27b8eeb7f0dbadc5", "section_path": ["服务器", "监控"], "commit_groups": [], "identity_text": "Add backend_xid and backend_xmin columns to the system view pg-stat-activity-view , and a backend_xmin column to pg-stat-replication-view (Christian Kruse)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/025", "db_id": "4132b0c71485641a93a60584c77ef4b2", "patch_ids": [], "statement_hash": "e6d9fc0b3f4729333d97502d6fd7cef9889d27dccd089d93bf0d9265a6fb5abd", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-b35b90c72d0cef95", "cves": [], "html": "<p>新增对 <acronym>SSL</acronym> <acronym>ECDH</acronym> 密钥交换的支持（Marko Kreen）</p>\n<p>这允许使用椭圆曲线密钥进行服务器认证。此类密钥比 <acronym>RSA</acronym> 密钥更快且安全性更好。新增配置参数<a href=\"/docs/9.4/runtime-config-connection.html#GUC-SSL-ECDH-CURVE\">ssl_ecdh_curve</a>控制用于 <acronym>ECDH</acronym> 的曲线。</p>", "text": "新增对 SSL ECDH 密钥交换的支持（Marko Kreen） 这允许使用椭圆曲线密钥进行服务器认证。此类密钥比 RSA 密钥更快且安全性更好。新增配置参数ssl_ecdh_curve控制用于 ECDH 的曲线。", "title": "新增对 SSL ECDH 密钥交换的支持", "commits": [], "section": "服务器 / SSL", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.6", "source_hash": "4e9d38b78a279f193d60ba04c990ed1ba9b82084d3b513a3e9110b2423504168", "section_path": ["服务器", "SSL"], "commit_groups": [], "identity_text": "Add support for SSL ECDH key exchange (Marko Kreen) This allows use of Elliptic Curve keys for server authentication. Such keys are faster and have better security than RSA keys. The new configuration parameter guc-ssl-ecdh-curve controls which curve is used for ECDH.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/026", "db_id": "94a00034f4c1eec93b659ee8428118d2", "patch_ids": [], "statement_hash": "f22fb6c77263987207675273c41e0748467f4394b44d6d5960b195c9afcf71f0", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-f92777fcd0da6fc1", "cves": [], "html": "<p>改进<a href=\"/docs/9.4/runtime-config-connection.html#GUC-SSL-CIPHERS\">ssl_ciphers</a>的默认设置（Marko Kreen）</p>", "text": "改进ssl_ciphers的默认设置（Marko Kreen）", "title": "改进ssl_ciphers的默认设置", "commits": [], "section": "服务器 / SSL", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.6", "source_hash": "b5a3a36ae34bead022b25cd603a9961f3668ee9d0cdae19b6da5f8280971a221", "section_path": ["服务器", "SSL"], "commit_groups": [], "identity_text": "Improve the default guc-ssl-ciphers setting (Marko Kreen)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/027", "db_id": "b5547675d0c36dec06d6d30ce0bc66e2", "patch_ids": [], "statement_hash": "124709d658a3d5b200a5977aa55ee71ca27a17cb72085b3a15ae5ac9fabc00c8", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-e56d0e0ca3bd8b4e", "cves": [], "html": "<p>默认情况下，现在由服务器而非客户端控制 <acronym>SSL</acronym> 密码的偏好顺序（Marko Kreen）</p>\n<p>此前，<a href=\"/docs/9.4/runtime-config-connection.html#GUC-SSL-CIPHERS\">ssl_ciphers</a>指定的顺序通常被忽略，转而采用客户端默认值，而大多数 <span>PostgreSQL</span> 客户端的默认值不可配置。如有需要，可以通过新的配置参数<a href=\"/docs/9.4/runtime-config-connection.html#GUC-SSL-PREFER-SERVER-CIPHERS\">ssl_prefer_server_ciphers</a>恢复以前的行为。</p>", "text": "默认情况下，现在由服务器而非客户端控制 SSL 密码的偏好顺序（Marko Kreen） 此前，ssl_ciphers指定的顺序通常被忽略，转而采用客户端默认值，而大多数 PostgreSQL 客户端的默认值不可配置。如有需要，可以通过新的配置参数ssl_prefer_server_ciphers恢复以前的行为。", "title": "默认情况下，现在由服务器而非客户端控制 SSL 密码的偏好顺序", "commits": [], "section": "服务器 / SSL", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.6", "source_hash": "ed93faabe00c1022c270133b194ef71af156e8706abd9949b1cc2a90164040c4", "section_path": ["服务器", "SSL"], "commit_groups": [], "identity_text": "By default, the server not the client now controls the preference order of SSL ciphers (Marko Kreen) Previously, the order specified by guc-ssl-ciphers was usually ignored in favor of client-side defaults, which are not configurable in most PostgreSQL clients. If desired, the old behavior can be restored via the new configuration parameter guc-ssl-prefer-server-ciphers .", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/028", "db_id": "4586891d2a805a07a8d8532859822149", "patch_ids": [], "statement_hash": "8c7b8aefede56399a760d4a8f96dd325bd4a1b187d2819ec70bcee270a4edcd8", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-80a1bfed9d8efba2", "cves": [], "html": "<p>使<a href=\"/docs/9.4/runtime-config-logging.html#GUC-LOG-CONNECTIONS\">log_connections</a>显示 <acronym>SSL</acronym> 加密信息（Andreas Kunert）</p>", "text": "使log_connections显示 SSL 加密信息（Andreas Kunert）", "title": "使log_connections显示 SSL 加密信息", "commits": [], "section": "服务器 / SSL", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.6", "source_hash": "04e316dbe7792bb336725ccbcc058397790387857158504c6c271d3ad6a8892f", "section_path": ["服务器", "SSL"], "commit_groups": [], "identity_text": "Make guc-log-connections show SSL encryption information (Andreas Kunert)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/029", "db_id": "48cfdbcd6f25ae047312e7cfda50cb97", "patch_ids": [], "statement_hash": "37aae07843303ca5eeb2faeb8f63496dc5c1fb8a04231b7fc0398d9e7f5f5b6e", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-adbc2f242bcd275a", "cves": [], "html": "<p>改进 <acronym>SSL</acronym> 重新协商的处理（Álvaro Herrera）</p>", "text": "改进 SSL 重新协商的处理（Álvaro Herrera）", "title": "改进 SSL 重新协商的处理", "commits": [], "section": "服务器 / SSL", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.6", "source_hash": "7ff291274ea2c0743c98492da667129a373fdf557a0850986569426835d2cb22", "section_path": ["服务器", "SSL"], "commit_groups": [], "identity_text": "Improve SSL renegotiation handling (Álvaro Herrera)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/030", "db_id": "5ca7f6281c78dcd84d46b8109020af8d", "patch_ids": [], "statement_hash": "5d081f14cf911b039417a77dee33028c6d79ccffadbbf1c0520998baaaf80218", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-deaa922cce665279", "cves": [], "html": "<p>新增 <acronym>SQL</acronym> 命令<a href=\"/docs/9.4/sql-altersystem.html\" title=\"ALTER SYSTEM\"><span>ALTER SYSTEM</span></a>，用于更改 <code>postgresql.conf</code> 配置文件条目（Amit Kapila）</p>\n<p>此前此类设置只能通过手工编辑 <code>postgresql.conf</code> 来更改。</p>", "text": "新增 SQL 命令ALTER SYSTEM，用于更改 postgresql.conf 配置文件条目（Amit Kapila） 此前此类设置只能通过手工编辑 postgresql.conf 来更改。", "title": "新增 SQL 命令ALTER SYSTEM，用于更改 postgresql.conf 配置文件条目", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "ecb2ababb4f253fc6a1b359b54b201cd3bd257ccc98f6ba052deaf80794e154c", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "Add new SQL command SQL-ALTERSYSTEM for changing postgresql.conf configuration file entries (Amit Kapila) Previously such settings could only be changed by manually editing postgresql.conf.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/031", "db_id": "9600cf9d9ddbcfa2b002dc604b0ccb8e", "patch_ids": [], "statement_hash": "3b9a9a09fbf393aca5661819add2837c8423d45910bb48ebdd6da6e37b6389cb", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-ec4f0f6a4554abd8", "cves": [], "html": "<p>新增<a href=\"/docs/9.4/runtime-config-resource.html#GUC-AUTOVACUUM-WORK-MEM\">autovacuum_work_mem</a>配置参数，以控制自动清理工作进程使用的内存量（Peter Geoghegan）</p>", "text": "新增autovacuum_work_mem配置参数，以控制自动清理工作进程使用的内存量（Peter Geoghegan）", "title": "新增autovacuum_work_mem配置参数，以控制自动清理工作进程使用的内存量", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "65a1bde81e8d0d1c4a83883eddf8ef95df711796435df3d7a8c57548f33866b4", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "Add guc-autovacuum-work-mem configuration parameter to control the amount of memory used by autovacuum workers (Peter Geoghegan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/032", "db_id": "516fdf022e6445d0a1cfdca0dd70e321", "patch_ids": [], "statement_hash": "94fa03792275fac8e04384cf5735f926c12808927f4c35bd0c4717c78c5b63cc", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-bffb49dbea8c469a", "cves": [], "html": "<p>新增<a href=\"/docs/9.4/runtime-config-resource.html#GUC-HUGE-PAGES\">huge_pages</a>参数，允许在 Linux 上使用大内存页（Christian Kruse、Richard Poole、Abhijit Menon-Sen）</p>\n<p>这可以改进大内存系统上的性能。</p>", "text": "新增huge_pages参数，允许在 Linux 上使用大内存页（Christian Kruse、Richard Poole、Abhijit Menon-Sen） 这可以改进大内存系统上的性能。", "title": "新增huge_pages参数，允许在 Linux 上使用大内存页", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "63afd2562d69cf830b2902135cbde169b2534922394788a6f8f7a78b8fb1709e", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "Add guc-huge-pages parameter to allow using huge memory pages on Linux (Christian Kruse, Richard Poole, Abhijit Menon-Sen) This can improve performance on large-memory systems.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/033", "db_id": "8a8a6eeeebe802a6ba07dde4a975eac7", "patch_ids": [], "statement_hash": "6d57949dc52caddc75443d32865681a58c57052ff9029353a6a3ff1bd1e42eb7", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-ad8244affe6ce25f", "cves": [], "html": "<p>新增<a href=\"/docs/9.4/runtime-config-resource.html#GUC-MAX-WORKER-PROCESSES\">max_worker_processes</a>参数，以限制后台工作进程的数量（Robert Haas）</p>\n<p>这有助于把备库服务器配置为拥有所需数量的工作进程（与主库相同）。</p>", "text": "新增max_worker_processes参数，以限制后台工作进程的数量（Robert Haas） 这有助于把备库服务器配置为拥有所需数量的工作进程（与主库相同）。", "title": "新增max_worker_processes参数，以限制后台工作进程的数量", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "34e5645f7dfc4abe8f893a668c65db5138c6ea585134454b944769844338944a", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "Add guc-max-worker-processes parameter to limit the number of background workers (Robert Haas) This is helpful in configuring a standby server to have the required number of worker processes (the same as the primary).", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/034", "db_id": "42f5ed995b3ca03589b9f459a351ca7a", "patch_ids": [], "statement_hash": "1b1f977133c7d810b85ad623c831a4850744076a8773020f3e1845c4dac5e37a", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-56b5eb59daa5feea", "cves": [], "html": "<p>新增仅限超级用户的<a href=\"/docs/9.4/runtime-config-client.html#GUC-SESSION-PRELOAD-LIBRARIES\">session_preload_libraries</a>参数，用于在会话启动时加载库（Peter Eisentraut）</p>\n<p>与<a href=\"/docs/9.4/runtime-config-client.html#GUC-LOCAL-PRELOAD-LIBRARIES\">local_preload_libraries</a>不同，此参数可以加载任何共享库，而不仅仅是 <code>$libdir/plugins</code> 目录中的库。</p>", "text": "新增仅限超级用户的session_preload_libraries参数，用于在会话启动时加载库（Peter Eisentraut） 与local_preload_libraries不同，此参数可以加载任何共享库，而不仅仅是 $libdir/plugins 目录中的库。", "title": "新增仅限超级用户的session_preload_libraries参数，用于在会话启动时加载库", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "34dc3214d799429eda85a57373d6ee3602b1fe79648b71cf5f6982d421d60b65", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "Add superuser-only guc-session-preload-libraries parameter to load libraries at session start (Peter Eisentraut) In contrast to guc-local-preload-libraries , this parameter can load any shared library, not just those in the $libdir/plugins directory.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/035", "db_id": "5511525445d5eea457b71fd54f9285c7", "patch_ids": [], "statement_hash": "526bb051aff35c9db98f5a96eae98561a45dccb8fad474beca349312756ce841", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-96f2f36e6655094a", "cves": [], "html": "<p>新增<a href=\"/docs/9.4/runtime-config-wal.html#GUC-WAL-LOG-HINTS\">wal_log_hints</a>参数，用于启用提示位（hint-bit）变更的 WAL 日志（Sawada Masahiko）</p>\n<p>提示位变更通常不记录日志，启用了校验和时除外。这对 <span>pg_rewind</span> 等外部工具很有用。</p>", "text": "新增wal_log_hints参数，用于启用提示位（hint-bit）变更的 WAL 日志（Sawada Masahiko） 提示位变更通常不记录日志，启用了校验和时除外。这对 pg_rewind 等外部工具很有用。", "title": "新增wal_log_hints参数，用于启用提示位（hint-bit）变更的 WAL 日志", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "ca54aad36687981af8239bddac985bdc6a22790642058f70eb824c76d239cdf5", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "Add guc-wal-log-hints parameter to enable WAL logging of hint-bit changes (Sawada Masahiko) Hint bit changes are not normally logged, except when checksums are enabled. This is useful for external tools like pg_rewind.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/036", "db_id": "a1bd9396deaa83aa33410939f61d2fda", "patch_ids": [], "statement_hash": "acc3c9657644ebdf185a4f0ffa92cc51537ddc5c05b4cfc3e76b270e655add90", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-fca93fd93726cece", "cves": [], "html": "<p>将<a href=\"/docs/9.4/runtime-config-resource.html#GUC-WORK-MEM\">work_mem</a>和<a href=\"/docs/9.4/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM\">maintenance_work_mem</a>的默认设置提高到原来的四倍（Bruce Momjian）</p>\n<p>新的默认值分别为 4MB 和 64MB。</p>", "text": "将work_mem和maintenance_work_mem的默认设置提高到原来的四倍（Bruce Momjian） 新的默认值分别为 4MB 和 64MB。", "title": "将work_mem和maintenance_work_mem的默认设置提高到原来的四倍", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "f997e0da19fd5d0a6e4c71f77583a6db4b6fe7d69ce681225955538b7c01dea4", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "Increase the default settings of guc-work-mem and guc-maintenance-work-mem by four times (Bruce Momjian) The new defaults are 4MB and 64MB respectively.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/037", "db_id": "4b4e38014405f779c8751f7bd2aa692f", "patch_ids": [], "statement_hash": "46239a5494872eceb2a91aebe91287d6e2862015826065e074fab89f4faaa0a6", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-852fc7b42824b448", "cves": [], "html": "<p>将<a href=\"/docs/9.4/runtime-config-query.html#GUC-EFFECTIVE-CACHE-SIZE\">effective_cache_size</a>的默认设置提高到 4GB（Bruce Momjian、Tom Lane）</p>", "text": "将effective_cache_size的默认设置提高到 4GB（Bruce Momjian、Tom Lane）", "title": "将effective_cache_size的默认设置提高到 4GB", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "9f7218c3c5daa7cdf152584f7a6f4cce7a6919f20b143b93f7f1e8fb9f632d4b", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "Increase the default setting of guc-effective-cache-size to 4GB (Bruce Momjian, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/038", "db_id": "2362b923433619c47d9f868a1ae98c1b", "patch_ids": [], "statement_hash": "bb7003fa01822a705a33bc2495fd22ce8529a5f4a3af1fffab0c74dc7a527457", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-0dd312de39d1cb2e", "cves": [], "html": "<p>允许在<a href=\"/docs/9.4/runtime-config-logging.html#GUC-LOG-LINE-PREFIX\">log_line_prefix</a>中指定 <code>printf</code> 风格的空格填充（David Rowley）</p>", "text": "允许在log_line_prefix中指定 printf 风格的空格填充（David Rowley）", "title": "允许在log_line_prefix中指定 printf 风格的空格填充", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "aed188f6efbdc3165368c944d0952b1a37f8a05c81aaf7c58eefa804608dcaf3", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "Allow printf-style space padding to be specified in guc-log-line-prefix (David Rowley)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/039", "db_id": "c77480aff8b6d5cdcb2f5a2efcda94ed", "patch_ids": [], "statement_hash": "2b6aa2d5033af665439047db18e526ede46e44889d920517136b0bd3f9a83900", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-a63fa1d2c467e504", "cves": [], "html": "<p>允许在指定配置变量值时使用太字节单位（<code>TB</code>）（Simon Riggs）</p>", "text": "允许在指定配置变量值时使用太字节单位（TB）（Simon Riggs）", "title": "允许在指定配置变量值时使用太字节单位（TB）", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "f3a286bcaf57e15b8a6a21c3b8d14ea08f164293c7ba79794abdd15d3ef06831", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "Allow terabyte units (TB) to be used when specifying configuration variable values (Simon Riggs)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/040", "db_id": "76a82a6541066d97439e2615b1456de6", "patch_ids": [], "statement_hash": "ec4b943e658b82e46ff21639ae1ccd6409a40b28885b24502bf037d58ec139bc", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-a4c8b91934a13d20", "cves": [], "html": "<p>在<a href=\"/docs/9.4/runtime-config-logging.html#GUC-LOG-LOCK-WAITS\">log_lock_waits</a>日志消息中显示锁持有者和等待者的 <acronym>PID</acronym>，并改进关系相关信息（Christian Kruse）</p>", "text": "在log_lock_waits日志消息中显示锁持有者和等待者的 PID，并改进关系相关信息（Christian Kruse）", "title": "在log_lock_waits日志消息中显示锁持有者和等待者的 PID，并改进关系相关信息", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "78ae9969945bf6563a94e44cd151410e4fd3d572802bf991b1182bae8262a37a", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "Show PIDs of lock holders and waiters and improve information about relations in guc-log-lock-waits log messages (Christian Kruse)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/041", "db_id": "1a1afa3a58b1623be5778ec951983a90", "patch_ids": [], "statement_hash": "a023242a7e12f3b7d58973c9fb21618a04a3738ad386f70d372c0c52e2c0598b", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-0d768b4956f1f9cc", "cves": [], "html": "<p>降低加载共享库时的服务器日志级别（Peter Geoghegan）</p>\n<p>以前的级别是 <code>LOG</code>，对于按会话加载的库来说过于冗长。</p>", "text": "降低加载共享库时的服务器日志级别（Peter Geoghegan） 以前的级别是 LOG，对于按会话加载的库来说过于冗长。", "title": "降低加载共享库时的服务器日志级别", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "2532d0989d43abeb95587d7333e01ccb8f09dacbad13b7c6c0bbec0fea934e70", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "Reduce server logging level when loading shared libraries (Peter Geoghegan) The previous level was LOG, which was too verbose for libraries loaded per-session.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/042", "db_id": "88e4eac3e2c3d60074dcc0668e17cf9d", "patch_ids": [], "statement_hash": "c55cc9966f4b2e4e5730a7a42e0cd4a2c2c8ad40de3b4f987496d3d838dcb5e6", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-639542ff6ecc7bc0", "cves": [], "html": "<p>在 Windows 上，使 <code>SQL_ASCII</code> 编码的数据库和服务器进程（例如<a href=\"/docs/9.4/app-postmaster.html\" title=\"postmaster\"><span><span>postmaster</span></span></a>）以服务器 Windows 用户区域设置的字符编码发出消息（Alexander Law、Noah Misch）</p>\n<p>此前这些消息以 Windows <acronym>ANSI</acronym> 代码页输出。</p>", "text": "在 Windows 上，使 SQL_ASCII 编码的数据库和服务器进程（例如postmaster）以服务器 Windows 用户区域设置的字符编码发出消息（Alexander Law、Noah Misch） 此前这些消息以 Windows ANSI 代码页输出。", "title": "在 Windows 上，使 SQL_ASCII 编码的数据库和服务器进程（例如postmaster）以服务器 Windows 用户区域设置的字符编码发出消息", "commits": [], "section": "服务器 / 服务器设置", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.3.7", "source_hash": "c74d2448dcd521892519edfaa06d4f412fa797cd62b645fc058b43ed36c892c1", "section_path": ["服务器", "服务器设置"], "commit_groups": [], "identity_text": "On Windows, make SQL_ASCII-encoded databases and server processes (e.g., app-postmaster ) emit messages in the character encoding of the server's Windows user locale (Alexander Law, Noah Misch) Previously these messages were output in the Windows ANSI code page.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/043", "db_id": "5a48543315c59cf240156344449afafa", "patch_ids": [], "statement_hash": "c5fdaac50a4554b0943ca36e2f4a8fb5b462c8e4d5b9bfe8625aab7738584ea9", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-4cc01a59391e634e", "cves": [], "html": "<p>新增<a href=\"/docs/9.4/warm-standby.html#STREAMING-REPLICATION-SLOTS\" title=\"25.2.6. 复制槽\">复制槽</a>，以协调流复制备库与其流来源节点的活动（Andres Freund、Robert Haas）</p>\n<p>复制槽允许在主库上保留 <acronym>WAL</acronym> 文件等资源，直到备库服务器不再需要它们。</p>", "text": "新增复制槽，以协调流复制备库与其流来源节点的活动（Andres Freund、Robert Haas） 复制槽允许在主库上保留 WAL 文件等资源，直到备库服务器不再需要它们。", "title": "新增复制槽，以协调流复制备库与其流来源节点的活动", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4", "source_hash": "ea00084c07865b1b487d6ff52c88ea265b39010caaf10780936a69722be7ef31", "section_path": ["复制与恢复"], "commit_groups": [], "identity_text": "Add replication slots to coordinate activity on streaming standbys with the node they are streaming from (Andres Freund, Robert Haas) Replication slots allow preservation of resources like WAL files on the primary until they are no longer needed by standby servers.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/044", "db_id": "b5339fd59177468c25a87bd09b9a6ed5", "patch_ids": [], "statement_hash": "3e8414575e68244ed55722bedf4833dd8538b9ccecb50956ed187f4bd63074e7", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-b710b15be81ba1ec", "cves": [], "html": "<p>新增恢复参数<a href=\"/docs/9.4/standby-settings.html#RECOVERY-MIN-APPLY-DELAY\">recovery_min_apply_delay</a>以延迟复制（Robert Haas, Fabrízio de Royes Mello、Simon Riggs）</p>\n<p>延迟备库服务器上的重放对于从用户错误中恢复可能很有用。</p>", "text": "新增恢复参数recovery_min_apply_delay以延迟复制（Robert Haas, Fabrízio de Royes Mello、Simon Riggs） 延迟备库服务器上的重放对于从用户错误中恢复可能很有用。", "title": "新增恢复参数recovery_min_apply_delay以延迟复制", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4", "source_hash": "7413dace8ca5108ec33820097ae79ce76aeec58142e74342778f81be341061df", "section_path": ["复制与恢复"], "commit_groups": [], "identity_text": "Add recovery parameter recovery-min-apply-delay to delay replication (Robert Haas, Fabrízio de Royes Mello, Simon Riggs) Delaying replay on standby servers can be useful for recovering from user errors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/045", "db_id": "18c6c73e4b2a436c5cff78cce907e807", "patch_ids": [], "statement_hash": "53141d1ddcac011217542954de2cc34493f9e42cb82bf698ed7c68b036327379", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-944163048dc617f7", "cves": [], "html": "<p>新增<a href=\"/docs/9.4/recovery-target-settings.html#RECOVERY-TARGET\">recovery_target</a>选项 <code>immediate</code>，在达到一致状态后立即停止 <a href=\"/docs/9.4/wal.html\" title=\"第 29 章 可靠性与预写式日志\"><acronym>WAL</acronym></a> 恢复（MauMau、Heikki Linnakangas）</p>", "text": "新增recovery_target选项 immediate，在达到一致状态后立即停止 WAL 恢复（MauMau、Heikki Linnakangas）", "title": "新增recovery_target选项 immediate，在达到一致状态后立即停止 WAL 恢复", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4", "source_hash": "61f84facd316eaad6d31fa1f7c2d7a564f75a816a5c3da9fda869686dcab07ec", "section_path": ["复制与恢复"], "commit_groups": [], "identity_text": "Add recovery-target option immediate to stop WAL recovery as soon as a consistent state is reached (MauMau, Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/046", "db_id": "1468649948f2d48adadc454691568704", "patch_ids": [], "statement_hash": "c879a4f0f5cf76655046e262da00b86c65fa2418e53f51b7ba76f7245e40a8df", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-df085c7700237e40", "cves": [], "html": "<p>改进恢复目标的处理（Heikki Linnakangas）</p>\n<p><a href=\"/docs/9.4/functions-admin.html#FUNCTIONS-RECOVERY-INFO-TABLE\" title=\"表 9.66. 恢复信息函数\"><code>pg_last_xact_replay_timestamp()</code></a> 报告的时间戳现在反映已提交的记录，而不是将要提交的事务。恢复到还原点现在会重放到还原点本身，而不是在还原点之前停止。</p>", "text": "改进恢复目标的处理（Heikki Linnakangas） pg_last_xact_replay_timestamp() 报告的时间戳现在反映已提交的记录，而不是将要提交的事务。恢复到还原点现在会重放到还原点本身，而不是在还原点之前停止。", "title": "改进恢复目标的处理", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4", "source_hash": "0e79a45d52db0b62d2494d1187e0bf0cb951de935818962f15f531eed2518e19", "section_path": ["复制与恢复"], "commit_groups": [], "identity_text": "Improve recovery target processing (Heikki Linnakangas) The timestamp reported by pg_last_xact_replay_timestamp() now reflects already-committed records, not transactions about to be committed. Recovering to a restore point now replays the restore point, rather than stopping just before the restore point.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/047", "db_id": "ae3eb09230b5ba0507ec3dc05edeb981", "patch_ids": [], "statement_hash": "bbc35acf23fe3b5e76a93d2843221b2f5da697cecc630b09396ddecdf5931d74", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-62177b11ae80f099", "cves": [], "html": "<p><a href=\"/docs/9.4/functions-admin.html#FUNCTIONS-ADMIN-BACKUP-TABLE\" title=\"表 9.65. 备份控制函数\"><code>pg_switch_xlog()</code></a> 现在会清除旧 <acronym>WAL</acronym> 文件中所有未使用的尾部空间（Heikki Linnakangas）</p>\n<p>这提高了 <acronym>WAL</acronym> 文件的压缩率。</p>", "text": "pg_switch_xlog() 现在会清除旧 WAL 文件中所有未使用的尾部空间（Heikki Linnakangas） 这提高了 WAL 文件的压缩率。", "title": "pg_switch_xlog() 现在会清除旧 WAL 文件中所有未使用的尾部空间", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4", "source_hash": "e1fe08b6137466d7c7d515e618a060a77ee40bce26cfecbe079229923de3b0d4", "section_path": ["复制与恢复"], "commit_groups": [], "identity_text": "pg_switch_xlog() now clears any unused trailing space in the old WAL file (Heikki Linnakangas) This improves the compression ratio for WAL files.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/048", "db_id": "1a58dba97103d15b4af7b63789b3b271", "patch_ids": [], "statement_hash": "22edaa9092b9b05503cee54310fbc54204642ca12578e07d2c3fb500631a92ba", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-12eacde142918be1", "cves": [], "html": "<p>报告<a href=\"/docs/9.4/recovery-config.html#ARCHIVE-RECOVERY-SETTINGS\" title=\"26.1. 归档恢复设置\">外部恢复命令</a>的失败返回码（Peter Eisentraut）</p>", "text": "报告外部恢复命令的失败返回码（Peter Eisentraut）", "title": "报告外部恢复命令的失败返回码", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4", "source_hash": "9f277db0ad6156105aa8dd06a18500aa4abb65981926b97b976a2a228bcd205f", "section_path": ["复制与恢复"], "commit_groups": [], "identity_text": "Report failure return codes from external recovery commands (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/049", "db_id": "0d539fbec09b7d66ef2770a3d93497da", "patch_ids": [], "statement_hash": "54b12e60a52a7797c0359089c98a00340e56c0f695b87d9629ace9ff4d4e4087", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-fe0fbcc8b126f7d0", "cves": [], "html": "<p>减少 <acronym>WAL</acronym> 重放期间的自旋锁争用（Heikki Linnakangas）</p>", "text": "减少 WAL 重放期间的自旋锁争用（Heikki Linnakangas）", "title": "减少 WAL 重放期间的自旋锁争用", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4", "source_hash": "fe0f31e9676a5b98ce5892ecb64c2eae28c44c13ced7484e5fe28124ff22beb3", "section_path": ["复制与恢复"], "commit_groups": [], "identity_text": "Reduce spinlock contention during WAL replay (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/050", "db_id": "38a59bd8817a827c7ed268424c8f4dcb", "patch_ids": [], "statement_hash": "5bf4c252c0ab926e6f249c08fe4bf34c95b9f3bde8ce51562118469499d4b8fb", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-8a27d45dbb59869b", "cves": [], "html": "<p>更频繁地写入运行中事务的 <acronym>WAL</acronym> 记录（Andres Freund）</p>\n<p>这使备库服务器能够更快启动并更积极地清理资源。</p>", "text": "更频繁地写入运行中事务的 WAL 记录（Andres Freund） 这使备库服务器能够更快启动并更积极地清理资源。", "title": "更频繁地写入运行中事务的 WAL 记录", "commits": [], "section": "复制与恢复", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4", "source_hash": "9ffe292ba0e408f8784880f1b2b271102f32132c66f544d15f1505c9a9513bd1", "section_path": ["复制与恢复"], "commit_groups": [], "identity_text": "Write WAL records of running transactions more frequently (Andres Freund) This allows standby servers to start faster and clean up resources more aggressively.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/051", "db_id": "af6d2656ba591da1c4a489175af12275", "patch_ids": [], "statement_hash": "37ad0c21f981ef13a91e764df51381786ff28d0134e6b06012ffeac6e4201547", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-12f9aa4328761de3", "cves": [], "html": "<p>新增对 WAL 数据<a href=\"/docs/9.4/logicaldecoding.html\" title=\"第 46 章 逻辑解码\">逻辑解码</a>的支持，允许以可自定义的格式流出数据库变更（Andres Freund）</p>", "text": "新增对 WAL 数据逻辑解码的支持，允许以可自定义的格式流出数据库变更（Andres Freund）", "title": "新增对 WAL 数据逻辑解码的支持，允许以可自定义的格式流出数据库变更", "commits": [], "section": "复制与恢复 / 逻辑解码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4.3", "source_hash": "4c140e423de26af766f92ee68808e03c26dd00e215416bf6503c0f7a4a719e2c", "section_path": ["复制与恢复", "逻辑解码"], "commit_groups": [], "identity_text": "Add support for logical decoding of WAL data, to allow database changes to be streamed out in a customizable format (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/052", "db_id": "db28905bb93b94e88356584619eeffe2", "patch_ids": [], "statement_hash": "bccb02895854e6ba6c1895fc313dbb340bba1ee4735117d4744c98f6b5292798", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-2ec2ebc2e1c11cc5", "cves": [], "html": "<p>新增<a href=\"/docs/9.4/runtime-config-wal.html#GUC-WAL-LEVEL\">wal_level</a>设置 <code>logical</code>，用于在 <acronym>WAL</acronym> 中启用逻辑变更集编码（Andres Freund）</p>", "text": "新增wal_level设置 logical，用于在 WAL 中启用逻辑变更集编码（Andres Freund）", "title": "新增wal_level设置 logical，用于在 WAL 中启用逻辑变更集编码", "commits": [], "section": "复制与恢复 / 逻辑解码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4.3", "source_hash": "b8cff09d7fedd8321685a3d5b0ba3f569fb20af035476fcd85ca998162e98781", "section_path": ["复制与恢复", "逻辑解码"], "commit_groups": [], "identity_text": "Add new guc-wal-level setting logical to enable logical change-set encoding in WAL (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/053", "db_id": "d9b131c5a1f1021d51d139779606b67b", "patch_ids": [], "statement_hash": "1385262cf208017375c14b2be855301366bcbf8a7b5345832495a68220e9ba60", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-3cf9138df1e26bbe", "cves": [], "html": "<p>新增表级参数<a href=\"/docs/9.4/catalog-pg-class.html\" title=\"48.11. pg_class\"><code>REPLICA IDENTITY</code></a>，用于控制逻辑复制（Andres Freund）</p>", "text": "新增表级参数REPLICA IDENTITY，用于控制逻辑复制（Andres Freund）", "title": "新增表级参数REPLICA IDENTITY，用于控制逻辑复制", "commits": [], "section": "复制与恢复 / 逻辑解码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4.3", "source_hash": "40590d2fbde9bc300c071bbf0aa39fde853a7f9f35c02a6f91ff6472dc4b777d", "section_path": ["复制与恢复", "逻辑解码"], "commit_groups": [], "identity_text": "Add table-level parameter REPLICA IDENTITY to control logical replication (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/054", "db_id": "539bafd651acf13b912a6042416eb284", "patch_ids": [], "statement_hash": "ce3988eca645b1c8091866d654b8d5b4e721939a9dc120e9293794da2023569d", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-9050f2b6266af687", "cves": [], "html": "<p>新增关系选项<a href=\"/docs/9.4/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS\" title=\"存储参数\"><code>user_catalog_table</code></a>，用于标识参与逻辑变更集编码的用户创建表（Andres Freund）</p>", "text": "新增关系选项user_catalog_table，用于标识参与逻辑变更集编码的用户创建表（Andres Freund）", "title": "新增关系选项user_catalog_table，用于标识参与逻辑变更集编码的用户创建表", "commits": [], "section": "复制与恢复 / 逻辑解码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4.3", "source_hash": "f3b9db8923e92847ab307410d3e6e33d17e8448a302ddccfee97794878218232", "section_path": ["复制与恢复", "逻辑解码"], "commit_groups": [], "identity_text": "Add relation option user_catalog_table to identify user-created tables involved in logical change-set encoding (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/055", "db_id": "417ce065cb8433fc86c2a25ca744e493", "patch_ids": [], "statement_hash": "d85cb69fc58751c87329d03dd0ce7881e877ea30a62be09570729df3d920a2af", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-198589e0b03cd5b3", "cves": [], "html": "<p>新增<a href=\"/docs/9.4/app-pgrecvlogical.html\" title=\"pg_recvlogical\"><span><span>pg_recvlogical</span></span></a>应用程序，用于接收逻辑解码数据（Andres Freund）</p>", "text": "新增pg_recvlogical应用程序，用于接收逻辑解码数据（Andres Freund）", "title": "新增pg_recvlogical应用程序，用于接收逻辑解码数据", "commits": [], "section": "复制与恢复 / 逻辑解码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4.3", "source_hash": "ab50f8f14b2fc57308a5292d6c6046235539df1815919b378ce84abfa233195f", "section_path": ["复制与恢复", "逻辑解码"], "commit_groups": [], "identity_text": "Add app-pgrecvlogical application to receive logical-decoding data (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/056", "db_id": "f1a9bfc04d5f40253f4cb9d604ff7f6f", "patch_ids": [], "statement_hash": "36aa5fa5018c32f5d26efa6d2850fe3b32b1cbb672db1d69179edfa1aa3e1bdd", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-b69e9fd2d2a378e3", "cves": [], "html": "<p>新增<a href=\"/docs/9.4/test-decoding.html\" title=\"F.39. test_decoding\">test_decoding</a>模块，用于在 <acronym>SQL</acronym> 层面演示逻辑解码（Andres Freund）</p>", "text": "新增test_decoding模块，用于在 SQL 层面演示逻辑解码（Andres Freund）", "title": "新增test_decoding模块，用于在 SQL 层面演示逻辑解码", "commits": [], "section": "复制与恢复 / 逻辑解码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.4.3", "source_hash": "00c27ecc35fd81af1f0107e62b8e48dd6a1b1be8325582e0bc31dea295b4d11d", "section_path": ["复制与恢复", "逻辑解码"], "commit_groups": [], "identity_text": "Add test-decoding module to illustrate logical decoding at the SQL level (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/057", "db_id": "ccdd7979d3f83115263641bb2003dd2d", "patch_ids": [], "statement_hash": "12462434ee868c6d087b3b03c9afe9c423c2948cebd68c1fff95a13f3cfdffe0", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-2960fdd8b006481b", "cves": [], "html": "<p>新增 <a href=\"/docs/9.4/queries-table-expressions.html#QUERIES-TABLEFUNCTIONS\" title=\"7.2.1.4. 表函数\"><code>WITH ORDINALITY</code></a> 语法，为 <code>FROM</code> 子句中集合返回函数返回的行编号（Andrew Gierth、David Fetter）</p>\n<p>这对 <code>unnest()</code> 之类的函数特别有用。</p>", "text": "新增 WITH ORDINALITY 语法，为 FROM 子句中集合返回函数返回的行编号（Andrew Gierth、David Fetter） 这对 unnest() 之类的函数特别有用。", "title": "新增 WITH ORDINALITY 语法，为 FROM 子句中集合返回函数返回的行编号", "commits": [], "section": "查询", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.5", "source_hash": "34e9ba1d6689c42858dc1f173fa68b4a0b13d3629248289d02d818632bdc2568", "section_path": ["查询"], "commit_groups": [], "identity_text": "Add WITH ORDINALITY syntax to number the rows returned from a set-returning function in the FROM clause (Andrew Gierth, David Fetter) This is particularly useful for functions like unnest().", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/058", "db_id": "08b14bffb9dffd4fefac68fc9a7f1ddb", "patch_ids": [], "statement_hash": "351c63284087e1f8acbc7014e25a3a97f1423c1c5a0768ccc8ce94a50f174eff", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-4b74ca7d4efb05c4", "cves": [], "html": "<p>新增 <a href=\"/docs/9.4/queries-table-expressions.html#QUERIES-TABLEFUNCTIONS\" title=\"7.2.1.4. 表函数\"><code>ROWS FROM()</code></a> 语法，允许在 <code>FROM</code> 子句中对集合返回函数进行水平串联（Andrew Gierth）</p>", "text": "新增 ROWS FROM() 语法，允许在 FROM 子句中对集合返回函数进行水平串联（Andrew Gierth）", "title": "新增 ROWS FROM() 语法，允许在 FROM 子句中对集合返回函数进行水平串联", "commits": [], "section": "查询", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.5", "source_hash": "6bc0005f71337d25f6b09c0d9bce17f5587164198ba0708c8cdcd925fbe8177b", "section_path": ["查询"], "commit_groups": [], "identity_text": "Add ROWS FROM() syntax to allow horizontal concatenation of set-returning functions in the FROM clause (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/059", "db_id": "c6d8fae9b1e57295a3c91d8ab2f13f75", "patch_ids": [], "statement_hash": "55f883e060dd3b1641839a77c45953603cedb7258cc8d45cdcb7752539ab8c38", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-a839896d17570134", "cves": [], "html": "<p>允许<a href=\"/docs/9.4/sql-select.html\" title=\"SELECT\"><span>SELECT</span></a>拥有空目标列表（Tom Lane）</p>\n<p>增加此功能是为了使从零列表中选择的视图能够被正确转储和还原。</p>", "text": "允许SELECT拥有空目标列表（Tom Lane） 增加此功能是为了使从零列表中选择的视图能够被正确转储和还原。", "title": "允许SELECT拥有空目标列表", "commits": [], "section": "查询", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.5", "source_hash": "5d72eb1f94a93b44185f06a9c236beb010dac46334f0f281e924103fbc627fa0", "section_path": ["查询"], "commit_groups": [], "identity_text": "Allow SQL-SELECT to have an empty target list (Tom Lane) This was added so that views that select from a table with zero columns can be dumped and restored correctly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/060", "db_id": "0531876bb8f6ec2de1cf54db11755549", "patch_ids": [], "statement_hash": "418d86d2a591dbea3d5bf827c80024d81cf7ca89baccff1cc28fe544809012bd", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-08d8fcfc7b4e7f2a", "cves": [], "html": "<p>确保 <a href=\"/docs/9.4/sql-select.html\" title=\"SELECT\"><code>SELECT ... FOR UPDATE NOWAIT</code></a> 在涉及已被并发更新元组的极端情况下不会等待（Craig Ringer and Thomas Munro）</p>", "text": "确保 SELECT ... FOR UPDATE NOWAIT 在涉及已被并发更新元组的极端情况下不会等待（Craig Ringer and Thomas Munro）", "title": "确保 SELECT ... FOR UPDATE NOWAIT 在涉及已被并发更新元组的极端情况下不会等待", "commits": [], "section": "查询", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.5", "source_hash": "6129beb2b4642d60334f6dd21bdf53b5c222a1926e152b4d752eb5df7f9b8275", "section_path": ["查询"], "commit_groups": [], "identity_text": "Ensure that SELECT ... FOR UPDATE NOWAIT does not wait in corner cases involving already-concurrently-updated tuples (Craig Ringer and Thomas Munro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/061", "db_id": "527a24244be4d7b01f3a5fc3cefc4b13", "patch_ids": [], "statement_hash": "1ae62d6b8545ae43f254ef844200d86c8f4e2f2fb8a20b9b92feef3dedcb59b0", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-8bd687a4ed5b8d28", "cves": [], "html": "<p>新增 <a href=\"/docs/9.4/sql-discard.html\" title=\"DISCARD\"><code>DISCARD SEQUENCES</code></a> 命令，用于丢弃缓存的序列相关状态（Fabrízio de Royes Mello、Robert Haas）</p>\n<p><code>DISCARD ALL</code> 现在也会丢弃此类信息。</p>", "text": "新增 DISCARD SEQUENCES 命令，用于丢弃缓存的序列相关状态（Fabrízio de Royes Mello、Robert Haas） DISCARD ALL 现在也会丢弃此类信息。", "title": "新增 DISCARD SEQUENCES 命令，用于丢弃缓存的序列相关状态", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.6", "source_hash": "3fcd8539a1c184b6c3bf7bc4826b4c8ab4c0bb0835d7e3789a375e16ab5da969", "section_path": ["工具命令"], "commit_groups": [], "identity_text": "Add DISCARD SEQUENCES command to discard cached sequence-related state (Fabrízio de Royes Mello, Robert Haas) DISCARD ALL will now also discard such information.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/062", "db_id": "e997d50d211ae7ad274a92a2424c4cb6", "patch_ids": [], "statement_hash": "3bae31298e094673fc3348747e4f90c092f238e95ec3dbce19a31f5d9431e2d5", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-30c3326b4bc6248e", "cves": [], "html": "<p>为 <a href=\"/docs/9.4/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a> 新增 <code>FORCE NULL</code> 选项，在 <code>CSV</code> 模式下使与指定空串匹配的带引号字符串转换为 NULL（Ian Barwick、Michael Paquier）</p>\n<p>若不使用此选项，则只有不带引号的匹配字符串才会被导入为空值。</p>", "text": "为 COPY FROM 新增 FORCE NULL 选项，在 CSV 模式下使与指定空串匹配的带引号字符串转换为 NULL（Ian Barwick、Michael Paquier） 若不使用此选项，则只有不带引号的匹配字符串才会被导入为空值。", "title": "为 COPY FROM 新增 FORCE NULL 选项，在 CSV 模式下使与指定空串匹配的带引号字符串转换为 NULL", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.6", "source_hash": "2791c7650c26cb8e1c01d2fce4ad74950cfd7a9c80a8ee1b70c13fb130801c44", "section_path": ["工具命令"], "commit_groups": [], "identity_text": "Add FORCE NULL option to COPY FROM, which causes quoted strings matching the specified null string to be converted to NULLs in CSV mode (Ian Barwick, Michael Paquier) Without this option, only unquoted matching strings will be imported as null values.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/063", "db_id": "5f1685d9fbb1098ac4368fbfab40e86b", "patch_ids": [], "statement_hash": "8430ee41f6683782260e52fea2f9e243e7b7c5dc2a474936e147038a0a154a3f", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-841aab2733f2e27d", "cves": [], "html": "<p>对在事务块之外使用且不可能生效的命令发出警告（Bruce Momjian）</p>\n<p>当 <code>SET LOCAL</code>、<code>SET CONSTRAINTS</code>、<code>SET TRANSACTION</code> 和 <code>ABORT</code> 在事务块之外使用时会发出新的警告。</p>", "text": "对在事务块之外使用且不可能生效的命令发出警告（Bruce Momjian） 当 SET LOCAL、SET CONSTRAINTS、SET TRANSACTION 和 ABORT 在事务块之外使用时会发出新的警告。", "title": "对在事务块之外使用且不可能生效的命令发出警告", "commits": [], "section": "工具命令", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.6", "source_hash": "fb04b524ac687cf87ac1f87d32ac79a7b7e0e394cb664b6e820765c2a4bb7c9b", "section_path": ["工具命令"], "commit_groups": [], "identity_text": "Issue warnings for commands used outside of transaction blocks when they can have no effect (Bruce Momjian) New warnings are issued for SET LOCAL, SET CONSTRAINTS, SET TRANSACTION and ABORT when used outside a transaction block.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/064", "db_id": "bce4b6f186d0b85bf029ff05ec6c3627", "patch_ids": [], "statement_hash": "639974640d1829b921ce1930156832fce6ef412aefc23cb019e34dd9108af33b", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-71e51a3c18af2bea", "cves": [], "html": "<p>使 <code>EXPLAIN ANALYZE</code> 显示规划时间（Andreas Karlsson）</p>", "text": "使 EXPLAIN ANALYZE 显示规划时间（Andreas Karlsson）", "title": "使 EXPLAIN ANALYZE 显示规划时间", "commits": [], "section": "工具命令 / EXPLAIN", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.6.3", "source_hash": "d2e79176e14565f89614b176949c8184ae92ff182d1cb7cefca7e195155682a5", "section_path": ["工具命令", "EXPLAIN"], "commit_groups": [], "identity_text": "Make EXPLAIN ANALYZE show planning time (Andreas Karlsson)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/065", "db_id": "995c57366e3151d398ebdd157281ea75", "patch_ids": [], "statement_hash": "1fdc074ab0399f8c40323a42b3bcb07ff64fb7763a4383973cf68b8038978a89", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-7ef1135d9b4bc185", "cves": [], "html": "<p>使 <code>EXPLAIN</code> 显示 Agg 和 Group 节点中的分组列（Tom Lane）</p>", "text": "使 EXPLAIN 显示 Agg 和 Group 节点中的分组列（Tom Lane）", "title": "使 EXPLAIN 显示 Agg 和 Group 节点中的分组列", "commits": [], "section": "工具命令 / EXPLAIN", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.6.3", "source_hash": "f75a1144c2745a32496b5ed62400b020378876b3af5cea5deaa50727949ccb51", "section_path": ["工具命令", "EXPLAIN"], "commit_groups": [], "identity_text": "Make EXPLAIN show the grouping columns in Agg and Group nodes (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/066", "db_id": "0790f03ae298226e6fed1ebd295ca1cd", "patch_ids": [], "statement_hash": "0c114312fbdfbf200cccc8b175e970beb784433840afa9a0173cc4a0359b5236", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-7eef62429539e266", "cves": [], "html": "<p>使 <code>EXPLAIN ANALYZE</code> 显示位图堆扫描中的精确和有损块计数（Etsuro Fujita）</p>", "text": "使 EXPLAIN ANALYZE 显示位图堆扫描中的精确和有损块计数（Etsuro Fujita）", "title": "使 EXPLAIN ANALYZE 显示位图堆扫描中的精确和有损块计数", "commits": [], "section": "工具命令 / EXPLAIN", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.6.3", "source_hash": "6af37f5b1ed1b47b6818df13a42a884a9238704aad37edf14dd5f4e45fa9d000", "section_path": ["工具命令", "EXPLAIN"], "commit_groups": [], "identity_text": "Make EXPLAIN ANALYZE show exact and lossy block counts in bitmap heap scans (Etsuro Fujita)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/067", "db_id": "8d04df04532eed9b1a33b43637e9672d", "patch_ids": [], "statement_hash": "ff8b79d1cc9b588299752b86d8de8038b6490786f3b54a656bb8a2c24caeaae7", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-2003def672391fe9", "cves": [], "html": "<p>允许刷新<a href=\"/docs/9.4/rules-materializedviews.html\" title=\"38.3. 物化视图\">物化视图</a>而不阻塞其他会话在此期间读取该视图（Kevin Grittner）</p>\n<p>这通过 <a href=\"/docs/9.4/sql-refreshmaterializedview.html\" title=\"REFRESH MATERIALIZED VIEW\"><code>REFRESH MATERIALIZED VIEW CONCURRENTLY</code></a> 完成。</p>", "text": "允许刷新物化视图而不阻塞其他会话在此期间读取该视图（Kevin Grittner） 这通过 REFRESH MATERIALIZED VIEW CONCURRENTLY 完成。", "title": "允许刷新物化视图而不阻塞其他会话在此期间读取该视图", "commits": [], "section": "工具命令 / 视图", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.6.4", "source_hash": "497d477685b294aec55b34f60596113fa7883fbbe06b058340314bb88bb2605d", "section_path": ["工具命令", "视图"], "commit_groups": [], "identity_text": "Allow a materialized view to be refreshed without blocking other sessions from reading the view meanwhile (Kevin Grittner) This is done with REFRESH MATERIALIZED VIEW CONCURRENTLY.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/068", "db_id": "3a0b74c6f7586266cfa74b9ae6f14670", "patch_ids": [], "statement_hash": "ad06ce97fbc6907606c4afc6937431dfd8852476969ffea6229ebef48c38b44e", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-24adc04b8951ecd8", "cves": [], "html": "<p>允许视图被<a href=\"/docs/9.4/sql-createview.html#SQL-CREATEVIEW-UPDATABLE-VIEWS\" title=\"可更新视图\">自动更新</a>，即使它们包含一些不可更新的列（Dean Rasheed）</p>\n<p>此前，存在表达式、字面量和函数调用等不可更新输出列会阻止自动更新。现在支持 <code>INSERT</code>、<code>UPDATE</code> 和 <code>DELETE</code>，只要它们不试图为任何不可更新列赋新值。</p>", "text": "允许视图被自动更新，即使它们包含一些不可更新的列（Dean Rasheed） 此前，存在表达式、字面量和函数调用等不可更新输出列会阻止自动更新。现在支持 INSERT、UPDATE 和 DELETE，只要它们不试图为任何不可更新列赋新值。", "title": "允许视图被自动更新，即使它们包含一些不可更新的列", "commits": [], "section": "工具命令 / 视图", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.6.4", "source_hash": "d5a710154128f669c9b04c462c4077a74ec3306b3ca2396264a0156219a6eb43", "section_path": ["工具命令", "视图"], "commit_groups": [], "identity_text": "Allow views to be automatically updated even if they contain some non-updatable columns (Dean Rasheed) Previously the presence of non-updatable output columns such as expressions, literals, and function calls prevented automatic updates. Now INSERTs, UPDATEs and DELETEs are supported, provided that they do not attempt to assign new values to any of the non-updatable columns.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/069", "db_id": "2cbd6b47d7c55eeae1ab5ffc90279de4", "patch_ids": [], "statement_hash": "be8db8dce1437d209a447cf18b2ea113742f90cef7d066b2b4d77734e8805f75", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-7b9247b2955feffe", "cves": [], "html": "<p>允许控制 <code>INSERT</code> 和 <code>UPDATE</code> 能否向自动可更新视图中添加不会出现在该视图中的行（Dean Rasheed）</p>\n<p>这通过新的<a href=\"/docs/9.4/sql-createview.html\" title=\"CREATE VIEW\"><span>CREATE VIEW</span></a>子句 <code>WITH CHECK OPTION</code> 控制。</p>", "text": "允许控制 INSERT 和 UPDATE 能否向自动可更新视图中添加不会出现在该视图中的行（Dean Rasheed） 这通过新的CREATE VIEW子句 WITH CHECK OPTION 控制。", "title": "允许控制 INSERT 和 UPDATE 能否向自动可更新视图中添加不会出现在该视图中的行", "commits": [], "section": "工具命令 / 视图", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.6.4", "source_hash": "377a2e8087930fe7d5ee74ff58686172d529721a7eb50aae913175b61a39fa85", "section_path": ["工具命令", "视图"], "commit_groups": [], "identity_text": "Allow control over whether INSERTs and UPDATEs can add rows to an auto-updatable view that would not appear in the view (Dean Rasheed) This is controlled with the new SQL-CREATEVIEW clause WITH CHECK OPTION.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/070", "db_id": "da8bf77cc1d56ef46ca27c0d37bd7461", "patch_ids": [], "statement_hash": "23b982d1697bbadc1b4cddaa29c840ccd31418d70ce30cc93b90f892ca68e316", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-1b16d424d83efd12", "cves": [], "html": "<p>允许<a href=\"/docs/9.4/rules-privileges.html\" title=\"38.5. 规则和权限\">安全屏障视图</a>被自动更新（Dean Rasheed）</p>", "text": "允许安全屏障视图被自动更新（Dean Rasheed）", "title": "允许安全屏障视图被自动更新", "commits": [], "section": "工具命令 / 视图", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.6.4", "source_hash": "e704571f0bcd161e217cd16316a6a68340651d8f9bd49868b5077ae30191170d", "section_path": ["工具命令", "视图"], "commit_groups": [], "identity_text": "Allow security barrier views to be automatically updatable (Dean Rasheed)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/071", "db_id": "23d9edbf02e80238bc2533231f095468", "patch_ids": [], "statement_hash": "2f9e1ca4ca0895e4821e740ebeda3eee1186f8bdc1a0ac2fce43e321de1be31c", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-960eea84a0e151e1", "cves": [], "html": "<p>支持在<a href=\"/docs/9.4/sql-createforeigntable.html\" title=\"CREATE FOREIGN TABLE\">外部表</a>上使用触发器（Ronan Dunklau）</p>", "text": "支持在外部表上使用触发器（Ronan Dunklau）", "title": "支持在外部表上使用触发器", "commits": [], "section": "对象操作", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.7", "source_hash": "d2c7ff03f51295e4a3efa52dcaf4a6295f95c090751d02c9e38df91b4543f517", "section_path": ["对象操作"], "commit_groups": [], "identity_text": "Support triggers on foreign tables (Ronan Dunklau)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/072", "db_id": "669db79a26348c7bd9347064f5cf481f", "patch_ids": [], "statement_hash": "b44cb199ca0699c8f4e03d817e217ce6e02ab7d887f9592b886e805dd2f91501", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-bf6d33c168b608bc", "cves": [], "html": "<p>允许使用<a href=\"/docs/9.4/sql-altertable.html\" title=\"ALTER TABLE\"><span>ALTER TABLE</span></a>、<a href=\"/docs/9.4/sql-alterindex.html\" title=\"ALTER INDEX\"><span>ALTER INDEX</span></a>或<a href=\"/docs/9.4/sql-altermaterializedview.html\" title=\"ALTER MATERIALIZED VIEW\"><span>ALTER MATERIALIZED VIEW</span></a>的 <code>ALL IN TABLESPACE ... SET TABLESPACE</code> 形式把成组对象从一个表空间移动到另一个表空间（Stephen Frost）</p>", "text": "允许使用ALTER TABLE、ALTER INDEX或ALTER MATERIALIZED VIEW的 ALL IN TABLESPACE ... SET TABLESPACE 形式把成组对象从一个表空间移动到另一个表空间（Stephen Frost）", "title": "允许使用ALTER TABLE、ALTER INDEX或ALTER MATERIALIZED VIEW的 ALL IN TABLESPACE ... SET TABLESPACE 形式把成组对象从一个表空间移动到另一个表空间", "commits": [], "section": "对象操作", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.7", "source_hash": "76b4ede66829c88251988027ba962189bf4ecc9e493c4e796817b4a19aed2cf3", "section_path": ["对象操作"], "commit_groups": [], "identity_text": "Allow moving groups of objects from one tablespace to another using the ALL IN TABLESPACE ... SET TABLESPACE form of SQL-ALTERTABLE , SQL-ALTERINDEX , or SQL-ALTERMATERIALIZEDVIEW (Stephen Frost)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/073", "db_id": "b82355d6227386532ce26f9bb862d3bb", "patch_ids": [], "statement_hash": "d2eb9d6ad9d1e5278d9d02ba21455a2afe927523439679640f4873978cae0f7a", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-9385d6b48eda273e", "cves": [], "html": "<p>允许通过<a href=\"/docs/9.4/sql-altertable.html\" title=\"ALTER TABLE\"><span>ALTER TABLE</span></a> ... <code>ALTER CONSTRAINT</code> 更改外键约束的可延迟性（Simon Riggs）</p>", "text": "允许通过ALTER TABLE ... ALTER CONSTRAINT 更改外键约束的可延迟性（Simon Riggs）", "title": "允许通过ALTER TABLE ... ALTER CONSTRAINT 更改外键约束的可延迟性", "commits": [], "section": "对象操作", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.7", "source_hash": "5ac9b76b9a4d62521c6f5f1d279a93a022b6eb2a1543d2b0b09726f045eac450", "section_path": ["对象操作"], "commit_groups": [], "identity_text": "Allow changing foreign key constraint deferrability via SQL-ALTERTABLE ... ALTER CONSTRAINT (Simon Riggs)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/074", "db_id": "102f396fcf51b83b46d090d33f5000e3", "patch_ids": [], "statement_hash": "6784c8b5f75f253134bda86416902b79415384f47c0927e32c6451afdd62126a", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-518c5f5c9167628f", "cves": [], "html": "<p>降低某些<a href=\"/docs/9.4/sql-altertable.html\" title=\"ALTER TABLE\"><span>ALTER TABLE</span></a>命令的锁强度（Simon Riggs、Noah Misch、Robert Haas）</p>\n<p>具体而言，<code>VALIDATE CONSTRAINT</code>、<code>CLUSTER ON</code>、<code>SET WITHOUT CLUSTER</code>、<code>ALTER COLUMN SET STATISTICS</code>、<code>ALTER COLUMN</code> <code>SET</code> <code>(attribute_option)</code>、<code>ALTER COLUMN RESET</code> <code>(attribute_option)</code> 不再需要 <code>ACCESS EXCLUSIVE</code> 锁。</p>", "text": "降低某些ALTER TABLE命令的锁强度（Simon Riggs、Noah Misch、Robert Haas） 具体而言，VALIDATE CONSTRAINT、CLUSTER ON、SET WITHOUT CLUSTER、ALTER COLUMN SET STATISTICS、ALTER COLUMN SET (attribute_option)、ALTER COLUMN RESET (attribute_option) 不再需要 ACCESS EXCLUSIVE 锁。", "title": "降低某些ALTER TABLE命令的锁强度", "commits": [], "section": "对象操作", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.7", "source_hash": "4641ae0c85fddf49587ac0fb791eaa9af70d8afa7934636817c1059eacc8e719", "section_path": ["对象操作"], "commit_groups": [], "identity_text": "Reduce lock strength for some SQL-ALTERTABLE commands (Simon Riggs, Noah Misch, Robert Haas) Specifically, VALIDATE CONSTRAINT, CLUSTER ON, SET WITHOUT CLUSTER, ALTER COLUMN SET STATISTICS, ALTER COLUMN SET (attribute_option), ALTER COLUMN RESET (attribute_option) no longer require ACCESS EXCLUSIVE locks.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/075", "db_id": "6f9e043bb929a6be871c03c16472b21f", "patch_ids": [], "statement_hash": "11a395993757eab8954d263cc665ea67e20bf143574c653d9ace17cdf2ac01bd", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-5035773425c2b4ae", "cves": [], "html": "<p>允许在<a href=\"/docs/9.4/sql-createtablespace.html\" title=\"CREATE TABLESPACE\"><span>CREATE TABLESPACE</span></a>中设置表空间选项（Vik Fearing）</p>\n<p>以前这些选项只能通过<a href=\"/docs/9.4/sql-altertablespace.html\" title=\"ALTER TABLESPACE\"><span>ALTER TABLESPACE</span></a>设置。</p>", "text": "允许在CREATE TABLESPACE中设置表空间选项（Vik Fearing） 以前这些选项只能通过ALTER TABLESPACE设置。", "title": "允许在CREATE TABLESPACE中设置表空间选项", "commits": [], "section": "对象操作", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.7", "source_hash": "367a90f9e602ced97ee70863558a59433401f2b057f454566bf1648d523decc4", "section_path": ["对象操作"], "commit_groups": [], "identity_text": "Allow tablespace options to be set in SQL-CREATETABLESPACE (Vik Fearing) Formerly these options could only be set via SQL-ALTERTABLESPACE .", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/076", "db_id": "656ae68c7b645ad0691486c3e5a03726", "patch_ids": [], "statement_hash": "bec92b9961609d0ee63938645c8d9ac28a414db2f99d10bc1e857450e6082e71", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-bdc5b8141dc110eb", "cves": [], "html": "<p>允许<a href=\"/docs/9.4/sql-createaggregate.html\" title=\"CREATE AGGREGATE\"><span>CREATE AGGREGATE</span></a>定义聚集转换状态数据的估计大小（Hadi Moshayedi）</p>\n<p>恰当使用此功能可使规划器更好地估计聚集将使用多少内存。</p>", "text": "允许CREATE AGGREGATE定义聚集转换状态数据的估计大小（Hadi Moshayedi） 恰当使用此功能可使规划器更好地估计聚集将使用多少内存。", "title": "允许CREATE AGGREGATE定义聚集转换状态数据的估计大小", "commits": [], "section": "对象操作", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.7", "source_hash": "5639f2a69bf04099101ade44971155792106cd455d057c42795fab017b025e15", "section_path": ["对象操作"], "commit_groups": [], "identity_text": "Allow SQL-CREATEAGGREGATE to define the estimated size of the aggregate's transition state data (Hadi Moshayedi) Proper use of this feature allows the planner to better estimate how much memory will be used by aggregates.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/077", "db_id": "19027cae29d30e419385ff17deca37c9", "patch_ids": [], "statement_hash": "6ec29a5fdca0d8ae8ffd9e105e7eff665b63c1ed81dbaf40d3bd010a60ae9f61", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-89d1045a45cca52a", "cves": [], "html": "<p>修复 <code>DROP IF EXISTS</code>，使其在更多情况下避免对不存在对象报错（Pavel Stehule、Dean Rasheed）</p>", "text": "修复 DROP IF EXISTS，使其在更多情况下避免对不存在对象报错（Pavel Stehule、Dean Rasheed）", "title": "修复 DROP IF EXISTS，使其在更多情况下避免对不存在对象报错", "commits": [], "section": "对象操作", "category": "bugfix", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.7", "source_hash": "a188a3e560301e02ba88c0d74eb2d4a5128fd91385d4dd2e496417b6a391b457", "section_path": ["对象操作"], "commit_groups": [], "identity_text": "Fix DROP IF EXISTS to avoid errors for non-existent objects in more cases (Pavel Stehule, Dean Rasheed)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/078", "db_id": "b4c7b4f0fa64d9f6b387f64b12587068", "patch_ids": [], "statement_hash": "53319bd3351df3b65320e9daf41f05b4035a541f7a269ebb705c349eece41d11", "relations": [], "version": "9.4.0", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-f38cddff6b5b08ad", "cves": [], "html": "<p>改进系统关系的标识方式（Andres Freund、Robert Haas）</p>\n<p>此前，一旦关系被移入 <code>pg_catalog</code> 模式，就不能再修改或删除。</p>", "text": "改进系统关系的标识方式（Andres Freund、Robert Haas） 此前，一旦关系被移入 pg_catalog 模式，就不能再修改或删除。", "title": "改进系统关系的标识方式", "commits": [], "section": "对象操作", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.7", "source_hash": "fa9c733000a61dc1a286e8a448a22fd343af28058d33e901b9e26163e6c9f62c", "section_path": ["对象操作"], "commit_groups": [], "identity_text": "Improve how system relations are identified (Andres Freund, Robert Haas) Previously, relations once moved into the pg_catalog schema could no longer be modified or dropped.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/079", "db_id": "93386f317df396a1a4f69d4bd0412a3a", "patch_ids": [], "statement_hash": "235c1438346c2ac3b84d5388d63799e764b44723b0855aea2e813327f0dcbf9d", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-2fe57db9905f65c3", "cves": [], "html": "<p>完整实现 <a href=\"/docs/9.4/datatype-geometric.html#DATATYPE-LINE\" title=\"8.8.2. 线\"><code>line</code></a> 数据类型（Peter Eisentraut）</p>\n<p>线<span><em>段</em></span>数据类型（<a href=\"/docs/9.4/datatype-geometric.html#DATATYPE-LSEG\" title=\"8.8.3. 线段\"><code>lseg</code></a>）一直得到完整支持。以前的 <code>line</code> 数据类型（只能通过编译时选项启用）与新实现在二进制和转储格式上不兼容。</p>", "text": "完整实现 line 数据类型（Peter Eisentraut） 线段数据类型（lseg）一直得到完整支持。以前的 line 数据类型（只能通过编译时选项启用）与新实现在二进制和转储格式上不兼容。", "title": "完整实现 line 数据类型", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.8", "source_hash": "9254a43e407b84ae0f638886c04fde301f7b55576aea2a0287da1115645e24a4", "section_path": ["数据类型"], "commit_groups": [], "identity_text": "Fully implement the line data type (Peter Eisentraut) The line segment data type (lseg) has always been fully supported. The previous line data type (which was enabled only via a compile-time option) is not binary or dump-compatible with the new implementation.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/080", "db_id": "9e9dc90134e6ad791232823d94272e6b", "patch_ids": [], "statement_hash": "fe712fe8daab22bbd350e7b79bb6a62b8c4a87a20f156141dad2695b2c1a7d05", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-a59f891dfa449b74", "cves": [], "html": "<p>新增 <a href=\"/docs/9.4/datatype-pg-lsn.html\" title=\"8.19. pg_lsn 类型\"><code>pg_lsn</code></a> 数据类型，用于表示 <acronym>WAL</acronym> 日志序列号（<acronym>LSN</acronym>）（Robert Haas、Michael Paquier）</p>", "text": "新增 pg_lsn 数据类型，用于表示 WAL 日志序列号（LSN）（Robert Haas、Michael Paquier）", "title": "新增 pg_lsn 数据类型，用于表示 WAL 日志序列号（LSN）", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.8", "source_hash": "974c0b36aff142691c79e786f788923c188f0ff770fe02dcdea2c6afd15b6561", "section_path": ["数据类型"], "commit_groups": [], "identity_text": "Add pg_lsn data type to represent a WAL log sequence number (LSN) (Robert Haas, Michael Paquier)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/081", "db_id": "1dc25c7b83268729510a062fea663287", "patch_ids": [], "statement_hash": "05785e43a62d758e594f07bb22faae191d78dc2337bc0c8353d2f32eb1846207", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-fdf7f503b17828f4", "cves": [], "html": "<p>允许把单点<a href=\"/docs/9.4/datatype-geometric.html#DATATYPE-POLYGON\" title=\"8.8.6. 多边形\"><code>polygon</code></a>转换为<a href=\"/docs/9.4/datatype-geometric.html#DATATYPE-CIRCLE\" title=\"8.8.7. 圆\"><code>circle</code></a>（Bruce Momjian）</p>", "text": "允许把单点polygon转换为circle（Bruce Momjian）", "title": "允许把单点polygon转换为circle", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.8", "source_hash": "c757d7d34038f11ba75e89adf73554940437d4e49a7f0af10f78a3e41836d84f", "section_path": ["数据类型"], "commit_groups": [], "identity_text": "Allow single-point polygons to be converted to circles (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/082", "db_id": "d61fea5ee1b6ff8df755b16c69459e05", "patch_ids": [], "statement_hash": "2fb35c8f002e764043840008316ec4fdc38b9682581ffd71f95fecdb9ac7584f", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-92c22662927186de", "cves": [], "html": "<p>支持随时间改变 UTC 偏移的时区缩写（Tom Lane）</p>\n<p>此前，<span>PostgreSQL</span> 假定时区缩写（如 <code>EST</code>）关联的 UTC 偏移在任何特定区域设置的用法中永不改变。然而这一假设在现实世界中并不成立，因此引入了让区域缩写表示有时会变化的 UTC 偏移的能力。更新了时区缩写定义文件，在自 1970 年以来缩写的 UTC 偏移发生过变化的时区区域设置中使用此功能（依据 IANA 时区数据库）。在此类时区中，<span>PostgreSQL</span> 现在会根据给定日期为缩写关联正确的 UTC 偏移。</p>", "text": "支持随时间改变 UTC 偏移的时区缩写（Tom Lane） 此前，PostgreSQL 假定时区缩写（如 EST）关联的 UTC 偏移在任何特定区域设置的用法中永不改变。然而这一假设在现实世界中并不成立，因此引入了让区域缩写表示有时会变化的 UTC 偏移的能力。更新了时区缩写定义文件，在自 1970 年以来缩写的 UTC 偏移发生过变化的时区区域设置中使用此功能（依据 IANA 时区数据库）。在此类时区中，PostgreSQL 现在会根据给定日期为缩写关联正确的 UTC 偏移。", "title": "支持随时间改变 UTC 偏移的时区缩写", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.8", "source_hash": "c580fb854e262b8d63d2f5221441fa934e981569285b648e1029ac8863a4fba5", "section_path": ["数据类型"], "commit_groups": [], "identity_text": "Support time zone abbreviations that change UTC offset from time to time (Tom Lane) Previously, PostgreSQL assumed that the UTC offset associated with a time zone abbreviation (such as EST) never changes in the usage of any particular locale. However this assumption fails in the real world, so introduce the ability for a zone abbreviation to represent a UTC offset that sometimes changes. Update the zone abbreviation definition files to make use of this feature in timezone locales that have changed the UTC offset of their abbreviations since 1970 (according to the IANA timezone database). In such timezones, PostgreSQL will now associate the correct UTC offset with the abbreviation depending on the given date.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/083", "db_id": "9748c3469a93c312976363e45183b404", "patch_ids": [], "statement_hash": "a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-0c698fdbb1891a43", "cves": [], "html": "<p>在适当情况下，允许非 <acronym>ISO</acronym> 的 <a href=\"/docs/9.4/datatype-datetime.html\" title=\"8.5. 日期/时间类型\"><code>timestamp</code></a> 和 <code>date</code> 字符串使用五位及以上年份（Bruce Momjian）</p>", "text": "在适当情况下，允许非 ISO 的 timestamp 和 date 字符串使用五位及以上年份（Bruce Momjian）", "title": "在适当情况下，允许非 ISO 的 timestamp 和 date 字符串使用五位及以上年份", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.8", "source_hash": "cc16475f90c5d6ab73e41927cb986a8afb0d4ef0fd5189e96340e9495ac5264f", "section_path": ["数据类型"], "commit_groups": [], "identity_text": "Allow 5+ digit years for non-ISO timestamp and date strings, where appropriate (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/084", "db_id": "7f8bfa51bef64e75678000b0117362f4", "patch_ids": [], "statement_hash": "ddad46c60eb37d3ed3bdec9cca426543d4c0bc74c6d5fb87367e7845f5c3f579", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-4aaa907294874d46", "cves": [], "html": "<p>新增对 <a href=\"/docs/9.4/datatype-datetime.html\" title=\"8.5. 日期/时间类型\"><code>interval</code></a> 值上溢/下溢的检查（Bruce Momjian）</p>", "text": "新增对 interval 值上溢/下溢的检查（Bruce Momjian）", "title": "新增对 interval 值上溢/下溢的检查", "commits": [], "section": "数据类型", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.8", "source_hash": "b4365baa794f1fd3d06626dacfc06ce2a71fe43df0f294c716c5a7812c51d3b5", "section_path": ["数据类型"], "commit_groups": [], "identity_text": "Add checks for overflow/underflow of interval values (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/085", "db_id": "5768b1f3d23ee6552b64871f76a0e483", "patch_ids": [], "statement_hash": "93fbb6837692daea7c91965307573906d656e399aedf5e9e6286eaf774e25b18", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-2768a7674154bb20", "cves": [], "html": "<p>新增 <a href=\"/docs/9.4/datatype-json.html\" title=\"8.14. JSON 类型\"><code>jsonb</code></a>，一种存储 <acronym>JSON</acronym> 数据的功能更强、效率更高的数据类型（Oleg Bartunov、Teodor Sigaev、Alexander Korotkov、Peter Geoghegan、Andrew Dunstan）</p>\n<p>这种新类型允许更快地访问 JSON 文档中的值，以及对 JSON 列更快、更有用的索引。<code>jsonb</code> 文档中的标量值以适当的标量 SQL 类型存储，JSON 文档结构经过预解析，而不是像原来的 <code>json</code> 数据类型那样以文本形式存储。</p>", "text": "新增 jsonb，一种存储 JSON 数据的功能更强、效率更高的数据类型（Oleg Bartunov、Teodor Sigaev、Alexander Korotkov、Peter Geoghegan、Andrew Dunstan） 这种新类型允许更快地访问 JSON 文档中的值，以及对 JSON 列更快、更有用的索引。jsonb 文档中的标量值以适当的标量 SQL 类型存储，JSON 文档结构经过预解析，而不是像原来的 json 数据类型那样以文本形式存储。", "title": "新增 jsonb，一种存储 JSON 数据的功能更强、效率更高的数据类型", "commits": [], "section": "数据类型 / JSON", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.8.3", "source_hash": "36e84e7530cb26b93c487d6e6b560d89244d8ed6fc85861182e5dd6cde181285", "section_path": ["数据类型", "JSON"], "commit_groups": [], "identity_text": "Add jsonb, a more capable and efficient data type for storing JSON data (Oleg Bartunov, Teodor Sigaev, Alexander Korotkov, Peter Geoghegan, Andrew Dunstan) This new type allows faster access to values within a JSON document, and faster and more useful indexing of JSON columns. Scalar values in jsonb documents are stored as appropriate scalar SQL types, and the JSON document structure is pre-parsed rather than being stored as text as in the original json data type.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/086", "db_id": "c005a1586946218de524236bea2f4df3", "patch_ids": [], "statement_hash": "378a2dc1a3f3bca6bd3c7067d9e4d8415c69e0f08393c1a025ede56e19b8b85a", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-2a68995d6b505f3d", "cves": [], "html": "<p>新增 JSON 函数以允许构造任意复杂的 JSON 树（Andrew Dunstan、Laurence Rowe）</p>\n<p>新函数包括 <a href=\"/docs/9.4/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE\" title=\"表 9.43. JSON 处理函数\"><code>json_array_elements_text()</code></a>、<code>json_build_array()</code>、<code>json_object()</code>、<code>json_object_agg()</code>、<code>json_to_record()</code> 和 <code>json_to_recordset()</code>。</p>", "text": "新增 JSON 函数以允许构造任意复杂的 JSON 树（Andrew Dunstan、Laurence Rowe） 新函数包括 json_array_elements_text()、json_build_array()、json_object()、json_object_agg()、json_to_record() 和 json_to_recordset()。", "title": "新增 JSON 函数以允许构造任意复杂的 JSON 树", "commits": [], "section": "数据类型 / JSON", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.8.3", "source_hash": "890f10452b106fe0372fc419ad942a16bedfeb65c4ce5851a6b150f3afe45005", "section_path": ["数据类型", "JSON"], "commit_groups": [], "identity_text": "Add new JSON functions to allow for the construction of arbitrarily complex JSON trees (Andrew Dunstan, Laurence Rowe) New functions include json_array_elements_text(), json_build_array(), json_object(), json_object_agg(), json_to_record(), and json_to_recordset().", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/087", "db_id": "726b7d430fe61806cb4fc62c311677c8", "patch_ids": [], "statement_hash": "d718b27459e1627d79f16424f00a40833dd7ca43367d29762b1f26a55a05e200", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-c7f50bb37ad4010d", "cves": [], "html": "<p>新增 <a href=\"/docs/9.4/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE\" title=\"表 9.43. JSON 处理函数\"><code>json_typeof()</code></a>，返回 <code>json</code> 值的数据类型（Andrew Tipton）</p>", "text": "新增 json_typeof()，返回 json 值的数据类型（Andrew Tipton）", "title": "新增 json_typeof()，返回 json 值的数据类型", "commits": [], "section": "数据类型 / JSON", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.8.3", "source_hash": "13af102b346402fc56743e030092b94b892e4d5cad880edb41a2e73707d1b5bc", "section_path": ["数据类型", "JSON"], "commit_groups": [], "identity_text": "Add json_typeof() to return the data type of a json value (Andrew Tipton)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/088", "db_id": "5817518db294ee5bc0e0b47bc8d8806d", "patch_ids": [], "statement_hash": "e97c941e5df2614e7f64f7ab1bbaa193a1de0581fd4b7164c7241069944d9d1b", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-38cd9779eaf08090", "cves": [], "html": "<p>新增 <a href=\"/docs/9.4/functions-datetime.html#FUNCTIONS-DATETIME-DELAY\" title=\"9.9.5. 延时执行\"><code>pg_sleep_for(interval)</code></a> 和 <code>pg_sleep_until(timestamp)</code>，以更灵活地指定延迟（Vik Fearing、Julien Rouhaud）</p>\n<p>现有的 <code>pg_sleep()</code> 函数只支持以秒为单位指定延迟。</p>", "text": "新增 pg_sleep_for(interval) 和 pg_sleep_until(timestamp)，以更灵活地指定延迟（Vik Fearing、Julien Rouhaud） 现有的 pg_sleep() 函数只支持以秒为单位指定延迟。", "title": "新增 pg_sleep_for(interval) 和 pg_sleep_until(timestamp)，以更灵活地指定延迟", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9", "source_hash": "2a21916c6bd38f1ec71880cce65c5855642261e38dbb2090cae0e5117d86df5f", "section_path": ["函数"], "commit_groups": [], "identity_text": "Add pg_sleep_for(interval) and pg_sleep_until(timestamp) to specify delays more flexibly (Vik Fearing, Julien Rouhaud) The existing pg_sleep() function only supports delays specified in seconds.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/089", "db_id": "d709c6056c83103d28a3039334834d01", "patch_ids": [], "statement_hash": "e1661f304ad7bcd7558b29cc53dcdba9532c7132f3a576db3848749a42b8bb67", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-62f133dca1528c9d", "cves": [], "html": "<p>新增面向数组的 <a href=\"/docs/9.4/functions-array.html#ARRAY-FUNCTIONS-TABLE\" title=\"表 9.46. 数组函数\"><code>cardinality()</code></a> 函数（Marko Tiikkaja）</p>\n<p>它返回数组中元素的总数，对于没有元素的数组则返回零。</p>", "text": "新增面向数组的 cardinality() 函数（Marko Tiikkaja） 它返回数组中元素的总数，对于没有元素的数组则返回零。", "title": "新增面向数组的 cardinality() 函数", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9", "source_hash": "9f16a5fd671883875ad597b75c39f688a852444072b792ba13a0af8906004820", "section_path": ["函数"], "commit_groups": [], "identity_text": "Add cardinality() function for arrays (Marko Tiikkaja) This returns the total number of elements in the array, or zero for an array with no elements.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/090", "db_id": "935fe7d88b3bbac1737cc21045fc4311", "patch_ids": [], "statement_hash": "0ef70aeddf85a9e342508081e7ef65a616e260a53f869b15503fa5271987650b", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-c91c3c6b92c00225", "cves": [], "html": "<p>新增 <acronym>SQL</acronym> 函数，允许在任意偏移处进行<a href=\"/docs/9.4/lo-funcs.html\" title=\"32.4. 服务器端函数\">大对象读写</a>（Pavel Stehule）</p>", "text": "新增 SQL 函数，允许在任意偏移处进行大对象读写（Pavel Stehule）", "title": "新增 SQL 函数，允许在任意偏移处进行大对象读写", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9", "source_hash": "b261dc64b4c360aef165296785bbcb778ef08055012f4ebdbbbd73cb63dc7bf7", "section_path": ["函数"], "commit_groups": [], "identity_text": "Add SQL functions to allow large object reads/writes at arbitrary offsets (Pavel Stehule)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/091", "db_id": "726bc75348444a9e6125a40cba7178eb", "patch_ids": [], "statement_hash": "856be3c1b2ee8781fe300f9ab531d4fc32ec0a651f7482d53be30667b6b5afd6", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-07d942b3298a9310", "cves": [], "html": "<p>允许 <a href=\"/docs/9.4/functions-array.html#ARRAY-FUNCTIONS-TABLE\" title=\"表 9.46. 数组函数\"><code>unnest()</code></a> 接受多个参数，各参数分别展开后再水平串联（Andrew Gierth）</p>", "text": "允许 unnest() 接受多个参数，各参数分别展开后再水平串联（Andrew Gierth）", "title": "允许 unnest() 接受多个参数，各参数分别展开后再水平串联", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9", "source_hash": "917ef426e0d2e87323d35a8e3929f5061928fcf68a9d553b312dc4231a128c19", "section_path": ["函数"], "commit_groups": [], "identity_text": "Allow unnest() to take multiple arguments, which are individually unnested then horizontally concatenated (Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/092", "db_id": "c3c41715155c7f51cc889501f21ad8df", "patch_ids": [], "statement_hash": "8cb1ddd53777d2cf53de21018c6121925a0aa52807e116df46ce20bc3f3bc350", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-7f4342594b2293d6", "cves": [], "html": "<p>新增从各个单独的值（而非字符串）构造 <code>time</code>、<code>date</code>、<code>timestamp</code>、<code>timestamptz</code> 和 <code>interval</code> 的函数（Pavel Stehule）</p>\n<p>这些函数的名称以 <code>make_</code> 为前缀，例如 <a href=\"/docs/9.4/functions-datetime.html#FUNCTIONS-DATETIME-TABLE\" title=\"表 9.28. 日期/时间函数\"><code>make_date()</code></a>。</p>", "text": "新增从各个单独的值（而非字符串）构造 time、date、timestamp、timestamptz 和 interval 的函数（Pavel Stehule） 这些函数的名称以 make_ 为前缀，例如 make_date()。", "title": "新增从各个单独的值（而非字符串）构造 time、date、timestamp、timestamptz 和 interval 的函数", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9", "source_hash": "310d90df55038d61b781f20e74a90c47c541adee4405d6bf72c0c6fba80dee38", "section_path": ["函数"], "commit_groups": [], "identity_text": "Add functions to construct times, dates, timestamps, timestamptzs, and intervals from individual values, rather than strings (Pavel Stehule) These functions' names are prefixed with make_, e.g. make_date().", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/093", "db_id": "fa991d84a0a82162f49e6c92f0463f40", "patch_ids": [], "statement_hash": "0f3cae11cdb490ceb56b99eaa6935483fb7684891dc1cde8e5db71a291af76c2", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-8d2460daa45a5a11", "cves": [], "html": "<p>使 <a href=\"/docs/9.4/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE\" title=\"表 9.21. 格式化函数\"><code>to_char()</code></a> 的 <code>TZ</code> 格式说明符对简单的数字时区偏移返回有用的值（Tom Lane）</p>\n<p>此前，如果 <code>timezone</code> 被设置为类似 <code>-4</code> 的常量，<code>to_char(CURRENT_TIMESTAMP, 'TZ')</code> 会返回空字符串。</p>", "text": "使 to_char() 的 TZ 格式说明符对简单的数字时区偏移返回有用的值（Tom Lane） 此前，如果 timezone 被设置为类似 -4 的常量，to_char(CURRENT_TIMESTAMP, 'TZ') 会返回空字符串。", "title": "使 to_char() 的 TZ 格式说明符对简单的数字时区偏移返回有用的值", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9", "source_hash": "4bba0708133968aa4a7b2609d8b98bbd146ed8fefeb980211f0799c19151a56a", "section_path": ["函数"], "commit_groups": [], "identity_text": "Make to_char()'s TZ format specifier return a useful value for simple numeric time zone offsets (Tom Lane) Previously, to_char(CURRENT_TIMESTAMP, 'TZ') returned an empty string if the timezone was set to a constant like -4.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/094", "db_id": "3cd6a7314c12fa1fa024581b84fc491f", "patch_ids": [], "statement_hash": "8d242e7e4c06cd1528dca6fa1ab36c1ef7d2e2fce8dd5d0a8880f825300a7b16", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-4a755d5017bb4716", "cves": [], "html": "<p>为 <a href=\"/docs/9.4/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE\" title=\"表 9.21. 格式化函数\"><code>to_char()</code></a> 新增时区偏移格式说明符 <code>OF</code>（Bruce Momjian）</p>", "text": "为 to_char() 新增时区偏移格式说明符 OF（Bruce Momjian）", "title": "为 to_char() 新增时区偏移格式说明符 OF", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9", "source_hash": "b7d5764353dd2cca1d37f3850ee608bf494e9bb54bb39c825d585db2af3150c2", "section_path": ["函数"], "commit_groups": [], "identity_text": "Add timezone offset format specifier OF to to_char() (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/095", "db_id": "d4dad0b7f999759788441855cffff3bd", "patch_ids": [], "statement_hash": "5964a81fa556a76b60700a144c55628d425f5ded49087df1e2e332be6294e2eb", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-df4c69a9a548901f", "cves": [], "html": "<p>改进 <a href=\"/docs/9.4/functions-math.html#FUNCTIONS-MATH-RANDOM-TABLE\" title=\"表 9.4. 随机函数\"><code>random()</code></a> 所用的随机种子（Honza Horak）</p>", "text": "改进 random() 所用的随机种子（Honza Horak）", "title": "改进 random() 所用的随机种子", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9", "source_hash": "3786aab5337fc5a7177c2e1f03f7d2ec465ddc3106f58032a70aee0140348d0c", "section_path": ["函数"], "commit_groups": [], "identity_text": "Improve the random seed used for random() (Honza Horak)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/096", "db_id": "a2305918fb87e954160819f4933e399a", "patch_ids": [], "statement_hash": "3fd9018b8c2ab8559b7080a75d0f2906e841c6c08e637b042791d9464c95d700", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-7ac40e795e5bae6a", "cves": [], "html": "<p>收紧 <a href=\"/docs/9.4/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"表 9.7. 其他字符串函数\"><code>chr(int)</code></a> 中对 Unicode 码点的有效性检查（Tom Lane）</p>\n<p>此函数现在只接受按照 RFC 3629 是有效 UTF8 字符的值。</p>", "text": "收紧 chr(int) 中对 Unicode 码点的有效性检查（Tom Lane） 此函数现在只接受按照 RFC 3629 是有效 UTF8 字符的值。", "title": "收紧 chr(int) 中对 Unicode 码点的有效性检查", "commits": [], "section": "函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9", "source_hash": "0dd7b4ee7b25c564e707ceef10181b3857731654bc3d96d8cf241cdb4d765787", "section_path": ["函数"], "commit_groups": [], "identity_text": "Tighten validity checking for Unicode code points in chr(int) (Tom Lane) This function now only accepts values that are valid UTF8 characters according to RFC 3629.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/097", "db_id": "2158dcf319aa4a10e69a70073fa41b8b", "patch_ids": [], "statement_hash": "0a861a7837b92a9b576ecd7f327c390686b9d8472814be85c79f4e77c0778382", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-a9b9cfda01500899", "cves": [], "html": "<p>新增在 <code>pg_class</code>、<code>pg_proc</code>、<code>pg_type</code> 和 <code>pg_operator</code> 中查找对象的函数，它们不会对不存在的对象产生错误（Yugo Nagata、Nozomi Anzai、Robert Haas）</p>\n<p>例如，<a href=\"/docs/9.4/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"表 9.59. 系统目录信息函数\"><code>to_regclass()</code></a> 类似于 <code>regclass</code> 输入函数在 <code>pg_class</code> 中进行查找，但对不存在的对象返回 NULL 而不是失败。</p>", "text": "新增在 pg_class、pg_proc、pg_type 和 pg_operator 中查找对象的函数，它们不会对不存在的对象产生错误（Yugo Nagata、Nozomi Anzai、Robert Haas） 例如，to_regclass() 类似于 regclass 输入函数在 pg_class 中进行查找，但对不存在的对象返回 NULL 而不是失败。", "title": "新增在 pg_class、pg_proc、pg_type 和 pg_operator 中查找对象的函数，它们不会对不存在的对象产生错误", "commits": [], "section": "函数 / 系统信息函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9.3", "source_hash": "fa26831520f25348b02da7d57645fd3652e646565244a4876290440cc19f9509", "section_path": ["函数", "系统信息函数"], "commit_groups": [], "identity_text": "Add functions for looking up objects in pg_class, pg_proc, pg_type, and pg_operator that do not generate errors for non-existent objects (Yugo Nagata, Nozomi Anzai, Robert Haas) For example, to_regclass() does a lookup in pg_class similarly to the regclass input function, but it returns NULL for a non-existent object instead of failing.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/098", "db_id": "4f0630f285d86fdd2cc1454179fd9476", "patch_ids": [], "statement_hash": "6d01812773bebb24340d7c44af37f9bc553e6866c0b2fecadf0b343bf4c862cb", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-9b56e16802c10e9f", "cves": [], "html": "<p>新增函数 <a href=\"/docs/9.4/functions-admin.html#FUNCTIONS-ADMIN-DBLOCATION\" title=\"表 9.71. 数据库对象位置函数\"><code>pg_filenode_relation()</code></a>，允许更高效地从文件节点查找关系名（Andres Freund）</p>", "text": "新增函数 pg_filenode_relation()，允许更高效地从文件节点查找关系名（Andres Freund）", "title": "新增函数 pg_filenode_relation()，允许更高效地从文件节点查找关系名", "commits": [], "section": "函数 / 系统信息函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9.3", "source_hash": "daf7f7cc7689f4c8bd51d524605809326aa856bc74358f2ec6fef976181ab8ac", "section_path": ["函数", "系统信息函数"], "commit_groups": [], "identity_text": "Add function pg_filenode_relation() to allow for more efficient lookup of relation names from filenodes (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/099", "db_id": "8dd329313a930ba46939718fb2fb04e6", "patch_ids": [], "statement_hash": "88dbf851124bb0d562c2240bfa4f6124a841269d56200eb14abcfeebe88397e4", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-98c94736ce2fab5a", "cves": [], "html": "<p>为 <a href=\"/docs/9.4/infoschema-parameters.html\" title=\"34.32. parameters\"><code>information_schema.parameters</code></a> 视图新增 <code>parameter_default</code> 列（Peter Eisentraut）</p>", "text": "为 information_schema.parameters 视图新增 parameter_default 列（Peter Eisentraut）", "title": "为 information_schema.parameters 视图新增 parameter_default 列", "commits": [], "section": "函数 / 系统信息函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9.3", "source_hash": "4f85410358dc5036f211033aae25f652511eb9aebe1f2ca7b2afbf7d6e7d3103", "section_path": ["函数", "系统信息函数"], "commit_groups": [], "identity_text": "Add parameter_default column to information_schema.parameters view (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/100", "db_id": "e107731cc8a47517e39123f11e1b588d", "patch_ids": [], "statement_hash": "f5f28d4b8ed323040c5cd4921b17eee8407407021f71c755f3cdf6de0406f0bd", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-4cae88af306060f8", "cves": [], "html": "<p>使 <a href=\"/docs/9.4/infoschema-schemata.html\" title=\"34.41. schemata\"><code>information_schema.schemata</code></a> 显示所有可访问的模式（Peter Eisentraut）</p>\n<p>此前它只显示当前用户拥有的模式。</p>", "text": "使 information_schema.schemata 显示所有可访问的模式（Peter Eisentraut） 此前它只显示当前用户拥有的模式。", "title": "使 information_schema.schemata 显示所有可访问的模式", "commits": [], "section": "函数 / 系统信息函数", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9.3", "source_hash": "686f23b7c21ff1dd8caca72587f204a6ba98e36b87a3de585c69fceecb189a65", "section_path": ["函数", "系统信息函数"], "commit_groups": [], "identity_text": "Make information_schema.schemata show all accessible schemas (Peter Eisentraut) Previously it only showed schemas owned by the current user.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/101", "db_id": "a1e247eed38fa99b63b18eb8d91cb212", "patch_ids": [], "statement_hash": "db1264117e55210780b87120b4b7f63aee5eca519e6044f4f9334135e87ac7e0", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-6f4fa3474888e2dc", "cves": [], "html": "<p>通过 <a href=\"/docs/9.4/sql-expressions.html#SYNTAX-AGGREGATES\" title=\"4.2.7. 聚合表达式\"><code>FILTER</code></a> 子句控制哪些行被传递给聚集函数（David Fetter）</p>", "text": "通过 FILTER 子句控制哪些行被传递给聚集函数（David Fetter）", "title": "通过 FILTER 子句控制哪些行被传递给聚集函数", "commits": [], "section": "函数 / 聚合", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9.4", "source_hash": "60b9327318a6520aca80ebe660e65e6abc23fe6c532ef55b691e3891891e97e5", "section_path": ["函数", "聚合"], "commit_groups": [], "identity_text": "Add control over which rows are passed into aggregate functions via the FILTER clause (David Fetter)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/102", "db_id": "6177fad2f9762cc4db8d015dee61f685", "patch_ids": [], "statement_hash": "dd418aa1c2469092a39057f243180fac6e3f75750ddf857c3dc262442e6f197b", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-189597fa868bfb30", "cves": [], "html": "<p>支持有序集（<a href=\"/docs/9.4/sql-expressions.html#SYNTAX-AGGREGATES\" title=\"4.2.7. 聚合表达式\"><code>WITHIN GROUP</code></a>）聚集（Atri Sharma、Andrew Gierth、Tom Lane）</p>", "text": "支持有序集（WITHIN GROUP）聚集（Atri Sharma、Andrew Gierth、Tom Lane）", "title": "支持有序集（WITHIN GROUP）聚集", "commits": [], "section": "函数 / 聚合", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9.4", "source_hash": "9583c24056287c698bcc4480a9c61cef012061647a0b09a342233b2b41e3d845", "section_path": ["函数", "聚合"], "commit_groups": [], "identity_text": "Support ordered-set (WITHIN GROUP) aggregates (Atri Sharma, Andrew Gierth, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/103", "db_id": "dcbb81a9b1f68b4d97be83e9af660b11", "patch_ids": [], "statement_hash": "d7b18af36efee53af1759257991e07415c00ca38c342f1ead6fe4f5b6abb99d7", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-923329fe162c85e4", "cves": [], "html": "<p>新增标准有序集聚集 <a href=\"/docs/9.4/functions-aggregate.html#FUNCTIONS-ORDEREDSET-TABLE\" title=\"表 9.51. 有序集聚合函数\"><code>percentile_cont()</code></a>、<code>percentile_disc()</code>、<code>mode()</code>、<a href=\"/docs/9.4/functions-aggregate.html#FUNCTIONS-HYPOTHETICAL-TABLE\" title=\"表 9.52. 假想集聚合函数\"><code>rank()</code></a>、<code>dense_rank()</code>、<code>percent_rank()</code> 和 <code>cume_dist()</code>（Atri Sharma、Andrew Gierth）</p>", "text": "新增标准有序集聚集 percentile_cont()、percentile_disc()、mode()、rank()、dense_rank()、percent_rank() 和 cume_dist()（Atri Sharma、Andrew Gierth）", "title": "新增标准有序集聚集 percentile_cont()、percentile_disc()、mode()、rank()、dense_rank()、percent_rank() 和 cume_dist()", "commits": [], "section": "函数 / 聚合", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9.4", "source_hash": "c48910e2a62311ca6cd36131b3d1d4988efff355c15927f4951c32a82dd2dfeb", "section_path": ["函数", "聚合"], "commit_groups": [], "identity_text": "Add standard ordered-set aggregates percentile_cont(), percentile_disc(), mode(), rank(), dense_rank(), percent_rank(), and cume_dist() (Atri Sharma, Andrew Gierth)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/104", "db_id": "24e9cacfc9e86d5ca6beb29023469e01", "patch_ids": [], "statement_hash": "8078b102eadca22282d992e4e5def7888fb3bed82b663959b4397ba7c28577eb", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-b170214d59335ac7", "cves": [], "html": "<p>支持 <a href=\"/docs/9.4/xfunc-sql.html#XFUNC-SQL-VARIADIC-FUNCTIONS\" title=\"35.4.5. 带有可变数量参数的SQL函数\"><code>VARIADIC</code></a> 聚集函数（Tom Lane）</p>", "text": "支持 VARIADIC 聚集函数（Tom Lane）", "title": "支持 VARIADIC 聚集函数", "commits": [], "section": "函数 / 聚合", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9.4", "source_hash": "a9641bd6a27b6875f7cf377ab79b69507a10161bfc1b535436636028d26bc5f2", "section_path": ["函数", "聚合"], "commit_groups": [], "identity_text": "Support VARIADIC aggregate functions (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/105", "db_id": "a1fc4365390bf56a216e06968955c0d3", "patch_ids": [], "statement_hash": "4f4e973ded498088a5a3326eaafb6d847cc5c637fd8ad0a41eee97c28bd10dfd", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-6c294005b3b33557", "cves": [], "html": "<p>允许多态聚集具有非多态的状态数据类型（Tom Lane）</p>\n<p>这使得可以在 SQL 中正确声明诸如内置聚集 <code>array_agg()</code> 之类的聚集。</p>", "text": "允许多态聚集具有非多态的状态数据类型（Tom Lane） 这使得可以在 SQL 中正确声明诸如内置聚集 array_agg() 之类的聚集。", "title": "允许多态聚集具有非多态的状态数据类型", "commits": [], "section": "函数 / 聚合", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.9.4", "source_hash": "bdeba48b403e511bbab90c813b9e61038244f66e369022620276cc1d97aa0242", "section_path": ["函数", "聚合"], "commit_groups": [], "identity_text": "Allow polymorphic aggregates to have non-polymorphic state data types (Tom Lane) This allows proper declaration in SQL of aggregates like the built-in aggregate array_agg().", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/106", "db_id": "6f26b910f15b33678c1cd2d394fdc4ed", "patch_ids": [], "statement_hash": "de7b59fba06391288a76993566b1c4f1cd8355b43b044ae846bde287e1f6597d", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-5ab5f781a218ffa6", "cves": [], "html": "<p>为 <a href=\"/docs/9.4/plperl.html\" title=\"第 42 章 PL/Perl - Perl 过程语言\">PL/Perl</a> 和 <a href=\"/docs/9.4/pltcl.html\" title=\"第 41 章 PL/Tcl - Tcl 过程语言\">PL/Tcl</a> 新增事件触发器支持（Dimitri Fontaine）</p>", "text": "为 PL/Perl 和 PL/Tcl 新增事件触发器支持（Dimitri Fontaine）", "title": "为 PL/Perl 和 PL/Tcl 新增事件触发器支持", "commits": [], "section": "服务器端语言", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.10", "source_hash": "e08aed9c505779446cf325f5bd00807a99e0a3cb693cf59d0b9d229d1141e329", "section_path": ["服务器端语言"], "commit_groups": [], "identity_text": "Add event trigger support to PL/Perl and PL/Tcl (Dimitri Fontaine)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/107", "db_id": "4816a35550bbff8af48150c516329319", "patch_ids": [], "statement_hash": "dc113e6122b921871494e2725b053be2c2d3e48d8ac1660397fef345a10eeb40", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-c5cf491b30a60161", "cves": [], "html": "<p>在 <a href=\"/docs/9.4/plpython.html\" title=\"第 43 章 PL/Python - Python 过程语言\">PL/Python</a> 中把 <a href=\"/docs/9.4/datatype.html#DATATYPE-NUMERIC\" title=\"8.1. 数字类型\"><code>numeric</code></a> 值转换为 <code>decimal</code>（Szymon Guz、Ronan Dunklau）</p>\n<p>此前此类值被转换为 Python 的 <code>float</code> 值，有损失精度的风险。</p>", "text": "在 PL/Python 中把 numeric 值转换为 decimal（Szymon Guz、Ronan Dunklau） 此前此类值被转换为 Python 的 float 值，有损失精度的风险。", "title": "在 PL/Python 中把 numeric 值转换为 decimal", "commits": [], "section": "服务器端语言", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.10", "source_hash": "48afebfeb55b1e3b0bd937111c92a0e61954f5687bdc3e87db425cebb7a9a07b", "section_path": ["服务器端语言"], "commit_groups": [], "identity_text": "Convert numeric values to decimal in PL/Python (Szymon Guz, Ronan Dunklau) Previously such values were converted to Python float values, risking loss of precision.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/108", "db_id": "e762a68058360d59d5721a69eeaf5bbb", "patch_ids": [], "statement_hash": "623038090b272e7bc328b36ddaf89708d321d47bfee14a41ba4928ad312bf47d", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-2dd73da05944be8f", "cves": [], "html": "<p>新增使用 <a href=\"/docs/9.4/plpgsql-control-structures.html#PLPGSQL-CALL-STACK\" title=\"40.6.7. 获得执行位置信息\"><code>GET DIAGNOSTICS</code></a> 获取当前 PL/pgSQL 调用栈的能力（Pavel Stehule、Stephen Frost）</p>", "text": "新增使用 GET DIAGNOSTICS 获取当前 PL/pgSQL 调用栈的能力（Pavel Stehule、Stephen Frost）", "title": "新增使用 GET DIAGNOSTICS 获取当前 PL/pgSQL 调用栈的能力", "commits": [], "section": "服务器端语言 / PL/pgSQL Server-Side Language", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.10.3", "source_hash": "53ccd4a5e0d04dbfa0ff6e92b534bb91d939b63fe8f667c4b62df13aafc4c8fb", "section_path": ["服务器端语言", "PL/pgSQL Server-Side Language"], "commit_groups": [], "identity_text": "Add ability to retrieve the current PL/pgSQL call stack using GET DIAGNOSTICS (Pavel Stehule, Stephen Frost)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/109", "db_id": "2cec84dbf0652d810fce1d3cc35a94d2", "patch_ids": [], "statement_hash": "c48f8870a199c97bf56cd1bfdb8614896a3b5f8c247028c0688884cbd3712f7b", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-5bf5f3b207c8ce42", "cves": [], "html": "<p>新增选项 <a href=\"/docs/9.4/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-ONEROW\" title=\"40.5.3. 执行返回单行结果的查询\"><code>print_strict_params</code></a>，用于显示传递给违反 <code>STRICT</code> 约束的查询的参数（Marko Tiikkaja）</p>", "text": "新增选项 print_strict_params，用于显示传递给违反 STRICT 约束的查询的参数（Marko Tiikkaja）", "title": "新增选项 print_strict_params，用于显示传递给违反 STRICT 约束的查询的参数", "commits": [], "section": "服务器端语言 / PL/pgSQL Server-Side Language", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.10.3", "source_hash": "99716033948f92258af0920607e0c48f154850c50841ba149904c821b8a10cd9", "section_path": ["服务器端语言", "PL/pgSQL Server-Side Language"], "commit_groups": [], "identity_text": "Add option print_strict_params to display the parameters passed to a query that violated a STRICT constraint (Marko Tiikkaja)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/110", "db_id": "45c28ce89ca607f87adb9f52ae70c205", "patch_ids": [], "statement_hash": "ba228339ad96bc46f66054f149ffb473c7b928d840ddefb4d6f1635946965810", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-d9f9a822d1d71d9f", "cves": [], "html": "<p>新增变量 <a href=\"/docs/9.4/plpgsql-development-tips.html#PLPGSQL-EXTRA-CHECKS\" title=\"40.11.2. 额外的编译时检查\"><code>plpgsql.extra_warnings</code></a> 和 <code>plpgsql.extra_errors</code>，用于启用额外的 PL/pgSQL 警告和错误（Marko Tiikkaja、Petr Jelinek）</p>\n<p>目前只有关于被遮蔽变量的警告/错误可用。</p>", "text": "新增变量 plpgsql.extra_warnings 和 plpgsql.extra_errors，用于启用额外的 PL/pgSQL 警告和错误（Marko Tiikkaja、Petr Jelinek） 目前只有关于被遮蔽变量的警告/错误可用。", "title": "新增变量 plpgsql.extra_warnings 和 plpgsql.extra_errors，用于启用额外的 PL/pgSQL 警告和错误", "commits": [], "section": "服务器端语言 / PL/pgSQL Server-Side Language", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.10.3", "source_hash": "d5d92b5dfeeb2cc36306118560e057d5760d4e0b2224c1fa9da067df29dd94f2", "section_path": ["服务器端语言", "PL/pgSQL Server-Side Language"], "commit_groups": [], "identity_text": "Add variables plpgsql.extra_warnings and plpgsql.extra_errors to enable additional PL/pgSQL warnings and errors (Marko Tiikkaja, Petr Jelinek) Currently only warnings/errors about shadowed variables are available.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/111", "db_id": "1d0f9a9e876b666a395aba71b0ed6817", "patch_ids": [], "statement_hash": "75910dc1c9104a3e1556d876f76df7a3e85465cd16d0ce83531f6d8bc4cfb98c", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-ec3c275eac2f6d1f", "cves": [], "html": "<p>使 libpq 的 <a href=\"/docs/9.4/libpq.html#LIBPQ-PQCONNDEFAULTS\"><code>PQconndefaults()</code></a> 函数忽略无效的服务文件（Steve Singer、Bruce Momjian）</p>\n<p>此前它遇到不正确的服务文件时会返回 NULL。</p>", "text": "使 libpq 的 PQconndefaults() 函数忽略无效的服务文件（Steve Singer、Bruce Momjian） 此前它遇到不正确的服务文件时会返回 NULL。", "title": "使 libpq 的 PQconndefaults() 函数忽略无效的服务文件", "commits": [], "section": "libpq", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.11", "source_hash": "a9ed2919c0ce8b3ff624a04dcc6e7ed7e2a7111a11c30f4456118716464cb218", "section_path": ["libpq"], "commit_groups": [], "identity_text": "Make libpq's PQconndefaults() function ignore invalid service files (Steve Singer, Bruce Momjian) Previously it returned NULL if an incorrect service file was encountered.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/112", "db_id": "5c76850b8d79f7f5df153228dadd7a13", "patch_ids": [], "statement_hash": "1a036dcca0309f854b2524ec10645ac9c4af523dac6de47cc65bd83241fdb686", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-f51e78bdec50711f", "cves": [], "html": "<p>libpq 接受 <code>TLSv1</code> 之外的 <acronym>TLS</acronym> 协议版本（Marko Kreen）</p>", "text": "libpq 接受 TLSv1 之外的 TLS 协议版本（Marko Kreen）", "title": "libpq 接受 TLSv1 之外的 TLS 协议版本", "commits": [], "section": "libpq", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.11", "source_hash": "2548e60062be3de70d979245e84d4155592c6f303f78158d9a9641200ac6d435", "section_path": ["libpq"], "commit_groups": [], "identity_text": "Accept TLS protocol versions beyond TLSv1 in libpq (Marko Kreen)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/113", "db_id": "dbd6204e46d640f177e8b106555f2cab", "patch_ids": [], "statement_hash": "eba7b3dfc058b3876a9bef47880928362c6e82d701b833fa5dd048ba497726c8", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-9b4ad3f71dd9475b", "cves": [], "html": "<p>为<a href=\"/docs/9.4/app-createuser.html\" title=\"createuser\"><span><span>createuser</span></span></a>新增选项 <code>-g</code>，用于指定角色成员关系（Christopher Browne）</p>", "text": "为createuser新增选项 -g，用于指定角色成员关系（Christopher Browne）", "title": "为createuser新增选项 -g，用于指定角色成员关系", "commits": [], "section": "客户端应用程序", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12", "source_hash": "6585b0c87012d6d0e2820fdbe6c5b78cb393b75ac0cabb60c6cc28a97a3fcc32", "section_path": ["客户端应用程序"], "commit_groups": [], "identity_text": "Add APP-CREATEUSER option -g to specify role membership (Christopher Browne)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/114", "db_id": "da7647b4fd06ed23746eefb8c9fd5265", "patch_ids": [], "statement_hash": "d6770d5c68e130cfb20cf2bd6472564b43280aa56799399291b1a9644ca7091e", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-433b1999e61bdfb0", "cves": [], "html": "<p>为<a href=\"/docs/9.4/app-vacuumdb.html\" title=\"vacuumdb\"><span><span>vacuumdb</span></span></a>新增选项 <code>--analyze-in-stages</code>，按粒度递增的分阶段方式进行分析（Peter Eisentraut）</p>\n<p>这允许快速创建最基本的统计信息。</p>", "text": "为vacuumdb新增选项 --analyze-in-stages，按粒度递增的分阶段方式进行分析（Peter Eisentraut） 这允许快速创建最基本的统计信息。", "title": "为vacuumdb新增选项 --analyze-in-stages，按粒度递增的分阶段方式进行分析", "commits": [], "section": "客户端应用程序", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12", "source_hash": "5d224faeea48800adad1e01513bf6d1c5c3f8d99a04519ef393a92ddd58210a8", "section_path": ["客户端应用程序"], "commit_groups": [], "identity_text": "Add APP-VACUUMDB option --analyze-in-stages to analyze in stages of increasing granularity (Peter Eisentraut) This allows minimal statistics to be created quickly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/115", "db_id": "3a4cd46ff8e39e481d7ddaeafa9f8a3e", "patch_ids": [], "statement_hash": "09e874eb86f5df0ba36fa7fa0a8d72755ee03e01392cc263545422d54bb5d6cb", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-bed2e46627b49229", "cves": [], "html": "<p>使带选项 <code>-n</code> 的<a href=\"/docs/9.4/app-pgresetxlog.html\" title=\"pg_resetxlog\"><span><span>pg_resetxlog</span></span></a>输出当前值和可能被更改的值（Rajeev Rastogi）</p>", "text": "使带选项 -n 的pg_resetxlog输出当前值和可能被更改的值（Rajeev Rastogi）", "title": "使带选项 -n 的pg_resetxlog输出当前值和可能被更改的值", "commits": [], "section": "客户端应用程序", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12", "source_hash": "376548e2fd68d1e088f841f0a4f514bf47e6e97b44f3e8db1e533a518a8686f2", "section_path": ["客户端应用程序"], "commit_groups": [], "identity_text": "Make APP-PGRESETXLOG with option -n output current and potentially changed values (Rajeev Rastogi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/116", "db_id": "b73fe8f0c0b690a95bcfaf75ed759deb", "patch_ids": [], "statement_hash": "1f1541149cd13c7ddbe3cd8fbc8b700c1e240d986c43131b0d91754a1d27930e", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-9a445001e7d6be4f", "cves": [], "html": "<p>使<a href=\"/docs/9.4/app-initdb.html\" title=\"initdb\"><span>initdb</span></a>对不正确的区域设置抛出错误，而不是静默回退到默认选择（Tom Lane）</p>", "text": "使initdb对不正确的区域设置抛出错误，而不是静默回退到默认选择（Tom Lane）", "title": "使initdb对不正确的区域设置抛出错误，而不是静默回退到默认选择", "commits": [], "section": "客户端应用程序", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12", "source_hash": "bdc9558e9aa5a9208bd65fb986063d58487cb26a1f836e74442502e3f3551a58", "section_path": ["客户端应用程序"], "commit_groups": [], "identity_text": "Make app-initdb throw error for incorrect locale settings, rather than silently falling back to a default choice (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/117", "db_id": "40d8101e99d02e6b398641ec55f83289", "patch_ids": [], "statement_hash": "3c27a2620bef85a5aea7993f5eacfdb65c79a9c27c63df4efbd28eccc9633047", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-f2c864a411d5cedb", "cves": [], "html": "<p>使<a href=\"/docs/9.4/app-pg-ctl.html\" title=\"pg_ctl\"><span><span>pg_ctl</span></span></a>在数据目录不可访问时返回退出码 <code>4</code>（Amit Kapila、Bruce Momjian）</p>\n<p>这一行为更符合 Linux 标准库（<acronym>LSB</acronym>）核心规范。</p>", "text": "使pg_ctl在数据目录不可访问时返回退出码 4（Amit Kapila、Bruce Momjian） 这一行为更符合 Linux 标准库（LSB）核心规范。", "title": "使pg_ctl在数据目录不可访问时返回退出码 4", "commits": [], "section": "客户端应用程序", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12", "source_hash": "bcc5075e9da416fc1d14e764bfbbce2aae6c066c02cc89969f072b082a8cb508", "section_path": ["客户端应用程序"], "commit_groups": [], "identity_text": "Make app-pg-ctl return exit code 4 for an inaccessible data directory (Amit Kapila, Bruce Momjian) This behavior more closely matches the Linux Standard Base (LSB) Core Specification.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/118", "db_id": "c3e3500ddf61007a05d9a47a2a030f80", "patch_ids": [], "statement_hash": "112df9b281c958d58a0c1430bcc99a6a7e2462e2a6e4a33481870e847d1ecf4c", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-a3693a1f6b248939", "cves": [], "html": "<p>在 Windows 上，确保非绝对路径的 <code>-D</code> 规范相对于<a href=\"/docs/9.4/app-pg-ctl.html\" title=\"pg_ctl\"><span><span>pg_ctl</span></span></a>的当前目录解释（Kumar Rajeev Rastogi）</p>\n<p>此前它会相对于底层 Windows 服务启动时所在的目录解释。</p>", "text": "在 Windows 上，确保非绝对路径的 -D 规范相对于pg_ctl的当前目录解释（Kumar Rajeev Rastogi） 此前它会相对于底层 Windows 服务启动时所在的目录解释。", "title": "在 Windows 上，确保非绝对路径的 -D 规范相对于pg_ctl的当前目录解释", "commits": [], "section": "客户端应用程序", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12", "source_hash": "0cf533cb573b3332b4d5a28919739cd49e92ad95eee5ec29f94d0a054ffc6390", "section_path": ["客户端应用程序"], "commit_groups": [], "identity_text": "On Windows, ensure that a non-absolute -D path specification is interpreted relative to app-pg-ctl 's current directory (Kumar Rajeev Rastogi) Previously it would be interpreted relative to whichever directory the underlying Windows service was started in.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/119", "db_id": "c46a06928cfddc097940c5a6074c6223", "patch_ids": [], "statement_hash": "f5cd1f3178054ae99ecceca7099ec2ae50e3499b2bd8a4d32fd457598659cff3", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-c7876690467871c3", "cves": [], "html": "<p>允许在 <a href=\"/docs/9.4/ecpg.html\" title=\"第 33 章 ECPG - C 中的嵌入式 SQL\">ECPG</a> 的 C 数组定义中使用 <code>sizeof()</code>（Michael Meskes）</p>", "text": "允许在 ECPG 的 C 数组定义中使用 sizeof()（Michael Meskes）", "title": "允许在 ECPG 的 C 数组定义中使用 sizeof()", "commits": [], "section": "客户端应用程序", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12", "source_hash": "3888699411a672aec785a6d965773096acb154c347c1162ee13eca0751e69fe6", "section_path": ["客户端应用程序"], "commit_groups": [], "identity_text": "Allow sizeof() in ECPG C array definitions (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/120", "db_id": "ce57cd2c4b936299b6e8389dbadc1aad", "patch_ids": [], "statement_hash": "4fa6dd3d802d402f948f01c3c461a83cb5664bd9d1c4de0654ed03f4a201fb74", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-7f21cf6b7e47c7fa", "cves": [], "html": "<p>使 <a href=\"/docs/9.4/ecpg.html\" title=\"第 33 章 ECPG - C 中的嵌入式 SQL\">ECPG</a> 正确处理 C 文本和 <acronym>SQL</acronym> 文本中 C 风格注释的嵌套（Michael Meskes）</p>", "text": "使 ECPG 正确处理 C 文本和 SQL 文本中 C 风格注释的嵌套（Michael Meskes）", "title": "使 ECPG 正确处理 C 文本和 SQL 文本中 C 风格注释的嵌套", "commits": [], "section": "客户端应用程序", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12", "source_hash": "375b083336c0a6301de69309b6ee0ade0d1c26dc9e25d62f4b361e3101358e03", "section_path": ["客户端应用程序"], "commit_groups": [], "identity_text": "Make ECPG properly handle nesting of C-style comments in both C and SQL text (Michael Meskes)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/121", "db_id": "1d0ce44ff2749f2dce4298c51ed07d81", "patch_ids": [], "statement_hash": "eaaa39cd3a4ff936e760bbb08d715cf3bcff06a76e7a0490c95ee928a3f6603c", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-e9ce87a38b5b9f50", "cves": [], "html": "<p>在禁用页脚时，抑制 <span>psql</span> <a href=\"/docs/9.4/app-psql.html#APP-PSQL-META-COMMANDS\" title=\"元命令\"><code>expanded</code></a> 模式下的 <span>“<span>No rows</span>”</span> 输出（Bruce Momjian）</p>", "text": "在禁用页脚时，抑制 psql expanded 模式下的 “No rows” 输出（Bruce Momjian）", "title": "在禁用页脚时，抑制 psql expanded 模式下的 “No rows” 输出", "commits": [], "section": "客户端应用程序 / psql", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3", "source_hash": "2c473bf973b14031482f1ce48a9116b008826ca523cbfe0021892903f19a45e6", "section_path": ["客户端应用程序", "psql"], "commit_groups": [], "identity_text": "Suppress No rows output in psql expanded mode when the footer is disabled (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/122", "db_id": "46f7ac609536a370c7d817c95b607314", "patch_ids": [], "statement_hash": "f4736fa47eb85288098e676216f87757c5ebe844ceeed4e44191c336b72860a2", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-7922db09ed61bec3", "cves": [], "html": "<p>允许用 Control-C 中止在连接启动时挂起的 <span>psql</span>（Peter Eisentraut）</p>", "text": "允许用 Control-C 中止在连接启动时挂起的 psql（Peter Eisentraut）", "title": "允许用 Control-C 中止在连接启动时挂起的 psql", "commits": [], "section": "客户端应用程序 / psql", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3", "source_hash": "a8f115b0a5c6fcd03b8b4295d8b6e9db8e6e733ba0ea0f51704b9b98326de40c", "section_path": ["客户端应用程序", "psql"], "commit_groups": [], "identity_text": "Allow Control-C to abort psql when it's hung at connection startup (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/123", "db_id": "73e6033af76526f63aba1abda64ce476", "patch_ids": [], "statement_hash": "7f6b27a39f45f4897f28d887f8415c161294d7648a58c29e97b806f8f77bc6cd", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-da439ab68b6f9b72", "cves": [], "html": "<p>使 <span>psql</span> 的 <code>\\db+</code> 显示表空间选项（Magnus Hagander）</p>", "text": "使 psql 的 \\db+ 显示表空间选项（Magnus Hagander）", "title": "使 psql 的 \\db+ 显示表空间选项", "commits": [], "section": "客户端应用程序 / psql / 反斜线命令", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3", "source_hash": "b584f89ee1f10028e45be5e2bea399b80fd182d536d125467d6acb00d6b28f7d", "section_path": ["客户端应用程序", "psql", "反斜线命令"], "commit_groups": [], "identity_text": "Make psql's \\db+ show tablespace options (Magnus Hagander)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/124", "db_id": "4b72da8c06ff65ed88b1704acb2a4960", "patch_ids": [], "statement_hash": "6d2a749551cce58abc4b5f9739aaf2e947f2fbfa8563458085b2939b52270b8a", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-dc964441a8a39334", "cves": [], "html": "<p>使 <code>\\do+</code> 显示实现操作符的函数（Marko Tiikkaja）</p>", "text": "使 \\do+ 显示实现操作符的函数（Marko Tiikkaja）", "title": "使 \\do+ 显示实现操作符的函数", "commits": [], "section": "客户端应用程序 / psql / 反斜线命令", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3", "source_hash": "958d402039b8a8fb9dd7dc159a89f1a0410eb40f4c944ec921f2cfd212db79a1", "section_path": ["客户端应用程序", "psql", "反斜线命令"], "commit_groups": [], "identity_text": "Make \\do+ display the functions that implement the operators (Marko Tiikkaja)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/125", "db_id": "1365904ed6e0005d333b0a81f03aae4a", "patch_ids": [], "statement_hash": "83b0024a4b4be619f84bc0d6648b4b527f2a3bdfddfa1c104124521a8431382b", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-f677bd4205233649", "cves": [], "html": "<p>使 <code>\\d+</code> 只在表中存在 <code>oid</code> 列时才输出 <code>OID</code> 行（Bruce Momjian）</p>\n<p>此前，<code>oid</code> 列的存在与否总是会被报告。</p>", "text": "使 \\d+ 只在表中存在 oid 列时才输出 OID 行（Bruce Momjian） 此前，oid 列的存在与否总是会被报告。", "title": "使 \\d+ 只在表中存在 oid 列时才输出 OID 行", "commits": [], "section": "客户端应用程序 / psql / 反斜线命令", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3", "source_hash": "7ae7ff09d31945e92456e46d60a51350e5a499489ec3ae105155c4f4448436d0", "section_path": ["客户端应用程序", "psql", "反斜线命令"], "commit_groups": [], "identity_text": "Make \\d+ output an OID line only if an oid column exists in the table (Bruce Momjian) Previously, the presence or absence of an oid column was always reported.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/126", "db_id": "03550c13bbf11f1026a9bfdd59d1f12f", "patch_ids": [], "statement_hash": "41e0805f6976ca2c7f1046fa462df9650d04a8571684d4d8150db1808a0453cc", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-058eec158db6a29d", "cves": [], "html": "<p>使 <code>\\d</code> 显示被禁用的系统触发器（Bruce Momjian）</p>\n<p>此前，如果禁用所有触发器，只有用户触发器会显示为已禁用。</p>", "text": "使 \\d 显示被禁用的系统触发器（Bruce Momjian） 此前，如果禁用所有触发器，只有用户触发器会显示为已禁用。", "title": "使 \\d 显示被禁用的系统触发器", "commits": [], "section": "客户端应用程序 / psql / 反斜线命令", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3", "source_hash": "3e2aebecbd3d409839d7b894cc05e7b0bb1b96562482491a62fc50e0e46fae07", "section_path": ["客户端应用程序", "psql", "反斜线命令"], "commit_groups": [], "identity_text": "Make \\d show disabled system triggers (Bruce Momjian) Previously, if you disabled all triggers, only user triggers would show as disabled.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/127", "db_id": "faecfb716d5607293c3a5d1b56e93e2c", "patch_ids": [], "statement_hash": "af47571059e78f27d19ccf3cb4b1228cd08d58cbf33ca5c68f53607a94b0c6c7", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-97f95d979b6b0a74", "cves": [], "html": "<p>修复 <code>\\copy</code>，不再要求 <code>stdin</code> 与分号之间有空格（Etsuro Fujita）</p>", "text": "修复 \\copy，不再要求 stdin 与分号之间有空格（Etsuro Fujita）", "title": "修复 \\copy，不再要求 stdin 与分号之间有空格", "commits": [], "section": "客户端应用程序 / psql / 反斜线命令", "category": "bugfix", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3", "source_hash": "288956515b15846f81df98467342f376a22ddbc23055e615beb996a61268965b", "section_path": ["客户端应用程序", "psql", "反斜线命令"], "commit_groups": [], "identity_text": "Fix \\copy to no longer require a space between stdin and a semicolon (Etsuro Fujita)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/128", "db_id": "794708e9f72b0dffdde3617ef9f7677c", "patch_ids": [], "statement_hash": "af229c8fc0402da6287a5d4112293eba3052d8a0e61d7f97bef98f0ce58053db", "relations": [], "version": "9.4.0", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-8ac51295bc6656ff", "cves": [], "html": "<p>在 <code>\\copy</code> 结束时输出行数，就像 <code>COPY</code> 已经做的那样（Kumar Rajeev Rastogi）</p>", "text": "在 \\copy 结束时输出行数，就像 COPY 已经做的那样（Kumar Rajeev Rastogi）", "title": "在 \\copy 结束时输出行数，就像 COPY 已经做的那样", "commits": [], "section": "客户端应用程序 / psql / 反斜线命令", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3", "source_hash": "88ee912f224cc71f444ae572cb6eeae88e8a7ec48e41c92532dd46d52f1f14ed", "section_path": ["客户端应用程序", "psql", "反斜线命令"], "commit_groups": [], "identity_text": "Output the row count at the end of \\copy, just like COPY already did (Kumar Rajeev Rastogi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/129", "db_id": "8e33b43a4190e93ea6e9c40a4fedae29", "patch_ids": [], "statement_hash": "ec3bc3e9a1293cd8f53238b5bebb6a64d6bd8685c154aac1777e7fc63ed05b46", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-e63f0fc2a79273eb", "cves": [], "html": "<p>修复 <code>\\conninfo</code>，使其对使用 <code>hostaddr</code> 的连接显示服务器的 <acronym>IP</acronym> 地址（Fujii Masao）</p>\n<p>此前在这些情况下 <code>\\conninfo</code> 无法显示服务器的 <acronym>IP</acronym> 地址。</p>", "text": "修复 \\conninfo，使其对使用 hostaddr 的连接显示服务器的 IP 地址（Fujii Masao） 此前在这些情况下 \\conninfo 无法显示服务器的 IP 地址。", "title": "修复 \\conninfo，使其对使用 hostaddr 的连接显示服务器的 IP 地址", "commits": [], "section": "客户端应用程序 / psql / 反斜线命令", "category": "bugfix", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3", "source_hash": "c09fc3628ce96969a00c023e90060e29d7c2ec5ca264a0e1252eb5646cf06ebf", "section_path": ["客户端应用程序", "psql", "反斜线命令"], "commit_groups": [], "identity_text": "Fix \\conninfo to display the server's IP address for connections using hostaddr (Fujii Masao) Previously \\conninfo could not display the server's IP address in such cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/130", "db_id": "cdb2b0e4444acbe4e9f96559332391e7", "patch_ids": [], "statement_hash": "49280b93be7aacb59d46055aa17aa6b8a69f582f216ea26c03cfe7cbf533d30e", "relations": [], "version": "9.4.0", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-f37c25d4714198e4", "cves": [], "html": "<p>在 <code>\\conninfo</code> 中显示 <acronym>SSL</acronym> 协议版本（Marko Kreen）</p>", "text": "在 \\conninfo 中显示 SSL 协议版本（Marko Kreen）", "title": "在 \\conninfo 中显示 SSL 协议版本", "commits": [], "section": "客户端应用程序 / psql / 反斜线命令", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3", "source_hash": "8c3ef281649a2f384ddb9a3c0752cc54fbbd3ad016ee13b2fda62dd4e8bdee91", "section_path": ["客户端应用程序", "psql", "反斜线命令"], "commit_groups": [], "identity_text": "Show the SSL protocol version in \\conninfo (Marko Kreen)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/131", "db_id": "af81750948346ede35ca77a204f04047", "patch_ids": [], "statement_hash": "fb5fd2a812c7af8b86e6343b455adcfce35057d2f7cbc8799f7dbf8af72300e1", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-c6920bee8df72aef", "cves": [], "html": "<p>为 <code>\\pset</code> 新增 Tab 补全（Pavel Stehule）</p>", "text": "为 \\pset 新增 Tab 补全（Pavel Stehule）", "title": "为 \\pset 新增 Tab 补全", "commits": [], "section": "客户端应用程序 / psql / 反斜线命令", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3", "source_hash": "d25113196db8555999ae859ef738c4d31aff151497ca6592945667770a1237a7", "section_path": ["客户端应用程序", "psql", "反斜线命令"], "commit_groups": [], "identity_text": "Add tab completion for \\pset (Pavel Stehule)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/132", "db_id": "6ec05019af7e1c7969bee2ec905d2f84", "patch_ids": [], "statement_hash": "ec966efd890c226c24066fccb249420ecc80eab46248910906a407b6e1a6c432", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-b3e4c6964631b994", "cves": [], "html": "<p>允许不带参数的 <code>\\pset</code> 显示所有设置（Gilles Darold）</p>", "text": "允许不带参数的 \\pset 显示所有设置（Gilles Darold）", "title": "允许不带参数的 \\pset 显示所有设置", "commits": [], "section": "客户端应用程序 / psql / 反斜线命令", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3", "source_hash": "b1a24ae6faf2074b4227b6ab55eb243fb7f90f6b619993b124d0827218804557", "section_path": ["客户端应用程序", "psql", "反斜线命令"], "commit_groups": [], "identity_text": "Allow \\pset with no arguments to show all settings (Gilles Darold)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/133", "db_id": "e1e1ee3c3c6a9c4544a4e294ab683e54", "patch_ids": [], "statement_hash": "19e1946904b6c331046be757a872035bcb7654fe5486b83e4557905be7e0d7fb", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-239348fe20645c81", "cves": [], "html": "<p>使 <code>\\s</code> 显示其写入的历史文件名时不转换为绝对路径（Tom Lane）</p>\n<p>以前的代码试图把相对文件名转换为绝对路径用于显示，但经常出错。</p>", "text": "使 \\s 显示其写入的历史文件名时不转换为绝对路径（Tom Lane） 以前的代码试图把相对文件名转换为绝对路径用于显示，但经常出错。", "title": "使 \\s 显示其写入的历史文件名时不转换为绝对路径", "commits": [], "section": "客户端应用程序 / psql / 反斜线命令", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3", "source_hash": "b8ed27c7382c3cab33ba7cb1a3fee6bf4a6d0330febb3ebd1ce1259e5edbbdf3", "section_path": ["客户端应用程序", "psql", "反斜线命令"], "commit_groups": [], "identity_text": "Make \\s display the name of the history file it wrote without converting it to an absolute path (Tom Lane) The code previously attempted to convert a relative file name to an absolute path for display, but frequently got it wrong.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/134", "db_id": "63ac79e681cb13f688fa86c3bd18a82e", "patch_ids": [], "statement_hash": "ecf731fe9db2a18ffdacb7cf3a426acfe25cb01f8a3d00c54da684d998693568", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-826aa57b76ca9238", "cves": [], "html": "<p>允许<a href=\"/docs/9.4/app-pgrestore.html\" title=\"pg_restore\"><span>pg_restore</span></a>的选项 <code>-I</code>、<code>-P</code>、<code>-T</code> 和 <code>-n</code> 被多次指定（Heikki Linnakangas）</p>\n<p>这允许在一次操作中还原多个对象。</p>", "text": "允许pg_restore的选项 -I、-P、-T 和 -n 被多次指定（Heikki Linnakangas） 这允许在一次操作中还原多个对象。", "title": "允许pg_restore的选项 -I、-P、-T 和 -n 被多次指定", "commits": [], "section": "客户端应用程序 / pg_dump", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.4", "source_hash": "c4e320bd38c4170fe0b92cf304c01c246beb6cf23ec8029d12bfc90e067ecf72", "section_path": ["客户端应用程序", "pg_dump"], "commit_groups": [], "identity_text": "Allow APP-PGRESTORE options -I, -P, -T and -n to be specified multiple times (Heikki Linnakangas) This allows multiple objects to be restored in one operation.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/135", "db_id": "ce53f34c4aa74fd1d745fe5438747a0c", "patch_ids": [], "statement_hash": "d6c0eb75212cadd36cf47c294f8475267de1302b06a1841cca6943d01cb4cba6", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-c952cff2b7af579a", "cves": [], "html": "<p>可选地为还原期间删除旧对象时发出的 <code>DROP</code> 命令添加 <code>IF EXISTS</code> 子句（Pavel Stehule）</p>\n<p>此变更避免在删除旧对象时出现不必要的错误。<a href=\"/docs/9.4/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>、<a href=\"/docs/9.4/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a>和<a href=\"/docs/9.4/app-pgrestore.html\" title=\"pg_restore\"><span>pg_restore</span></a>的新选项 <code>--if-exists</code> 只有在同时指定了 <code>--clean</code> 时才可用。</p>", "text": "可选地为还原期间删除旧对象时发出的 DROP 命令添加 IF EXISTS 子句（Pavel Stehule） 此变更避免在删除旧对象时出现不必要的错误。pg_dump、pg_dumpall和pg_restore的新选项 --if-exists 只有在同时指定了 --clean 时才可用。", "title": "可选地为还原期间删除旧对象时发出的 DROP 命令添加 IF EXISTS 子句", "commits": [], "section": "客户端应用程序 / pg_dump", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.4", "source_hash": "cb37e8e2bbab73b866e1f933d74b98f98390fbe17c5b39fe485a9485f0dda76b", "section_path": ["客户端应用程序", "pg_dump"], "commit_groups": [], "identity_text": "Optionally add IF EXISTS clauses to the DROP commands emitted when removing old objects during a restore (Pavel Stehule) This change prevents unnecessary errors when removing old objects. The new --if-exists option for APP-PGDUMP , APP-PG-DUMPALL , and APP-PGRESTORE is only available when --clean is also specified.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/136", "db_id": "59b35cbb49b3b7546837a78e218a9502", "patch_ids": [], "statement_hash": "153f58280fdc2bd08a8b142e31d883e0c4c0c1979f6d39f541c61ee2c4138f8a", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-cf2bf7574a7b2387", "cves": [], "html": "<p>新增 <span>pg_basebackup</span> 选项 <code>--xlogdir</code>，用于指定 <code>pg_xlog</code> 目录的位置（Haribabu Kommi）</p>", "text": "新增 pg_basebackup 选项 --xlogdir，用于指定 pg_xlog 目录的位置（Haribabu Kommi）", "title": "新增 pg_basebackup 选项 --xlogdir，用于指定 pg_xlog 目录的位置", "commits": [], "section": "客户端应用程序 / pg_basebackup", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.5", "source_hash": "c2a86bf98707629f4c50ba109d04759543ff4a2c9dc4d64843b97078b5bef983", "section_path": ["客户端应用程序", "pg_basebackup"], "commit_groups": [], "identity_text": "Add pg_basebackup option --xlogdir to specify the pg_xlog directory location (Haribabu Kommi)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/137", "db_id": "6353b2d6511c5824d904e111a0d556d3", "patch_ids": [], "statement_hash": "226fec5a6e52220d309be06ce4c2037224930867c0bb9ce8b321ed0b1a910194", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-6d93eb452378ec43", "cves": [], "html": "<p>允许 <span>pg_basebackup</span> 在备份副本中重定位表空间（Steeve Lennmark）</p>\n<p>这对于在与主库相同的机器上使用 <span>pg_basebackup</span> 特别有用。</p>", "text": "允许 pg_basebackup 在备份副本中重定位表空间（Steeve Lennmark） 这对于在与主库相同的机器上使用 pg_basebackup 特别有用。", "title": "允许 pg_basebackup 在备份副本中重定位表空间", "commits": [], "section": "客户端应用程序 / pg_basebackup", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.5", "source_hash": "7b6f2ddf220b1e71b3af2c3789da03df6f94121df137e3f0471cb8ccb8b3da56", "section_path": ["客户端应用程序", "pg_basebackup"], "commit_groups": [], "identity_text": "Allow pg_basebackup to relocate tablespaces in the backup copy (Steeve Lennmark) This is particularly useful for using pg_basebackup on the same machine as the primary.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/138", "db_id": "a30dcc383ef86b5d1780761ff4353a4c", "patch_ids": [], "statement_hash": "c41e6be3b91616ae0897470d7c79542294631df858213d39030b10f79b4badc7", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-595f5575faf9686c", "cves": [], "html": "<p>允许对网络流基础备份进行限速（Antonin Houska）</p>\n<p>这可以通过 <span>pg_basebackup</span> 的 <code>--max-rate</code> 参数控制。</p>", "text": "允许对网络流基础备份进行限速（Antonin Houska） 这可以通过 pg_basebackup 的 --max-rate 参数控制。", "title": "允许对网络流基础备份进行限速", "commits": [], "section": "客户端应用程序 / pg_basebackup", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.12.5", "source_hash": "8a840a42695c8699b908a9d6419c871d3fb7445bcc51ebd1db77021aa7c35054", "section_path": ["客户端应用程序", "pg_basebackup"], "commit_groups": [], "identity_text": "Allow network-stream base backups to be throttled (Antonin Houska) This can be controlled with the pg_basebackup --max-rate parameter.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/139", "db_id": "a313cb047d5b5e9682daf1720065dbea", "patch_ids": [], "statement_hash": "ae2e25188d8d73478d544c190ba7794e510d4858e9a427bf49c67acb1d51caf2", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-f26a3144f58e943d", "cves": [], "html": "<p>改进元组冻结方式以保留取证信息（Robert Haas、Andres Freund）</p>\n<p>此变更消除了尽快冻结元组的主要障碍。检查元组标志位的代码将需要修改。</p>", "text": "改进元组冻结方式以保留取证信息（Robert Haas、Andres Freund） 此变更消除了尽快冻结元组的主要障碍。检查元组标志位的代码将需要修改。", "title": "改进元组冻结方式以保留取证信息", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "8301370b4aec49594b27b5de738b23dfafb930cbde4dd0beb48a9fe0fcd110c2", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Improve the way tuples are frozen to preserve forensic information (Robert Haas, Andres Freund) This change removes the main objection to freezing tuples as soon as possible. Code that inspects tuple flag bits will need to be modified.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/140", "db_id": "41e5ddb2d68757b9744c73533dce4115", "patch_ids": [], "statement_hash": "d42ec4b7e939171c429a29744c6ef1cce3eb54d7d08ad2100fe88d981d41cfcb", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-01cea2f139ea908b", "cves": [], "html": "<p>不再要求为标记有 <a href=\"/docs/9.4/xfunc-c.html\" title=\"35.9. C 语言函数\"><code>PG_FUNCTION_INFO_V1</code></a> 宏的函数编写函数原型（Peter Eisentraut）</p>\n<p>此变更消除了编写样板原型的需要。注意，<code>PG_FUNCTION_INFO_V1</code> 宏必须出现在相应函数定义之前，以避免编译器警告。</p>", "text": "不再要求为标记有 PG_FUNCTION_INFO_V1 宏的函数编写函数原型（Peter Eisentraut） 此变更消除了编写样板原型的需要。注意，PG_FUNCTION_INFO_V1 宏必须出现在相应函数定义之前，以避免编译器警告。", "title": "不再要求为标记有 PG_FUNCTION_INFO_V1 宏的函数编写函数原型", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "de66ad1c8d8f86acb5e29956e8d9fe2e9e14feeaebb267640afdebab1c49f855", "section_path": ["源代码"], "commit_groups": [], "identity_text": "No longer require function prototypes for functions marked with the PG_FUNCTION_INFO_V1 macro (Peter Eisentraut) This change eliminates the need to write boilerplate prototypes. Note that the PG_FUNCTION_INFO_V1 macro must appear before the corresponding function definition to avoid compiler warnings.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/141", "db_id": "0df9187dc85a31455f8925fb47ecdde7", "patch_ids": [], "statement_hash": "3a42040c3e485f39241c90609a10b59be7876aa7e1db5529f9347b96410fc298", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-0389a2d9e4c34735", "cves": [], "html": "<p>移除 <code>SnapshotNow</code> 和 <code>HeapTupleSatisfiesNow()</code>（Robert Haas）</p>\n<p>所有现有用法都已切换到更合适的快照类型。目录扫描现在使用 <acronym>MVCC</acronym> 快照。</p>", "text": "移除 SnapshotNow 和 HeapTupleSatisfiesNow()（Robert Haas） 所有现有用法都已切换到更合适的快照类型。目录扫描现在使用 MVCC 快照。", "title": "移除 SnapshotNow 和 HeapTupleSatisfiesNow()", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "d38f3091810adf6716a7666f308193dc5cc45cc3e5eec8c9edcf05f795fce3a3", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Remove SnapshotNow and HeapTupleSatisfiesNow() (Robert Haas) All existing uses have been switched to more appropriate snapshot types. Catalog scans now use MVCC snapshots.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/142", "db_id": "d189dd2d3e14fc192b0cc17ac9a7a2a9", "patch_ids": [], "statement_hash": "6a8dfe2d61e85a434a1b0def70d0a791e7765494a446a1168c60686e59081a06", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-6c61c88ea64fe6b7", "cves": [], "html": "<p>新增允许超过 1GB 内存分配的 <acronym>API</acronym>（Noah Misch）</p>", "text": "新增允许超过 1GB 内存分配的 API（Noah Misch）", "title": "新增允许超过 1GB 内存分配的 API", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "d6b5610287036e123d399ee7dd2d647cac4e594ce4006c6d03cf500ced50af53", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Add an API to allow memory allocations over one gigabyte (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/143", "db_id": "8fd8b8c641252fdaa95ee2909318df21", "patch_ids": [], "statement_hash": "8ed32cc397f1aa570c6a527d584632b534ba9abd468d3f25cd2b65ac5bc51d11", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-e6a4ac22a9693081", "cves": [], "html": "<p>新增 <code>psprintf()</code> 以简化字符串组合期间的内存分配（Peter Eisentraut、Tom Lane）</p>", "text": "新增 psprintf() 以简化字符串组合期间的内存分配（Peter Eisentraut、Tom Lane）", "title": "新增 psprintf() 以简化字符串组合期间的内存分配", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "72b96d37254c4b45c43a7deb48bd878f095cd92171e93a5900b5dde9957a2f09", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Add psprintf() to simplify memory allocation during string composition (Peter Eisentraut, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/144", "db_id": "400ef4404472dba9876b7a0d8eea430e", "patch_ids": [], "statement_hash": "74a119b3413e4c7c261c44970ff6b91d703595a566d61edddac9e7b4dbdb0dbb", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-394c9b595548a037", "cves": [], "html": "<p>支持 <code>printf()</code> 尺寸修饰符 <code>z</code> 以打印 <code>size_t</code> 值（Andres Freund）</p>", "text": "支持 printf() 尺寸修饰符 z 以打印 size_t 值（Andres Freund）", "title": "支持 printf() 尺寸修饰符 z 以打印 size_t 值", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "41e574538fd3ff71b79301d773b330652efdc60585737cfdd85edf7a0df0695d", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Support printf() size modifier z to print size_t values (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/145", "db_id": "736351d4cc18f725901a1624b9ef7f02", "patch_ids": [], "statement_hash": "fd76a255dbd3968ae96616f559c847dab147f08cda38542f9e0d4e8c1dabbe0a", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-83fb8ef001e9101d", "cves": [], "html": "<p>更改 <code>appendStringInfoVA()</code> 的 <acronym>API</acronym> 以更好地使用 <code>vsnprintf()</code>（David Rowley、Tom Lane）</p>", "text": "更改 appendStringInfoVA() 的 API 以更好地使用 vsnprintf()（David Rowley、Tom Lane）", "title": "更改 appendStringInfoVA() 的 API 以更好地使用 vsnprintf()", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "2e36faa1d298ce3e28635a5aaed29ab2ee2d51fea6a411aea76489e4f17fad0f", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Change API of appendStringInfoVA() to better use vsnprintf() (David Rowley, Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/146", "db_id": "c6beb19949f5541519facc7541e4e2c3", "patch_ids": [], "statement_hash": "ff45495f1fc634496ed7fd3e71df038c5d0a993e92b3d79434835bc86d292de3", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-e0da4d3da3c6a392", "cves": [], "html": "<p>允许创建新类型的外部 TOAST 数据（Andres Freund）</p>", "text": "允许创建新类型的外部 TOAST 数据（Andres Freund）", "title": "允许创建新类型的外部 TOAST 数据", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "b5061fdc7c7fe90eef1725c7fd0ba02330b8155ed163ae15a3fd958edc7ef564", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Allow new types of external toast datums to be created (Andres Freund)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/147", "db_id": "c325f5a1a0524ee1a506bcd554ecbbc0", "patch_ids": [], "statement_hash": "0d5c880d26d5e5f379e60806995d3d19f4f07f0c0d12d7dc4a096f67bf83d0e3", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-d825c210cbc3113d", "cves": [], "html": "<p>新增单读者、单写者的轻量级共享消息队列（Robert Haas）</p>", "text": "新增单读者、单写者的轻量级共享消息队列（Robert Haas）", "title": "新增单读者、单写者的轻量级共享消息队列", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "da6448d493515358914d4e38968a9ad8808860ed0f1d6f7c57a3da1597760354", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Add single-reader, single-writer, lightweight shared message queue (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/148", "db_id": "e1675e3c409fe6c434f4539dd0fe2992", "patch_ids": [], "statement_hash": "d6c15dd213a85db5bc19aef1d6b043a56ea88aa6930b32005cbe470c831bae6e", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-9828b758e88cbdab", "cves": [], "html": "<p>提高 x86_64 <acronym>CPU</acronym> 上的自旋锁速度（Heikki Linnakangas）</p>", "text": "提高 x86_64 CPU 上的自旋锁速度（Heikki Linnakangas）", "title": "提高 x86_64 CPU 上的自旋锁速度", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "8b05f23ccf0df709088d123c2ce8ad88b80ed6ba669c4bb8631036ed0eb3ccc8", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Improve spinlock speed on x86_64 CPUs (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/149", "db_id": "d79a3fa825c846f4675d699bbe3d6289", "patch_ids": [], "statement_hash": "31e5a8fa4b65af39fac53a0fc78a18615c1b733cafee68ba856b87433ab9d731", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-c028fa5aac24da0a", "cves": [], "html": "<p>移除对不再支持的平台 <span>SINIX</span>、<span>Sun3</span> 和 <span>NS32K</span> 的自旋锁支持（Robert Haas）</p>", "text": "移除对不再支持的平台 SINIX、Sun3 和 NS32K 的自旋锁支持（Robert Haas）", "title": "移除对不再支持的平台 SINIX、Sun3 和 NS32K 的自旋锁支持", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "f987ac5c99c702f433462f60d615a95c2d93d8b5955ff2afb70c867e2867a7fd", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Remove spinlock support for unsupported platforms SINIX, Sun3, and NS32K (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/150", "db_id": "8b70c4ef0d00c0058ce98b0a17e3f0f2", "patch_ids": [], "statement_hash": "a4bb1861699372be15f6f2dfb2d8490c0ccde12c098f6654ec1d516df1125b54", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-b1c0a54cc56f57b0", "cves": [], "html": "<p>移除 <acronym>IRIX</acronym> 移植（Robert Haas）</p>", "text": "移除 IRIX 移植（Robert Haas）", "title": "移除 IRIX 移植", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "e5cf75717c7e3a0cdc2379cde9a12d79ab67a72f8b0fa96a192c9db13422e781", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Remove IRIX port (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/151", "db_id": "feaa8d9954950e295aa4836f600d12ee", "patch_ids": [], "statement_hash": "8d232bcf48fe577ce9954a40d124f98c7f83175acda33ccf5ca87e690adbf40a", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-1389e72487d45ebb", "cves": [], "html": "<p>减少 <code>--disable-spinlocks</code> 构建所需的信号量数量（Robert Haas）</p>", "text": "减少 --disable-spinlocks 构建所需的信号量数量（Robert Haas）", "title": "减少 --disable-spinlocks 构建所需的信号量数量", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "22449cec98fb10275b79b7f0a884dbf206abf1300ede3933d7eeb93bbb78935c", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Reduce the number of semaphores required by --disable-spinlocks builds (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/152", "db_id": "1bd3d8b15cf4220df0ab965550df70e0", "patch_ids": [], "statement_hash": "aa1e21f9a50fcf0bf097688b19a1e3c1201bccc52cb2baf7b03c98c95f2a71b2", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-dc203866a086bf8b", "cves": [], "html": "<p>用 <span>Perl</span> 重写 <span>duplicate_oids</span> Unix shell 脚本（Andrew Dunstan）</p>", "text": "用 Perl 重写 duplicate_oids Unix shell 脚本（Andrew Dunstan）", "title": "用 Perl 重写 duplicate_oids Unix shell 脚本", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "ea8810667429cd96fb6ae07fa282cad8747ff80db4cd9a6f5c52d56795e24aae", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Rewrite duplicate_oids Unix shell script in Perl (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/153", "db_id": "1bd5ed950f07b7d72397e06348aec1cb", "patch_ids": [], "statement_hash": "7ebea7fb47041eed5afca74ce6cfbda13c837da0a10119097cf55397b96cfb23", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-6ad946549743f927", "cves": [], "html": "<p>为客户端程序新增测试任何协议（<acronym>TAP</acronym>）测试（Peter Eisentraut）</p>\n<p>目前，只有当向 <span>configure</span> 给定了 <code>--enable-tap-tests</code> 选项时，<code>make check-world</code> 才会运行这些测试。在未来的某个发行版中，这可能会成为默认行为。</p>", "text": "为客户端程序新增测试任何协议（TAP）测试（Peter Eisentraut） 目前，只有当向 configure 给定了 --enable-tap-tests 选项时，make check-world 才会运行这些测试。在未来的某个发行版中，这可能会成为默认行为。", "title": "为客户端程序新增测试任何协议（TAP）测试", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "c9ef2819411c96bc09ffd0783fb90f401c9c2e93e38dc5c851ad6a679df64bec", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Add Test Anything Protocol (TAP) tests for client programs (Peter Eisentraut) Currently, these tests are run by make check-world only if the --enable-tap-tests option was given to configure. This might become the default behavior in some future release.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/154", "db_id": "008af33cc747666d5c3aefa21c53dff8", "patch_ids": [], "statement_hash": "a96e8afbfc586d4c5d05dc7373551d72defc7d454aa02a8e024a1ad90309c167", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-08c10565ab46e471", "cves": [], "html": "<p>新增 make 目标 <code>check-tests</code> 和 <code>installcheck-tests</code>，允许选择要运行的个别测试（Andrew Dunstan）</p>", "text": "新增 make 目标 check-tests 和 installcheck-tests，允许选择要运行的个别测试（Andrew Dunstan）", "title": "新增 make 目标 check-tests 和 installcheck-tests，允许选择要运行的个别测试", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "0aaa05dcffd6fbd71680bfd55e5c6a35bace20dd576c70252c662174561037b2", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Add make targets check-tests and installcheck-tests, which allow selection of individual tests to be run (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/155", "db_id": "5746c19cb606f85d8f506039a0b203e8", "patch_ids": [], "statement_hash": "164c60fafcf02b81cd0bd4bb1576ba450c0149f32500c7e458fb1aa122ef4583", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-bcd21292797a8696", "cves": [], "html": "<p>移除 <code>maintainer-check</code> makefile 规则（Peter Eisentraut）</p>\n<p>默认构建规则现在包含所有以前可选的测试。</p>", "text": "移除 maintainer-check makefile 规则（Peter Eisentraut） 默认构建规则现在包含所有以前可选的测试。", "title": "移除 maintainer-check makefile 规则", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "83b10a97c3417fe93af9a31c8b9fe70b6a39001bc501cc6a31ad3c0f5975e943", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Remove maintainer-check makefile rule (Peter Eisentraut) The default build rules now include all the formerly-optional tests.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/156", "db_id": "90df365d8198e073f73f9146e0fd552e", "patch_ids": [], "statement_hash": "517aaca3f7e5491b96724901937ca2e8bb04b3cc986a7a606ac204c47f649432", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-995ebbed161af4b0", "cves": [], "html": "<p>改进 <acronym>PGXS</acronym> 模块的 <code>VPATH</code> 构建支持（Cédric Villemain、Andrew Dunstan、Peter Eisentraut）</p>", "text": "改进 PGXS 模块的 VPATH 构建支持（Cédric Villemain、Andrew Dunstan、Peter Eisentraut）", "title": "改进 PGXS 模块的 VPATH 构建支持", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "ce3f863412d44f4309679c3707e60eecd56e523b27f51127e1da950f7938ccb8", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Improve support for VPATH builds of PGXS modules (Cédric Villemain, Andrew Dunstan, Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/157", "db_id": "92232cd65c0ba16331e6d8222bf59c05", "patch_ids": [], "statement_hash": "f51de78fd771903b0fad4b03b89e5d7629a36b88ead619e381d169ba509bf3bd", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-93fab0b25f704c66", "cves": [], "html": "<p>升级到 Autoconf 2.69（Peter Eisentraut）</p>", "text": "升级到 Autoconf 2.69（Peter Eisentraut）", "title": "升级到 Autoconf 2.69", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "1cf67356f0013dfe55a7c0272aa2ed69322a2789baf05caa908ddf57034bd83a", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Upgrade to Autoconf 2.69 (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/158", "db_id": "bed25fcf4317ecfa821c187663481c1f", "patch_ids": [], "statement_hash": "256724dd2ca00d8705104402e3244a47b9649f813c884a939237a999d1249144", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-d1cbedac650bd567", "cves": [], "html": "<p>新增一个 <span>configure</span> 标志，用于向 <code>PG_VERSION</code> 字符串追加自定义文本（Oskari Saarenmaa）</p>\n<p>这对于构建自定义二进制文件的打包者很有用。</p>", "text": "新增一个 configure 标志，用于向 PG_VERSION 字符串追加自定义文本（Oskari Saarenmaa） 这对于构建自定义二进制文件的打包者很有用。", "title": "新增一个 configure 标志，用于向 PG_VERSION 字符串追加自定义文本", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "e04f5295bb375df211379e45303174ae1f3a84da8a205385676f14c931ad564e", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Add a configure flag that appends custom text to the PG_VERSION string (Oskari Saarenmaa) This is useful for packagers building custom binaries.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/159", "db_id": "1ffe78bcf8a3f704c2aa86d64bbdbe28", "patch_ids": [], "statement_hash": "caa324861fbd49290959bb62e59439ba67547a65739241e657b26a4c36e2ed39", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-97d3629d57f20c41", "cves": [], "html": "<p>改进 DocBook <acronym>XML</acronym> 有效性（Peter Eisentraut）</p>", "text": "改进 DocBook XML 有效性（Peter Eisentraut）", "title": "改进 DocBook XML 有效性", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "7e7c94d8127e742644a8e0cc9b88eb670b7c8380f883f3929e91fa6702aa853d", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Improve DocBook XML validity (Peter Eisentraut)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/160", "db_id": "4ddd94e2a4015153c99f400096bcb151", "patch_ids": [], "statement_hash": "afd3eda8108ead0b4d8f52a925e084ba979def1297a1acbcdf078b7cc176501c", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-9d917229f8b65ed9", "cves": [], "html": "<p>修复 <span>Coverity</span> 扫描器报告的各种轻微安全和健全性问题（Stephen Frost）</p>", "text": "修复 Coverity 扫描器报告的各种轻微安全和健全性问题（Stephen Frost）", "title": "修复 Coverity 扫描器报告的各种轻微安全和健全性问题", "commits": [], "section": "源代码", "category": "bugfix", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "ecc1d5185f77b1f76d40df3991e9c0ad13bc35c62c989c3f3b626de0f39ba3d4", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Fix various minor security and sanity issues reported by the Coverity scanner (Stephen Frost)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/161", "db_id": "942353e80ef1374be348926465e9ef87", "patch_ids": [], "statement_hash": "f1cb81aa88263bcaf08b17bb20ca34494fcbae0b35a153d71e0ca2bad7a71279", "relations": [], "version": "9.4.0", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-4126cf297c689b7c", "cves": [], "html": "<p>改进用 <span>Valgrind</span> 测试 <span>PostgreSQL</span> 时对无效内存使用的检测（Noah Misch）</p>", "text": "改进用 Valgrind 测试 PostgreSQL 时对无效内存使用的检测（Noah Misch）", "title": "改进用 Valgrind 测试 PostgreSQL 时对无效内存使用的检测", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "3d16f10a699957060a8ec981a2f8b9e4b191917c89cfbf5f4c9df6e0ef8c35e5", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Improve detection of invalid memory usage when testing PostgreSQL with Valgrind (Noah Misch)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/162", "db_id": "63652e238e3a168b57eec2fd846f9f94", "patch_ids": [], "statement_hash": "4c6e63f20ea633ab208abc4f1e20724484b33b21f3c889c6681f1a7b9d53276e", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-c3667d80b4b88e68", "cves": [], "html": "<p>改进 <span>Emacs</span> 示例配置文件 <code>emacs.samples</code>（Peter Eisentraut）</p>\n<p>还向源代码树顶层添加了 <code>.dir-locals.el</code>。</p>", "text": "改进 Emacs 示例配置文件 emacs.samples（Peter Eisentraut） 还向源代码树顶层添加了 .dir-locals.el。", "title": "改进 Emacs 示例配置文件 emacs.samples", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "59754c4dd5fb97de06ae7f8e36fc60f0105d8b4403e409540206387907c786b1", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Improve sample Emacs configuration file emacs.samples (Peter Eisentraut) Also add .dir-locals.el to the top of the source tree.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/163", "db_id": "b486c9e458f192aaba74906074dbd66c", "patch_ids": [], "statement_hash": "c24b128f49231a6ec7b86b26e3655994e05f38f473cc90ae7ea2204d233c8ac1", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-46ff247f450f0b12", "cves": [], "html": "<p>允许 <span>pgindent</span> 接受命令行形式的 typedef 列表（Bruce Momjian）</p>", "text": "允许 pgindent 接受命令行形式的 typedef 列表（Bruce Momjian）", "title": "允许 pgindent 接受命令行形式的 typedef 列表", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "5d78b46b0bab060ad37454e9fa954a43c0ec5515c37c235c6600743051026483", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Allow pgindent to accept a command-line list of typedefs (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/164", "db_id": "06e0ececa73225a288605116d1692979", "patch_ids": [], "statement_hash": "f86aef4997b626bb388f230d4d89d49a86a79972888abb5522461f52ab4050d9", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-b846a406cdac53f0", "cves": [], "html": "<p>使 <span>pgindent</span> 更智能地处理预处理器条件语句周围的空行（Bruce Momjian）</p>", "text": "使 pgindent 更智能地处理预处理器条件语句周围的空行（Bruce Momjian）", "title": "使 pgindent 更智能地处理预处理器条件语句周围的空行", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "e0c02b175eca143cb6e86035660102d509709f406c3382b274f9882d771709a0", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Make pgindent smarter about blank lines around preprocessor conditionals (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/165", "db_id": "ce19a09f858251214145f55c26893972", "patch_ids": [], "statement_hash": "fa0533e41210beee00c000bb477c556518df68d321a0141b6af1aacc84009fc2", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-5e0ee4e1c3cb9983", "cves": [], "html": "<p>避免在 <span>Cygwin</span> 和 <span>Mingw</span> 构建中大多数对 <code>dlltool</code> 的使用（Marco Atzeri、Hiroshi Inoue）</p>", "text": "避免在 Cygwin 和 Mingw 构建中大多数对 dlltool 的使用（Marco Atzeri、Hiroshi Inoue）", "title": "避免在 Cygwin 和 Mingw 构建中大多数对 dlltool 的使用", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "03d15c7b6f5538cbe387e8867593c6c3c0ce6f2fdd14391813e7f742617896c7", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Avoid most uses of dlltool in Cygwin and Mingw builds (Marco Atzeri, Hiroshi Inoue)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/166", "db_id": "1ab4f2b891fe0ef0ffad10112d64247d", "patch_ids": [], "statement_hash": "04d5dfdf9ca7b8dfcfec591057dda00de1f3506089bd8a91f089fd9225ba1081", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-e0f2421d086aeb32", "cves": [], "html": "<p>支持在 <acronym>MSVC</acronym>（Windows）构建中进行仅客户端安装（MauMau）</p>", "text": "支持在 MSVC（Windows）构建中进行仅客户端安装（MauMau）", "title": "支持在 MSVC（Windows）构建中进行仅客户端安装", "commits": [], "section": "源代码", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.13", "source_hash": "78cf83e8be833e34b76de4b6db735b43677aa417c8fe38a8791a64264ce5a473", "section_path": ["源代码"], "commit_groups": [], "identity_text": "Support client-only installs in MSVC (Windows) builds (MauMau)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/167", "db_id": "e8fbe484044a5e674bc0b52c96c91254", "patch_ids": [], "statement_hash": "cf147223738b5705f489c27e07b80e8a51b6cd11beee69b8e5b30dc64847ff4c", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-d1972862d179d756", "cves": [], "html": "<p>新增<a href=\"/docs/9.4/pgprewarm.html\" title=\"F.27. pg_prewarm — 将关系数据预热到缓冲区缓存中\">pg_prewarm</a>扩展，用于在服务器启动时把关系数据预加载到共享缓冲区缓存中（Robert Haas）</p>\n<p>这使系统能更快达到完全运行性能。</p>", "text": "新增pg_prewarm扩展，用于在服务器启动时把关系数据预加载到共享缓冲区缓存中（Robert Haas） 这使系统能更快达到完全运行性能。", "title": "新增pg_prewarm扩展，用于在服务器启动时把关系数据预加载到共享缓冲区缓存中", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "410ebd020dc501248d592db3927927f1620e4651e4fd494498eee3fabdd5e9a5", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Add pgprewarm extension to preload relation data into the shared buffer cache at server start (Robert Haas) This allows reaching full operating performance more quickly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/168", "db_id": "51510c99485eb0196f042157da2e72de", "patch_ids": [], "statement_hash": "3bfd012227b567d8c83da5fee6ecd336007f34eafcb50bf0d1febc6190f53de8", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-78e933ba66ea95b3", "cves": [], "html": "<p>为<a href=\"/docs/9.4/pgcrypto.html\" title=\"F.25. pgcrypto\">pgcrypto</a>新增 <acronym>UUID</acronym> 随机数生成器 <code>gen_random_uuid()</code>（Oskari Saarenmaa）</p>\n<p>这允许创建版本 4 的 <acronym>UUID</acronym>，而无需安装<a href=\"/docs/9.4/uuid-ossp.html\" title=\"F.44. uuid-ossp\">uuid-ossp</a>。</p>", "text": "为pgcrypto新增 UUID 随机数生成器 gen_random_uuid()（Oskari Saarenmaa） 这允许创建版本 4 的 UUID，而无需安装uuid-ossp。", "title": "为pgcrypto新增 UUID 随机数生成器 gen_random_uuid()", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "b1914e45babe57b0e2df17d2528867cd8f758971ed3e0af58a03a941f2819c37", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Add UUID random number generator gen_random_uuid() to pgcrypto (Oskari Saarenmaa) This allows creation of version 4 UUIDs without requiring installation of uuid-ossp .", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/169", "db_id": "7a2cbe9c1f0655b6c78fcf2321466922", "patch_ids": [], "statement_hash": "e3586d0954d1fa40f777b7eddbaa2773ef44c6aac2c8c8311b950d2befff13b7", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-8d0a2c961e52c1fa", "cves": [], "html": "<p>允许<a href=\"/docs/9.4/uuid-ossp.html\" title=\"F.44. uuid-ossp\">uuid-ossp</a>使用 <span>BSD</span> 或 <span>e2fsprogs</span> UUID 库工作，而不仅仅是 <span>OSSP</span> UUID 库（Matteo Beccati）</p>\n<p>这改进了 <span>uuid-ossp</span> 模块的可移植性，因为它不再必须依赖日益过时的 OSSP 库。该模块的名称现在已名不副实，但我们不会更改它。</p>", "text": "允许uuid-ossp使用 BSD 或 e2fsprogs UUID 库工作，而不仅仅是 OSSP UUID 库（Matteo Beccati） 这改进了 uuid-ossp 模块的可移植性，因为它不再必须依赖日益过时的 OSSP 库。该模块的名称现在已名不副实，但我们不会更改它。", "title": "允许uuid-ossp使用 BSD 或 e2fsprogs UUID 库工作，而不仅仅是 OSSP UUID 库", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "71efa8c841eb9e4144bc39b4196e64dcbd5e754c862e7ab216d21a799c78337d", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Allow uuid-ossp to work with the BSD or e2fsprogs UUID libraries, not only the OSSP UUID library (Matteo Beccati) This improves the uuid-ossp module's portability since it no longer has to have the increasingly-obsolete OSSP library. The module's name is now rather a misnomer, but we won't change it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/170", "db_id": "ce9507960912f04f45d77d6a2a36d451", "patch_ids": [], "statement_hash": "721e7372eb79d5bd1f388fa52bd4af40783dd31ebeaa2e7b80ca8ee5f7a8daca", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-08e65b5784cf35da", "cves": [], "html": "<p>为<a href=\"/docs/9.4/auto-explain.html\" title=\"F.3. auto_explain\">auto_explain</a>新增包含触发器执行时间的选项（Horiguchi Kyotaro）</p>", "text": "为auto_explain新增包含触发器执行时间的选项（Horiguchi Kyotaro）", "title": "为auto_explain新增包含触发器执行时间的选项", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "7a3cde0fd0258e21992ff2e06405009ed1de9d138ee1178728e97c174179e757", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Add option to auto-explain to include trigger execution time (Horiguchi Kyotaro)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/171", "db_id": "a9db13fdceca6d3a98983cb5230975ce", "patch_ids": [], "statement_hash": "96124be7dbba5fc3a7e5262aa9e8c634d2be6c1085343dd5ff963be36d00d67c", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-19dcd996242e4964", "cves": [], "html": "<p>修复<a href=\"/docs/9.4/pgstattuple.html\" title=\"F.30. pgstattuple — 获取元组级统计信息\">pgstattuple</a>，使其不把来自未提交事务的行报告为死行（Robert Haas）</p>", "text": "修复pgstattuple，使其不把来自未提交事务的行报告为死行（Robert Haas）", "title": "修复pgstattuple，使其不把来自未提交事务的行报告为死行", "commits": [], "section": "附加模块", "category": "bugfix", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "ff8739916a7354c68a5e4d951230b41da7c4b6220d8b32bcbcb455140442743b", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Fix pgstattuple to not report rows from uncommitted transactions as dead (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/172", "db_id": "9f3fa18a85b373bb36394306945aab60", "patch_ids": [], "statement_hash": "c3ccd727e580a7f644d19173a7dcb7fbb8026880ff15024517941c18e5e46ed6", "relations": [], "version": "9.4.0", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-3c9a57110cea1276", "cves": [], "html": "<p>使<a href=\"/docs/9.4/pgstattuple.html\" title=\"F.30. pgstattuple — 获取元组级统计信息\">pgstattuple</a>函数使用 <code>regclass</code> 类型的参数（Satoshi Nagayasu）</p>\n<p>虽然 <code>text</code> 类型的参数仍受支持，但它们可能在未来某个主版本中被移除。</p>", "text": "使pgstattuple函数使用 regclass 类型的参数（Satoshi Nagayasu） 虽然 text 类型的参数仍受支持，但它们可能在未来某个主版本中被移除。", "title": "使pgstattuple函数使用 regclass 类型的参数", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "dd8bb0201cd573b15cae7dff64132e2c5453821568f41b06fbd93dfd1f1ab34b", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Make pgstattuple functions use regclass-type arguments (Satoshi Nagayasu) While text-type arguments are still supported, they may be removed in a future major release.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/173", "db_id": "b4985a4f023bd4413fa81762cb356fc3", "patch_ids": [], "statement_hash": "9e11f219e07c8fb42047283adf5add4e2edf1ec2e82f27dc288b5c6a4f02c707", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-909e38c1bbfb9231", "cves": [], "html": "<p>改进<a href=\"/docs/9.4/pgrowlocks.html\" title=\"F.28. pgrowlocks — 显示表的行锁信息\">pgrowlocks</a>输出的一致性，使其更一致地遵循快照规则（Robert Haas）</p>", "text": "改进pgrowlocks输出的一致性，使其更一致地遵循快照规则（Robert Haas）", "title": "改进pgrowlocks输出的一致性，使其更一致地遵循快照规则", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "cdf53279563bc2a04a6a9ae2078a785567bc56ae40fc16b35aa2d754a7d65394", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Improve consistency of pgrowlocks output to honor snapshot rules more consistently (Robert Haas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/174", "db_id": "af3e9b1bbf77028fedd226a8c06628e5", "patch_ids": [], "statement_hash": "049757b741de08a178b46a8f0cba764877355bb705f30a7d1d41626e5249988b", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-78b49fcf2ad63fcb", "cves": [], "html": "<p>改进<a href=\"/docs/9.4/pgtrgm.html\" title=\"F.31. pg_trgm\">pg_trgm</a>在索引正则表达式搜索中对三元组的选取（Alexander Korotkov）</p>\n<p>此变更不鼓励使用包含空白的三元组，它们通常选择性较低。</p>", "text": "改进pg_trgm在索引正则表达式搜索中对三元组的选取（Alexander Korotkov） 此变更不鼓励使用包含空白的三元组，它们通常选择性较低。", "title": "改进pg_trgm在索引正则表达式搜索中对三元组的选取", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "992e9f42d06507ec38906b34e35122dc62df210e37301454a1c62b14141c3f34", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Improve pgtrgm 's choice of trigrams for indexed regular expression searches (Alexander Korotkov) This change discourages use of trigrams containing whitespace, which are usually less selective.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/175", "db_id": "31d1c5f1424bd57c62cc1d20ec0afa5a", "patch_ids": [], "statement_hash": "edf88eb63aab7ecf868749044fa37740c7a0bf9bcba406a3037fb0f1a35f56f9", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-0ff9511abe36522b", "cves": [], "html": "<p>允许<a href=\"/docs/9.4/pgxlogdump.html\" title=\"pg_xlogdump\"><span><span>pg_xlogdump</span></span></a>使用 <code>--follow</code> 报告实时日志流（Heikki Linnakangas）</p>", "text": "允许pg_xlogdump使用 --follow 报告实时日志流（Heikki Linnakangas）", "title": "允许pg_xlogdump使用 --follow 报告实时日志流", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "eb2c0f0947672bb477e7bc18344d4a55ff9f781b2ffc2fb7fb1b860a8320591b", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Allow pgxlogdump to report a live log stream with --follow (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/176", "db_id": "ddc3ebc06feb4cd3f0e835652e9fbbde", "patch_ids": [], "statement_hash": "ab0c8bf51e3cb0bd3e602738d58e48e79f3c477274877384d7b0cb549b81d3a1", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-15f215d125ea3a91", "cves": [], "html": "<p>更紧凑地存储<a href=\"/docs/9.4/cube.html\" title=\"F.8. cube — 多维立方体数据类型\">cube</a>数据（Stas Kelvich）</p>\n<p>现有数据必须经过转储/还原才能使用新格式。旧格式仍可读取。</p>", "text": "更紧凑地存储cube数据（Stas Kelvich） 现有数据必须经过转储/还原才能使用新格式。旧格式仍可读取。", "title": "更紧凑地存储cube数据", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "ac8d2d2c4c558d2a89dd96ad8710fc66853bd913b52b6c6e5b71a5d2e7d1b2dc", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Store cube data more compactly (Stas Kelvich) Existing data must be dumped/restored to use the new format. The old format can still be read.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/177", "db_id": "00413297649b473fc84f921857141412", "patch_ids": [], "statement_hash": "ef82adf5659b821a50dd2922031cd5c6edb2adce75f0eb58bb21055361d1c891", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-dc0db6bfab0557bd", "cves": [], "html": "<p>通过使用游标减少<a href=\"/docs/9.4/vacuumlo.html\" title=\"vacuumlo\"><span><span>vacuumlo</span></span></a>的客户端内存用量（Andrew Dunstan）</p>", "text": "通过使用游标减少vacuumlo的客户端内存用量（Andrew Dunstan）", "title": "通过使用游标减少vacuumlo的客户端内存用量", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "1164d1c81269f5e9fa56b3fd04bd237f6b356ce7cbdc528fc3832fd948c4b8c0", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Reduce vacuumlo client-side memory usage by using a cursor (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/178", "db_id": "5d8a50766410ace8885d1efe6c677717", "patch_ids": [], "statement_hash": "cdebfeba11bbbc44ee606c77deb5b196e2a8d48197145a4a31f4cc41633695e8", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-904eafc3fbcbbf0d", "cves": [], "html": "<p>大幅减少<a href=\"/docs/9.4/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a>的内存消耗（Bruce Momjian）</p>", "text": "大幅减少pg_upgrade的内存消耗（Bruce Momjian）", "title": "大幅减少pg_upgrade的内存消耗", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "ad4559182cd5c97bbf3631e40707e9a3a88dc709ec9ab33e89feebb5fe16a987", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Dramatically reduce memory consumption in pgupgrade (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/179", "db_id": "a92defd365303a2ca1348cb14ea03cf2", "patch_ids": [], "statement_hash": "d6ceac161c39262daf72c90324c21da33f6d803ed2d967bd21fc98b281d90063", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-9e2ef520140704a0", "cves": [], "html": "<p>把<a href=\"/docs/9.4/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a>的用户名（<code>-U</code>）选项传递给生成的分析脚本（Bruce Momjian）</p>", "text": "把pg_upgrade的用户名（-U）选项传递给生成的分析脚本（Bruce Momjian）", "title": "把pg_upgrade的用户名（-U）选项传递给生成的分析脚本", "commits": [], "section": "附加模块", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14", "source_hash": "6ccb291a73f8471bef00c3863b7a0a043662e683787bd1ac0814b4f828e2ef97", "section_path": ["附加模块"], "commit_groups": [], "identity_text": "Pass pgupgrade 's user name (-U) option to generated analyze scripts (Bruce Momjian)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/180", "db_id": "f7765c685ddd7ce6052ff064ccc6b451", "patch_ids": [], "statement_hash": "06b8c31a1e2cd8a11591137df8693fcae361337bf8021fee78b3717a52b25d34", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-563ff44363716af0", "cves": [], "html": "<p>移除 <span>pgbench</span> 脚本的行长限制（Sawada Masahiko）</p>\n<p>以前的行限制为 <code>BUFSIZ</code>。</p>", "text": "移除 pgbench 脚本的行长限制（Sawada Masahiko） 以前的行限制为 BUFSIZ。", "title": "移除 pgbench 脚本的行长限制", "commits": [], "section": "附加模块 / pgbench", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14.3", "source_hash": "0869177abdc3d8159fc5b7fb4e4054e3c1c9d1fbe7a091c759597a2db355b9fc", "section_path": ["附加模块", "pgbench"], "commit_groups": [], "identity_text": "Remove line length limit for pgbench scripts (Sawada Masahiko) The previous line limit was BUFSIZ.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/181", "db_id": "eb3d7eb57d499f07ae92a82623d070cd", "patch_ids": [], "statement_hash": "f67fabd2888d0a3e416d6c14f92f9b77fb5d5e34b5d871a11bac98a753e3be39", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-a921a4ffa21f503a", "cves": [], "html": "<p>为 <span>pgbench</span> 新增长选项名（Fabien Coelho）</p>", "text": "为 pgbench 新增长选项名（Fabien Coelho）", "title": "为 pgbench 新增长选项名", "commits": [], "section": "附加模块 / pgbench", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14.3", "source_hash": "8f850fe1bed267fc3aff099e34a49937cee7c97ad485c7282bfc1188c99d70ca", "section_path": ["附加模块", "pgbench"], "commit_groups": [], "identity_text": "Add long option names to pgbench (Fabien Coelho)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/182", "db_id": "85441783a1537a19c8ca8ac0fd8dc54b", "patch_ids": [], "statement_hash": "ded3fca2e4f7522ca830b22193632427eef4f65a9be26cde0480a63da660036f", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-0b3e148744b07a07", "cves": [], "html": "<p>新增 <span>pgbench</span> 选项 <code>--rate</code>，用于控制事务速率（Fabien Coelho）</p>", "text": "新增 pgbench 选项 --rate，用于控制事务速率（Fabien Coelho）", "title": "新增 pgbench 选项 --rate，用于控制事务速率", "commits": [], "section": "附加模块 / pgbench", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14.3", "source_hash": "df1cc02c7d04c61e7e4b9f7b41341ca82682aab32db140bbb5209e1d24dca537", "section_path": ["附加模块", "pgbench"], "commit_groups": [], "identity_text": "Add pgbench option --rate to control the transaction rate (Fabien Coelho)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/183", "db_id": "fe709388f3786acc4cd9247b79a2c0aa", "patch_ids": [], "statement_hash": "8ed2365f78c3273021f8f97c1bfa4c3234954132d0d6c1577bbce9668d6fdc75", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-c08095c1c9886190", "cves": [], "html": "<p>新增 <span>pgbench</span> 选项 <code>--progress</code>，用于打印周期性进度报告（Fabien Coelho）</p>", "text": "新增 pgbench 选项 --progress，用于打印周期性进度报告（Fabien Coelho）", "title": "新增 pgbench 选项 --progress，用于打印周期性进度报告", "commits": [], "section": "附加模块 / pgbench", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14.3", "source_hash": "5bba626d23bc031bdf4bcf76d98a8d6148f438838a5033cce0749c1c8571cb2b", "section_path": ["附加模块", "pgbench"], "commit_groups": [], "identity_text": "Add pgbench option --progress to print periodic progress reports (Fabien Coelho)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/184", "db_id": "2bec3890fff77c9cb85ef27addae14b5", "patch_ids": [], "statement_hash": "e9ff0b1ea1002ca3a206872864a3a7324ced68917ba95e3e00ee78cba4a53629", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-2f415d0718fb8032", "cves": [], "html": "<p>使 <span>pg_stat_statements</span> 使用文件而非共享内存来存储查询文本（Peter Geoghegan）</p>\n<p>这消除了以前对查询文本长度的限制，并允许默认跟踪更多数量的唯一语句。</p>", "text": "使 pg_stat_statements 使用文件而非共享内存来存储查询文本（Peter Geoghegan） 这消除了以前对查询文本长度的限制，并允许默认跟踪更多数量的唯一语句。", "title": "使 pg_stat_statements 使用文件而非共享内存来存储查询文本", "commits": [], "section": "附加模块 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14.4", "source_hash": "2056f815d05ab036c2d660f501094aabd4d4cdbbeaa6e61c32103bba53f4290c", "section_path": ["附加模块", "pg_stat_statements"], "commit_groups": [], "identity_text": "Make pg_stat_statements use a file, rather than shared memory, for query text storage (Peter Geoghegan) This removes the previous limitation on query text length, and allows a higher number of unique statements to be tracked by default.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/185", "db_id": "9571e2260b2adf7a585454f4f23fc7b2", "patch_ids": [], "statement_hash": "8b40cf96212e8173417a490ce2c8dbbfa6328d590f0bf7cfa7a1be14eaa983da", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-c99f4498b50ebb74", "cves": [], "html": "<p>允许报告 <span>pg_stat_statements</span> 的内部查询哈希标识符（Daniel Farina、Sameer Thakur、Peter Geoghegan）</p>", "text": "允许报告 pg_stat_statements 的内部查询哈希标识符（Daniel Farina、Sameer Thakur、Peter Geoghegan）", "title": "允许报告 pg_stat_statements 的内部查询哈希标识符", "commits": [], "section": "附加模块 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14.4", "source_hash": "e1c9ca00a90f65c4ea6f2612521f48ec3a84a96a97c4c80d2c8dd3e81ff264f1", "section_path": ["附加模块", "pg_stat_statements"], "commit_groups": [], "identity_text": "Allow reporting of pg_stat_statements's internal query hash identifier (Daniel Farina, Sameer Thakur, Peter Geoghegan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/186", "db_id": "ca70fde72942ec1efbcb2fd31e465a89", "patch_ids": [], "statement_hash": "1b8f009408479a3cccace53d67989317377c70420a2e450dde00956228f7e688", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-5399dedaaa06c6fa", "cves": [], "html": "<p>新增获取除查询文本之外的所有 <span>pg_stat_statements</span> 信息的能力（Peter Geoghegan）</p>\n<p>这使监控工具可以只为刚创建的条目获取查询文本，从而改进重复查询统计信息时的性能。</p>", "text": "新增获取除查询文本之外的所有 pg_stat_statements 信息的能力（Peter Geoghegan） 这使监控工具可以只为刚创建的条目获取查询文本，从而改进重复查询统计信息时的性能。", "title": "新增获取除查询文本之外的所有 pg_stat_statements 信息的能力", "commits": [], "section": "附加模块 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14.4", "source_hash": "9b1d028b7cf98679a53f778e9f06fd51386efdd803ae54ffa946f36110146866", "section_path": ["附加模块", "pg_stat_statements"], "commit_groups": [], "identity_text": "Add the ability to retrieve all pg_stat_statements information except the query text (Peter Geoghegan) This allows monitoring tools to fetch query text only for just-created entries, improving performance during repeated querying of the statistics.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/187", "db_id": "8f2efe92067600e91a746ab94e3cee81", "patch_ids": [], "statement_hash": "b25c26f96d51bb296bfe8eba26636595713c5a64f228c27ba4e95ea9d920cec1", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-f2c875253b227fa4", "cves": [], "html": "<p>使 <span>pg_stat_statements</span> 忽略 <code>DEALLOCATE</code> 命令（Fabien Coelho）</p>\n<p>它已经忽略 <code>PREPARE</code> 以及一般的规划时间，因此这样更一致。</p>", "text": "使 pg_stat_statements 忽略 DEALLOCATE 命令（Fabien Coelho） 它已经忽略 PREPARE 以及一般的规划时间，因此这样更一致。", "title": "使 pg_stat_statements 忽略 DEALLOCATE 命令", "commits": [], "section": "附加模块 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14.4", "source_hash": "7f19d88035715c19cca9e2478ae7b18499f3cbe3756244848f718dcc99d1cf29", "section_path": ["附加模块", "pg_stat_statements"], "commit_groups": [], "identity_text": "Make pg_stat_statements ignore DEALLOCATE commands (Fabien Coelho) It already ignored PREPARE, as well as planning time in general, so this seems more consistent.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/188", "db_id": "d05f95ce1d170cff6e188cfa84ed7703", "patch_ids": [], "statement_hash": "29143b6bb42b8a8df046272bfe4488276b23bc293fdcc4eaa4e36f0cf162f0e6", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.0-bbbc949a802c724a", "cves": [], "html": "<p>服务器关闭时把统计信息文件保存到 <code>$PGDATA/pg_stat</code> 而不是 <code>$PGDATA/global</code>（Fujii Masao）</p>", "text": "服务器关闭时把统计信息文件保存到 $PGDATA/pg_stat 而不是 $PGDATA/global（Fujii Masao）", "title": "服务器关闭时把统计信息文件保存到 $PGDATA/pg_stat 而不是 $PGDATA/global", "commits": [], "section": "附加模块 / pg_stat_statements", "category": "feature", "source_url": "/docs/release/9.4.0/#id-1.11.6.31.5.14.4", "source_hash": "e95406af62cfffb5375029c79968e006824846835b79f6a9919ac9811a462ef9", "section_path": ["附加模块", "pg_stat_statements"], "commit_groups": [], "identity_text": "Save the statistics file into $PGDATA/pg_stat at server shutdown, rather than $PGDATA/global (Fujii Masao)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.0/changes/189", "db_id": "0c2a0a8dfae5fd181f298cfdadf556bb", "patch_ids": [], "statement_hash": "ddefa5f04bf72d70672eff2844f494675add5859d71e76e341314468a99bc019", "relations": [], "version": "9.4.0", "category_label": "新功能", "also_in": [], "variants": [], "related_changes": []}]}], "stats": [{"key": "all", "label": "全部变更", "count": 211}, {"key": "feature", "label": "新功能", "count": 171}, {"key": "bugfix", "label": "BUG 修复", "count": 6}, {"key": "security", "label": "安全相关", "count": 0}, {"key": "performance", "label": "性能改进", "count": 12}, {"key": "compatibility", "label": "兼容性变化", "count": 22}, {"key": "improvement", "label": "其他改进", "count": 0}], "total": 211, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 211, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}