{"already_in_source_count":0,"candidate_count":211,"cross_major":false,"cve_available":true,"cve_count":0,"cves":[],"duplicate_count":0,"excluded_count":0,"exclusions":[],"from_release":null,"groups":[{"age_days":4316,"build":"9.4.0","changes_count":189,"compatibility_count":22,"content_hash":"4bf0d615ef0747d209e3203da09a627422797869d050ea32ff76105ff7d53b8a","date":"2014-12-18","date_text":"2014-12-18","doc_git":"","doc_loaded_at":"2026-09-26T02:56:45.438944","entries":[{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"60c26f468d55fdac09bb3c2b31186075","html":"\u003cp\u003e收紧对多维\u003ca href=\"/docs/9.4/arrays.html\" title=\"8.15. 数组\"\u003e数组\u003c/a\u003e输入的检查（Bruce Momjian）\u003c/p\u003e\n\u003cp\u003e此前，以单元素子数组开头的输入数组字符串后面可以包含多元素子数组，例如\u003ccode\u003e'{{1}, {2,3}}'::int[]\u003c/code\u003e会被接受。\u003c/p\u003e","id":"9.4.0-9c9c3dae50cc8251","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/001","source_hash":"133bbe7b40ddca0f20c5e4c77fc3ddaba5750aa1c5c7a287d786cc5b59615faf","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"d1f8be133565e794bd60454b2e56e55545df78b4cbc8d96b008e4be38e7b51e6","text":"收紧对多维数组输入的检查（Bruce Momjian） 此前，以单元素子数组开头的输入数组字符串后面可以包含多元素子数组，例如'{{1}, {2,3}}'::int[]会被接受。","title":"收紧对多维数组输入的检查","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"83a0e27304ddf64b13db7541664d195b","html":"\u003cp\u003e在将\u003ccode\u003edate\u003c/code\u003e、\u003ccode\u003etimestamp\u003c/code\u003e或\u003ccode\u003etimestamptz\u003c/code\u003e类型的值转换为\u003ca href=\"/docs/9.4/datatype-json.html\" title=\"8.14. JSON 类型\"\u003e\u003ccode\u003eJSON\u003c/code\u003e\u003c/a\u003e时，按符合 ISO 8601 的格式呈现这些值（Andrew Dunstan）\u003c/p\u003e\n\u003cp\u003e此前这些值按当前\u003ca href=\"/docs/9.4/runtime-config-client.html#GUC-DATESTYLE\"\u003eDateStyle\u003c/a\u003e设置呈现；但许多 JSON 处理器要求时间戳为 ISO 8601 格式。如有需要，可以在把日期时间值传给 JSON 转换函数之前显式转换为\u003ccode\u003etext\u003c/code\u003e来获得以前的行为。\u003c/p\u003e","id":"9.4.0-011e24aa31ef8425","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/002","source_hash":"8c29904c978dbd9f2f0a80c905eec0fda25597911514d709a4242d0ca31b03f6","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"961368c175c8f44583211dbf8c0734eebb10bbb115d288db1c3876cc058d7dc4","text":"在将date、timestamp或timestamptz类型的值转换为JSON时，按符合 ISO 8601 的格式呈现这些值（Andrew Dunstan） 此前这些值按当前DateStyle设置呈现；但许多 JSON 处理器要求时间戳为 ISO 8601 格式。如有需要，可以在把日期时间值传给 JSON 转换函数之前显式转换为text来获得以前的行为。","title":"在将date、timestamp或timestamptz类型的值转换为JSON时，按符合 ISO 8601 的格式呈现这些值","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"d19a9e07bbb6c7f27251cdcec5ad0e8c","html":"\u003cp\u003e\u003ca href=\"/docs/9.4/functions-json.html#FUNCTIONS-JSON-OP-TABLE\" title=\"表 9.40. json 和 jsonb 操作符\"\u003e\u003ccode\u003ejson\u003c/code\u003e\u003ccode\u003e#\u0026gt;\u003c/code\u003e\u003ccode\u003etext[]\u003c/code\u003e\u003c/a\u003e路径提取操作符现在在数组为空时返回其左操作数输入而非 NULL（Tom Lane）\u003c/p\u003e\n\u003cp\u003e这与该操作表示对简单字段/元素提取操作符\u003ccode\u003e-\u0026gt;\u003c/code\u003e应用零次的概念一致。类似地，带空数组的\u003ccode\u003ejson\u003c/code\u003e\u003ccode\u003e#\u0026gt;\u0026gt;\u003c/code\u003e\u003ccode\u003etext[]\u003c/code\u003e只是把其左操作数输入强制转换为文本。\u003c/p\u003e","id":"9.4.0-895829ecf3121d53","identity_text":"The json #\u003e 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 -\u003e. Similarly, json #\u003e\u003e text[] with an empty array merely coerces its lefthand input to text.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/003","source_hash":"e020e93d19ee194dd750ab2e91776d02b4c8a3a51c20788588291a4f7a2cb4ef","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"89c7f41ac942d3a1f303f25813dc538bb9df8775b503a887c2b8df1d1dc6d0d6","text":"json#\u003etext[]路径提取操作符现在在数组为空时返回其左操作数输入而非 NULL（Tom Lane） 这与该操作表示对简单字段/元素提取操作符-\u003e应用零次的概念一致。类似地，带空数组的json#\u003e\u003etext[]只是把其左操作数输入强制转换为文本。","title":"json#\u003etext[]路径提取操作符现在在数组为空时返回其左操作数输入而非 NULL","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"f84a57ba6c40990ff398ddc9e7f831f9","html":"\u003cp\u003e\u003ca href=\"/docs/9.4/functions-json.html#FUNCTIONS-JSON-OP-TABLE\" title=\"表 9.40. json 和 jsonb 操作符\"\u003e\u003ccode\u003eJSON\u003c/code\u003e字段/元素/路径提取操作符\u003c/a\u003e的极端情况现在返回 NULL 而不是抛出错误（Tom Lane）\u003c/p\u003e\n\u003cp\u003e例如，对 JSON 数组应用字段提取现在得到 NULL 而不是错误。这更一致（因为诸如字段不存在等可比情况此前就已返回 NULL），而且使创建使用这些操作符的表达式索引变得安全，因为它们现在不会对任何有效的 JSON 输入抛出错误。\u003c/p\u003e","id":"9.4.0-73a24096294496ee","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/004","source_hash":"035e324bfb1627108bf3610418d1177e965416a36c2c6f351e1f10fae442bac7","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"0e69d26c1a4417a7f5f97bda5e5056bfe3558658fc32c2abbcd61f5ab36e5f66","text":"JSON字段/元素/路径提取操作符的极端情况现在返回 NULL 而不是抛出错误（Tom Lane） 例如，对 JSON 数组应用字段提取现在得到 NULL 而不是错误。这更一致（因为诸如字段不存在等可比情况此前就已返回 NULL），而且使创建使用这些操作符的表达式索引变得安全，因为它们现在不会对任何有效的 JSON 输入抛出错误。","title":"JSON字段/元素/路径提取操作符的极端情况现在返回 NULL 而不是抛出错误","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"b7fc09c0fc7f34184cb8710bb70b3602","html":"\u003cp\u003e使\u003ca href=\"/docs/9.4/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE\" title=\"表 9.21. 格式化函数\"\u003e\u003ccode\u003eto_timestamp()\u003c/code\u003e\u003c/a\u003e和\u003ccode\u003eto_date()\u003c/code\u003e格式串中连续的空白字符消费输入串中相应数量的字符（无论是否空白），然后在非\u003ccode\u003eFX\u003c/code\u003e模式下视情况消费相邻空白（Jeevan Chalke）\u003c/p\u003e\n\u003cp\u003e此前，非\u003ccode\u003eFX\u003c/code\u003e格式串中的连续空白字符表现得像单个空白字符，并消费输入串中所有相邻空白。例如，此前三个空格的格式串在\u003ccode\u003e' 12'\u003c/code\u003e中只会消费第一个空格，但现在会消费全部三个字符。\u003c/p\u003e","id":"9.4.0-4d17fdbcbee28c72","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/005","source_hash":"e8a6886b775bfda296fa3be0e174f045a23cca64828acb92f202ac7d0fb38c7f","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"bb7a04b5a5ae8f9b77ed6b16f7af5df1b71c5f17ec693917bb3af11b483d11f9","text":"使to_timestamp()和to_date()格式串中连续的空白字符消费输入串中相应数量的字符（无论是否空白），然后在非FX模式下视情况消费相邻空白（Jeevan Chalke） 此前，非FX格式串中的连续空白字符表现得像单个空白字符，并消费输入串中所有相邻空白。例如，此前三个空格的格式串在' 12'中只会消费第一个空格，但现在会消费全部三个字符。","title":"使to_timestamp()和to_date()格式串中连续的空白字符消费输入串中相应数量的字符（无论是否空白），然后在非FX模式下视情况消费相邻空白","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"a89bc1d88493323b5b71f7a5fbd6f305","html":"\u003cp\u003e修复\u003ca href=\"/docs/9.4/functions-textsearch.html#TEXTSEARCH-FUNCTIONS-TABLE\" title=\"表 9.38. 文本搜索函数\"\u003e\u003ccode\u003ets_rank_cd()\u003c/code\u003e\u003c/a\u003e使其忽略已去除位置信息的词位（Alex Hill）\u003c/p\u003e\n\u003cp\u003e此前，已去除位置信息的词位被当作具有默认位置处理，产生用处可疑的排名。\u003c/p\u003e","id":"9.4.0-1ee5735c19d09fe6","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/006","source_hash":"5d9fc639c50022b39c74b4a11b90c53de38f26d19904207830cfac5ef81a716b","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"355356bbc0ee85a6577759812b944c194e5c9a047a58a54a7bf97a799ef45c13","text":"修复ts_rank_cd()使其忽略已去除位置信息的词位（Alex Hill） 此前，已去除位置信息的词位被当作具有默认位置处理，产生用处可疑的排名。","title":"修复ts_rank_cd()使其忽略已去除位置信息的词位","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"9decfa50be75922933d62717781ea49a","html":"\u003cp\u003e对于声明为接受\u003ca href=\"/docs/9.4/xfunc-sql.html#XFUNC-SQL-VARIADIC-FUNCTIONS\" title=\"35.4.5. 带有可变数量参数的SQL函数\"\u003e\u003ccode\u003eVARIADIC \"any\"\u003c/code\u003e\u003c/a\u003e的函数，标记为\u003ccode\u003eVARIADIC\u003c/code\u003e的实际参数必须是可确定数组类型（Pavel Stehule）\u003c/p\u003e\n\u003cp\u003e此类参数不能再写成不带修饰的字符串字面量或\u003ccode\u003eNULL\u003c/code\u003e；现在需要转换为适当的数组数据类型。注意这不影响未标记\u003ccode\u003eVARIADIC\u003c/code\u003e的参数。\u003c/p\u003e","id":"9.4.0-2004ec7e3d85b01c","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/007","source_hash":"daf4e376b4bef2992ac9078eef7d184082db3f224ba34cde869af4d5693676c3","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"6df0b7ef03d4c87362d79f470a2b5dba98a8ba3fed54674699c15033bcc83722","text":"对于声明为接受VARIADIC \"any\"的函数，标记为VARIADIC的实际参数必须是可确定数组类型（Pavel Stehule） 此类参数不能再写成不带修饰的字符串字面量或NULL；现在需要转换为适当的数组数据类型。注意这不影响未标记VARIADIC的参数。","title":"对于声明为接受VARIADIC \"any\"的函数，标记为VARIADIC的实际参数必须是可确定数组类型","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"7b9174450ed524274da417d808bb21c0","html":"\u003cp\u003e确保整行变量向关注组合参数内列名的函数暴露预期的列名（Tom Lane）\u003c/p\u003e\n\u003cp\u003e现在，像\u003ccode\u003erow_to_json(tab.*)\u003c/code\u003e这样的结构总是输出与调用处表\u003ccode\u003etab\u003c/code\u003e可见的列别名匹配的列名。在以前的发行版中，输出的列名有时是表的实际列名，而不管查询中指派了什么别名。\u003c/p\u003e","id":"9.4.0-1aa30827011bf0f9","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/008","source_hash":"9d7b7d9fba8d898afd43302dae2bc1a706339aae46870cf1574e6863f3e75c9e","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"69c9d250a0f81be3948ccf7b41fdc1685aa1afe8604c64c48529de71a8151560","text":"确保整行变量向关注组合参数内列名的函数暴露预期的列名（Tom Lane） 现在，像row_to_json(tab.*)这样的结构总是输出与调用处表tab可见的列别名匹配的列名。在以前的发行版中，输出的列名有时是表的实际列名，而不管查询中指派了什么别名。","title":"确保整行变量向关注组合参数内列名的函数暴露预期的列名","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"40d413ef563b3376e65c860f75979049","html":"\u003cp\u003e\u003ca href=\"/docs/9.4/sql-discard.html\" title=\"DISCARD\"\u003e\u003cspan\u003eDISCARD\u003c/span\u003e\u003c/a\u003e现在还会丢弃与序列相关的状态（Fabrízio de Royes Mello、Robert Haas）\u003c/p\u003e","id":"9.4.0-a3a52689b3eccdb2","identity_text":"sql-discard now also discards sequence-related state (Fabrízio de Royes Mello, Robert Haas)","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/009","source_hash":"c17009c08f738967471c5d7dc24401d0f2366137453729f36f30380ee166a176","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"68063a9a438a7255dd772a103dc8b0ed864b87aa9d6cb978088a057631290e17","text":"DISCARD现在还会丢弃与序列相关的状态（Fabrízio de Royes Mello、Robert Haas）","title":"DISCARD现在还会丢弃与序列相关的状态","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"3d1751975e55ba1a65beffcd538b7ce4","html":"\u003cp\u003e将\u003ca href=\"/docs/9.4/sql-explain.html\" title=\"EXPLAIN\"\u003e\u003ccode\u003eEXPLAIN ANALYZE\u003c/code\u003e\u003c/a\u003e输出中的\u003cspan\u003e“\u003cspan\u003etotal runtime\u003c/span\u003e”\u003c/span\u003e更名为\u003cspan\u003e“\u003cspan\u003eexecution time\u003c/span\u003e”\u003c/span\u003e（Tom Lane）\u003c/p\u003e\n\u003cp\u003e既然规划时间也一并报告，以前的名称容易引起混淆。\u003c/p\u003e","id":"9.4.0-4c372277a90e2896","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/010","source_hash":"dc629837c8ee2b2ebe262dc47ffabe47e38f9f6f8899f737db6431027e589d8d","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"1f261d6bb48070c42a0bbaa63d26e668dac58ed58b30833b16281e81c3ba1b3e","text":"将EXPLAIN ANALYZE输出中的“total runtime”更名为“execution time”（Tom Lane） 既然规划时间也一并报告，以前的名称容易引起混淆。","title":"将EXPLAIN ANALYZE输出中的“total runtime”更名为“execution time”","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"6be7f212bef502a3f1be15cdb7d52d90","html":"\u003cp\u003e\u003ca href=\"/docs/9.4/sql-show.html\" title=\"SHOW\"\u003e\u003ccode\u003eSHOW TIME ZONE\u003c/code\u003e\u003c/a\u003e现在以\u003cacronym\u003ePOSIX\u003c/acronym\u003e时区格式输出简单的数字 UTC 偏移（Tom Lane）\u003c/p\u003e\n\u003cp\u003e此前，此类时区设置显示为\u003ca href=\"/docs/9.4/datatype-datetime.html#DATATYPE-INTERVAL-OUTPUT\" title=\"8.5.5. 间隔输出\"\u003e\u003ccode\u003einterval\u003c/code\u003e\u003c/a\u003e值。作为简单字符串传递时，新的输出能被\u003ccode\u003eSET TIME ZONE\u003c/code\u003e正确解释，而旧输出需要特殊处理才能被正确重新解析。\u003c/p\u003e","id":"9.4.0-625ccb9410adec1c","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/011","source_hash":"89d7d2870ab0e8f708b9278543c0262b711f063b9329d61c94ae892ce11a49f8","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"5610076ada38eeca7f24dde8a9dd2866c9c339ddc4bb6cef2180f2ca87a42048","text":"SHOW TIME ZONE现在以POSIX时区格式输出简单的数字 UTC 偏移（Tom Lane） 此前，此类时区设置显示为interval值。作为简单字符串传递时，新的输出能被SET TIME ZONE正确解释，而旧输出需要特殊处理才能被正确重新解析。","title":"SHOW TIME ZONE现在以POSIX时区格式输出简单的数字 UTC 偏移","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"69f1d0363b8850dd292d048f67121e0f","html":"\u003cp\u003e支持更新外部表的外部数据包装器必须考虑可能存在的\u003ccode\u003eAFTER ROW\u003c/code\u003e触发器（Noah Misch）\u003c/p\u003e\n\u003cp\u003e当存在\u003ccode\u003eAFTER ROW\u003c/code\u003e触发器时，更新操作必须返回表的所有列，因为触发器可能检查其中任意或全部列。此前外部表从不带触发器，因此 FDW 可能优化掉对\u003ccode\u003eRETURNING\u003c/code\u003e子句（若有）中未提及列的获取。\u003c/p\u003e","id":"9.4.0-e79a81d649da43dc","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).","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/012","source_hash":"5a7b370bdaa89e677922c7fbf2ef824f9fb3e501392b65559a6a269c0593246e","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"cb58a49fe84dfcfb6cc12c38baf94e9802bfd0cad091dadda2b944e84d7ff1fa","text":"支持更新外部表的外部数据包装器必须考虑可能存在的AFTER ROW触发器（Noah Misch） 当存在AFTER ROW触发器时，更新操作必须返回表的所有列，因为触发器可能检查其中任意或全部列。此前外部表从不带触发器，因此 FDW 可能优化掉对RETURNING子句（若有）中未提及列的获取。","title":"支持更新外部表的外部数据包装器必须考虑可能存在的AFTER ROW触发器","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"a8d48fe017675fcfa19b7dd16491d900","html":"\u003cp\u003e阻止\u003ca href=\"/docs/9.4/ddl-constraints.html#DDL-CONSTRAINTS-CHECK-CONSTRAINTS\" title=\"5.3.1. 检查约束\"\u003e\u003ccode\u003eCHECK\u003c/code\u003e\u003c/a\u003e约束引用系统列，\u003ccode\u003etableoid\u003c/code\u003e除外（Amit Kapila）\u003c/p\u003e\n\u003cp\u003e此前此类检查约束是被允许的，但它们常常在还原期间导致错误。\u003c/p\u003e","id":"9.4.0-2c1e9b730cdc35ed","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/013","source_hash":"29fed6f189a72c24e85ada0cc4cd0f16b403e923cdd0eaa0a2fa81e4b20c9e6b","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"a8881da2f282c478313e6680a2f91fc6572ea1359c67abd1cf115cc5d8c5d513","text":"阻止CHECK约束引用系统列，tableoid除外（Amit Kapila） 此前此类检查约束是被允许的，但它们常常在还原期间导致错误。","title":"阻止CHECK约束引用系统列，tableoid除外","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"2e5d7aa302315bc05e8b897097175ced","html":"\u003cp\u003e在指定了多个目标参数时，使用最后指定的\u003ca href=\"/docs/9.4/recovery-target-settings.html\" title=\"26.2. 恢复目标设置\"\u003e恢复目标参数\u003c/a\u003e（Heikki Linnakangas）\u003c/p\u003e\n\u003cp\u003e此前，\u003ccode\u003erecovery_target_\u003cem\u003e\u003ccode\u003exxx\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e参数之间存在未写入文档的优先顺序。\u003c/p\u003e","id":"9.4.0-db9fabd6dd88e212","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/014","source_hash":"be844843a12369fb1c2618b52df22f4ccccf1b88e3a7c76f3e675e1ca6f514ef","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"3b4972194cf290f6d7ee06bc11d1b13bef964e3d550d66214f635c240178c10b","text":"在指定了多个目标参数时，使用最后指定的恢复目标参数（Heikki Linnakangas） 此前，recovery_target_xxx参数之间存在未写入文档的优先顺序。","title":"在指定了多个目标参数时，使用最后指定的恢复目标参数","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"f7492d5286f9661bee0a916fbe4ad5a8","html":"\u003cp\u003e在 Windows 上自动保留用户提供的命令串中的引号（Heikki Linnakangas）\u003c/p\u003e\n\u003cp\u003e自行处理引号保留的用户命令可能需要调整。\u003ca href=\"/docs/9.4/runtime-config-wal.html#GUC-ARCHIVE-COMMAND\"\u003earchive_command\u003c/a\u003e、\u003ca href=\"/docs/9.4/recovery-config.html#RESTORE-COMMAND\"\u003erestore_command\u003c/a\u003e以及\u003ca href=\"/docs/9.4/sql-copy.html\" title=\"COPY\"\u003e\u003ccode\u003eCOPY TO/FROM PROGRAM\u003c/code\u003e\u003c/a\u003e中使用的命令很可能受此影响。\u003c/p\u003e","id":"9.4.0-cee7c1e9cd931833","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/015","source_hash":"00251af05f5b7ecfe6ce7d9fa20cef4d16f5d8084f899602d4b74aaa294e93c8","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"9e9f60e65b444ee713581ace317453022d908038c62b0d27188a635a26ef3b86","text":"在 Windows 上自动保留用户提供的命令串中的引号（Heikki Linnakangas） 自行处理引号保留的用户命令可能需要调整。archive_command、restore_command以及COPY TO/FROM PROGRAM中使用的命令很可能受此影响。","title":"在 Windows 上自动保留用户提供的命令串中的引号","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"3ee913c526ecd1cf4f5c22ad50d08146","html":"\u003cp\u003e移除目录列\u003ca href=\"/docs/9.4/catalog-pg-class.html\" title=\"48.11. pg_class\"\u003e\u003ccode\u003epg_class.reltoastidxid\u003c/code\u003e\u003c/a\u003e（Michael Paquier）\u003c/p\u003e","id":"9.4.0-ccd1163f69272984","identity_text":"Remove catalog column pg_class.reltoastidxid (Michael Paquier)","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/016","source_hash":"deba8ae24821ae2f7e2e3445bd5cf6a039cb3ce3fb249df248bf6aac085257df","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"f6956ba8fc4fa45bd893fa9d3e77b382e47accd3dcfb0fc1756e1ff31b262c50","text":"移除目录列pg_class.reltoastidxid（Michael Paquier）","title":"移除目录列pg_class.reltoastidxid","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"16de8532d353984c7abbfd08c70a4d30","html":"\u003cp\u003e移除目录列\u003ca href=\"/docs/9.4/catalog-pg-rewrite.html\" title=\"48.38. pg_rewrite\"\u003e\u003ccode\u003epg_rewrite.ev_attr\u003c/code\u003e\u003c/a\u003e（Kevin Grittner）\u003c/p\u003e\n\u003cp\u003e逐列规则自\u003cspan\u003ePostgreSQL\u003c/span\u003e 7.3 起就不再支持。\u003c/p\u003e","id":"9.4.0-97045112e8c91420","identity_text":"Remove catalog column pg_rewrite.ev_attr (Kevin Grittner) Per-column rules have not been supported since PostgreSQL 7.3.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/017","source_hash":"87a1deca2640259e7dfe1ac164cd16fb8ce83920a9470800492c148e3a9f835d","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"d3fb7b06f28f5c295b1360e94b116ed4b59f7a11ec458870bdb1d398b1f91fad","text":"移除目录列pg_rewrite.ev_attr（Kevin Grittner） 逐列规则自PostgreSQL 7.3 起就不再支持。","title":"移除目录列pg_rewrite.ev_attr","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"d104d9250140abf93fc780f8ecea28a9","html":"\u003cp\u003e移除对\u003cspan\u003eKerberos\u003c/span\u003e认证的原生支持（\u003ccode\u003e--with-krb5\u003c/code\u003e等）（Magnus Hagander）\u003c/p\u003e\n\u003cp\u003e使用\u003cspan\u003eKerberos\u003c/span\u003e认证的受支持方式是通过\u003cacronym\u003eGSSAPI\u003c/acronym\u003e。原生代码自\u003cspan\u003ePostgreSQL\u003c/span\u003e 8.3 起已被弃用。\u003c/p\u003e","id":"9.4.0-d3c08c6899d47b4b","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/018","source_hash":"33965a1371f87fd99b508e58688412e5370cb11b797f7c9a7f5398e15b72d98f","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"5c65047364a67f7471c23c6bd7a4687292885a2f2034cc76aff29da8ff6fd782","text":"移除对Kerberos认证的原生支持（--with-krb5等）（Magnus Hagander） 使用Kerberos认证的受支持方式是通过GSSAPI。原生代码自PostgreSQL 8.3 起已被弃用。","title":"移除对Kerberos认证的原生支持（--with-krb5等）","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"676dd31372ea0b36d90c1946ddb323fa","html":"\u003cp\u003e在\u003cspan\u003ePL/Python\u003c/span\u003e中，像处理底层数组类型一样处理域于数组的类型（Rodolfo Campero）\u003c/p\u003e\n\u003cp\u003e此前此类值被当作字符串处理。\u003c/p\u003e","id":"9.4.0-11184aac7c07aa80","identity_text":"In PL/Python, handle domains over arrays like the underlying array type (Rodolfo Campero) Previously such values were treated as strings.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/019","source_hash":"cd56b6d37bd3716333edab6057e06cf5c6ed69d46075fc53894ecd2c53a75d4a","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"213b33547cd64665bd26ed6365416f33966e27d9dfbbcb943fcb5674beae1c83","text":"在PL/Python中，像处理底层数组类型一样处理域于数组的类型（Rodolfo Campero） 此前此类值被当作字符串处理。","title":"在PL/Python中，像处理底层数组类型一样处理域于数组的类型","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"494110bf09b8a5e2715210c2477792f4","html":"\u003cp\u003e使 libpq 的\u003ca href=\"/docs/9.4/libpq.html#LIBPQ-PQCONNECTDBPARAMS\"\u003e\u003ccode\u003ePQconnectdbParams()\u003c/code\u003e\u003c/a\u003e和\u003ca href=\"/docs/9.4/libpq.html#LIBPQ-PQPINGPARAMS\"\u003e\u003ccode\u003ePQpingParams()\u003c/code\u003e\u003c/a\u003e函数把零长度字符串按默认值处理（Adrian Vondendriesch）\u003c/p\u003e\n\u003cp\u003e此前，这些函数只在某些情况下把零长度字符串值视为选择默认值。\u003c/p\u003e","id":"9.4.0-6e7636440e262e02","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/020","source_hash":"71db09fc54cc5752fd52206bb7bf4534be2f21ef678882219d62d98be265b6e4","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"62991b9dea7a2611503bf938a08b4b99afb853425423e7e5800aed05a9b9abdb","text":"使 libpq 的PQconnectdbParams()和PQpingParams()函数把零长度字符串按默认值处理（Adrian Vondendriesch） 此前，这些函数只在某些情况下把零长度字符串值视为选择默认值。","title":"使 libpq 的PQconnectdbParams()和PQpingParams()函数把零长度字符串按默认值处理","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"cf287ab236fb7834eb4bb33e1cf829f3","html":"\u003cp\u003e将\u003ca href=\"/docs/9.4/intarray.html\" title=\"F.18. intarray\"\u003eintarray\u003c/a\u003e模块返回的空数组改为零维数组（Bruce Momjian）\u003c/p\u003e\n\u003cp\u003e此前，空数组作为零长度一维数组返回，其文本表示与零维数组（\u003ccode\u003e{}\u003c/code\u003e）看起来相同，但在数组操作中的行为不同。\u003cspan\u003eintarray\u003c/span\u003e在此领域的行为现在与内置数组操作符一致。\u003c/p\u003e","id":"9.4.0-cbb0eb9aa34afdd3","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/021","source_hash":"3eba2eb9091de75c6f733919d3e518f3e5abcc0beca6fcdcb472d982440a9b58","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"56c8a7e64b806cf9001a02a1784a2f1921437f48a1f8fb80c9854d7a7ea43843","text":"将intarray模块返回的空数组改为零维数组（Bruce Momjian） 此前，空数组作为零长度一维数组返回，其文本表示与零维数组（{}）看起来相同，但在数组操作中的行为不同。intarray在此领域的行为现在与内置数组操作符一致。","title":"将intarray模块返回的空数组改为零维数组","variants":[],"version":"9.4.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"01e68b392d7921cd460914a20733267f","html":"\u003cp\u003e\u003ca href=\"/docs/9.4/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e现在使用\u003ccode\u003e-U\u003c/code\u003e或\u003ccode\u003e--username\u003c/code\u003e指定用户名（Bruce Momjian）\u003c/p\u003e\n\u003cp\u003e此前该选项拼作\u003ccode\u003e-u\u003c/code\u003e或\u003ccode\u003e--user\u003c/code\u003e，但这与其他工具不一致。\u003c/p\u003e","id":"9.4.0-dd99b31a4bd867c8","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.","part":"migration","patch_ids":[],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":[],"source_entry_id":"9.4.0/migration/022","source_hash":"14b799f5ee9f0bd7221ee396aa2c1fb44994687c2f8e7f903073d6dde0ca9642","source_url":"/docs/release/9.4.0/#id-1.11.6.31.4","statement_hash":"94d17ed9e23f5d9a51ae1a23a86658d73ba4afdebd96f18d478cd22fdd2534c2","text":"pg_upgrade现在使用-U或--username指定用户名（Bruce Momjian） 此前该选项拼作-u或--user，但这与其他工具不一致。","title":"pg_upgrade现在使用-U或--username指定用户名","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"6bbf7c7fbfabd6d22747374fd1d44e42","html":"\u003cp\u003e允许动态注册、启动和终止\u003ca href=\"/docs/9.4/bgworker.html\" title=\"第 45 章 后台工作进程\"\u003e后台工作进程\u003c/a\u003e（Robert Haas）\u003c/p\u003e\n\u003cp\u003e新的\u003ccode\u003eworker_spi\u003c/code\u003e模块展示了此功能的使用示例。\u003c/p\u003e","id":"9.4.0-be05a4d93e841f42","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器","section_path":["服务器"],"source_commits":[],"source_entry_id":"9.4.0/changes/001","source_hash":"56fc008475bff13b1f04bc65d69bcbd9f931951be4571c5bd7502790f8341ebb","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3","statement_hash":"87018103150fc4ac4755363707e0153ff34860bd16c6a78be23129acbe25fc9a","text":"允许动态注册、启动和终止后台工作进程（Robert Haas） 新的worker_spi模块展示了此功能的使用示例。","title":"允许动态注册、启动和终止后台工作进程","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"dc33cb4e630d49076f431f5ec067883f","html":"\u003cp\u003e允许动态分配共享内存段（Robert Haas、Amit Kapila）\u003c/p\u003e\n\u003cp\u003e此功能在\u003ccode\u003etest_shm_mq\u003c/code\u003e模块中有演示。\u003c/p\u003e","id":"9.4.0-cc51c1cc5f51323a","identity_text":"Allow dynamic allocation of shared memory segments (Robert Haas, Amit Kapila) This feature is illustrated in the test_shm_mq module.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器","section_path":["服务器"],"source_commits":[],"source_entry_id":"9.4.0/changes/002","source_hash":"29a628e8aa8f25eedd52049d4f5909c818b17d1bc10c75bef9885813ec0fc267","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3","statement_hash":"8daacb7e8f519d9ab6af2bef41ca0755f7d2bffd6c1b154435ad558249c3aae8","text":"允许动态分配共享内存段（Robert Haas、Amit Kapila） 此功能在test_shm_mq模块中有演示。","title":"允许动态分配共享内存段","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"3b326fe80bca53370ef8664edf7e21d5","html":"\u003cp\u003e在崩溃恢复或立即关闭期间，向未及时关闭的子进程发送不可捕获的终止信号（\u003cspan\u003eSIGKILL\u003c/span\u003e）（MauMau, Álvaro Herrera）\u003c/p\u003e\n\u003cp\u003e这减少了\u003ca href=\"/docs/9.4/app-postmaster.html\" title=\"postmaster\"\u003e\u003cspan\u003e\u003cspan\u003epostmaster\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e关闭后遗留孤儿子进程的可能性，同时确保在某些子进程已经\u003cspan\u003e“\u003cspan\u003e卡住\u003c/span\u003e”\u003c/span\u003e时崩溃恢复仍能继续。\u003c/p\u003e","id":"9.4.0-ee42438f2aec4eb1","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器","section_path":["服务器"],"source_commits":[],"source_entry_id":"9.4.0/changes/003","source_hash":"5147ca838a62a84796bfb1a46056b81b7286b95ef16a77911de15c9e10a7d4b9","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3","statement_hash":"f269c973228c3c5024cccb5a7107da291812b04b94892dc34331dd9b79ec4a12","text":"在崩溃恢复或立即关闭期间，向未及时关闭的子进程发送不可捕获的终止信号（SIGKILL）（MauMau, Álvaro Herrera） 这减少了postmaster关闭后遗留孤儿子进程的可能性，同时确保在某些子进程已经“卡住”时崩溃恢复仍能继续。","title":"在崩溃恢复或立即关闭期间，向未及时关闭的子进程发送不可捕获的终止信号（SIGKILL）","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"f82f7d18e10194b912075458a0157bda","html":"\u003cp\u003e改进数据库系统标识符的随机性（Tom Lane）\u003c/p\u003e","id":"9.4.0-186cc4107a640b9b","identity_text":"Improve randomness of the database system identifier (Tom Lane)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器","section_path":["服务器"],"source_commits":[],"source_entry_id":"9.4.0/changes/004","source_hash":"15da52ee57d5c08467ad1e1606ccf0aa28376133d6013b2d98816f0ac264c69f","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3","statement_hash":"6947ca5d79e93f31d05ca4b99354aacc68c4a0f702fba7a0df888785f2721ba0","text":"改进数据库系统标识符的随机性（Tom Lane）","title":"改进数据库系统标识符的随机性","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"09b6ec6672cc553fa6950077a97ef9d4","html":"\u003cp\u003e使\u003ca href=\"/docs/9.4/sql-vacuum.html\" title=\"VACUUM\"\u003e\u003cspan\u003eVACUUM\u003c/span\u003e\u003c/a\u003e向统计信息收集器正确报告已死但尚不能移除的行（Hari Babu）\u003c/p\u003e\n\u003cp\u003e此前这些行被报告为活行。\u003c/p\u003e","id":"9.4.0-864f88546565f5d2","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器","section_path":["服务器"],"source_commits":[],"source_entry_id":"9.4.0/changes/005","source_hash":"c6fb23f3b6fb202a6af57670c49da5d8c624ea3f375900a39292f7e7458fe47a","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3","statement_hash":"a69e1e915007f7476bb1ed0e2899bf9670e4e3ae215fa5ae4d99e7b17b47ccd1","text":"使VACUUM向统计信息收集器正确报告已死但尚不能移除的行（Hari Babu） 此前这些行被报告为活行。","title":"使VACUUM向统计信息收集器正确报告已死但尚不能移除的行","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"7aad6746e357fab367263b118f8f3b1e","html":"\u003cp\u003e减小\u003ca href=\"/docs/9.4/gin.html\" title=\"第 58 章 GIN 索引\"\u003e\u003cacronym\u003eGIN\u003c/acronym\u003e\u003c/a\u003e索引的大小（Alexander Korotkov、Heikki Linnakangas）\u003c/p\u003e\n\u003cp\u003e通过\u003ca href=\"/docs/9.4/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e升级的索引仍能正常工作，但仍是旧的、较大的\u003cacronym\u003eGIN\u003c/acronym\u003e格式。使用\u003ca href=\"/docs/9.4/sql-reindex.html\" title=\"REINDEX\"\u003e\u003cspan\u003eREINDEX\u003c/span\u003e\u003c/a\u003e可以按新格式重建旧的 GIN 索引。\u003c/p\u003e","id":"9.4.0-3cb32694a4f6108a","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 索引","section_path":["服务器","索引"],"source_commits":[],"source_entry_id":"9.4.0/changes/006","source_hash":"9413c50a99e9eb2033cc8bcd157376206522304023b72d24994946ccf53768bf","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.3","statement_hash":"dadc3ba950b5670042d2edb8c78c25409b2273da4baf37c64d3e523565d06e04","text":"减小GIN索引的大小（Alexander Korotkov、Heikki Linnakangas） 通过pg_upgrade升级的索引仍能正常工作，但仍是旧的、较大的GIN格式。使用REINDEX可以按新格式重建旧的 GIN 索引。","title":"减小GIN索引的大小","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"f69712068fd21bc72b589fab320fa389","html":"\u003cp\u003e提高多键 \u003ca href=\"/docs/9.4/gin.html\" title=\"第 58 章 GIN 索引\"\u003e\u003cacronym\u003eGIN\u003c/acronym\u003e\u003c/a\u003e 查找的速度（Alexander Korotkov、Heikki Linnakangas）\u003c/p\u003e","id":"9.4.0-6f3308eca0999d24","identity_text":"Improve speed of multi-key GIN lookups (Alexander Korotkov, Heikki Linnakangas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 索引","section_path":["服务器","索引"],"source_commits":[],"source_entry_id":"9.4.0/changes/007","source_hash":"77a1d25cbd35442cb26424ff273922c1133e0fc5706b9c7b04a3a8ab7ed9d398","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.3","statement_hash":"c771e2b1b0978927481e93b14819b82153c6991214b8f6d60b67d37a924b23f6","text":"提高多键 GIN 查找的速度（Alexander Korotkov、Heikki Linnakangas）","title":"提高多键 GIN 查找的速度","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"e0d64f244bd25fe25c66ec8f63afde1d","html":"\u003cp\u003e为\u003ca href=\"/docs/9.4/datatype-net-types.html#DATATYPE-INET\" title=\"8.9.1. inet\"\u003e\u003ccode\u003einet\u003c/code\u003e\u003c/a\u003e和\u003ca href=\"/docs/9.4/datatype-net-types.html#DATATYPE-CIDR\" title=\"8.9.2. cidr\"\u003e\u003ccode\u003ecidr\u003c/code\u003e\u003c/a\u003e数据类型新增\u003ca href=\"/docs/9.4/gist.html\" title=\"第 56 章 GiST 索引\"\u003e\u003cacronym\u003eGiST\u003c/acronym\u003e\u003c/a\u003e索引支持（Emre Hasegeli）\u003c/p\u003e\n\u003cp\u003e此类索引可改进\u003ca href=\"/docs/9.4/functions-net.html#CIDR-INET-OPERATORS-TABLE\" title=\"表 9.34. cidr 和 inet 操作符\"\u003e子网和超网\u003c/a\u003e查找以及排序比较。\u003c/p\u003e","id":"9.4.0-68216ec0808ccb9d","identity_text":"Add GiST index support for inet and cidr data types (Emre Hasegeli) Such indexes improve subnet and supernet lookups and ordering comparisons.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 索引","section_path":["服务器","索引"],"source_commits":[],"source_entry_id":"9.4.0/changes/008","source_hash":"0f512ccc57bac60cd0fa1312b0779f4a4315a57c8d3c696fc3bbe58054761961","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.3","statement_hash":"09f46137e9cd37e823c9f9d75489f528c00d3a4bc2035d948288f5a22ae24725","text":"为inet和cidr数据类型新增GiST索引支持（Emre Hasegeli） 此类索引可改进子网和超网查找以及排序比较。","title":"为inet和cidr数据类型新增GiST索引支持","variants":[],"version":"9.4.0"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"06ece40b8e25b393925515bc395f69d2","html":"\u003cp\u003e修复 B-tree 页删除中罕见的竞态条件（Heikki Linnakangas）\u003c/p\u003e","id":"9.4.0-89e9a305d870be56","identity_text":"Fix rare race condition in B-tree page deletion (Heikki Linnakangas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 索引","section_path":["服务器","索引"],"source_commits":[],"source_entry_id":"9.4.0/changes/009","source_hash":"346cbcf0ada59fa0810d53af86a20ee79a61b7117a9c3e3c9a14da0c2e8995b9","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.3","statement_hash":"56f715d13a78060d3cc36ba3f0e1420311c33a853420d9c48603fb6af4e7e84d","text":"修复 B-tree 页删除中罕见的竞态条件（Heikki Linnakangas）","title":"修复 B-tree 页删除中罕见的竞态条件","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"a2c2b46170996e572fad79e060e13149","html":"\u003cp\u003e使被中断的 B-tree 页分裂的处理更加健壮（Heikki Linnakangas）\u003c/p\u003e","id":"9.4.0-9e833dec27695a05","identity_text":"Make the handling of interrupted B-tree page splits more robust (Heikki Linnakangas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 索引","section_path":["服务器","索引"],"source_commits":[],"source_entry_id":"9.4.0/changes/010","source_hash":"c57917934adc57e155c94beecf4cf5f9adf7cf67c3d058f2261e0f2c7c32b9bc","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.3","statement_hash":"7e141ac11c63bd41f7d22717f2c0c2ecff0202861495f3dd5dd775953b0ebe41","text":"使被中断的 B-tree 页分裂的处理更加健壮（Heikki Linnakangas）","title":"使被中断的 B-tree 页分裂的处理更加健壮","variants":[],"version":"9.4.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"e7db278f15b1aa84b046578510d45b95","html":"\u003cp\u003e允许多个后端并发插入\u003ca href=\"/docs/9.4/wal.html\" title=\"第 29 章 可靠性与预写式日志\"\u003e\u003cacronym\u003eWAL\u003c/acronym\u003e\u003c/a\u003e缓冲区（Heikki Linnakangas）\u003c/p\u003e\n\u003cp\u003e这改进了并行写入性能。\u003c/p\u003e","id":"9.4.0-383e233a072a7663","identity_text":"Allow multiple backends to insert into WAL buffers concurrently (Heikki Linnakangas) This improves parallel write performance.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 总体性能","section_path":["服务器","总体性能"],"source_commits":[],"source_entry_id":"9.4.0/changes/011","source_hash":"474c339439f4a1d224976b77bd6437c7ddd33463ec656679cd132d4c86637198","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.4","statement_hash":"6c446fc2fd409389baf6db4015f9116e109191e5399e7dbb1646b67b84966405","text":"允许多个后端并发插入WAL缓冲区（Heikki Linnakangas） 这改进了并行写入性能。","title":"允许多个后端并发插入WAL缓冲区","variants":[],"version":"9.4.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"4e0fa43c316ad08655dc6024c3a1b5bf","html":"\u003cp\u003e有条件地只把已更新行的修改部分写入 \u003ca href=\"/docs/9.4/wal.html\" title=\"第 29 章 可靠性与预写式日志\"\u003e\u003cacronym\u003eWAL\u003c/acronym\u003e\u003c/a\u003e（Amit Kapila）\u003c/p\u003e","id":"9.4.0-1ec9663fd935f220","identity_text":"Conditionally write only the modified portion of updated rows to WAL (Amit Kapila)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 总体性能","section_path":["服务器","总体性能"],"source_commits":[],"source_entry_id":"9.4.0/changes/012","source_hash":"0fad854397f3e27ce2f506c723cadeba3196103f00bfddaf3c0a39b05a5829a4","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.4","statement_hash":"f5211a7cb2e6043e5d79d2270bf0bb3448d30ead8495383d46c3285c49fdce6c","text":"有条件地只把已更新行的修改部分写入 WAL（Amit Kapila）","title":"有条件地只把已更新行的修改部分写入 WAL","variants":[],"version":"9.4.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"cf4768b6273928dbf9f4576a704601a1","html":"\u003cp\u003e改进用作\u003ca href=\"/docs/9.4/sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS\" title=\"4.2.8. 窗口函数调用\"\u003e窗口函数\u003c/a\u003e的聚集函数的性能（David Rowley、Florian Pflug、Tom Lane）\u003c/p\u003e","id":"9.4.0-d6945849edf413ff","identity_text":"Improve performance of aggregate functions used as window functions (David Rowley, Florian Pflug, Tom Lane)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 总体性能","section_path":["服务器","总体性能"],"source_commits":[],"source_entry_id":"9.4.0/changes/013","source_hash":"b0cf541517cb749e458e3011165da368e3f70a2ddf79b230a88e433dff8c4328","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.4","statement_hash":"320fd5a87bcd7169070188c09ed1ce18e52d65a2d87e8d413da27e871833b3af","text":"改进用作窗口函数的聚集函数的性能（David Rowley、Florian Pflug、Tom Lane）","title":"改进用作窗口函数的聚集函数的性能","variants":[],"version":"9.4.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"dc29c5772e80875995dd92d51a760950","html":"\u003cp\u003e提高使用 \u003ca href=\"/docs/9.4/datatype.html#DATATYPE-NUMERIC\" title=\"8.1. 数字类型\"\u003e\u003ccode\u003enumeric\u003c/code\u003e\u003c/a\u003e 状态值的聚集的速度（Hadi Moshayedi）\u003c/p\u003e","id":"9.4.0-7c19538c11ae23d8","identity_text":"Improve speed of aggregates that use numeric state values (Hadi Moshayedi)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 总体性能","section_path":["服务器","总体性能"],"source_commits":[],"source_entry_id":"9.4.0/changes/014","source_hash":"777fbfd0ce86ed6803eae7763b4e3f766634072acbe7f4c3cf4def362bdcc2c3","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.4","statement_hash":"cc780c9f5a80e5c22c23c9b4b0a124672ae60eacc611ab6ddd53d9b3ed994c1a","text":"提高使用 numeric 状态值的聚集的速度（Hadi Moshayedi）","title":"提高使用 numeric 状态值的聚集的速度","variants":[],"version":"9.4.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1e06349553214390832d4a1d1a593e5a","html":"\u003cp\u003e当表被\u003ca href=\"/docs/9.4/sql-cluster.html\" title=\"CLUSTER\"\u003e\u003cspan\u003eCLUSTER\u003c/span\u003e\u003c/a\u003e或 \u003ca href=\"/docs/9.4/sql-vacuum.html\" title=\"VACUUM\"\u003e\u003ccode\u003eVACUUM FULL\u003c/code\u003e\u003c/a\u003e 重写时，尝试\u003ca href=\"/docs/9.4/maintenance.html#VACUUM-FOR-WRAPAROUND\" title=\"23.1.5. 防止事务 ID 回卷失败\"\u003e冻结\u003c/a\u003e元组（Robert Haas、Andres Freund）\u003c/p\u003e\n\u003cp\u003e这可以避免将来再冻结这些元组的需要。\u003c/p\u003e","id":"9.4.0-954599a736c4dcca","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 总体性能","section_path":["服务器","总体性能"],"source_commits":[],"source_entry_id":"9.4.0/changes/015","source_hash":"6ac7f388de9147e3bf2a0a539c1ddfd0f35f311b82a2affea5c737aaeb51deaf","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.4","statement_hash":"92daae841034ee85ba109eaac3e19f7492b145531cc3d8c6a5de7ab12ceb1cc8","text":"当表被CLUSTER或 VACUUM FULL 重写时，尝试冻结元组（Robert Haas、Andres Freund） 这可以避免将来再冻结这些元组的需要。","title":"当表被CLUSTER或 VACUUM FULL 重写时，尝试冻结元组","variants":[],"version":"9.4.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"605cfc1a36ab96513b123c4bbb78ac6e","html":"\u003cp\u003e提高\u003ca href=\"/docs/9.4/sql-copy.html\" title=\"COPY\"\u003e\u003cspan\u003eCOPY\u003c/span\u003e\u003c/a\u003e在带有默认 \u003ca href=\"/docs/9.4/functions-sequence.html#FUNCTIONS-SEQUENCE-TABLE\" title=\"表 9.44. 序列函数\"\u003e\u003ccode\u003enextval()\u003c/code\u003e\u003c/a\u003e 列时的速度（Simon Riggs）\u003c/p\u003e","id":"9.4.0-68d68554ff99f201","identity_text":"Improve speed of SQL-COPY with default nextval() columns (Simon Riggs)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 总体性能","section_path":["服务器","总体性能"],"source_commits":[],"source_entry_id":"9.4.0/changes/016","source_hash":"589e1797f22ebddbbec4cff00a98af32c320d5244dbe849dda189ec882100340","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.4","statement_hash":"40b55c5fa5949a4dc148dee2e67f1cee56193d708a299d902ffdb765140fa567","text":"提高COPY在带有默认 nextval() 列时的速度（Simon Riggs）","title":"提高COPY在带有默认 nextval() 列时的速度","variants":[],"version":"9.4.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"d71acd9fffa0ab07936d163241d076ec","html":"\u003cp\u003e提高在同一会话中访问许多不同\u003ca href=\"/docs/9.4/sql-createsequence.html\" title=\"CREATE SEQUENCE\"\u003e序列\u003c/a\u003e的速度（David Rowley）\u003c/p\u003e","id":"9.4.0-cda029795304cd44","identity_text":"Improve speed of accessing many different sequences in the same session (David Rowley)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 总体性能","section_path":["服务器","总体性能"],"source_commits":[],"source_entry_id":"9.4.0/changes/017","source_hash":"6ea5022aa96b416febab16584e2b356485e6687b2d1d5ddc9e8a854f0b80610c","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.4","statement_hash":"c0ce41db23562951ae88f2266428c1f168db2007fa80794fb2f5ea8104bfefef","text":"提高在同一会话中访问许多不同序列的速度（David Rowley）","title":"提高在同一会话中访问许多不同序列的速度","variants":[],"version":"9.4.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"4a7dc301e2623669636b526b303af874","html":"\u003cp\u003e提高排序和 B-tree 索引构建期间内存中持有元组数量的硬限制（Noah Misch）\u003c/p\u003e","id":"9.4.0-9854e61106b97700","identity_text":"Raise hard limit on the number of tuples held in memory during sorting and B-tree index builds (Noah Misch)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 总体性能","section_path":["服务器","总体性能"],"source_commits":[],"source_entry_id":"9.4.0/changes/018","source_hash":"f1c92b8c3cc79906071f5e564ff0835248a72c230bd56a35a0976f5a2fa1f031","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.4","statement_hash":"13e6ae988366eb213023f3e5588ff62cfbbd2fc585dffbd3766325fd3d4fa788","text":"提高排序和 B-tree 索引构建期间内存中持有元组数量的硬限制（Noah Misch）","title":"提高排序和 B-tree 索引构建期间内存中持有元组数量的硬限制","variants":[],"version":"9.4.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"2c847c1cb01d5060558f274ff3993792","html":"\u003cp\u003e减少 \u003cspan\u003ePL/pgSQL\u003c/span\u003e \u003ca href=\"/docs/9.4/sql-do.html\" title=\"DO\"\u003e\u003cspan\u003eDO\u003c/span\u003e\u003c/a\u003e块分配的内存（Tom Lane）\u003c/p\u003e","id":"9.4.0-1333bbdeff5b69a6","identity_text":"Reduce memory allocated by PL/pgSQL SQL-DO blocks (Tom Lane)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 总体性能","section_path":["服务器","总体性能"],"source_commits":[],"source_entry_id":"9.4.0/changes/019","source_hash":"1b19478f0ac3571e9bf8a3d4881646ed634f44e9fd99b867cc260a1f76aed4cf","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.4","statement_hash":"5f58a394ea5eeece00a4064d9a5e9067573cf8807a4cb5e027b9f1893c527569","text":"减少 PL/pgSQL DO块分配的内存（Tom Lane）","title":"减少 PL/pgSQL DO块分配的内存","variants":[],"version":"9.4.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"c83d59e66a76334625901f1765c5bca9","html":"\u003cp\u003e使规划器更激进地从混合的 \u003ccode\u003eAND\u003c/code\u003e/\u003ccode\u003eOR\u003c/code\u003e 子句中提取限制子句（Tom Lane）\u003c/p\u003e","id":"9.4.0-e06407671a85016c","identity_text":"Make the planner more aggressive about extracting restriction clauses from mixed AND/OR clauses (Tom Lane)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 总体性能","section_path":["服务器","总体性能"],"source_commits":[],"source_entry_id":"9.4.0/changes/020","source_hash":"4b1e2029f5686c24ca996a713b37d293e3a86eeccc4408a9b49188b399d73472","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.4","statement_hash":"30beb45ffa4fa6b3432e498904674a2752eb6446358d42d8501651e63f460dec","text":"使规划器更激进地从混合的 AND/OR 子句中提取限制子句（Tom Lane）","title":"使规划器更激进地从混合的 AND/OR 子句中提取限制子句","variants":[],"version":"9.4.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"31750166ace2a1a026ec6ef4b5c5d872","html":"\u003cp\u003e禁止把易变 \u003ccode\u003eWHERE\u003c/code\u003e 子句下推到 \u003ccode\u003eDISTINCT\u003c/code\u003e 子查询中（Tom Lane）\u003c/p\u003e\n\u003cp\u003e下推 \u003ccode\u003eWHERE\u003c/code\u003e 子句整体上可能产生更高效的计划，但代价是该子句的求值次数会多于查询文本所暗示的次数；因此若子句包含任何易变函数则不这样做。\u003c/p\u003e","id":"9.4.0-68f7fa0c20276b7a","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 总体性能","section_path":["服务器","总体性能"],"source_commits":[],"source_entry_id":"9.4.0/changes/021","source_hash":"5b5fa33b273202980dbb32582a0ed0e5b1f43a6987613ed78b0a94972493d2e8","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.4","statement_hash":"1b76b7396c4aa6381a3f2e51bc620990f3d3ca8273ffc6ebc1e35b8abe8d2ca8","text":"禁止把易变 WHERE 子句下推到 DISTINCT 子查询中（Tom Lane） 下推 WHERE 子句整体上可能产生更高效的计划，但代价是该子句的求值次数会多于查询文本所暗示的次数；因此若子句包含任何易变函数则不这样做。","title":"禁止把易变 WHERE 子句下推到 DISTINCT 子查询中","variants":[],"version":"9.4.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"cf3456311d2cba93729138a6948594fe","html":"\u003cp\u003e自动调整系统目录缓存的大小（Heikki Linnakangas）\u003c/p\u003e\n\u003cp\u003e这减少了只访问少量表的会话的内存消耗，并改进了访问大量表的会话的性能。\u003c/p\u003e","id":"9.4.0-d72ecaeefe9fa82f","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 总体性能","section_path":["服务器","总体性能"],"source_commits":[],"source_entry_id":"9.4.0/changes/022","source_hash":"c3843758b8cd6c421c6f5dfe2630fc0390e73e9b8dd7d0b8d48e4738fa3ef777","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.4","statement_hash":"39422c43ba87a9043ab8f50191b64c6f04b6a386c108e0d4381a7665fd37dacc","text":"自动调整系统目录缓存的大小（Heikki Linnakangas） 这减少了只访问少量表的会话的内存消耗，并改进了访问大量表的会话的性能。","title":"自动调整系统目录缓存的大小","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"2f82c78c00bace7f3d52ecc4f7739060","html":"\u003cp\u003e新增\u003ca href=\"/docs/9.4/monitoring-stats.html#PG-STAT-ARCHIVER-VIEW\" title=\"表 27.3. pg_stat_archiver 视图\"\u003epg_stat_archiver\u003c/a\u003e系统视图以报告 \u003ca href=\"/docs/9.4/wal.html\" title=\"第 29 章 可靠性与预写式日志\"\u003e\u003cacronym\u003eWAL\u003c/acronym\u003e\u003c/a\u003e 归档器的活动（Gabriele Bartolini）\u003c/p\u003e","id":"9.4.0-119204fe0148689f","identity_text":"Add pg-stat-archiver-view system view to report WAL archiver activity (Gabriele Bartolini)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 监控","section_path":["服务器","监控"],"source_commits":[],"source_entry_id":"9.4.0/changes/023","source_hash":"693a9af3722a2803d1fa0dc44a51a9f11a5d332f616600810f0f57ff4836c0e5","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.5","statement_hash":"e2cbf4901b0787e1f3e6bc54687f3a946af5f3858b487b0f786051f9dfaad151","text":"新增pg_stat_archiver系统视图以报告 WAL 归档器的活动（Gabriele Bartolini）","title":"新增pg_stat_archiver系统视图以报告 WAL 归档器的活动","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"597b2c3b830bc014342a7c6746f1bc8a","html":"\u003cp\u003e为\u003ca href=\"/docs/9.4/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW\" title=\"表 27.6. pg_stat_all_tables 视图\"\u003epg_stat_all_tables\u003c/a\u003e及相关系统视图新增 \u003ccode\u003en_mod_since_analyze\u003c/code\u003e 列（Mark Kirkwood）\u003c/p\u003e\n\u003cp\u003e这些列显示了系统对表上次\u003ca href=\"/docs/9.4/sql-analyze.html\" title=\"ANALYZE\"\u003e\u003cspan\u003eANALYZE\u003c/span\u003e\u003c/a\u003e以来已更改元组数量的估计。该估计驱动何时自动分析的决策。\u003c/p\u003e","id":"9.4.0-52ad693b05786f4c","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 监控","section_path":["服务器","监控"],"source_commits":[],"source_entry_id":"9.4.0/changes/024","source_hash":"43fc53be13cfb2866a66c1790d9a47a4eaf91a36430cfe027b6a0e36fc3c62b8","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.5","statement_hash":"9c7cbd14f5a4f359eed52e8c2d2feaf08d29b5e69f9177229b832342356665c3","text":"为pg_stat_all_tables及相关系统视图新增 n_mod_since_analyze 列（Mark Kirkwood） 这些列显示了系统对表上次ANALYZE以来已更改元组数量的估计。该估计驱动何时自动分析的决策。","title":"为pg_stat_all_tables及相关系统视图新增 n_mod_since_analyze 列","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"4132b0c71485641a93a60584c77ef4b2","html":"\u003cp\u003e为系统视图\u003ca href=\"/docs/9.4/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW\" title=\"表 27.2. pg_stat_activity 视图\"\u003epg_stat_activity\u003c/a\u003e新增 \u003ccode\u003ebackend_xid\u003c/code\u003e 和 \u003ccode\u003ebackend_xmin\u003c/code\u003e 列，并为\u003ca href=\"/docs/9.4/monitoring-stats.html#PG-STAT-REPLICATION-VIEW\" title=\"表 27.12. pg_stat_replication 视图\"\u003epg_stat_replication\u003c/a\u003e新增 \u003ccode\u003ebackend_xmin\u003c/code\u003e 列（Christian Kruse）\u003c/p\u003e","id":"9.4.0-56ce96a5d6005fed","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)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 监控","section_path":["服务器","监控"],"source_commits":[],"source_entry_id":"9.4.0/changes/025","source_hash":"a9cc97ab5707453432a07faa4097f141f9668663aed4e21f27b8eeb7f0dbadc5","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.5","statement_hash":"e6d9fc0b3f4729333d97502d6fd7cef9889d27dccd089d93bf0d9265a6fb5abd","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 列","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"94a00034f4c1eec93b659ee8428118d2","html":"\u003cp\u003e新增对 \u003cacronym\u003eSSL\u003c/acronym\u003e \u003cacronym\u003eECDH\u003c/acronym\u003e 密钥交换的支持（Marko Kreen）\u003c/p\u003e\n\u003cp\u003e这允许使用椭圆曲线密钥进行服务器认证。此类密钥比 \u003cacronym\u003eRSA\u003c/acronym\u003e 密钥更快且安全性更好。新增配置参数\u003ca href=\"/docs/9.4/runtime-config-connection.html#GUC-SSL-ECDH-CURVE\"\u003essl_ecdh_curve\u003c/a\u003e控制用于 \u003cacronym\u003eECDH\u003c/acronym\u003e 的曲线。\u003c/p\u003e","id":"9.4.0-b35b90c72d0cef95","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / SSL","section_path":["服务器","SSL"],"source_commits":[],"source_entry_id":"9.4.0/changes/026","source_hash":"4e9d38b78a279f193d60ba04c990ed1ba9b82084d3b513a3e9110b2423504168","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.6","statement_hash":"f22fb6c77263987207675273c41e0748467f4394b44d6d5960b195c9afcf71f0","text":"新增对 SSL ECDH 密钥交换的支持（Marko Kreen） 这允许使用椭圆曲线密钥进行服务器认证。此类密钥比 RSA 密钥更快且安全性更好。新增配置参数ssl_ecdh_curve控制用于 ECDH 的曲线。","title":"新增对 SSL ECDH 密钥交换的支持","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"b5547675d0c36dec06d6d30ce0bc66e2","html":"\u003cp\u003e改进\u003ca href=\"/docs/9.4/runtime-config-connection.html#GUC-SSL-CIPHERS\"\u003essl_ciphers\u003c/a\u003e的默认设置（Marko Kreen）\u003c/p\u003e","id":"9.4.0-f92777fcd0da6fc1","identity_text":"Improve the default guc-ssl-ciphers setting (Marko Kreen)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / SSL","section_path":["服务器","SSL"],"source_commits":[],"source_entry_id":"9.4.0/changes/027","source_hash":"b5a3a36ae34bead022b25cd603a9961f3668ee9d0cdae19b6da5f8280971a221","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.6","statement_hash":"124709d658a3d5b200a5977aa55ee71ca27a17cb72085b3a15ae5ac9fabc00c8","text":"改进ssl_ciphers的默认设置（Marko Kreen）","title":"改进ssl_ciphers的默认设置","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"4586891d2a805a07a8d8532859822149","html":"\u003cp\u003e默认情况下，现在由服务器而非客户端控制 \u003cacronym\u003eSSL\u003c/acronym\u003e 密码的偏好顺序（Marko Kreen）\u003c/p\u003e\n\u003cp\u003e此前，\u003ca href=\"/docs/9.4/runtime-config-connection.html#GUC-SSL-CIPHERS\"\u003essl_ciphers\u003c/a\u003e指定的顺序通常被忽略，转而采用客户端默认值，而大多数 \u003cspan\u003ePostgreSQL\u003c/span\u003e 客户端的默认值不可配置。如有需要，可以通过新的配置参数\u003ca href=\"/docs/9.4/runtime-config-connection.html#GUC-SSL-PREFER-SERVER-CIPHERS\"\u003essl_prefer_server_ciphers\u003c/a\u003e恢复以前的行为。\u003c/p\u003e","id":"9.4.0-e56d0e0ca3bd8b4e","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 .","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / SSL","section_path":["服务器","SSL"],"source_commits":[],"source_entry_id":"9.4.0/changes/028","source_hash":"ed93faabe00c1022c270133b194ef71af156e8706abd9949b1cc2a90164040c4","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.6","statement_hash":"8c7b8aefede56399a760d4a8f96dd325bd4a1b187d2819ec70bcee270a4edcd8","text":"默认情况下，现在由服务器而非客户端控制 SSL 密码的偏好顺序（Marko Kreen） 此前，ssl_ciphers指定的顺序通常被忽略，转而采用客户端默认值，而大多数 PostgreSQL 客户端的默认值不可配置。如有需要，可以通过新的配置参数ssl_prefer_server_ciphers恢复以前的行为。","title":"默认情况下，现在由服务器而非客户端控制 SSL 密码的偏好顺序","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"48cfdbcd6f25ae047312e7cfda50cb97","html":"\u003cp\u003e使\u003ca href=\"/docs/9.4/runtime-config-logging.html#GUC-LOG-CONNECTIONS\"\u003elog_connections\u003c/a\u003e显示 \u003cacronym\u003eSSL\u003c/acronym\u003e 加密信息（Andreas Kunert）\u003c/p\u003e","id":"9.4.0-80a1bfed9d8efba2","identity_text":"Make guc-log-connections show SSL encryption information (Andreas Kunert)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / SSL","section_path":["服务器","SSL"],"source_commits":[],"source_entry_id":"9.4.0/changes/029","source_hash":"04e316dbe7792bb336725ccbcc058397790387857158504c6c271d3ad6a8892f","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.6","statement_hash":"37aae07843303ca5eeb2faeb8f63496dc5c1fb8a04231b7fc0398d9e7f5f5b6e","text":"使log_connections显示 SSL 加密信息（Andreas Kunert）","title":"使log_connections显示 SSL 加密信息","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"5ca7f6281c78dcd84d46b8109020af8d","html":"\u003cp\u003e改进 \u003cacronym\u003eSSL\u003c/acronym\u003e 重新协商的处理（Álvaro Herrera）\u003c/p\u003e","id":"9.4.0-adbc2f242bcd275a","identity_text":"Improve SSL renegotiation handling (Álvaro Herrera)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / SSL","section_path":["服务器","SSL"],"source_commits":[],"source_entry_id":"9.4.0/changes/030","source_hash":"7ff291274ea2c0743c98492da667129a373fdf557a0850986569426835d2cb22","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.6","statement_hash":"5d081f14cf911b039417a77dee33028c6d79ccffadbbf1c0520998baaaf80218","text":"改进 SSL 重新协商的处理（Álvaro Herrera）","title":"改进 SSL 重新协商的处理","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"9600cf9d9ddbcfa2b002dc604b0ccb8e","html":"\u003cp\u003e新增 \u003cacronym\u003eSQL\u003c/acronym\u003e 命令\u003ca href=\"/docs/9.4/sql-altersystem.html\" title=\"ALTER SYSTEM\"\u003e\u003cspan\u003eALTER SYSTEM\u003c/span\u003e\u003c/a\u003e，用于更改 \u003ccode\u003epostgresql.conf\u003c/code\u003e 配置文件条目（Amit Kapila）\u003c/p\u003e\n\u003cp\u003e此前此类设置只能通过手工编辑 \u003ccode\u003epostgresql.conf\u003c/code\u003e 来更改。\u003c/p\u003e","id":"9.4.0-deaa922cce665279","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/031","source_hash":"ecb2ababb4f253fc6a1b359b54b201cd3bd257ccc98f6ba052deaf80794e154c","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"3b9a9a09fbf393aca5661819add2837c8423d45910bb48ebdd6da6e37b6389cb","text":"新增 SQL 命令ALTER SYSTEM，用于更改 postgresql.conf 配置文件条目（Amit Kapila） 此前此类设置只能通过手工编辑 postgresql.conf 来更改。","title":"新增 SQL 命令ALTER SYSTEM，用于更改 postgresql.conf 配置文件条目","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"516fdf022e6445d0a1cfdca0dd70e321","html":"\u003cp\u003e新增\u003ca href=\"/docs/9.4/runtime-config-resource.html#GUC-AUTOVACUUM-WORK-MEM\"\u003eautovacuum_work_mem\u003c/a\u003e配置参数，以控制自动清理工作进程使用的内存量（Peter Geoghegan）\u003c/p\u003e","id":"9.4.0-ec4f0f6a4554abd8","identity_text":"Add guc-autovacuum-work-mem configuration parameter to control the amount of memory used by autovacuum workers (Peter Geoghegan)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/032","source_hash":"65a1bde81e8d0d1c4a83883eddf8ef95df711796435df3d7a8c57548f33866b4","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"94fa03792275fac8e04384cf5735f926c12808927f4c35bd0c4717c78c5b63cc","text":"新增autovacuum_work_mem配置参数，以控制自动清理工作进程使用的内存量（Peter Geoghegan）","title":"新增autovacuum_work_mem配置参数，以控制自动清理工作进程使用的内存量","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"8a8a6eeeebe802a6ba07dde4a975eac7","html":"\u003cp\u003e新增\u003ca href=\"/docs/9.4/runtime-config-resource.html#GUC-HUGE-PAGES\"\u003ehuge_pages\u003c/a\u003e参数，允许在 Linux 上使用大内存页（Christian Kruse、Richard Poole、Abhijit Menon-Sen）\u003c/p\u003e\n\u003cp\u003e这可以改进大内存系统上的性能。\u003c/p\u003e","id":"9.4.0-bffb49dbea8c469a","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/033","source_hash":"63afd2562d69cf830b2902135cbde169b2534922394788a6f8f7a78b8fb1709e","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"6d57949dc52caddc75443d32865681a58c57052ff9029353a6a3ff1bd1e42eb7","text":"新增huge_pages参数，允许在 Linux 上使用大内存页（Christian Kruse、Richard Poole、Abhijit Menon-Sen） 这可以改进大内存系统上的性能。","title":"新增huge_pages参数，允许在 Linux 上使用大内存页","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"42f5ed995b3ca03589b9f459a351ca7a","html":"\u003cp\u003e新增\u003ca href=\"/docs/9.4/runtime-config-resource.html#GUC-MAX-WORKER-PROCESSES\"\u003emax_worker_processes\u003c/a\u003e参数，以限制后台工作进程的数量（Robert Haas）\u003c/p\u003e\n\u003cp\u003e这有助于把备库服务器配置为拥有所需数量的工作进程（与主库相同）。\u003c/p\u003e","id":"9.4.0-ad8244affe6ce25f","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).","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/034","source_hash":"34e5645f7dfc4abe8f893a668c65db5138c6ea585134454b944769844338944a","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"1b1f977133c7d810b85ad623c831a4850744076a8773020f3e1845c4dac5e37a","text":"新增max_worker_processes参数，以限制后台工作进程的数量（Robert Haas） 这有助于把备库服务器配置为拥有所需数量的工作进程（与主库相同）。","title":"新增max_worker_processes参数，以限制后台工作进程的数量","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"5511525445d5eea457b71fd54f9285c7","html":"\u003cp\u003e新增仅限超级用户的\u003ca href=\"/docs/9.4/runtime-config-client.html#GUC-SESSION-PRELOAD-LIBRARIES\"\u003esession_preload_libraries\u003c/a\u003e参数，用于在会话启动时加载库（Peter Eisentraut）\u003c/p\u003e\n\u003cp\u003e与\u003ca href=\"/docs/9.4/runtime-config-client.html#GUC-LOCAL-PRELOAD-LIBRARIES\"\u003elocal_preload_libraries\u003c/a\u003e不同，此参数可以加载任何共享库，而不仅仅是 \u003ccode\u003e$libdir/plugins\u003c/code\u003e 目录中的库。\u003c/p\u003e","id":"9.4.0-56b5eb59daa5feea","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/035","source_hash":"34dc3214d799429eda85a57373d6ee3602b1fe79648b71cf5f6982d421d60b65","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"526bb051aff35c9db98f5a96eae98561a45dccb8fad474beca349312756ce841","text":"新增仅限超级用户的session_preload_libraries参数，用于在会话启动时加载库（Peter Eisentraut） 与local_preload_libraries不同，此参数可以加载任何共享库，而不仅仅是 $libdir/plugins 目录中的库。","title":"新增仅限超级用户的session_preload_libraries参数，用于在会话启动时加载库","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"a1bd9396deaa83aa33410939f61d2fda","html":"\u003cp\u003e新增\u003ca href=\"/docs/9.4/runtime-config-wal.html#GUC-WAL-LOG-HINTS\"\u003ewal_log_hints\u003c/a\u003e参数，用于启用提示位（hint-bit）变更的 WAL 日志（Sawada Masahiko）\u003c/p\u003e\n\u003cp\u003e提示位变更通常不记录日志，启用了校验和时除外。这对 \u003cspan\u003epg_rewind\u003c/span\u003e 等外部工具很有用。\u003c/p\u003e","id":"9.4.0-96f2f36e6655094a","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/036","source_hash":"ca54aad36687981af8239bddac985bdc6a22790642058f70eb824c76d239cdf5","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"acc3c9657644ebdf185a4f0ffa92cc51537ddc5c05b4cfc3e76b270e655add90","text":"新增wal_log_hints参数，用于启用提示位（hint-bit）变更的 WAL 日志（Sawada Masahiko） 提示位变更通常不记录日志，启用了校验和时除外。这对 pg_rewind 等外部工具很有用。","title":"新增wal_log_hints参数，用于启用提示位（hint-bit）变更的 WAL 日志","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"4b4e38014405f779c8751f7bd2aa692f","html":"\u003cp\u003e将\u003ca href=\"/docs/9.4/runtime-config-resource.html#GUC-WORK-MEM\"\u003ework_mem\u003c/a\u003e和\u003ca href=\"/docs/9.4/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM\"\u003emaintenance_work_mem\u003c/a\u003e的默认设置提高到原来的四倍（Bruce Momjian）\u003c/p\u003e\n\u003cp\u003e新的默认值分别为 4MB 和 64MB。\u003c/p\u003e","id":"9.4.0-fca93fd93726cece","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/037","source_hash":"f997e0da19fd5d0a6e4c71f77583a6db4b6fe7d69ce681225955538b7c01dea4","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"46239a5494872eceb2a91aebe91287d6e2862015826065e074fab89f4faaa0a6","text":"将work_mem和maintenance_work_mem的默认设置提高到原来的四倍（Bruce Momjian） 新的默认值分别为 4MB 和 64MB。","title":"将work_mem和maintenance_work_mem的默认设置提高到原来的四倍","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"2362b923433619c47d9f868a1ae98c1b","html":"\u003cp\u003e将\u003ca href=\"/docs/9.4/runtime-config-query.html#GUC-EFFECTIVE-CACHE-SIZE\"\u003eeffective_cache_size\u003c/a\u003e的默认设置提高到 4GB（Bruce Momjian、Tom Lane）\u003c/p\u003e","id":"9.4.0-852fc7b42824b448","identity_text":"Increase the default setting of guc-effective-cache-size to 4GB (Bruce Momjian, Tom Lane)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/038","source_hash":"9f7218c3c5daa7cdf152584f7a6f4cce7a6919f20b143b93f7f1e8fb9f632d4b","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"bb7003fa01822a705a33bc2495fd22ce8529a5f4a3af1fffab0c74dc7a527457","text":"将effective_cache_size的默认设置提高到 4GB（Bruce Momjian、Tom Lane）","title":"将effective_cache_size的默认设置提高到 4GB","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"c77480aff8b6d5cdcb2f5a2efcda94ed","html":"\u003cp\u003e允许在\u003ca href=\"/docs/9.4/runtime-config-logging.html#GUC-LOG-LINE-PREFIX\"\u003elog_line_prefix\u003c/a\u003e中指定 \u003ccode\u003eprintf\u003c/code\u003e 风格的空格填充（David Rowley）\u003c/p\u003e","id":"9.4.0-0dd312de39d1cb2e","identity_text":"Allow printf-style space padding to be specified in guc-log-line-prefix (David Rowley)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/039","source_hash":"aed188f6efbdc3165368c944d0952b1a37f8a05c81aaf7c58eefa804608dcaf3","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"2b6aa2d5033af665439047db18e526ede46e44889d920517136b0bd3f9a83900","text":"允许在log_line_prefix中指定 printf 风格的空格填充（David Rowley）","title":"允许在log_line_prefix中指定 printf 风格的空格填充","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"76a82a6541066d97439e2615b1456de6","html":"\u003cp\u003e允许在指定配置变量值时使用太字节单位（\u003ccode\u003eTB\u003c/code\u003e）（Simon Riggs）\u003c/p\u003e","id":"9.4.0-a63fa1d2c467e504","identity_text":"Allow terabyte units (TB) to be used when specifying configuration variable values (Simon Riggs)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/040","source_hash":"f3a286bcaf57e15b8a6a21c3b8d14ea08f164293c7ba79794abdd15d3ef06831","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"ec4b943e658b82e46ff21639ae1ccd6409a40b28885b24502bf037d58ec139bc","text":"允许在指定配置变量值时使用太字节单位（TB）（Simon Riggs）","title":"允许在指定配置变量值时使用太字节单位（TB）","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1a1afa3a58b1623be5778ec951983a90","html":"\u003cp\u003e在\u003ca href=\"/docs/9.4/runtime-config-logging.html#GUC-LOG-LOCK-WAITS\"\u003elog_lock_waits\u003c/a\u003e日志消息中显示锁持有者和等待者的 \u003cacronym\u003ePID\u003c/acronym\u003e，并改进关系相关信息（Christian Kruse）\u003c/p\u003e","id":"9.4.0-a4c8b91934a13d20","identity_text":"Show PIDs of lock holders and waiters and improve information about relations in guc-log-lock-waits log messages (Christian Kruse)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/041","source_hash":"78ae9969945bf6563a94e44cd151410e4fd3d572802bf991b1182bae8262a37a","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"a023242a7e12f3b7d58973c9fb21618a04a3738ad386f70d372c0c52e2c0598b","text":"在log_lock_waits日志消息中显示锁持有者和等待者的 PID，并改进关系相关信息（Christian Kruse）","title":"在log_lock_waits日志消息中显示锁持有者和等待者的 PID，并改进关系相关信息","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"88e4eac3e2c3d60074dcc0668e17cf9d","html":"\u003cp\u003e降低加载共享库时的服务器日志级别（Peter Geoghegan）\u003c/p\u003e\n\u003cp\u003e以前的级别是 \u003ccode\u003eLOG\u003c/code\u003e，对于按会话加载的库来说过于冗长。\u003c/p\u003e","id":"9.4.0-0d768b4956f1f9cc","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/042","source_hash":"2532d0989d43abeb95587d7333e01ccb8f09dacbad13b7c6c0bbec0fea934e70","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"c55cc9966f4b2e4e5730a7a42e0cd4a2c2c8ad40de3b4f987496d3d838dcb5e6","text":"降低加载共享库时的服务器日志级别（Peter Geoghegan） 以前的级别是 LOG，对于按会话加载的库来说过于冗长。","title":"降低加载共享库时的服务器日志级别","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"5a48543315c59cf240156344449afafa","html":"\u003cp\u003e在 Windows 上，使 \u003ccode\u003eSQL_ASCII\u003c/code\u003e 编码的数据库和服务器进程（例如\u003ca href=\"/docs/9.4/app-postmaster.html\" title=\"postmaster\"\u003e\u003cspan\u003e\u003cspan\u003epostmaster\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e）以服务器 Windows 用户区域设置的字符编码发出消息（Alexander Law、Noah Misch）\u003c/p\u003e\n\u003cp\u003e此前这些消息以 Windows \u003cacronym\u003eANSI\u003c/acronym\u003e 代码页输出。\u003c/p\u003e","id":"9.4.0-639542ff6ecc7bc0","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器 / 服务器设置","section_path":["服务器","服务器设置"],"source_commits":[],"source_entry_id":"9.4.0/changes/043","source_hash":"c74d2448dcd521892519edfaa06d4f412fa797cd62b645fc058b43ed36c892c1","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.3.7","statement_hash":"c5fdaac50a4554b0943ca36e2f4a8fb5b462c8e4d5b9bfe8625aab7738584ea9","text":"在 Windows 上，使 SQL_ASCII 编码的数据库和服务器进程（例如postmaster）以服务器 Windows 用户区域设置的字符编码发出消息（Alexander Law、Noah Misch） 此前这些消息以 Windows ANSI 代码页输出。","title":"在 Windows 上，使 SQL_ASCII 编码的数据库和服务器进程（例如postmaster）以服务器 Windows 用户区域设置的字符编码发出消息","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"b5339fd59177468c25a87bd09b9a6ed5","html":"\u003cp\u003e新增\u003ca href=\"/docs/9.4/warm-standby.html#STREAMING-REPLICATION-SLOTS\" title=\"25.2.6. 复制槽\"\u003e复制槽\u003c/a\u003e，以协调流复制备库与其流来源节点的活动（Andres Freund、Robert Haas）\u003c/p\u003e\n\u003cp\u003e复制槽允许在主库上保留 \u003cacronym\u003eWAL\u003c/acronym\u003e 文件等资源，直到备库服务器不再需要它们。\u003c/p\u003e","id":"9.4.0-4cc01a59391e634e","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复","section_path":["复制与恢复"],"source_commits":[],"source_entry_id":"9.4.0/changes/044","source_hash":"ea00084c07865b1b487d6ff52c88ea265b39010caaf10780936a69722be7ef31","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4","statement_hash":"3e8414575e68244ed55722bedf4833dd8538b9ccecb50956ed187f4bd63074e7","text":"新增复制槽，以协调流复制备库与其流来源节点的活动（Andres Freund、Robert Haas） 复制槽允许在主库上保留 WAL 文件等资源，直到备库服务器不再需要它们。","title":"新增复制槽，以协调流复制备库与其流来源节点的活动","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"18c6c73e4b2a436c5cff78cce907e807","html":"\u003cp\u003e新增恢复参数\u003ca href=\"/docs/9.4/standby-settings.html#RECOVERY-MIN-APPLY-DELAY\"\u003erecovery_min_apply_delay\u003c/a\u003e以延迟复制（Robert Haas, Fabrízio de Royes Mello、Simon Riggs）\u003c/p\u003e\n\u003cp\u003e延迟备库服务器上的重放对于从用户错误中恢复可能很有用。\u003c/p\u003e","id":"9.4.0-b710b15be81ba1ec","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复","section_path":["复制与恢复"],"source_commits":[],"source_entry_id":"9.4.0/changes/045","source_hash":"7413dace8ca5108ec33820097ae79ce76aeec58142e74342778f81be341061df","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4","statement_hash":"53141d1ddcac011217542954de2cc34493f9e42cb82bf698ed7c68b036327379","text":"新增恢复参数recovery_min_apply_delay以延迟复制（Robert Haas, Fabrízio de Royes Mello、Simon Riggs） 延迟备库服务器上的重放对于从用户错误中恢复可能很有用。","title":"新增恢复参数recovery_min_apply_delay以延迟复制","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1468649948f2d48adadc454691568704","html":"\u003cp\u003e新增\u003ca href=\"/docs/9.4/recovery-target-settings.html#RECOVERY-TARGET\"\u003erecovery_target\u003c/a\u003e选项 \u003ccode\u003eimmediate\u003c/code\u003e，在达到一致状态后立即停止 \u003ca href=\"/docs/9.4/wal.html\" title=\"第 29 章 可靠性与预写式日志\"\u003e\u003cacronym\u003eWAL\u003c/acronym\u003e\u003c/a\u003e 恢复（MauMau、Heikki Linnakangas）\u003c/p\u003e","id":"9.4.0-944163048dc617f7","identity_text":"Add recovery-target option immediate to stop WAL recovery as soon as a consistent state is reached (MauMau, Heikki Linnakangas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复","section_path":["复制与恢复"],"source_commits":[],"source_entry_id":"9.4.0/changes/046","source_hash":"61f84facd316eaad6d31fa1f7c2d7a564f75a816a5c3da9fda869686dcab07ec","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4","statement_hash":"c879a4f0f5cf76655046e262da00b86c65fa2418e53f51b7ba76f7245e40a8df","text":"新增recovery_target选项 immediate，在达到一致状态后立即停止 WAL 恢复（MauMau、Heikki Linnakangas）","title":"新增recovery_target选项 immediate，在达到一致状态后立即停止 WAL 恢复","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"ae3eb09230b5ba0507ec3dc05edeb981","html":"\u003cp\u003e改进恢复目标的处理（Heikki Linnakangas）\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/docs/9.4/functions-admin.html#FUNCTIONS-RECOVERY-INFO-TABLE\" title=\"表 9.66. 恢复信息函数\"\u003e\u003ccode\u003epg_last_xact_replay_timestamp()\u003c/code\u003e\u003c/a\u003e 报告的时间戳现在反映已提交的记录，而不是将要提交的事务。恢复到还原点现在会重放到还原点本身，而不是在还原点之前停止。\u003c/p\u003e","id":"9.4.0-df085c7700237e40","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复","section_path":["复制与恢复"],"source_commits":[],"source_entry_id":"9.4.0/changes/047","source_hash":"0e79a45d52db0b62d2494d1187e0bf0cb951de935818962f15f531eed2518e19","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4","statement_hash":"bbc35acf23fe3b5e76a93d2843221b2f5da697cecc630b09396ddecdf5931d74","text":"改进恢复目标的处理（Heikki Linnakangas） pg_last_xact_replay_timestamp() 报告的时间戳现在反映已提交的记录，而不是将要提交的事务。恢复到还原点现在会重放到还原点本身，而不是在还原点之前停止。","title":"改进恢复目标的处理","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1a58dba97103d15b4af7b63789b3b271","html":"\u003cp\u003e\u003ca href=\"/docs/9.4/functions-admin.html#FUNCTIONS-ADMIN-BACKUP-TABLE\" title=\"表 9.65. 备份控制函数\"\u003e\u003ccode\u003epg_switch_xlog()\u003c/code\u003e\u003c/a\u003e 现在会清除旧 \u003cacronym\u003eWAL\u003c/acronym\u003e 文件中所有未使用的尾部空间（Heikki Linnakangas）\u003c/p\u003e\n\u003cp\u003e这提高了 \u003cacronym\u003eWAL\u003c/acronym\u003e 文件的压缩率。\u003c/p\u003e","id":"9.4.0-62177b11ae80f099","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复","section_path":["复制与恢复"],"source_commits":[],"source_entry_id":"9.4.0/changes/048","source_hash":"e1fe08b6137466d7c7d515e618a060a77ee40bce26cfecbe079229923de3b0d4","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4","statement_hash":"22edaa9092b9b05503cee54310fbc54204642ca12578e07d2c3fb500631a92ba","text":"pg_switch_xlog() 现在会清除旧 WAL 文件中所有未使用的尾部空间（Heikki Linnakangas） 这提高了 WAL 文件的压缩率。","title":"pg_switch_xlog() 现在会清除旧 WAL 文件中所有未使用的尾部空间","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"0d539fbec09b7d66ef2770a3d93497da","html":"\u003cp\u003e报告\u003ca href=\"/docs/9.4/recovery-config.html#ARCHIVE-RECOVERY-SETTINGS\" title=\"26.1. 归档恢复设置\"\u003e外部恢复命令\u003c/a\u003e的失败返回码（Peter Eisentraut）\u003c/p\u003e","id":"9.4.0-12eacde142918be1","identity_text":"Report failure return codes from external recovery commands (Peter Eisentraut)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复","section_path":["复制与恢复"],"source_commits":[],"source_entry_id":"9.4.0/changes/049","source_hash":"9f277db0ad6156105aa8dd06a18500aa4abb65981926b97b976a2a228bcd205f","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4","statement_hash":"54b12e60a52a7797c0359089c98a00340e56c0f695b87d9629ace9ff4d4e4087","text":"报告外部恢复命令的失败返回码（Peter Eisentraut）","title":"报告外部恢复命令的失败返回码","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"38a59bd8817a827c7ed268424c8f4dcb","html":"\u003cp\u003e减少 \u003cacronym\u003eWAL\u003c/acronym\u003e 重放期间的自旋锁争用（Heikki Linnakangas）\u003c/p\u003e","id":"9.4.0-fe0fbcc8b126f7d0","identity_text":"Reduce spinlock contention during WAL replay (Heikki Linnakangas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复","section_path":["复制与恢复"],"source_commits":[],"source_entry_id":"9.4.0/changes/050","source_hash":"fe0f31e9676a5b98ce5892ecb64c2eae28c44c13ced7484e5fe28124ff22beb3","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4","statement_hash":"5bf4c252c0ab926e6f249c08fe4bf34c95b9f3bde8ce51562118469499d4b8fb","text":"减少 WAL 重放期间的自旋锁争用（Heikki Linnakangas）","title":"减少 WAL 重放期间的自旋锁争用","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"af6d2656ba591da1c4a489175af12275","html":"\u003cp\u003e更频繁地写入运行中事务的 \u003cacronym\u003eWAL\u003c/acronym\u003e 记录（Andres Freund）\u003c/p\u003e\n\u003cp\u003e这使备库服务器能够更快启动并更积极地清理资源。\u003c/p\u003e","id":"9.4.0-8a27d45dbb59869b","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复","section_path":["复制与恢复"],"source_commits":[],"source_entry_id":"9.4.0/changes/051","source_hash":"9ffe292ba0e408f8784880f1b2b271102f32132c66f544d15f1505c9a9513bd1","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4","statement_hash":"37ad0c21f981ef13a91e764df51381786ff28d0134e6b06012ffeac6e4201547","text":"更频繁地写入运行中事务的 WAL 记录（Andres Freund） 这使备库服务器能够更快启动并更积极地清理资源。","title":"更频繁地写入运行中事务的 WAL 记录","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"db28905bb93b94e88356584619eeffe2","html":"\u003cp\u003e新增对 WAL 数据\u003ca href=\"/docs/9.4/logicaldecoding.html\" title=\"第 46 章 逻辑解码\"\u003e逻辑解码\u003c/a\u003e的支持，允许以可自定义的格式流出数据库变更（Andres Freund）\u003c/p\u003e","id":"9.4.0-12f9aa4328761de3","identity_text":"Add support for logical decoding of WAL data, to allow database changes to be streamed out in a customizable format (Andres Freund)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复 / 逻辑解码","section_path":["复制与恢复","逻辑解码"],"source_commits":[],"source_entry_id":"9.4.0/changes/052","source_hash":"4c140e423de26af766f92ee68808e03c26dd00e215416bf6503c0f7a4a719e2c","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4.3","statement_hash":"bccb02895854e6ba6c1895fc313dbb340bba1ee4735117d4744c98f6b5292798","text":"新增对 WAL 数据逻辑解码的支持，允许以可自定义的格式流出数据库变更（Andres Freund）","title":"新增对 WAL 数据逻辑解码的支持，允许以可自定义的格式流出数据库变更","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"d9b131c5a1f1021d51d139779606b67b","html":"\u003cp\u003e新增\u003ca href=\"/docs/9.4/runtime-config-wal.html#GUC-WAL-LEVEL\"\u003ewal_level\u003c/a\u003e设置 \u003ccode\u003elogical\u003c/code\u003e，用于在 \u003cacronym\u003eWAL\u003c/acronym\u003e 中启用逻辑变更集编码（Andres Freund）\u003c/p\u003e","id":"9.4.0-2ec2ebc2e1c11cc5","identity_text":"Add new guc-wal-level setting logical to enable logical change-set encoding in WAL (Andres Freund)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复 / 逻辑解码","section_path":["复制与恢复","逻辑解码"],"source_commits":[],"source_entry_id":"9.4.0/changes/053","source_hash":"b8cff09d7fedd8321685a3d5b0ba3f569fb20af035476fcd85ca998162e98781","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4.3","statement_hash":"1385262cf208017375c14b2be855301366bcbf8a7b5345832495a68220e9ba60","text":"新增wal_level设置 logical，用于在 WAL 中启用逻辑变更集编码（Andres Freund）","title":"新增wal_level设置 logical，用于在 WAL 中启用逻辑变更集编码","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"539bafd651acf13b912a6042416eb284","html":"\u003cp\u003e新增表级参数\u003ca href=\"/docs/9.4/catalog-pg-class.html\" title=\"48.11. pg_class\"\u003e\u003ccode\u003eREPLICA IDENTITY\u003c/code\u003e\u003c/a\u003e，用于控制逻辑复制（Andres Freund）\u003c/p\u003e","id":"9.4.0-3cf9138df1e26bbe","identity_text":"Add table-level parameter REPLICA IDENTITY to control logical replication (Andres Freund)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复 / 逻辑解码","section_path":["复制与恢复","逻辑解码"],"source_commits":[],"source_entry_id":"9.4.0/changes/054","source_hash":"40590d2fbde9bc300c071bbf0aa39fde853a7f9f35c02a6f91ff6472dc4b777d","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4.3","statement_hash":"ce3988eca645b1c8091866d654b8d5b4e721939a9dc120e9293794da2023569d","text":"新增表级参数REPLICA IDENTITY，用于控制逻辑复制（Andres Freund）","title":"新增表级参数REPLICA IDENTITY，用于控制逻辑复制","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"417ce065cb8433fc86c2a25ca744e493","html":"\u003cp\u003e新增关系选项\u003ca href=\"/docs/9.4/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS\" title=\"存储参数\"\u003e\u003ccode\u003euser_catalog_table\u003c/code\u003e\u003c/a\u003e，用于标识参与逻辑变更集编码的用户创建表（Andres Freund）\u003c/p\u003e","id":"9.4.0-9050f2b6266af687","identity_text":"Add relation option user_catalog_table to identify user-created tables involved in logical change-set encoding (Andres Freund)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复 / 逻辑解码","section_path":["复制与恢复","逻辑解码"],"source_commits":[],"source_entry_id":"9.4.0/changes/055","source_hash":"f3b9db8923e92847ab307410d3e6e33d17e8448a302ddccfee97794878218232","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4.3","statement_hash":"d85cb69fc58751c87329d03dd0ce7881e877ea30a62be09570729df3d920a2af","text":"新增关系选项user_catalog_table，用于标识参与逻辑变更集编码的用户创建表（Andres Freund）","title":"新增关系选项user_catalog_table，用于标识参与逻辑变更集编码的用户创建表","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"f1a9bfc04d5f40253f4cb9d604ff7f6f","html":"\u003cp\u003e新增\u003ca href=\"/docs/9.4/app-pgrecvlogical.html\" title=\"pg_recvlogical\"\u003e\u003cspan\u003e\u003cspan\u003epg_recvlogical\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e应用程序，用于接收逻辑解码数据（Andres Freund）\u003c/p\u003e","id":"9.4.0-198589e0b03cd5b3","identity_text":"Add app-pgrecvlogical application to receive logical-decoding data (Andres Freund)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复 / 逻辑解码","section_path":["复制与恢复","逻辑解码"],"source_commits":[],"source_entry_id":"9.4.0/changes/056","source_hash":"ab50f8f14b2fc57308a5292d6c6046235539df1815919b378ce84abfa233195f","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4.3","statement_hash":"36aa5fa5018c32f5d26efa6d2850fe3b32b1cbb672db1d69179edfa1aa3e1bdd","text":"新增pg_recvlogical应用程序，用于接收逻辑解码数据（Andres Freund）","title":"新增pg_recvlogical应用程序，用于接收逻辑解码数据","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"ccdd7979d3f83115263641bb2003dd2d","html":"\u003cp\u003e新增\u003ca href=\"/docs/9.4/test-decoding.html\" title=\"F.39. test_decoding\"\u003etest_decoding\u003c/a\u003e模块，用于在 \u003cacronym\u003eSQL\u003c/acronym\u003e 层面演示逻辑解码（Andres Freund）\u003c/p\u003e","id":"9.4.0-b69e9fd2d2a378e3","identity_text":"Add test-decoding module to illustrate logical decoding at the SQL level (Andres Freund)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"复制与恢复 / 逻辑解码","section_path":["复制与恢复","逻辑解码"],"source_commits":[],"source_entry_id":"9.4.0/changes/057","source_hash":"00c27ecc35fd81af1f0107e62b8e48dd6a1b1be8325582e0bc31dea295b4d11d","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.4.3","statement_hash":"12462434ee868c6d087b3b03c9afe9c423c2948cebd68c1fff95a13f3cfdffe0","text":"新增test_decoding模块，用于在 SQL 层面演示逻辑解码（Andres Freund）","title":"新增test_decoding模块，用于在 SQL 层面演示逻辑解码","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"08b14bffb9dffd4fefac68fc9a7f1ddb","html":"\u003cp\u003e新增 \u003ca href=\"/docs/9.4/queries-table-expressions.html#QUERIES-TABLEFUNCTIONS\" title=\"7.2.1.4. 表函数\"\u003e\u003ccode\u003eWITH ORDINALITY\u003c/code\u003e\u003c/a\u003e 语法，为 \u003ccode\u003eFROM\u003c/code\u003e 子句中集合返回函数返回的行编号（Andrew Gierth、David Fetter）\u003c/p\u003e\n\u003cp\u003e这对 \u003ccode\u003eunnest()\u003c/code\u003e 之类的函数特别有用。\u003c/p\u003e","id":"9.4.0-2960fdd8b006481b","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().","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"查询","section_path":["查询"],"source_commits":[],"source_entry_id":"9.4.0/changes/058","source_hash":"34e9ba1d6689c42858dc1f173fa68b4a0b13d3629248289d02d818632bdc2568","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.5","statement_hash":"351c63284087e1f8acbc7014e25a3a97f1423c1c5a0768ccc8ce94a50f174eff","text":"新增 WITH ORDINALITY 语法，为 FROM 子句中集合返回函数返回的行编号（Andrew Gierth、David Fetter） 这对 unnest() 之类的函数特别有用。","title":"新增 WITH ORDINALITY 语法，为 FROM 子句中集合返回函数返回的行编号","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"c6d8fae9b1e57295a3c91d8ab2f13f75","html":"\u003cp\u003e新增 \u003ca href=\"/docs/9.4/queries-table-expressions.html#QUERIES-TABLEFUNCTIONS\" title=\"7.2.1.4. 表函数\"\u003e\u003ccode\u003eROWS FROM()\u003c/code\u003e\u003c/a\u003e 语法，允许在 \u003ccode\u003eFROM\u003c/code\u003e 子句中对集合返回函数进行水平串联（Andrew Gierth）\u003c/p\u003e","id":"9.4.0-4b74ca7d4efb05c4","identity_text":"Add ROWS FROM() syntax to allow horizontal concatenation of set-returning functions in the FROM clause (Andrew Gierth)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"查询","section_path":["查询"],"source_commits":[],"source_entry_id":"9.4.0/changes/059","source_hash":"6bc0005f71337d25f6b09c0d9bce17f5587164198ba0708c8cdcd925fbe8177b","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.5","statement_hash":"55f883e060dd3b1641839a77c45953603cedb7258cc8d45cdcb7752539ab8c38","text":"新增 ROWS FROM() 语法，允许在 FROM 子句中对集合返回函数进行水平串联（Andrew Gierth）","title":"新增 ROWS FROM() 语法，允许在 FROM 子句中对集合返回函数进行水平串联","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"0531876bb8f6ec2de1cf54db11755549","html":"\u003cp\u003e允许\u003ca href=\"/docs/9.4/sql-select.html\" title=\"SELECT\"\u003e\u003cspan\u003eSELECT\u003c/span\u003e\u003c/a\u003e拥有空目标列表（Tom Lane）\u003c/p\u003e\n\u003cp\u003e增加此功能是为了使从零列表中选择的视图能够被正确转储和还原。\u003c/p\u003e","id":"9.4.0-a839896d17570134","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"查询","section_path":["查询"],"source_commits":[],"source_entry_id":"9.4.0/changes/060","source_hash":"5d72eb1f94a93b44185f06a9c236beb010dac46334f0f281e924103fbc627fa0","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.5","statement_hash":"418d86d2a591dbea3d5bf827c80024d81cf7ca89baccff1cc28fe544809012bd","text":"允许SELECT拥有空目标列表（Tom Lane） 增加此功能是为了使从零列表中选择的视图能够被正确转储和还原。","title":"允许SELECT拥有空目标列表","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"527a24244be4d7b01f3a5fc3cefc4b13","html":"\u003cp\u003e确保 \u003ca href=\"/docs/9.4/sql-select.html\" title=\"SELECT\"\u003e\u003ccode\u003eSELECT ... FOR UPDATE NOWAIT\u003c/code\u003e\u003c/a\u003e 在涉及已被并发更新元组的极端情况下不会等待（Craig Ringer and Thomas Munro）\u003c/p\u003e","id":"9.4.0-08d8fcfc7b4e7f2a","identity_text":"Ensure that SELECT ... FOR UPDATE NOWAIT does not wait in corner cases involving already-concurrently-updated tuples (Craig Ringer and Thomas Munro)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"查询","section_path":["查询"],"source_commits":[],"source_entry_id":"9.4.0/changes/061","source_hash":"6129beb2b4642d60334f6dd21bdf53b5c222a1926e152b4d752eb5df7f9b8275","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.5","statement_hash":"1ae62d6b8545ae43f254ef844200d86c8f4e2f2fb8a20b9b92feef3dedcb59b0","text":"确保 SELECT ... FOR UPDATE NOWAIT 在涉及已被并发更新元组的极端情况下不会等待（Craig Ringer and Thomas Munro）","title":"确保 SELECT ... FOR UPDATE NOWAIT 在涉及已被并发更新元组的极端情况下不会等待","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"e997d50d211ae7ad274a92a2424c4cb6","html":"\u003cp\u003e新增 \u003ca href=\"/docs/9.4/sql-discard.html\" title=\"DISCARD\"\u003e\u003ccode\u003eDISCARD SEQUENCES\u003c/code\u003e\u003c/a\u003e 命令，用于丢弃缓存的序列相关状态（Fabrízio de Royes Mello、Robert Haas）\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eDISCARD ALL\u003c/code\u003e 现在也会丢弃此类信息。\u003c/p\u003e","id":"9.4.0-8bd687a4ed5b8d28","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/062","source_hash":"3fcd8539a1c184b6c3bf7bc4826b4c8ab4c0bb0835d7e3789a375e16ab5da969","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.6","statement_hash":"3bae31298e094673fc3348747e4f90c092f238e95ec3dbce19a31f5d9431e2d5","text":"新增 DISCARD SEQUENCES 命令，用于丢弃缓存的序列相关状态（Fabrízio de Royes Mello、Robert Haas） DISCARD ALL 现在也会丢弃此类信息。","title":"新增 DISCARD SEQUENCES 命令，用于丢弃缓存的序列相关状态","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"5f1685d9fbb1098ac4368fbfab40e86b","html":"\u003cp\u003e为 \u003ca href=\"/docs/9.4/sql-copy.html\" title=\"COPY\"\u003e\u003ccode\u003eCOPY FROM\u003c/code\u003e\u003c/a\u003e 新增 \u003ccode\u003eFORCE NULL\u003c/code\u003e 选项，在 \u003ccode\u003eCSV\u003c/code\u003e 模式下使与指定空串匹配的带引号字符串转换为 NULL（Ian Barwick、Michael Paquier）\u003c/p\u003e\n\u003cp\u003e若不使用此选项，则只有不带引号的匹配字符串才会被导入为空值。\u003c/p\u003e","id":"9.4.0-30c3326b4bc6248e","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/063","source_hash":"2791c7650c26cb8e1c01d2fce4ad74950cfd7a9c80a8ee1b70c13fb130801c44","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.6","statement_hash":"8430ee41f6683782260e52fea2f9e243e7b7c5dc2a474936e147038a0a154a3f","text":"为 COPY FROM 新增 FORCE NULL 选项，在 CSV 模式下使与指定空串匹配的带引号字符串转换为 NULL（Ian Barwick、Michael Paquier） 若不使用此选项，则只有不带引号的匹配字符串才会被导入为空值。","title":"为 COPY FROM 新增 FORCE NULL 选项，在 CSV 模式下使与指定空串匹配的带引号字符串转换为 NULL","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"bce4b6f186d0b85bf029ff05ec6c3627","html":"\u003cp\u003e对在事务块之外使用且不可能生效的命令发出警告（Bruce Momjian）\u003c/p\u003e\n\u003cp\u003e当 \u003ccode\u003eSET LOCAL\u003c/code\u003e、\u003ccode\u003eSET CONSTRAINTS\u003c/code\u003e、\u003ccode\u003eSET TRANSACTION\u003c/code\u003e 和 \u003ccode\u003eABORT\u003c/code\u003e 在事务块之外使用时会发出新的警告。\u003c/p\u003e","id":"9.4.0-841aab2733f2e27d","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/064","source_hash":"fb04b524ac687cf87ac1f87d32ac79a7b7e0e394cb664b6e820765c2a4bb7c9b","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.6","statement_hash":"639974640d1829b921ce1930156832fce6ef412aefc23cb019e34dd9108af33b","text":"对在事务块之外使用且不可能生效的命令发出警告（Bruce Momjian） 当 SET LOCAL、SET CONSTRAINTS、SET TRANSACTION 和 ABORT 在事务块之外使用时会发出新的警告。","title":"对在事务块之外使用且不可能生效的命令发出警告","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"995c57366e3151d398ebdd157281ea75","html":"\u003cp\u003e使 \u003ccode\u003eEXPLAIN ANALYZE\u003c/code\u003e 显示规划时间（Andreas Karlsson）\u003c/p\u003e","id":"9.4.0-71e51a3c18af2bea","identity_text":"Make EXPLAIN ANALYZE show planning time (Andreas Karlsson)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"工具命令 / EXPLAIN","section_path":["工具命令","EXPLAIN"],"source_commits":[],"source_entry_id":"9.4.0/changes/065","source_hash":"d2e79176e14565f89614b176949c8184ae92ff182d1cb7cefca7e195155682a5","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.6.3","statement_hash":"1fdc074ab0399f8c40323a42b3bcb07ff64fb7763a4383973cf68b8038978a89","text":"使 EXPLAIN ANALYZE 显示规划时间（Andreas Karlsson）","title":"使 EXPLAIN ANALYZE 显示规划时间","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"0790f03ae298226e6fed1ebd295ca1cd","html":"\u003cp\u003e使 \u003ccode\u003eEXPLAIN\u003c/code\u003e 显示 Agg 和 Group 节点中的分组列（Tom Lane）\u003c/p\u003e","id":"9.4.0-7ef1135d9b4bc185","identity_text":"Make EXPLAIN show the grouping columns in Agg and Group nodes (Tom Lane)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"工具命令 / EXPLAIN","section_path":["工具命令","EXPLAIN"],"source_commits":[],"source_entry_id":"9.4.0/changes/066","source_hash":"f75a1144c2745a32496b5ed62400b020378876b3af5cea5deaa50727949ccb51","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.6.3","statement_hash":"0c114312fbdfbf200cccc8b175e970beb784433840afa9a0173cc4a0359b5236","text":"使 EXPLAIN 显示 Agg 和 Group 节点中的分组列（Tom Lane）","title":"使 EXPLAIN 显示 Agg 和 Group 节点中的分组列","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"8d04df04532eed9b1a33b43637e9672d","html":"\u003cp\u003e使 \u003ccode\u003eEXPLAIN ANALYZE\u003c/code\u003e 显示位图堆扫描中的精确和有损块计数（Etsuro Fujita）\u003c/p\u003e","id":"9.4.0-7eef62429539e266","identity_text":"Make EXPLAIN ANALYZE show exact and lossy block counts in bitmap heap scans (Etsuro Fujita)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"工具命令 / EXPLAIN","section_path":["工具命令","EXPLAIN"],"source_commits":[],"source_entry_id":"9.4.0/changes/067","source_hash":"6af37f5b1ed1b47b6818df13a42a884a9238704aad37edf14dd5f4e45fa9d000","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.6.3","statement_hash":"ff8b79d1cc9b588299752b86d8de8038b6490786f3b54a656bb8a2c24caeaae7","text":"使 EXPLAIN ANALYZE 显示位图堆扫描中的精确和有损块计数（Etsuro Fujita）","title":"使 EXPLAIN ANALYZE 显示位图堆扫描中的精确和有损块计数","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"3a0b74c6f7586266cfa74b9ae6f14670","html":"\u003cp\u003e允许刷新\u003ca href=\"/docs/9.4/rules-materializedviews.html\" title=\"38.3. 物化视图\"\u003e物化视图\u003c/a\u003e而不阻塞其他会话在此期间读取该视图（Kevin Grittner）\u003c/p\u003e\n\u003cp\u003e这通过 \u003ca href=\"/docs/9.4/sql-refreshmaterializedview.html\" title=\"REFRESH MATERIALIZED VIEW\"\u003e\u003ccode\u003eREFRESH MATERIALIZED VIEW CONCURRENTLY\u003c/code\u003e\u003c/a\u003e 完成。\u003c/p\u003e","id":"9.4.0-2003def672391fe9","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"工具命令 / 视图","section_path":["工具命令","视图"],"source_commits":[],"source_entry_id":"9.4.0/changes/068","source_hash":"497d477685b294aec55b34f60596113fa7883fbbe06b058340314bb88bb2605d","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.6.4","statement_hash":"ad06ce97fbc6907606c4afc6937431dfd8852476969ffea6229ebef48c38b44e","text":"允许刷新物化视图而不阻塞其他会话在此期间读取该视图（Kevin Grittner） 这通过 REFRESH MATERIALIZED VIEW CONCURRENTLY 完成。","title":"允许刷新物化视图而不阻塞其他会话在此期间读取该视图","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"2cbd6b47d7c55eeae1ab5ffc90279de4","html":"\u003cp\u003e允许视图被\u003ca href=\"/docs/9.4/sql-createview.html#SQL-CREATEVIEW-UPDATABLE-VIEWS\" title=\"可更新视图\"\u003e自动更新\u003c/a\u003e，即使它们包含一些不可更新的列（Dean Rasheed）\u003c/p\u003e\n\u003cp\u003e此前，存在表达式、字面量和函数调用等不可更新输出列会阻止自动更新。现在支持 \u003ccode\u003eINSERT\u003c/code\u003e、\u003ccode\u003eUPDATE\u003c/code\u003e 和 \u003ccode\u003eDELETE\u003c/code\u003e，只要它们不试图为任何不可更新列赋新值。\u003c/p\u003e","id":"9.4.0-24adc04b8951ecd8","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"工具命令 / 视图","section_path":["工具命令","视图"],"source_commits":[],"source_entry_id":"9.4.0/changes/069","source_hash":"d5a710154128f669c9b04c462c4077a74ec3306b3ca2396264a0156219a6eb43","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.6.4","statement_hash":"be8db8dce1437d209a447cf18b2ea113742f90cef7d066b2b4d77734e8805f75","text":"允许视图被自动更新，即使它们包含一些不可更新的列（Dean Rasheed） 此前，存在表达式、字面量和函数调用等不可更新输出列会阻止自动更新。现在支持 INSERT、UPDATE 和 DELETE，只要它们不试图为任何不可更新列赋新值。","title":"允许视图被自动更新，即使它们包含一些不可更新的列","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"da8bf77cc1d56ef46ca27c0d37bd7461","html":"\u003cp\u003e允许控制 \u003ccode\u003eINSERT\u003c/code\u003e 和 \u003ccode\u003eUPDATE\u003c/code\u003e 能否向自动可更新视图中添加不会出现在该视图中的行（Dean Rasheed）\u003c/p\u003e\n\u003cp\u003e这通过新的\u003ca href=\"/docs/9.4/sql-createview.html\" title=\"CREATE VIEW\"\u003e\u003cspan\u003eCREATE VIEW\u003c/span\u003e\u003c/a\u003e子句 \u003ccode\u003eWITH CHECK OPTION\u003c/code\u003e 控制。\u003c/p\u003e","id":"9.4.0-7b9247b2955feffe","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"工具命令 / 视图","section_path":["工具命令","视图"],"source_commits":[],"source_entry_id":"9.4.0/changes/070","source_hash":"377a2e8087930fe7d5ee74ff58686172d529721a7eb50aae913175b61a39fa85","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.6.4","statement_hash":"23b982d1697bbadc1b4cddaa29c840ccd31418d70ce30cc93b90f892ca68e316","text":"允许控制 INSERT 和 UPDATE 能否向自动可更新视图中添加不会出现在该视图中的行（Dean Rasheed） 这通过新的CREATE VIEW子句 WITH CHECK OPTION 控制。","title":"允许控制 INSERT 和 UPDATE 能否向自动可更新视图中添加不会出现在该视图中的行","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"23d9edbf02e80238bc2533231f095468","html":"\u003cp\u003e允许\u003ca href=\"/docs/9.4/rules-privileges.html\" title=\"38.5. 规则和权限\"\u003e安全屏障视图\u003c/a\u003e被自动更新（Dean Rasheed）\u003c/p\u003e","id":"9.4.0-1b16d424d83efd12","identity_text":"Allow security barrier views to be automatically updatable (Dean Rasheed)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"工具命令 / 视图","section_path":["工具命令","视图"],"source_commits":[],"source_entry_id":"9.4.0/changes/071","source_hash":"e704571f0bcd161e217cd16316a6a68340651d8f9bd49868b5077ae30191170d","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.6.4","statement_hash":"2f9e1ca4ca0895e4821e740ebeda3eee1186f8bdc1a0ac2fce43e321de1be31c","text":"允许安全屏障视图被自动更新（Dean Rasheed）","title":"允许安全屏障视图被自动更新","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"669db79a26348c7bd9347064f5cf481f","html":"\u003cp\u003e支持在\u003ca href=\"/docs/9.4/sql-createforeigntable.html\" title=\"CREATE FOREIGN TABLE\"\u003e外部表\u003c/a\u003e上使用触发器（Ronan Dunklau）\u003c/p\u003e","id":"9.4.0-960eea84a0e151e1","identity_text":"Support triggers on foreign tables (Ronan Dunklau)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"对象操作","section_path":["对象操作"],"source_commits":[],"source_entry_id":"9.4.0/changes/072","source_hash":"d2c7ff03f51295e4a3efa52dcaf4a6295f95c090751d02c9e38df91b4543f517","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.7","statement_hash":"b44cb199ca0699c8f4e03d817e217ce6e02ab7d887f9592b886e805dd2f91501","text":"支持在外部表上使用触发器（Ronan Dunklau）","title":"支持在外部表上使用触发器","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"b82355d6227386532ce26f9bb862d3bb","html":"\u003cp\u003e允许使用\u003ca href=\"/docs/9.4/sql-altertable.html\" title=\"ALTER TABLE\"\u003e\u003cspan\u003eALTER TABLE\u003c/span\u003e\u003c/a\u003e、\u003ca href=\"/docs/9.4/sql-alterindex.html\" title=\"ALTER INDEX\"\u003e\u003cspan\u003eALTER INDEX\u003c/span\u003e\u003c/a\u003e或\u003ca href=\"/docs/9.4/sql-altermaterializedview.html\" title=\"ALTER MATERIALIZED VIEW\"\u003e\u003cspan\u003eALTER MATERIALIZED VIEW\u003c/span\u003e\u003c/a\u003e的 \u003ccode\u003eALL IN TABLESPACE ... SET TABLESPACE\u003c/code\u003e 形式把成组对象从一个表空间移动到另一个表空间（Stephen Frost）\u003c/p\u003e","id":"9.4.0-bf6d33c168b608bc","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)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"对象操作","section_path":["对象操作"],"source_commits":[],"source_entry_id":"9.4.0/changes/073","source_hash":"76b4ede66829c88251988027ba962189bf4ecc9e493c4e796817b4a19aed2cf3","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.7","statement_hash":"d2eb9d6ad9d1e5278d9d02ba21455a2afe927523439679640f4873978cae0f7a","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 形式把成组对象从一个表空间移动到另一个表空间","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"102f396fcf51b83b46d090d33f5000e3","html":"\u003cp\u003e允许通过\u003ca href=\"/docs/9.4/sql-altertable.html\" title=\"ALTER TABLE\"\u003e\u003cspan\u003eALTER TABLE\u003c/span\u003e\u003c/a\u003e ... \u003ccode\u003eALTER CONSTRAINT\u003c/code\u003e 更改外键约束的可延迟性（Simon Riggs）\u003c/p\u003e","id":"9.4.0-9385d6b48eda273e","identity_text":"Allow changing foreign key constraint deferrability via SQL-ALTERTABLE ... ALTER CONSTRAINT (Simon Riggs)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"对象操作","section_path":["对象操作"],"source_commits":[],"source_entry_id":"9.4.0/changes/074","source_hash":"5ac9b76b9a4d62521c6f5f1d279a93a022b6eb2a1543d2b0b09726f045eac450","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.7","statement_hash":"6784c8b5f75f253134bda86416902b79415384f47c0927e32c6451afdd62126a","text":"允许通过ALTER TABLE ... ALTER CONSTRAINT 更改外键约束的可延迟性（Simon Riggs）","title":"允许通过ALTER TABLE ... ALTER CONSTRAINT 更改外键约束的可延迟性","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"6f9e043bb929a6be871c03c16472b21f","html":"\u003cp\u003e降低某些\u003ca href=\"/docs/9.4/sql-altertable.html\" title=\"ALTER TABLE\"\u003e\u003cspan\u003eALTER TABLE\u003c/span\u003e\u003c/a\u003e命令的锁强度（Simon Riggs、Noah Misch、Robert Haas）\u003c/p\u003e\n\u003cp\u003e具体而言，\u003ccode\u003eVALIDATE CONSTRAINT\u003c/code\u003e、\u003ccode\u003eCLUSTER ON\u003c/code\u003e、\u003ccode\u003eSET WITHOUT CLUSTER\u003c/code\u003e、\u003ccode\u003eALTER COLUMN SET STATISTICS\u003c/code\u003e、\u003ccode\u003eALTER COLUMN\u003c/code\u003e \u003ccode\u003eSET\u003c/code\u003e \u003ccode\u003e(attribute_option)\u003c/code\u003e、\u003ccode\u003eALTER COLUMN RESET\u003c/code\u003e \u003ccode\u003e(attribute_option)\u003c/code\u003e 不再需要 \u003ccode\u003eACCESS EXCLUSIVE\u003c/code\u003e 锁。\u003c/p\u003e","id":"9.4.0-518c5f5c9167628f","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"对象操作","section_path":["对象操作"],"source_commits":[],"source_entry_id":"9.4.0/changes/075","source_hash":"4641ae0c85fddf49587ac0fb791eaa9af70d8afa7934636817c1059eacc8e719","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.7","statement_hash":"11a395993757eab8954d263cc665ea67e20bf143574c653d9ace17cdf2ac01bd","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命令的锁强度","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"656ae68c7b645ad0691486c3e5a03726","html":"\u003cp\u003e允许在\u003ca href=\"/docs/9.4/sql-createtablespace.html\" title=\"CREATE TABLESPACE\"\u003e\u003cspan\u003eCREATE TABLESPACE\u003c/span\u003e\u003c/a\u003e中设置表空间选项（Vik Fearing）\u003c/p\u003e\n\u003cp\u003e以前这些选项只能通过\u003ca href=\"/docs/9.4/sql-altertablespace.html\" title=\"ALTER TABLESPACE\"\u003e\u003cspan\u003eALTER TABLESPACE\u003c/span\u003e\u003c/a\u003e设置。\u003c/p\u003e","id":"9.4.0-5035773425c2b4ae","identity_text":"Allow tablespace options to be set in SQL-CREATETABLESPACE (Vik Fearing) Formerly these options could only be set via SQL-ALTERTABLESPACE .","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"对象操作","section_path":["对象操作"],"source_commits":[],"source_entry_id":"9.4.0/changes/076","source_hash":"367a90f9e602ced97ee70863558a59433401f2b057f454566bf1648d523decc4","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.7","statement_hash":"bec92b9961609d0ee63938645c8d9ac28a414db2f99d10bc1e857450e6082e71","text":"允许在CREATE TABLESPACE中设置表空间选项（Vik Fearing） 以前这些选项只能通过ALTER TABLESPACE设置。","title":"允许在CREATE TABLESPACE中设置表空间选项","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"19027cae29d30e419385ff17deca37c9","html":"\u003cp\u003e允许\u003ca href=\"/docs/9.4/sql-createaggregate.html\" title=\"CREATE AGGREGATE\"\u003e\u003cspan\u003eCREATE AGGREGATE\u003c/span\u003e\u003c/a\u003e定义聚集转换状态数据的估计大小（Hadi Moshayedi）\u003c/p\u003e\n\u003cp\u003e恰当使用此功能可使规划器更好地估计聚集将使用多少内存。\u003c/p\u003e","id":"9.4.0-bdc5b8141dc110eb","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"对象操作","section_path":["对象操作"],"source_commits":[],"source_entry_id":"9.4.0/changes/077","source_hash":"5639f2a69bf04099101ade44971155792106cd455d057c42795fab017b025e15","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.7","statement_hash":"6ec29a5fdca0d8ae8ffd9e105e7eff665b63c1ed81dbaf40d3bd010a60ae9f61","text":"允许CREATE AGGREGATE定义聚集转换状态数据的估计大小（Hadi Moshayedi） 恰当使用此功能可使规划器更好地估计聚集将使用多少内存。","title":"允许CREATE AGGREGATE定义聚集转换状态数据的估计大小","variants":[],"version":"9.4.0"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"b4c7b4f0fa64d9f6b387f64b12587068","html":"\u003cp\u003e修复 \u003ccode\u003eDROP IF EXISTS\u003c/code\u003e，使其在更多情况下避免对不存在对象报错（Pavel Stehule、Dean Rasheed）\u003c/p\u003e","id":"9.4.0-89d1045a45cca52a","identity_text":"Fix DROP IF EXISTS to avoid errors for non-existent objects in more cases (Pavel Stehule, Dean Rasheed)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"对象操作","section_path":["对象操作"],"source_commits":[],"source_entry_id":"9.4.0/changes/078","source_hash":"a188a3e560301e02ba88c0d74eb2d4a5128fd91385d4dd2e496417b6a391b457","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.7","statement_hash":"53319bd3351df3b65320e9daf41f05b4035a541f7a269ebb705c349eece41d11","text":"修复 DROP IF EXISTS，使其在更多情况下避免对不存在对象报错（Pavel Stehule、Dean Rasheed）","title":"修复 DROP IF EXISTS，使其在更多情况下避免对不存在对象报错","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"93386f317df396a1a4f69d4bd0412a3a","html":"\u003cp\u003e改进系统关系的标识方式（Andres Freund、Robert Haas）\u003c/p\u003e\n\u003cp\u003e此前，一旦关系被移入 \u003ccode\u003epg_catalog\u003c/code\u003e 模式，就不能再修改或删除。\u003c/p\u003e","id":"9.4.0-f38cddff6b5b08ad","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"对象操作","section_path":["对象操作"],"source_commits":[],"source_entry_id":"9.4.0/changes/079","source_hash":"fa9c733000a61dc1a286e8a448a22fd343af28058d33e901b9e26163e6c9f62c","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.7","statement_hash":"235c1438346c2ac3b84d5388d63799e764b44723b0855aea2e813327f0dcbf9d","text":"改进系统关系的标识方式（Andres Freund、Robert Haas） 此前，一旦关系被移入 pg_catalog 模式，就不能再修改或删除。","title":"改进系统关系的标识方式","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"9e9dc90134e6ad791232823d94272e6b","html":"\u003cp\u003e完整实现 \u003ca href=\"/docs/9.4/datatype-geometric.html#DATATYPE-LINE\" title=\"8.8.2. 线\"\u003e\u003ccode\u003eline\u003c/code\u003e\u003c/a\u003e 数据类型（Peter Eisentraut）\u003c/p\u003e\n\u003cp\u003e线\u003cspan\u003e\u003cem\u003e段\u003c/em\u003e\u003c/span\u003e数据类型（\u003ca href=\"/docs/9.4/datatype-geometric.html#DATATYPE-LSEG\" title=\"8.8.3. 线段\"\u003e\u003ccode\u003elseg\u003c/code\u003e\u003c/a\u003e）一直得到完整支持。以前的 \u003ccode\u003eline\u003c/code\u003e 数据类型（只能通过编译时选项启用）与新实现在二进制和转储格式上不兼容。\u003c/p\u003e","id":"9.4.0-2fe57db9905f65c3","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"数据类型","section_path":["数据类型"],"source_commits":[],"source_entry_id":"9.4.0/changes/080","source_hash":"9254a43e407b84ae0f638886c04fde301f7b55576aea2a0287da1115645e24a4","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.8","statement_hash":"fe712fe8daab22bbd350e7b79bb6a62b8c4a87a20f156141dad2695b2c1a7d05","text":"完整实现 line 数据类型（Peter Eisentraut） 线段数据类型（lseg）一直得到完整支持。以前的 line 数据类型（只能通过编译时选项启用）与新实现在二进制和转储格式上不兼容。","title":"完整实现 line 数据类型","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1dc25c7b83268729510a062fea663287","html":"\u003cp\u003e新增 \u003ca href=\"/docs/9.4/datatype-pg-lsn.html\" title=\"8.19. pg_lsn 类型\"\u003e\u003ccode\u003epg_lsn\u003c/code\u003e\u003c/a\u003e 数据类型，用于表示 \u003cacronym\u003eWAL\u003c/acronym\u003e 日志序列号（\u003cacronym\u003eLSN\u003c/acronym\u003e）（Robert Haas、Michael Paquier）\u003c/p\u003e","id":"9.4.0-a59f891dfa449b74","identity_text":"Add pg_lsn data type to represent a WAL log sequence number (LSN) (Robert Haas, Michael Paquier)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"数据类型","section_path":["数据类型"],"source_commits":[],"source_entry_id":"9.4.0/changes/081","source_hash":"974c0b36aff142691c79e786f788923c188f0ff770fe02dcdea2c6afd15b6561","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.8","statement_hash":"05785e43a62d758e594f07bb22faae191d78dc2337bc0c8353d2f32eb1846207","text":"新增 pg_lsn 数据类型，用于表示 WAL 日志序列号（LSN）（Robert Haas、Michael Paquier）","title":"新增 pg_lsn 数据类型，用于表示 WAL 日志序列号（LSN）","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"d61fea5ee1b6ff8df755b16c69459e05","html":"\u003cp\u003e允许把单点\u003ca href=\"/docs/9.4/datatype-geometric.html#DATATYPE-POLYGON\" title=\"8.8.6. 多边形\"\u003e\u003ccode\u003epolygon\u003c/code\u003e\u003c/a\u003e转换为\u003ca href=\"/docs/9.4/datatype-geometric.html#DATATYPE-CIRCLE\" title=\"8.8.7. 圆\"\u003e\u003ccode\u003ecircle\u003c/code\u003e\u003c/a\u003e（Bruce Momjian）\u003c/p\u003e","id":"9.4.0-fdf7f503b17828f4","identity_text":"Allow single-point polygons to be converted to circles (Bruce Momjian)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"数据类型","section_path":["数据类型"],"source_commits":[],"source_entry_id":"9.4.0/changes/082","source_hash":"c757d7d34038f11ba75e89adf73554940437d4e49a7f0af10f78a3e41836d84f","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.8","statement_hash":"2fb35c8f002e764043840008316ec4fdc38b9682581ffd71f95fecdb9ac7584f","text":"允许把单点polygon转换为circle（Bruce Momjian）","title":"允许把单点polygon转换为circle","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"9748c3469a93c312976363e45183b404","html":"\u003cp\u003e支持随时间改变 UTC 偏移的时区缩写（Tom Lane）\u003c/p\u003e\n\u003cp\u003e此前，\u003cspan\u003ePostgreSQL\u003c/span\u003e 假定时区缩写（如 \u003ccode\u003eEST\u003c/code\u003e）关联的 UTC 偏移在任何特定区域设置的用法中永不改变。然而这一假设在现实世界中并不成立，因此引入了让区域缩写表示有时会变化的 UTC 偏移的能力。更新了时区缩写定义文件，在自 1970 年以来缩写的 UTC 偏移发生过变化的时区区域设置中使用此功能（依据 IANA 时区数据库）。在此类时区中，\u003cspan\u003ePostgreSQL\u003c/span\u003e 现在会根据给定日期为缩写关联正确的 UTC 偏移。\u003c/p\u003e","id":"9.4.0-92c22662927186de","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"数据类型","section_path":["数据类型"],"source_commits":[],"source_entry_id":"9.4.0/changes/083","source_hash":"c580fb854e262b8d63d2f5221441fa934e981569285b648e1029ac8863a4fba5","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.8","statement_hash":"a6501e3be8faaec1aef9006ff3436c99d826569caaba0e379a16ca0000209bff","text":"支持随时间改变 UTC 偏移的时区缩写（Tom Lane） 此前，PostgreSQL 假定时区缩写（如 EST）关联的 UTC 偏移在任何特定区域设置的用法中永不改变。然而这一假设在现实世界中并不成立，因此引入了让区域缩写表示有时会变化的 UTC 偏移的能力。更新了时区缩写定义文件，在自 1970 年以来缩写的 UTC 偏移发生过变化的时区区域设置中使用此功能（依据 IANA 时区数据库）。在此类时区中，PostgreSQL 现在会根据给定日期为缩写关联正确的 UTC 偏移。","title":"支持随时间改变 UTC 偏移的时区缩写","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"7f8bfa51bef64e75678000b0117362f4","html":"\u003cp\u003e在适当情况下，允许非 \u003cacronym\u003eISO\u003c/acronym\u003e 的 \u003ca href=\"/docs/9.4/datatype-datetime.html\" title=\"8.5. 日期/时间类型\"\u003e\u003ccode\u003etimestamp\u003c/code\u003e\u003c/a\u003e 和 \u003ccode\u003edate\u003c/code\u003e 字符串使用五位及以上年份（Bruce Momjian）\u003c/p\u003e","id":"9.4.0-0c698fdbb1891a43","identity_text":"Allow 5+ digit years for non-ISO timestamp and date strings, where appropriate (Bruce Momjian)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"数据类型","section_path":["数据类型"],"source_commits":[],"source_entry_id":"9.4.0/changes/084","source_hash":"cc16475f90c5d6ab73e41927cb986a8afb0d4ef0fd5189e96340e9495ac5264f","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.8","statement_hash":"ddad46c60eb37d3ed3bdec9cca426543d4c0bc74c6d5fb87367e7845f5c3f579","text":"在适当情况下，允许非 ISO 的 timestamp 和 date 字符串使用五位及以上年份（Bruce Momjian）","title":"在适当情况下，允许非 ISO 的 timestamp 和 date 字符串使用五位及以上年份","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"5768b1f3d23ee6552b64871f76a0e483","html":"\u003cp\u003e新增对 \u003ca href=\"/docs/9.4/datatype-datetime.html\" title=\"8.5. 日期/时间类型\"\u003e\u003ccode\u003einterval\u003c/code\u003e\u003c/a\u003e 值上溢/下溢的检查（Bruce Momjian）\u003c/p\u003e","id":"9.4.0-4aaa907294874d46","identity_text":"Add checks for overflow/underflow of interval values (Bruce Momjian)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"数据类型","section_path":["数据类型"],"source_commits":[],"source_entry_id":"9.4.0/changes/085","source_hash":"b4365baa794f1fd3d06626dacfc06ce2a71fe43df0f294c716c5a7812c51d3b5","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.8","statement_hash":"93fbb6837692daea7c91965307573906d656e399aedf5e9e6286eaf774e25b18","text":"新增对 interval 值上溢/下溢的检查（Bruce Momjian）","title":"新增对 interval 值上溢/下溢的检查","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"c005a1586946218de524236bea2f4df3","html":"\u003cp\u003e新增 \u003ca href=\"/docs/9.4/datatype-json.html\" title=\"8.14. JSON 类型\"\u003e\u003ccode\u003ejsonb\u003c/code\u003e\u003c/a\u003e，一种存储 \u003cacronym\u003eJSON\u003c/acronym\u003e 数据的功能更强、效率更高的数据类型（Oleg Bartunov、Teodor Sigaev、Alexander Korotkov、Peter Geoghegan、Andrew Dunstan）\u003c/p\u003e\n\u003cp\u003e这种新类型允许更快地访问 JSON 文档中的值，以及对 JSON 列更快、更有用的索引。\u003ccode\u003ejsonb\u003c/code\u003e 文档中的标量值以适当的标量 SQL 类型存储，JSON 文档结构经过预解析，而不是像原来的 \u003ccode\u003ejson\u003c/code\u003e 数据类型那样以文本形式存储。\u003c/p\u003e","id":"9.4.0-2768a7674154bb20","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"数据类型 / JSON","section_path":["数据类型","JSON"],"source_commits":[],"source_entry_id":"9.4.0/changes/086","source_hash":"36e84e7530cb26b93c487d6e6b560d89244d8ed6fc85861182e5dd6cde181285","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.8.3","statement_hash":"378a2dc1a3f3bca6bd3c7067d9e4d8415c69e0f08393c1a025ede56e19b8b85a","text":"新增 jsonb，一种存储 JSON 数据的功能更强、效率更高的数据类型（Oleg Bartunov、Teodor Sigaev、Alexander Korotkov、Peter Geoghegan、Andrew Dunstan） 这种新类型允许更快地访问 JSON 文档中的值，以及对 JSON 列更快、更有用的索引。jsonb 文档中的标量值以适当的标量 SQL 类型存储，JSON 文档结构经过预解析，而不是像原来的 json 数据类型那样以文本形式存储。","title":"新增 jsonb，一种存储 JSON 数据的功能更强、效率更高的数据类型","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"726b7d430fe61806cb4fc62c311677c8","html":"\u003cp\u003e新增 JSON 函数以允许构造任意复杂的 JSON 树（Andrew Dunstan、Laurence Rowe）\u003c/p\u003e\n\u003cp\u003e新函数包括 \u003ca href=\"/docs/9.4/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE\" title=\"表 9.43. JSON 处理函数\"\u003e\u003ccode\u003ejson_array_elements_text()\u003c/code\u003e\u003c/a\u003e、\u003ccode\u003ejson_build_array()\u003c/code\u003e、\u003ccode\u003ejson_object()\u003c/code\u003e、\u003ccode\u003ejson_object_agg()\u003c/code\u003e、\u003ccode\u003ejson_to_record()\u003c/code\u003e 和 \u003ccode\u003ejson_to_recordset()\u003c/code\u003e。\u003c/p\u003e","id":"9.4.0-2a68995d6b505f3d","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().","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"数据类型 / JSON","section_path":["数据类型","JSON"],"source_commits":[],"source_entry_id":"9.4.0/changes/087","source_hash":"890f10452b106fe0372fc419ad942a16bedfeb65c4ce5851a6b150f3afe45005","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.8.3","statement_hash":"d718b27459e1627d79f16424f00a40833dd7ca43367d29762b1f26a55a05e200","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 树","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"5817518db294ee5bc0e0b47bc8d8806d","html":"\u003cp\u003e新增 \u003ca href=\"/docs/9.4/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE\" title=\"表 9.43. JSON 处理函数\"\u003e\u003ccode\u003ejson_typeof()\u003c/code\u003e\u003c/a\u003e，返回 \u003ccode\u003ejson\u003c/code\u003e 值的数据类型（Andrew Tipton）\u003c/p\u003e","id":"9.4.0-c7f50bb37ad4010d","identity_text":"Add json_typeof() to return the data type of a json value (Andrew Tipton)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"数据类型 / JSON","section_path":["数据类型","JSON"],"source_commits":[],"source_entry_id":"9.4.0/changes/088","source_hash":"13af102b346402fc56743e030092b94b892e4d5cad880edb41a2e73707d1b5bc","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.8.3","statement_hash":"e97c941e5df2614e7f64f7ab1bbaa193a1de0581fd4b7164c7241069944d9d1b","text":"新增 json_typeof()，返回 json 值的数据类型（Andrew Tipton）","title":"新增 json_typeof()，返回 json 值的数据类型","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"d709c6056c83103d28a3039334834d01","html":"\u003cp\u003e新增 \u003ca href=\"/docs/9.4/functions-datetime.html#FUNCTIONS-DATETIME-DELAY\" title=\"9.9.5. 延时执行\"\u003e\u003ccode\u003epg_sleep_for(interval)\u003c/code\u003e\u003c/a\u003e 和 \u003ccode\u003epg_sleep_until(timestamp)\u003c/code\u003e，以更灵活地指定延迟（Vik Fearing、Julien Rouhaud）\u003c/p\u003e\n\u003cp\u003e现有的 \u003ccode\u003epg_sleep()\u003c/code\u003e 函数只支持以秒为单位指定延迟。\u003c/p\u003e","id":"9.4.0-38cd9779eaf08090","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/089","source_hash":"2a21916c6bd38f1ec71880cce65c5855642261e38dbb2090cae0e5117d86df5f","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9","statement_hash":"e1661f304ad7bcd7558b29cc53dcdba9532c7132f3a576db3848749a42b8bb67","text":"新增 pg_sleep_for(interval) 和 pg_sleep_until(timestamp)，以更灵活地指定延迟（Vik Fearing、Julien Rouhaud） 现有的 pg_sleep() 函数只支持以秒为单位指定延迟。","title":"新增 pg_sleep_for(interval) 和 pg_sleep_until(timestamp)，以更灵活地指定延迟","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"935fe7d88b3bbac1737cc21045fc4311","html":"\u003cp\u003e新增面向数组的 \u003ca href=\"/docs/9.4/functions-array.html#ARRAY-FUNCTIONS-TABLE\" title=\"表 9.46. 数组函数\"\u003e\u003ccode\u003ecardinality()\u003c/code\u003e\u003c/a\u003e 函数（Marko Tiikkaja）\u003c/p\u003e\n\u003cp\u003e它返回数组中元素的总数，对于没有元素的数组则返回零。\u003c/p\u003e","id":"9.4.0-62f133dca1528c9d","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/090","source_hash":"9f16a5fd671883875ad597b75c39f688a852444072b792ba13a0af8906004820","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9","statement_hash":"0ef70aeddf85a9e342508081e7ef65a616e260a53f869b15503fa5271987650b","text":"新增面向数组的 cardinality() 函数（Marko Tiikkaja） 它返回数组中元素的总数，对于没有元素的数组则返回零。","title":"新增面向数组的 cardinality() 函数","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"726bc75348444a9e6125a40cba7178eb","html":"\u003cp\u003e新增 \u003cacronym\u003eSQL\u003c/acronym\u003e 函数，允许在任意偏移处进行\u003ca href=\"/docs/9.4/lo-funcs.html\" title=\"32.4. 服务器端函数\"\u003e大对象读写\u003c/a\u003e（Pavel Stehule）\u003c/p\u003e","id":"9.4.0-c91c3c6b92c00225","identity_text":"Add SQL functions to allow large object reads/writes at arbitrary offsets (Pavel Stehule)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/091","source_hash":"b261dc64b4c360aef165296785bbcb778ef08055012f4ebdbbbd73cb63dc7bf7","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9","statement_hash":"856be3c1b2ee8781fe300f9ab531d4fc32ec0a651f7482d53be30667b6b5afd6","text":"新增 SQL 函数，允许在任意偏移处进行大对象读写（Pavel Stehule）","title":"新增 SQL 函数，允许在任意偏移处进行大对象读写","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"c3c41715155c7f51cc889501f21ad8df","html":"\u003cp\u003e允许 \u003ca href=\"/docs/9.4/functions-array.html#ARRAY-FUNCTIONS-TABLE\" title=\"表 9.46. 数组函数\"\u003e\u003ccode\u003eunnest()\u003c/code\u003e\u003c/a\u003e 接受多个参数，各参数分别展开后再水平串联（Andrew Gierth）\u003c/p\u003e","id":"9.4.0-07d942b3298a9310","identity_text":"Allow unnest() to take multiple arguments, which are individually unnested then horizontally concatenated (Andrew Gierth)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/092","source_hash":"917ef426e0d2e87323d35a8e3929f5061928fcf68a9d553b312dc4231a128c19","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9","statement_hash":"8cb1ddd53777d2cf53de21018c6121925a0aa52807e116df46ce20bc3f3bc350","text":"允许 unnest() 接受多个参数，各参数分别展开后再水平串联（Andrew Gierth）","title":"允许 unnest() 接受多个参数，各参数分别展开后再水平串联","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"fa991d84a0a82162f49e6c92f0463f40","html":"\u003cp\u003e新增从各个单独的值（而非字符串）构造 \u003ccode\u003etime\u003c/code\u003e、\u003ccode\u003edate\u003c/code\u003e、\u003ccode\u003etimestamp\u003c/code\u003e、\u003ccode\u003etimestamptz\u003c/code\u003e 和 \u003ccode\u003einterval\u003c/code\u003e 的函数（Pavel Stehule）\u003c/p\u003e\n\u003cp\u003e这些函数的名称以 \u003ccode\u003emake_\u003c/code\u003e 为前缀，例如 \u003ca href=\"/docs/9.4/functions-datetime.html#FUNCTIONS-DATETIME-TABLE\" title=\"表 9.28. 日期/时间函数\"\u003e\u003ccode\u003emake_date()\u003c/code\u003e\u003c/a\u003e。\u003c/p\u003e","id":"9.4.0-7f4342594b2293d6","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().","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/093","source_hash":"310d90df55038d61b781f20e74a90c47c541adee4405d6bf72c0c6fba80dee38","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9","statement_hash":"0f3cae11cdb490ceb56b99eaa6935483fb7684891dc1cde8e5db71a291af76c2","text":"新增从各个单独的值（而非字符串）构造 time、date、timestamp、timestamptz 和 interval 的函数（Pavel Stehule） 这些函数的名称以 make_ 为前缀，例如 make_date()。","title":"新增从各个单独的值（而非字符串）构造 time、date、timestamp、timestamptz 和 interval 的函数","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"3cd6a7314c12fa1fa024581b84fc491f","html":"\u003cp\u003e使 \u003ca href=\"/docs/9.4/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE\" title=\"表 9.21. 格式化函数\"\u003e\u003ccode\u003eto_char()\u003c/code\u003e\u003c/a\u003e 的 \u003ccode\u003eTZ\u003c/code\u003e 格式说明符对简单的数字时区偏移返回有用的值（Tom Lane）\u003c/p\u003e\n\u003cp\u003e此前，如果 \u003ccode\u003etimezone\u003c/code\u003e 被设置为类似 \u003ccode\u003e-4\u003c/code\u003e 的常量，\u003ccode\u003eto_char(CURRENT_TIMESTAMP, 'TZ')\u003c/code\u003e 会返回空字符串。\u003c/p\u003e","id":"9.4.0-8d2460daa45a5a11","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/094","source_hash":"4bba0708133968aa4a7b2609d8b98bbd146ed8fefeb980211f0799c19151a56a","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9","statement_hash":"8d242e7e4c06cd1528dca6fa1ab36c1ef7d2e2fce8dd5d0a8880f825300a7b16","text":"使 to_char() 的 TZ 格式说明符对简单的数字时区偏移返回有用的值（Tom Lane） 此前，如果 timezone 被设置为类似 -4 的常量，to_char(CURRENT_TIMESTAMP, 'TZ') 会返回空字符串。","title":"使 to_char() 的 TZ 格式说明符对简单的数字时区偏移返回有用的值","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"d4dad0b7f999759788441855cffff3bd","html":"\u003cp\u003e为 \u003ca href=\"/docs/9.4/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE\" title=\"表 9.21. 格式化函数\"\u003e\u003ccode\u003eto_char()\u003c/code\u003e\u003c/a\u003e 新增时区偏移格式说明符 \u003ccode\u003eOF\u003c/code\u003e（Bruce Momjian）\u003c/p\u003e","id":"9.4.0-4a755d5017bb4716","identity_text":"Add timezone offset format specifier OF to to_char() (Bruce Momjian)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/095","source_hash":"b7d5764353dd2cca1d37f3850ee608bf494e9bb54bb39c825d585db2af3150c2","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9","statement_hash":"5964a81fa556a76b60700a144c55628d425f5ded49087df1e2e332be6294e2eb","text":"为 to_char() 新增时区偏移格式说明符 OF（Bruce Momjian）","title":"为 to_char() 新增时区偏移格式说明符 OF","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"a2305918fb87e954160819f4933e399a","html":"\u003cp\u003e改进 \u003ca href=\"/docs/9.4/functions-math.html#FUNCTIONS-MATH-RANDOM-TABLE\" title=\"表 9.4. 随机函数\"\u003e\u003ccode\u003erandom()\u003c/code\u003e\u003c/a\u003e 所用的随机种子（Honza Horak）\u003c/p\u003e","id":"9.4.0-df4c69a9a548901f","identity_text":"Improve the random seed used for random() (Honza Horak)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/096","source_hash":"3786aab5337fc5a7177c2e1f03f7d2ec465ddc3106f58032a70aee0140348d0c","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9","statement_hash":"3fd9018b8c2ab8559b7080a75d0f2906e841c6c08e637b042791d9464c95d700","text":"改进 random() 所用的随机种子（Honza Horak）","title":"改进 random() 所用的随机种子","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"2158dcf319aa4a10e69a70073fa41b8b","html":"\u003cp\u003e收紧 \u003ca href=\"/docs/9.4/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"表 9.7. 其他字符串函数\"\u003e\u003ccode\u003echr(int)\u003c/code\u003e\u003c/a\u003e 中对 Unicode 码点的有效性检查（Tom Lane）\u003c/p\u003e\n\u003cp\u003e此函数现在只接受按照 RFC 3629 是有效 UTF8 字符的值。\u003c/p\u003e","id":"9.4.0-7ac40e795e5bae6a","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/097","source_hash":"0dd7b4ee7b25c564e707ceef10181b3857731654bc3d96d8cf241cdb4d765787","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9","statement_hash":"0a861a7837b92a9b576ecd7f327c390686b9d8472814be85c79f4e77c0778382","text":"收紧 chr(int) 中对 Unicode 码点的有效性检查（Tom Lane） 此函数现在只接受按照 RFC 3629 是有效 UTF8 字符的值。","title":"收紧 chr(int) 中对 Unicode 码点的有效性检查","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"4f0630f285d86fdd2cc1454179fd9476","html":"\u003cp\u003e新增在 \u003ccode\u003epg_class\u003c/code\u003e、\u003ccode\u003epg_proc\u003c/code\u003e、\u003ccode\u003epg_type\u003c/code\u003e 和 \u003ccode\u003epg_operator\u003c/code\u003e 中查找对象的函数，它们不会对不存在的对象产生错误（Yugo Nagata、Nozomi Anzai、Robert Haas）\u003c/p\u003e\n\u003cp\u003e例如，\u003ca href=\"/docs/9.4/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"表 9.59. 系统目录信息函数\"\u003e\u003ccode\u003eto_regclass()\u003c/code\u003e\u003c/a\u003e 类似于 \u003ccode\u003eregclass\u003c/code\u003e 输入函数在 \u003ccode\u003epg_class\u003c/code\u003e 中进行查找，但对不存在的对象返回 NULL 而不是失败。\u003c/p\u003e","id":"9.4.0-a9b9cfda01500899","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数 / 系统信息函数","section_path":["函数","系统信息函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/098","source_hash":"fa26831520f25348b02da7d57645fd3652e646565244a4876290440cc19f9509","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9.3","statement_hash":"6d01812773bebb24340d7c44af37f9bc553e6866c0b2fecadf0b343bf4c862cb","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 中查找对象的函数，它们不会对不存在的对象产生错误","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"8dd329313a930ba46939718fb2fb04e6","html":"\u003cp\u003e新增函数 \u003ca href=\"/docs/9.4/functions-admin.html#FUNCTIONS-ADMIN-DBLOCATION\" title=\"表 9.71. 数据库对象位置函数\"\u003e\u003ccode\u003epg_filenode_relation()\u003c/code\u003e\u003c/a\u003e，允许更高效地从文件节点查找关系名（Andres Freund）\u003c/p\u003e","id":"9.4.0-9b56e16802c10e9f","identity_text":"Add function pg_filenode_relation() to allow for more efficient lookup of relation names from filenodes (Andres Freund)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数 / 系统信息函数","section_path":["函数","系统信息函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/099","source_hash":"daf7f7cc7689f4c8bd51d524605809326aa856bc74358f2ec6fef976181ab8ac","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9.3","statement_hash":"88dbf851124bb0d562c2240bfa4f6124a841269d56200eb14abcfeebe88397e4","text":"新增函数 pg_filenode_relation()，允许更高效地从文件节点查找关系名（Andres Freund）","title":"新增函数 pg_filenode_relation()，允许更高效地从文件节点查找关系名","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"e107731cc8a47517e39123f11e1b588d","html":"\u003cp\u003e为 \u003ca href=\"/docs/9.4/infoschema-parameters.html\" title=\"34.32. parameters\"\u003e\u003ccode\u003einformation_schema.parameters\u003c/code\u003e\u003c/a\u003e 视图新增 \u003ccode\u003eparameter_default\u003c/code\u003e 列（Peter Eisentraut）\u003c/p\u003e","id":"9.4.0-98c94736ce2fab5a","identity_text":"Add parameter_default column to information_schema.parameters view (Peter Eisentraut)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数 / 系统信息函数","section_path":["函数","系统信息函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/100","source_hash":"4f85410358dc5036f211033aae25f652511eb9aebe1f2ca7b2afbf7d6e7d3103","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9.3","statement_hash":"f5f28d4b8ed323040c5cd4921b17eee8407407021f71c755f3cdf6de0406f0bd","text":"为 information_schema.parameters 视图新增 parameter_default 列（Peter Eisentraut）","title":"为 information_schema.parameters 视图新增 parameter_default 列","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"a1e247eed38fa99b63b18eb8d91cb212","html":"\u003cp\u003e使 \u003ca href=\"/docs/9.4/infoschema-schemata.html\" title=\"34.41. schemata\"\u003e\u003ccode\u003einformation_schema.schemata\u003c/code\u003e\u003c/a\u003e 显示所有可访问的模式（Peter Eisentraut）\u003c/p\u003e\n\u003cp\u003e此前它只显示当前用户拥有的模式。\u003c/p\u003e","id":"9.4.0-4cae88af306060f8","identity_text":"Make information_schema.schemata show all accessible schemas (Peter Eisentraut) Previously it only showed schemas owned by the current user.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数 / 系统信息函数","section_path":["函数","系统信息函数"],"source_commits":[],"source_entry_id":"9.4.0/changes/101","source_hash":"686f23b7c21ff1dd8caca72587f204a6ba98e36b87a3de585c69fceecb189a65","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9.3","statement_hash":"db1264117e55210780b87120b4b7f63aee5eca519e6044f4f9334135e87ac7e0","text":"使 information_schema.schemata 显示所有可访问的模式（Peter Eisentraut） 此前它只显示当前用户拥有的模式。","title":"使 information_schema.schemata 显示所有可访问的模式","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"6177fad2f9762cc4db8d015dee61f685","html":"\u003cp\u003e通过 \u003ca href=\"/docs/9.4/sql-expressions.html#SYNTAX-AGGREGATES\" title=\"4.2.7. 聚合表达式\"\u003e\u003ccode\u003eFILTER\u003c/code\u003e\u003c/a\u003e 子句控制哪些行被传递给聚集函数（David Fetter）\u003c/p\u003e","id":"9.4.0-6f4fa3474888e2dc","identity_text":"Add control over which rows are passed into aggregate functions via the FILTER clause (David Fetter)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数 / 聚合","section_path":["函数","聚合"],"source_commits":[],"source_entry_id":"9.4.0/changes/102","source_hash":"60b9327318a6520aca80ebe660e65e6abc23fe6c532ef55b691e3891891e97e5","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9.4","statement_hash":"dd418aa1c2469092a39057f243180fac6e3f75750ddf857c3dc262442e6f197b","text":"通过 FILTER 子句控制哪些行被传递给聚集函数（David Fetter）","title":"通过 FILTER 子句控制哪些行被传递给聚集函数","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"dcbb81a9b1f68b4d97be83e9af660b11","html":"\u003cp\u003e支持有序集（\u003ca href=\"/docs/9.4/sql-expressions.html#SYNTAX-AGGREGATES\" title=\"4.2.7. 聚合表达式\"\u003e\u003ccode\u003eWITHIN GROUP\u003c/code\u003e\u003c/a\u003e）聚集（Atri Sharma、Andrew Gierth、Tom Lane）\u003c/p\u003e","id":"9.4.0-189597fa868bfb30","identity_text":"Support ordered-set (WITHIN GROUP) aggregates (Atri Sharma, Andrew Gierth, Tom Lane)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数 / 聚合","section_path":["函数","聚合"],"source_commits":[],"source_entry_id":"9.4.0/changes/103","source_hash":"9583c24056287c698bcc4480a9c61cef012061647a0b09a342233b2b41e3d845","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9.4","statement_hash":"d7b18af36efee53af1759257991e07415c00ca38c342f1ead6fe4f5b6abb99d7","text":"支持有序集（WITHIN GROUP）聚集（Atri Sharma、Andrew Gierth、Tom Lane）","title":"支持有序集（WITHIN GROUP）聚集","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"24e9cacfc9e86d5ca6beb29023469e01","html":"\u003cp\u003e新增标准有序集聚集 \u003ca href=\"/docs/9.4/functions-aggregate.html#FUNCTIONS-ORDEREDSET-TABLE\" title=\"表 9.51. 有序集聚合函数\"\u003e\u003ccode\u003epercentile_cont()\u003c/code\u003e\u003c/a\u003e、\u003ccode\u003epercentile_disc()\u003c/code\u003e、\u003ccode\u003emode()\u003c/code\u003e、\u003ca href=\"/docs/9.4/functions-aggregate.html#FUNCTIONS-HYPOTHETICAL-TABLE\" title=\"表 9.52. 假想集聚合函数\"\u003e\u003ccode\u003erank()\u003c/code\u003e\u003c/a\u003e、\u003ccode\u003edense_rank()\u003c/code\u003e、\u003ccode\u003epercent_rank()\u003c/code\u003e 和 \u003ccode\u003ecume_dist()\u003c/code\u003e（Atri Sharma、Andrew Gierth）\u003c/p\u003e","id":"9.4.0-923329fe162c85e4","identity_text":"Add standard ordered-set aggregates percentile_cont(), percentile_disc(), mode(), rank(), dense_rank(), percent_rank(), and cume_dist() (Atri Sharma, Andrew Gierth)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数 / 聚合","section_path":["函数","聚合"],"source_commits":[],"source_entry_id":"9.4.0/changes/104","source_hash":"c48910e2a62311ca6cd36131b3d1d4988efff355c15927f4951c32a82dd2dfeb","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9.4","statement_hash":"8078b102eadca22282d992e4e5def7888fb3bed82b663959b4397ba7c28577eb","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()","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"a1fc4365390bf56a216e06968955c0d3","html":"\u003cp\u003e支持 \u003ca href=\"/docs/9.4/xfunc-sql.html#XFUNC-SQL-VARIADIC-FUNCTIONS\" title=\"35.4.5. 带有可变数量参数的SQL函数\"\u003e\u003ccode\u003eVARIADIC\u003c/code\u003e\u003c/a\u003e 聚集函数（Tom Lane）\u003c/p\u003e","id":"9.4.0-b170214d59335ac7","identity_text":"Support VARIADIC aggregate functions (Tom Lane)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数 / 聚合","section_path":["函数","聚合"],"source_commits":[],"source_entry_id":"9.4.0/changes/105","source_hash":"a9641bd6a27b6875f7cf377ab79b69507a10161bfc1b535436636028d26bc5f2","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9.4","statement_hash":"4f4e973ded498088a5a3326eaafb6d847cc5c637fd8ad0a41eee97c28bd10dfd","text":"支持 VARIADIC 聚集函数（Tom Lane）","title":"支持 VARIADIC 聚集函数","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"6f26b910f15b33678c1cd2d394fdc4ed","html":"\u003cp\u003e允许多态聚集具有非多态的状态数据类型（Tom Lane）\u003c/p\u003e\n\u003cp\u003e这使得可以在 SQL 中正确声明诸如内置聚集 \u003ccode\u003earray_agg()\u003c/code\u003e 之类的聚集。\u003c/p\u003e","id":"9.4.0-6c294005b3b33557","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().","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"函数 / 聚合","section_path":["函数","聚合"],"source_commits":[],"source_entry_id":"9.4.0/changes/106","source_hash":"bdeba48b403e511bbab90c813b9e61038244f66e369022620276cc1d97aa0242","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.9.4","statement_hash":"de7b59fba06391288a76993566b1c4f1cd8355b43b044ae846bde287e1f6597d","text":"允许多态聚集具有非多态的状态数据类型（Tom Lane） 这使得可以在 SQL 中正确声明诸如内置聚集 array_agg() 之类的聚集。","title":"允许多态聚集具有非多态的状态数据类型","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"4816a35550bbff8af48150c516329319","html":"\u003cp\u003e为 \u003ca href=\"/docs/9.4/plperl.html\" title=\"第 42 章 PL/Perl - Perl 过程语言\"\u003ePL/Perl\u003c/a\u003e 和 \u003ca href=\"/docs/9.4/pltcl.html\" title=\"第 41 章 PL/Tcl - Tcl 过程语言\"\u003ePL/Tcl\u003c/a\u003e 新增事件触发器支持（Dimitri Fontaine）\u003c/p\u003e","id":"9.4.0-5ab5f781a218ffa6","identity_text":"Add event trigger support to PL/Perl and PL/Tcl (Dimitri Fontaine)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器端语言","section_path":["服务器端语言"],"source_commits":[],"source_entry_id":"9.4.0/changes/107","source_hash":"e08aed9c505779446cf325f5bd00807a99e0a3cb693cf59d0b9d229d1141e329","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.10","statement_hash":"dc113e6122b921871494e2725b053be2c2d3e48d8ac1660397fef345a10eeb40","text":"为 PL/Perl 和 PL/Tcl 新增事件触发器支持（Dimitri Fontaine）","title":"为 PL/Perl 和 PL/Tcl 新增事件触发器支持","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"e762a68058360d59d5721a69eeaf5bbb","html":"\u003cp\u003e在 \u003ca href=\"/docs/9.4/plpython.html\" title=\"第 43 章 PL/Python - Python 过程语言\"\u003ePL/Python\u003c/a\u003e 中把 \u003ca href=\"/docs/9.4/datatype.html#DATATYPE-NUMERIC\" title=\"8.1. 数字类型\"\u003e\u003ccode\u003enumeric\u003c/code\u003e\u003c/a\u003e 值转换为 \u003ccode\u003edecimal\u003c/code\u003e（Szymon Guz、Ronan Dunklau）\u003c/p\u003e\n\u003cp\u003e此前此类值被转换为 Python 的 \u003ccode\u003efloat\u003c/code\u003e 值，有损失精度的风险。\u003c/p\u003e","id":"9.4.0-c5cf491b30a60161","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器端语言","section_path":["服务器端语言"],"source_commits":[],"source_entry_id":"9.4.0/changes/108","source_hash":"48afebfeb55b1e3b0bd937111c92a0e61954f5687bdc3e87db425cebb7a9a07b","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.10","statement_hash":"623038090b272e7bc328b36ddaf89708d321d47bfee14a41ba4928ad312bf47d","text":"在 PL/Python 中把 numeric 值转换为 decimal（Szymon Guz、Ronan Dunklau） 此前此类值被转换为 Python 的 float 值，有损失精度的风险。","title":"在 PL/Python 中把 numeric 值转换为 decimal","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"2cec84dbf0652d810fce1d3cc35a94d2","html":"\u003cp\u003e新增使用 \u003ca href=\"/docs/9.4/plpgsql-control-structures.html#PLPGSQL-CALL-STACK\" title=\"40.6.7. 获得执行位置信息\"\u003e\u003ccode\u003eGET DIAGNOSTICS\u003c/code\u003e\u003c/a\u003e 获取当前 PL/pgSQL 调用栈的能力（Pavel Stehule、Stephen Frost）\u003c/p\u003e","id":"9.4.0-2dd73da05944be8f","identity_text":"Add ability to retrieve the current PL/pgSQL call stack using GET DIAGNOSTICS (Pavel Stehule, Stephen Frost)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器端语言 / PL/pgSQL Server-Side Language","section_path":["服务器端语言","PL/pgSQL Server-Side Language"],"source_commits":[],"source_entry_id":"9.4.0/changes/109","source_hash":"53ccd4a5e0d04dbfa0ff6e92b534bb91d939b63fe8f667c4b62df13aafc4c8fb","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.10.3","statement_hash":"c48f8870a199c97bf56cd1bfdb8614896a3b5f8c247028c0688884cbd3712f7b","text":"新增使用 GET DIAGNOSTICS 获取当前 PL/pgSQL 调用栈的能力（Pavel Stehule、Stephen Frost）","title":"新增使用 GET DIAGNOSTICS 获取当前 PL/pgSQL 调用栈的能力","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"45c28ce89ca607f87adb9f52ae70c205","html":"\u003cp\u003e新增选项 \u003ca href=\"/docs/9.4/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-ONEROW\" title=\"40.5.3. 执行返回单行结果的查询\"\u003e\u003ccode\u003eprint_strict_params\u003c/code\u003e\u003c/a\u003e，用于显示传递给违反 \u003ccode\u003eSTRICT\u003c/code\u003e 约束的查询的参数（Marko Tiikkaja）\u003c/p\u003e","id":"9.4.0-5bf5f3b207c8ce42","identity_text":"Add option print_strict_params to display the parameters passed to a query that violated a STRICT constraint (Marko Tiikkaja)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器端语言 / PL/pgSQL Server-Side Language","section_path":["服务器端语言","PL/pgSQL Server-Side Language"],"source_commits":[],"source_entry_id":"9.4.0/changes/110","source_hash":"99716033948f92258af0920607e0c48f154850c50841ba149904c821b8a10cd9","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.10.3","statement_hash":"ba228339ad96bc46f66054f149ffb473c7b928d840ddefb4d6f1635946965810","text":"新增选项 print_strict_params，用于显示传递给违反 STRICT 约束的查询的参数（Marko Tiikkaja）","title":"新增选项 print_strict_params，用于显示传递给违反 STRICT 约束的查询的参数","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1d0f9a9e876b666a395aba71b0ed6817","html":"\u003cp\u003e新增变量 \u003ca href=\"/docs/9.4/plpgsql-development-tips.html#PLPGSQL-EXTRA-CHECKS\" title=\"40.11.2. 额外的编译时检查\"\u003e\u003ccode\u003eplpgsql.extra_warnings\u003c/code\u003e\u003c/a\u003e 和 \u003ccode\u003eplpgsql.extra_errors\u003c/code\u003e，用于启用额外的 PL/pgSQL 警告和错误（Marko Tiikkaja、Petr Jelinek）\u003c/p\u003e\n\u003cp\u003e目前只有关于被遮蔽变量的警告/错误可用。\u003c/p\u003e","id":"9.4.0-d9f9a822d1d71d9f","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"服务器端语言 / PL/pgSQL Server-Side Language","section_path":["服务器端语言","PL/pgSQL Server-Side Language"],"source_commits":[],"source_entry_id":"9.4.0/changes/111","source_hash":"d5d92b5dfeeb2cc36306118560e057d5760d4e0b2224c1fa9da067df29dd94f2","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.10.3","statement_hash":"75910dc1c9104a3e1556d876f76df7a3e85465cd16d0ce83531f6d8bc4cfb98c","text":"新增变量 plpgsql.extra_warnings 和 plpgsql.extra_errors，用于启用额外的 PL/pgSQL 警告和错误（Marko Tiikkaja、Petr Jelinek） 目前只有关于被遮蔽变量的警告/错误可用。","title":"新增变量 plpgsql.extra_warnings 和 plpgsql.extra_errors，用于启用额外的 PL/pgSQL 警告和错误","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"5c76850b8d79f7f5df153228dadd7a13","html":"\u003cp\u003e使 libpq 的 \u003ca href=\"/docs/9.4/libpq.html#LIBPQ-PQCONNDEFAULTS\"\u003e\u003ccode\u003ePQconndefaults()\u003c/code\u003e\u003c/a\u003e 函数忽略无效的服务文件（Steve Singer、Bruce Momjian）\u003c/p\u003e\n\u003cp\u003e此前它遇到不正确的服务文件时会返回 NULL。\u003c/p\u003e","id":"9.4.0-ec3c275eac2f6d1f","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"libpq","section_path":["libpq"],"source_commits":[],"source_entry_id":"9.4.0/changes/112","source_hash":"a9ed2919c0ce8b3ff624a04dcc6e7ed7e2a7111a11c30f4456118716464cb218","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.11","statement_hash":"1a036dcca0309f854b2524ec10645ac9c4af523dac6de47cc65bd83241fdb686","text":"使 libpq 的 PQconndefaults() 函数忽略无效的服务文件（Steve Singer、Bruce Momjian） 此前它遇到不正确的服务文件时会返回 NULL。","title":"使 libpq 的 PQconndefaults() 函数忽略无效的服务文件","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"dbd6204e46d640f177e8b106555f2cab","html":"\u003cp\u003elibpq 接受 \u003ccode\u003eTLSv1\u003c/code\u003e 之外的 \u003cacronym\u003eTLS\u003c/acronym\u003e 协议版本（Marko Kreen）\u003c/p\u003e","id":"9.4.0-f51e78bdec50711f","identity_text":"Accept TLS protocol versions beyond TLSv1 in libpq (Marko Kreen)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"libpq","section_path":["libpq"],"source_commits":[],"source_entry_id":"9.4.0/changes/113","source_hash":"2548e60062be3de70d979245e84d4155592c6f303f78158d9a9641200ac6d435","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.11","statement_hash":"eba7b3dfc058b3876a9bef47880928362c6e82d701b833fa5dd048ba497726c8","text":"libpq 接受 TLSv1 之外的 TLS 协议版本（Marko Kreen）","title":"libpq 接受 TLSv1 之外的 TLS 协议版本","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"da7647b4fd06ed23746eefb8c9fd5265","html":"\u003cp\u003e为\u003ca href=\"/docs/9.4/app-createuser.html\" title=\"createuser\"\u003e\u003cspan\u003e\u003cspan\u003ecreateuser\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e新增选项 \u003ccode\u003e-g\u003c/code\u003e，用于指定角色成员关系（Christopher Browne）\u003c/p\u003e","id":"9.4.0-9b4ad3f71dd9475b","identity_text":"Add APP-CREATEUSER option -g to specify role membership (Christopher Browne)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序","section_path":["客户端应用程序"],"source_commits":[],"source_entry_id":"9.4.0/changes/114","source_hash":"6585b0c87012d6d0e2820fdbe6c5b78cb393b75ac0cabb60c6cc28a97a3fcc32","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12","statement_hash":"d6770d5c68e130cfb20cf2bd6472564b43280aa56799399291b1a9644ca7091e","text":"为createuser新增选项 -g，用于指定角色成员关系（Christopher Browne）","title":"为createuser新增选项 -g，用于指定角色成员关系","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"3a4cd46ff8e39e481d7ddaeafa9f8a3e","html":"\u003cp\u003e为\u003ca href=\"/docs/9.4/app-vacuumdb.html\" title=\"vacuumdb\"\u003e\u003cspan\u003e\u003cspan\u003evacuumdb\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e新增选项 \u003ccode\u003e--analyze-in-stages\u003c/code\u003e，按粒度递增的分阶段方式进行分析（Peter Eisentraut）\u003c/p\u003e\n\u003cp\u003e这允许快速创建最基本的统计信息。\u003c/p\u003e","id":"9.4.0-433b1999e61bdfb0","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序","section_path":["客户端应用程序"],"source_commits":[],"source_entry_id":"9.4.0/changes/115","source_hash":"5d224faeea48800adad1e01513bf6d1c5c3f8d99a04519ef393a92ddd58210a8","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12","statement_hash":"09e874eb86f5df0ba36fa7fa0a8d72755ee03e01392cc263545422d54bb5d6cb","text":"为vacuumdb新增选项 --analyze-in-stages，按粒度递增的分阶段方式进行分析（Peter Eisentraut） 这允许快速创建最基本的统计信息。","title":"为vacuumdb新增选项 --analyze-in-stages，按粒度递增的分阶段方式进行分析","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"b73fe8f0c0b690a95bcfaf75ed759deb","html":"\u003cp\u003e使带选项 \u003ccode\u003e-n\u003c/code\u003e 的\u003ca href=\"/docs/9.4/app-pgresetxlog.html\" title=\"pg_resetxlog\"\u003e\u003cspan\u003e\u003cspan\u003epg_resetxlog\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e输出当前值和可能被更改的值（Rajeev Rastogi）\u003c/p\u003e","id":"9.4.0-bed2e46627b49229","identity_text":"Make APP-PGRESETXLOG with option -n output current and potentially changed values (Rajeev Rastogi)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序","section_path":["客户端应用程序"],"source_commits":[],"source_entry_id":"9.4.0/changes/116","source_hash":"376548e2fd68d1e088f841f0a4f514bf47e6e97b44f3e8db1e533a518a8686f2","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12","statement_hash":"1f1541149cd13c7ddbe3cd8fbc8b700c1e240d986c43131b0d91754a1d27930e","text":"使带选项 -n 的pg_resetxlog输出当前值和可能被更改的值（Rajeev Rastogi）","title":"使带选项 -n 的pg_resetxlog输出当前值和可能被更改的值","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"40d8101e99d02e6b398641ec55f83289","html":"\u003cp\u003e使\u003ca href=\"/docs/9.4/app-initdb.html\" title=\"initdb\"\u003e\u003cspan\u003einitdb\u003c/span\u003e\u003c/a\u003e对不正确的区域设置抛出错误，而不是静默回退到默认选择（Tom Lane）\u003c/p\u003e","id":"9.4.0-9a445001e7d6be4f","identity_text":"Make app-initdb throw error for incorrect locale settings, rather than silently falling back to a default choice (Tom Lane)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序","section_path":["客户端应用程序"],"source_commits":[],"source_entry_id":"9.4.0/changes/117","source_hash":"bdc9558e9aa5a9208bd65fb986063d58487cb26a1f836e74442502e3f3551a58","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12","statement_hash":"3c27a2620bef85a5aea7993f5eacfdb65c79a9c27c63df4efbd28eccc9633047","text":"使initdb对不正确的区域设置抛出错误，而不是静默回退到默认选择（Tom Lane）","title":"使initdb对不正确的区域设置抛出错误，而不是静默回退到默认选择","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"c3e3500ddf61007a05d9a47a2a030f80","html":"\u003cp\u003e使\u003ca href=\"/docs/9.4/app-pg-ctl.html\" title=\"pg_ctl\"\u003e\u003cspan\u003e\u003cspan\u003epg_ctl\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e在数据目录不可访问时返回退出码 \u003ccode\u003e4\u003c/code\u003e（Amit Kapila、Bruce Momjian）\u003c/p\u003e\n\u003cp\u003e这一行为更符合 Linux 标准库（\u003cacronym\u003eLSB\u003c/acronym\u003e）核心规范。\u003c/p\u003e","id":"9.4.0-f2c864a411d5cedb","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序","section_path":["客户端应用程序"],"source_commits":[],"source_entry_id":"9.4.0/changes/118","source_hash":"bcc5075e9da416fc1d14e764bfbbce2aae6c066c02cc89969f072b082a8cb508","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12","statement_hash":"112df9b281c958d58a0c1430bcc99a6a7e2462e2a6e4a33481870e847d1ecf4c","text":"使pg_ctl在数据目录不可访问时返回退出码 4（Amit Kapila、Bruce Momjian） 这一行为更符合 Linux 标准库（LSB）核心规范。","title":"使pg_ctl在数据目录不可访问时返回退出码 4","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"c46a06928cfddc097940c5a6074c6223","html":"\u003cp\u003e在 Windows 上，确保非绝对路径的 \u003ccode\u003e-D\u003c/code\u003e 规范相对于\u003ca href=\"/docs/9.4/app-pg-ctl.html\" title=\"pg_ctl\"\u003e\u003cspan\u003e\u003cspan\u003epg_ctl\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e的当前目录解释（Kumar Rajeev Rastogi）\u003c/p\u003e\n\u003cp\u003e此前它会相对于底层 Windows 服务启动时所在的目录解释。\u003c/p\u003e","id":"9.4.0-a3693a1f6b248939","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序","section_path":["客户端应用程序"],"source_commits":[],"source_entry_id":"9.4.0/changes/119","source_hash":"0cf533cb573b3332b4d5a28919739cd49e92ad95eee5ec29f94d0a054ffc6390","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12","statement_hash":"f5cd1f3178054ae99ecceca7099ec2ae50e3499b2bd8a4d32fd457598659cff3","text":"在 Windows 上，确保非绝对路径的 -D 规范相对于pg_ctl的当前目录解释（Kumar Rajeev Rastogi） 此前它会相对于底层 Windows 服务启动时所在的目录解释。","title":"在 Windows 上，确保非绝对路径的 -D 规范相对于pg_ctl的当前目录解释","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"ce57cd2c4b936299b6e8389dbadc1aad","html":"\u003cp\u003e允许在 \u003ca href=\"/docs/9.4/ecpg.html\" title=\"第 33 章 ECPG - C 中的嵌入式 SQL\"\u003eECPG\u003c/a\u003e 的 C 数组定义中使用 \u003ccode\u003esizeof()\u003c/code\u003e（Michael Meskes）\u003c/p\u003e","id":"9.4.0-c7876690467871c3","identity_text":"Allow sizeof() in ECPG C array definitions (Michael Meskes)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序","section_path":["客户端应用程序"],"source_commits":[],"source_entry_id":"9.4.0/changes/120","source_hash":"3888699411a672aec785a6d965773096acb154c347c1162ee13eca0751e69fe6","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12","statement_hash":"4fa6dd3d802d402f948f01c3c461a83cb5664bd9d1c4de0654ed03f4a201fb74","text":"允许在 ECPG 的 C 数组定义中使用 sizeof()（Michael Meskes）","title":"允许在 ECPG 的 C 数组定义中使用 sizeof()","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1d0ce44ff2749f2dce4298c51ed07d81","html":"\u003cp\u003e使 \u003ca href=\"/docs/9.4/ecpg.html\" title=\"第 33 章 ECPG - C 中的嵌入式 SQL\"\u003eECPG\u003c/a\u003e 正确处理 C 文本和 \u003cacronym\u003eSQL\u003c/acronym\u003e 文本中 C 风格注释的嵌套（Michael Meskes）\u003c/p\u003e","id":"9.4.0-7f21cf6b7e47c7fa","identity_text":"Make ECPG properly handle nesting of C-style comments in both C and SQL text (Michael Meskes)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序","section_path":["客户端应用程序"],"source_commits":[],"source_entry_id":"9.4.0/changes/121","source_hash":"375b083336c0a6301de69309b6ee0ade0d1c26dc9e25d62f4b361e3101358e03","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12","statement_hash":"eaaa39cd3a4ff936e760bbb08d715cf3bcff06a76e7a0490c95ee928a3f6603c","text":"使 ECPG 正确处理 C 文本和 SQL 文本中 C 风格注释的嵌套（Michael Meskes）","title":"使 ECPG 正确处理 C 文本和 SQL 文本中 C 风格注释的嵌套","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"46f7ac609536a370c7d817c95b607314","html":"\u003cp\u003e在禁用页脚时，抑制 \u003cspan\u003epsql\u003c/span\u003e \u003ca href=\"/docs/9.4/app-psql.html#APP-PSQL-META-COMMANDS\" title=\"元命令\"\u003e\u003ccode\u003eexpanded\u003c/code\u003e\u003c/a\u003e 模式下的 \u003cspan\u003e“\u003cspan\u003eNo rows\u003c/span\u003e”\u003c/span\u003e 输出（Bruce Momjian）\u003c/p\u003e","id":"9.4.0-e9ce87a38b5b9f50","identity_text":"Suppress No rows output in psql expanded mode when the footer is disabled (Bruce Momjian)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql","section_path":["客户端应用程序","psql"],"source_commits":[],"source_entry_id":"9.4.0/changes/122","source_hash":"2c473bf973b14031482f1ce48a9116b008826ca523cbfe0021892903f19a45e6","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3","statement_hash":"f4736fa47eb85288098e676216f87757c5ebe844ceeed4e44191c336b72860a2","text":"在禁用页脚时，抑制 psql expanded 模式下的 “No rows” 输出（Bruce Momjian）","title":"在禁用页脚时，抑制 psql expanded 模式下的 “No rows” 输出","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"73e6033af76526f63aba1abda64ce476","html":"\u003cp\u003e允许用 Control-C 中止在连接启动时挂起的 \u003cspan\u003epsql\u003c/span\u003e（Peter Eisentraut）\u003c/p\u003e","id":"9.4.0-7922db09ed61bec3","identity_text":"Allow Control-C to abort psql when it's hung at connection startup (Peter Eisentraut)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql","section_path":["客户端应用程序","psql"],"source_commits":[],"source_entry_id":"9.4.0/changes/123","source_hash":"a8f115b0a5c6fcd03b8b4295d8b6e9db8e6e733ba0ea0f51704b9b98326de40c","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3","statement_hash":"7f6b27a39f45f4897f28d887f8415c161294d7648a58c29e97b806f8f77bc6cd","text":"允许用 Control-C 中止在连接启动时挂起的 psql（Peter Eisentraut）","title":"允许用 Control-C 中止在连接启动时挂起的 psql","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"4b72da8c06ff65ed88b1704acb2a4960","html":"\u003cp\u003e使 \u003cspan\u003epsql\u003c/span\u003e 的 \u003ccode\u003e\\db+\u003c/code\u003e 显示表空间选项（Magnus Hagander）\u003c/p\u003e","id":"9.4.0-da439ab68b6f9b72","identity_text":"Make psql's \\db+ show tablespace options (Magnus Hagander)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql / 反斜线命令","section_path":["客户端应用程序","psql","反斜线命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/124","source_hash":"b584f89ee1f10028e45be5e2bea399b80fd182d536d125467d6acb00d6b28f7d","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3","statement_hash":"6d2a749551cce58abc4b5f9739aaf2e947f2fbfa8563458085b2939b52270b8a","text":"使 psql 的 \\db+ 显示表空间选项（Magnus Hagander）","title":"使 psql 的 \\db+ 显示表空间选项","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1365904ed6e0005d333b0a81f03aae4a","html":"\u003cp\u003e使 \u003ccode\u003e\\do+\u003c/code\u003e 显示实现操作符的函数（Marko Tiikkaja）\u003c/p\u003e","id":"9.4.0-dc964441a8a39334","identity_text":"Make \\do+ display the functions that implement the operators (Marko Tiikkaja)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql / 反斜线命令","section_path":["客户端应用程序","psql","反斜线命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/125","source_hash":"958d402039b8a8fb9dd7dc159a89f1a0410eb40f4c944ec921f2cfd212db79a1","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3","statement_hash":"83b0024a4b4be619f84bc0d6648b4b527f2a3bdfddfa1c104124521a8431382b","text":"使 \\do+ 显示实现操作符的函数（Marko Tiikkaja）","title":"使 \\do+ 显示实现操作符的函数","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"03550c13bbf11f1026a9bfdd59d1f12f","html":"\u003cp\u003e使 \u003ccode\u003e\\d+\u003c/code\u003e 只在表中存在 \u003ccode\u003eoid\u003c/code\u003e 列时才输出 \u003ccode\u003eOID\u003c/code\u003e 行（Bruce Momjian）\u003c/p\u003e\n\u003cp\u003e此前，\u003ccode\u003eoid\u003c/code\u003e 列的存在与否总是会被报告。\u003c/p\u003e","id":"9.4.0-f677bd4205233649","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql / 反斜线命令","section_path":["客户端应用程序","psql","反斜线命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/126","source_hash":"7ae7ff09d31945e92456e46d60a51350e5a499489ec3ae105155c4f4448436d0","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3","statement_hash":"41e0805f6976ca2c7f1046fa462df9650d04a8571684d4d8150db1808a0453cc","text":"使 \\d+ 只在表中存在 oid 列时才输出 OID 行（Bruce Momjian） 此前，oid 列的存在与否总是会被报告。","title":"使 \\d+ 只在表中存在 oid 列时才输出 OID 行","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"faecfb716d5607293c3a5d1b56e93e2c","html":"\u003cp\u003e使 \u003ccode\u003e\\d\u003c/code\u003e 显示被禁用的系统触发器（Bruce Momjian）\u003c/p\u003e\n\u003cp\u003e此前，如果禁用所有触发器，只有用户触发器会显示为已禁用。\u003c/p\u003e","id":"9.4.0-058eec158db6a29d","identity_text":"Make \\d show disabled system triggers (Bruce Momjian) Previously, if you disabled all triggers, only user triggers would show as disabled.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql / 反斜线命令","section_path":["客户端应用程序","psql","反斜线命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/127","source_hash":"3e2aebecbd3d409839d7b894cc05e7b0bb1b96562482491a62fc50e0e46fae07","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3","statement_hash":"af47571059e78f27d19ccf3cb4b1228cd08d58cbf33ca5c68f53607a94b0c6c7","text":"使 \\d 显示被禁用的系统触发器（Bruce Momjian） 此前，如果禁用所有触发器，只有用户触发器会显示为已禁用。","title":"使 \\d 显示被禁用的系统触发器","variants":[],"version":"9.4.0"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"794708e9f72b0dffdde3617ef9f7677c","html":"\u003cp\u003e修复 \u003ccode\u003e\\copy\u003c/code\u003e，不再要求 \u003ccode\u003estdin\u003c/code\u003e 与分号之间有空格（Etsuro Fujita）\u003c/p\u003e","id":"9.4.0-97f95d979b6b0a74","identity_text":"Fix \\copy to no longer require a space between stdin and a semicolon (Etsuro Fujita)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql / 反斜线命令","section_path":["客户端应用程序","psql","反斜线命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/128","source_hash":"288956515b15846f81df98467342f376a22ddbc23055e615beb996a61268965b","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3","statement_hash":"af229c8fc0402da6287a5d4112293eba3052d8a0e61d7f97bef98f0ce58053db","text":"修复 \\copy，不再要求 stdin 与分号之间有空格（Etsuro Fujita）","title":"修复 \\copy，不再要求 stdin 与分号之间有空格","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"8e33b43a4190e93ea6e9c40a4fedae29","html":"\u003cp\u003e在 \u003ccode\u003e\\copy\u003c/code\u003e 结束时输出行数，就像 \u003ccode\u003eCOPY\u003c/code\u003e 已经做的那样（Kumar Rajeev Rastogi）\u003c/p\u003e","id":"9.4.0-8ac51295bc6656ff","identity_text":"Output the row count at the end of \\copy, just like COPY already did (Kumar Rajeev Rastogi)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql / 反斜线命令","section_path":["客户端应用程序","psql","反斜线命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/129","source_hash":"88ee912f224cc71f444ae572cb6eeae88e8a7ec48e41c92532dd46d52f1f14ed","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3","statement_hash":"ec3bc3e9a1293cd8f53238b5bebb6a64d6bd8685c154aac1777e7fc63ed05b46","text":"在 \\copy 结束时输出行数，就像 COPY 已经做的那样（Kumar Rajeev Rastogi）","title":"在 \\copy 结束时输出行数，就像 COPY 已经做的那样","variants":[],"version":"9.4.0"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"cdb2b0e4444acbe4e9f96559332391e7","html":"\u003cp\u003e修复 \u003ccode\u003e\\conninfo\u003c/code\u003e，使其对使用 \u003ccode\u003ehostaddr\u003c/code\u003e 的连接显示服务器的 \u003cacronym\u003eIP\u003c/acronym\u003e 地址（Fujii Masao）\u003c/p\u003e\n\u003cp\u003e此前在这些情况下 \u003ccode\u003e\\conninfo\u003c/code\u003e 无法显示服务器的 \u003cacronym\u003eIP\u003c/acronym\u003e 地址。\u003c/p\u003e","id":"9.4.0-e63f0fc2a79273eb","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql / 反斜线命令","section_path":["客户端应用程序","psql","反斜线命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/130","source_hash":"c09fc3628ce96969a00c023e90060e29d7c2ec5ca264a0e1252eb5646cf06ebf","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3","statement_hash":"49280b93be7aacb59d46055aa17aa6b8a69f582f216ea26c03cfe7cbf533d30e","text":"修复 \\conninfo，使其对使用 hostaddr 的连接显示服务器的 IP 地址（Fujii Masao） 此前在这些情况下 \\conninfo 无法显示服务器的 IP 地址。","title":"修复 \\conninfo，使其对使用 hostaddr 的连接显示服务器的 IP 地址","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"af81750948346ede35ca77a204f04047","html":"\u003cp\u003e在 \u003ccode\u003e\\conninfo\u003c/code\u003e 中显示 \u003cacronym\u003eSSL\u003c/acronym\u003e 协议版本（Marko Kreen）\u003c/p\u003e","id":"9.4.0-f37c25d4714198e4","identity_text":"Show the SSL protocol version in \\conninfo (Marko Kreen)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql / 反斜线命令","section_path":["客户端应用程序","psql","反斜线命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/131","source_hash":"8c3ef281649a2f384ddb9a3c0752cc54fbbd3ad016ee13b2fda62dd4e8bdee91","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3","statement_hash":"fb5fd2a812c7af8b86e6343b455adcfce35057d2f7cbc8799f7dbf8af72300e1","text":"在 \\conninfo 中显示 SSL 协议版本（Marko Kreen）","title":"在 \\conninfo 中显示 SSL 协议版本","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"6ec05019af7e1c7969bee2ec905d2f84","html":"\u003cp\u003e为 \u003ccode\u003e\\pset\u003c/code\u003e 新增 Tab 补全（Pavel Stehule）\u003c/p\u003e","id":"9.4.0-c6920bee8df72aef","identity_text":"Add tab completion for \\pset (Pavel Stehule)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql / 反斜线命令","section_path":["客户端应用程序","psql","反斜线命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/132","source_hash":"d25113196db8555999ae859ef738c4d31aff151497ca6592945667770a1237a7","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3","statement_hash":"ec966efd890c226c24066fccb249420ecc80eab46248910906a407b6e1a6c432","text":"为 \\pset 新增 Tab 补全（Pavel Stehule）","title":"为 \\pset 新增 Tab 补全","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"e1e1ee3c3c6a9c4544a4e294ab683e54","html":"\u003cp\u003e允许不带参数的 \u003ccode\u003e\\pset\u003c/code\u003e 显示所有设置（Gilles Darold）\u003c/p\u003e","id":"9.4.0-b3e4c6964631b994","identity_text":"Allow \\pset with no arguments to show all settings (Gilles Darold)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql / 反斜线命令","section_path":["客户端应用程序","psql","反斜线命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/133","source_hash":"b1a24ae6faf2074b4227b6ab55eb243fb7f90f6b619993b124d0827218804557","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3","statement_hash":"19e1946904b6c331046be757a872035bcb7654fe5486b83e4557905be7e0d7fb","text":"允许不带参数的 \\pset 显示所有设置（Gilles Darold）","title":"允许不带参数的 \\pset 显示所有设置","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"63ac79e681cb13f688fa86c3bd18a82e","html":"\u003cp\u003e使 \u003ccode\u003e\\s\u003c/code\u003e 显示其写入的历史文件名时不转换为绝对路径（Tom Lane）\u003c/p\u003e\n\u003cp\u003e以前的代码试图把相对文件名转换为绝对路径用于显示，但经常出错。\u003c/p\u003e","id":"9.4.0-239348fe20645c81","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / psql / 反斜线命令","section_path":["客户端应用程序","psql","反斜线命令"],"source_commits":[],"source_entry_id":"9.4.0/changes/134","source_hash":"b8ed27c7382c3cab33ba7cb1a3fee6bf4a6d0330febb3ebd1ce1259e5edbbdf3","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.3.3","statement_hash":"ecf731fe9db2a18ffdacb7cf3a426acfe25cb01f8a3d00c54da684d998693568","text":"使 \\s 显示其写入的历史文件名时不转换为绝对路径（Tom Lane） 以前的代码试图把相对文件名转换为绝对路径用于显示，但经常出错。","title":"使 \\s 显示其写入的历史文件名时不转换为绝对路径","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"ce53f34c4aa74fd1d745fe5438747a0c","html":"\u003cp\u003e允许\u003ca href=\"/docs/9.4/app-pgrestore.html\" title=\"pg_restore\"\u003e\u003cspan\u003epg_restore\u003c/span\u003e\u003c/a\u003e的选项 \u003ccode\u003e-I\u003c/code\u003e、\u003ccode\u003e-P\u003c/code\u003e、\u003ccode\u003e-T\u003c/code\u003e 和 \u003ccode\u003e-n\u003c/code\u003e 被多次指定（Heikki Linnakangas）\u003c/p\u003e\n\u003cp\u003e这允许在一次操作中还原多个对象。\u003c/p\u003e","id":"9.4.0-826aa57b76ca9238","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / pg_dump","section_path":["客户端应用程序","pg_dump"],"source_commits":[],"source_entry_id":"9.4.0/changes/135","source_hash":"c4e320bd38c4170fe0b92cf304c01c246beb6cf23ec8029d12bfc90e067ecf72","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.4","statement_hash":"d6c0eb75212cadd36cf47c294f8475267de1302b06a1841cca6943d01cb4cba6","text":"允许pg_restore的选项 -I、-P、-T 和 -n 被多次指定（Heikki Linnakangas） 这允许在一次操作中还原多个对象。","title":"允许pg_restore的选项 -I、-P、-T 和 -n 被多次指定","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"59b35cbb49b3b7546837a78e218a9502","html":"\u003cp\u003e可选地为还原期间删除旧对象时发出的 \u003ccode\u003eDROP\u003c/code\u003e 命令添加 \u003ccode\u003eIF EXISTS\u003c/code\u003e 子句（Pavel Stehule）\u003c/p\u003e\n\u003cp\u003e此变更避免在删除旧对象时出现不必要的错误。\u003ca href=\"/docs/9.4/app-pgdump.html\" title=\"pg_dump\"\u003e\u003cspan\u003epg_dump\u003c/span\u003e\u003c/a\u003e、\u003ca href=\"/docs/9.4/app-pg-dumpall.html\" title=\"pg_dumpall\"\u003e\u003cspan\u003e\u003cspan\u003epg_dumpall\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e和\u003ca href=\"/docs/9.4/app-pgrestore.html\" title=\"pg_restore\"\u003e\u003cspan\u003epg_restore\u003c/span\u003e\u003c/a\u003e的新选项 \u003ccode\u003e--if-exists\u003c/code\u003e 只有在同时指定了 \u003ccode\u003e--clean\u003c/code\u003e 时才可用。\u003c/p\u003e","id":"9.4.0-c952cff2b7af579a","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / pg_dump","section_path":["客户端应用程序","pg_dump"],"source_commits":[],"source_entry_id":"9.4.0/changes/136","source_hash":"cb37e8e2bbab73b866e1f933d74b98f98390fbe17c5b39fe485a9485f0dda76b","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.4","statement_hash":"153f58280fdc2bd08a8b142e31d883e0c4c0c1979f6d39f541c61ee2c4138f8a","text":"可选地为还原期间删除旧对象时发出的 DROP 命令添加 IF EXISTS 子句（Pavel Stehule） 此变更避免在删除旧对象时出现不必要的错误。pg_dump、pg_dumpall和pg_restore的新选项 --if-exists 只有在同时指定了 --clean 时才可用。","title":"可选地为还原期间删除旧对象时发出的 DROP 命令添加 IF EXISTS 子句","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"6353b2d6511c5824d904e111a0d556d3","html":"\u003cp\u003e新增 \u003cspan\u003epg_basebackup\u003c/span\u003e 选项 \u003ccode\u003e--xlogdir\u003c/code\u003e，用于指定 \u003ccode\u003epg_xlog\u003c/code\u003e 目录的位置（Haribabu Kommi）\u003c/p\u003e","id":"9.4.0-cf2bf7574a7b2387","identity_text":"Add pg_basebackup option --xlogdir to specify the pg_xlog directory location (Haribabu Kommi)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / pg_basebackup","section_path":["客户端应用程序","pg_basebackup"],"source_commits":[],"source_entry_id":"9.4.0/changes/137","source_hash":"c2a86bf98707629f4c50ba109d04759543ff4a2c9dc4d64843b97078b5bef983","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.5","statement_hash":"226fec5a6e52220d309be06ce4c2037224930867c0bb9ce8b321ed0b1a910194","text":"新增 pg_basebackup 选项 --xlogdir，用于指定 pg_xlog 目录的位置（Haribabu Kommi）","title":"新增 pg_basebackup 选项 --xlogdir，用于指定 pg_xlog 目录的位置","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"a30dcc383ef86b5d1780761ff4353a4c","html":"\u003cp\u003e允许 \u003cspan\u003epg_basebackup\u003c/span\u003e 在备份副本中重定位表空间（Steeve Lennmark）\u003c/p\u003e\n\u003cp\u003e这对于在与主库相同的机器上使用 \u003cspan\u003epg_basebackup\u003c/span\u003e 特别有用。\u003c/p\u003e","id":"9.4.0-6d93eb452378ec43","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / pg_basebackup","section_path":["客户端应用程序","pg_basebackup"],"source_commits":[],"source_entry_id":"9.4.0/changes/138","source_hash":"7b6f2ddf220b1e71b3af2c3789da03df6f94121df137e3f0471cb8ccb8b3da56","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.5","statement_hash":"c41e6be3b91616ae0897470d7c79542294631df858213d39030b10f79b4badc7","text":"允许 pg_basebackup 在备份副本中重定位表空间（Steeve Lennmark） 这对于在与主库相同的机器上使用 pg_basebackup 特别有用。","title":"允许 pg_basebackup 在备份副本中重定位表空间","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"a313cb047d5b5e9682daf1720065dbea","html":"\u003cp\u003e允许对网络流基础备份进行限速（Antonin Houska）\u003c/p\u003e\n\u003cp\u003e这可以通过 \u003cspan\u003epg_basebackup\u003c/span\u003e 的 \u003ccode\u003e--max-rate\u003c/code\u003e 参数控制。\u003c/p\u003e","id":"9.4.0-595f5575faf9686c","identity_text":"Allow network-stream base backups to be throttled (Antonin Houska) This can be controlled with the pg_basebackup --max-rate parameter.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"客户端应用程序 / pg_basebackup","section_path":["客户端应用程序","pg_basebackup"],"source_commits":[],"source_entry_id":"9.4.0/changes/139","source_hash":"8a840a42695c8699b908a9d6419c871d3fb7445bcc51ebd1db77021aa7c35054","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.12.5","statement_hash":"ae2e25188d8d73478d544c190ba7794e510d4858e9a427bf49c67acb1d51caf2","text":"允许对网络流基础备份进行限速（Antonin Houska） 这可以通过 pg_basebackup 的 --max-rate 参数控制。","title":"允许对网络流基础备份进行限速","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"41e5ddb2d68757b9744c73533dce4115","html":"\u003cp\u003e改进元组冻结方式以保留取证信息（Robert Haas、Andres Freund）\u003c/p\u003e\n\u003cp\u003e此变更消除了尽快冻结元组的主要障碍。检查元组标志位的代码将需要修改。\u003c/p\u003e","id":"9.4.0-f26a3144f58e943d","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/140","source_hash":"8301370b4aec49594b27b5de738b23dfafb930cbde4dd0beb48a9fe0fcd110c2","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"d42ec4b7e939171c429a29744c6ef1cce3eb54d7d08ad2100fe88d981d41cfcb","text":"改进元组冻结方式以保留取证信息（Robert Haas、Andres Freund） 此变更消除了尽快冻结元组的主要障碍。检查元组标志位的代码将需要修改。","title":"改进元组冻结方式以保留取证信息","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"0df9187dc85a31455f8925fb47ecdde7","html":"\u003cp\u003e不再要求为标记有 \u003ca href=\"/docs/9.4/xfunc-c.html\" title=\"35.9. C 语言函数\"\u003e\u003ccode\u003ePG_FUNCTION_INFO_V1\u003c/code\u003e\u003c/a\u003e 宏的函数编写函数原型（Peter Eisentraut）\u003c/p\u003e\n\u003cp\u003e此变更消除了编写样板原型的需要。注意，\u003ccode\u003ePG_FUNCTION_INFO_V1\u003c/code\u003e 宏必须出现在相应函数定义之前，以避免编译器警告。\u003c/p\u003e","id":"9.4.0-01cea2f139ea908b","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/141","source_hash":"de66ad1c8d8f86acb5e29956e8d9fe2e9e14feeaebb267640afdebab1c49f855","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"3a42040c3e485f39241c90609a10b59be7876aa7e1db5529f9347b96410fc298","text":"不再要求为标记有 PG_FUNCTION_INFO_V1 宏的函数编写函数原型（Peter Eisentraut） 此变更消除了编写样板原型的需要。注意，PG_FUNCTION_INFO_V1 宏必须出现在相应函数定义之前，以避免编译器警告。","title":"不再要求为标记有 PG_FUNCTION_INFO_V1 宏的函数编写函数原型","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"d189dd2d3e14fc192b0cc17ac9a7a2a9","html":"\u003cp\u003e移除 \u003ccode\u003eSnapshotNow\u003c/code\u003e 和 \u003ccode\u003eHeapTupleSatisfiesNow()\u003c/code\u003e（Robert Haas）\u003c/p\u003e\n\u003cp\u003e所有现有用法都已切换到更合适的快照类型。目录扫描现在使用 \u003cacronym\u003eMVCC\u003c/acronym\u003e 快照。\u003c/p\u003e","id":"9.4.0-0389a2d9e4c34735","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/142","source_hash":"d38f3091810adf6716a7666f308193dc5cc45cc3e5eec8c9edcf05f795fce3a3","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"6a8dfe2d61e85a434a1b0def70d0a791e7765494a446a1168c60686e59081a06","text":"移除 SnapshotNow 和 HeapTupleSatisfiesNow()（Robert Haas） 所有现有用法都已切换到更合适的快照类型。目录扫描现在使用 MVCC 快照。","title":"移除 SnapshotNow 和 HeapTupleSatisfiesNow()","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"8fd8b8c641252fdaa95ee2909318df21","html":"\u003cp\u003e新增允许超过 1GB 内存分配的 \u003cacronym\u003eAPI\u003c/acronym\u003e（Noah Misch）\u003c/p\u003e","id":"9.4.0-6c61c88ea64fe6b7","identity_text":"Add an API to allow memory allocations over one gigabyte (Noah Misch)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/143","source_hash":"d6b5610287036e123d399ee7dd2d647cac4e594ce4006c6d03cf500ced50af53","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"8ed32cc397f1aa570c6a527d584632b534ba9abd468d3f25cd2b65ac5bc51d11","text":"新增允许超过 1GB 内存分配的 API（Noah Misch）","title":"新增允许超过 1GB 内存分配的 API","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"400ef4404472dba9876b7a0d8eea430e","html":"\u003cp\u003e新增 \u003ccode\u003epsprintf()\u003c/code\u003e 以简化字符串组合期间的内存分配（Peter Eisentraut、Tom Lane）\u003c/p\u003e","id":"9.4.0-e6a4ac22a9693081","identity_text":"Add psprintf() to simplify memory allocation during string composition (Peter Eisentraut, Tom Lane)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/144","source_hash":"72b96d37254c4b45c43a7deb48bd878f095cd92171e93a5900b5dde9957a2f09","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"74a119b3413e4c7c261c44970ff6b91d703595a566d61edddac9e7b4dbdb0dbb","text":"新增 psprintf() 以简化字符串组合期间的内存分配（Peter Eisentraut、Tom Lane）","title":"新增 psprintf() 以简化字符串组合期间的内存分配","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"736351d4cc18f725901a1624b9ef7f02","html":"\u003cp\u003e支持 \u003ccode\u003eprintf()\u003c/code\u003e 尺寸修饰符 \u003ccode\u003ez\u003c/code\u003e 以打印 \u003ccode\u003esize_t\u003c/code\u003e 值（Andres Freund）\u003c/p\u003e","id":"9.4.0-394c9b595548a037","identity_text":"Support printf() size modifier z to print size_t values (Andres Freund)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/145","source_hash":"41e574538fd3ff71b79301d773b330652efdc60585737cfdd85edf7a0df0695d","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"fd76a255dbd3968ae96616f559c847dab147f08cda38542f9e0d4e8c1dabbe0a","text":"支持 printf() 尺寸修饰符 z 以打印 size_t 值（Andres Freund）","title":"支持 printf() 尺寸修饰符 z 以打印 size_t 值","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"c6beb19949f5541519facc7541e4e2c3","html":"\u003cp\u003e更改 \u003ccode\u003eappendStringInfoVA()\u003c/code\u003e 的 \u003cacronym\u003eAPI\u003c/acronym\u003e 以更好地使用 \u003ccode\u003evsnprintf()\u003c/code\u003e（David Rowley、Tom Lane）\u003c/p\u003e","id":"9.4.0-83fb8ef001e9101d","identity_text":"Change API of appendStringInfoVA() to better use vsnprintf() (David Rowley, Tom Lane)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/146","source_hash":"2e36faa1d298ce3e28635a5aaed29ab2ee2d51fea6a411aea76489e4f17fad0f","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"ff45495f1fc634496ed7fd3e71df038c5d0a993e92b3d79434835bc86d292de3","text":"更改 appendStringInfoVA() 的 API 以更好地使用 vsnprintf()（David Rowley、Tom Lane）","title":"更改 appendStringInfoVA() 的 API 以更好地使用 vsnprintf()","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"c325f5a1a0524ee1a506bcd554ecbbc0","html":"\u003cp\u003e允许创建新类型的外部 TOAST 数据（Andres Freund）\u003c/p\u003e","id":"9.4.0-e0da4d3da3c6a392","identity_text":"Allow new types of external toast datums to be created (Andres Freund)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/147","source_hash":"b5061fdc7c7fe90eef1725c7fd0ba02330b8155ed163ae15a3fd958edc7ef564","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"0d5c880d26d5e5f379e60806995d3d19f4f07f0c0d12d7dc4a096f67bf83d0e3","text":"允许创建新类型的外部 TOAST 数据（Andres Freund）","title":"允许创建新类型的外部 TOAST 数据","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"e1675e3c409fe6c434f4539dd0fe2992","html":"\u003cp\u003e新增单读者、单写者的轻量级共享消息队列（Robert Haas）\u003c/p\u003e","id":"9.4.0-d825c210cbc3113d","identity_text":"Add single-reader, single-writer, lightweight shared message queue (Robert Haas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/148","source_hash":"da6448d493515358914d4e38968a9ad8808860ed0f1d6f7c57a3da1597760354","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"d6c15dd213a85db5bc19aef1d6b043a56ea88aa6930b32005cbe470c831bae6e","text":"新增单读者、单写者的轻量级共享消息队列（Robert Haas）","title":"新增单读者、单写者的轻量级共享消息队列","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"d79a3fa825c846f4675d699bbe3d6289","html":"\u003cp\u003e提高 x86_64 \u003cacronym\u003eCPU\u003c/acronym\u003e 上的自旋锁速度（Heikki Linnakangas）\u003c/p\u003e","id":"9.4.0-9828b758e88cbdab","identity_text":"Improve spinlock speed on x86_64 CPUs (Heikki Linnakangas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/149","source_hash":"8b05f23ccf0df709088d123c2ce8ad88b80ed6ba669c4bb8631036ed0eb3ccc8","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"31e5a8fa4b65af39fac53a0fc78a18615c1b733cafee68ba856b87433ab9d731","text":"提高 x86_64 CPU 上的自旋锁速度（Heikki Linnakangas）","title":"提高 x86_64 CPU 上的自旋锁速度","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"8b70c4ef0d00c0058ce98b0a17e3f0f2","html":"\u003cp\u003e移除对不再支持的平台 \u003cspan\u003eSINIX\u003c/span\u003e、\u003cspan\u003eSun3\u003c/span\u003e 和 \u003cspan\u003eNS32K\u003c/span\u003e 的自旋锁支持（Robert Haas）\u003c/p\u003e","id":"9.4.0-c028fa5aac24da0a","identity_text":"Remove spinlock support for unsupported platforms SINIX, Sun3, and NS32K (Robert Haas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/150","source_hash":"f987ac5c99c702f433462f60d615a95c2d93d8b5955ff2afb70c867e2867a7fd","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"a4bb1861699372be15f6f2dfb2d8490c0ccde12c098f6654ec1d516df1125b54","text":"移除对不再支持的平台 SINIX、Sun3 和 NS32K 的自旋锁支持（Robert Haas）","title":"移除对不再支持的平台 SINIX、Sun3 和 NS32K 的自旋锁支持","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"feaa8d9954950e295aa4836f600d12ee","html":"\u003cp\u003e移除 \u003cacronym\u003eIRIX\u003c/acronym\u003e 移植（Robert Haas）\u003c/p\u003e","id":"9.4.0-b1c0a54cc56f57b0","identity_text":"Remove IRIX port (Robert Haas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/151","source_hash":"e5cf75717c7e3a0cdc2379cde9a12d79ab67a72f8b0fa96a192c9db13422e781","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"8d232bcf48fe577ce9954a40d124f98c7f83175acda33ccf5ca87e690adbf40a","text":"移除 IRIX 移植（Robert Haas）","title":"移除 IRIX 移植","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1bd3d8b15cf4220df0ab965550df70e0","html":"\u003cp\u003e减少 \u003ccode\u003e--disable-spinlocks\u003c/code\u003e 构建所需的信号量数量（Robert Haas）\u003c/p\u003e","id":"9.4.0-1389e72487d45ebb","identity_text":"Reduce the number of semaphores required by --disable-spinlocks builds (Robert Haas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/152","source_hash":"22449cec98fb10275b79b7f0a884dbf206abf1300ede3933d7eeb93bbb78935c","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"aa1e21f9a50fcf0bf097688b19a1e3c1201bccc52cb2baf7b03c98c95f2a71b2","text":"减少 --disable-spinlocks 构建所需的信号量数量（Robert Haas）","title":"减少 --disable-spinlocks 构建所需的信号量数量","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1bd5ed950f07b7d72397e06348aec1cb","html":"\u003cp\u003e用 \u003cspan\u003ePerl\u003c/span\u003e 重写 \u003cspan\u003eduplicate_oids\u003c/span\u003e Unix shell 脚本（Andrew Dunstan）\u003c/p\u003e","id":"9.4.0-dc203866a086bf8b","identity_text":"Rewrite duplicate_oids Unix shell script in Perl (Andrew Dunstan)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/153","source_hash":"ea8810667429cd96fb6ae07fa282cad8747ff80db4cd9a6f5c52d56795e24aae","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"7ebea7fb47041eed5afca74ce6cfbda13c837da0a10119097cf55397b96cfb23","text":"用 Perl 重写 duplicate_oids Unix shell 脚本（Andrew Dunstan）","title":"用 Perl 重写 duplicate_oids Unix shell 脚本","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"008af33cc747666d5c3aefa21c53dff8","html":"\u003cp\u003e为客户端程序新增测试任何协议（\u003cacronym\u003eTAP\u003c/acronym\u003e）测试（Peter Eisentraut）\u003c/p\u003e\n\u003cp\u003e目前，只有当向 \u003cspan\u003econfigure\u003c/span\u003e 给定了 \u003ccode\u003e--enable-tap-tests\u003c/code\u003e 选项时，\u003ccode\u003emake check-world\u003c/code\u003e 才会运行这些测试。在未来的某个发行版中，这可能会成为默认行为。\u003c/p\u003e","id":"9.4.0-6ad946549743f927","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/154","source_hash":"c9ef2819411c96bc09ffd0783fb90f401c9c2e93e38dc5c851ad6a679df64bec","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"a96e8afbfc586d4c5d05dc7373551d72defc7d454aa02a8e024a1ad90309c167","text":"为客户端程序新增测试任何协议（TAP）测试（Peter Eisentraut） 目前，只有当向 configure 给定了 --enable-tap-tests 选项时，make check-world 才会运行这些测试。在未来的某个发行版中，这可能会成为默认行为。","title":"为客户端程序新增测试任何协议（TAP）测试","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"5746c19cb606f85d8f506039a0b203e8","html":"\u003cp\u003e新增 make 目标 \u003ccode\u003echeck-tests\u003c/code\u003e 和 \u003ccode\u003einstallcheck-tests\u003c/code\u003e，允许选择要运行的个别测试（Andrew Dunstan）\u003c/p\u003e","id":"9.4.0-08c10565ab46e471","identity_text":"Add make targets check-tests and installcheck-tests, which allow selection of individual tests to be run (Andrew Dunstan)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/155","source_hash":"0aaa05dcffd6fbd71680bfd55e5c6a35bace20dd576c70252c662174561037b2","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"164c60fafcf02b81cd0bd4bb1576ba450c0149f32500c7e458fb1aa122ef4583","text":"新增 make 目标 check-tests 和 installcheck-tests，允许选择要运行的个别测试（Andrew Dunstan）","title":"新增 make 目标 check-tests 和 installcheck-tests，允许选择要运行的个别测试","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"90df365d8198e073f73f9146e0fd552e","html":"\u003cp\u003e移除 \u003ccode\u003emaintainer-check\u003c/code\u003e makefile 规则（Peter Eisentraut）\u003c/p\u003e\n\u003cp\u003e默认构建规则现在包含所有以前可选的测试。\u003c/p\u003e","id":"9.4.0-bcd21292797a8696","identity_text":"Remove maintainer-check makefile rule (Peter Eisentraut) The default build rules now include all the formerly-optional tests.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/156","source_hash":"83b10a97c3417fe93af9a31c8b9fe70b6a39001bc501cc6a31ad3c0f5975e943","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"517aaca3f7e5491b96724901937ca2e8bb04b3cc986a7a606ac204c47f649432","text":"移除 maintainer-check makefile 规则（Peter Eisentraut） 默认构建规则现在包含所有以前可选的测试。","title":"移除 maintainer-check makefile 规则","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"92232cd65c0ba16331e6d8222bf59c05","html":"\u003cp\u003e改进 \u003cacronym\u003ePGXS\u003c/acronym\u003e 模块的 \u003ccode\u003eVPATH\u003c/code\u003e 构建支持（Cédric Villemain、Andrew Dunstan、Peter Eisentraut）\u003c/p\u003e","id":"9.4.0-995ebbed161af4b0","identity_text":"Improve support for VPATH builds of PGXS modules (Cédric Villemain, Andrew Dunstan, Peter Eisentraut)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/157","source_hash":"ce3f863412d44f4309679c3707e60eecd56e523b27f51127e1da950f7938ccb8","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"f51de78fd771903b0fad4b03b89e5d7629a36b88ead619e381d169ba509bf3bd","text":"改进 PGXS 模块的 VPATH 构建支持（Cédric Villemain、Andrew Dunstan、Peter Eisentraut）","title":"改进 PGXS 模块的 VPATH 构建支持","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"bed25fcf4317ecfa821c187663481c1f","html":"\u003cp\u003e升级到 Autoconf 2.69（Peter Eisentraut）\u003c/p\u003e","id":"9.4.0-93fab0b25f704c66","identity_text":"Upgrade to Autoconf 2.69 (Peter Eisentraut)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/158","source_hash":"1cf67356f0013dfe55a7c0272aa2ed69322a2789baf05caa908ddf57034bd83a","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"256724dd2ca00d8705104402e3244a47b9649f813c884a939237a999d1249144","text":"升级到 Autoconf 2.69（Peter Eisentraut）","title":"升级到 Autoconf 2.69","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1ffe78bcf8a3f704c2aa86d64bbdbe28","html":"\u003cp\u003e新增一个 \u003cspan\u003econfigure\u003c/span\u003e 标志，用于向 \u003ccode\u003ePG_VERSION\u003c/code\u003e 字符串追加自定义文本（Oskari Saarenmaa）\u003c/p\u003e\n\u003cp\u003e这对于构建自定义二进制文件的打包者很有用。\u003c/p\u003e","id":"9.4.0-d1cbedac650bd567","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/159","source_hash":"e04f5295bb375df211379e45303174ae1f3a84da8a205385676f14c931ad564e","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"caa324861fbd49290959bb62e59439ba67547a65739241e657b26a4c36e2ed39","text":"新增一个 configure 标志，用于向 PG_VERSION 字符串追加自定义文本（Oskari Saarenmaa） 这对于构建自定义二进制文件的打包者很有用。","title":"新增一个 configure 标志，用于向 PG_VERSION 字符串追加自定义文本","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"4ddd94e2a4015153c99f400096bcb151","html":"\u003cp\u003e改进 DocBook \u003cacronym\u003eXML\u003c/acronym\u003e 有效性（Peter Eisentraut）\u003c/p\u003e","id":"9.4.0-97d3629d57f20c41","identity_text":"Improve DocBook XML validity (Peter Eisentraut)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/160","source_hash":"7e7c94d8127e742644a8e0cc9b88eb670b7c8380f883f3929e91fa6702aa853d","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"afd3eda8108ead0b4d8f52a925e084ba979def1297a1acbcdf078b7cc176501c","text":"改进 DocBook XML 有效性（Peter Eisentraut）","title":"改进 DocBook XML 有效性","variants":[],"version":"9.4.0"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"942353e80ef1374be348926465e9ef87","html":"\u003cp\u003e修复 \u003cspan\u003eCoverity\u003c/span\u003e 扫描器报告的各种轻微安全和健全性问题（Stephen Frost）\u003c/p\u003e","id":"9.4.0-9d917229f8b65ed9","identity_text":"Fix various minor security and sanity issues reported by the Coverity scanner (Stephen Frost)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/161","source_hash":"ecc1d5185f77b1f76d40df3991e9c0ad13bc35c62c989c3f3b626de0f39ba3d4","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"f1cb81aa88263bcaf08b17bb20ca34494fcbae0b35a153d71e0ca2bad7a71279","text":"修复 Coverity 扫描器报告的各种轻微安全和健全性问题（Stephen Frost）","title":"修复 Coverity 扫描器报告的各种轻微安全和健全性问题","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"63652e238e3a168b57eec2fd846f9f94","html":"\u003cp\u003e改进用 \u003cspan\u003eValgrind\u003c/span\u003e 测试 \u003cspan\u003ePostgreSQL\u003c/span\u003e 时对无效内存使用的检测（Noah Misch）\u003c/p\u003e","id":"9.4.0-4126cf297c689b7c","identity_text":"Improve detection of invalid memory usage when testing PostgreSQL with Valgrind (Noah Misch)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/162","source_hash":"3d16f10a699957060a8ec981a2f8b9e4b191917c89cfbf5f4c9df6e0ef8c35e5","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"4c6e63f20ea633ab208abc4f1e20724484b33b21f3c889c6681f1a7b9d53276e","text":"改进用 Valgrind 测试 PostgreSQL 时对无效内存使用的检测（Noah Misch）","title":"改进用 Valgrind 测试 PostgreSQL 时对无效内存使用的检测","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"b486c9e458f192aaba74906074dbd66c","html":"\u003cp\u003e改进 \u003cspan\u003eEmacs\u003c/span\u003e 示例配置文件 \u003ccode\u003eemacs.samples\u003c/code\u003e（Peter Eisentraut）\u003c/p\u003e\n\u003cp\u003e还向源代码树顶层添加了 \u003ccode\u003e.dir-locals.el\u003c/code\u003e。\u003c/p\u003e","id":"9.4.0-c3667d80b4b88e68","identity_text":"Improve sample Emacs configuration file emacs.samples (Peter Eisentraut) Also add .dir-locals.el to the top of the source tree.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/163","source_hash":"59754c4dd5fb97de06ae7f8e36fc60f0105d8b4403e409540206387907c786b1","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"c24b128f49231a6ec7b86b26e3655994e05f38f473cc90ae7ea2204d233c8ac1","text":"改进 Emacs 示例配置文件 emacs.samples（Peter Eisentraut） 还向源代码树顶层添加了 .dir-locals.el。","title":"改进 Emacs 示例配置文件 emacs.samples","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"06e0ececa73225a288605116d1692979","html":"\u003cp\u003e允许 \u003cspan\u003epgindent\u003c/span\u003e 接受命令行形式的 typedef 列表（Bruce Momjian）\u003c/p\u003e","id":"9.4.0-46ff247f450f0b12","identity_text":"Allow pgindent to accept a command-line list of typedefs (Bruce Momjian)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/164","source_hash":"5d78b46b0bab060ad37454e9fa954a43c0ec5515c37c235c6600743051026483","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"f86aef4997b626bb388f230d4d89d49a86a79972888abb5522461f52ab4050d9","text":"允许 pgindent 接受命令行形式的 typedef 列表（Bruce Momjian）","title":"允许 pgindent 接受命令行形式的 typedef 列表","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"ce19a09f858251214145f55c26893972","html":"\u003cp\u003e使 \u003cspan\u003epgindent\u003c/span\u003e 更智能地处理预处理器条件语句周围的空行（Bruce Momjian）\u003c/p\u003e","id":"9.4.0-b846a406cdac53f0","identity_text":"Make pgindent smarter about blank lines around preprocessor conditionals (Bruce Momjian)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/165","source_hash":"e0c02b175eca143cb6e86035660102d509709f406c3382b274f9882d771709a0","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"fa0533e41210beee00c000bb477c556518df68d321a0141b6af1aacc84009fc2","text":"使 pgindent 更智能地处理预处理器条件语句周围的空行（Bruce Momjian）","title":"使 pgindent 更智能地处理预处理器条件语句周围的空行","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1ab4f2b891fe0ef0ffad10112d64247d","html":"\u003cp\u003e避免在 \u003cspan\u003eCygwin\u003c/span\u003e 和 \u003cspan\u003eMingw\u003c/span\u003e 构建中大多数对 \u003ccode\u003edlltool\u003c/code\u003e 的使用（Marco Atzeri、Hiroshi Inoue）\u003c/p\u003e","id":"9.4.0-5e0ee4e1c3cb9983","identity_text":"Avoid most uses of dlltool in Cygwin and Mingw builds (Marco Atzeri, Hiroshi Inoue)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/166","source_hash":"03d15c7b6f5538cbe387e8867593c6c3c0ce6f2fdd14391813e7f742617896c7","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"04d5dfdf9ca7b8dfcfec591057dda00de1f3506089bd8a91f089fd9225ba1081","text":"避免在 Cygwin 和 Mingw 构建中大多数对 dlltool 的使用（Marco Atzeri、Hiroshi Inoue）","title":"避免在 Cygwin 和 Mingw 构建中大多数对 dlltool 的使用","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"e8fbe484044a5e674bc0b52c96c91254","html":"\u003cp\u003e支持在 \u003cacronym\u003eMSVC\u003c/acronym\u003e（Windows）构建中进行仅客户端安装（MauMau）\u003c/p\u003e","id":"9.4.0-e0f2421d086aeb32","identity_text":"Support client-only installs in MSVC (Windows) builds (MauMau)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":[],"source_entry_id":"9.4.0/changes/167","source_hash":"78cf83e8be833e34b76de4b6db735b43677aa417c8fe38a8791a64264ce5a473","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.13","statement_hash":"cf147223738b5705f489c27e07b80e8a51b6cd11beee69b8e5b30dc64847ff4c","text":"支持在 MSVC（Windows）构建中进行仅客户端安装（MauMau）","title":"支持在 MSVC（Windows）构建中进行仅客户端安装","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"51510c99485eb0196f042157da2e72de","html":"\u003cp\u003e新增\u003ca href=\"/docs/9.4/pgprewarm.html\" title=\"F.27. pg_prewarm — 将关系数据预热到缓冲区缓存中\"\u003epg_prewarm\u003c/a\u003e扩展，用于在服务器启动时把关系数据预加载到共享缓冲区缓存中（Robert Haas）\u003c/p\u003e\n\u003cp\u003e这使系统能更快达到完全运行性能。\u003c/p\u003e","id":"9.4.0-d1972862d179d756","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/168","source_hash":"410ebd020dc501248d592db3927927f1620e4651e4fd494498eee3fabdd5e9a5","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"3bfd012227b567d8c83da5fee6ecd336007f34eafcb50bf0d1febc6190f53de8","text":"新增pg_prewarm扩展，用于在服务器启动时把关系数据预加载到共享缓冲区缓存中（Robert Haas） 这使系统能更快达到完全运行性能。","title":"新增pg_prewarm扩展，用于在服务器启动时把关系数据预加载到共享缓冲区缓存中","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"7a2cbe9c1f0655b6c78fcf2321466922","html":"\u003cp\u003e为\u003ca href=\"/docs/9.4/pgcrypto.html\" title=\"F.25. pgcrypto\"\u003epgcrypto\u003c/a\u003e新增 \u003cacronym\u003eUUID\u003c/acronym\u003e 随机数生成器 \u003ccode\u003egen_random_uuid()\u003c/code\u003e（Oskari Saarenmaa）\u003c/p\u003e\n\u003cp\u003e这允许创建版本 4 的 \u003cacronym\u003eUUID\u003c/acronym\u003e，而无需安装\u003ca href=\"/docs/9.4/uuid-ossp.html\" title=\"F.44. uuid-ossp\"\u003euuid-ossp\u003c/a\u003e。\u003c/p\u003e","id":"9.4.0-78e933ba66ea95b3","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 .","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/169","source_hash":"b1914e45babe57b0e2df17d2528867cd8f758971ed3e0af58a03a941f2819c37","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"e3586d0954d1fa40f777b7eddbaa2773ef44c6aac2c8c8311b950d2befff13b7","text":"为pgcrypto新增 UUID 随机数生成器 gen_random_uuid()（Oskari Saarenmaa） 这允许创建版本 4 的 UUID，而无需安装uuid-ossp。","title":"为pgcrypto新增 UUID 随机数生成器 gen_random_uuid()","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"ce9507960912f04f45d77d6a2a36d451","html":"\u003cp\u003e允许\u003ca href=\"/docs/9.4/uuid-ossp.html\" title=\"F.44. uuid-ossp\"\u003euuid-ossp\u003c/a\u003e使用 \u003cspan\u003eBSD\u003c/span\u003e 或 \u003cspan\u003ee2fsprogs\u003c/span\u003e UUID 库工作，而不仅仅是 \u003cspan\u003eOSSP\u003c/span\u003e UUID 库（Matteo Beccati）\u003c/p\u003e\n\u003cp\u003e这改进了 \u003cspan\u003euuid-ossp\u003c/span\u003e 模块的可移植性，因为它不再必须依赖日益过时的 OSSP 库。该模块的名称现在已名不副实，但我们不会更改它。\u003c/p\u003e","id":"9.4.0-8d0a2c961e52c1fa","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/170","source_hash":"71efa8c841eb9e4144bc39b4196e64dcbd5e754c862e7ab216d21a799c78337d","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"721e7372eb79d5bd1f388fa52bd4af40783dd31ebeaa2e7b80ca8ee5f7a8daca","text":"允许uuid-ossp使用 BSD 或 e2fsprogs UUID 库工作，而不仅仅是 OSSP UUID 库（Matteo Beccati） 这改进了 uuid-ossp 模块的可移植性，因为它不再必须依赖日益过时的 OSSP 库。该模块的名称现在已名不副实，但我们不会更改它。","title":"允许uuid-ossp使用 BSD 或 e2fsprogs UUID 库工作，而不仅仅是 OSSP UUID 库","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"a9db13fdceca6d3a98983cb5230975ce","html":"\u003cp\u003e为\u003ca href=\"/docs/9.4/auto-explain.html\" title=\"F.3. auto_explain\"\u003eauto_explain\u003c/a\u003e新增包含触发器执行时间的选项（Horiguchi Kyotaro）\u003c/p\u003e","id":"9.4.0-08e65b5784cf35da","identity_text":"Add option to auto-explain to include trigger execution time (Horiguchi Kyotaro)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/171","source_hash":"7a3cde0fd0258e21992ff2e06405009ed1de9d138ee1178728e97c174179e757","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"96124be7dbba5fc3a7e5262aa9e8c634d2be6c1085343dd5ff963be36d00d67c","text":"为auto_explain新增包含触发器执行时间的选项（Horiguchi Kyotaro）","title":"为auto_explain新增包含触发器执行时间的选项","variants":[],"version":"9.4.0"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"9f3fa18a85b373bb36394306945aab60","html":"\u003cp\u003e修复\u003ca href=\"/docs/9.4/pgstattuple.html\" title=\"F.30. pgstattuple — 获取元组级统计信息\"\u003epgstattuple\u003c/a\u003e，使其不把来自未提交事务的行报告为死行（Robert Haas）\u003c/p\u003e","id":"9.4.0-19dcd996242e4964","identity_text":"Fix pgstattuple to not report rows from uncommitted transactions as dead (Robert Haas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/172","source_hash":"ff8739916a7354c68a5e4d951230b41da7c4b6220d8b32bcbcb455140442743b","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"c3ccd727e580a7f644d19173a7dcb7fbb8026880ff15024517941c18e5e46ed6","text":"修复pgstattuple，使其不把来自未提交事务的行报告为死行（Robert Haas）","title":"修复pgstattuple，使其不把来自未提交事务的行报告为死行","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"b4985a4f023bd4413fa81762cb356fc3","html":"\u003cp\u003e使\u003ca href=\"/docs/9.4/pgstattuple.html\" title=\"F.30. pgstattuple — 获取元组级统计信息\"\u003epgstattuple\u003c/a\u003e函数使用 \u003ccode\u003eregclass\u003c/code\u003e 类型的参数（Satoshi Nagayasu）\u003c/p\u003e\n\u003cp\u003e虽然 \u003ccode\u003etext\u003c/code\u003e 类型的参数仍受支持，但它们可能在未来某个主版本中被移除。\u003c/p\u003e","id":"9.4.0-3c9a57110cea1276","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/173","source_hash":"dd8bb0201cd573b15cae7dff64132e2c5453821568f41b06fbd93dfd1f1ab34b","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"9e11f219e07c8fb42047283adf5add4e2edf1ec2e82f27dc288b5c6a4f02c707","text":"使pgstattuple函数使用 regclass 类型的参数（Satoshi Nagayasu） 虽然 text 类型的参数仍受支持，但它们可能在未来某个主版本中被移除。","title":"使pgstattuple函数使用 regclass 类型的参数","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"af3e9b1bbf77028fedd226a8c06628e5","html":"\u003cp\u003e改进\u003ca href=\"/docs/9.4/pgrowlocks.html\" title=\"F.28. pgrowlocks — 显示表的行锁信息\"\u003epgrowlocks\u003c/a\u003e输出的一致性，使其更一致地遵循快照规则（Robert Haas）\u003c/p\u003e","id":"9.4.0-909e38c1bbfb9231","identity_text":"Improve consistency of pgrowlocks output to honor snapshot rules more consistently (Robert Haas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/174","source_hash":"cdf53279563bc2a04a6a9ae2078a785567bc56ae40fc16b35aa2d754a7d65394","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"049757b741de08a178b46a8f0cba764877355bb705f30a7d1d41626e5249988b","text":"改进pgrowlocks输出的一致性，使其更一致地遵循快照规则（Robert Haas）","title":"改进pgrowlocks输出的一致性，使其更一致地遵循快照规则","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"31d1c5f1424bd57c62cc1d20ec0afa5a","html":"\u003cp\u003e改进\u003ca href=\"/docs/9.4/pgtrgm.html\" title=\"F.31. pg_trgm\"\u003epg_trgm\u003c/a\u003e在索引正则表达式搜索中对三元组的选取（Alexander Korotkov）\u003c/p\u003e\n\u003cp\u003e此变更不鼓励使用包含空白的三元组，它们通常选择性较低。\u003c/p\u003e","id":"9.4.0-78b49fcf2ad63fcb","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/175","source_hash":"992e9f42d06507ec38906b34e35122dc62df210e37301454a1c62b14141c3f34","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"edf88eb63aab7ecf868749044fa37740c7a0bf9bcba406a3037fb0f1a35f56f9","text":"改进pg_trgm在索引正则表达式搜索中对三元组的选取（Alexander Korotkov） 此变更不鼓励使用包含空白的三元组，它们通常选择性较低。","title":"改进pg_trgm在索引正则表达式搜索中对三元组的选取","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"ddc3ebc06feb4cd3f0e835652e9fbbde","html":"\u003cp\u003e允许\u003ca href=\"/docs/9.4/pgxlogdump.html\" title=\"pg_xlogdump\"\u003e\u003cspan\u003e\u003cspan\u003epg_xlogdump\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e使用 \u003ccode\u003e--follow\u003c/code\u003e 报告实时日志流（Heikki Linnakangas）\u003c/p\u003e","id":"9.4.0-0ff9511abe36522b","identity_text":"Allow pgxlogdump to report a live log stream with --follow (Heikki Linnakangas)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/176","source_hash":"eb2c0f0947672bb477e7bc18344d4a55ff9f781b2ffc2fb7fb1b860a8320591b","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"ab0c8bf51e3cb0bd3e602738d58e48e79f3c477274877384d7b0cb549b81d3a1","text":"允许pg_xlogdump使用 --follow 报告实时日志流（Heikki Linnakangas）","title":"允许pg_xlogdump使用 --follow 报告实时日志流","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"00413297649b473fc84f921857141412","html":"\u003cp\u003e更紧凑地存储\u003ca href=\"/docs/9.4/cube.html\" title=\"F.8. cube — 多维立方体数据类型\"\u003ecube\u003c/a\u003e数据（Stas Kelvich）\u003c/p\u003e\n\u003cp\u003e现有数据必须经过转储/还原才能使用新格式。旧格式仍可读取。\u003c/p\u003e","id":"9.4.0-15f215d125ea3a91","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/177","source_hash":"ac8d2d2c4c558d2a89dd96ad8710fc66853bd913b52b6c6e5b71a5d2e7d1b2dc","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"ef82adf5659b821a50dd2922031cd5c6edb2adce75f0eb58bb21055361d1c891","text":"更紧凑地存储cube数据（Stas Kelvich） 现有数据必须经过转储/还原才能使用新格式。旧格式仍可读取。","title":"更紧凑地存储cube数据","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"5d8a50766410ace8885d1efe6c677717","html":"\u003cp\u003e通过使用游标减少\u003ca href=\"/docs/9.4/vacuumlo.html\" title=\"vacuumlo\"\u003e\u003cspan\u003e\u003cspan\u003evacuumlo\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e的客户端内存用量（Andrew Dunstan）\u003c/p\u003e","id":"9.4.0-dc0db6bfab0557bd","identity_text":"Reduce vacuumlo client-side memory usage by using a cursor (Andrew Dunstan)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/178","source_hash":"1164d1c81269f5e9fa56b3fd04bd237f6b356ce7cbdc528fc3832fd948c4b8c0","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"cdebfeba11bbbc44ee606c77deb5b196e2a8d48197145a4a31f4cc41633695e8","text":"通过使用游标减少vacuumlo的客户端内存用量（Andrew Dunstan）","title":"通过使用游标减少vacuumlo的客户端内存用量","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"a92defd365303a2ca1348cb14ea03cf2","html":"\u003cp\u003e大幅减少\u003ca href=\"/docs/9.4/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e的内存消耗（Bruce Momjian）\u003c/p\u003e","id":"9.4.0-904eafc3fbcbbf0d","identity_text":"Dramatically reduce memory consumption in pgupgrade (Bruce Momjian)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/179","source_hash":"ad4559182cd5c97bbf3631e40707e9a3a88dc709ec9ab33e89feebb5fe16a987","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"d6ceac161c39262daf72c90324c21da33f6d803ed2d967bd21fc98b281d90063","text":"大幅减少pg_upgrade的内存消耗（Bruce Momjian）","title":"大幅减少pg_upgrade的内存消耗","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"f7765c685ddd7ce6052ff064ccc6b451","html":"\u003cp\u003e把\u003ca href=\"/docs/9.4/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e的用户名（\u003ccode\u003e-U\u003c/code\u003e）选项传递给生成的分析脚本（Bruce Momjian）\u003c/p\u003e","id":"9.4.0-9e2ef520140704a0","identity_text":"Pass pgupgrade 's user name (-U) option to generated analyze scripts (Bruce Momjian)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":[],"source_entry_id":"9.4.0/changes/180","source_hash":"6ccb291a73f8471bef00c3863b7a0a043662e683787bd1ac0814b4f828e2ef97","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14","statement_hash":"06b8c31a1e2cd8a11591137df8693fcae361337bf8021fee78b3717a52b25d34","text":"把pg_upgrade的用户名（-U）选项传递给生成的分析脚本（Bruce Momjian）","title":"把pg_upgrade的用户名（-U）选项传递给生成的分析脚本","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"eb3d7eb57d499f07ae92a82623d070cd","html":"\u003cp\u003e移除 \u003cspan\u003epgbench\u003c/span\u003e 脚本的行长限制（Sawada Masahiko）\u003c/p\u003e\n\u003cp\u003e以前的行限制为 \u003ccode\u003eBUFSIZ\u003c/code\u003e。\u003c/p\u003e","id":"9.4.0-563ff44363716af0","identity_text":"Remove line length limit for pgbench scripts (Sawada Masahiko) The previous line limit was BUFSIZ.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块 / pgbench","section_path":["附加模块","pgbench"],"source_commits":[],"source_entry_id":"9.4.0/changes/181","source_hash":"0869177abdc3d8159fc5b7fb4e4054e3c1c9d1fbe7a091c759597a2db355b9fc","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14.3","statement_hash":"f67fabd2888d0a3e416d6c14f92f9b77fb5d5e34b5d871a11bac98a753e3be39","text":"移除 pgbench 脚本的行长限制（Sawada Masahiko） 以前的行限制为 BUFSIZ。","title":"移除 pgbench 脚本的行长限制","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"85441783a1537a19c8ca8ac0fd8dc54b","html":"\u003cp\u003e为 \u003cspan\u003epgbench\u003c/span\u003e 新增长选项名（Fabien Coelho）\u003c/p\u003e","id":"9.4.0-a921a4ffa21f503a","identity_text":"Add long option names to pgbench (Fabien Coelho)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块 / pgbench","section_path":["附加模块","pgbench"],"source_commits":[],"source_entry_id":"9.4.0/changes/182","source_hash":"8f850fe1bed267fc3aff099e34a49937cee7c97ad485c7282bfc1188c99d70ca","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14.3","statement_hash":"ded3fca2e4f7522ca830b22193632427eef4f65a9be26cde0480a63da660036f","text":"为 pgbench 新增长选项名（Fabien Coelho）","title":"为 pgbench 新增长选项名","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"fe709388f3786acc4cd9247b79a2c0aa","html":"\u003cp\u003e新增 \u003cspan\u003epgbench\u003c/span\u003e 选项 \u003ccode\u003e--rate\u003c/code\u003e，用于控制事务速率（Fabien Coelho）\u003c/p\u003e","id":"9.4.0-0b3e148744b07a07","identity_text":"Add pgbench option --rate to control the transaction rate (Fabien Coelho)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块 / pgbench","section_path":["附加模块","pgbench"],"source_commits":[],"source_entry_id":"9.4.0/changes/183","source_hash":"df1cc02c7d04c61e7e4b9f7b41341ca82682aab32db140bbb5209e1d24dca537","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14.3","statement_hash":"8ed2365f78c3273021f8f97c1bfa4c3234954132d0d6c1577bbce9668d6fdc75","text":"新增 pgbench 选项 --rate，用于控制事务速率（Fabien Coelho）","title":"新增 pgbench 选项 --rate，用于控制事务速率","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"2bec3890fff77c9cb85ef27addae14b5","html":"\u003cp\u003e新增 \u003cspan\u003epgbench\u003c/span\u003e 选项 \u003ccode\u003e--progress\u003c/code\u003e，用于打印周期性进度报告（Fabien Coelho）\u003c/p\u003e","id":"9.4.0-c08095c1c9886190","identity_text":"Add pgbench option --progress to print periodic progress reports (Fabien Coelho)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块 / pgbench","section_path":["附加模块","pgbench"],"source_commits":[],"source_entry_id":"9.4.0/changes/184","source_hash":"5bba626d23bc031bdf4bcf76d98a8d6148f438838a5033cce0749c1c8571cb2b","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14.3","statement_hash":"e9ff0b1ea1002ca3a206872864a3a7324ced68917ba95e3e00ee78cba4a53629","text":"新增 pgbench 选项 --progress，用于打印周期性进度报告（Fabien Coelho）","title":"新增 pgbench 选项 --progress，用于打印周期性进度报告","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"9571e2260b2adf7a585454f4f23fc7b2","html":"\u003cp\u003e使 \u003cspan\u003epg_stat_statements\u003c/span\u003e 使用文件而非共享内存来存储查询文本（Peter Geoghegan）\u003c/p\u003e\n\u003cp\u003e这消除了以前对查询文本长度的限制，并允许默认跟踪更多数量的唯一语句。\u003c/p\u003e","id":"9.4.0-2f415d0718fb8032","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":[],"source_entry_id":"9.4.0/changes/185","source_hash":"2056f815d05ab036c2d660f501094aabd4d4cdbbeaa6e61c32103bba53f4290c","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14.4","statement_hash":"8b40cf96212e8173417a490ce2c8dbbfa6328d590f0bf7cfa7a1be14eaa983da","text":"使 pg_stat_statements 使用文件而非共享内存来存储查询文本（Peter Geoghegan） 这消除了以前对查询文本长度的限制，并允许默认跟踪更多数量的唯一语句。","title":"使 pg_stat_statements 使用文件而非共享内存来存储查询文本","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"ca70fde72942ec1efbcb2fd31e465a89","html":"\u003cp\u003e允许报告 \u003cspan\u003epg_stat_statements\u003c/span\u003e 的内部查询哈希标识符（Daniel Farina、Sameer Thakur、Peter Geoghegan）\u003c/p\u003e","id":"9.4.0-c99f4498b50ebb74","identity_text":"Allow reporting of pg_stat_statements's internal query hash identifier (Daniel Farina, Sameer Thakur, Peter Geoghegan)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":[],"source_entry_id":"9.4.0/changes/186","source_hash":"e1c9ca00a90f65c4ea6f2612521f48ec3a84a96a97c4c80d2c8dd3e81ff264f1","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14.4","statement_hash":"1b8f009408479a3cccace53d67989317377c70420a2e450dde00956228f7e688","text":"允许报告 pg_stat_statements 的内部查询哈希标识符（Daniel Farina、Sameer Thakur、Peter Geoghegan）","title":"允许报告 pg_stat_statements 的内部查询哈希标识符","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"8f2efe92067600e91a746ab94e3cee81","html":"\u003cp\u003e新增获取除查询文本之外的所有 \u003cspan\u003epg_stat_statements\u003c/span\u003e 信息的能力（Peter Geoghegan）\u003c/p\u003e\n\u003cp\u003e这使监控工具可以只为刚创建的条目获取查询文本，从而改进重复查询统计信息时的性能。\u003c/p\u003e","id":"9.4.0-5399dedaaa06c6fa","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":[],"source_entry_id":"9.4.0/changes/187","source_hash":"9b1d028b7cf98679a53f778e9f06fd51386efdd803ae54ffa946f36110146866","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14.4","statement_hash":"b25c26f96d51bb296bfe8eba26636595713c5a64f228c27ba4e95ea9d920cec1","text":"新增获取除查询文本之外的所有 pg_stat_statements 信息的能力（Peter Geoghegan） 这使监控工具可以只为刚创建的条目获取查询文本，从而改进重复查询统计信息时的性能。","title":"新增获取除查询文本之外的所有 pg_stat_statements 信息的能力","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"d05f95ce1d170cff6e188cfa84ed7703","html":"\u003cp\u003e使 \u003cspan\u003epg_stat_statements\u003c/span\u003e 忽略 \u003ccode\u003eDEALLOCATE\u003c/code\u003e 命令（Fabien Coelho）\u003c/p\u003e\n\u003cp\u003e它已经忽略 \u003ccode\u003ePREPARE\u003c/code\u003e 以及一般的规划时间，因此这样更一致。\u003c/p\u003e","id":"9.4.0-f2c875253b227fa4","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.","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":[],"source_entry_id":"9.4.0/changes/188","source_hash":"7f19d88035715c19cca9e2478ae7b18499f3cbe3756244848f718dcc99d1cf29","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14.4","statement_hash":"29143b6bb42b8a8df046272bfe4488276b23bc293fdcc4eaa4e36f0cf162f0e6","text":"使 pg_stat_statements 忽略 DEALLOCATE 命令（Fabien Coelho） 它已经忽略 PREPARE 以及一般的规划时间，因此这样更一致。","title":"使 pg_stat_statements 忽略 DEALLOCATE 命令","variants":[],"version":"9.4.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"0c2a0a8dfae5fd181f298cfdadf556bb","html":"\u003cp\u003e服务器关闭时把统计信息文件保存到 \u003ccode\u003e$PGDATA/pg_stat\u003c/code\u003e 而不是 \u003ccode\u003e$PGDATA/global\u003c/code\u003e（Fujii Masao）\u003c/p\u003e","id":"9.4.0-bbbc949a802c724a","identity_text":"Save the statistics file into $PGDATA/pg_stat at server shutdown, rather than $PGDATA/global (Fujii Masao)","part":"changes","patch_ids":[],"related_changes":[],"relations":[],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":[],"source_entry_id":"9.4.0/changes/189","source_hash":"e95406af62cfffb5375029c79968e006824846835b79f6a9919ac9811a462ef9","source_url":"/docs/release/9.4.0/#id-1.11.6.31.5.14.4","statement_hash":"ddefa5f04bf72d70672eff2844f494675add5859d71e76e341314468a99bc019","text":"服务器关闭时把统计信息文件保存到 $PGDATA/pg_stat 而不是 $PGDATA/global（Fujii Masao）","title":"服务器关闭时把统计信息文件保存到 $PGDATA/pg_stat 而不是 $PGDATA/global","variants":[],"version":"9.4.0"}],"entry_count":211,"eol":"2020-02-13","eol_date":"2020-02-13","label":"9.4","major":"9.4","manual":"9.4","manual_build":"9.4.26","manual_url":"/docs/9.4/release-9-4.html","migration_html":"\u003cp\u003e希望从任何之前的版本迁移数据的用户，需要使用\u003ca href=\"/docs/9.4/app-pg-dumpall.html\" title=\"pg_dumpall\"\u003e\u003cspan\u003e\u003cspan\u003epg_dumpall\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e进行转储/恢复，或使用\u003ca href=\"/docs/9.4/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e版本 9.4 包含许多可能影响与以前版本兼容性的变更。请注意以下不兼容之处：\u003c/p\u003e\n\u003cdiv\u003e\n\u003c/div\u003e","minor":0,"placeholder":false,"source_as_of":"","source_url":"/docs/release/9.4.0/","status":"stable","status_label":"Historical","support_days":-2433,"supported":false,"version":"9.4.0"}],"mode":"release","release_count":1,"remaining_cves":[],"security_as_of":"2026-09-26","security_regressions":[],"source_as_of":"2026-09-26","stats":[{"count":211,"key":"all","label":"All changes"},{"count":171,"key":"feature","label":"Features"},{"count":6,"key":"bugfix","label":"Bug fixes"},{"count":0,"key":"security","label":"Security"},{"count":12,"key":"performance","label":"Performance"},{"count":22,"key":"compatibility","label":"Compatibility"},{"count":0,"key":"improvement","label":"Improvements"}],"to_release":{"age_days":4316,"build":"9.4.0","changes_count":189,"compatibility_count":22,"content_hash":"4bf0d615ef0747d209e3203da09a627422797869d050ea32ff76105ff7d53b8a","date":"2014-12-18","date_text":"2014-12-18","doc_git":"","doc_loaded_at":"2026-09-26T02:56:45.438944","entry_count":211,"eol":"2020-02-13","eol_date":"2020-02-13","label":"9.4","major":"9.4","manual":"9.4","manual_build":"9.4.26","manual_url":"/docs/9.4/release-9-4.html","migration_html":"\u003cp\u003e希望从任何之前的版本迁移数据的用户，需要使用\u003ca href=\"/docs/9.4/app-pg-dumpall.html\" title=\"pg_dumpall\"\u003e\u003cspan\u003e\u003cspan\u003epg_dumpall\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e进行转储/恢复，或使用\u003ca href=\"/docs/9.4/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e版本 9.4 包含许多可能影响与以前版本兼容性的变更。请注意以下不兼容之处：\u003c/p\u003e\n\u003cdiv\u003e\n\u003c/div\u003e","minor":0,"placeholder":false,"source_as_of":"","source_url":"/docs/release/9.4.0/","status":"stable","status_label":"Historical","support_days":-2433,"supported":false,"version":"9.4.0"},"total":211,"warnings":[]}
